@kaspernj/api-maker 1.0.2054 → 1.0.2056
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/api.js +65 -213
- package/build/attribute-not-loaded-error.js +3 -26
- package/build/base-component.js +4 -27
- package/build/base-error.js +21 -46
- package/build/base-model/attribute.js +15 -22
- package/build/base-model/column.js +5 -9
- package/build/base-model/reflection.js +12 -52
- package/build/base-model/scope.js +9 -46
- package/build/base-model.js +584 -837
- package/build/bootstrap/attribute-row.js +88 -173
- package/build/bootstrap/attribute-rows.js +22 -51
- package/build/bootstrap/card.js +77 -160
- package/build/bootstrap/checkbox.js +54 -103
- package/build/bootstrap/checkboxes.js +117 -203
- package/build/bootstrap/index.js +1 -1
- package/build/bootstrap/input.js +81 -132
- package/build/bootstrap/invalid-feedback.js +19 -47
- package/build/bootstrap/paginate.js +100 -165
- package/build/bootstrap/radio-buttons.js +44 -81
- package/build/bootstrap/select.js +44 -91
- package/build/bootstrap/sort-link.js +69 -152
- package/build/cable-connection-pool.js +44 -66
- package/build/cable-subscription-pool.js +105 -162
- package/build/cable-subscription.js +10 -17
- package/build/cache-key-generator.js +28 -37
- package/build/can-can.js +81 -202
- package/build/channels-consumer.js +6 -11
- package/build/collection-loader.js +36 -54
- package/build/collection.d.ts.map +1 -1
- package/build/collection.js +160 -308
- package/build/command-submit-data.d.ts +1 -1
- package/build/command-submit-data.d.ts.map +1 -1
- package/build/command-submit-data.js +30 -39
- package/build/commands-pool.js +140 -216
- package/build/compose.js +4 -12
- package/build/config.js +21 -68
- package/build/custom-error.js +5 -30
- package/build/data-set-to-attributes.js +6 -42
- package/build/deserializer.js +27 -80
- package/build/destroy-error.js +5 -30
- package/build/devise.js +84 -188
- package/build/draggable-sort/controller.js +88 -111
- package/build/draggable-sort/index.js +68 -145
- package/build/draggable-sort/item.js +132 -198
- package/build/error-logger.js +79 -164
- package/build/error-messages.js +5 -8
- package/build/event-connection.js +24 -62
- package/build/event-emitter-listener.js +7 -24
- package/build/event-model-class.js +20 -47
- package/build/events.js +4 -9
- package/build/form.js +66 -154
- package/build/history-expo.js +13 -25
- package/build/history-react-native.js +15 -27
- package/build/history.js +3 -5
- package/build/index.js +3 -6
- package/build/inputs/attachment.js +72 -123
- package/build/inputs/auto-submit.js +16 -55
- package/build/inputs/checkbox.js +78 -167
- package/build/inputs/checkboxes.js +76 -159
- package/build/inputs/id-for-component.js +5 -41
- package/build/inputs/input-wrapper.js +8 -27
- package/build/inputs/input.js +159 -245
- package/build/inputs/money.js +124 -186
- package/build/inputs/name-for-component.js +5 -41
- package/build/inputs/select.js +69 -123
- package/build/instance-of-class-name.js +16 -21
- package/build/is-expo.js +9 -11
- package/build/key-value-store.js +52 -128
- package/build/link.js +52 -115
- package/build/logger.js +20 -26
- package/build/merge-styles.js +6 -10
- package/build/modal.js +15 -62
- package/build/model-class-require.js +9 -44
- package/build/model-events.js +25 -34
- package/build/model-name.js +16 -57
- package/build/model-prop-type.js +52 -63
- package/build/model-recipes-loader.js +17 -25
- package/build/model-recipes-model-loader.d.ts +1 -1
- package/build/model-recipes-model-loader.js +130 -208
- package/build/models-response-reader.js +25 -66
- package/build/models.js +6 -11
- package/build/money-formatter.d.ts +2 -2
- package/build/money-formatter.d.ts.map +1 -1
- package/build/money-formatter.js +46 -56
- package/build/not-loaded-error.js +3 -26
- package/build/params.js +32 -42
- package/build/preloaded.js +19 -59
- package/build/resize-observer.js +6 -12
- package/build/rest-props-validator.js +5 -7
- package/build/result.js +11 -15
- package/build/router/route.js +179 -312
- package/build/router/switch.js +56 -130
- package/build/router.js +34 -94
- package/build/routes-native.js +64 -148
- package/build/routes.js +26 -80
- package/build/run-last.js +20 -25
- package/build/serializer.js +29 -34
- package/build/services.js +10 -19
- package/build/session-status-updater.js +85 -184
- package/build/source-maps-loader.d.ts +37 -0
- package/build/source-maps-loader.d.ts.map +1 -0
- package/build/source-maps-loader.js +103 -225
- package/build/super-admin/config-reader.d.ts +2 -2
- package/build/super-admin/config-reader.js +42 -83
- package/build/super-admin/edit-page/edit-attribute-checkbox.js +53 -115
- package/build/super-admin/edit-page/edit-attribute-content.js +47 -77
- package/build/super-admin/edit-page/edit-attribute-input.js +57 -119
- package/build/super-admin/edit-page/edit-attribute.js +40 -104
- package/build/super-admin/edit-page.js +88 -201
- package/build/super-admin/has-edit-config.js +7 -13
- package/build/super-admin/index-page.js +17 -44
- package/build/super-admin/index.js +87 -210
- package/build/super-admin/layout/header/index.js +91 -152
- package/build/super-admin/layout/index.js +70 -153
- package/build/super-admin/layout/menu/index.js +85 -161
- package/build/super-admin/layout/menu/menu-content.js +25 -85
- package/build/super-admin/layout/menu/menu-item.js +52 -102
- package/build/super-admin/layout/no-access.js +19 -45
- package/build/super-admin/model-class-table.js +45 -129
- package/build/super-admin/models.js +6 -42
- package/build/super-admin/show-nav.js +27 -89
- package/build/super-admin/show-page/belongs-to-attribute-row.js +18 -76
- package/build/super-admin/show-page/index.js +101 -187
- package/build/super-admin/show-reflection-actions.js +39 -100
- package/build/super-admin/show-reflection-link.js +27 -99
- package/build/super-admin/show-reflection-page.js +34 -97
- package/build/table/column-content.js +77 -121
- package/build/table/column-identifier.js +7 -11
- package/build/table/column-visible.js +2 -5
- package/build/table/components/column.js +13 -60
- package/build/table/components/flat-list.js +13 -60
- package/build/table/components/header.js +15 -62
- package/build/table/components/row.js +16 -63
- package/build/table/filters/attribute-element.js +34 -62
- package/build/table/filters/filter-form.js +280 -483
- package/build/table/filters/filter.js +45 -73
- package/build/table/filters/index.js +95 -139
- package/build/table/filters/load-search-modal.js +64 -212
- package/build/table/filters/reflection-element.js +27 -55
- package/build/table/filters/save-search-modal.js +44 -140
- package/build/table/filters/scope-element.js +28 -56
- package/build/table/header-column-content.js +33 -71
- package/build/table/header-column.js +89 -218
- package/build/table/header-select.js +45 -77
- package/build/table/model-callback-args.js +5 -41
- package/build/table/model-column.js +59 -144
- package/build/table/model-row.js +75 -187
- package/build/table/select-calculator.js +27 -86
- package/build/table/settings/column-row.js +66 -186
- package/build/table/settings/download-action.js +38 -74
- package/build/table/settings/index.js +38 -102
- package/build/table/table-settings.js +185 -323
- package/build/table/table.js +583 -781
- package/build/table/use-sorting.js +16 -35
- package/build/table/widths.js +32 -38
- package/build/table/worker-plugins-check-all-checkbox.js +77 -225
- package/build/table/worker-plugins-checkbox.js +74 -185
- package/build/translated-attributes.js +6 -11
- package/build/translated-collections.js +11 -20
- package/build/updated-attribute.js +47 -120
- package/build/url-encode.js +6 -12
- package/build/use-breakpoint.js +43 -95
- package/build/use-can-can.js +30 -92
- package/build/use-collection.js +119 -229
- package/build/use-created-event.js +27 -44
- package/build/use-current-user-context.js +57 -151
- package/build/use-current-user.js +14 -32
- package/build/use-destroyed-event.js +22 -43
- package/build/use-event-emitter.d.ts +1 -2
- package/build/use-event-emitter.d.ts.map +1 -1
- package/build/use-event-emitter.js +10 -16
- package/build/use-event-listener.js +13 -22
- package/build/use-input.js +49 -69
- package/build/use-model-event.js +22 -43
- package/build/use-model.js +96 -199
- package/build/use-resize-observer.js +11 -21
- package/build/use-router.js +65 -107
- package/build/use-screen-layout.js +17 -19
- package/build/use-styles.js +24 -75
- package/build/use-updated-event.js +22 -44
- package/build/use-validation-errors.js +12 -18
- package/build/utils/button.js +86 -136
- package/build/utils/card.js +31 -106
- package/build/utils/checkbox.js +51 -112
- package/build/utils/checkboxes.js +109 -182
- package/build/utils/default-style.js +29 -103
- package/build/utils/header.js +8 -35
- package/build/utils/icon.js +36 -117
- package/build/utils/invalid-feedback.js +16 -43
- package/build/utils/modal.js +25 -108
- package/build/utils/text.js +10 -37
- package/build/validation-error.js +31 -89
- package/build/validation-errors.js +61 -111
- package/build/with-api-maker.js +15 -67
- package/build/with-collection.js +14 -64
- package/build/with-current-user.js +7 -23
- package/build/with-model.js +11 -27
- package/build/with-router.js +8 -35
- package/package.json +4 -3
- package/build/api.js.map +0 -1
- package/build/attribute-not-loaded-error.js.map +0 -1
- package/build/base-component.js.map +0 -1
- package/build/base-error.js.map +0 -1
- package/build/base-model/attribute.js.map +0 -1
- package/build/base-model/column.js.map +0 -1
- package/build/base-model/reflection.js.map +0 -1
- package/build/base-model/scope.js.map +0 -1
- package/build/base-model.js.map +0 -1
- package/build/bootstrap/attribute-row.js.map +0 -1
- package/build/bootstrap/attribute-rows.js.map +0 -1
- package/build/bootstrap/card.js.map +0 -1
- package/build/bootstrap/checkbox.js.map +0 -1
- package/build/bootstrap/checkboxes.js.map +0 -1
- package/build/bootstrap/index.js.map +0 -1
- package/build/bootstrap/input.js.map +0 -1
- package/build/bootstrap/invalid-feedback.js.map +0 -1
- package/build/bootstrap/paginate.js.map +0 -1
- package/build/bootstrap/radio-buttons.js.map +0 -1
- package/build/bootstrap/select.js.map +0 -1
- package/build/bootstrap/sort-link.js.map +0 -1
- package/build/cable-connection-pool.js.map +0 -1
- package/build/cable-subscription-pool.js.map +0 -1
- package/build/cable-subscription.js.map +0 -1
- package/build/cache-key-generator.js.map +0 -1
- package/build/can-can.js.map +0 -1
- package/build/channels-consumer.js.map +0 -1
- package/build/collection-loader.js.map +0 -1
- package/build/collection.js.map +0 -1
- package/build/command-submit-data.js.map +0 -1
- package/build/commands-pool.js.map +0 -1
- package/build/compose.js.map +0 -1
- package/build/config.js.map +0 -1
- package/build/custom-error.js.map +0 -1
- package/build/data-set-to-attributes.js.map +0 -1
- package/build/deserializer.js.map +0 -1
- package/build/destroy-error.js.map +0 -1
- package/build/devise.js.map +0 -1
- package/build/draggable-sort/controller.js.map +0 -1
- package/build/draggable-sort/index.js.map +0 -1
- package/build/draggable-sort/item.js.map +0 -1
- package/build/error-logger.js.map +0 -1
- package/build/error-messages.js.map +0 -1
- package/build/event-connection.js.map +0 -1
- package/build/event-emitter-listener.js.map +0 -1
- package/build/event-model-class.js.map +0 -1
- package/build/events.js.map +0 -1
- package/build/form.js.map +0 -1
- package/build/history-expo.js.map +0 -1
- package/build/history-react-native.js.map +0 -1
- package/build/history.js.map +0 -1
- package/build/index.js.map +0 -1
- package/build/inputs/attachment.js.map +0 -1
- package/build/inputs/auto-submit.js.map +0 -1
- package/build/inputs/checkbox.js.map +0 -1
- package/build/inputs/checkboxes.js.map +0 -1
- package/build/inputs/id-for-component.js.map +0 -1
- package/build/inputs/input-wrapper.js.map +0 -1
- package/build/inputs/input.js.map +0 -1
- package/build/inputs/money.js.map +0 -1
- package/build/inputs/name-for-component.js.map +0 -1
- package/build/inputs/select.js.map +0 -1
- package/build/instance-of-class-name.js.map +0 -1
- package/build/is-expo.js.map +0 -1
- package/build/key-value-store.js.map +0 -1
- package/build/link.js.map +0 -1
- package/build/logger.js.map +0 -1
- package/build/merge-styles.js.map +0 -1
- package/build/modal.js.map +0 -1
- package/build/model-class-require.js.map +0 -1
- package/build/model-events.js.map +0 -1
- package/build/model-name.js.map +0 -1
- package/build/model-prop-type.js.map +0 -1
- package/build/model-recipes-loader.js.map +0 -1
- package/build/model-recipes-model-loader.js.map +0 -1
- package/build/models-response-reader.js.map +0 -1
- package/build/models.js.map +0 -1
- package/build/money-formatter.js.map +0 -1
- package/build/not-loaded-error.js.map +0 -1
- package/build/params.js.map +0 -1
- package/build/preloaded.js.map +0 -1
- package/build/resize-observer.js.map +0 -1
- package/build/rest-props-validator.js.map +0 -1
- package/build/result.js.map +0 -1
- package/build/router/route.js.map +0 -1
- package/build/router/switch.js.map +0 -1
- package/build/router.js.map +0 -1
- package/build/routes-native.js.map +0 -1
- package/build/routes.js.map +0 -1
- package/build/run-last.js.map +0 -1
- package/build/serializer.js.map +0 -1
- package/build/services.js.map +0 -1
- package/build/session-status-updater.js.map +0 -1
- package/build/source-maps-loader.js.map +0 -1
- package/build/super-admin/config-reader.js.map +0 -1
- package/build/super-admin/edit-page/edit-attribute-checkbox.js.map +0 -1
- package/build/super-admin/edit-page/edit-attribute-content.js.map +0 -1
- package/build/super-admin/edit-page/edit-attribute-input.js.map +0 -1
- package/build/super-admin/edit-page/edit-attribute.js.map +0 -1
- package/build/super-admin/edit-page.js.map +0 -1
- package/build/super-admin/has-edit-config.js.map +0 -1
- package/build/super-admin/index-page.js.map +0 -1
- package/build/super-admin/index.js.map +0 -1
- package/build/super-admin/layout/header/index.js.map +0 -1
- package/build/super-admin/layout/index.js.map +0 -1
- package/build/super-admin/layout/menu/index.js.map +0 -1
- package/build/super-admin/layout/menu/menu-content.js.map +0 -1
- package/build/super-admin/layout/menu/menu-item.js.map +0 -1
- package/build/super-admin/layout/no-access.js.map +0 -1
- package/build/super-admin/model-class-table.js.map +0 -1
- package/build/super-admin/models.js.map +0 -1
- package/build/super-admin/show-nav.js.map +0 -1
- package/build/super-admin/show-page/belongs-to-attribute-row.js.map +0 -1
- package/build/super-admin/show-page/index.js.map +0 -1
- package/build/super-admin/show-reflection-actions.js.map +0 -1
- package/build/super-admin/show-reflection-link.js.map +0 -1
- package/build/super-admin/show-reflection-page.js.map +0 -1
- package/build/table/column-content.js.map +0 -1
- package/build/table/column-identifier.js.map +0 -1
- package/build/table/column-visible.js.map +0 -1
- package/build/table/components/column.js.map +0 -1
- package/build/table/components/flat-list.js.map +0 -1
- package/build/table/components/header.js.map +0 -1
- package/build/table/components/row.js.map +0 -1
- package/build/table/filters/attribute-element.js.map +0 -1
- package/build/table/filters/filter-form.js.map +0 -1
- package/build/table/filters/filter.js.map +0 -1
- package/build/table/filters/index.js.map +0 -1
- package/build/table/filters/load-search-modal.js.map +0 -1
- package/build/table/filters/reflection-element.js.map +0 -1
- package/build/table/filters/save-search-modal.js.map +0 -1
- package/build/table/filters/scope-element.js.map +0 -1
- package/build/table/header-column-content.js.map +0 -1
- package/build/table/header-column.js.map +0 -1
- package/build/table/header-select.js.map +0 -1
- package/build/table/model-callback-args.js.map +0 -1
- package/build/table/model-column.js.map +0 -1
- package/build/table/model-row.js.map +0 -1
- package/build/table/select-calculator.js.map +0 -1
- package/build/table/settings/column-row.js.map +0 -1
- package/build/table/settings/download-action.js.map +0 -1
- package/build/table/settings/index.js.map +0 -1
- package/build/table/table-settings.js.map +0 -1
- package/build/table/table.js.map +0 -1
- package/build/table/use-sorting.js.map +0 -1
- package/build/table/widths.js.map +0 -1
- package/build/table/worker-plugins-check-all-checkbox.js.map +0 -1
- package/build/table/worker-plugins-checkbox.js.map +0 -1
- package/build/translated-attributes.js.map +0 -1
- package/build/translated-collections.js.map +0 -1
- package/build/updated-attribute.js.map +0 -1
- package/build/url-encode.js.map +0 -1
- package/build/use-breakpoint.js.map +0 -1
- package/build/use-can-can.js.map +0 -1
- package/build/use-collection.js.map +0 -1
- package/build/use-created-event.js.map +0 -1
- package/build/use-current-user-context.js.map +0 -1
- package/build/use-current-user.js.map +0 -1
- package/build/use-destroyed-event.js.map +0 -1
- package/build/use-event-emitter.js.map +0 -1
- package/build/use-event-listener.js.map +0 -1
- package/build/use-input.js.map +0 -1
- package/build/use-model-event.js.map +0 -1
- package/build/use-model.js.map +0 -1
- package/build/use-resize-observer.js.map +0 -1
- package/build/use-router.js.map +0 -1
- package/build/use-screen-layout.js.map +0 -1
- package/build/use-styles.js.map +0 -1
- package/build/use-updated-event.js.map +0 -1
- package/build/use-validation-errors.js.map +0 -1
- package/build/utils/button.js.map +0 -1
- package/build/utils/card.js.map +0 -1
- package/build/utils/checkbox.js.map +0 -1
- package/build/utils/checkboxes.js.map +0 -1
- package/build/utils/default-style.js.map +0 -1
- package/build/utils/header.js.map +0 -1
- package/build/utils/icon.js.map +0 -1
- package/build/utils/invalid-feedback.js.map +0 -1
- package/build/utils/modal.js.map +0 -1
- package/build/utils/text.js.map +0 -1
- package/build/validation-error.js.map +0 -1
- package/build/validation-errors.js.map +0 -1
- package/build/with-api-maker.js.map +0 -1
- package/build/with-collection.js.map +0 -1
- package/build/with-current-user.js.map +0 -1
- package/build/with-model.js.map +0 -1
- package/build/with-router.js.map +0 -1
package/build/use-input.js
CHANGED
|
@@ -1,26 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
-
t[p[i]] = s[p[i]];
|
|
10
|
-
}
|
|
11
|
-
return t;
|
|
12
|
-
};
|
|
13
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
var diggerize_1 = require("diggerize");
|
|
18
|
-
var react_1 = require("react");
|
|
19
|
-
var id_for_component_js_1 = __importDefault(require("./inputs/id-for-component.js"));
|
|
20
|
-
var name_for_component_js_1 = __importDefault(require("./inputs/name-for-component.js"));
|
|
21
|
-
var strftime_1 = __importDefault(require("strftime"));
|
|
22
|
-
var use_shape_js_1 = __importDefault(require("set-state-compare/build/use-shape.js"));
|
|
23
|
-
var use_validation_errors_js_1 = __importDefault(require("./use-validation-errors.js"));
|
|
1
|
+
import { dig, digg } from "diggerize";
|
|
2
|
+
import { useCallback, useEffect, useMemo, useRef } from "react";
|
|
3
|
+
import idForComponent from "./inputs/id-for-component.js";
|
|
4
|
+
import nameForComponent from "./inputs/name-for-component.js";
|
|
5
|
+
import strftime from "strftime";
|
|
6
|
+
import useShape from "set-state-compare/build/use-shape.js";
|
|
7
|
+
import useValidationErrors from "./use-validation-errors.js";
|
|
24
8
|
/**
|
|
25
9
|
* @param {object} args
|
|
26
10
|
* @param {object} args.props
|
|
@@ -33,63 +17,61 @@ var use_validation_errors_js_1 = __importDefault(require("./use-validation-error
|
|
|
33
17
|
* @param {string} args.wrapperOptions.type
|
|
34
18
|
* @returns {{inputProps: object, wrapperOpts: object, restProps: object}}
|
|
35
19
|
*/
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
var props = _a.props, wrapperOptions = _a.wrapperOptions, useInputRestProps = __rest(_a, ["props", "wrapperOptions"]);
|
|
39
|
-
var useInputRestPropsKeys = Object.keys(useInputRestProps);
|
|
20
|
+
const useInput = ({ props, wrapperOptions, ...useInputRestProps }) => {
|
|
21
|
+
const useInputRestPropsKeys = Object.keys(useInputRestProps);
|
|
40
22
|
if (useInputRestPropsKeys.length > 0) {
|
|
41
|
-
throw new Error(
|
|
23
|
+
throw new Error(`Unknown props given to useInput: ${useInputRestPropsKeys.join(", ")}`);
|
|
42
24
|
}
|
|
43
|
-
|
|
44
|
-
|
|
25
|
+
const s = useShape(props);
|
|
26
|
+
const backupRef = useRef();
|
|
45
27
|
s.useStates({
|
|
46
28
|
form: undefined
|
|
47
29
|
});
|
|
48
|
-
|
|
30
|
+
useEffect(() => {
|
|
49
31
|
setForm();
|
|
50
|
-
}, [
|
|
51
|
-
s.meta.fakeComponent = { props
|
|
52
|
-
s.meta.isCheckbox = props.type == "checkbox" ||
|
|
53
|
-
s.meta.isSelect =
|
|
54
|
-
|
|
55
|
-
|
|
32
|
+
}, [s.props.inputRef?.current]);
|
|
33
|
+
s.meta.fakeComponent = { props };
|
|
34
|
+
s.meta.isCheckbox = props.type == "checkbox" || wrapperOptions?.type == "checkbox";
|
|
35
|
+
s.meta.isSelect = wrapperOptions?.type == "select";
|
|
36
|
+
const formatValue = useCallback((value) => {
|
|
37
|
+
const { formatValue } = s.props;
|
|
56
38
|
if (formatValue) {
|
|
57
39
|
return formatValue(value);
|
|
58
40
|
}
|
|
59
41
|
else if (value instanceof Date && !isNaN(value.getTime())) {
|
|
60
42
|
// We need to use a certain format for datetime-local
|
|
61
43
|
if (inputType() == "datetime-local") {
|
|
62
|
-
return (
|
|
44
|
+
return strftime("%Y-%m-%dT%H:%M:%S", value);
|
|
63
45
|
}
|
|
64
46
|
else if (inputType() == "date") {
|
|
65
|
-
return (
|
|
47
|
+
return strftime("%Y-%m-%d", value);
|
|
66
48
|
}
|
|
67
49
|
}
|
|
68
50
|
return value;
|
|
69
51
|
}, []);
|
|
70
|
-
|
|
52
|
+
const inputDefaultChecked = useCallback(() => {
|
|
71
53
|
if ("defaultChecked" in s.props) {
|
|
72
54
|
return s.props.defaultChecked;
|
|
73
55
|
}
|
|
74
56
|
else if (s.props.attribute && s.props.model) {
|
|
75
57
|
if (!s.props.model[s.props.attribute])
|
|
76
|
-
throw new Error(
|
|
58
|
+
throw new Error(`No such attribute: ${s.props.attribute}`);
|
|
77
59
|
return s.props.model[s.props.attribute]();
|
|
78
60
|
}
|
|
79
61
|
}, []);
|
|
80
|
-
|
|
62
|
+
const inputDefaultValue = useCallback(() => {
|
|
81
63
|
if ("defaultValue" in s.props) {
|
|
82
64
|
return formatValue(s.props.defaultValue);
|
|
83
65
|
}
|
|
84
66
|
else if (s.props.model && s.props.attribute) {
|
|
85
67
|
if (!s.props.model[s.props.attribute]) {
|
|
86
|
-
throw new Error(
|
|
68
|
+
throw new Error(`No such attribute defined on resource: ${digg(s.props.model.modelClassData(), "name")}#${s.props.attribute}`);
|
|
87
69
|
}
|
|
88
70
|
return formatValue(s.props.model[s.props.attribute]());
|
|
89
71
|
}
|
|
90
72
|
}, []);
|
|
91
|
-
|
|
92
|
-
|
|
73
|
+
const inputRef = useCallback(() => s.props.inputRef || backupRef);
|
|
74
|
+
const inputType = useCallback(() => {
|
|
93
75
|
if ("type" in s.props) {
|
|
94
76
|
return s.props.type;
|
|
95
77
|
}
|
|
@@ -100,7 +82,7 @@ var useInput = function (_a) {
|
|
|
100
82
|
return "text";
|
|
101
83
|
}
|
|
102
84
|
}, []);
|
|
103
|
-
|
|
85
|
+
const label = useCallback(() => {
|
|
104
86
|
if ("label" in s.props) {
|
|
105
87
|
return s.props.label;
|
|
106
88
|
}
|
|
@@ -108,19 +90,19 @@ var useInput = function (_a) {
|
|
|
108
90
|
return s.props.model.modelClass().humanAttributeName(s.props.attribute);
|
|
109
91
|
}
|
|
110
92
|
}, []);
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
93
|
+
const setForm = useCallback(() => {
|
|
94
|
+
const inputElement = inputRef().current;
|
|
95
|
+
let form;
|
|
114
96
|
if (inputElement)
|
|
115
|
-
form =
|
|
97
|
+
form = dig(inputElement, "form");
|
|
116
98
|
if (form && form != s.s.form)
|
|
117
|
-
s.set({ form
|
|
99
|
+
s.set({ form });
|
|
118
100
|
}, []);
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
101
|
+
const getId = useCallback(() => idForComponent(s.m.fakeComponent), []);
|
|
102
|
+
const getName = useCallback(() => nameForComponent(s.m.fakeComponent), []);
|
|
103
|
+
const getInputProps = useCallback(() => {
|
|
104
|
+
const givenInputProps = s.props.inputProps || {};
|
|
105
|
+
const inputProps = Object.assign({
|
|
124
106
|
id: getId(),
|
|
125
107
|
name: getName(),
|
|
126
108
|
ref: inputRef()
|
|
@@ -141,29 +123,27 @@ var useInput = function (_a) {
|
|
|
141
123
|
}
|
|
142
124
|
return inputProps;
|
|
143
125
|
}, []);
|
|
144
|
-
|
|
145
|
-
|
|
126
|
+
const { inputProps: oldInputProps, wrapperOpts: oldWrapperOpts, ...restProps } = props;
|
|
127
|
+
const type = inputType();
|
|
146
128
|
s.meta.inputProps = getInputProps();
|
|
147
|
-
s.meta.inputNameWithoutId =
|
|
129
|
+
s.meta.inputNameWithoutId = useMemo(() => s.m.inputProps.name?.replace(/\[(.+)_id\]$/, "[$1]"), [s.m.inputProps.name]);
|
|
148
130
|
if (!s.m.inputProps.ref)
|
|
149
131
|
throw new Error("No input ref?");
|
|
150
132
|
if (!s.m.isSelect)
|
|
151
133
|
s.m.inputProps.type = type;
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
}).validationErrors;
|
|
157
|
-
var wrapperOpts = {
|
|
134
|
+
const { validationErrors } = useValidationErrors((validationError) => validationError.inputName &&
|
|
135
|
+
s.m.inputProps.name &&
|
|
136
|
+
(validationError.inputName == s.m.inputProps.name || validationError.inputName == s.m.inputNameWithoutId));
|
|
137
|
+
const wrapperOpts = {
|
|
158
138
|
errors: validationErrors,
|
|
159
139
|
form: s.s.form,
|
|
160
140
|
label: label()
|
|
161
141
|
};
|
|
162
142
|
return {
|
|
163
143
|
inputProps: s.m.inputProps,
|
|
164
|
-
wrapperOpts
|
|
165
|
-
restProps
|
|
144
|
+
wrapperOpts,
|
|
145
|
+
restProps
|
|
166
146
|
};
|
|
167
147
|
};
|
|
168
|
-
|
|
169
|
-
//# sourceMappingURL=use-input.js.map
|
|
148
|
+
export default useInput;
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWlucHV0LmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJ1c2UtaW5wdXQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUMsTUFBTSxXQUFXLENBQUE7QUFDbkMsT0FBTyxFQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBQyxNQUFNLE9BQU8sQ0FBQTtBQUM3RCxPQUFPLGNBQWMsTUFBTSw4QkFBOEIsQ0FBQTtBQUN6RCxPQUFPLGdCQUFnQixNQUFNLGdDQUFnQyxDQUFBO0FBQzdELE9BQU8sUUFBUSxNQUFNLFVBQVUsQ0FBQTtBQUMvQixPQUFPLFFBQVEsTUFBTSxzQ0FBc0MsQ0FBQTtBQUMzRCxPQUFPLG1CQUFtQixNQUFNLDRCQUE0QixDQUFBO0FBRTVEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBTSxRQUFRLEdBQUcsQ0FBQyxFQUFDLEtBQUssRUFBRSxjQUFjLEVBQUUsR0FBRyxpQkFBaUIsRUFBQyxFQUFFLEVBQUU7SUFDakUsTUFBTSxxQkFBcUIsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUE7SUFFNUQsSUFBSSxxQkFBcUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDckMsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MscUJBQXFCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUN6RixDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3pCLE1BQU0sU0FBUyxHQUFHLE1BQU0sRUFBRSxDQUFBO0lBRTFCLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDVixJQUFJLEVBQUUsU0FBUztLQUNoQixDQUFDLENBQUE7SUFFRixTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ2IsT0FBTyxFQUFFLENBQUE7SUFDWCxDQUFDLEVBQUUsQ0FBQyxD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QUFDLFFBQVE7UUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFBO0lBRTdDLE1BQU0sRUFBQyxnQkFBZ0IsRUFBQyxHQUFHLG1CQUFtQixDQUFDLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FDakUsZUFBZSxDQUFDLFNBQVM7UUFDdkIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSTtRQUNuQixDQUFDLGVBQWUsQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJLGVBQWUsQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUM1RyxDQUFBO0lBRUQsTUFBTSxXQUFXLEdBQUc7UUFDbEIsTUFBTSxFQUFFLGdCQUFnQjtRQUN4QixJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO1FBQ2QsS0FBSyxFQUFFLEtBQUssRUFBRTtLQUNmLENBQUE7SUFFRCxPQUFPO1FBQ0wsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVTtRQUMxQixXQUFXO1FBQ1gsU0FBUztLQUNWLENBQUE7QUFDSCxDQUFDLENBQUE7QUFFRCxlQUFlLFFBQVEsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZGlnLCBkaWdnfSBmcm9tIFwiZGlnZ2VyaXplXCJcbmltcG9ydCB7dXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IGlkRm9yQ29tcG9uZW50IGZyb20gXCIuL2lucHV0cy9pZC1mb3ItY29tcG9uZW50LmpzXCJcbmltcG9ydCBuYW1lRm9yQ29tcG9uZW50IGZyb20gXCIuL2lucHV0cy9uYW1lLWZvci1jb21wb25lbnQuanNcIlxuaW1wb3J0IHN0cmZ0aW1lIGZyb20gXCJzdHJmdGltZVwiXG5pbXBvcnQgdXNlU2hhcGUgZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL2J1aWxkL3VzZS1zaGFwZS5qc1wiXG5pbXBvcnQgdXNlVmFsaWRhdGlvbkVycm9ycyBmcm9tIFwiLi91c2UtdmFsaWRhdGlvbi1lcnJvcnMuanNcIlxuXG4vKipcbiAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzXG4gKiBAcGFyYW0ge29iamVjdH0gYXJncy5wcm9wc1xuICogQHBhcmFtIHtvYmplY3R9IGFyZ3MucHJvcHMuaW5wdXRSZWZcbiAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLnByb3BzLnR5cGVcbiAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzLnByb3BzLmlucHV0UHJvcHNcbiAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLnByb3BzLmlucHV0UHJvcHMubmFtZVxuICogQHBhcmFtIHtvYmplY3R9IGFyZ3MucHJvcHMuaW5wdXRQcm9wcy53cmFwcGVyT3B0c1xuICogQHBhcmFtIHtvYmplY3R9IGFyZ3Mud3JhcHBlck9wdGlvbnNcbiAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLndyYXBwZXJPcHRpb25zLnR5cGVcbiAqIEByZXR1cm5zIHt7aW5wdXRQcm9wczogb2JqZWN0LCB3cmFwcGVyT3B0czogb2JqZWN0LCByZXN0UHJvcHM6IG9iamVjdH19XG4gKi9cbmNvbnN0IHVzZUlucHV0ID0gKHtwcm9wcywgd3JhcHBlck9wdGlvbnMsIC4uLnVzZUlucHV0UmVzdFByb3BzfSkgPT4ge1xuICBjb25zdCB1c2VJbnB1dFJlc3RQcm9wc0tleXMgPSBPYmplY3Qua2V5cyh1c2VJbnB1dFJlc3RQcm9wcylcblxuICBpZiAodXNlSW5wdXRSZXN0UHJvcHNLZXlzLmxlbmd0aCA+IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gcHJvcHMgZ2l2ZW4gdG8gdXNlSW5wdXQ6ICR7dXNlSW5wdXRSZXN0UHJvcHNLZXlzLmpvaW4oXCIsIFwiKX1gKVxuICB9XG5cbiAgY29uc3QgcyA9IHVzZVNoYXBlKHByb3BzKVxuICBjb25zdCBiYWNrdXBSZWYgPSB1c2VSZWYoKVxuXG4gIHMudXNlU3RhdGVzKHtcbiAgICBmb3JtOiB1bmRlZmluZWRcbiAgfSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldEZvcm0oKVxuICB9LCBbcy5wcm9wcy5pbnB1dFJlZj8uY3VycmVudF0pXG5cbiAgcy5tZXRhLmZha2VDb21wb25lbnQgPSB7cHJvcHN9XG4gIHMubWV0YS5pc0NoZWNrYm94ID0gcHJvcHMudHlwZSA9PSBcImNoZWNrYm94XCIgfHwgd3JhcHBlck9wdGlvbnM/LnR5cGUgPT0gXCJjaGVja2JveFwiXG4gIHMubWV0YS5pc1NlbGVjdCA9IHdyYXBwZXJPcHRpb25zPy50eXBlID09IFwic2VsZWN0XCJcblxuICBjb25zdCBmb3JtYXRWYWx1ZSA9IHVzZUNhbGxiYWNrKCh2YWx1ZSkgPT4ge1xuICAgIGNvbnN0IHtmb3JtYXRWYWx1ZX0gPSBzLnByb3BzXG5cbiAgICBpZiAoZm9ybWF0VmFsdWUpIHtcbiAgICAgIHJldHVybiBmb3JtYXRWYWx1ZSh2YWx1ZSlcbiAgICB9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSAmJiAhaXNOYU4odmFsdWUuZ2V0VGltZSgpKSkge1xuICAgICAgLy8gV2UgbmVlZCB0byB1c2UgYSBjZXJ0YWluIGZvcm1hdCBmb3IgZGF0ZXRpbWUtbG9jYWxcbiAgICAgIGlmIChpbnB1dFR5cGUoKSA9PSBcImRhdGV0aW1lLWxvY2FsXCIpIHtcbiAgICAgICAgcmV0dXJuIHN0cmZ0aW1lKFwiJVktJW0tJWRUJUg6JU06JVNcIiwgdmFsdWUpXG4gICAgICB9IGVsc2UgaWYgKGlucHV0VHlwZSgpID09IFwiZGF0ZVwiKSB7XG4gICAgICAgIHJldHVybiBzdHJmdGltZShcIiVZLSVtLSVkXCIsIHZhbHVlKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZVxuICB9LCBbXSlcblxuICBjb25zdCBpbnB1dERlZmF1bHRDaGVja2VkID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChcImRlZmF1bHRDaGVja2VkXCIgaW4gcy5wcm9wcykge1xuICAgICAgcmV0dXJuIHMucHJvcHMuZGVmYXVsdENoZWNrZWRcbiAgICB9IGVsc2UgaWYgKHMucHJvcHMuYXR0cmlidXRlICYmIHMucHJvcHMubW9kZWwpIHtcbiAgICAgIGlmICghcy5wcm9wcy5tb2RlbFtzLnByb3BzLmF0dHJpYnV0ZV0pXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gc3VjaCBhdHRyaWJ1dGU6ICR7cy5wcm9wcy5hdHRyaWJ1dGV9YClcblxuICAgICAgcmV0dXJuIHMucHJvcHMubW9kZWxbcy5wcm9wcy5hdHRyaWJ1dGVdKClcbiAgICB9XG4gIH0sIFtdKVxuXG4gIGNvbnN0IGlucHV0RGVmYXVsdFZhbHVlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChcImRlZmF1bHRWYWx1ZVwiIGluIHMucHJvcHMpIHtcbiAgICAgIHJldHVybiBmb3JtYXRWYWx1ZShzLnByb3BzLmRlZmF1bHRWYWx1ZSlcbiAgICB9IGVsc2UgaWYgKHMucHJvcHMubW9kZWwgJiYgcy5wcm9wcy5hdHRyaWJ1dGUpIHtcbiAgICAgIGlmICghcy5wcm9wcy5tb2RlbFtzLnByb3BzLmF0dHJpYnV0ZV0pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBzdWNoIGF0dHJpYnV0ZSBkZWZpbmVkIG9uIHJlc291cmNlOiAke2RpZ2cocy5wcm9wcy5tb2RlbC5tb2RlbENsYXNzRGF0YSgpLCBcIm5hbWVcIil9IyR7cy5wcm9wcy5hdHRyaWJ1dGV9YClcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZvcm1hdFZhbHVlKHMucHJvcHMubW9kZWxbcy5wcm9wcy5hdHRyaWJ1dGVdKCkpXG4gICAgfVxuICB9LCBbXSlcblxuICBjb25zdCBpbnB1dFJlZiA9IHVzZUNhbGxiYWNrKCgpID0+IHMucHJvcHMuaW5wdXRSZWYgfHwgYmFja3VwUmVmKVxuXG4gIGNvbnN0IGlucHV0VHlwZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoXCJ0eXBlXCIgaW4gcy5wcm9wcykge1xuICAgICAgcmV0dXJuIHMucHJvcHMudHlwZVxuICAgIH0gZWxzZSBpZiAocy5tLmlzQ2hlY2tib3gpIHtcbiAgICAgIHJldHVybiBcImNoZWNrYm94XCJcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFwidGV4dFwiXG4gICAgfVxuICB9LCBbXSlcblxuICBjb25zdCBsYWJlbCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoXCJsYWJlbFwiIGluIHMucHJvcHMpIHtcbiAgICAgIHJldHVybiBzLnByb3BzLmxhYmVsXG4gICAgfSBlbHNlIGlmIChzLnByb3BzLmF0dHJpYnV0ZSAmJiBzLnByb3BzLm1vZGVsKSB7XG4gICAgICByZXR1cm4gcy5wcm9wcy5tb2RlbC5tb2RlbENsYXNzKCkuaHVtYW5BdHRyaWJ1dGVOYW1lKHMucHJvcHMuYXR0cmlidXRlKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgY29uc3Qgc2V0Rm9ybSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCBpbnB1dEVsZW1lbnQgPSBpbnB1dFJlZigpLmN1cnJlbnRcblxuICAgIGxldCBmb3JtXG5cbiAgICBpZiAoaW5wdXRFbGVtZW50KSBmb3JtID0gZGlnKGlucHV0RWxlbWVudCwgXCJmb3JtXCIpXG4gICAgaWYgKGZvcm0gJiYgZm9ybSAhPSBzLnMuZm9ybSkgcy5zZXQoe2Zvcm19KVxuICB9LCBbXSlcblxuICBjb25zdCBnZXRJZCA9IHVzZUNhbGxiYWNrKCgpID0+IGlkRm9yQ29tcG9uZW50KHMubS5mYWtlQ29tcG9uZW50KSwgW10pXG4gIGNvbnN0IGdldE5hbWUgPSB1c2VDYWxsYmFjaygoKSA9PiBuYW1lRm9yQ29tcG9uZW50KHMubS5mYWtlQ29tcG9uZW50KSwgW10pXG5cbiAgY29uc3QgZ2V0SW5wdXRQcm9wcyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCBnaXZlbklucHV0UHJvcHMgPSBzLnByb3BzLmlucHV0UHJvcHMgfHwge31cbiAgICBjb25zdCBpbnB1dFByb3BzID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIHtcbiAgICAgICAgaWQ6IGdldElkKCksXG4gICAgICAgIG5hbWU6IGdldE5hbWUoKSxcbiAgICAgICAgcmVmOiBpbnB1dFJlZigpXG4gICAgICB9LFxuICAgICAgZ2l2ZW5JbnB1dFByb3BzXG4gICAgKVxuXG4gICAgaWYgKHMubS5pc0NoZWNrYm94KSB7XG4gICAgICBpZiAoXCJjaGVja2VkXCIgaW4gcy5wcm9wcykge1xuICAgICAgICBpbnB1dFByb3BzLmNoZWNrZWQgPSBzLnByb3BzLmNoZWNrZWRcbiAgICAgIH1cblxuICAgICAgaWYgKFwiZGVmYXVsdENoZWNrZWRcIiBpbiBzLnByb3BzIHx8IChzLnByb3BzLmF0dHJpYnV0ZSAmJiBzLnByb3BzLm1vZGVsKSkge1xuICAgICAgICBpbnB1dFByb3BzLmRlZmF1bHRDaGVja2VkID0gaW5wdXREZWZhdWx0Q2hlY2tlZCgpXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChcInZhbHVlXCIgaW4gcy5wcm9wcykge1xuICAgICAgaW5wdXRQcm9wcy52YWx1ZSA9IHMucHJvcHMudmFsdWVcbiAgICB9IGVsc2UgaWYgKCEoXCJ2YWx1ZVwiIGluIHMucHJvcHMpKSB7XG4gICAgICBpbnB1dFByb3BzLmRlZmF1bHRWYWx1ZSA9IGlucHV0RGVmYXVsdFZhbHVlKClcbiAgICB9XG5cbiAgICByZXR1cm4gaW5wdXRQcm9wc1xuICB9LCBbXSlcblxuICBjb25zdCB7aW5wdXRQcm9wczogb2xkSW5wdXRQcm9wcywgd3JhcHBlck9wdHM6IG9sZFdyYXBwZXJPcHRzLCAuLi5yZXN0UHJvcHN9ID0gcHJvcHNcbiAgY29uc3QgdHlwZSA9IGlucHV0VHlwZSgpXG5cbiAgcy5tZXRhLmlucHV0UHJvcHMgPSBnZXRJbnB1dFByb3BzKClcbiAgcy5tZXRhLmlucHV0TmFtZVdpdGhvdXRJZCA9IHVzZU1lbW8oKCkgPT4gcy5tLmlucHV0UHJvcHMubmFtZT8ucmVwbGFjZSgvXFxbKC4rKV9pZFxcXSQvLCBcIlskMV1cIiksIFtzLm0uaW5wdXRQcm9wcy5uYW1lXSlcblxuICBpZiAoIXMubS5pbnB1dFByb3BzLnJlZikgdGhyb3cgbmV3IEVycm9yKFwiTm8gaW5wdXQgcmVmP1wiKVxuICBpZiAoIXMubS5pc1NlbGVjdCkgcy5tLmlucHV0UHJvcHMudHlwZSA9IHR5cGVcblxuICBjb25zdCB7dmFsaWRhdGlvbkVycm9yc30gPSB1c2VWYWxpZGF0aW9uRXJyb3JzKCh2YWxpZGF0aW9uRXJyb3IpID0+XG4gICAgdmFsaWRhdGlvbkVycm9yLmlucHV0TmFtZSAmJlxuICAgICAgcy5tLmlucHV0UHJvcHMubmFtZSAmJlxuICAgICAgKHZhbGlkYXRpb25FcnJvci5pbnB1dE5hbWUgPT0gcy5tLmlucHV0UHJvcHMubmFtZSB8fCB2YWxpZGF0aW9uRXJyb3IuaW5wdXROYW1lID09IHMubS5pbnB1dE5hbWVXaXRob3V0SWQpXG4gIClcblxuICBjb25zdCB3cmFwcGVyT3B0cyA9IHtcbiAgICBlcnJvcnM6IHZhbGlkYXRpb25FcnJvcnMsXG4gICAgZm9ybTogcy5zLmZvcm0sXG4gICAgbGFiZWw6IGxhYmVsKClcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgaW5wdXRQcm9wczogcy5tLmlucHV0UHJvcHMsXG4gICAgd3JhcHBlck9wdHMsXG4gICAgcmVzdFByb3BzXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdXNlSW5wdXRcbiJdfQ==
|
package/build/use-model-event.js
CHANGED
|
@@ -1,23 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
t[p] = s[p];
|
|
6
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
-
t[p[i]] = s[p[i]];
|
|
10
|
-
}
|
|
11
|
-
return t;
|
|
12
|
-
};
|
|
13
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
var react_1 = require("react");
|
|
18
|
-
var debounce_1 = __importDefault(require("debounce"));
|
|
19
|
-
var model_events_js_1 = __importDefault(require("./model-events.js"));
|
|
20
|
-
var use_shape_js_1 = __importDefault(require("set-state-compare/build/use-shape.js"));
|
|
1
|
+
import { useCallback, useLayoutEffect, useMemo } from "react";
|
|
2
|
+
import debounceFunction from "debounce";
|
|
3
|
+
import ModelEvents from "./model-events.js";
|
|
4
|
+
import useShape from "set-state-compare/build/use-shape.js";
|
|
21
5
|
/**
|
|
22
6
|
* @param {import("./base-model.js").default} model
|
|
23
7
|
* @param {string} event
|
|
@@ -28,46 +12,41 @@ var use_shape_js_1 = __importDefault(require("set-state-compare/build/use-shape.
|
|
|
28
12
|
* @param {function} props.onConnected
|
|
29
13
|
* @return {void}
|
|
30
14
|
*/
|
|
31
|
-
|
|
32
|
-
|
|
15
|
+
const apiMakerUseModelEvent = (model, event, onCallback, props) => {
|
|
16
|
+
const { active = true, debounce, onConnected, ...restProps } = props || {};
|
|
33
17
|
if (Object.keys(restProps).length > 0) {
|
|
34
|
-
throw new Error(
|
|
18
|
+
throw new Error(`Unknown props given to apiMakerUseModelEvent: ${Object.keys(restProps).join(", ")}`);
|
|
35
19
|
}
|
|
36
|
-
|
|
37
|
-
|
|
20
|
+
const s = useShape({ active, debounce, model, onCallback });
|
|
21
|
+
const debounceCallback = useMemo(() => {
|
|
38
22
|
if (typeof debounce == "number") {
|
|
39
|
-
return (
|
|
23
|
+
return debounceFunction(s.p.onCallback, debounce);
|
|
40
24
|
}
|
|
41
25
|
else {
|
|
42
|
-
return (
|
|
26
|
+
return debounceFunction(s.p.onCallback);
|
|
43
27
|
}
|
|
44
28
|
}, [debounce]);
|
|
45
|
-
s.updateMeta({ debounceCallback
|
|
46
|
-
|
|
47
|
-
var _a, _b;
|
|
48
|
-
var args = [];
|
|
49
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
50
|
-
args[_i] = arguments[_i];
|
|
51
|
-
}
|
|
29
|
+
s.updateMeta({ debounceCallback });
|
|
30
|
+
const onCallbackCallback = useCallback((...args) => {
|
|
52
31
|
if (!s.p.active) {
|
|
53
32
|
return;
|
|
54
33
|
}
|
|
55
34
|
if (s.p.debounce) {
|
|
56
|
-
|
|
35
|
+
s.m.debounceCallback(...args);
|
|
57
36
|
}
|
|
58
37
|
else {
|
|
59
|
-
|
|
38
|
+
s.p.onCallback(...args);
|
|
60
39
|
}
|
|
61
40
|
}, []);
|
|
62
|
-
|
|
63
|
-
|
|
41
|
+
useLayoutEffect(() => {
|
|
42
|
+
let connectEvent, onConnectedListener;
|
|
64
43
|
if (model) {
|
|
65
|
-
connectEvent =
|
|
44
|
+
connectEvent = ModelEvents.connect(model, event, onCallbackCallback);
|
|
66
45
|
if (onConnected) {
|
|
67
46
|
onConnectedListener = connectEvent.events.addListener("connected", onConnected);
|
|
68
47
|
}
|
|
69
48
|
}
|
|
70
|
-
return
|
|
49
|
+
return () => {
|
|
71
50
|
if (onConnectedListener) {
|
|
72
51
|
connectEvent.events.removeListener("connected", onConnected);
|
|
73
52
|
}
|
|
@@ -75,7 +54,7 @@ var apiMakerUseModelEvent = function (model, event, onCallback, props) {
|
|
|
75
54
|
connectEvent.unsubscribe();
|
|
76
55
|
}
|
|
77
56
|
};
|
|
78
|
-
}, [model
|
|
57
|
+
}, [model?.id()]);
|
|
79
58
|
};
|
|
80
|
-
|
|
81
|
-
//# sourceMappingURL=
|
|
59
|
+
export default apiMakerUseModelEvent;
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLW1vZGVsLWV2ZW50LmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJ1c2UtbW9kZWwtZXZlbnQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFdBQVcsRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFDLE1BQU0sT0FBTyxDQUFBO0FBQzNELE9BQU8sZ0JBQWdCLE1BQU0sVUFBVSxDQUFBO0FBQ3ZDLE9BQU8sV0FBVyxNQUFNLG1CQUFtQixDQUFBO0FBQzNDLE9BQU8sUUFBUSxNQUFNLHNDQUFzQyxDQUFBO0FBRTNEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsRUFBRTtJQUNoRSxNQUFNLEVBQUMsTUFBTSxHQUFHLElBQUksRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLEdBQUcsU0FBUyxFQUFDLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQTtJQUV4RSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3RDLE1BQU0sSUFBSSxLQUFLLENBQUMsaURBQWlELE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUN2RyxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLEVBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFDLENBQUMsQ0FBQTtJQUV6RCxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUU7UUFDcEMsSUFBSSxPQUFPLFFBQVEsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNoQyxPQUFPLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFBO1FBQ25ELENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ3pDLENBQUM7SUFDSCxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO0lBRWQsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFDLGdCQUFnQixFQUFDLENBQUMsQ0FBQTtJQUVoQyxNQUFNLGtCQUFrQixHQUFHLFdBQVcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUU7UUFDakQsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEIsT0FBTTtRQUNSLENBQUM7UUFFRCxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDakIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFBO1FBQy9CLENBQUM7YUFBTSxDQUFDO1lBQ04sQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQTtRQUN6QixDQUFDO0lBQ0gsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBRU4sZUFBZSxDQUFDLEdBQUcsRUFBRTtRQUNuQixJQUFJLFlBQVksRUFBRSxtQkFBbUIsQ0FBQTtRQUVyQyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsWUFBWSxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxrQkFBa0IsQ0FBQyxDQUFBO1lBRXBFLElBQUksV0FBVyxFQUFFLENBQUM7Z0JBQ2hCLG1CQUFtQixHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQTtZQUNqRixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sR0FBRyxFQUFFO1lBQ1YsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO2dCQUN4QixZQUFZLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUE7WUFDOUQsQ0FBQztZQUVELElBQUksWUFBWSxFQUFFLENBQUM7Z0JBQ2pCLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQTtZQUM1QixDQUFDO1FBQ0gsQ0FBQyxDQUFBO0lBQ0gsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUNuQixDQUFDLENBQUE7QUFFRCxlQUFlLHFCQUFxQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHt1c2VDYWxsYmFjaywgdXNlTGF5b3V0RWZmZWN0LCB1c2VNZW1vfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IGRlYm91bmNlRnVuY3Rpb24gZnJvbSBcImRlYm91bmNlXCJcbmltcG9ydCBNb2RlbEV2ZW50cyBmcm9tIFwiLi9tb2RlbC1ldmVudHMuanNcIlxuaW1wb3J0IHVzZVNoYXBlIGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9idWlsZC91c2Utc2hhcGUuanNcIlxuXG4vKipcbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi9iYXNlLW1vZGVsLmpzXCIpLmRlZmF1bHR9IG1vZGVsXG4gKiBAcGFyYW0ge3N0cmluZ30gZXZlbnRcbiAqIEBwYXJhbSB7ZnVuY3Rpb259IG9uQ2FsbGJhY2tcbiAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wc1xuICogQHBhcmFtIHtvYmplY3R9IHByb3BzLmFjdGl2ZVxuICogQHBhcmFtIHtudW1iZXJ9IHByb3BzLmRlYm91bmNlXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBwcm9wcy5vbkNvbm5lY3RlZFxuICogQHJldHVybiB7dm9pZH1cbiAqL1xuY29uc3QgYXBpTWFrZXJVc2VNb2RlbEV2ZW50ID0gKG1vZGVsLCBldmVudCwgb25DYWxsYmFjaywgcHJvcHMpID0+IHtcbiAgY29uc3Qge2FjdGl2ZSA9IHRydWUsIGRlYm91bmNlLCBvbkNvbm5lY3RlZCwgLi4ucmVzdFByb3BzfSA9IHByb3BzIHx8IHt9XG5cbiAgaWYgKE9iamVjdC5rZXlzKHJlc3RQcm9wcykubGVuZ3RoID4gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBwcm9wcyBnaXZlbiB0byBhcGlNYWtlclVzZU1vZGVsRXZlbnQ6ICR7T2JqZWN0LmtleXMocmVzdFByb3BzKS5qb2luKFwiLCBcIil9YClcbiAgfVxuXG4gIGNvbnN0IHMgPSB1c2VTaGFwZSh7YWN0aXZlLCBkZWJvdW5jZSwgbW9kZWwsIG9uQ2FsbGJhY2t9KVxuXG4gIGNvbnN0IGRlYm91bmNlQ2FsbGJhY2sgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAodHlwZW9mIGRlYm91bmNlID09IFwibnVtYmVyXCIpIHtcbiAgICAgIHJldHVybiBkZWJvdW5jZUZ1bmN0aW9uKHMucC5vbkNhbGxiYWNrLCBkZWJvdW5jZSlcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGRlYm91bmNlRnVuY3Rpb24ocy5wLm9uQ2FsbGJhY2spXG4gICAgfVxuICB9LCBbZGVib3VuY2VdKVxuXG4gIHMudXBkYXRlTWV0YSh7ZGVib3VuY2VDYWxsYmFja30pXG5cbiAgY29uc3Qgb25DYWxsYmFja0NhbGxiYWNrID0gdXNlQ2FsbGJhY2soKC4uLmFyZ3MpID0+IHtcbiAgICBpZiAoIXMucC5hY3RpdmUpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChzLnAuZGVib3VuY2UpIHtcbiAgICAgIHMubS5kZWJvdW5jZUNhbGxiYWNrKC4uLmFyZ3MpXG4gICAgfSBlbHNlIHtcbiAgICAgIHMucC5vbkNhbGxiYWNrKC4uLmFyZ3MpXG4gICAgfVxuICB9LCBbXSlcblxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGxldCBjb25uZWN0RXZlbnQsIG9uQ29ubmVjdGVkTGlzdGVuZXJcblxuICAgIGlmIChtb2RlbCkge1xuICAgICAgY29ubmVjdEV2ZW50ID0gTW9kZWxFdmVudHMuY29ubmVjdChtb2RlbCwgZXZlbnQsIG9uQ2FsbGJhY2tDYWxsYmFjaylcblxuICAgICAgaWYgKG9uQ29ubmVjdGVkKSB7XG4gICAgICAgIG9uQ29ubmVjdGVkTGlzdGVuZXIgPSBjb25uZWN0RXZlbnQuZXZlbnRzLmFkZExpc3RlbmVyKFwiY29ubmVjdGVkXCIsIG9uQ29ubmVjdGVkKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAob25Db25uZWN0ZWRMaXN0ZW5lcikge1xuICAgICAgICBjb25uZWN0RXZlbnQuZXZlbnRzLnJlbW92ZUxpc3RlbmVyKFwiY29ubmVjdGVkXCIsIG9uQ29ubmVjdGVkKVxuICAgICAgfVxuXG4gICAgICBpZiAoY29ubmVjdEV2ZW50KSB7XG4gICAgICAgIGNvbm5lY3RFdmVudC51bnN1YnNjcmliZSgpXG4gICAgICB9XG4gICAgfVxuICB9LCBbbW9kZWw/LmlkKCldKVxufVxuXG5leHBvcnQgZGVmYXVsdCBhcGlNYWtlclVzZU1vZGVsRXZlbnRcbiJdfQ==
|