@kaspernj/api-maker 1.0.446 → 1.0.448
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.
- package/{.eslintrc.cjs → .eslintrc.js} +4 -0
- package/README.md +35 -0
- package/android/build.gradle +43 -0
- package/android/src/main/AndroidManifest.xml +2 -0
- package/android/src/main/java/expo/modules/api_maker/ApiMakerModule.kt +50 -0
- package/android/src/main/java/expo/modules/api_maker/ApiMakerView.kt +30 -0
- package/build/api.js +120 -0
- package/build/attribute-not-loaded-error.js +2 -0
- package/build/base-component.js +5 -0
- package/build/base-error.js +33 -0
- package/build/base-model/attribute.js +25 -0
- package/build/base-model/column.js +11 -0
- package/build/base-model/reflection.js +14 -0
- package/build/base-model/scope.js +11 -0
- package/build/base-model.js +828 -0
- package/build/bootstrap/attribute-row/index.js +105 -0
- package/build/bootstrap/attribute-rows.js +31 -0
- package/build/bootstrap/card.js +138 -0
- package/build/bootstrap/checkbox.js +97 -0
- package/build/bootstrap/checkboxes.js +183 -0
- package/build/bootstrap/index.js +2 -0
- package/build/bootstrap/input.js +128 -0
- package/build/bootstrap/invalid-feedback.js +27 -0
- package/build/bootstrap/paginate.js +150 -0
- package/build/bootstrap/radio-buttons.js +72 -0
- package/build/bootstrap/select.js +88 -0
- package/build/bootstrap/sort-link.js +130 -0
- package/build/cable-connection-pool.js +128 -0
- package/build/cable-subscription-pool.js +207 -0
- package/build/cable-subscription.js +21 -0
- package/build/cache-key-generator.js +81 -0
- package/build/can-can.js +134 -0
- package/build/channels-consumer.js +3 -0
- package/build/collection-loader.js +48 -0
- package/build/collection.js +279 -0
- package/build/command-submit-data.js +81 -0
- package/build/commands-pool.js +195 -0
- package/build/compose.js +9 -0
- package/build/config.js +53 -0
- package/build/custom-error.js +5 -0
- package/build/data-set-to-attributes.js +10 -0
- package/build/deserializer.js +56 -0
- package/build/destroy-error.js +5 -0
- package/build/devise.js +109 -0
- package/build/draggable-sort/controller.js +136 -0
- package/build/draggable-sort/index.js +114 -0
- package/build/draggable-sort/item.js +188 -0
- package/build/error-logger.js +101 -0
- package/build/error-messages.js +13 -0
- package/build/event-connection.js +32 -0
- package/build/event-model-class.js +24 -0
- package/build/events.js +5 -0
- package/build/form.js +83 -0
- package/build/index.js +3 -0
- package/build/inputs/attachment.js +121 -0
- package/build/inputs/auto-submit.js +36 -0
- package/build/inputs/checkbox.js +145 -0
- package/build/inputs/checkboxes.js +111 -0
- package/build/inputs/id-for-component.js +15 -0
- package/build/inputs/input-wrapper.js +18 -0
- package/build/inputs/input.js +230 -0
- package/build/inputs/money.js +179 -0
- package/build/inputs/name-for-component.js +13 -0
- package/build/inputs/select.js +92 -0
- package/build/instance-of-class-name.js +23 -0
- package/build/key-value-store.js +53 -0
- package/build/link.js +68 -0
- package/build/logger.js +30 -0
- package/build/modal.js +37 -0
- package/build/model-class-require.js +13 -0
- package/build/model-events.js +30 -0
- package/build/model-name.js +28 -0
- package/build/model-prop-type.js +101 -0
- package/build/model-recipes-loader.js +32 -0
- package/build/model-recipes-model-loader.js +357 -0
- package/build/models-response-reader.js +40 -0
- package/build/models.js +8 -0
- package/build/money-formatter.js +77 -0
- package/build/not-loaded-error.js +2 -0
- package/build/params.js +60 -0
- package/build/preloaded.js +38 -0
- package/build/resize-observer.js +11 -0
- package/build/result.js +13 -0
- package/build/router/route.js +262 -0
- package/build/router/switch.js +72 -0
- package/build/router.js +57 -0
- package/build/routes-native.js +202 -0
- package/build/routes.js +50 -0
- package/build/run-last.js +35 -0
- package/build/serializer.js +63 -0
- package/build/services.js +20 -0
- package/build/session-status-updater.js +126 -0
- package/build/source-maps-loader.js +171 -0
- package/build/super-admin/config-reader.js +84 -0
- package/build/super-admin/edit-page/edit-attribute-checkbox.js +85 -0
- package/build/super-admin/edit-page/edit-attribute-content.js +54 -0
- package/build/super-admin/edit-page/edit-attribute-input.js +79 -0
- package/build/super-admin/edit-page/edit-attribute.js +76 -0
- package/build/super-admin/edit-page.js +120 -0
- package/build/super-admin/has-edit-config.js +12 -0
- package/build/super-admin/index-page.js +24 -0
- package/build/super-admin/index.js +180 -0
- package/build/super-admin/layout/header/index.js +151 -0
- package/build/super-admin/layout/index.js +109 -0
- package/build/super-admin/layout/menu/index.js +93 -0
- package/build/super-admin/layout/menu/menu-content.js +40 -0
- package/build/super-admin/layout/menu/menu-item.js +83 -0
- package/build/super-admin/layout/no-access.js +25 -0
- package/build/super-admin/model-class-table.js +61 -0
- package/build/super-admin/models.js +8 -0
- package/build/super-admin/show-nav.js +49 -0
- package/build/super-admin/show-page/belongs-to-attribute-row.js +28 -0
- package/build/super-admin/show-page/index.js +141 -0
- package/build/super-admin/show-reflection-actions.js +47 -0
- package/build/super-admin/show-reflection-link.js +46 -0
- package/build/super-admin/show-reflection-page.js +47 -0
- package/build/table/column-content.js +112 -0
- package/build/table/column-identifier.js +18 -0
- package/build/table/column-visible.js +7 -0
- package/build/table/components/column.js +20 -0
- package/build/table/components/flat-list.js +20 -0
- package/build/table/components/header.js +25 -0
- package/build/table/components/row.js +25 -0
- package/build/table/filters/attribute-element.js +43 -0
- package/build/table/filters/filter-form.js +392 -0
- package/build/table/filters/filter.js +89 -0
- package/build/table/filters/index.js +182 -0
- package/build/table/filters/load-search-modal.js +174 -0
- package/build/table/filters/reflection-element.js +36 -0
- package/build/table/filters/save-search-modal.js +86 -0
- package/build/table/filters/scope-element.js +41 -0
- package/build/table/header-column-content.js +67 -0
- package/build/table/header-column.js +144 -0
- package/build/table/header-select.js +104 -0
- package/build/table/model-callback-args.js +10 -0
- package/build/table/model-column.js +87 -0
- package/build/table/model-row.js +179 -0
- package/build/table/select-calculator.js +63 -0
- package/build/table/settings/column-row.js +97 -0
- package/build/table/settings/download-action.js +78 -0
- package/build/table/settings/index.js +92 -0
- package/build/table/table-settings.js +219 -0
- package/build/table/table.js +972 -0
- package/build/table/use-sorting.js +34 -0
- package/build/table/widths.js +75 -0
- package/build/table/worker-plugins-check-all-checkbox.js +125 -0
- package/build/table/worker-plugins-checkbox.js +115 -0
- package/build/translated-attributes.js +10 -0
- package/build/translated-collections.js +11 -0
- package/build/updated-attribute.js +76 -0
- package/build/url-encode.js +15 -0
- package/build/use-breakpoint.js +44 -0
- package/build/use-can-can.js +55 -0
- package/build/use-collection.js +225 -0
- package/build/use-created-event.js +52 -0
- package/build/use-current-user.js +73 -0
- package/build/use-destroyed-event.js +60 -0
- package/build/use-event-emitter.js +13 -0
- package/build/use-event-listener.js +16 -0
- package/build/use-input.js +140 -0
- package/build/use-model-event.js +60 -0
- package/build/use-model.js +169 -0
- package/build/use-resize-observer.js +23 -0
- package/build/use-router.js +102 -0
- package/build/use-screen-layout.js +39 -0
- package/build/use-updated-event.js +60 -0
- package/build/use-validation-errors.js +30 -0
- package/build/utils/card.js +51 -0
- package/build/utils/checkbox.js +48 -0
- package/build/utils/default-style.js +18 -0
- package/build/utils/modal.js +61 -0
- package/build/utils/text.js +18 -0
- package/build/validation-error.js +28 -0
- package/build/validation-errors.js +98 -0
- package/build/with-collection.js +13 -0
- package/build/with-current-user.js +9 -0
- package/build/with-model.js +14 -0
- package/build/with-router.js +21 -0
- package/expo-module.config.json +17 -0
- package/ios/ApiMaker.podspec +29 -0
- package/ios/ApiMakerModule.swift +48 -0
- package/ios/ApiMakerView.swift +38 -0
- package/package.json +35 -16
- package/src/{api.mjs → api.js} +5 -5
- package/src/{base-error.mjs → base-error.js} +1 -1
- package/src/base-model/{attribute.mjs → attribute.js} +1 -1
- package/src/base-model/{reflection.mjs → reflection.js} +1 -1
- package/src/{base-model.mjs → base-model.js} +14 -14
- package/src/bootstrap/attribute-row/index.jsx +2 -2
- package/src/bootstrap/attribute-rows.jsx +1 -1
- package/src/bootstrap/card.jsx +1 -1
- package/src/bootstrap/checkbox.jsx +1 -1
- package/src/bootstrap/checkboxes.jsx +1 -1
- package/src/bootstrap/input.jsx +1 -1
- package/src/bootstrap/paginate.jsx +2 -2
- package/src/bootstrap/sort-link.jsx +3 -3
- package/src/{cable-connection-pool.mjs → cable-connection-pool.js} +3 -3
- package/src/{cable-subscription-pool.mjs → cable-subscription-pool.js} +4 -4
- package/src/{cable-subscription.mjs → cable-subscription.js} +1 -1
- package/src/{can-can.mjs → can-can.js} +1 -1
- package/src/collection-loader.jsx +2 -2
- package/src/{collection.mjs → collection.js} +3 -3
- package/src/{commands-pool.mjs → commands-pool.js} +11 -11
- package/src/{custom-error.mjs → custom-error.js} +1 -1
- package/src/{deserializer.mjs → deserializer.js} +2 -2
- package/src/{destroy-error.mjs → destroy-error.js} +1 -1
- package/src/{devise.mjs → devise.js} +5 -9
- package/src/draggable-sort/index.jsx +3 -3
- package/src/draggable-sort/item.jsx +2 -2
- package/src/{error-logger.mjs → error-logger.js} +1 -1
- package/src/event-connection.jsx +1 -1
- package/src/event-model-class.jsx +1 -1
- package/src/form.jsx +1 -1
- package/src/index.js +3 -0
- package/src/inputs/attachment.jsx +2 -2
- package/src/inputs/checkbox.jsx +7 -6
- package/src/inputs/checkboxes.jsx +1 -1
- package/src/inputs/input-wrapper.jsx +1 -1
- package/src/inputs/input.jsx +8 -7
- package/src/inputs/money.jsx +3 -3
- package/src/inputs/select.jsx +1 -1
- package/src/{key-value-store.mjs → key-value-store.js} +1 -1
- package/src/link.jsx +2 -2
- package/src/modal.jsx +1 -1
- package/src/{model-class-require.mjs → model-class-require.js} +4 -2
- package/src/{model-events.mjs → model-events.js} +1 -1
- package/src/{model-name.mjs → model-name.js} +1 -1
- package/src/{model-recipes-loader.mjs → model-recipes-loader.js} +1 -1
- package/src/{model-recipes-model-loader.mjs → model-recipes-model-loader.js} +2 -2
- package/src/{models-response-reader.mjs → models-response-reader.js} +2 -2
- package/src/models.js +7 -0
- package/src/{models.mjs.erb → models.js.erb} +1 -1
- package/src/{params.mjs → params.js} +2 -2
- package/src/{preloaded.mjs → preloaded.js} +1 -1
- package/src/resize-observer.jsx +1 -1
- package/src/router/route.jsx +1 -1
- package/src/router/switch.jsx +1 -1
- package/src/router.jsx +1 -1
- package/src/{routes-native.mjs → routes-native.js} +1 -1
- package/src/{services.mjs → services.js} +1 -1
- package/src/{session-status-updater.mjs → session-status-updater.js} +3 -3
- package/src/{source-maps-loader.mjs → source-maps-loader.js} +1 -1
- package/src/super-admin/edit-page/edit-attribute-checkbox.jsx +1 -1
- package/src/super-admin/edit-page/edit-attribute-content.jsx +1 -1
- package/src/super-admin/edit-page/edit-attribute-input.jsx +1 -1
- package/src/super-admin/edit-page/edit-attribute.jsx +1 -1
- package/src/super-admin/edit-page.jsx +2 -2
- package/src/super-admin/has-edit-config.js +1 -1
- package/src/super-admin/index-page.jsx +1 -1
- package/src/super-admin/index.jsx +7 -7
- package/src/super-admin/layout/header/index.jsx +2 -2
- package/src/super-admin/layout/index.jsx +3 -3
- package/src/super-admin/layout/menu/index.jsx +3 -3
- package/src/super-admin/layout/menu/menu-content.jsx +2 -2
- package/src/super-admin/layout/menu/{menu-item/index.jsx → menu-item.jsx} +5 -6
- package/src/super-admin/layout/no-access.jsx +2 -2
- package/src/super-admin/model-class-table.jsx +3 -3
- package/src/super-admin/models.js +1 -1
- package/src/super-admin/show-nav.jsx +2 -2
- package/src/super-admin/show-page/belongs-to-attribute-row.jsx +1 -1
- package/src/super-admin/show-page/index.jsx +2 -2
- package/src/super-admin/show-reflection-actions.jsx +1 -1
- package/src/super-admin/show-reflection-link.jsx +1 -1
- package/src/super-admin/show-reflection-page.jsx +1 -1
- package/src/table/column-content.jsx +1 -1
- package/src/table/filters/filter-form.jsx +1 -1
- package/src/table/filters/index.jsx +5 -3
- package/src/table/filters/load-search-modal.jsx +6 -4
- package/src/table/filters/save-search-modal.jsx +4 -4
- package/src/table/header-select.jsx +1 -1
- package/src/table/model-column.jsx +1 -1
- package/src/table/model-row.jsx +2 -2
- package/src/table/{select-calculator.mjs → select-calculator.js} +1 -1
- package/src/table/settings/column-row.jsx +2 -2
- package/src/table/settings/download-action.jsx +3 -3
- package/src/table/settings/index.jsx +3 -3
- package/src/table/table-settings.js +5 -4
- package/src/table/table.jsx +8 -8
- package/src/table/{use-sorting.mjs → use-sorting.js} +1 -1
- package/src/table/worker-plugins-check-all-checkbox.jsx +2 -2
- package/src/table/worker-plugins-checkbox.jsx +2 -2
- package/src/{translated-collections.mjs → translated-collections.js} +1 -1
- package/src/updated-attribute.jsx +1 -1
- package/src/{use-breakpoint.mjs → use-breakpoint.js} +2 -2
- package/src/use-can-can.js +55 -0
- package/src/{use-collection.mjs → use-collection.js} +4 -4
- package/src/{use-created-event.mjs → use-created-event.js} +2 -2
- package/src/{use-current-user.mjs → use-current-user.js} +6 -5
- package/src/{use-destroyed-event.mjs → use-destroyed-event.js} +2 -2
- package/src/{use-input.mjs → use-input.js} +5 -5
- package/src/use-model-event.js +2 -2
- package/src/{use-model.mjs → use-model.js} +4 -4
- package/src/{use-resize-observer.mjs → use-resize-observer.js} +1 -1
- package/src/use-router.jsx +2 -2
- package/src/{use-updated-event.mjs → use-updated-event.js} +2 -2
- package/src/{use-validation-errors.mjs → use-validation-errors.js} +3 -3
- package/src/utils/checkbox.jsx +2 -2
- package/src/{validation-error.mjs → validation-error.js} +1 -1
- package/src/{validation-errors.mjs → validation-errors.js} +1 -1
- package/src/with-current-user.jsx +1 -1
- package/src/with-model.jsx +1 -1
- package/__tests__/base-model.test.mjs +0 -71
- package/__tests__/cable-connection-pool.test.mjs +0 -227
- package/__tests__/cable-subscription-pool.test.mjs +0 -27
- package/__tests__/can-can.test.mjs +0 -34
- package/__tests__/collection.test.mjs +0 -51
- package/__tests__/custom-error.test.mjs +0 -13
- package/__tests__/model-name.test.mjs +0 -34
- package/__tests__/model-prop-type.test.mjs +0 -113
- package/__tests__/params.test.mjs +0 -40
- package/__tests__/routes-native.test.mjs +0 -104
- package/__tests__/routes.test.mjs +0 -47
- package/__tests__/serializer.test.mjs +0 -30
- package/__tests__/support/task.mjs +0 -27
- package/__tests__/support/user.mjs +0 -32
- package/index.js +0 -1
- package/jest.config.js +0 -9
- package/src/event-created.jsx +0 -12
- package/src/event-destroyed.jsx +0 -25
- package/src/event-emitter-listener.jsx +0 -10
- package/src/event-listener.jsx +0 -25
- package/src/event-updated.jsx +0 -27
- package/src/super-admin/layout/menu/menu-item/style.scss +0 -10
- package/src/use-can-can.mjs +0 -48
- package/src/with-can-can.jsx +0 -12
- package/webpack.config.js +0 -15
- /package/src/{attribute-not-loaded-error.mjs → attribute-not-loaded-error.js} +0 -0
- /package/src/base-model/{column.mjs → column.js} +0 -0
- /package/src/base-model/{scope.mjs → scope.js} +0 -0
- /package/src/{cache-key-generator.mjs → cache-key-generator.js} +0 -0
- /package/src/{channels-consumer.mjs → channels-consumer.js} +0 -0
- /package/src/{command-submit-data.mjs → command-submit-data.js} +0 -0
- /package/src/{config.mjs → config.js} +0 -0
- /package/src/{data-set-to-attributes.mjs → data-set-to-attributes.js} +0 -0
- /package/src/draggable-sort/{controller.mjs → controller.js} +0 -0
- /package/src/{error-messages.mjs → error-messages.js} +0 -0
- /package/src/{events.mjs → events.js} +0 -0
- /package/src/inputs/{auto-submit.mjs → auto-submit.js} +0 -0
- /package/src/inputs/{id-for-component.mjs → id-for-component.js} +0 -0
- /package/src/inputs/{name-for-component.mjs → name-for-component.js} +0 -0
- /package/src/{instance-of-class-name.mjs → instance-of-class-name.js} +0 -0
- /package/src/{logger.mjs → logger.js} +0 -0
- /package/src/{model-prop-type.mjs → model-prop-type.js} +0 -0
- /package/src/{money-formatter.mjs → money-formatter.js} +0 -0
- /package/src/{not-loaded-error.mjs → not-loaded-error.js} +0 -0
- /package/src/{result.mjs → result.js} +0 -0
- /package/src/{routes.mjs → routes.js} +0 -0
- /package/src/{run-last.mjs → run-last.js} +0 -0
- /package/src/{serializer.mjs → serializer.js} +0 -0
- /package/src/table/{column-identifier.mjs → column-identifier.js} +0 -0
- /package/src/table/{column-visible.mjs → column-visible.js} +0 -0
- /package/src/table/{model-callback-args.mjs → model-callback-args.js} +0 -0
- /package/src/{translated-collections-data.mjs.erb → translated-collections-data.js.erb} +0 -0
- /package/src/{url-encode.mjs → url-encode.js} +0 -0
- /package/src/{use-event-emitter.mjs → use-event-emitter.js} +0 -0
- /package/src/{use-event-listener.mjs → use-event-listener.js} +0 -0
- /package/src/{use-screen-layout.mjs → use-screen-layout.js} +0 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as inflection from "inflection";
|
|
2
|
+
export default function apiMakerIdForComponent(component) {
|
|
3
|
+
if ("id" in component.props) {
|
|
4
|
+
return component.props.id;
|
|
5
|
+
} else if (component.props.attribute && component.props.model) {
|
|
6
|
+
return `${component.props.model.modelClassData().paramKey}_${inflection.underscore(component.props.attribute)}`;
|
|
7
|
+
} else if (component.generatedInputId) {
|
|
8
|
+
return component.generatedInputId;
|
|
9
|
+
} else {
|
|
10
|
+
const generatedInputId = Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);
|
|
11
|
+
component.generatedInputId = generatedInputId;
|
|
12
|
+
return generatedInputId;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpbmZsZWN0aW9uIiwiYXBpTWFrZXJJZEZvckNvbXBvbmVudCIsImNvbXBvbmVudCIsInByb3BzIiwiaWQiLCJhdHRyaWJ1dGUiLCJtb2RlbCIsIm1vZGVsQ2xhc3NEYXRhIiwicGFyYW1LZXkiLCJ1bmRlcnNjb3JlIiwiZ2VuZXJhdGVkSW5wdXRJZCIsIk1hdGgiLCJyYW5kb20iLCJ0b1N0cmluZyIsInN1YnN0cmluZyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnB1dHMvaWQtZm9yLWNvbXBvbmVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCJcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gYXBpTWFrZXJJZEZvckNvbXBvbmVudChjb21wb25lbnQpIHtcbiAgaWYgKFwiaWRcIiBpbiBjb21wb25lbnQucHJvcHMpIHtcbiAgICByZXR1cm4gY29tcG9uZW50LnByb3BzLmlkXG4gIH0gZWxzZSBpZiAoY29tcG9uZW50LnByb3BzLmF0dHJpYnV0ZSAmJiBjb21wb25lbnQucHJvcHMubW9kZWwpIHtcbiAgICByZXR1cm4gYCR7Y29tcG9uZW50LnByb3BzLm1vZGVsLm1vZGVsQ2xhc3NEYXRhKCkucGFyYW1LZXl9XyR7aW5mbGVjdGlvbi51bmRlcnNjb3JlKGNvbXBvbmVudC5wcm9wcy5hdHRyaWJ1dGUpfWBcbiAgfSBlbHNlIGlmIChjb21wb25lbnQuZ2VuZXJhdGVkSW5wdXRJZCkge1xuICAgIHJldHVybiBjb21wb25lbnQuZ2VuZXJhdGVkSW5wdXRJZFxuICB9IGVsc2Uge1xuICAgIGNvbnN0IGdlbmVyYXRlZElucHV0SWQgPSBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiwgMTUpICsgTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsIDE1KVxuICAgIGNvbXBvbmVudC5nZW5lcmF0ZWRJbnB1dElkID0gZ2VuZXJhdGVkSW5wdXRJZFxuICAgIHJldHVybiBnZW5lcmF0ZWRJbnB1dElkXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLQSxVQUFVLE1BQU0sWUFBWTtBQUV4QyxlQUFlLFNBQVNDLHNCQUFzQkEsQ0FBQ0MsU0FBUyxFQUFFO0VBQ3hELElBQUksSUFBSSxJQUFJQSxTQUFTLENBQUNDLEtBQUssRUFBRTtJQUMzQixPQUFPRCxTQUFTLENBQUNDLEtBQUssQ0FBQ0MsRUFBRTtFQUMzQixDQUFDLE1BQU0sSUFBSUYsU0FBUyxDQUFDQyxLQUFLLENBQUNFLFNBQVMsSUFBSUgsU0FBUyxDQUFDQyxLQUFLLENBQUNHLEtBQUssRUFBRTtJQUM3RCxPQUFPLEdBQUdKLFNBQVMsQ0FBQ0MsS0FBSyxDQUFDRyxLQUFLLENBQUNDLGNBQWMsQ0FBQyxDQUFDLENBQUNDLFFBQVEsSUFBSVIsVUFBVSxDQUFDUyxVQUFVLENBQUNQLFNBQVMsQ0FBQ0MsS0FBSyxDQUFDRSxTQUFTLENBQUMsRUFBRTtFQUNqSCxDQUFDLE1BQU0sSUFBSUgsU0FBUyxDQUFDUSxnQkFBZ0IsRUFBRTtJQUNyQyxPQUFPUixTQUFTLENBQUNRLGdCQUFnQjtFQUNuQyxDQUFDLE1BQU07SUFDTCxNQUFNQSxnQkFBZ0IsR0FBR0MsSUFBSSxDQUFDQyxNQUFNLENBQUMsQ0FBQyxDQUFDQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUNDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUdILElBQUksQ0FBQ0MsTUFBTSxDQUFDLENBQUMsQ0FBQ0MsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUNsSFosU0FBUyxDQUFDUSxnQkFBZ0IsR0FBR0EsZ0JBQWdCO0lBQzdDLE9BQU9BLGdCQUFnQjtFQUN6QjtBQUNGIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -0,0 +1,18 @@
|
|
|
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 useInput from "../use-input";
|
|
3
|
+
const inputWrapper = (WrapperComponentClass, wrapperOptions = {}) => props => {
|
|
4
|
+
const {
|
|
5
|
+
inputProps,
|
|
6
|
+
restProps,
|
|
7
|
+
wrapperOpts
|
|
8
|
+
} = useInput({
|
|
9
|
+
props,
|
|
10
|
+
wrapperOptions
|
|
11
|
+
});
|
|
12
|
+
return /*#__PURE__*/React.createElement(WrapperComponentClass, _extends({
|
|
13
|
+
inputProps: inputProps,
|
|
14
|
+
wrapperOpts: wrapperOpts
|
|
15
|
+
}, restProps));
|
|
16
|
+
};
|
|
17
|
+
export default inputWrapper;
|
|
18
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VJbnB1dCIsImlucHV0V3JhcHBlciIsIldyYXBwZXJDb21wb25lbnRDbGFzcyIsIndyYXBwZXJPcHRpb25zIiwicHJvcHMiLCJpbnB1dFByb3BzIiwicmVzdFByb3BzIiwid3JhcHBlck9wdHMiLCJSZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kcyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnB1dHMvaW5wdXQtd3JhcHBlci5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHVzZUlucHV0IGZyb20gXCIuLi91c2UtaW5wdXRcIlxuXG5jb25zdCBpbnB1dFdyYXBwZXIgPSAoV3JhcHBlckNvbXBvbmVudENsYXNzLCB3cmFwcGVyT3B0aW9ucyA9IHt9KSA9PiAocHJvcHMpID0+IHtcbiAgY29uc3Qge2lucHV0UHJvcHMsIHJlc3RQcm9wcywgd3JhcHBlck9wdHN9ID0gdXNlSW5wdXQoe3Byb3BzLCB3cmFwcGVyT3B0aW9uc30pXG5cbiAgcmV0dXJuIChcbiAgICA8V3JhcHBlckNvbXBvbmVudENsYXNzXG4gICAgICBpbnB1dFByb3BzPXtpbnB1dFByb3BzfVxuICAgICAgd3JhcHBlck9wdHM9e3dyYXBwZXJPcHRzfVxuICAgICAgey4uLnJlc3RQcm9wc31cbiAgICAvPlxuICApXG59XG5cbmV4cG9ydCBkZWZhdWx0IGlucHV0V3JhcHBlclxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsT0FBT0EsUUFBUSxNQUFNLGNBQWM7QUFFbkMsTUFBTUMsWUFBWSxHQUFHQSxDQUFDQyxxQkFBcUIsRUFBRUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxLQUFNQyxLQUFLLElBQUs7RUFDOUUsTUFBTTtJQUFDQyxVQUFVO0lBQUVDLFNBQVM7SUFBRUM7RUFBVyxDQUFDLEdBQUdQLFFBQVEsQ0FBQztJQUFDSSxLQUFLO0lBQUVEO0VBQWMsQ0FBQyxDQUFDO0VBRTlFLG9CQUNFSyxLQUFBLENBQUFDLGFBQUEsQ0FBQ1AscUJBQXFCLEVBQUFRLFFBQUE7SUFDcEJMLFVBQVUsRUFBRUEsVUFBVztJQUN2QkUsV0FBVyxFQUFFQTtFQUFZLEdBQ3JCRCxTQUFTLENBQ2QsQ0FBQztBQUVOLENBQUM7QUFFRCxlQUFlTCxZQUFZIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -0,0 +1,230 @@
|
|
|
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 AutoSubmit from "./auto-submit";
|
|
3
|
+
import BaseComponent from "../base-component";
|
|
4
|
+
import { dig, digg, digs } from "diggerize";
|
|
5
|
+
import inputWrapper from "./input-wrapper";
|
|
6
|
+
import memo from "set-state-compare/src/memo";
|
|
7
|
+
import Money from "./money";
|
|
8
|
+
import PropTypes from "prop-types";
|
|
9
|
+
import { useMemo, useRef } from "react";
|
|
10
|
+
import replaceall from "replaceall";
|
|
11
|
+
import { shapeComponent } from "set-state-compare/src/shape-component";
|
|
12
|
+
import strftime from "strftime";
|
|
13
|
+
import { useForm } from "../form";
|
|
14
|
+
import useUpdatedEvent from "../use-updated-event";
|
|
15
|
+
const ApiMakerInputsInput = memo(shapeComponent(class ApiMakerInputsInput extends BaseComponent {
|
|
16
|
+
static defaultProps = {
|
|
17
|
+
autoRefresh: false,
|
|
18
|
+
autoSubmit: false,
|
|
19
|
+
model: null,
|
|
20
|
+
localizedNumber: false
|
|
21
|
+
};
|
|
22
|
+
static propTypes = {
|
|
23
|
+
attribute: PropTypes.string,
|
|
24
|
+
autoRefresh: PropTypes.bool.isRequired,
|
|
25
|
+
autoSubmit: PropTypes.bool.isRequired,
|
|
26
|
+
className: PropTypes.string,
|
|
27
|
+
formatValue: PropTypes.func,
|
|
28
|
+
id: PropTypes.string,
|
|
29
|
+
localizedNumber: PropTypes.bool.isRequired,
|
|
30
|
+
model: PropTypes.object,
|
|
31
|
+
name: PropTypes.string,
|
|
32
|
+
onChange: PropTypes.func,
|
|
33
|
+
onMatchValidationError: PropTypes.func,
|
|
34
|
+
type: PropTypes.string
|
|
35
|
+
};
|
|
36
|
+
setup() {
|
|
37
|
+
const {
|
|
38
|
+
autoRefresh,
|
|
39
|
+
inputProps,
|
|
40
|
+
model
|
|
41
|
+
} = this.p;
|
|
42
|
+
const {
|
|
43
|
+
defaultValue,
|
|
44
|
+
name
|
|
45
|
+
} = inputProps;
|
|
46
|
+
this.form = useForm();
|
|
47
|
+
this.visibleInputRef = useRef();
|
|
48
|
+
this.useStates({
|
|
49
|
+
blankInputName: digg(inputProps, "type") == "file"
|
|
50
|
+
});
|
|
51
|
+
useMemo(() => {
|
|
52
|
+
if (name) {
|
|
53
|
+
this.tt.form?.setValue(name, defaultValue);
|
|
54
|
+
}
|
|
55
|
+
}, []);
|
|
56
|
+
useUpdatedEvent(model, this.tt.onModelUpdated, {
|
|
57
|
+
active: Boolean(autoRefresh && model)
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
render() {
|
|
61
|
+
const {
|
|
62
|
+
attribute,
|
|
63
|
+
autoRefresh,
|
|
64
|
+
autoSubmit,
|
|
65
|
+
defaultValue,
|
|
66
|
+
formatValue,
|
|
67
|
+
id,
|
|
68
|
+
inputProps,
|
|
69
|
+
inputRef,
|
|
70
|
+
localizedNumber,
|
|
71
|
+
model,
|
|
72
|
+
name,
|
|
73
|
+
onChange,
|
|
74
|
+
onErrors,
|
|
75
|
+
onMatchValidationError,
|
|
76
|
+
type,
|
|
77
|
+
wrapperOpts,
|
|
78
|
+
...restProps
|
|
79
|
+
} = this.props;
|
|
80
|
+
const sharedProps = {
|
|
81
|
+
id: localizedNumber ? null : inputProps.id,
|
|
82
|
+
name: localizedNumber ? null : inputProps.name
|
|
83
|
+
};
|
|
84
|
+
const ref = localizedNumber ? this.visibleInputRef : this.inputReference();
|
|
85
|
+
const {
|
|
86
|
+
ref: inputPropsRef,
|
|
87
|
+
...inputPropsWithoutRef
|
|
88
|
+
} = inputProps;
|
|
89
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, localizedNumber && /*#__PURE__*/React.createElement("input", {
|
|
90
|
+
defaultValue: defaultValue,
|
|
91
|
+
id: inputProps.id,
|
|
92
|
+
name: this.inputName(),
|
|
93
|
+
ref: this.inputReference(),
|
|
94
|
+
type: "hidden"
|
|
95
|
+
}), type == "money" && /*#__PURE__*/React.createElement(Money, _extends({
|
|
96
|
+
attribute: attribute,
|
|
97
|
+
defaultValue: this.inputDefaultValueLocalized(),
|
|
98
|
+
inputRef: this.inputReference(),
|
|
99
|
+
model: model,
|
|
100
|
+
onChange: this.onInputChanged
|
|
101
|
+
}, inputPropsWithoutRef, sharedProps, restProps)), type == "textarea" && /*#__PURE__*/React.createElement("textarea", _extends({
|
|
102
|
+
defaultValue: this.inputDefaultValueLocalized(),
|
|
103
|
+
onChange: this.onInputChanged,
|
|
104
|
+
ref: ref
|
|
105
|
+
}, inputPropsWithoutRef, sharedProps, restProps)), type != "money" && type != "textarea" && /*#__PURE__*/React.createElement("input", _extends({
|
|
106
|
+
defaultValue: this.inputDefaultValueLocalized(),
|
|
107
|
+
onChange: this.onInputChanged,
|
|
108
|
+
ref: ref
|
|
109
|
+
}, inputPropsWithoutRef, sharedProps, {
|
|
110
|
+
name: localizedNumber ? null : this.inputName()
|
|
111
|
+
}, restProps)));
|
|
112
|
+
}
|
|
113
|
+
actualValue(visibleInput) {
|
|
114
|
+
const {
|
|
115
|
+
localizedNumber
|
|
116
|
+
} = digs(this.props, "localizedNumber");
|
|
117
|
+
const value = digg(visibleInput, "value");
|
|
118
|
+
if (localizedNumber) {
|
|
119
|
+
const decimal = I18n.t("number.currency.format.separator");
|
|
120
|
+
const integerSeparator = I18n.t("number.currency.format.delimiter");
|
|
121
|
+
let unformatted = replaceall(integerSeparator, "", value);
|
|
122
|
+
unformatted = replaceall(decimal, ".", unformatted);
|
|
123
|
+
return unformatted;
|
|
124
|
+
}
|
|
125
|
+
return value;
|
|
126
|
+
}
|
|
127
|
+
autoSubmit = () => new AutoSubmit({
|
|
128
|
+
component: this
|
|
129
|
+
}).autoSubmit();
|
|
130
|
+
formatValue(value) {
|
|
131
|
+
const {
|
|
132
|
+
formatValue,
|
|
133
|
+
type
|
|
134
|
+
} = this.props;
|
|
135
|
+
if (formatValue) {
|
|
136
|
+
return formatValue(value);
|
|
137
|
+
} else if (value instanceof Date && !isNaN(value.getTime())) {
|
|
138
|
+
// We need to use a certain format for datetime-local
|
|
139
|
+
if (type == "datetime-local") {
|
|
140
|
+
return strftime("%Y-%m-%dT%H:%M:%S", value);
|
|
141
|
+
} else if (type == "date") {
|
|
142
|
+
return strftime("%Y-%m-%d", value);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
return value;
|
|
146
|
+
}
|
|
147
|
+
inputDefaultValueLocalized() {
|
|
148
|
+
const {
|
|
149
|
+
defaultValue
|
|
150
|
+
} = this.props;
|
|
151
|
+
const {
|
|
152
|
+
localizedNumber
|
|
153
|
+
} = digs(this.props, "localizedNumber");
|
|
154
|
+
if (localizedNumber && defaultValue !== null && defaultValue !== undefined) {
|
|
155
|
+
const separator = I18n.t("number.currency.format.separator");
|
|
156
|
+
const delimiter = I18n.t("number.currency.format.delimiter");
|
|
157
|
+
let formatted = `${defaultValue}`;
|
|
158
|
+
formatted = replaceall(".", "{{separator}}", formatted);
|
|
159
|
+
formatted = replaceall(",", "{{delimiter}}", formatted);
|
|
160
|
+
formatted = replaceall("{{separator}}", separator, formatted);
|
|
161
|
+
formatted = replaceall("{{delimiter}}", delimiter, formatted);
|
|
162
|
+
return formatted;
|
|
163
|
+
}
|
|
164
|
+
return defaultValue;
|
|
165
|
+
}
|
|
166
|
+
inputName() {
|
|
167
|
+
if (this.state.blankInputName) return "";
|
|
168
|
+
return this.props.inputProps.name;
|
|
169
|
+
}
|
|
170
|
+
inputReference = () => digg(this, "props", "inputProps", "ref");
|
|
171
|
+
onModelUpdated = args => {
|
|
172
|
+
const inputRef = this.inputReference();
|
|
173
|
+
if (!inputRef.current) {
|
|
174
|
+
// This can happen if the component is being unmounted
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
const {
|
|
178
|
+
attribute
|
|
179
|
+
} = digs(this.props, "attribute");
|
|
180
|
+
const newModel = digg(args, "model");
|
|
181
|
+
const currentValue = digg(inputRef, "current", "value");
|
|
182
|
+
const newValue = newModel.readAttribute(attribute);
|
|
183
|
+
const newFormattedValue = this.formatValue(newValue);
|
|
184
|
+
if (currentValue != newFormattedValue) {
|
|
185
|
+
inputRef.current.value = newFormattedValue;
|
|
186
|
+
}
|
|
187
|
+
};
|
|
188
|
+
onInputChanged = e => {
|
|
189
|
+
const {
|
|
190
|
+
form
|
|
191
|
+
} = this.tt;
|
|
192
|
+
const {
|
|
193
|
+
attribute,
|
|
194
|
+
autoSubmit,
|
|
195
|
+
inputProps,
|
|
196
|
+
model,
|
|
197
|
+
onChange
|
|
198
|
+
} = this.props;
|
|
199
|
+
const {
|
|
200
|
+
localizedNumber
|
|
201
|
+
} = digs(this.props, "localizedNumber");
|
|
202
|
+
const {
|
|
203
|
+
name
|
|
204
|
+
} = inputProps;
|
|
205
|
+
if (localizedNumber) this.inputReference().current.value = this.actualValue(digg(e, "target"));
|
|
206
|
+
if (attribute && autoSubmit && model) this.delayAutoSubmit();
|
|
207
|
+
if (digg(inputProps, "type") == "file") this.setState({
|
|
208
|
+
blankInputName: this.getBlankInputName()
|
|
209
|
+
});
|
|
210
|
+
if (form && name) {
|
|
211
|
+
form.setValue(name, e.target.value);
|
|
212
|
+
}
|
|
213
|
+
if (onChange) onChange(e);
|
|
214
|
+
};
|
|
215
|
+
delayAutoSubmit() {
|
|
216
|
+
if (this.delayAutoSubmitTimeout) {
|
|
217
|
+
clearTimeout(this.delayAutoSubmitTimeout);
|
|
218
|
+
}
|
|
219
|
+
this.delayAutoSubmitTimeout = setTimeout(this.autoSubmit, 200);
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
// This fixes an issue in Firefox and ActiveStorage, where uploads would be a blank string if a file wasn't chosen
|
|
223
|
+
getBlankInputName() {
|
|
224
|
+
const value = dig(this.inputReference(), "current", "value");
|
|
225
|
+
if (this.props.inputProps.type == "file" && value == "") return true;
|
|
226
|
+
}
|
|
227
|
+
}));
|
|
228
|
+
export { ApiMakerInputsInput as Input };
|
|
229
|
+
export default inputWrapper(ApiMakerInputsInput);
|
|
230
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBdXRvU3VibWl0IiwiQmFzZUNvbXBvbmVudCIsImRpZyIsImRpZ2ciLCJkaWdzIiwiaW5wdXRXcmFwcGVyIiwibWVtbyIsIk1vbmV5IiwiUHJvcFR5cGVzIiwidXNlTWVtbyIsInVzZVJlZiIsInJlcGxhY2VhbGwiLCJzaGFwZUNvbXBvbmVudCIsInN0cmZ0aW1lIiwidXNlRm9ybSIsInVzZVVwZGF0ZWRFdmVudCIsIkFwaU1ha2VySW5wdXRzSW5wdXQiLCJkZWZhdWx0UHJvcHMiLCJhdXRvUmVmcmVzaCIsImF1dG9TdWJtaXQiLCJtb2RlbCIsImxvY2FsaXplZE51bWJlciIsInByb3BUeXBlcyIsImF0dHJpYnV0ZSIsInN0cmluZyIsImJvb2wiLCJpc1JlcXVpcmVkIiwiY2xhc3NOYW1lIiwiZm9ybWF0VmFsdWUiLCJmdW5jIiwiaWQiLCJvYmplY3QiLCJuYW1lIiwib25DaGFuZ2UiLCJvbk1hdGNoVmFsaWRhdGlvbkVycm9yIiwidHlwZSIsInNldHVwIiwiaW5wdXRQcm9wcyIsInAiLCJkZWZhdWx0VmFsdWUiLCJmb3JtIiwidmlzaWJsZUlucHV0UmVmIiwidXNlU3RhdGVzIiwiYmxhbmtJbnB1dE5hbWUiLCJ0dCIsInNldFZhbHVlIiwib25Nb2RlbFVwZGF0ZWQiLCJhY3RpdmUiLCJCb29sZWFuIiwicmVuZGVyIiwiaW5wdXRSZWYiLCJvbkVycm9ycyIsIndyYXBwZXJPcHRzIiwicmVzdFByb3BzIiwicHJvcHMiLCJzaGFyZWRQcm9wcyIsInJlZiIsImlucHV0UmVmZXJlbmNlIiwiaW5wdXRQcm9wc1JlZiIsImlucHV0UHJvcHNXaXRob3V0UmVmIiwiUmVhY3QiLCJjcmVhdGVFbGVtZW50IiwiRnJhZ21lbnQiLCJpbnB1dE5hbWUiLCJfZXh0ZW5kcyIsImlucHV0RGVmYXVsdFZhbHVlTG9jYWxpemVkIiwib25JbnB1dENoYW5nZWQiLCJhY3R1YWxWYWx1ZSIsInZpc2libGVJbnB1dCIsInZhbHVlIiwiZGVjaW1hbCIsIkkxOG4iLCJ0IiwiaW50ZWdlclNlcGFyYXRvciIsInVuZm9ybWF0dGVkIiwiY29tcG9uZW50IiwiRGF0ZSIsImlzTmFOIiwiZ2V0VGltZSIsInVuZGVmaW5lZCIsInNlcGFyYXRvciIsImRlbGltaXRlciIsImZvcm1hdHRlZCIsInN0YXRlIiwiYXJncyIsImN1cnJlbnQiLCJuZXdNb2RlbCIsImN1cnJlbnRWYWx1ZSIsIm5ld1ZhbHVlIiwicmVhZEF0dHJpYnV0ZSIsIm5ld0Zvcm1hdHRlZFZhbHVlIiwiZSIsImRlbGF5QXV0b1N1Ym1pdCIsInNldFN0YXRlIiwiZ2V0QmxhbmtJbnB1dE5hbWUiLCJ0YXJnZXQiLCJkZWxheUF1dG9TdWJtaXRUaW1lb3V0IiwiY2xlYXJUaW1lb3V0Iiwic2V0VGltZW91dCIsIklucHV0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2lucHV0cy9pbnB1dC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEF1dG9TdWJtaXQgZnJvbSBcIi4vYXV0by1zdWJtaXRcIlxuaW1wb3J0IEJhc2VDb21wb25lbnQgZnJvbSBcIi4uL2Jhc2UtY29tcG9uZW50XCJcbmltcG9ydCB7ZGlnLCBkaWdnLCBkaWdzfSBmcm9tIFwiZGlnZ2VyaXplXCJcbmltcG9ydCBpbnB1dFdyYXBwZXIgZnJvbSBcIi4vaW5wdXQtd3JhcHBlclwiXG5pbXBvcnQgbWVtbyBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvc3JjL21lbW9cIlxuaW1wb3J0IE1vbmV5IGZyb20gXCIuL21vbmV5XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IHt1c2VNZW1vLCB1c2VSZWZ9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgcmVwbGFjZWFsbCBmcm9tIFwicmVwbGFjZWFsbFwiXG5pbXBvcnQge3NoYXBlQ29tcG9uZW50fSBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvc3JjL3NoYXBlLWNvbXBvbmVudFwiXG5pbXBvcnQgc3RyZnRpbWUgZnJvbSBcInN0cmZ0aW1lXCJcbmltcG9ydCB7dXNlRm9ybX0gZnJvbSBcIi4uL2Zvcm1cIlxuaW1wb3J0IHVzZVVwZGF0ZWRFdmVudCBmcm9tIFwiLi4vdXNlLXVwZGF0ZWQtZXZlbnRcIlxuXG5jb25zdCBBcGlNYWtlcklucHV0c0lucHV0ID0gbWVtbyhzaGFwZUNvbXBvbmVudChjbGFzcyBBcGlNYWtlcklucHV0c0lucHV0IGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgYXV0b1JlZnJlc2g6IGZhbHNlLFxuICAgIGF1dG9TdWJtaXQ6IGZhbHNlLFxuICAgIG1vZGVsOiBudWxsLFxuICAgIGxvY2FsaXplZE51bWJlcjogZmFsc2VcbiAgfVxuXG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgYXR0cmlidXRlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGF1dG9SZWZyZXNoOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICAgIGF1dG9TdWJtaXQ6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGZvcm1hdFZhbHVlOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBpZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBsb2NhbGl6ZWROdW1iZXI6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgbW9kZWw6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG4gICAgb25NYXRjaFZhbGlkYXRpb25FcnJvcjogUHJvcFR5cGVzLmZ1bmMsXG4gICAgdHlwZTogUHJvcFR5cGVzLnN0cmluZ1xuICB9XG5cbiAgc2V0dXAoKSB7XG4gICAgY29uc3Qge2F1dG9SZWZyZXNoLCBpbnB1dFByb3BzLCBtb2RlbH0gPSB0aGlzLnBcbiAgICBjb25zdCB7ZGVmYXVsdFZhbHVlLCBuYW1lfSA9IGlucHV0UHJvcHNcblxuICAgIHRoaXMuZm9ybSA9IHVzZUZvcm0oKVxuICAgIHRoaXMudmlzaWJsZUlucHV0UmVmID0gdXNlUmVmKClcblxuICAgIHRoaXMudXNlU3RhdGVzKHtcbiAgICAgIGJsYW5rSW5wdXROYW1lOiBkaWdnKGlucHV0UHJvcHMsIFwidHlwZVwiKSA9PSBcImZpbGVcIlxuICAgIH0pXG5cbiAgICB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChuYW1lKSB7XG4gICAgICAgIHRoaXMudHQuZm9ybT8uc2V0VmFsdWUobmFtZSwgZGVmYXVsdFZhbHVlKVxuICAgICAgfVxuICAgIH0sIFtdKVxuXG4gICAgdXNlVXBkYXRlZEV2ZW50KG1vZGVsLCB0aGlzLnR0Lm9uTW9kZWxVcGRhdGVkLCB7YWN0aXZlOiBCb29sZWFuKGF1dG9SZWZyZXNoICYmIG1vZGVsKX0pXG4gIH1cblxuICByZW5kZXIgKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGF0dHJpYnV0ZSxcbiAgICAgIGF1dG9SZWZyZXNoLFxuICAgICAgYXV0b1N1Ym1pdCxcbiAgICAgIGRlZmF1bHRWYWx1ZSxcbiAgICAgIGZvcm1hdFZhbHVlLFxuICAgICAgaWQsXG4gICAgICBpbnB1dFByb3BzLFxuICAgICAgaW5wdXRSZWYsXG4gICAgICBsb2NhbGl6ZWROdW1iZXIsXG4gICAgICBtb2RlbCxcbiAgICAgIG5hbWUsXG4gICAgICBvbkNoYW5nZSxcbiAgICAgIG9uRXJyb3JzLFxuICAgICAgb25NYXRjaFZhbGlkYXRpb25FcnJvcixcbiAgICAgIHR5cGUsXG4gICAgICB3cmFwcGVyT3B0cyxcbiAgICAgIC4uLnJlc3RQcm9wc1xuICAgIH0gPSB0aGlzLnByb3BzXG5cbiAgICBjb25zdCBzaGFyZWRQcm9wcyA9IHtcbiAgICAgIGlkOiBsb2NhbGl6ZWROdW1iZXIgPyBudWxsIDogaW5wdXRQcm9wcy5pZCxcbiAgICAgIG5hbWU6IGxvY2FsaXplZE51bWJlciA/IG51bGwgOiBpbnB1dFByb3BzLm5hbWUsXG4gICAgfVxuICAgIGNvbnN0IHJlZiA9IGxvY2FsaXplZE51bWJlciA/IHRoaXMudmlzaWJsZUlucHV0UmVmIDogdGhpcy5pbnB1dFJlZmVyZW5jZSgpXG4gICAgY29uc3Qge3JlZjogaW5wdXRQcm9wc1JlZiwgLi4uaW5wdXRQcm9wc1dpdGhvdXRSZWZ9ID0gaW5wdXRQcm9wc1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIHtsb2NhbGl6ZWROdW1iZXIgJiZcbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZT17ZGVmYXVsdFZhbHVlfVxuICAgICAgICAgICAgaWQ9e2lucHV0UHJvcHMuaWR9XG4gICAgICAgICAgICBuYW1lPXt0aGlzLmlucHV0TmFtZSgpfVxuICAgICAgICAgICAgcmVmPXt0aGlzLmlucHV0UmVmZXJlbmNlKCl9XG4gICAgICAgICAgICB0eXBlPVwiaGlkZGVuXCJcbiAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICAgIHt0eXBlID09IFwibW9uZXlcIiAmJlxuICAgICAgICAgIDxNb25leVxuICAgICAgICAgICAgYXR0cmlidXRlPXthdHRyaWJ1dGV9XG4gICAgICAgICAgICBkZWZhdWx0VmFsdWU9e3RoaXMuaW5wdXREZWZhdWx0VmFsdWVMb2NhbGl6ZWQoKX1cbiAgICAgICAgICAgIGlucHV0UmVmPXt0aGlzLmlucHV0UmVmZXJlbmNlKCl9XG4gICAgICAgICAgICBtb2RlbD17bW9kZWx9XG4gICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5vbklucHV0Q2hhbmdlZH1cbiAgICAgICAgICAgIHsuLi5pbnB1dFByb3BzV2l0aG91dFJlZn1cbiAgICAgICAgICAgIHsuLi5zaGFyZWRQcm9wc31cbiAgICAgICAgICAgIHsuLi5yZXN0UHJvcHN9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgICB7dHlwZSA9PSBcInRleHRhcmVhXCIgJiZcbiAgICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZT17dGhpcy5pbnB1dERlZmF1bHRWYWx1ZUxvY2FsaXplZCgpfVxuICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMub25JbnB1dENoYW5nZWR9XG4gICAgICAgICAgICByZWY9e3JlZn1cbiAgICAgICAgICAgIHsuLi5pbnB1dFByb3BzV2l0aG91dFJlZn1cbiAgICAgICAgICAgIHsuLi5zaGFyZWRQcm9wc31cbiAgICAgICAgICAgIHsuLi5yZXN0UHJvcHN9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgICB7dHlwZSAhPSBcIm1vbmV5XCIgJiYgdHlwZSAhPSBcInRleHRhcmVhXCIgJiZcbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZT17dGhpcy5pbnB1dERlZmF1bHRWYWx1ZUxvY2FsaXplZCgpfVxuICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMub25JbnB1dENoYW5nZWR9XG4gICAgICAgICAgICByZWY9e3JlZn1cbiAgICAgICAgICAgIHsuLi5pbnB1dFByb3BzV2l0aG91dFJlZn1cbiAgICAgICAgICAgIHsuLi5zaGFyZWRQcm9wc31cbiAgICAgICAgICAgIG5hbWU9e2xvY2FsaXplZE51bWJlciA/IG51bGwgOiB0aGlzLmlucHV0TmFtZSgpfVxuICAgICAgICAgICAgey4uLnJlc3RQcm9wc31cbiAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICA8Lz5cbiAgICApXG4gIH1cblxuICBhY3R1YWxWYWx1ZSAodmlzaWJsZUlucHV0KSB7XG4gICAgY29uc3Qge2xvY2FsaXplZE51bWJlcn0gPSBkaWdzKHRoaXMucHJvcHMsIFwibG9jYWxpemVkTnVtYmVyXCIpXG4gICAgY29uc3QgdmFsdWUgPSBkaWdnKHZpc2libGVJbnB1dCwgXCJ2YWx1ZVwiKVxuXG4gICAgaWYgKGxvY2FsaXplZE51bWJlcikge1xuICAgICAgY29uc3QgZGVjaW1hbCA9IEkxOG4udChcIm51bWJlci5jdXJyZW5jeS5mb3JtYXQuc2VwYXJhdG9yXCIpXG4gICAgICBjb25zdCBpbnRlZ2VyU2VwYXJhdG9yID0gSTE4bi50KFwibnVtYmVyLmN1cnJlbmN5LmZvcm1hdC5kZWxpbWl0ZXJcIilcblxuICAgICAgbGV0IHVuZm9ybWF0dGVkID0gcmVwbGFjZWFsbChpbnRlZ2VyU2VwYXJhdG9yLCBcIlwiLCB2YWx1ZSlcblxuICAgICAgdW5mb3JtYXR0ZWQgPSByZXBsYWNlYWxsKGRlY2ltYWwsIFwiLlwiLCB1bmZvcm1hdHRlZClcblxuICAgICAgcmV0dXJuIHVuZm9ybWF0dGVkXG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlXG4gIH1cblxuICBhdXRvU3VibWl0ID0gKCkgPT4gbmV3IEF1dG9TdWJtaXQoe2NvbXBvbmVudDogdGhpc30pLmF1dG9TdWJtaXQoKVxuXG4gIGZvcm1hdFZhbHVlICh2YWx1ZSkge1xuICAgIGNvbnN0IHtmb3JtYXRWYWx1ZSwgdHlwZX0gPSB0aGlzLnByb3BzXG5cbiAgICBpZiAoZm9ybWF0VmFsdWUpIHtcbiAgICAgIHJldHVybiBmb3JtYXRWYWx1ZSh2YWx1ZSlcbiAgICB9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSAmJiAhaXNOYU4odmFsdWUuZ2V0VGltZSgpKSkge1xuICAgICAgLy8gV2UgbmVlZCB0byB1c2UgYSBjZXJ0YWluIGZvcm1hdCBmb3IgZGF0ZXRpbWUtbG9jYWxcbiAgICAgIGlmICh0eXBlID09IFwiZGF0ZXRpbWUtbG9jYWxcIikge1xuICAgICAgICByZXR1cm4gc3RyZnRpbWUoXCIlWS0lbS0lZFQlSDolTTolU1wiLCB2YWx1ZSlcbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSBcImRhdGVcIikge1xuICAgICAgICByZXR1cm4gc3RyZnRpbWUoXCIlWS0lbS0lZFwiLCB2YWx1ZSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWVcbiAgfVxuXG4gIGlucHV0RGVmYXVsdFZhbHVlTG9jYWxpemVkICgpIHtcbiAgICBjb25zdCB7ZGVmYXVsdFZhbHVlfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCB7bG9jYWxpemVkTnVtYmVyfSA9IGRpZ3ModGhpcy5wcm9wcywgXCJsb2NhbGl6ZWROdW1iZXJcIilcblxuICAgIGlmIChsb2NhbGl6ZWROdW1iZXIgJiYgZGVmYXVsdFZhbHVlICE9PSBudWxsICYmIGRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBzZXBhcmF0b3IgPSBJMThuLnQoXCJudW1iZXIuY3VycmVuY3kuZm9ybWF0LnNlcGFyYXRvclwiKVxuICAgICAgY29uc3QgZGVsaW1pdGVyID0gSTE4bi50KFwibnVtYmVyLmN1cnJlbmN5LmZvcm1hdC5kZWxpbWl0ZXJcIilcblxuICAgICAgbGV0IGZvcm1hdHRlZCA9IGAke2RlZmF1bHRWYWx1ZX1gXG5cbiAgICAgIGZvcm1hdHRlZCA9IHJlcGxhY2VhbGwoXCIuXCIsIFwie3tzZXBhcmF0b3J9fVwiLCBmb3JtYXR0ZWQpXG4gICAgICBmb3JtYXR0ZWQgPSByZXBsYWNlYWxsKFwiLFwiLCBcInt7ZGVsaW1pdGVyfX1cIiwgZm9ybWF0dGVkKVxuICAgICAgZm9ybWF0dGVkID0gcmVwbGFjZWFsbChcInt7c2VwYXJhdG9yfX1cIiwgc2VwYXJhdG9yLCBmb3JtYXR0ZWQpXG4gICAgICBmb3JtYXR0ZWQgPSByZXBsYWNlYWxsKFwie3tkZWxpbWl0ZXJ9fVwiLCBkZWxpbWl0ZXIsIGZvcm1hdHRlZClcblxuICAgICAgcmV0dXJuIGZvcm1hdHRlZFxuICAgIH1cblxuICAgIHJldHVybiBkZWZhdWx0VmFsdWVcbiAgfVxuXG4gIGlucHV0TmFtZSAoKSB7XG4gICAgaWYgKHRoaXMuc3RhdGUuYmxhbmtJbnB1dE5hbWUpIHJldHVybiBcIlwiXG5cbiAgICByZXR1cm4gdGhpcy5wcm9wcy5pbnB1dFByb3BzLm5hbWVcbiAgfVxuXG4gIGlucHV0UmVmZXJlbmNlID0gKCkgPT4gZGlnZyh0aGlzLCBcInByb3BzXCIsIFwiaW5wdXRQcm9wc1wiLCBcInJlZlwiKVxuXG4gIG9uTW9kZWxVcGRhdGVkID0gKGFyZ3MpID0+IHtcbiAgICBjb25zdCBpbnB1dFJlZiA9IHRoaXMuaW5wdXRSZWZlcmVuY2UoKVxuXG4gICAgaWYgKCFpbnB1dFJlZi5jdXJyZW50KSB7XG4gICAgICAvLyBUaGlzIGNhbiBoYXBwZW4gaWYgdGhlIGNvbXBvbmVudCBpcyBiZWluZyB1bm1vdW50ZWRcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IHthdHRyaWJ1dGV9ID0gZGlncyh0aGlzLnByb3BzLCBcImF0dHJpYnV0ZVwiKVxuICAgIGNvbnN0IG5ld01vZGVsID0gZGlnZyhhcmdzLCBcIm1vZGVsXCIpXG4gICAgY29uc3QgY3VycmVudFZhbHVlID0gZGlnZyhpbnB1dFJlZiwgXCJjdXJyZW50XCIsIFwidmFsdWVcIilcbiAgICBjb25zdCBuZXdWYWx1ZSA9IG5ld01vZGVsLnJlYWRBdHRyaWJ1dGUoYXR0cmlidXRlKVxuICAgIGNvbnN0IG5ld0Zvcm1hdHRlZFZhbHVlID0gdGhpcy5mb3JtYXRWYWx1ZShuZXdWYWx1ZSlcblxuICAgIGlmIChjdXJyZW50VmFsdWUgIT0gbmV3Rm9ybWF0dGVkVmFsdWUpIHtcbiAgICAgIGlucHV0UmVmLmN1cnJlbnQudmFsdWUgPSBuZXdGb3JtYXR0ZWRWYWx1ZVxuICAgIH1cbiAgfVxuXG4gIG9uSW5wdXRDaGFuZ2VkID0gKGUpID0+IHtcbiAgICBjb25zdCB7Zm9ybX0gPSB0aGlzLnR0XG4gICAgY29uc3Qge2F0dHJpYnV0ZSwgYXV0b1N1Ym1pdCwgaW5wdXRQcm9wcywgbW9kZWwsIG9uQ2hhbmdlfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCB7bG9jYWxpemVkTnVtYmVyfSA9IGRpZ3ModGhpcy5wcm9wcywgXCJsb2NhbGl6ZWROdW1iZXJcIilcbiAgICBjb25zdCB7bmFtZX0gPSBpbnB1dFByb3BzXG5cbiAgICBpZiAobG9jYWxpemVkTnVtYmVyKSB0aGlzLmlucHV0UmVmZXJlbmNlKCkuY3VycmVudC52YWx1ZSA9IHRoaXMuYWN0dWFsVmFsdWUoZGlnZyhlLCBcInRhcmdldFwiKSlcblxuICAgIGlmIChhdHRyaWJ1dGUgJiYgYXV0b1N1Ym1pdCAmJiBtb2RlbCkgdGhpcy5kZWxheUF1dG9TdWJtaXQoKVxuICAgIGlmIChkaWdnKGlucHV0UHJvcHMsIFwidHlwZVwiKSA9PSBcImZpbGVcIikgdGhpcy5zZXRTdGF0ZSh7YmxhbmtJbnB1dE5hbWU6IHRoaXMuZ2V0QmxhbmtJbnB1dE5hbWUoKX0pXG5cbiAgICBpZiAoZm9ybSAmJiBuYW1lKSB7XG4gICAgICBmb3JtLnNldFZhbHVlKG5hbWUsIGUudGFyZ2V0LnZhbHVlKVxuICAgIH1cblxuICAgIGlmIChvbkNoYW5nZSkgb25DaGFuZ2UoZSlcbiAgfVxuXG4gIGRlbGF5QXV0b1N1Ym1pdCAoKSB7XG4gICAgaWYgKHRoaXMuZGVsYXlBdXRvU3VibWl0VGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuZGVsYXlBdXRvU3VibWl0VGltZW91dClcbiAgICB9XG5cbiAgICB0aGlzLmRlbGF5QXV0b1N1Ym1pdFRpbWVvdXQgPSBzZXRUaW1lb3V0KHRoaXMuYXV0b1N1Ym1pdCwgMjAwKVxuICB9XG5cbiAgLy8gVGhpcyBmaXhlcyBhbiBpc3N1ZSBpbiBGaXJlZm94IGFuZCBBY3RpdmVTdG9yYWdlLCB3aGVyZSB1cGxvYWRzIHdvdWxkIGJlIGEgYmxhbmsgc3RyaW5nIGlmIGEgZmlsZSB3YXNuJ3QgY2hvc2VuXG4gIGdldEJsYW5rSW5wdXROYW1lICgpIHtcbiAgICBjb25zdCB2YWx1ZSA9IGRpZyh0aGlzLmlucHV0UmVmZXJlbmNlKCksIFwiY3VycmVudFwiLCBcInZhbHVlXCIpXG5cbiAgICBpZiAodGhpcy5wcm9wcy5pbnB1dFByb3BzLnR5cGUgPT0gXCJmaWxlXCIgJiYgdmFsdWUgPT0gXCJcIilcbiAgICAgIHJldHVybiB0cnVlXG4gIH1cbn0pKVxuXG5leHBvcnQge0FwaU1ha2VySW5wdXRzSW5wdXQgYXMgSW5wdXR9XG5leHBvcnQgZGVmYXVsdCBpbnB1dFdyYXBwZXIoQXBpTWFrZXJJbnB1dHNJbnB1dClcbiJdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU9BLFVBQVUsTUFBTSxlQUFlO0FBQ3RDLE9BQU9DLGFBQWEsTUFBTSxtQkFBbUI7QUFDN0MsU0FBUUMsR0FBRyxFQUFF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
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import classNames from "classnames";
|
|
2
|
+
import Config from "../config";
|
|
3
|
+
import { digg } from "diggerize";
|
|
4
|
+
import idForComponent from "./id-for-component";
|
|
5
|
+
import * as inflection from "inflection";
|
|
6
|
+
import memo from "set-state-compare/src/memo";
|
|
7
|
+
import MoneyFormatter from "../money-formatter";
|
|
8
|
+
import PropTypes from "prop-types";
|
|
9
|
+
import PropTypesExact from "prop-types-exact";
|
|
10
|
+
import { useRef } from "react";
|
|
11
|
+
import { shapeComponent, ShapeComponent } from "set-state-compare/src/shape-component";
|
|
12
|
+
export default memo(shapeComponent(class ApiMakerInputsMoney extends ShapeComponent {
|
|
13
|
+
static defaultProps = {
|
|
14
|
+
disabled: false,
|
|
15
|
+
showCurrencyOptions: true
|
|
16
|
+
};
|
|
17
|
+
static propTypes = PropTypesExact({
|
|
18
|
+
attribute: PropTypes.string,
|
|
19
|
+
centsInputName: PropTypes.string,
|
|
20
|
+
className: PropTypes.string,
|
|
21
|
+
currenciesCollection: PropTypes.array,
|
|
22
|
+
currencyName: PropTypes.string,
|
|
23
|
+
currencyRef: PropTypes.object,
|
|
24
|
+
defaultValue: PropTypes.object,
|
|
25
|
+
disabled: PropTypes.bool.isRequired,
|
|
26
|
+
id: PropTypes.string,
|
|
27
|
+
inputRef: PropTypes.object,
|
|
28
|
+
label: PropTypes.node,
|
|
29
|
+
model: PropTypes.object,
|
|
30
|
+
name: PropTypes.string,
|
|
31
|
+
onChange: PropTypes.func,
|
|
32
|
+
placeholder: PropTypes.node,
|
|
33
|
+
showCurrencyOptions: PropTypes.bool,
|
|
34
|
+
small: PropTypes.bool,
|
|
35
|
+
type: PropTypes.string,
|
|
36
|
+
wholeRef: PropTypes.object
|
|
37
|
+
});
|
|
38
|
+
setup() {
|
|
39
|
+
this.inputRef = useRef();
|
|
40
|
+
this.currencyRefBackup = useRef();
|
|
41
|
+
this.currencyRef = this.props.currencyRef || this.currencyRefBackup;
|
|
42
|
+
this.wholeRefBackup = useRef();
|
|
43
|
+
this.wholeRef = this.props.wholeRef || this.wholeRefBackup;
|
|
44
|
+
}
|
|
45
|
+
getInputRef() {
|
|
46
|
+
return this.props.inputRef || this.inputRef;
|
|
47
|
+
}
|
|
48
|
+
render() {
|
|
49
|
+
const {
|
|
50
|
+
attribute,
|
|
51
|
+
className,
|
|
52
|
+
disabled,
|
|
53
|
+
model,
|
|
54
|
+
showCurrencyOptions
|
|
55
|
+
} = this.props;
|
|
56
|
+
let {
|
|
57
|
+
currenciesCollection
|
|
58
|
+
} = this.props;
|
|
59
|
+
if (!currenciesCollection) currenciesCollection = Config.getCurrenciesCollection();
|
|
60
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
61
|
+
className: "api-maker-inputs-money",
|
|
62
|
+
"data-attribute": attribute,
|
|
63
|
+
"data-model-id": model?.id()
|
|
64
|
+
}, /*#__PURE__*/React.createElement("input", {
|
|
65
|
+
defaultValue: this.inputDefaultCentsValue(),
|
|
66
|
+
id: this.inputCentsId(),
|
|
67
|
+
name: this.inputCentsName(),
|
|
68
|
+
ref: this.getInputRef(),
|
|
69
|
+
type: "hidden"
|
|
70
|
+
}), /*#__PURE__*/React.createElement("input", {
|
|
71
|
+
className: classNames("money-cents", className),
|
|
72
|
+
defaultValue: this.inputDefaultValue(),
|
|
73
|
+
disabled: disabled,
|
|
74
|
+
id: this.inputId(),
|
|
75
|
+
onBlur: digg(this, "setAmount"),
|
|
76
|
+
onChange: digg(this, "setCents"),
|
|
77
|
+
onKeyUp: digg(this, "setCents"),
|
|
78
|
+
placeholder: this.props.placeholder,
|
|
79
|
+
ref: this.wholeRef,
|
|
80
|
+
type: "text"
|
|
81
|
+
}), showCurrencyOptions && /*#__PURE__*/React.createElement("select", {
|
|
82
|
+
className: "money-currency",
|
|
83
|
+
defaultValue: this.inputCurrencyValue(),
|
|
84
|
+
disabled: disabled,
|
|
85
|
+
id: this.inputCurrencyId(),
|
|
86
|
+
name: this.inputCurrencyName(),
|
|
87
|
+
onChange: digg(this, "onCurrencyChanged"),
|
|
88
|
+
ref: this.currencyRef
|
|
89
|
+
}, /*#__PURE__*/React.createElement("option", null), currenciesCollection.map(option => /*#__PURE__*/React.createElement("option", {
|
|
90
|
+
key: `select-option-${option[1]}`,
|
|
91
|
+
value: option[1]
|
|
92
|
+
}, this.props.small && option[1], !this.props.small && option[0]))));
|
|
93
|
+
}
|
|
94
|
+
inputCurrencyId() {
|
|
95
|
+
return `${this.inputId()}_currency`;
|
|
96
|
+
}
|
|
97
|
+
inputCurrencyName() {
|
|
98
|
+
if ("currencyName" in this.props) return this.props.currencyName;
|
|
99
|
+
return `${this.props.model.modelClassData().paramKey}[${inflection.underscore(this.props.attribute)}_currency]`;
|
|
100
|
+
}
|
|
101
|
+
inputCurrencyValue() {
|
|
102
|
+
const {
|
|
103
|
+
defaultValue
|
|
104
|
+
} = this.props;
|
|
105
|
+
if (defaultValue) {
|
|
106
|
+
return MoneyFormatter.currencyFromMoney(defaultValue).code;
|
|
107
|
+
} else {
|
|
108
|
+
return "DKK";
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
inputDefaultValue() {
|
|
112
|
+
const {
|
|
113
|
+
defaultValue
|
|
114
|
+
} = this.props;
|
|
115
|
+
if (defaultValue) {
|
|
116
|
+
return MoneyFormatter.fromMoney({
|
|
117
|
+
amount: defaultValue.amount,
|
|
118
|
+
currency: this.inputCurrencyValue()
|
|
119
|
+
}, {
|
|
120
|
+
decimals: 2,
|
|
121
|
+
excludeCurrency: true
|
|
122
|
+
}).toString();
|
|
123
|
+
} else {
|
|
124
|
+
return "";
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
inputDefaultCentsValue() {
|
|
128
|
+
const {
|
|
129
|
+
defaultValue
|
|
130
|
+
} = this.props;
|
|
131
|
+
if (this.getInputRef().current) {
|
|
132
|
+
return digg(this.getInputRef(), "current", "value");
|
|
133
|
+
} else if (defaultValue) {
|
|
134
|
+
return MoneyFormatter.amountFromMoney(defaultValue);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
inputCentsId() {
|
|
138
|
+
return `${this.inputId()}_cents`;
|
|
139
|
+
}
|
|
140
|
+
inputCentsName() {
|
|
141
|
+
if ("name" in this.props) return this.props.name;
|
|
142
|
+
return `${this.props.model.modelClassData().paramKey}[${inflection.underscore(this.props.attribute)}_cents]`;
|
|
143
|
+
}
|
|
144
|
+
inputId() {
|
|
145
|
+
return idForComponent(this);
|
|
146
|
+
}
|
|
147
|
+
onCurrencyChanged = () => {
|
|
148
|
+
if (this.props.onChange) this.props.onChange();
|
|
149
|
+
};
|
|
150
|
+
setAmount = () => {
|
|
151
|
+
const inputElement = this.getInputRef().current;
|
|
152
|
+
if (!inputElement.value && inputElement.value == "") {
|
|
153
|
+
this.wholeRef.current.value = "";
|
|
154
|
+
} else {
|
|
155
|
+
const cents = parseFloat(inputElement.value);
|
|
156
|
+
const formatted = MoneyFormatter.fromMoney({
|
|
157
|
+
amount: cents,
|
|
158
|
+
currency: this.inputCurrencyValue()
|
|
159
|
+
}, {
|
|
160
|
+
decimals: 2,
|
|
161
|
+
excludeCurrency: true
|
|
162
|
+
}).toString();
|
|
163
|
+
this.wholeRef.current.value = formatted;
|
|
164
|
+
}
|
|
165
|
+
};
|
|
166
|
+
setCents = () => {
|
|
167
|
+
const inputElement = this.getInputRef().current;
|
|
168
|
+
let whole = MoneyFormatter.stringToFloat(this.wholeRef.current.value);
|
|
169
|
+
let cents = parseInt(whole * 100, 10);
|
|
170
|
+
let oldCents = parseInt(inputElement.value, 10);
|
|
171
|
+
if (typeof cents == "number") {
|
|
172
|
+
inputElement.value = cents;
|
|
173
|
+
} else {
|
|
174
|
+
inputElement.value = '';
|
|
175
|
+
}
|
|
176
|
+
if (this.props.onChange && oldCents != cents) this.props.onChange();
|
|
177
|
+
};
|
|
178
|
+
}));
|
|
179
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjbGFzc05hbWVzIiwiQ29uZmlnIiwiZGlnZyIsImlkRm9yQ29tcG9uZW50IiwiaW5mbGVjdGlvbiIsIm1lbW8iLCJNb25leUZvcm1hdHRlciIsIlByb3BUeXBlcyIsIlByb3BUeXBlc0V4YWN0IiwidXNlUmVmIiwic2hhcGVDb21wb25lbnQiLCJTaGFwZUNvbXBvbmVudCIsIkFwaU1ha2VySW5wdXRzTW9uZXkiLCJkZWZhdWx0UHJvcHMiLCJkaXNhYmxlZCIsInNob3dDdXJyZW5jeU9wdGlvbnMiLCJwcm9wVHlwZXMiLCJhdHRyaWJ1dGUiLCJzdHJpbmciLCJjZW50c0lucHV0TmFtZSIsImNsYXNzTmFtZSIsImN1cnJlbmNpZXNDb2xsZWN0aW9uIiwiYXJyYXkiLCJjdXJyZW5jeU5hbWUiLCJjdXJyZW5jeVJlZiIsIm9iamVjdCIsImRlZmF1bHRWYWx1ZSIsImJvb2wiLCJpc1JlcXVpcmVkIiwiaWQiLCJpbnB1dFJlZiIsImxhYmVsIiwibm9kZSIsIm1vZGVsIiwibmFtZSIsIm9uQ2hhbmdlIiwiZnVuYyIsInBsYWNlaG9sZGVyIiwic21hbGwiLCJ0eXBlIiwid2hvbGVSZWYiLCJzZXR1cCIsImN1cnJlbmN5UmVmQmFja3VwIiwicHJvcHMiLCJ3aG9sZVJlZkJhY2t1cCIsImdldElucHV0UmVmIiwicmVuZGVyIiwiZ2V0Q3VycmVuY2llc0NvbGxlY3Rpb24iLCJSZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJpbnB1dERlZmF1bHRDZW50c1ZhbHVlIiwiaW5wdXRDZW50c0lkIiwiaW5wdXRDZW50c05hbWUiLCJyZWYiLCJpbnB1dERlZmF1bHRWYWx1ZSIsImlucHV0SWQiLCJvbkJsdXIiLCJvbktleVVwIiwiaW5wdXRDdXJyZW5jeVZhbHVlIiwiaW5wdXRDdXJyZW5jeUlkIiwiaW5wdXRDdXJyZW5jeU5hbWUiLCJtYXAiLCJvcHRpb24iLCJrZXkiLCJ2YWx1ZSIsIm1vZGVsQ2xhc3NEYXRhIiwicGFyYW1LZXkiLCJ1bmRlcnNjb3JlIiwiY3VycmVuY3lGcm9tTW9uZXkiLCJjb2RlIiwiZnJvbU1vbmV5IiwiYW1vdW50IiwiY3VycmVuY3kiLCJkZWNpbWFscyIsImV4Y2x1ZGVDdXJyZW5jeSIsInRvU3RyaW5nIiwiY3VycmVudCIsImFtb3VudEZyb21Nb25leSIsIm9uQ3VycmVuY3lDaGFuZ2VkIiwic2V0QW1vdW50IiwiaW5wdXRFbGVtZW50IiwiY2VudHMiLCJwYXJzZUZsb2F0IiwiZm9ybWF0dGVkIiwic2V0Q2VudHMiLCJ3aG9sZSIsInN0cmluZ1RvRmxvYXQiLCJwYXJzZUludCIsIm9sZENlbnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2lucHV0cy9tb25leS5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSBcImNsYXNzbmFtZXNcIlxuaW1wb3J0IENvbmZpZyBmcm9tIFwiLi4vY29uZmlnXCJcbmltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgaWRGb3JDb21wb25lbnQgZnJvbSBcIi4vaWQtZm9yLWNvbXBvbmVudFwiXG5pbXBvcnQgKiBhcyBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCJcbmltcG9ydCBtZW1vIGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvbWVtb1wiXG5pbXBvcnQgTW9uZXlGb3JtYXR0ZXIgZnJvbSBcIi4uL21vbmV5LWZvcm1hdHRlclwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBQcm9wVHlwZXNFeGFjdCBmcm9tIFwicHJvcC10eXBlcy1leGFjdFwiXG5pbXBvcnQge3VzZVJlZn0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7c2hhcGVDb21wb25lbnQsIFNoYXBlQ29tcG9uZW50fSBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvc3JjL3NoYXBlLWNvbXBvbmVudFwiXG5cbmV4cG9ydCBkZWZhdWx0IG1lbW8oc2hhcGVDb21wb25lbnQoY2xhc3MgQXBpTWFrZXJJbnB1dHNNb25leSBleHRlbmRzIFNoYXBlQ29tcG9uZW50IHtcbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgc2hvd0N1cnJlbmN5T3B0aW9uczogdHJ1ZVxuICB9XG5cbiAgc3RhdGljIHByb3BUeXBlcyA9IFByb3BUeXBlc0V4YWN0KHtcbiAgICBhdHRyaWJ1dGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgY2VudHNJbnB1dE5hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGN1cnJlbmNpZXNDb2xsZWN0aW9uOiBQcm9wVHlwZXMuYXJyYXksXG4gICAgY3VycmVuY3lOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGN1cnJlbmN5UmVmOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGRlZmF1bHRWYWx1ZTogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBkaXNhYmxlZDogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBpZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBpbnB1dFJlZjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBsYWJlbDogUHJvcFR5cGVzLm5vZGUsXG4gICAgbW9kZWw6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG4gICAgcGxhY2Vob2xkZXI6IFByb3BUeXBlcy5ub2RlLFxuICAgIHNob3dDdXJyZW5jeU9wdGlvbnM6IFByb3BUeXBlcy5ib29sLFxuICAgIHNtYWxsOiBQcm9wVHlwZXMuYm9vbCxcbiAgICB0eXBlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIHdob2xlUmVmOiBQcm9wVHlwZXMub2JqZWN0XG4gIH0pXG5cbiAgc2V0dXAoKSB7XG4gICAgdGhpcy5pbnB1dFJlZiA9IHVzZVJlZigpXG4gICAgdGhpcy5jdXJyZW5jeVJlZkJhY2t1cCA9IHVzZVJlZigpXG4gICAgdGhpcy5jdXJyZW5jeVJlZiA9IHRoaXMucHJvcHMuY3VycmVuY3lSZWYgfHwgdGhpcy5jdXJyZW5jeVJlZkJhY2t1cFxuICAgIHRoaXMud2hvbGVSZWZCYWNrdXAgPSB1c2VSZWYoKVxuICAgIHRoaXMud2hvbGVSZWYgPSB0aGlzLnByb3BzLndob2xlUmVmIHx8IHRoaXMud2hvbGVSZWZCYWNrdXBcbiAgfVxuXG4gIGdldElucHV0UmVmICgpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5pbnB1dFJlZiB8fCB0aGlzLmlucHV0UmVmXG4gIH1cblxuICByZW5kZXIgKCkge1xuICAgIGNvbnN0IHthdHRyaWJ1dGUsIGNsYXNzTmFtZSwgZGlzYWJsZWQsIG1vZGVsLCBzaG93Q3VycmVuY3lPcHRpb25zfSA9IHRoaXMucHJvcHNcbiAgICBsZXQge2N1cnJlbmNpZXNDb2xsZWN0aW9ufSA9IHRoaXMucHJvcHNcblxuICAgIGlmICghY3VycmVuY2llc0NvbGxlY3Rpb24pIGN1cnJlbmNpZXNDb2xsZWN0aW9uID0gQ29uZmlnLmdldEN1cnJlbmNpZXNDb2xsZWN0aW9uKClcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImFwaS1tYWtlci1pbnB1dHMtbW9uZXlcIiBkYXRhLWF0dHJpYnV0ZT17YXR0cmlidXRlfSBkYXRhLW1vZGVsLWlkPXttb2RlbD8uaWQoKX0+XG4gICAgICAgIDxpbnB1dCBkZWZhdWx0VmFsdWU9e3RoaXMuaW5wdXREZWZhdWx0Q2VudHNWYWx1ZSgpfSBpZD17dGhpcy5pbnB1dENlbnRzSWQoKX0gbmFtZT17dGhpcy5pbnB1dENlbnRzTmFtZSgpfSByZWY9e3RoaXMuZ2V0SW5wdXRSZWYoKX0gdHlwZT1cImhpZGRlblwiIC8+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhcIm1vbmV5LWNlbnRzXCIsIGNsYXNzTmFtZSl9XG4gICAgICAgICAgZGVmYXVsdFZhbHVlPXt0aGlzLmlucHV0RGVmYXVsdFZhbHVlKCl9XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIGlkPXt0aGlzLmlucHV0SWQoKX1cbiAgICAgICAgICBvbkJsdXI9e2RpZ2codGhpcywgXCJzZXRBbW91bnRcIil9XG4gICAgICAgICAgb25DaGFuZ2U9e2RpZ2codGhpcywgXCJzZXRDZW50c1wiKX1cbiAgICAgICAgICBvbktleVVwPXtkaWdnKHRoaXMsIFwic2V0Q2VudHNcIil9XG4gICAgICAgICAgcGxhY2Vob2xkZXI9e3RoaXMucHJvcHMucGxhY2Vob2xkZXJ9XG4gICAgICAgICAgcmVmPXt0aGlzLndob2xlUmVmfVxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgLz5cbiAgICAgICAge3Nob3dDdXJyZW5jeU9wdGlvbnMgJiZcbiAgICAgICAgICA8c2VsZWN0XG4gICAgICAgICAgICBjbGFzc05hbWU9XCJtb25leS1jdXJyZW5jeVwiXG4gICAgICAgICAgICBkZWZhdWx0VmFsdWU9e3RoaXMuaW5wdXRDdXJyZW5jeVZhbHVlKCl9XG4gICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICBpZD17dGhpcy5pbnB1dEN1cnJlbmN5SWQoKX1cbiAgICAgICAgICAgIG5hbWU9e3RoaXMuaW5wdXRDdXJyZW5jeU5hbWUoKX1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXtkaWdnKHRoaXMsIFwib25DdXJyZW5jeUNoYW5nZWRcIil9XG4gICAgICAgICAgICByZWY9e3RoaXMuY3VycmVuY3lSZWZ9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG9wdGlvbj48L29wdGlvbj5cbiAgICAgICAgICAgIHtjdXJyZW5jaWVzQ29sbGVjdGlvbi5tYXAoKG9wdGlvbikgPT4gKFxuICAgICAgICAgICAgICA8b3B0aW9uIGtleT17YHNlbGVjdC1vcHRpb24tJHtvcHRpb25bMV19YH0gdmFsdWU9e29wdGlvblsxXX0+XG4gICAgICAgICAgICAgICAge3RoaXMucHJvcHMuc21hbGwgJiYgb3B0aW9uWzFdfVxuICAgICAgICAgICAgICAgIHshdGhpcy5wcm9wcy5zbWFsbCAmJiBvcHRpb25bMF19XG4gICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxuXG4gIGlucHV0Q3VycmVuY3lJZCAoKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuaW5wdXRJZCgpfV9jdXJyZW5jeWBcbiAgfVxuXG4gIGlucHV0Q3VycmVuY3lOYW1lICgpIHtcbiAgICBpZiAoXCJjdXJyZW5jeU5hbWVcIiBpbiB0aGlzLnByb3BzKVxuICAgICAgcmV0dXJuIHRoaXMucHJvcHMuY3VycmVuY3lOYW1lXG5cbiAgICByZXR1cm4gYCR7dGhpcy5wcm9wcy5tb2RlbC5tb2RlbENsYXNzRGF0YSgpLnBhcmFtS2V5fVske2luZmxlY3Rpb24udW5kZXJzY29yZSh0aGlzLnByb3BzLmF0dHJpYnV0ZSl9X2N1cnJlbmN5XWBcbiAgfVxuXG4gIGlucHV0Q3VycmVuY3lWYWx1ZSAoKSB7XG4gICAgY29uc3Qge2RlZmF1bHRWYWx1ZX0gPSB0aGlzLnByb3BzXG5cbiAgICBpZiAoZGVmYXVsdFZhbHVlKSB7XG4gICAgICByZXR1cm4gTW9uZXlGb3JtYXR0ZXIuY3VycmVuY3lGcm9tTW9uZXkoZGVmYXVsdFZhbHVlKS5jb2RlXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBcIkRLS1wiXG4gICAgfVxuICB9XG5cbiAgaW5wdXREZWZhdWx0VmFsdWUgKCkge1xuICAgIGNvbnN0IHtkZWZhdWx0VmFsdWV9ID0gdGhpcy5wcm9wc1xuXG4gICAgaWYgKGRlZmF1bHRWYWx1ZSkge1xuICAgICAgcmV0dXJuIE1vbmV5Rm9ybWF0dGVyLmZyb21Nb25leSh7YW1vdW50OiBkZWZhdWx0VmFsdWUuYW1vdW50LCBjdXJyZW5jeTogdGhpcy5pbnB1dEN1cnJlbmN5VmFsdWUoKX0sIHtkZWNpbWFsczogMiwgZXhjbHVkZUN1cnJlbmN5OiB0cnVlfSkudG9TdHJpbmcoKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gXCJcIlxuICAgIH1cbiAgfVxuXG4gIGlucHV0RGVmYXVsdENlbnRzVmFsdWUgKCkge1xuICAgIGNvbnN0IHtkZWZhdWx0VmFsdWV9ID0gdGhpcy5wcm9wc1xuXG4gICAgaWYgKHRoaXMuZ2V0SW5wdXRSZWYoKS5jdXJyZW50KSB7XG4gICAgICByZXR1cm4gZGlnZyh0aGlzLmdldElucHV0UmVmKCksIFwiY3VycmVudFwiLCBcInZhbHVlXCIpXG4gICAgfSBlbHNlIGlmIChkZWZhdWx0VmFsdWUpIHtcbiAgICAgIHJldHVybiBNb25leUZvcm1hdHRlci5hbW91bnRGcm9tTW9uZXkoZGVmYXVsdFZhbHVlKVxuICAgIH1cbiAgfVxuXG4gIGlucHV0Q2VudHNJZCAoKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuaW5wdXRJZCgpfV9jZW50c2BcbiAgfVxuXG4gIGlucHV0Q2VudHNOYW1lICgpIHtcbiAgICBpZiAoXCJuYW1lXCIgaW4gdGhpcy5wcm9wcylcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLm5hbWVcblxuICAgIHJldHVybiBgJHt0aGlzLnByb3BzLm1vZGVsLm1vZGVsQ2xhc3NEYXRhKCkucGFyYW1LZXl9WyR7aW5mbGVjdGlvbi51bmRlcnNjb3JlKHRoaXMucHJvcHMuYXR0cmlidXRlKX1fY2VudHNdYFxuICB9XG5cbiAgaW5wdXRJZCAoKSB7XG4gICAgcmV0dXJuIGlkRm9yQ29tcG9uZW50KHRoaXMpXG4gIH1cblxuICBvbkN1cnJlbmN5Q2hhbmdlZCA9ICgpID0+IHtcbiAgICBpZiAodGhpcy5wcm9wcy5vbkNoYW5nZSlcbiAgICAgIHRoaXMucHJvcHMub25DaGFuZ2UoKVxuICB9XG5cbiAgc2V0QW1vdW50ID0gKCkgPT4ge1xuICAgIGNvbnN0IGlucHV0RWxlbWVudCA9IHRoaXMuZ2V0SW5wdXRSZWYoKS5jdXJyZW50XG5cbiAgICBpZiAoIWlucHV0RWxlbWVudC52YWx1ZSAmJiBpbnB1dEVsZW1lbnQudmFsdWUgPT0gXCJcIikge1xuICAgICAgdGhpcy53aG9sZVJlZi5jdXJyZW50LnZhbHVlID0gXCJcIlxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBjZW50cyA9IHBhcnNlRmxvYXQoaW5wdXRFbGVtZW50LnZhbHVlKVxuICAgICAgY29uc3QgZm9ybWF0dGVkID0gTW9uZXlGb3JtYXR0ZXIuZnJvbU1vbmV5KHthbW91bnQ6IGNlbnRzLCBjdXJyZW5jeTogdGhpcy5pbnB1dEN1cnJlbmN5VmFsdWUoKX0sIHtkZWNpbWFsczogMiwgZXhjbHVkZUN1cnJlbmN5OiB0cnVlfSkudG9TdHJpbmcoKVxuXG4gICAgICB0aGlzLndob2xlUmVmLmN1cnJlbnQudmFsdWUgPSBmb3JtYXR0ZWRcbiAgICB9XG4gIH1cblxuICBzZXRDZW50cyA9ICgpID0+IHtcbiAgICBjb25zdCBpbnB1dEVsZW1lbnQgPSB0aGlzLmdldElucHV0UmVmKCkuY3VycmVudFxuXG4gICAgbGV0IHdob2xlID0gTW9uZXlGb3JtYXR0ZXIuc3RyaW5nVG9GbG9hdCh0aGlzLndob2xlUmVmLmN1cnJlbnQudmFsdWUpXG4gICAgbGV0IGNlbnRzID0gcGFyc2VJbnQod2hvbGUgKiAxMDAsIDEwKVxuICAgIGxldCBvbGRDZW50cyA9IHBhcnNlSW50KGlucHV0RWxlbWVudC52YWx1ZSwgMTApXG5cbiAgICBpZiAodHlwZW9mIGNlbnRzID09IFwibnVtYmVyXCIpIHtcbiAgICAgIGlucHV0RWxlbWVudC52YWx1ZSA9IGNlbnRzXG4gICAgfSBlbHNlIHtcbiAgICAgIGlucHV0RWxlbWVudC52YWx1ZSA9ICcnXG4gICAgfVxuXG4gICAgaWYgKHRoaXMucHJvcHMub25DaGFuZ2UgJiYgb2xkQ2VudHMgIT0gY2VudHMpXG4gICAgICB0aGlzLnByb3BzLm9uQ2hhbmdlKClcbiAgfVxufSkpXG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFVBQVUsTUFBTSxZQUFZO0FBQ25DLE9BQU9DLE1BQU0sTUFBTSxXQUFXO0FBQzlCLFNBQVFDLElBQUksUUFBTyxXQUFXO0FBQzlCLE9BQU9DLGNBQWMsTUFBTSxvQkFBb0I7QUFDL0MsT0FB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
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as inflection from "inflection";
|
|
2
|
+
export default function apiMakerNameForComponent(component) {
|
|
3
|
+
if ("name" in component.props) {
|
|
4
|
+
return component.props.name;
|
|
5
|
+
} else if (component.props.attribute && component.props.model) {
|
|
6
|
+
let attributeName = inflection.underscore(component.props.attribute);
|
|
7
|
+
if (component.props.type == "money") {
|
|
8
|
+
attributeName += "_cents";
|
|
9
|
+
}
|
|
10
|
+
return `${component.props.model.modelClassData().paramKey}[${attributeName}]`;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpbmZsZWN0aW9uIiwiYXBpTWFrZXJOYW1lRm9yQ29tcG9uZW50IiwiY29tcG9uZW50IiwicHJvcHMiLCJuYW1lIiwiYXR0cmlidXRlIiwibW9kZWwiLCJhdHRyaWJ1dGVOYW1lIiwidW5kZXJzY29yZSIsInR5cGUiLCJtb2RlbENsYXNzRGF0YSIsInBhcmFtS2V5Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2lucHV0cy9uYW1lLWZvci1jb21wb25lbnQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGFwaU1ha2VyTmFtZUZvckNvbXBvbmVudCAoY29tcG9uZW50KSB7XG4gIGlmIChcIm5hbWVcIiBpbiBjb21wb25lbnQucHJvcHMpIHtcbiAgICByZXR1cm4gY29tcG9uZW50LnByb3BzLm5hbWVcbiAgfSBlbHNlIGlmIChjb21wb25lbnQucHJvcHMuYXR0cmlidXRlICYmIGNvbXBvbmVudC5wcm9wcy5tb2RlbCkge1xuICAgIGxldCBhdHRyaWJ1dGVOYW1lID0gaW5mbGVjdGlvbi51bmRlcnNjb3JlKGNvbXBvbmVudC5wcm9wcy5hdHRyaWJ1dGUpXG5cbiAgICBpZiAoY29tcG9uZW50LnByb3BzLnR5cGUgPT0gXCJtb25leVwiKSB7XG4gICAgICBhdHRyaWJ1dGVOYW1lICs9IFwiX2NlbnRzXCJcbiAgICB9XG5cbiAgICByZXR1cm4gYCR7Y29tcG9uZW50LnByb3BzLm1vZGVsLm1vZGVsQ2xhc3NEYXRhKCkucGFyYW1LZXl9WyR7YXR0cmlidXRlTmFtZX1dYFxuICB9XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBS0EsVUFBVSxNQUFNLFlBQVk7QUFFeEMsZUFBZSxTQUFTQyx3QkFBd0JBLENBQUVDLFNBQVMsRUFBRTtFQUMzRCxJQUFJLE1BQU0sSUFBSUEsU0FBUyxDQUFDQyxLQUFLLEVBQUU7SUFDN0IsT0FBT0QsU0FBUyxDQUFDQyxLQUFLLENBQUNDLElBQUk7RUFDN0IsQ0FBQyxNQUFNLElBQUlGLFNBQVMsQ0FBQ0MsS0FBSyxDQUFDRSxTQUFTLElBQUlILFNBQVMsQ0FBQ0MsS0FBSyxDQUFDRyxLQUFLLEVBQUU7SUFDN0QsSUFBSUMsYUFBYSxHQUFHUCxVQUFVLENBQUNRLFVBQVUsQ0FBQ04sU0FBUyxDQUFDQyxLQUFLLENBQUNFLFNBQVMsQ0FBQztJQUVwRSxJQUFJSCxTQUFTLENBQUNDLEtBQUssQ0FBQ00sSUFBSSxJQUFJLE9BQU8sRUFBRTtNQUNuQ0YsYUFBYSxJQUFJLFFBQVE7SUFDM0I7SUFFQSxPQUFPLEdBQUdMLFNBQVMsQ0FBQ0MsS0FBSyxDQUFDRyxLQUFLLENBQUNJLGNBQWMsQ0FBQyxDQUFDLENBQUNDLFFBQVEsSUFBSUosYUFBYSxHQUFHO0VBQy9FO0FBQ0YiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
|
+
import BaseComponent from "../base-component";
|
|
3
|
+
import inputWrapper from "./input-wrapper";
|
|
4
|
+
import PropTypes from "prop-types";
|
|
5
|
+
import memo from "set-state-compare/src/memo";
|
|
6
|
+
import { shapeComponent } from "set-state-compare/src/shape-component";
|
|
7
|
+
import { useForm } from "../form";
|
|
8
|
+
const ApiMakerInputsSelect = memo(shapeComponent(class ApiMakerInputsSelect extends BaseComponent {
|
|
9
|
+
static propTypes = {
|
|
10
|
+
attribute: PropTypes.string,
|
|
11
|
+
children: PropTypes.node,
|
|
12
|
+
defaultValue: PropTypes.oneOfType([PropTypes.array, PropTypes.number, PropTypes.string]),
|
|
13
|
+
id: PropTypes.string,
|
|
14
|
+
includeBlank: PropTypes.oneOfType([PropTypes.bool, PropTypes.node]),
|
|
15
|
+
inputProps: PropTypes.object.isRequired,
|
|
16
|
+
model: PropTypes.object,
|
|
17
|
+
name: PropTypes.string,
|
|
18
|
+
onChange: PropTypes.func,
|
|
19
|
+
options: PropTypes.array,
|
|
20
|
+
wrapperOpts: PropTypes.object.isRequired
|
|
21
|
+
};
|
|
22
|
+
setup() {
|
|
23
|
+
this.form = useForm();
|
|
24
|
+
}
|
|
25
|
+
render() {
|
|
26
|
+
const {
|
|
27
|
+
attribute,
|
|
28
|
+
children,
|
|
29
|
+
defaultValue,
|
|
30
|
+
id,
|
|
31
|
+
includeBlank,
|
|
32
|
+
inputProps,
|
|
33
|
+
inputRef,
|
|
34
|
+
model,
|
|
35
|
+
name,
|
|
36
|
+
onChange,
|
|
37
|
+
options,
|
|
38
|
+
wrapperOpts,
|
|
39
|
+
...restProps
|
|
40
|
+
} = this.props;
|
|
41
|
+
return /*#__PURE__*/React.createElement("select", _extends({
|
|
42
|
+
onChange: this.tt.onChange
|
|
43
|
+
}, inputProps, restProps), this.includeBlank() && /*#__PURE__*/React.createElement("option", {
|
|
44
|
+
"data-include-blank": "true"
|
|
45
|
+
}, typeof includeBlank != "boolean" ? includeBlank : null), options && options.map(option => /*#__PURE__*/React.createElement("option", {
|
|
46
|
+
key: this.optionKey(option),
|
|
47
|
+
value: this.optionValue(option)
|
|
48
|
+
}, this.optionLabel(option))), children);
|
|
49
|
+
}
|
|
50
|
+
onChange = e => {
|
|
51
|
+
const {
|
|
52
|
+
form
|
|
53
|
+
} = this.tt;
|
|
54
|
+
const {
|
|
55
|
+
name,
|
|
56
|
+
onChange
|
|
57
|
+
} = this.props;
|
|
58
|
+
if (form && name) form.setValue(name, e.target.value);
|
|
59
|
+
if (onChange) onChange(e);
|
|
60
|
+
};
|
|
61
|
+
optionKey(option) {
|
|
62
|
+
if (Array.isArray(option)) {
|
|
63
|
+
return `select-option-${option[1]}`;
|
|
64
|
+
} else {
|
|
65
|
+
return `select-option-${option}`;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
optionLabel(option) {
|
|
69
|
+
if (Array.isArray(option)) {
|
|
70
|
+
return option[0];
|
|
71
|
+
} else {
|
|
72
|
+
return option;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
optionValue(option) {
|
|
76
|
+
if (Array.isArray(option)) {
|
|
77
|
+
return option[1];
|
|
78
|
+
} else {
|
|
79
|
+
return option;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
includeBlank() {
|
|
83
|
+
if (this.props.includeBlank && !this.props.multiple) {
|
|
84
|
+
return true;
|
|
85
|
+
} else {
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}));
|
|
90
|
+
export { ApiMakerInputsSelect as Select };
|
|
91
|
+
export default inputWrapper(ApiMakerInputsSelect);
|
|
92
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlQ29tcG9uZW50IiwiaW5wdXRXcmFwcGVyIiwiUHJvcFR5cGVzIiwibWVtbyIsInNoYXBlQ29tcG9uZW50IiwidXNlRm9ybSIsIkFwaU1ha2VySW5wdXRzU2VsZWN0IiwicHJvcFR5cGVzIiwiYXR0cmlidXRlIiwic3RyaW5nIiwiY2hpbGRyZW4iLCJub2RlIiwiZGVmYXVsdFZhbHVlIiwib25lT2ZUeXBlIiwiYXJyYXkiLCJudW1iZXIiLCJpZCIsImluY2x1ZGVCbGFuayIsImJvb2wiLCJpbnB1dFByb3BzIiwib2JqZWN0IiwiaXNSZXF1aXJlZCIsIm1vZGVsIiwibmFtZSIsIm9uQ2hhbmdlIiwiZnVuYyIsIm9wdGlvbnMiLCJ3cmFwcGVyT3B0cyIsInNldHVwIiwiZm9ybSIsInJlbmRlciIsImlucHV0UmVmIiwicmVzdFByb3BzIiwicHJvcHMiLCJSZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kcyIsInR0IiwibWFwIiwib3B0aW9uIiwia2V5Iiwib3B0aW9uS2V5IiwidmFsdWUiLCJvcHRpb25WYWx1ZSIsIm9wdGlvbkxhYmVsIiwiZSIsInNldFZhbHVlIiwidGFyZ2V0IiwiQXJyYXkiLCJpc0FycmF5IiwibXVsdGlwbGUiLCJTZWxlY3QiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5wdXRzL3NlbGVjdC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJhc2VDb21wb25lbnQgZnJvbSBcIi4uL2Jhc2UtY29tcG9uZW50XCJcbmltcG9ydCBpbnB1dFdyYXBwZXIgZnJvbSBcIi4vaW5wdXQtd3JhcHBlclwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBtZW1vIGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvbWVtb1wiXG5pbXBvcnQge3NoYXBlQ29tcG9uZW50fSBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvc3JjL3NoYXBlLWNvbXBvbmVudFwiXG5pbXBvcnQge3VzZUZvcm19IGZyb20gXCIuLi9mb3JtXCJcblxuY29uc3QgQXBpTWFrZXJJbnB1dHNTZWxlY3QgPSBtZW1vKHNoYXBlQ29tcG9uZW50KGNsYXNzIEFwaU1ha2VySW5wdXRzU2VsZWN0IGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgYXR0cmlidXRlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZSxcbiAgICBkZWZhdWx0VmFsdWU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5hcnJheSwgUHJvcFR5cGVzLm51bWJlciwgUHJvcFR5cGVzLnN0cmluZ10pLFxuICAgIGlkOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGluY2x1ZGVCbGFuazogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmJvb2wsIFByb3BUeXBlcy5ub2RlXSksXG4gICAgaW5wdXRQcm9wczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIG1vZGVsOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIG5hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICAgIG9wdGlvbnM6IFByb3BUeXBlcy5hcnJheSxcbiAgICB3cmFwcGVyT3B0czogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkXG4gIH1cblxuICBzZXR1cCgpIHtcbiAgICB0aGlzLmZvcm0gPSB1c2VGb3JtKClcbiAgfVxuXG4gIHJlbmRlciAoKSB7XG4gICAgY29uc3Qge1xuICAgICAgYXR0cmlidXRlLFxuICAgICAgY2hpbGRyZW4sXG4gICAgICBkZWZhdWx0VmFsdWUsXG4gICAgICBpZCxcbiAgICAgIGluY2x1ZGVCbGFuayxcbiAgICAgIGlucHV0UHJvcHMsXG4gICAgICBpbnB1dFJlZixcbiAgICAgIG1vZGVsLFxuICAgICAgbmFtZSxcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgb3B0aW9ucyxcbiAgICAgIHdyYXBwZXJPcHRzLFxuICAgICAgLi4ucmVzdFByb3BzXG4gICAgfSA9IHRoaXMucHJvcHNcblxuICAgIHJldHVybiAoXG4gICAgICA8c2VsZWN0IG9uQ2hhbmdlPXt0aGlzLnR0Lm9uQ2hhbmdlfSB7Li4uaW5wdXRQcm9wc30gey4uLnJlc3RQcm9wc30+XG4gICAgICAgIHt0aGlzLmluY2x1ZGVCbGFuaygpICYmXG4gICAgICAgICAgPG9wdGlvbiBkYXRhLWluY2x1ZGUtYmxhbms9XCJ0cnVlXCI+XG4gICAgICAgICAgICB7dHlwZW9mIGluY2x1ZGVCbGFuayAhPSBcImJvb2xlYW5cIiA/IGluY2x1ZGVCbGFuayA6IG51bGx9XG4gICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgIH1cbiAgICAgICAge29wdGlvbnMgJiYgb3B0aW9ucy5tYXAoKG9wdGlvbikgPT5cbiAgICAgICAgICA8b3B0aW9uIGtleT17dGhpcy5vcHRpb25LZXkob3B0aW9uKX0gdmFsdWU9e3RoaXMub3B0aW9uVmFsdWUob3B0aW9uKX0+XG4gICAgICAgICAgICB7dGhpcy5vcHRpb25MYWJlbChvcHRpb24pfVxuICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICApfVxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L3NlbGVjdD5cbiAgICApXG4gIH1cblxuICBvbkNoYW5nZSA9IChlKSA9PiB7XG4gICAgY29uc3Qge2Zvcm19ID0gdGhpcy50dFxuICAgIGNvbnN0IHtuYW1lLCBvbkNoYW5nZX0gPSB0aGlzLnByb3BzXG5cbiAgICBpZiAoZm9ybSAmJiBuYW1lKSBmb3JtLnNldFZhbHVlKG5hbWUsIGUudGFyZ2V0LnZhbHVlKVxuICAgIGlmIChvbkNoYW5nZSkgb25DaGFuZ2UoZSlcbiAgfVxuXG4gIG9wdGlvbktleSAob3B0aW9uKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkob3B0aW9uKSkge1xuICAgICAgcmV0dXJuIGBzZWxlY3Qtb3B0aW9uLSR7b3B0aW9uWzFdfWBcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGBzZWxlY3Qtb3B0aW9uLSR7b3B0aW9ufWBcbiAgICB9XG4gIH1cblxuICBvcHRpb25MYWJlbCAob3B0aW9uKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkob3B0aW9uKSkge1xuICAgICAgcmV0dXJuIG9wdGlvblswXVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb3B0aW9uXG4gICAgfVxuICB9XG5cbiAgb3B0aW9uVmFsdWUgKG9wdGlvbikge1xuICAgIGlmIChBcnJheS5pc0FycmF5KG9wdGlvbikpIHtcbiAgICAgIHJldHVybiBvcHRpb25bMV1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG9wdGlvblxuICAgIH1cbiAgfVxuXG4gIGluY2x1ZGVCbGFuayAoKSB7XG4gICAgaWYgKHRoaXMucHJvcHMuaW5jbHVkZUJsYW5rICYmICF0aGlzLnByb3BzLm11bHRpcGxlKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gIH1cbn0pKVxuXG5leHBvcnQge0FwaU1ha2VySW5wdXRzU2VsZWN0IGFzIFNlbGVjdH1cbmV4cG9ydCBkZWZhdWx0IGlucHV0V3JhcHBlcihBcGlNYWtlcklucHV0c1NlbGVjdClcbiJdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU9BLGFBQWEsTUFBTSxtQkFBbUI7QUFDN0MsT0FBT0MsWUFBWSxNQUFNLGlCQUFpQjtBQUMxQyxPQUFPQyxTQUFTLE1BQU0sWUFBWTtBQUNsQyxPQUFPQyxJQUFJLE1BQU0sNEJBQTRCO0FBQzdDLFNBQVFDLGNBQWMsUUFBTyx1Q0FBdUM7QUFDcEUsU0FBUUMsT0FBTyxRQUFPLFNBQVM7QUFFL0IsTUFBTUMsb0JBQW9CLEdBQUdILElBQUksQ0FBQ0MsY0FBYyxDQUFDLE1BQU1FLG9CQUFvQixTQUFTTixhQUFhLENBQUM7RUFDaEcsT0FBT08sU0FBUyxHQUFHO0lBQ2pCQyxTQUFTLEVBQUVOLFNBQVMsQ0FBQ08sTUFBTTtJQUMzQkMsUUFBUSxFQUFFUixTQUFTLENBQUNTLElBQUk7SUFDeEJDLFlBQVks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
|