@kaspernj/api-maker 1.0.2055 → 1.0.2057
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 +22 -16
- package/build/attribute-not-loaded-error.js +5 -2
- package/build/base-component.js +6 -3
- package/build/base-error.js +15 -9
- package/build/base-model/attribute.js +10 -4
- package/build/base-model/column.js +5 -2
- package/build/base-model/reflection.js +49 -10
- package/build/base-model/scope.js +41 -5
- package/build/base-model.js +115 -76
- package/build/bootstrap/attribute-row.js +71 -33
- package/build/bootstrap/attribute-rows.js +20 -15
- package/build/bootstrap/card.js +72 -34
- package/build/bootstrap/checkbox.js +35 -30
- package/build/bootstrap/checkboxes.js +69 -31
- package/build/bootstrap/index.d.ts +1 -0
- package/build/bootstrap/index.js +3 -1
- package/build/bootstrap/input.js +48 -43
- package/build/bootstrap/invalid-feedback.js +17 -11
- package/build/bootstrap/paginate.js +73 -35
- package/build/bootstrap/radio-buttons.js +33 -28
- package/build/bootstrap/select.js +34 -29
- package/build/bootstrap/sort-link.js +68 -30
- package/build/cable-connection-pool.js +18 -12
- package/build/cable-subscription-pool.js +58 -19
- package/build/cable-subscription.d.ts +2 -2
- package/build/cable-subscription.d.ts.map +1 -1
- package/build/cable-subscription.js +12 -6
- package/build/cache-key-generator.js +11 -5
- package/build/can-can.d.ts +2 -2
- package/build/can-can.d.ts.map +1 -1
- package/build/can-can.js +56 -17
- package/build/channels-consumer.js +10 -5
- package/build/collection-loader.js +36 -31
- package/build/collection.d.ts.map +1 -1
- package/build/collection.js +58 -20
- 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 +10 -4
- package/build/commands-pool.js +39 -33
- package/build/compose.js +5 -2
- package/build/config.d.ts +3 -3
- package/build/config.d.ts.map +1 -1
- package/build/config.js +40 -6
- package/build/custom-error.js +9 -4
- package/build/data-set-to-attributes.js +39 -3
- package/build/deserializer.js +57 -18
- package/build/destroy-error.js +9 -4
- package/build/devise.d.ts +1 -1
- package/build/devise.d.ts.map +1 -1
- package/build/devise.js +55 -16
- package/build/draggable-sort/controller.js +14 -11
- package/build/draggable-sort/index.js +69 -31
- package/build/draggable-sort/item.js +70 -32
- package/build/error-logger.js +14 -8
- package/build/error-messages.js +8 -5
- package/build/event-connection.js +18 -12
- package/build/event-emitter-listener.js +9 -4
- package/build/event-model-class.js +17 -11
- package/build/events.d.ts +2 -2
- package/build/events.d.ts.map +1 -1
- package/build/events.js +6 -5
- package/build/form.js +69 -27
- package/build/history-expo.js +11 -6
- package/build/history-react-native.js +14 -9
- package/build/history.js +5 -3
- package/build/index.js +5 -2
- package/build/inputs/attachment.js +29 -24
- package/build/inputs/auto-submit.js +42 -6
- package/build/inputs/checkbox.js +73 -35
- package/build/inputs/checkboxes.js +68 -30
- package/build/inputs/id-for-component.js +39 -3
- package/build/inputs/input-wrapper.js +12 -7
- package/build/inputs/input.js +101 -62
- package/build/inputs/money.js +85 -47
- package/build/inputs/name-for-component.js +39 -3
- package/build/inputs/select.js +32 -26
- package/build/instance-of-class-name.js +7 -5
- package/build/is-expo.js +8 -6
- package/build/key-value-store.js +10 -4
- package/build/link.js +21 -16
- package/build/logger.js +5 -2
- package/build/merge-styles.js +7 -4
- package/build/modal.js +15 -10
- package/build/model-class-require.js +39 -4
- package/build/model-events.js +20 -14
- package/build/model-name.js +44 -5
- package/build/model-prop-type.js +15 -9
- package/build/model-recipes-loader.js +14 -8
- package/build/model-recipes-model-loader.d.ts +1 -1
- package/build/model-recipes-model-loader.js +57 -18
- package/build/models-response-reader.js +46 -7
- package/build/models.js +10 -5
- package/build/money-formatter.d.ts +2 -2
- package/build/money-formatter.d.ts.map +1 -1
- package/build/money-formatter.js +19 -13
- package/build/not-loaded-error.js +5 -2
- package/build/params.js +19 -13
- package/build/preloaded.js +44 -5
- package/build/resize-observer.js +11 -6
- package/build/rest-props-validator.js +4 -2
- package/build/result.js +5 -2
- package/build/router/route.js +82 -40
- package/build/router/switch.js +56 -17
- package/build/router.js +59 -21
- package/build/routes-native.js +54 -15
- package/build/routes.js +49 -13
- package/build/run-last.js +5 -2
- package/build/serializer.js +8 -5
- package/build/services.js +10 -4
- package/build/session-status-updater.js +53 -14
- package/build/source-maps-loader.js +50 -11
- package/build/super-admin/config-reader.d.ts +2 -2
- package/build/super-admin/config-reader.js +45 -9
- package/build/super-admin/edit-page/edit-attribute-checkbox.js +61 -23
- package/build/super-admin/edit-page/edit-attribute-content.js +21 -16
- package/build/super-admin/edit-page/edit-attribute-input.js +59 -21
- package/build/super-admin/edit-page/edit-attribute.js +65 -27
- package/build/super-admin/edit-page.js +72 -34
- package/build/super-admin/has-edit-config.js +9 -4
- package/build/super-admin/index-page.js +17 -12
- package/build/super-admin/index.js +84 -46
- package/build/super-admin/layout/header/index.js +63 -25
- package/build/super-admin/layout/index.js +78 -40
- package/build/super-admin/layout/menu/index.js +47 -42
- package/build/super-admin/layout/menu/menu-content.js +60 -22
- package/build/super-admin/layout/menu/menu-item.js +23 -18
- package/build/super-admin/layout/no-access.js +20 -15
- package/build/super-admin/model-class-table.js +64 -26
- package/build/super-admin/models.js +38 -3
- package/build/super-admin/show-nav.js +61 -23
- package/build/super-admin/show-page/belongs-to-attribute-row.js +52 -14
- package/build/super-admin/show-page/index.js +63 -25
- package/build/super-admin/show-reflection-actions.js +62 -24
- package/build/super-admin/show-reflection-link.js +19 -14
- package/build/super-admin/show-reflection-page.js +63 -25
- package/build/table/column-content.js +54 -15
- package/build/table/column-identifier.js +5 -2
- package/build/table/column-visible.js +5 -2
- package/build/table/components/column.js +14 -9
- package/build/table/components/flat-list.js +14 -9
- package/build/table/components/header.js +16 -11
- package/build/table/components/row.js +16 -11
- package/build/table/filters/attribute-element.js +26 -21
- package/build/table/filters/filter-form.js +109 -71
- package/build/table/filters/filter.js +29 -24
- package/build/table/filters/index.js +43 -38
- package/build/table/filters/load-search-modal.js +64 -26
- package/build/table/filters/reflection-element.js +22 -17
- package/build/table/filters/save-search-modal.js +27 -22
- package/build/table/filters/scope-element.js +19 -14
- package/build/table/header-column-content.js +27 -22
- package/build/table/header-column.js +71 -33
- package/build/table/header-select.js +29 -24
- package/build/table/model-callback-args.js +39 -3
- package/build/table/model-column.js +75 -37
- package/build/table/model-row.js +79 -41
- package/build/table/select-calculator.js +52 -13
- package/build/table/settings/column-row.js +57 -19
- package/build/table/settings/download-action.js +31 -26
- package/build/table/settings/index.js +61 -23
- package/build/table/table-settings.js +70 -31
- package/build/table/table.js +196 -158
- package/build/table/use-sorting.js +12 -6
- package/build/table/widths.js +12 -9
- package/build/table/worker-plugins-check-all-checkbox.js +64 -26
- package/build/table/worker-plugins-checkbox.js +61 -23
- package/build/translated-attributes.js +5 -2
- package/build/translated-collections.js +14 -8
- package/build/updated-attribute.js +21 -15
- package/build/url-encode.js +10 -4
- package/build/use-breakpoint.js +58 -20
- package/build/use-can-can.js +21 -15
- package/build/use-collection.js +70 -32
- package/build/use-created-event.js +27 -22
- package/build/use-current-user-context.js +74 -36
- package/build/use-current-user.d.ts +2 -2
- package/build/use-current-user.d.ts.map +1 -1
- package/build/use-current-user.js +17 -11
- package/build/use-destroyed-event.js +18 -13
- 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 +14 -9
- package/build/use-event-listener.js +12 -7
- package/build/use-input.js +33 -28
- package/build/use-model-event.js +18 -13
- package/build/use-model.js +65 -27
- package/build/use-resize-observer.js +13 -8
- package/build/use-router.js +62 -24
- package/build/use-screen-layout.js +7 -5
- package/build/use-styles.js +52 -13
- package/build/use-updated-event.js +18 -13
- package/build/use-validation-errors.js +14 -9
- package/build/utils/button.js +33 -28
- package/build/utils/card.js +61 -23
- package/build/utils/checkbox.js +60 -22
- package/build/utils/checkboxes.js +78 -40
- package/build/utils/default-style.js +56 -15
- package/build/utils/header.js +12 -7
- package/build/utils/icon.js +61 -23
- package/build/utils/invalid-feedback.js +17 -12
- package/build/utils/modal.js +55 -17
- package/build/utils/text.js +14 -9
- package/build/validation-error.js +45 -6
- package/build/validation-errors.js +59 -19
- package/build/with-api-maker.js +52 -12
- package/build/with-collection.js +50 -12
- package/build/with-current-user.js +12 -7
- package/build/with-model.js +14 -9
- package/build/with-router.js +12 -7
- package/package.json +5 -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.d.ts +0 -37
- package/build/source-maps-loader.d.ts.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-model-event.js
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const react_1 = require("react");
|
|
7
|
+
const debounce_1 = __importDefault(require("debounce"));
|
|
8
|
+
const model_events_js_1 = __importDefault(require("./model-events.js"));
|
|
9
|
+
const use_shape_js_1 = __importDefault(require("set-state-compare/build/use-shape.js"));
|
|
5
10
|
/**
|
|
6
11
|
* @param {import("./base-model.js").default} model
|
|
7
12
|
* @param {string} event
|
|
@@ -17,17 +22,17 @@ const apiMakerUseModelEvent = (model, event, onCallback, props) => {
|
|
|
17
22
|
if (Object.keys(restProps).length > 0) {
|
|
18
23
|
throw new Error(`Unknown props given to apiMakerUseModelEvent: ${Object.keys(restProps).join(", ")}`);
|
|
19
24
|
}
|
|
20
|
-
const s =
|
|
21
|
-
const debounceCallback = useMemo(() => {
|
|
25
|
+
const s = (0, use_shape_js_1.default)({ active, debounce, model, onCallback });
|
|
26
|
+
const debounceCallback = (0, react_1.useMemo)(() => {
|
|
22
27
|
if (typeof debounce == "number") {
|
|
23
|
-
return
|
|
28
|
+
return (0, debounce_1.default)(s.p.onCallback, debounce);
|
|
24
29
|
}
|
|
25
30
|
else {
|
|
26
|
-
return
|
|
31
|
+
return (0, debounce_1.default)(s.p.onCallback);
|
|
27
32
|
}
|
|
28
33
|
}, [debounce]);
|
|
29
34
|
s.updateMeta({ debounceCallback });
|
|
30
|
-
const onCallbackCallback = useCallback((...args) => {
|
|
35
|
+
const onCallbackCallback = (0, react_1.useCallback)((...args) => {
|
|
31
36
|
if (!s.p.active) {
|
|
32
37
|
return;
|
|
33
38
|
}
|
|
@@ -38,10 +43,10 @@ const apiMakerUseModelEvent = (model, event, onCallback, props) => {
|
|
|
38
43
|
s.p.onCallback(...args);
|
|
39
44
|
}
|
|
40
45
|
}, []);
|
|
41
|
-
useLayoutEffect(() => {
|
|
46
|
+
(0, react_1.useLayoutEffect)(() => {
|
|
42
47
|
let connectEvent, onConnectedListener;
|
|
43
48
|
if (model) {
|
|
44
|
-
connectEvent =
|
|
49
|
+
connectEvent = model_events_js_1.default.connect(model, event, onCallbackCallback);
|
|
45
50
|
if (onConnected) {
|
|
46
51
|
onConnectedListener = connectEvent.events.addListener("connected", onConnected);
|
|
47
52
|
}
|
|
@@ -56,5 +61,5 @@ const apiMakerUseModelEvent = (model, event, onCallback, props) => {
|
|
|
56
61
|
};
|
|
57
62
|
}, [model?.id()]);
|
|
58
63
|
};
|
|
59
|
-
|
|
60
|
-
//# sourceMappingURL=
|
|
64
|
+
exports.default = apiMakerUseModelEvent;
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLW1vZGVsLWV2ZW50LmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJ1c2UtbW9kZWwtZXZlbnQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxpQ0FBMkQ7QUFDM0Qsd0RBQXVDO0FBQ3ZDLHdFQUEyQztBQUMzQyx3RkFBMkQ7QUFFM0Q7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxFQUFFO0lBQ2hFLE1BQU0sRUFBQyxNQUFNLEdBQUcsSUFBSSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsR0FBRyxTQUFTLEVBQUMsR0FBRyxLQUFLLElBQUksRUFBRSxDQUFBO0lBRXhFLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDdEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxpREFBaUQsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQ3ZHLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBRyxJQUFBLHNCQUFRLEVBQUMsRUFBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUMsQ0FBQyxDQUFBO0lBRXpELE1BQU0sZ0JBQWdCLEdBQUcsSUFBQSxlQUFPLEVBQUMsR0FBRyxFQUFFO1FBQ3BDLElBQUksT0FBTyxRQUFRLElBQUksUUFBUSxFQUFFLENBQUM7WUFDaEMsT0FBTyxJQUFBLGtCQUFnQixFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFBO1FBQ25ELENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxJQUFBLGtCQUFnQixFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDekMsQ0FBQztJQUNILENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUE7SUFFZCxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUMsZ0JBQWdCLEVBQUMsQ0FBQyxDQUFBO0lBRWhDLE1BQU0sa0JBQWtCLEdBQUcsSUFBQSxtQkFBVyxFQUFDLENBQUMsR0FBRyxJQUFJLEVBQUUsRUFBRTtRQUNqRCxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQixPQUFNO1FBQ1IsQ0FBQztRQUVELElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNqQixDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUE7UUFDL0IsQ0FBQzthQUFNLENBQUM7WUFDTixDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFBO1FBQ3pCLENBQUM7SUFDSCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFFTixJQUFBLHVCQUFlLEVBQUMsR0FBRyxFQUFFO1FBQ25CLElBQUksWUFBWSxFQUFFLG1CQUFtQixDQUFBO1FBRXJDLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixZQUFZLEdBQUcseUJBQVcsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxrQkFBa0IsQ0FBQyxDQUFBO1lBRXBFLElBQUksV0FBVyxFQUFFLENBQUM7Z0JBQ2hCLG1CQUFtQixHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQTtZQUNqRixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sR0FBRyxFQUFFO1lBQ1YsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO2dCQUN4QixZQUFZLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUE7WUFDOUQsQ0FBQztZQUVELElBQUksWUFBWSxFQUFFLENBQUM7Z0JBQ2pCLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQTtZQUM1QixDQUFDO1FBQ0gsQ0FBQyxDQUFBO0lBQ0gsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUNuQixDQUFDLENBQUE7QUFFRCxrQkFBZSxxQkFBcUIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7dXNlQ2FsbGJhY2ssIHVzZUxheW91dEVmZmVjdCwgdXNlTWVtb30gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBkZWJvdW5jZUZ1bmN0aW9uIGZyb20gXCJkZWJvdW5jZVwiXG5pbXBvcnQgTW9kZWxFdmVudHMgZnJvbSBcIi4vbW9kZWwtZXZlbnRzLmpzXCJcbmltcG9ydCB1c2VTaGFwZSBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvYnVpbGQvdXNlLXNoYXBlLmpzXCJcblxuLyoqXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4vYmFzZS1tb2RlbC5qc1wiKS5kZWZhdWx0fSBtb2RlbFxuICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50XG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBvbkNhbGxiYWNrXG4gKiBAcGFyYW0ge29iamVjdH0gcHJvcHNcbiAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wcy5hY3RpdmVcbiAqIEBwYXJhbSB7bnVtYmVyfSBwcm9wcy5kZWJvdW5jZVxuICogQHBhcmFtIHtmdW5jdGlvbn0gcHJvcHMub25Db25uZWN0ZWRcbiAqIEByZXR1cm4ge3ZvaWR9XG4gKi9cbmNvbnN0IGFwaU1ha2VyVXNlTW9kZWxFdmVudCA9IChtb2RlbCwgZXZlbnQsIG9uQ2FsbGJhY2ssIHByb3BzKSA9PiB7XG4gIGNvbnN0IHthY3RpdmUgPSB0cnVlLCBkZWJvdW5jZSwgb25Db25uZWN0ZWQsIC4uLnJlc3RQcm9wc30gPSBwcm9wcyB8fCB7fVxuXG4gIGlmIChPYmplY3Qua2V5cyhyZXN0UHJvcHMpLmxlbmd0aCA+IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gcHJvcHMgZ2l2ZW4gdG8gYXBpTWFrZXJVc2VNb2RlbEV2ZW50OiAke09iamVjdC5rZXlzKHJlc3RQcm9wcykuam9pbihcIiwgXCIpfWApXG4gIH1cblxuICBjb25zdCBzID0gdXNlU2hhcGUoe2FjdGl2ZSwgZGVib3VuY2UsIG1vZGVsLCBvbkNhbGxiYWNrfSlcblxuICBjb25zdCBkZWJvdW5jZUNhbGxiYWNrID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBkZWJvdW5jZSA9PSBcIm51bWJlclwiKSB7XG4gICAgICByZXR1cm4gZGVib3VuY2VGdW5jdGlvbihzLnAub25DYWxsYmFjaywgZGVib3VuY2UpXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBkZWJvdW5jZUZ1bmN0aW9uKHMucC5vbkNhbGxiYWNrKVxuICAgIH1cbiAgfSwgW2RlYm91bmNlXSlcblxuICBzLnVwZGF0ZU1ldGEoe2RlYm91bmNlQ2FsbGJhY2t9KVxuXG4gIGNvbnN0IG9uQ2FsbGJhY2tDYWxsYmFjayA9IHVzZUNhbGxiYWNrKCguLi5hcmdzKSA9PiB7XG4gICAgaWYgKCFzLnAuYWN0aXZlKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAocy5wLmRlYm91bmNlKSB7XG4gICAgICBzLm0uZGVib3VuY2VDYWxsYmFjayguLi5hcmdzKVxuICAgIH0gZWxzZSB7XG4gICAgICBzLnAub25DYWxsYmFjayguLi5hcmdzKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBsZXQgY29ubmVjdEV2ZW50LCBvbkNvbm5lY3RlZExpc3RlbmVyXG5cbiAgICBpZiAobW9kZWwpIHtcbiAgICAgIGNvbm5lY3RFdmVudCA9IE1vZGVsRXZlbnRzLmNvbm5lY3QobW9kZWwsIGV2ZW50LCBvbkNhbGxiYWNrQ2FsbGJhY2spXG5cbiAgICAgIGlmIChvbkNvbm5lY3RlZCkge1xuICAgICAgICBvbkNvbm5lY3RlZExpc3RlbmVyID0gY29ubmVjdEV2ZW50LmV2ZW50cy5hZGRMaXN0ZW5lcihcImNvbm5lY3RlZFwiLCBvbkNvbm5lY3RlZClcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKG9uQ29ubmVjdGVkTGlzdGVuZXIpIHtcbiAgICAgICAgY29ubmVjdEV2ZW50LmV2ZW50cy5yZW1vdmVMaXN0ZW5lcihcImNvbm5lY3RlZFwiLCBvbkNvbm5lY3RlZClcbiAgICAgIH1cblxuICAgICAgaWYgKGNvbm5lY3RFdmVudCkge1xuICAgICAgICBjb25uZWN0RXZlbnQudW5zdWJzY3JpYmUoKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW21vZGVsPy5pZCgpXSlcbn1cblxuZXhwb3J0IGRlZmF1bHQgYXBpTWFrZXJVc2VNb2RlbEV2ZW50XG4iXX0=
|
package/build/use-model.js
CHANGED
|
@@ -1,9 +1,47 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
const react_1 = require("react");
|
|
40
|
+
const devise_js_1 = __importDefault(require("./devise.js"));
|
|
41
|
+
const inflection = __importStar(require("inflection"));
|
|
42
|
+
const model_events_js_1 = __importDefault(require("./model-events.js"));
|
|
43
|
+
const use_query_params_js_1 = __importDefault(require("on-location-changed/build/use-query-params.js"));
|
|
44
|
+
const use_shape_js_1 = __importDefault(require("set-state-compare/build/use-shape.js"));
|
|
7
45
|
/**
|
|
8
46
|
* @param {function|object} modelClassArg
|
|
9
47
|
* @param {object} argsArg
|
|
@@ -16,7 +54,7 @@ import useShape from "set-state-compare/build/use-shape.js";
|
|
|
16
54
|
* @param {import("./collection.js").default} argsArg.query
|
|
17
55
|
*/
|
|
18
56
|
const useModel = (modelClassArg, argsArg = {}) => {
|
|
19
|
-
const queryParams =
|
|
57
|
+
const queryParams = (0, use_query_params_js_1.default)();
|
|
20
58
|
let args, modelClass;
|
|
21
59
|
if (typeof argsArg == "function") {
|
|
22
60
|
args = argsArg({ modelClass });
|
|
@@ -24,7 +62,7 @@ const useModel = (modelClassArg, argsArg = {}) => {
|
|
|
24
62
|
else {
|
|
25
63
|
args = argsArg;
|
|
26
64
|
}
|
|
27
|
-
const s =
|
|
65
|
+
const s = (0, use_shape_js_1.default)(args);
|
|
28
66
|
s.useStates({
|
|
29
67
|
model: undefined,
|
|
30
68
|
notFound: undefined
|
|
@@ -53,7 +91,7 @@ const useModel = (modelClassArg, argsArg = {}) => {
|
|
|
53
91
|
}
|
|
54
92
|
const modelVariableName = inflection.camelize(modelClass.modelClassData().name, true);
|
|
55
93
|
const cacheArgs = [modelId];
|
|
56
|
-
const loadExistingModel = useCallback(async () => {
|
|
94
|
+
const loadExistingModel = (0, react_1.useCallback)(async () => {
|
|
57
95
|
let query;
|
|
58
96
|
if (s.m.modelId) {
|
|
59
97
|
query = modelClass.ransack({ id_eq: s.m.modelId });
|
|
@@ -73,7 +111,7 @@ const useModel = (modelClassArg, argsArg = {}) => {
|
|
|
73
111
|
const model = await query.first();
|
|
74
112
|
s.set({ model, notFound: !model });
|
|
75
113
|
}, []);
|
|
76
|
-
const loadNewModel = useCallback(async () => {
|
|
114
|
+
const loadNewModel = (0, react_1.useCallback)(async () => {
|
|
77
115
|
const ModelClass = modelClass;
|
|
78
116
|
const paramKey = ModelClass.modelName().paramKey();
|
|
79
117
|
const modelDataFromParams = s.m.queryParams[paramKey] || {};
|
|
@@ -88,7 +126,7 @@ const useModel = (modelClassArg, argsArg = {}) => {
|
|
|
88
126
|
});
|
|
89
127
|
s.set({ model });
|
|
90
128
|
}, []);
|
|
91
|
-
const loadModel = useCallback(async () => {
|
|
129
|
+
const loadModel = (0, react_1.useCallback)(async () => {
|
|
92
130
|
if (!s.m.active) {
|
|
93
131
|
// Not active - don't do anything
|
|
94
132
|
}
|
|
@@ -99,23 +137,23 @@ const useModel = (modelClassArg, argsArg = {}) => {
|
|
|
99
137
|
return await loadExistingModel();
|
|
100
138
|
}
|
|
101
139
|
}, []);
|
|
102
|
-
const onDestroyed = useCallback(({ model }) => {
|
|
140
|
+
const onDestroyed = (0, react_1.useCallback)(({ model }) => {
|
|
103
141
|
const forwardArgs = { model };
|
|
104
142
|
forwardArgs[s.m.modelVariableName] = model;
|
|
105
143
|
s.p.onDestroyed(forwardArgs);
|
|
106
144
|
}, []);
|
|
107
|
-
const onSignedIn = useCallback(() => {
|
|
145
|
+
const onSignedIn = (0, react_1.useCallback)(() => {
|
|
108
146
|
loadModel();
|
|
109
147
|
}, []);
|
|
110
|
-
const onSignedOut = useCallback(() => {
|
|
148
|
+
const onSignedOut = (0, react_1.useCallback)(() => {
|
|
111
149
|
loadModel();
|
|
112
150
|
}, []);
|
|
113
151
|
if (args.cacheArgs) {
|
|
114
152
|
cacheArgs.push(...args.cacheArgs);
|
|
115
153
|
}
|
|
116
154
|
s.updateMeta({ args, modelId, modelVariableName, queryParams });
|
|
117
|
-
useMemo(() => { loadModel(); }, cacheArgs);
|
|
118
|
-
useLayoutEffect(() => {
|
|
155
|
+
(0, react_1.useMemo)(() => { loadModel(); }, cacheArgs);
|
|
156
|
+
(0, react_1.useLayoutEffect)(() => {
|
|
119
157
|
let reloadModelCallback;
|
|
120
158
|
if (args.events) {
|
|
121
159
|
reloadModelCallback = args.events.addListener("reloadModel", loadModel);
|
|
@@ -126,27 +164,27 @@ const useModel = (modelClassArg, argsArg = {}) => {
|
|
|
126
164
|
}
|
|
127
165
|
};
|
|
128
166
|
}, [args.events]);
|
|
129
|
-
useLayoutEffect(() => {
|
|
167
|
+
(0, react_1.useLayoutEffect)(() => {
|
|
130
168
|
let connectUpdated;
|
|
131
169
|
if (s.s.model && args.eventUpdated) {
|
|
132
|
-
connectUpdated =
|
|
170
|
+
connectUpdated = model_events_js_1.default.connectUpdated(s.s.model, loadModel);
|
|
133
171
|
}
|
|
134
172
|
return () => {
|
|
135
173
|
connectUpdated?.unsubscribe();
|
|
136
174
|
};
|
|
137
175
|
}, [args.eventUpdated, s.s.model?.id()]);
|
|
138
|
-
useLayoutEffect(() => {
|
|
139
|
-
|
|
140
|
-
|
|
176
|
+
(0, react_1.useLayoutEffect)(() => {
|
|
177
|
+
devise_js_1.default.events().addListener("onDeviseSignIn", onSignedIn);
|
|
178
|
+
devise_js_1.default.events().addListener("onDeviseSignOut", onSignedOut);
|
|
141
179
|
return () => {
|
|
142
|
-
|
|
143
|
-
|
|
180
|
+
devise_js_1.default.events().removeListener("onDeviseSignIn", onSignedIn);
|
|
181
|
+
devise_js_1.default.events().removeListener("onDeviseSignOut", onSignedOut);
|
|
144
182
|
};
|
|
145
183
|
});
|
|
146
|
-
useLayoutEffect(() => {
|
|
184
|
+
(0, react_1.useLayoutEffect)(() => {
|
|
147
185
|
let connectDestroyed;
|
|
148
186
|
if (s.s.model && args.onDestroyed) {
|
|
149
|
-
connectDestroyed =
|
|
187
|
+
connectDestroyed = model_events_js_1.default.connectDestroyed(s.s.model, onDestroyed);
|
|
150
188
|
}
|
|
151
189
|
return () => {
|
|
152
190
|
connectDestroyed?.unsubscribe();
|
|
@@ -162,5 +200,5 @@ const useModel = (modelClassArg, argsArg = {}) => {
|
|
|
162
200
|
result[`${modelVariableName}NotFound`] = s.s.notFound;
|
|
163
201
|
return result;
|
|
164
202
|
};
|
|
165
|
-
|
|
166
|
-
//# sourceMappingURL=use-model.js.map
|
|
203
|
+
exports.default = useModel;
|
|
204
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLW1vZGVsLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJ1c2UtbW9kZWwuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxpQ0FBMkQ7QUFDM0QsNERBQWdDO0FBQ2hDLHVEQUF3QztBQUN4Qyx3RUFBMkM7QUFDM0Msd0dBQTBFO0FBQzFFLHdGQUEyRDtBQUUzRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxRQUFRLEdBQUcsQ0FBQyxhQUFhLEVBQUUsT0FBTyxHQUFHLEVBQUUsRUFBRSxFQUFFO0lBQy9DLE1BQU0sV0FBVyxHQUFHLElBQUEsNkJBQWMsR0FBRSxDQUFBO0lBQ3BDLElBQUksSUFBSSxFQUFFLFVBQVUsQ0FBQTtJQUVwQixJQUFJLE9BQU8sT0FBTyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ2pDLElBQUksR0FBRyxPQUFPLENBQUMsRUFBQyxVQUFVLEVBQUMsQ0FBQyxDQUFBO0lBQzlCLENBQUM7U0FBTSxDQUFDO1FBQ04sSUFBSSxHQUFHLE9BQU8sQ0FBQTtJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQUcsSUFBQSxzQkFBUSxFQUFDLElBQUksQ0FBQyxDQUFBO0lBRXhCLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDVixLQUFLLEVBQUUsU0FBUztRQUNoQixRQUFRLEVBQUUsU0FBUztLQUNwQixDQUFDLENBQUE7SUFFRixJQUFJLFFBQVEsSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMzQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUE7SUFDdkIsQ0FBQztTQUFNLENBQUM7UUFDTixDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUE7SUFDdEIsQ0FBQztJQUVELElBQUksT0FBTyxhQUFhLElBQUksUUFBUSxFQUFFLENBQUM7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c2VMYXlvdXRFZmZlY3QsIHVzZU1lbW99IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgRGV2aXNlIGZyb20gXCIuL2RldmlzZS5qc1wiXG5pbXBvcnQgKiBhcyBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCJcbmltcG9ydCBNb2RlbEV2ZW50cyBmcm9tIFwiLi9tb2RlbC1ldmVudHMuanNcIlxuaW1wb3J0IHVzZVF1ZXJ5UGFyYW1zIGZyb20gXCJvbi1sb2NhdGlvbi1jaGFuZ2VkL2J1aWxkL3VzZS1xdWVyeS1wYXJhbXMuanNcIlxuaW1wb3J0IHVzZVNoYXBlIGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9idWlsZC91c2Utc2hhcGUuanNcIlxuXG4vKipcbiAqIEBwYXJhbSB7ZnVuY3Rpb258b2JqZWN0fSBtb2RlbENsYXNzQXJnXG4gKiBAcGFyYW0ge29iamVjdH0gYXJnc0FyZ1xuICogQHBhcmFtIHsoYXJnOiBvYmplY3QpID0+IGZ1bmN0aW9ufSBhcmdzQXJnLmNhbGxiYWNrXG4gKiBAcGFyYW0geyhhcmc6IG9iamVjdCkgPT4gb2JqZWN0fSBhcmdzQXJnLmFyZ3NcbiAqIEBwYXJhbSB7KCkgPT4gbnVtYmVyfHN0cmluZ30gYXJnc0FyZy5sb2FkQnlRdWVyeVBhcmFtXG4gKiBAcGFyYW0ge2FueVtdfSBhcmdzQXJnLmNhY2hlQXJnc1xuICogQHBhcmFtIHt7cGFyYW1zOiBvYmplY3R9fSBhcmdzQXJnLm1hdGNoXG4gKiBAcGFyYW0geyhjdHg6IHsgbW9kZWw6IGltcG9ydChcIi4vYmFzZS1tb2RlbC5qc1wiKS5kZWZhdWx0IH0pID0+IHZvaWR9IGFyZ3NBcmcub25EZXN0cm95ZWRcbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi9jb2xsZWN0aW9uLmpzXCIpLmRlZmF1bHR9IGFyZ3NBcmcucXVlcnlcbiAqL1xuY29uc3QgdXNlTW9kZWwgPSAobW9kZWxDbGFzc0FyZywgYXJnc0FyZyA9IHt9KSA9PiB7XG4gIGNvbnN0IHF1ZXJ5UGFyYW1zID0gdXNlUXVlcnlQYXJhbXMoKVxuICBsZXQgYXJncywgbW9kZWxDbGFzc1xuXG4gIGlmICh0eXBlb2YgYXJnc0FyZyA9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICBhcmdzID0gYXJnc0FyZyh7bW9kZWxDbGFzc30pXG4gIH0gZWxzZSB7XG4gICAgYXJncyA9IGFyZ3NBcmdcbiAgfVxuXG4gIGNvbnN0IHMgPSB1c2VTaGFwZShhcmdzKVxuXG4gIHMudXNlU3RhdGVzKHtcbiAgICBtb2RlbDogdW5kZWZpbmVkLFxuICAgIG5vdEZvdW5kOiB1bmRlZmluZWRcbiAgfSlcblxuICBpZiAoXCJhY3RpdmVcIiBpbiBzLnByb3BzICYmICFzLnByb3BzLmFjdGl2ZSkge1xuICAgIHMubWV0YS5hY3RpdmUgPSBmYWxzZVxuICB9IGVsc2Uge1xuICAgIHMubWV0YS5hY3RpdmUgPSB0cnVlXG4gIH1cblxuICBpZiAodHlwZW9mIG1vZGVsQ2xhc3NBcmcgPT0gXCJvYmplY3RcIikge1xuICAgIG1vZGVsQ2xhc3MgPSBtb2RlbENsYXNzQXJnLmNhbGxiYWNrKHtxdWVyeVBhcmFtc30pXG4gIH0gZWxzZSB7XG4gICAgbW9kZWxDbGFzcyA9IG1vZGVsQ2xhc3NBcmdcbiAgfVxuXG4gIGNvbnN0IHBhcmFtc1ZhcmlhYmxlTmFtZSA9IGAke21vZGVsQ2xhc3MubW9kZWxOYW1lKCkucGFyYW1LZXkoKX1faWRgXG4gIGxldCBtb2RlbElkXG5cbiAgaWYgKGFyZ3MubG9hZEJ5UXVlcnlQYXJhbSkge1xuICAgIG1vZGVsSWQgPSBhcmdzLmxvYWRCeVF1ZXJ5UGFyYW0oe3F1ZXJ5UGFyYW1zfSlcbiAgfSBlbHNlIGlmICghYXJncy5xdWVyeSkge1xuICAgIGlmICghYXJncy5tYXRjaCkgdGhyb3cgbmV3IEVycm9yKFwiQm90aCAnbG9hZEJ5UXVlcnlQYXJhbScgYW5kICdtYXRjaCcgd2Fzbid0IGdpdmVuXCIpXG5cbiAgICBtb2RlbElkID0gYXJncy5tYXRjaC5wYXJhbXNbcGFyYW1zVmFyaWFibGVOYW1lXSB8fCBhcmdzLm1hdGNoLnBhcmFtcy5pZFxuICB9XG5cbiAgY29uc3QgbW9kZWxWYXJpYWJsZU5hbWUgPSBpbmZsZWN0aW9uLmNhbWVsaXplKG1vZGVsQ2xhc3MubW9kZWxDbGFzc0RhdGEoKS5uYW1lLCB0cnVlKVxuICBjb25zdCBjYWNoZUFyZ3MgPSBbbW9kZWxJZF1cblxuICBjb25zdCBsb2FkRXhpc3RpbmdNb2RlbCA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBsZXQgcXVlcnlcblxuICAgIGlmIChzLm0ubW9kZWxJZCkge1xuICAgICAgcXVlcnkgPSBtb2RlbENsYXNzLnJhbnNhY2soe2lkX2VxOiBzLm0ubW9kZWxJZH0pXG4gICAgfSBlbHNlIGlmIChzLm0uYXJncy5xdWVyeSkge1xuICAgICAgcXVlcnkgPSBzLm0uYXJncy5xdWVyeS5jbG9uZSgpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gbW9kZWwgSUQgd2FzIGdpdmVuOiAke3MubS5tb2RlbElkfSBieSAnJHtwYXJhbXNWYXJpYWJsZU5hbWV9JyBpbiBxdWVyeSBwYXJhbXM6ICR7T2JqZWN0LmtleXMocy5wcm9wcy5tYXRjaC5wYXJhbXMpLmpvaW4oXCIsIFwiKX1gKVxuICAgIH1cblxuICAgIGlmIChzLnByb3BzLmFiaWxpdGllcykgcXVlcnkuYWJpbGl0aWVzKHMucC5hYmlsaXRpZXMpXG4gICAgaWYgKHMucHJvcHMucHJlbG9hZCkgcXVlcnkucHJlbG9hZChzLnAucHJlbG9hZClcbiAgICBpZiAocy5wcm9wcy5zZWxlY3QpIHF1ZXJ5LnNlbGVjdChzLnAuc2VsZWN0KVxuXG4gICAgY29uc3QgbW9kZWwgPSBhd2FpdCBxdWVyeS5maXJzdCgpXG5cbiAgICBzLnNldCh7bW9kZWwsIG5vdEZvdW5kOiAhbW9kZWx9KVxuICB9LCBbXSlcblxuICBjb25zdCBsb2FkTmV3TW9kZWwgPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgTW9kZWxDbGFzcyA9IG1vZGVsQ2xhc3NcbiAgICBjb25zdCBwYXJhbUtleSA9IE1vZGVsQ2xhc3MubW9kZWxOYW1lKCkucGFyYW1LZXkoKVxuICAgIGNvbnN0IG1vZGVsRGF0YUZyb21QYXJhbXMgPSBzLm0ucXVlcnlQYXJhbXNbcGFyYW1LZXldIHx8IHt9XG5cbiAgICBsZXQgZGVmYXVsdHMgPSB7fVxuXG4gICAgaWYgKHMucHJvcHMubmV3SWZOb0lkPy5kZWZhdWx0cykge1xuICAgICAgZGVmYXVsdHMgPSBhd2FpdCBzLnByb3BzLm5ld0lmTm9JZC5kZWZhdWx0cygpXG4gICAgfVxuXG4gICAgY29uc3QgbW9kZWxEYXRhID0gT2JqZWN0LmFzc2lnbihkZWZhdWx0cywgcy5wcm9wcy5uZXdBdHRyaWJ1dGVzLCBtb2RlbERhdGFGcm9tUGFyYW1zKVxuICAgIGNvbnN0IG1vZGVsID0gbmV3IE1vZGVsQ2xhc3Moe1xuICAgICAgaXNOZXdSZWNvcmQ6IHRydWUsXG4gICAgICBkYXRhOiB7YTogbW9kZWxEYXRhfVxuICAgIH0pXG5cbiAgICBzLnNldCh7bW9kZWx9KVxuICB9LCBbXSlcblxuICBjb25zdCBsb2FkTW9kZWwgPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgaWYgKCFzLm0uYWN0aXZlKSB7XG4gICAgICAvLyBOb3QgYWN0aXZlIC0gZG9uJ3QgZG8gYW55dGhpbmdcbiAgICB9IGVsc2UgaWYgKHMucHJvcHMubmV3SWZOb0lkICYmICFzLm0ubW9kZWxJZCkge1xuICAgICAgcmV0dXJuIGF3YWl0IGxvYWROZXdNb2RlbCgpXG4gICAgfSBlbHNlIGlmICghcy5wcm9wcy5vcHRpb25hbCB8fCBzLm0ubW9kZWxJZCB8IHMubS5hcmdzLnF1ZXJ5KSB7XG4gICAgICByZXR1cm4gYXdhaXQgbG9hZEV4aXN0aW5nTW9kZWwoKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgY29uc3Qgb25EZXN0cm95ZWQgPSB1c2VDYWxsYmFjaygoe21vZGVsfSkgPT4ge1xuICAgIGNvbnN0IGZvcndhcmRBcmdzID0ge21vZGVsfVxuXG4gICAgZm9yd2FyZEFyZ3Nbcy5tLm1vZGVsVmFyaWFibGVOYW1lXSA9IG1vZGVsXG5cbiAgICBzLnAub25EZXN0cm95ZWQoZm9yd2FyZEFyZ3MpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IG9uU2lnbmVkSW4gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgbG9hZE1vZGVsKClcbiAgfSwgW10pXG5cbiAgY29uc3Qgb25TaWduZWRPdXQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgbG9hZE1vZGVsKClcbiAgfSwgW10pXG5cbiAgaWYgKGFyZ3MuY2FjaGVBcmdzKSB7XG4gICAgY2FjaGVBcmdzLnB1c2goLi4uYXJncy5jYWNoZUFyZ3MpXG4gIH1cblxuICBzLnVwZGF0ZU1ldGEoe2FyZ3MsIG1vZGVsSWQsIG1vZGVsVmFyaWFibGVOYW1lLCBxdWVyeVBhcmFtc30pXG5cbiAgdXNlTWVtbyhcbiAgICAoKSA9PiB7IGxvYWRNb2RlbCgpIH0sXG4gICAgY2FjaGVBcmdzXG4gIClcblxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGxldCByZWxvYWRNb2RlbENhbGxiYWNrXG5cbiAgICBpZiAoYXJncy5ldmVudHMpIHtcbiAgICAgIHJlbG9hZE1vZGVsQ2FsbGJhY2sgPSBhcmdzLmV2ZW50cy5hZGRMaXN0ZW5lcihcInJlbG9hZE1vZGVsXCIsIGxvYWRNb2RlbClcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKHJlbG9hZE1vZGVsQ2FsbGJhY2spIHtcbiAgICAgICAgYXJncy5ldmVudHMucmVtb3ZlTGlzdGVuZXIoXCJyZWxvYWRNb2RlbFwiLCBsb2FkTW9kZWwpXG4gICAgICB9XG4gICAgfVxuICB9LCBbYXJncy5ldmVudHNdKVxuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IGNvbm5lY3RVcGRhdGVkXG5cbiAgICBpZiAocy5zLm1vZGVsICYmIGFyZ3MuZXZlbnRVcGRhdGVkKSB7XG4gICAgICBjb25uZWN0VXBkYXRlZCA9IE1vZGVsRXZlbnRzLmNvbm5lY3RVcGRhdGVkKHMucy5tb2RlbCwgbG9hZE1vZGVsKVxuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjb25uZWN0VXBkYXRlZD8udW5zdWJzY3JpYmUoKVxuICAgIH1cbiAgfSwgW2FyZ3MuZXZlbnRVcGRhdGVkLCBzLnMubW9kZWw/LmlkKCldKVxuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgRGV2aXNlLmV2ZW50cygpLmFkZExpc3RlbmVyKFwib25EZXZpc2VTaWduSW5cIiwgb25TaWduZWRJbilcbiAgICBEZXZpc2UuZXZlbnRzKCkuYWRkTGlzdGVuZXIoXCJvbkRldmlzZVNpZ25PdXRcIiwgb25TaWduZWRPdXQpXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgRGV2aXNlLmV2ZW50cygpLnJlbW92ZUxpc3RlbmVyKFwib25EZXZpc2VTaWduSW5cIiwgb25TaWduZWRJbilcbiAgICAgIERldmlzZS5ldmVudHMoKS5yZW1vdmVMaXN0ZW5lcihcIm9uRGV2aXNlU2lnbk91dFwiLCBvblNpZ25lZE91dClcbiAgICB9XG4gIH0pXG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBsZXQgY29ubmVjdERlc3Ryb3llZFxuXG4gICAgaWYgKHMucy5tb2RlbCAmJiBhcmdzLm9uRGVzdHJveWVkKSB7XG4gICAgICBjb25uZWN0RGVzdHJveWVkID0gTW9kZWxFdmVudHMuY29ubmVjdERlc3Ryb3llZChzLnMubW9kZWwsIG9uRGVzdHJveWVkKVxuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjb25uZWN0RGVzdHJveWVkPy51bnN1YnNjcmliZSgpXG4gICAgfVxuICB9LCBbYXJncy5vbkRlc3Ryb3llZCwgcy5zLm1vZGVsPy5pZCgpXSlcblxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgbW9kZWw6IHMucy5tb2RlbCxcbiAgICBtb2RlbElkLFxuICAgIG5vdEZvdW5kOiBzLnMubm90Rm91bmRcbiAgfVxuXG4gIHJlc3VsdFttb2RlbFZhcmlhYmxlTmFtZV0gPSBzLnMubW9kZWxcbiAgcmVzdWx0W2Ake21vZGVsVmFyaWFibGVOYW1lfUlkYF0gPSBtb2RlbElkXG4gIHJlc3VsdFtgJHttb2RlbFZhcmlhYmxlTmFtZX1Ob3RGb3VuZGBdID0gcy5zLm5vdEZvdW5kXG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG5leHBvcnQgZGVmYXVsdCB1c2VNb2RlbFxuIl19
|
|
@@ -1,17 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const react_1 = require("react");
|
|
7
|
+
const use_shape_js_1 = __importDefault(require("set-state-compare/build/use-shape.js"));
|
|
3
8
|
/**
|
|
4
9
|
* @param {object} element
|
|
5
10
|
* @param {function} callback
|
|
6
11
|
* @return {void}
|
|
7
12
|
*/
|
|
8
13
|
const useResizeObserver = (element, callback) => {
|
|
9
|
-
const s =
|
|
10
|
-
const onResize = useCallback((...args) => {
|
|
14
|
+
const s = (0, use_shape_js_1.default)({ callback });
|
|
15
|
+
const onResize = (0, react_1.useCallback)((...args) => {
|
|
11
16
|
s.p.callback(...args);
|
|
12
17
|
}, []);
|
|
13
|
-
const observer = useMemo(() => new ResizeObserver(onResize), []);
|
|
14
|
-
useLayoutEffect(() => {
|
|
18
|
+
const observer = (0, react_1.useMemo)(() => new ResizeObserver(onResize), []);
|
|
19
|
+
(0, react_1.useLayoutEffect)(() => {
|
|
15
20
|
if (element) {
|
|
16
21
|
observer.observe(element);
|
|
17
22
|
}
|
|
@@ -22,5 +27,5 @@ const useResizeObserver = (element, callback) => {
|
|
|
22
27
|
};
|
|
23
28
|
}, [element]);
|
|
24
29
|
};
|
|
25
|
-
|
|
26
|
-
//# sourceMappingURL=
|
|
30
|
+
exports.default = useResizeObserver;
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLXJlc2l6ZS1vYnNlcnZlci5qcyIsInNvdXJjZVJvb3QiOiIvc3JjLyIsInNvdXJjZXMiOlsidXNlLXJlc2l6ZS1vYnNlcnZlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGlDQUEyRDtBQUMzRCx3RkFBMkQ7QUFFM0Q7Ozs7R0FJRztBQUNILE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLEVBQUU7SUFDOUMsTUFBTSxDQUFDLEdBQUcsSUFBQSxzQkFBUSxFQUFDLEVBQUMsUUFBUSxFQUFDLENBQUMsQ0FBQTtJQUM5QixNQUFNLFFBQVEsR0FBRyxJQUFBLG1CQUFXLEVBQUMsQ0FBQyxHQUFHLElBQUksRUFBRSxFQUFFO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUE7SUFDdkIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQ04sTUFBTSxRQUFRLEdBQUcsSUFBQSxlQUFPLEVBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFFaEUsSUFBQSx1QkFBZSxFQUFDLEdBQUcsRUFBRTtRQUNuQixJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUMzQixDQUFDO1FBRUQsT0FBTyxHQUFHLEVBQUU7WUFDVixJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNaLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQTtZQUN2QixDQUFDO1FBQ0gsQ0FBQyxDQUFBO0lBQ0gsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtBQUNmLENBQUMsQ0FBQTtBQUVELGtCQUFlLGlCQUFpQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHt1c2VDYWxsYmFjaywgdXNlTGF5b3V0RWZmZWN0LCB1c2VNZW1vfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHVzZVNoYXBlIGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9idWlsZC91c2Utc2hhcGUuanNcIlxuXG4vKipcbiAqIEBwYXJhbSB7b2JqZWN0fSBlbGVtZW50XG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBjYWxsYmFja1xuICogQHJldHVybiB7dm9pZH1cbiAqL1xuY29uc3QgdXNlUmVzaXplT2JzZXJ2ZXIgPSAoZWxlbWVudCwgY2FsbGJhY2spID0+IHtcbiAgY29uc3QgcyA9IHVzZVNoYXBlKHtjYWxsYmFja30pXG4gIGNvbnN0IG9uUmVzaXplID0gdXNlQ2FsbGJhY2soKC4uLmFyZ3MpID0+IHtcbiAgICBzLnAuY2FsbGJhY2soLi4uYXJncylcbiAgfSwgW10pXG4gIGNvbnN0IG9ic2VydmVyID0gdXNlTWVtbygoKSA9PiBuZXcgUmVzaXplT2JzZXJ2ZXIob25SZXNpemUpLCBbXSlcblxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChlbGVtZW50KSB7XG4gICAgICBvYnNlcnZlci5vYnNlcnZlKGVsZW1lbnQpXG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChlbGVtZW50KSB7XG4gICAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2VsZW1lbnRdKVxufVxuXG5leHBvcnQgZGVmYXVsdCB1c2VSZXNpemVPYnNlcnZlclxuIl19
|
package/build/use-router.js
CHANGED
|
@@ -1,20 +1,58 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
const config_js_1 = __importDefault(require("./config.js"));
|
|
40
|
+
const escape_string_regexp_1 = __importDefault(require("escape-string-regexp"));
|
|
41
|
+
const inflection = __importStar(require("inflection"));
|
|
42
|
+
const prop_types_1 = __importDefault(require("prop-types"));
|
|
43
|
+
const prop_types_exact_1 = __importDefault(require("prop-types-exact"));
|
|
44
|
+
const react_1 = require("react");
|
|
45
|
+
const use_shape_js_1 = __importDefault(require("set-state-compare/build/use-shape.js"));
|
|
46
|
+
const useRouterPropTypes = (0, prop_types_exact_1.default)({
|
|
47
|
+
locales: prop_types_1.default.array.isRequired,
|
|
48
|
+
path: prop_types_1.default.string,
|
|
49
|
+
routeDefinitions: prop_types_1.default.object.isRequired,
|
|
50
|
+
routes: prop_types_1.default.object.isRequired
|
|
13
51
|
});
|
|
14
52
|
const useRouter = (props) => {
|
|
15
|
-
|
|
16
|
-
const s =
|
|
17
|
-
const findRouteParams = useCallback((routeDefinition) => {
|
|
53
|
+
prop_types_1.default.checkPropTypes(useRouterPropTypes, props, "prop", "useRouter");
|
|
54
|
+
const s = (0, use_shape_js_1.default)(props);
|
|
55
|
+
const findRouteParams = (0, react_1.useCallback)((routeDefinition) => {
|
|
18
56
|
const result = [];
|
|
19
57
|
const parts = routeDefinition.path.split("/");
|
|
20
58
|
for (const part of parts) {
|
|
@@ -23,14 +61,14 @@ const useRouter = (props) => {
|
|
|
23
61
|
}
|
|
24
62
|
return result;
|
|
25
63
|
}, []);
|
|
26
|
-
const getPath = useCallback(() => {
|
|
64
|
+
const getPath = (0, react_1.useCallback)(() => {
|
|
27
65
|
let path = s.p.path || window.location.pathname;
|
|
28
66
|
path = path.replace(/[/]+$/, "");
|
|
29
67
|
return path;
|
|
30
68
|
}, []);
|
|
31
|
-
const getRouteDefinitions = useCallback(() => s.p.routeDefinitions ||
|
|
32
|
-
const getRoutes = useCallback(() => s.p.routes ||
|
|
33
|
-
const parseRouteDefinitions = useCallback(() => {
|
|
69
|
+
const getRouteDefinitions = (0, react_1.useCallback)(() => s.p.routeDefinitions || config_js_1.default.getRouteDefinitions(), []);
|
|
70
|
+
const getRoutes = (0, react_1.useCallback)(() => s.p.routes || config_js_1.default.getRoutes(), []);
|
|
71
|
+
const parseRouteDefinitions = (0, react_1.useCallback)(() => {
|
|
34
72
|
const routeDefinitions = getRouteDefinitions();
|
|
35
73
|
const routes = getRoutes();
|
|
36
74
|
const regex = /:([A-z\d_]+)/;
|
|
@@ -45,7 +83,7 @@ const useRouter = (props) => {
|
|
|
45
83
|
const routePath = routes[routePathName](...params).replace(/[/]+$/, "");
|
|
46
84
|
const groups = [];
|
|
47
85
|
let pathRegexString = "^";
|
|
48
|
-
pathRegexString +=
|
|
86
|
+
pathRegexString += (0, escape_string_regexp_1.default)(routePath);
|
|
49
87
|
while (true) {
|
|
50
88
|
const match = pathRegexString.match(regex);
|
|
51
89
|
if (!match)
|
|
@@ -61,9 +99,9 @@ const useRouter = (props) => {
|
|
|
61
99
|
}
|
|
62
100
|
return parsedRouteDefinitions;
|
|
63
101
|
}, []);
|
|
64
|
-
const parsedRouteDefinitions = useMemo(() => parseRouteDefinitions(), []);
|
|
102
|
+
const parsedRouteDefinitions = (0, react_1.useMemo)(() => parseRouteDefinitions(), []);
|
|
65
103
|
s.updateMeta({ parsedRouteDefinitions });
|
|
66
|
-
const findMatchingRoute = useCallback(() => {
|
|
104
|
+
const findMatchingRoute = (0, react_1.useCallback)(() => {
|
|
67
105
|
const path = getPath();
|
|
68
106
|
for (const parsedRouteDefinition of s.m.parsedRouteDefinitions) {
|
|
69
107
|
const match = path.match(parsedRouteDefinition.pathRegex);
|
|
@@ -91,5 +129,5 @@ const useRouter = (props) => {
|
|
|
91
129
|
};
|
|
92
130
|
return { match };
|
|
93
131
|
};
|
|
94
|
-
|
|
95
|
-
//# sourceMappingURL=use-router.js.map
|
|
132
|
+
exports.default = useRouter;
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLXJvdXRlci5qcyIsInNvdXJjZVJvb3QiOiIvc3JjLyIsInNvdXJjZXMiOlsidXNlLXJvdXRlci5qc3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw0REFBZ0M7QUFDaEMsZ0ZBQXFEO0FBQ3JELHVEQUF3QztBQUN4Qyw0REFBa0M7QUFDbEMsd0VBQTZDO0FBQzdDLGlDQUEwQztBQUMxQyx3RkFBMkQ7QUFFM0QsTUFBTSxrQkFBa0IsR0FBRyxJQUFBLDBCQUFjLEVBQUM7SUFDeEMsT0FBTyxFQUFFLG9CQUFTLENBQUMsS0FBSyxDQUFDLFVBQVU7SUFDbkMsSUFBSSxFQUFFLG9CQUFTLENBQUMsTUFBTTtJQUN0QixnQkFBZ0IsRUFBRSxvQkFBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVO0lBQzdDLE1BQU0sRUFBRSxvQkFBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVO0NBQ3BDLENBQUMsQ0FBQTtBQUVGLE1BQU0sU0FBUyxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUU7SUFDMUIsb0JBQVMsQ0FBQyxjQUFjLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQTtJQUV4RSxNQUFNLENBQUMsR0FBRyxJQUFBLHNCQUFRLEVBQUMsS0FBSyxDQUFDLENBQUE7SUFFekIsTUFBTSxlQUFlLEdBQUcsSUFBQSxtQkFBVyxFQUFDLENBQUMsZUFBZSxFQUFFLEVBQUU7UUFDdEQsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFBO1FBQ2pCLE1BQU0sS0FBSyxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBRTdDLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7WUFDekIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQztnQkFDNUIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNyQixDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUE7SUFDZixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFFTixNQUFNLE9BQU8sR0FBRyxJQUFBLG1CQUFXLEVBQUMsR0FBRyxFQUFFO1FBQy9CLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFBO1FBRS9DLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUVoQyxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUVOLE1BQU0sbUJBQW1CLEdBQUcsSUFBQSxtQkFBVyxFQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLElBQUksbUJBQU0sQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQ3ZHLE1BQU0sU0FBUyxHQUFHLElBQUEsbUJBQVcsRUFBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxtQkFBTSxDQUFDLFNBQVMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBRXpFLE1BQU0scUJBQXFCLEdBQUcsSUFBQSxtQkFBVyxFQUFDLEdBQUcsRUFBRTtRQUM3QyxNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixFQUFFLENBQUE7UUFDOUMsTUFBTSxNQUFNLEdBQUcsU0FBUyxFQUFFLENBQUE7UUFDMUIsTUFBTSxLQUFLLEdBQUcsY0FBYyxDQUFBO1FBQzVCLE1BQU0sc0JBQXNCLEdBQUcsRUFBRSxDQUFBO1FBRWpDLEtBQUssTUFBTSxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQyxLQUFLLE1BQU0sZUFBZSxJQUFJLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUN0RCxNQUFNLGFBQWEsR0FBRyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFBO2dCQUM5RSxNQUFNLE1BQU0sR0FBRyxlQUFlLENBQUMsZUFBZSxDQUFDLENBQUE7Z0JBRS9DLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBQyxNQUFNLEVBQUMsQ0FBQyxDQUFBO2dCQUVyQixJQUFJLENBQUMsQ0FBQyxhQUFhLElBQUksTUFBTSxDQUFDO29CQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsYUFBYSx5QkFBeUIsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO2dCQUV2RixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFBO2dCQUN2RSxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUE7Z0JBQ2pCLElBQUksZUFBZSxHQUFHLEdBQUcsQ0FBQTtnQkFFekIsZUFBZSxJQUFJLElBQUEsOEJBQWtCLEVBQUMsU0FBUyxDQUFDLENBQUE7Z0JBRWhELE9BQU8sSUFBSSxFQUFFLENBQUM7b0JBQ1osTUFBTSxLQUFLLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQTtvQkFFMUMsSUFBSSxDQUFDLEtBQUs7d0JBQUUsTUFBSztvQkFFakIsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO29CQUU3QixNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFBO29CQUV6QixlQUFlLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUE7Z0JBQ2hFLENBQUM7Z0JBRUQsZUFBZSxJQUFJLEdBQUcsQ0FBQTtnQkFFdEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUE7Z0JBRTdDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxFQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFDLENBQUMsQ0FBQTtZQUNuRSxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sc0JBQXNCLENBQUE7SUFDL0IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBRU4sTUFBTSxzQkFBc0IsR0FBRyxJQUFBLGVBQU8sRUFBQyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBRXpFLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBQyxzQkFBc0IsRUFBQyxDQUFDLENBQUE7SUFFdEMsTUFBTSxpQkFBaUIsR0FBRyxJQUFBLG1CQUFXLEVBQUMsR0FBRyxFQUFFO1FBQ3pDLE1BQU0sSUFBSSxHQUFHLE9BQU8sRUFBRSxDQUFBO1FBRXRCLEtBQUssTUFBTSxxQkFBcUIsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFDL0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQTtZQUN6RCxJQUFJLE9BQU8sRUFBRSxNQUFNLENBQUE7WUFFbkIsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDVixPQUFPLEdBQUcsSUFBSSxDQUFBO2dCQUNkLE1BQU0sR0FBRyxFQUFFLENBQUE7Z0JBRVgsS0FBSyxNQUFNLFFBQVEsSUFBSSxxQkFBcUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDcEQsTUFBTSxTQUFTLEdBQUcscUJBQXFCLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO29CQUV4RCxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtnQkFDakQsQ0FBQztZQUNILENBQUM7WUFFRCxJQUFJLElBQUksSUFBSSxFQUFFLElBQUkscUJBQXFCLENBQUMsZUFBZSxDQUFDLElBQUksSUFBSSxHQUFHO2dCQUFFLE9BQU8sR0FBRyxJQUFJLENBQUE7WUFDbkYsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDWixPQUFPLEVBQUMsTUFBTSxFQUFFLHFCQUFxQixFQUFDLENBQUE7WUFDeEMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFFTixNQUFNLGFBQWEsR0FBRyxpQkFBaUIsRUFBRSxDQUFBO0lBQ3pDLE1BQU0sTUFBTSxHQUFHLGFBQWEsRUFBRSxNQUFNLElBQUksRUFBRSxDQUFBO0lBQzFDLE1BQU0sS0FBSyxHQUFHO1FBQ1osYUFBYTtRQUNiLE1BQU07S0FDUCxDQUFBO0lBRUQsT0FBTyxFQUFDLEtBQUssRUFBQyxDQUFBO0FBQ2hCLENBQUMsQ0FBQTtBQUVELGtCQUFlLFNBQVMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjb25maWcgZnJvbSBcIi4vY29uZmlnLmpzXCJcbmltcG9ydCBlc2NhcGVTdHJpbmdSZWdleHAgZnJvbSBcImVzY2FwZS1zdHJpbmctcmVnZXhwXCJcbmltcG9ydCAqIGFzIGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgcHJvcFR5cGVzRXhhY3QgZnJvbSBcInByb3AtdHlwZXMtZXhhY3RcIlxuaW1wb3J0IHt1c2VDYWxsYmFjaywgdXNlTWVtb30gZnJvbSBcInJlYWN0XCJcbmltcG9ydCB1c2VTaGFwZSBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvYnVpbGQvdXNlLXNoYXBlLmpzXCJcblxuY29uc3QgdXNlUm91dGVyUHJvcFR5cGVzID0gcHJvcFR5cGVzRXhhY3Qoe1xuICBsb2NhbGVzOiBQcm9wVHlwZXMuYXJyYXkuaXNSZXF1aXJlZCxcbiAgcGF0aDogUHJvcFR5cGVzLnN0cmluZyxcbiAgcm91dGVEZWZpbml0aW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICByb3V0ZXM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZFxufSlcblxuY29uc3QgdXNlUm91dGVyID0gKHByb3BzKSA9PiB7XG4gIFByb3BUeXBlcy5jaGVja1Byb3BUeXBlcyh1c2VSb3V0ZXJQcm9wVHlwZXMsIHByb3BzLCBcInByb3BcIiwgXCJ1c2VSb3V0ZXJcIilcblxuICBjb25zdCBzID0gdXNlU2hhcGUocHJvcHMpXG5cbiAgY29uc3QgZmluZFJvdXRlUGFyYW1zID0gdXNlQ2FsbGJhY2soKHJvdXRlRGVmaW5pdGlvbikgPT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IFtdXG4gICAgY29uc3QgcGFydHMgPSByb3V0ZURlZmluaXRpb24ucGF0aC5zcGxpdChcIi9cIilcblxuICAgIGZvciAoY29uc3QgcGFydCBvZiBwYXJ0cykge1xuICAgICAgaWYgKHBhcnQubWF0Y2goL146KFthLXpfXSspJC8pKVxuICAgICAgICByZXN1bHQucHVzaChwYXJ0KVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHRcbiAgfSwgW10pXG5cbiAgY29uc3QgZ2V0UGF0aCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBsZXQgcGF0aCA9IHMucC5wYXRoIHx8IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZVxuXG4gICAgcGF0aCA9IHBhdGgucmVwbGFjZSgvWy9dKyQvLCBcIlwiKVxuXG4gICAgcmV0dXJuIHBhdGhcbiAgfSwgW10pXG5cbiAgY29uc3QgZ2V0Um91dGVEZWZpbml0aW9ucyA9IHVzZUNhbGxiYWNrKCgpID0+IHMucC5yb3V0ZURlZmluaXRpb25zIHx8IGNvbmZpZy5nZXRSb3V0ZURlZmluaXRpb25zKCksIFtdKVxuICBjb25zdCBnZXRSb3V0ZXMgPSB1c2VDYWxsYmFjaygoKSA9PiBzLnAucm91dGVzIHx8IGNvbmZpZy5nZXRSb3V0ZXMoKSwgW10pXG5cbiAgY29uc3QgcGFyc2VSb3V0ZURlZmluaXRpb25zID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IHJvdXRlRGVmaW5pdGlvbnMgPSBnZXRSb3V0ZURlZmluaXRpb25zKClcbiAgICBjb25zdCByb3V0ZXMgPSBnZXRSb3V0ZXMoKVxuICAgIGNvbnN0IHJlZ2V4ID0gLzooW0EtelxcZF9dKykvXG4gICAgY29uc3QgcGFyc2VkUm91dGVEZWZpbml0aW9ucyA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IGxvY2FsZSBvZiBzLnAubG9jYWxlcykge1xuICAgICAgZm9yIChjb25zdCByb3V0ZURlZmluaXRpb24gb2Ygcm91dGVEZWZpbml0aW9ucy5yb3V0ZXMpIHtcbiAgICAgICAgY29uc3Qgcm91dGVQYXRoTmFtZSA9IGAke2luZmxlY3Rpb24uY2FtZWxpemUocm91dGVEZWZpbml0aW9uLm5hbWUsIHRydWUpfVBhdGhgXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IGZpbmRSb3V0ZVBhcmFtcyhyb3V0ZURlZmluaXRpb24pXG5cbiAgICAgICAgcGFyYW1zLnB1c2goe2xvY2FsZX0pXG5cbiAgICAgICAgaWYgKCEocm91dGVQYXRoTmFtZSBpbiByb3V0ZXMpKVxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgJHtyb3V0ZVBhdGhOYW1lfSBub3QgZm91bmQgaW4gcm91dGVzOiAke09iamVjdC5rZXlzKHJvdXRlcywgXCIsIFwiKX1gKVxuXG4gICAgICAgIGNvbnN0IHJvdXRlUGF0aCA9IHJvdXRlc1tyb3V0ZVBhdGhOYW1lXSguLi5wYXJhbXMpLnJlcGxhY2UoL1svXSskLywgXCJcIilcbiAgICAgICAgY29uc3QgZ3JvdXBzID0gW11cbiAgICAgICAgbGV0IHBhdGhSZWdleFN0cmluZyA9IFwiXlwiXG5cbiAgICAgICAgcGF0aFJlZ2V4U3RyaW5nICs9IGVzY2FwZVN0cmluZ1JlZ2V4cChyb3V0ZVBhdGgpXG5cbiAgICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgICBjb25zdCBtYXRjaCA9IHBhdGhSZWdleFN0cmluZy5tYXRjaChyZWdleClcblxuICAgICAgICAgIGlmICghbWF0Y2gpIGJyZWFrXG5cbiAgICAgICAgICBjb25zdCB2YXJpYWJsZU5hbWUgPSBtYXRjaFsxXVxuXG4gICAgICAgICAgZ3JvdXBzLnB1c2godmFyaWFibGVOYW1lKVxuXG4gICAgICAgICAgcGF0aFJlZ2V4U3RyaW5nID0gcGF0aFJlZ2V4U3RyaW5nLnJlcGxhY2UobWF0Y2hbMF0sIFwiKFteL10rKVwiKVxuICAgICAgICB9XG5cbiAgICAgICAgcGF0aFJlZ2V4U3RyaW5nICs9IFwiJFwiXG5cbiAgICAgICAgY29uc3QgcGF0aFJlZ2V4ID0gbmV3IFJlZ0V4cChwYXRoUmVnZXhTdHJpbmcpXG5cbiAgICAgICAgcGFyc2VkUm91dGVEZWZpbml0aW9ucy5wdXNoKHtncm91cHMsIHBhdGhSZWdleCwgcm91dGVEZWZpbml0aW9ufSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcGFyc2VkUm91dGVEZWZpbml0aW9uc1xuICB9LCBbXSlcblxuICBjb25zdCBwYXJzZWRSb3V0ZURlZmluaXRpb25zID0gdXNlTWVtbygoKSA9PiBwYXJzZVJvdXRlRGVmaW5pdGlvbnMoKSwgW10pXG5cbiAgcy51cGRhdGVNZXRhKHtwYXJzZWRSb3V0ZURlZmluaXRpb25zfSlcblxuICBjb25zdCBmaW5kTWF0Y2hpbmdSb3V0ZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCBwYXRoID0gZ2V0UGF0aCgpXG5cbiAgICBmb3IgKGNvbnN0IHBhcnNlZFJvdXRlRGVmaW5pdGlvbiBvZiBzLm0ucGFyc2VkUm91dGVEZWZpbml0aW9ucykge1xuICAgICAgY29uc3QgbWF0Y2ggPSBwYXRoLm1hdGNoKHBhcnNlZFJvdXRlRGVmaW5pdGlvbi5wYXRoUmVnZXgpXG4gICAgICBsZXQgbWF0Y2hlZCwgcGFyYW1zXG5cbiAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICBtYXRjaGVkID0gdHJ1ZVxuICAgICAgICBwYXJhbXMgPSB7fVxuXG4gICAgICAgIGZvciAoY29uc3QgZ3JvdXBLZXkgaW4gcGFyc2VkUm91dGVEZWZpbml0aW9uLmdyb3Vwcykge1xuICAgICAgICAgIGNvbnN0IGdyb3VwTmFtZSA9IHBhcnNlZFJvdXRlRGVmaW5pdGlvbi5ncm91cHNbZ3JvdXBLZXldXG5cbiAgICAgICAgICBwYXJhbXNbZ3JvdXBOYW1lXSA9IG1hdGNoW051bWJlcihncm91cEtleSkgKyAxXVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChwYXRoID09IFwiXCIgJiYgcGFyc2VkUm91dGVEZWZpbml0aW9uLnJvdXRlRGVmaW5pdGlvbi5wYXRoID09IFwiL1wiKSBtYXRjaGVkID0gdHJ1ZVxuICAgICAgaWYgKG1hdGNoZWQpIHtcbiAgICAgICAgcmV0dXJuIHtwYXJhbXMsIHBhcnNlZFJvdXRlRGVmaW5pdGlvbn1cbiAgICAgIH1cbiAgICB9XG4gIH0sIFtdKVxuXG4gIGNvbnN0IG1hdGNoaW5nUm91dGUgPSBmaW5kTWF0Y2hpbmdSb3V0ZSgpXG4gIGNvbnN0IHBhcmFtcyA9IG1hdGNoaW5nUm91dGU/LnBhcmFtcyB8fCB7fVxuICBjb25zdCBtYXRjaCA9IHtcbiAgICBtYXRjaGluZ1JvdXRlLFxuICAgIHBhcmFtc1xuICB9XG5cbiAgcmV0dXJuIHttYXRjaH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdXNlUm91dGVyXG4iXX0=
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const react_native_1 = require("react-native");
|
|
2
4
|
const getWindowLayout = (width) => {
|
|
3
5
|
if (width <= 575) {
|
|
4
6
|
return "xs";
|
|
@@ -23,7 +25,7 @@ const getWindowLayout = (width) => {
|
|
|
23
25
|
}
|
|
24
26
|
};
|
|
25
27
|
const useScreenLayout = () => {
|
|
26
|
-
if (Platform.OS == "web") {
|
|
28
|
+
if (react_native_1.Platform.OS == "web") {
|
|
27
29
|
const shared = useMemo(() => ({}));
|
|
28
30
|
shared.width = window.innerWidth;
|
|
29
31
|
const [screenLayout, setScreenLayout] = useState(() => getWindowLayout(shared.width));
|
|
@@ -38,9 +40,9 @@ const useScreenLayout = () => {
|
|
|
38
40
|
return shared.screenLayout;
|
|
39
41
|
}
|
|
40
42
|
else {
|
|
41
|
-
const windowDimensions = useWindowDimensions();
|
|
43
|
+
const windowDimensions = (0, react_native_1.useWindowDimensions)();
|
|
42
44
|
return getWindowLayout(windowDimensions.width);
|
|
43
45
|
}
|
|
44
46
|
};
|
|
45
|
-
|
|
46
|
-
//# sourceMappingURL=
|
|
47
|
+
exports.default = useScreenLayout;
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLXNjcmVlbi1sYXlvdXQuanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbInVzZS1zY3JlZW4tbGF5b3V0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsK0NBQTBEO0FBRTFELE1BQU0sZUFBZSxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUU7SUFDaEMsSUFBSSxLQUFLLElBQUksR0FBRyxFQUFFLENBQUM7UUFDakIsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO1NBQU0sSUFBSSxLQUFLLElBQUksR0FBRyxFQUFFLENBQUM7UUFDeEIsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO1NBQU0sSUFBSSxLQUFLLElBQUksR0FBRyxFQUFFLENBQUM7UUFDeEIsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO1NBQU0sSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFLENBQUM7UUFDekIsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO1NBQU0sSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFLENBQUM7UUFDekIsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO1NBQU0sSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFLENBQUM7UUFDekIsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO1NBQU0sQ0FBQztRQUNOLE9BQU8sQ0FBQyxLQUFLLENBQUMsZ0RBQWdELEtBQUssRUFBRSxDQUFDLENBQUE7SUFDeEUsQ0FBQztBQUNILENBQUMsQ0FBQTtBQUVELE1BQU0sZUFBZSxHQUFHLEdBQUcsRUFBRTtJQUMzQixJQUFJLHVCQUFRLENBQUMsRUFBRSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3pCLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFFbEMsTUFBTSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFBO1FBRWhDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtRQUVyRixNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFO1lBQ2hDLE1BQU0sZUFBZSxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7WUFFMUQsSUFBSSxNQUFNLENBQUMsWUFBWSxJQUFJLGVBQWUsRUFBRSxDQUFDO2dCQUMzQyxlQUFlLENBQUMsZUFBZSxDQUFDLENBQUE7WUFDbEMsQ0FBQztRQUNILENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUVOLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUE7UUFFNUMsTUFBTSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUE7UUFFbEMsT0FBTyxNQUFNLENBQUMsWUFBWSxDQUFBO0lBQzVCLENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLGtDQUFtQixHQUFFLENBQUE7UUFFOUMsT0FBTyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDaEQsQ0FBQztBQUNILENBQUMsQ0FBQTtBQUVELGtCQUFlLGVBQWUsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UGxhdGZvcm0sIHVzZVdpbmRvd0RpbWVuc2lvbnN9IGZyb20gXCJyZWFjdC1uYXRpdmVcIlxuXG5jb25zdCBnZXRXaW5kb3dMYXlvdXQgPSAod2lkdGgpID0+IHtcbiAgaWYgKHdpZHRoIDw9IDU3NSkge1xuICAgIHJldHVybiBcInhzXCJcbiAgfSBlbHNlIGlmICh3aWR0aCA8PSA3NjcpIHtcbiAgICByZXR1cm4gXCJzbVwiXG4gIH0gZWxzZSBpZiAod2lkdGggPD0gOTkxKSB7XG4gICAgcmV0dXJuIFwibWRcIlxuICB9IGVsc2UgaWYgKHdpZHRoIDw9IDExOTkpIHtcbiAgICByZXR1cm4gXCJsZ1wiXG4gIH0gZWxzZSBpZiAod2lkdGggPD0gMTM5OSkge1xuICAgIHJldHVybiBcInhsXCJcbiAgfSBlbHNlIGlmICh3aWR0aCA+PSAxNDAwKSB7XG4gICAgcmV0dXJuIFwieHhsXCJcbiAgfSBlbHNlIHtcbiAgICBjb25zb2xlLmVycm9yKGBDb3VsZG4ndCBkZXRlcm1pbmUgd2luZG93IGxheW91dCBmcm9tIHdpZHRoOiAke3dpZHRofWApXG4gIH1cbn1cblxuY29uc3QgdXNlU2NyZWVuTGF5b3V0ID0gKCkgPT4ge1xuICBpZiAoUGxhdGZvcm0uT1MgPT0gXCJ3ZWJcIikge1xuICAgIGNvbnN0IHNoYXJlZCA9IHVzZU1lbW8oKCkgPT4gKHt9KSlcblxuICAgIHNoYXJlZC53aWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoXG5cbiAgICBjb25zdCBbc2NyZWVuTGF5b3V0LCBzZXRTY3JlZW5MYXlvdXRdID0gdXNlU3RhdGUoKCkgPT4gZ2V0V2luZG93TGF5b3V0KHNoYXJlZC53aWR0aCkpXG5cbiAgICBjb25zdCBvblJlc2l6ZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGNvbnN0IG5ld1dpbmRvd0xheW91dCA9IGdldFdpbmRvd0xheW91dCh3aW5kb3cuaW5uZXJXaWR0aClcblxuICAgICAgaWYgKHNoYXJlZC5zY3JlZW5sYXlvdXQgIT0gbmV3V2luZG93TGF5b3V0KSB7XG4gICAgICAgIHNldFNjcmVlbkxheW91dChuZXdXaW5kb3dMYXlvdXQpXG4gICAgICB9XG4gICAgfSwgW10pXG5cbiAgICB1c2VFdmVudExpc3RlbmVyKHdpbmRvdywgXCJyZXNpemVcIiwgb25SZXNpemUpXG5cbiAgICBzaGFyZWQuc2NyZWVuTGF5b3V0ID0gc2NyZWVuTGF5b3V0XG5cbiAgICByZXR1cm4gc2hhcmVkLnNjcmVlbkxheW91dFxuICB9IGVsc2Uge1xuICAgIGNvbnN0IHdpbmRvd0RpbWVuc2lvbnMgPSB1c2VXaW5kb3dEaW1lbnNpb25zKClcblxuICAgIHJldHVybiBnZXRXaW5kb3dMYXlvdXQod2luZG93RGltZW5zaW9ucy53aWR0aClcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCB1c2VTY3JlZW5MYXlvdXRcbiJdfQ==
|
package/build/use-styles.js
CHANGED
|
@@ -1,8 +1,47 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.default = useStyles;
|
|
40
|
+
const config_js_1 = __importDefault(require("./config.js"));
|
|
41
|
+
const diggerize_1 = require("diggerize");
|
|
42
|
+
const inflection = __importStar(require("inflection"));
|
|
43
|
+
const use_breakpoint_js_1 = __importDefault(require("./use-breakpoint.js"));
|
|
44
|
+
const react_1 = require("react");
|
|
6
45
|
function handleStringStyle(styles, listOfStyles, breakpoint, breakpointsReverse, arg) {
|
|
7
46
|
if (!(arg in styles)) {
|
|
8
47
|
throw new Error(`No such styling '${arg}' in given styles: ${Object.keys(styles).join(", ")}`);
|
|
@@ -12,8 +51,8 @@ function handleStringStyle(styles, listOfStyles, breakpoint, breakpointsReverse,
|
|
|
12
51
|
const breakpointName = breakpointData[0];
|
|
13
52
|
const breakpointStyleNameUp = `${arg}${inflection.camelize(breakpointName)}Up`;
|
|
14
53
|
const breakpointStyleNameDown = `${arg}${inflection.camelize(breakpointName)}Down`;
|
|
15
|
-
const breakpointIsUp = digg(breakpoint, `${breakpointName}Up`);
|
|
16
|
-
const breakpointIsDown = digg(breakpoint, `${breakpointName}Down`);
|
|
54
|
+
const breakpointIsUp = (0, diggerize_1.digg)(breakpoint, `${breakpointName}Up`);
|
|
55
|
+
const breakpointIsDown = (0, diggerize_1.digg)(breakpoint, `${breakpointName}Down`);
|
|
17
56
|
if (breakpointStyleNameUp in styles && breakpointIsUp) {
|
|
18
57
|
listOfStyles.push(styles[breakpointStyleNameUp]);
|
|
19
58
|
}
|
|
@@ -22,13 +61,13 @@ function handleStringStyle(styles, listOfStyles, breakpoint, breakpointsReverse,
|
|
|
22
61
|
}
|
|
23
62
|
}
|
|
24
63
|
}
|
|
25
|
-
|
|
26
|
-
const breakpoint =
|
|
27
|
-
const breakpointName = digg(breakpoint, "name");
|
|
64
|
+
function useStyles(styles, args, dependencies = []) {
|
|
65
|
+
const breakpoint = (0, use_breakpoint_js_1.default)();
|
|
66
|
+
const breakpointName = (0, diggerize_1.digg)(breakpoint, "name");
|
|
28
67
|
const actualDependencies = [...dependencies, breakpointName];
|
|
29
|
-
const listOfStyles = useMemo(() => {
|
|
68
|
+
const listOfStyles = (0, react_1.useMemo)(() => {
|
|
30
69
|
const listOfStyles = [];
|
|
31
|
-
const breakpointsReverse = [...
|
|
70
|
+
const breakpointsReverse = [...config_js_1.default.getBreakpoints()].reverse();
|
|
32
71
|
if (!Array.isArray(args)) {
|
|
33
72
|
args = [args];
|
|
34
73
|
}
|
|
@@ -52,4 +91,4 @@ export default function useStyles(styles, args, dependencies = []) {
|
|
|
52
91
|
}, actualDependencies);
|
|
53
92
|
return listOfStyles;
|
|
54
93
|
}
|
|
55
|
-
//# sourceMappingURL=
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLXN0eWxlcy5qcyIsInNvdXJjZVJvb3QiOiIvc3JjLyIsInNvdXJjZXMiOlsidXNlLXN0eWxlcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQThCQSw0QkFpQ0M7QUEvREQsNERBQWdDO0FBQ2hDLHlDQUE4QjtBQUM5Qix1REFBd0M7QUFDeEMsNEVBQStDO0FBQy9DLGlDQUE2QjtBQUU3QixTQUFTLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFFLEdBQUc7SUFDbEYsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDckIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsR0FBRyxzQkFBc0IsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQ2hHLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBRTlCLEtBQUssTUFBTSxjQUFjLElBQUksa0JBQWtCLEVBQUUsQ0FBQztRQUNoRCxNQUFNLGNBQWMsR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDeEMsTUFBTSxxQkFBcUIsR0FBRyxHQUFHLEdBQUcsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUE7UUFDOUUsTUFBTSx1QkFBdUIsR0FBRyxHQUFHLEdBQUcsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUE7UUFDbEYsTUFBTSxjQUFjLEdBQUcsSUFBQSxnQkFBSSxFQUFDLFVBQVUsRUFBRSxHQUFHLGNBQWMsSUFBSSxDQUFDLENBQUE7UUFDOUQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLGdCQUFJLEVBQUMsVUFBVSxFQUFFLEdBQUcsY0FBYyxNQUFNLENBQUMsQ0FBQTtRQUVsRSxJQUFJLHFCQUFxQixJQUFJLE1BQU0sSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUN0RCxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUE7UUFDbEQsQ0FBQztRQUVELElBQUksdUJBQXVCLElBQUksTUFBTSxJQUFJLGdCQUFnQixFQUFFLENBQUM7WUFDMUQsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFBO1FBQ3BELENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQXdCLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLFlBQVksR0FBRyxFQUFFO0lBQy9ELE1BQU0sVUFBVSxHQUFHLElBQUEsMkJBQWEsR0FBRSxDQUFBO0lBQ2xDLE1BQU0sY0FBYyxHQUFHLElBQUEsZ0JBQUksRUFBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFDL0MsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEdBQUcsWUFBWSxFQUFFLGNBQWMsQ0FBQyxDQUFBO0lBRTVELE1BQU0sWUFBWSxHQUFHLElBQUEsZUFBTyxFQUFDLEdBQUcsRUFBRTtRQUNoQyxNQUFNLFlBQVksR0FBRyxFQUFFLENBQUE7UUFDdkIsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEdBQUcsbUJBQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFBO1FBRWpFLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDekIsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDZixDQUFDO1FBRUQsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUN2QixJQUFJLE9BQU8sR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUMzQixpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxHQUFHLENBQUMsQ0FBQTtZQUM5RSxDQUFDO2lCQUFNLElBQUksT0FBTyxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7Z0JBQ2xDLEtBQUssTUFBTSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7b0JBQ3RCLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtvQkFFdEIsSUFBSSxLQUFLLEVBQUUsQ0FBQzt3QkFDVixpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxHQUFHLENBQUMsQ0FBQTtvQkFDOUUsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLE9BQU8sR0FBRyxFQUFFLENBQUMsQ0FBQTtZQUNsRCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sWUFBWSxDQUFBO0lBQ3JCLENBQUMsRUFBRSxrQkFBa0IsQ0FBQyxDQUFBO0lBRXRCLE9BQU8sWUFBWSxDQUFBO0FBQ3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY29uZmlnIGZyb20gXCIuL2NvbmZpZy5qc1wiXG5pbXBvcnQge2RpZ2d9IGZyb20gXCJkaWdnZXJpemVcIlxuaW1wb3J0ICogYXMgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiXG5pbXBvcnQgdXNlQnJlYWtwb2ludCBmcm9tIFwiLi91c2UtYnJlYWtwb2ludC5qc1wiXG5pbXBvcnQge3VzZU1lbW99IGZyb20gXCJyZWFjdFwiXG5cbmZ1bmN0aW9uIGhhbmRsZVN0cmluZ1N0eWxlKHN0eWxlcywgbGlzdE9mU3R5bGVzLCBicmVha3BvaW50LCBicmVha3BvaW50c1JldmVyc2UsIGFyZykge1xuICBpZiAoIShhcmcgaW4gc3R5bGVzKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgTm8gc3VjaCBzdHlsaW5nICcke2FyZ30nIGluIGdpdmVuIHN0eWxlczogJHtPYmplY3Qua2V5cyhzdHlsZXMpLmpvaW4oXCIsIFwiKX1gKVxuICB9XG5cbiAgbGlzdE9mU3R5bGVzLnB1c2goc3R5bGVzW2FyZ10pXG5cbiAgZm9yIChjb25zdCBicmVha3BvaW50RGF0YSBvZiBicmVha3BvaW50c1JldmVyc2UpIHtcbiAgICBjb25zdCBicmVha3BvaW50TmFtZSA9IGJyZWFrcG9pbnREYXRhWzBdXG4gICAgY29uc3QgYnJlYWtwb2ludFN0eWxlTmFtZVVwID0gYCR7YXJnfSR7aW5mbGVjdGlvbi5jYW1lbGl6ZShicmVha3BvaW50TmFtZSl9VXBgXG4gICAgY29uc3QgYnJlYWtwb2ludFN0eWxlTmFtZURvd24gPSBgJHthcmd9JHtpbmZsZWN0aW9uLmNhbWVsaXplKGJyZWFrcG9pbnROYW1lKX1Eb3duYFxuICAgIGNvbnN0IGJyZWFrcG9pbnRJc1VwID0gZGlnZyhicmVha3BvaW50LCBgJHticmVha3BvaW50TmFtZX1VcGApXG4gICAgY29uc3QgYnJlYWtwb2ludElzRG93biA9IGRpZ2coYnJlYWtwb2ludCwgYCR7YnJlYWtwb2ludE5hbWV9RG93bmApXG5cbiAgICBpZiAoYnJlYWtwb2ludFN0eWxlTmFtZVVwIGluIHN0eWxlcyAmJiBicmVha3BvaW50SXNVcCkge1xuICAgICAgbGlzdE9mU3R5bGVzLnB1c2goc3R5bGVzW2JyZWFrcG9pbnRTdHlsZU5hbWVVcF0pXG4gICAgfVxuXG4gICAgaWYgKGJyZWFrcG9pbnRTdHlsZU5hbWVEb3duIGluIHN0eWxlcyAmJiBicmVha3BvaW50SXNEb3duKSB7XG4gICAgICBsaXN0T2ZTdHlsZXMucHVzaChzdHlsZXNbYnJlYWtwb2ludFN0eWxlTmFtZURvd25dKVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VTdHlsZXMoc3R5bGVzLCBhcmdzLCBkZXBlbmRlbmNpZXMgPSBbXSkge1xuICBjb25zdCBicmVha3BvaW50ID0gdXNlQnJlYWtwb2ludCgpXG4gIGNvbnN0IGJyZWFrcG9pbnROYW1lID0gZGlnZyhicmVha3BvaW50LCBcIm5hbWVcIilcbiAgY29uc3QgYWN0dWFsRGVwZW5kZW5jaWVzID0gWy4uLmRlcGVuZGVuY2llcywgYnJlYWtwb2ludE5hbWVdXG5cbiAgY29uc3QgbGlzdE9mU3R5bGVzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgbGlzdE9mU3R5bGVzID0gW11cbiAgICBjb25zdCBicmVha3BvaW50c1JldmVyc2UgPSBbLi4uY29uZmlnLmdldEJyZWFrcG9pbnRzKCldLnJldmVyc2UoKVxuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGFyZ3MpKSB7XG4gICAgICBhcmdzID0gW2FyZ3NdXG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBhcmcgb2YgYXJncykge1xuICAgICAgaWYgKHR5cGVvZiBhcmcgPT0gXCJzdHJpbmdcIikge1xuICAgICAgICBoYW5kbGVTdHJpbmdTdHlsZShzdHlsZXMsIGxpc3RPZlN0eWxlcywgYnJlYWtwb2ludCwgYnJlYWtwb2ludHNSZXZlcnNlLCBhcmcpXG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBhcmcgPT0gXCJvYmplY3RcIikge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBhcmcpIHtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IGFyZ1trZXldXG5cbiAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIGhhbmRsZVN0cmluZ1N0eWxlKHN0eWxlcywgbGlzdE9mU3R5bGVzLCBicmVha3BvaW50LCBicmVha3BvaW50c1JldmVyc2UsIGtleSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5oYW5kbGVkIHR5cGU6ICR7dHlwZW9mIGFyZ31gKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBsaXN0T2ZTdHlsZXNcbiAgfSwgYWN0dWFsRGVwZW5kZW5jaWVzKVxuXG4gIHJldHVybiBsaXN0T2ZTdHlsZXNcbn1cbiJdfQ==
|