@kaspernj/api-maker 1.0.446 → 1.0.447
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{.eslintrc.cjs → .eslintrc.js} +4 -0
- package/README.md +35 -0
- package/android/build.gradle +43 -0
- package/android/src/main/AndroidManifest.xml +2 -0
- package/android/src/main/java/expo/modules/api_maker/ApiMakerModule.kt +50 -0
- package/android/src/main/java/expo/modules/api_maker/ApiMakerView.kt +30 -0
- package/build/api.js +120 -0
- package/build/attribute-not-loaded-error.js +2 -0
- package/build/base-component.js +5 -0
- package/build/base-error.js +33 -0
- package/build/base-model/attribute.js +25 -0
- package/build/base-model/column.js +11 -0
- package/build/base-model/reflection.js +14 -0
- package/build/base-model/scope.js +11 -0
- package/build/base-model.js +828 -0
- package/build/bootstrap/attribute-row/index.js +105 -0
- package/build/bootstrap/attribute-rows.js +31 -0
- package/build/bootstrap/card.js +138 -0
- package/build/bootstrap/checkbox.js +97 -0
- package/build/bootstrap/checkboxes.js +183 -0
- package/build/bootstrap/index.js +2 -0
- package/build/bootstrap/input.js +128 -0
- package/build/bootstrap/invalid-feedback.js +27 -0
- package/build/bootstrap/paginate.js +150 -0
- package/build/bootstrap/radio-buttons.js +72 -0
- package/build/bootstrap/select.js +88 -0
- package/build/bootstrap/sort-link.js +130 -0
- package/build/cable-connection-pool.js +128 -0
- package/build/cable-subscription-pool.js +207 -0
- package/build/cable-subscription.js +21 -0
- package/build/cache-key-generator.js +81 -0
- package/build/can-can.js +134 -0
- package/build/channels-consumer.js +3 -0
- package/build/collection-loader.js +48 -0
- package/build/collection.js +279 -0
- package/build/command-submit-data.js +81 -0
- package/build/commands-pool.js +195 -0
- package/build/compose.js +9 -0
- package/build/config.js +53 -0
- package/build/custom-error.js +5 -0
- package/build/data-set-to-attributes.js +10 -0
- package/build/deserializer.js +56 -0
- package/build/destroy-error.js +5 -0
- package/build/devise.js +109 -0
- package/build/draggable-sort/controller.js +136 -0
- package/build/draggable-sort/index.js +114 -0
- package/build/draggable-sort/item.js +188 -0
- package/build/error-logger.js +101 -0
- package/build/error-messages.js +13 -0
- package/build/event-connection.js +32 -0
- package/build/event-model-class.js +24 -0
- package/build/events.js +5 -0
- package/build/form.js +83 -0
- package/build/index.js +3 -0
- package/build/inputs/attachment.js +121 -0
- package/build/inputs/auto-submit.js +36 -0
- package/build/inputs/checkbox.js +145 -0
- package/build/inputs/checkboxes.js +111 -0
- package/build/inputs/id-for-component.js +15 -0
- package/build/inputs/input-wrapper.js +18 -0
- package/build/inputs/input.js +230 -0
- package/build/inputs/money.js +179 -0
- package/build/inputs/name-for-component.js +13 -0
- package/build/inputs/select.js +92 -0
- package/build/instance-of-class-name.js +23 -0
- package/build/key-value-store.js +53 -0
- package/build/link.js +68 -0
- package/build/logger.js +30 -0
- package/build/modal.js +37 -0
- package/build/model-class-require.js +13 -0
- package/build/model-events.js +30 -0
- package/build/model-name.js +28 -0
- package/build/model-prop-type.js +101 -0
- package/build/model-recipes-loader.js +32 -0
- package/build/model-recipes-model-loader.js +357 -0
- package/build/models-response-reader.js +40 -0
- package/build/models.js +8 -0
- package/build/money-formatter.js +77 -0
- package/build/not-loaded-error.js +2 -0
- package/build/params.js +60 -0
- package/build/preloaded.js +38 -0
- package/build/resize-observer.js +11 -0
- package/build/result.js +13 -0
- package/build/router/route.js +262 -0
- package/build/router/switch.js +72 -0
- package/build/router.js +57 -0
- package/build/routes-native.js +202 -0
- package/build/routes.js +50 -0
- package/build/run-last.js +35 -0
- package/build/serializer.js +63 -0
- package/build/services.js +20 -0
- package/build/session-status-updater.js +126 -0
- package/build/source-maps-loader.js +171 -0
- package/build/super-admin/config-reader.js +84 -0
- package/build/super-admin/edit-page/edit-attribute-checkbox.js +85 -0
- package/build/super-admin/edit-page/edit-attribute-content.js +54 -0
- package/build/super-admin/edit-page/edit-attribute-input.js +79 -0
- package/build/super-admin/edit-page/edit-attribute.js +76 -0
- package/build/super-admin/edit-page.js +120 -0
- package/build/super-admin/has-edit-config.js +12 -0
- package/build/super-admin/index-page.js +24 -0
- package/build/super-admin/index.js +180 -0
- package/build/super-admin/layout/header/index.js +151 -0
- package/build/super-admin/layout/index.js +109 -0
- package/build/super-admin/layout/menu/index.js +93 -0
- package/build/super-admin/layout/menu/menu-content.js +40 -0
- package/build/super-admin/layout/menu/menu-item.js +83 -0
- package/build/super-admin/layout/no-access.js +25 -0
- package/build/super-admin/model-class-table.js +61 -0
- package/build/super-admin/models.js +8 -0
- package/build/super-admin/show-nav.js +49 -0
- package/build/super-admin/show-page/belongs-to-attribute-row.js +28 -0
- package/build/super-admin/show-page/index.js +141 -0
- package/build/super-admin/show-reflection-actions.js +47 -0
- package/build/super-admin/show-reflection-link.js +46 -0
- package/build/super-admin/show-reflection-page.js +47 -0
- package/build/table/column-content.js +112 -0
- package/build/table/column-identifier.js +18 -0
- package/build/table/column-visible.js +7 -0
- package/build/table/components/column.js +20 -0
- package/build/table/components/flat-list.js +20 -0
- package/build/table/components/header.js +25 -0
- package/build/table/components/row.js +25 -0
- package/build/table/filters/attribute-element.js +43 -0
- package/build/table/filters/filter-form.js +392 -0
- package/build/table/filters/filter.js +89 -0
- package/build/table/filters/index.js +182 -0
- package/build/table/filters/load-search-modal.js +174 -0
- package/build/table/filters/reflection-element.js +36 -0
- package/build/table/filters/save-search-modal.js +86 -0
- package/build/table/filters/scope-element.js +41 -0
- package/build/table/header-column-content.js +67 -0
- package/build/table/header-column.js +144 -0
- package/build/table/header-select.js +104 -0
- package/build/table/model-callback-args.js +10 -0
- package/build/table/model-column.js +87 -0
- package/build/table/model-row.js +179 -0
- package/build/table/select-calculator.js +63 -0
- package/build/table/settings/column-row.js +97 -0
- package/build/table/settings/download-action.js +78 -0
- package/build/table/settings/index.js +92 -0
- package/build/table/table-settings.js +219 -0
- package/build/table/table.js +972 -0
- package/build/table/use-sorting.js +34 -0
- package/build/table/widths.js +75 -0
- package/build/table/worker-plugins-check-all-checkbox.js +125 -0
- package/build/table/worker-plugins-checkbox.js +115 -0
- package/build/translated-attributes.js +10 -0
- package/build/translated-collections.js +11 -0
- package/build/updated-attribute.js +76 -0
- package/build/url-encode.js +15 -0
- package/build/use-breakpoint.js +44 -0
- package/build/use-can-can.js +55 -0
- package/build/use-collection.js +225 -0
- package/build/use-created-event.js +52 -0
- package/build/use-current-user.js +73 -0
- package/build/use-destroyed-event.js +60 -0
- package/build/use-event-emitter.js +13 -0
- package/build/use-event-listener.js +16 -0
- package/build/use-input.js +140 -0
- package/build/use-model-event.js +60 -0
- package/build/use-model.js +169 -0
- package/build/use-resize-observer.js +23 -0
- package/build/use-router.js +102 -0
- package/build/use-screen-layout.js +39 -0
- package/build/use-updated-event.js +60 -0
- package/build/use-validation-errors.js +30 -0
- package/build/utils/card.js +51 -0
- package/build/utils/checkbox.js +48 -0
- package/build/utils/default-style.js +18 -0
- package/build/utils/modal.js +61 -0
- package/build/utils/text.js +18 -0
- package/build/validation-error.js +28 -0
- package/build/validation-errors.js +98 -0
- package/build/with-collection.js +13 -0
- package/build/with-current-user.js +9 -0
- package/build/with-model.js +14 -0
- package/build/with-router.js +21 -0
- package/expo-module.config.json +17 -0
- package/ios/ApiMaker.podspec +29 -0
- package/ios/ApiMakerModule.swift +48 -0
- package/ios/ApiMakerView.swift +38 -0
- package/package.json +35 -15
- package/src/{api.mjs → api.js} +5 -5
- package/src/{base-error.mjs → base-error.js} +1 -1
- package/src/base-model/{attribute.mjs → attribute.js} +1 -1
- package/src/base-model/{reflection.mjs → reflection.js} +1 -1
- package/src/{base-model.mjs → base-model.js} +14 -14
- package/src/bootstrap/attribute-row/index.jsx +2 -2
- package/src/bootstrap/attribute-rows.jsx +1 -1
- package/src/bootstrap/card.jsx +1 -1
- package/src/bootstrap/checkbox.jsx +1 -1
- package/src/bootstrap/checkboxes.jsx +1 -1
- package/src/bootstrap/input.jsx +1 -1
- package/src/bootstrap/paginate.jsx +2 -2
- package/src/bootstrap/sort-link.jsx +3 -3
- package/src/{cable-connection-pool.mjs → cable-connection-pool.js} +3 -3
- package/src/{cable-subscription-pool.mjs → cable-subscription-pool.js} +4 -4
- package/src/{cable-subscription.mjs → cable-subscription.js} +1 -1
- package/src/{can-can.mjs → can-can.js} +1 -1
- package/src/collection-loader.jsx +2 -2
- package/src/{collection.mjs → collection.js} +3 -3
- package/src/{commands-pool.mjs → commands-pool.js} +11 -11
- package/src/{custom-error.mjs → custom-error.js} +1 -1
- package/src/{deserializer.mjs → deserializer.js} +2 -2
- package/src/{destroy-error.mjs → destroy-error.js} +1 -1
- package/src/{devise.mjs → devise.js} +5 -9
- package/src/draggable-sort/index.jsx +3 -3
- package/src/draggable-sort/item.jsx +2 -2
- package/src/{error-logger.mjs → error-logger.js} +1 -1
- package/src/event-connection.jsx +1 -1
- package/src/event-model-class.jsx +1 -1
- package/src/form.jsx +1 -1
- package/src/index.js +3 -0
- package/src/inputs/attachment.jsx +2 -2
- package/src/inputs/checkbox.jsx +7 -6
- package/src/inputs/checkboxes.jsx +1 -1
- package/src/inputs/input-wrapper.jsx +1 -1
- package/src/inputs/input.jsx +8 -7
- package/src/inputs/money.jsx +3 -3
- package/src/inputs/select.jsx +1 -1
- package/src/{key-value-store.mjs → key-value-store.js} +1 -1
- package/src/link.jsx +2 -2
- package/src/modal.jsx +1 -1
- package/src/{model-class-require.mjs → model-class-require.js} +4 -2
- package/src/{model-events.mjs → model-events.js} +1 -1
- package/src/{model-name.mjs → model-name.js} +1 -1
- package/src/{model-recipes-loader.mjs → model-recipes-loader.js} +1 -1
- package/src/{model-recipes-model-loader.mjs → model-recipes-model-loader.js} +2 -2
- package/src/{models-response-reader.mjs → models-response-reader.js} +2 -2
- package/src/models.js +7 -0
- package/src/{models.mjs.erb → models.js.erb} +1 -1
- package/src/{params.mjs → params.js} +2 -2
- package/src/{preloaded.mjs → preloaded.js} +1 -1
- package/src/resize-observer.jsx +1 -1
- package/src/router/route.jsx +1 -1
- package/src/router/switch.jsx +1 -1
- package/src/router.jsx +1 -1
- package/src/{routes-native.mjs → routes-native.js} +1 -1
- package/src/{services.mjs → services.js} +1 -1
- package/src/{session-status-updater.mjs → session-status-updater.js} +3 -3
- package/src/{source-maps-loader.mjs → source-maps-loader.js} +1 -1
- package/src/super-admin/edit-page/edit-attribute-checkbox.jsx +1 -1
- package/src/super-admin/edit-page/edit-attribute-content.jsx +1 -1
- package/src/super-admin/edit-page/edit-attribute-input.jsx +1 -1
- package/src/super-admin/edit-page/edit-attribute.jsx +1 -1
- package/src/super-admin/edit-page.jsx +2 -2
- package/src/super-admin/has-edit-config.js +1 -1
- package/src/super-admin/index-page.jsx +1 -1
- package/src/super-admin/index.jsx +7 -7
- package/src/super-admin/layout/header/index.jsx +2 -2
- package/src/super-admin/layout/index.jsx +3 -3
- package/src/super-admin/layout/menu/index.jsx +3 -3
- package/src/super-admin/layout/menu/menu-content.jsx +2 -2
- package/src/super-admin/layout/menu/{menu-item/index.jsx → menu-item.jsx} +5 -6
- package/src/super-admin/layout/no-access.jsx +2 -2
- package/src/super-admin/model-class-table.jsx +3 -3
- package/src/super-admin/models.js +1 -1
- package/src/super-admin/show-nav.jsx +2 -2
- package/src/super-admin/show-page/belongs-to-attribute-row.jsx +1 -1
- package/src/super-admin/show-page/index.jsx +2 -2
- package/src/super-admin/show-reflection-actions.jsx +1 -1
- package/src/super-admin/show-reflection-link.jsx +1 -1
- package/src/super-admin/show-reflection-page.jsx +1 -1
- package/src/table/column-content.jsx +1 -1
- package/src/table/filters/filter-form.jsx +1 -1
- package/src/table/filters/index.jsx +5 -3
- package/src/table/filters/load-search-modal.jsx +6 -4
- package/src/table/filters/save-search-modal.jsx +4 -4
- package/src/table/header-select.jsx +1 -1
- package/src/table/model-column.jsx +1 -1
- package/src/table/model-row.jsx +2 -2
- package/src/table/{select-calculator.mjs → select-calculator.js} +1 -1
- package/src/table/settings/column-row.jsx +2 -2
- package/src/table/settings/download-action.jsx +3 -3
- package/src/table/settings/index.jsx +3 -3
- package/src/table/table-settings.js +5 -4
- package/src/table/table.jsx +8 -8
- package/src/table/{use-sorting.mjs → use-sorting.js} +1 -1
- package/src/table/worker-plugins-check-all-checkbox.jsx +2 -2
- package/src/table/worker-plugins-checkbox.jsx +2 -2
- package/src/{translated-collections.mjs → translated-collections.js} +1 -1
- package/src/updated-attribute.jsx +1 -1
- package/src/{use-breakpoint.mjs → use-breakpoint.js} +2 -2
- package/src/use-can-can.js +55 -0
- package/src/{use-collection.mjs → use-collection.js} +4 -4
- package/src/{use-created-event.mjs → use-created-event.js} +2 -2
- package/src/{use-current-user.mjs → use-current-user.js} +6 -5
- package/src/{use-destroyed-event.mjs → use-destroyed-event.js} +2 -2
- package/src/{use-input.mjs → use-input.js} +5 -5
- package/src/use-model-event.js +2 -2
- package/src/{use-model.mjs → use-model.js} +4 -4
- package/src/{use-resize-observer.mjs → use-resize-observer.js} +1 -1
- package/src/use-router.jsx +2 -2
- package/src/{use-updated-event.mjs → use-updated-event.js} +2 -2
- package/src/{use-validation-errors.mjs → use-validation-errors.js} +3 -3
- package/src/utils/checkbox.jsx +2 -2
- package/src/{validation-error.mjs → validation-error.js} +1 -1
- package/src/{validation-errors.mjs → validation-errors.js} +1 -1
- package/src/with-current-user.jsx +1 -1
- package/src/with-model.jsx +1 -1
- package/__tests__/base-model.test.mjs +0 -71
- package/__tests__/cable-connection-pool.test.mjs +0 -227
- package/__tests__/cable-subscription-pool.test.mjs +0 -27
- package/__tests__/can-can.test.mjs +0 -34
- package/__tests__/collection.test.mjs +0 -51
- package/__tests__/custom-error.test.mjs +0 -13
- package/__tests__/model-name.test.mjs +0 -34
- package/__tests__/model-prop-type.test.mjs +0 -113
- package/__tests__/params.test.mjs +0 -40
- package/__tests__/routes-native.test.mjs +0 -104
- package/__tests__/routes.test.mjs +0 -47
- package/__tests__/serializer.test.mjs +0 -30
- package/__tests__/support/task.mjs +0 -27
- package/__tests__/support/user.mjs +0 -32
- package/index.js +0 -1
- package/jest.config.js +0 -9
- package/src/event-created.jsx +0 -12
- package/src/event-destroyed.jsx +0 -25
- package/src/event-emitter-listener.jsx +0 -10
- package/src/event-listener.jsx +0 -25
- package/src/event-updated.jsx +0 -27
- package/src/super-admin/layout/menu/menu-item/style.scss +0 -10
- package/src/use-can-can.mjs +0 -48
- package/src/with-can-can.jsx +0 -12
- package/webpack.config.js +0 -15
- /package/src/{attribute-not-loaded-error.mjs → attribute-not-loaded-error.js} +0 -0
- /package/src/base-model/{column.mjs → column.js} +0 -0
- /package/src/base-model/{scope.mjs → scope.js} +0 -0
- /package/src/{cache-key-generator.mjs → cache-key-generator.js} +0 -0
- /package/src/{channels-consumer.mjs → channels-consumer.js} +0 -0
- /package/src/{command-submit-data.mjs → command-submit-data.js} +0 -0
- /package/src/{config.mjs → config.js} +0 -0
- /package/src/{data-set-to-attributes.mjs → data-set-to-attributes.js} +0 -0
- /package/src/draggable-sort/{controller.mjs → controller.js} +0 -0
- /package/src/{error-messages.mjs → error-messages.js} +0 -0
- /package/src/{events.mjs → events.js} +0 -0
- /package/src/inputs/{auto-submit.mjs → auto-submit.js} +0 -0
- /package/src/inputs/{id-for-component.mjs → id-for-component.js} +0 -0
- /package/src/inputs/{name-for-component.mjs → name-for-component.js} +0 -0
- /package/src/{instance-of-class-name.mjs → instance-of-class-name.js} +0 -0
- /package/src/{logger.mjs → logger.js} +0 -0
- /package/src/{model-prop-type.mjs → model-prop-type.js} +0 -0
- /package/src/{money-formatter.mjs → money-formatter.js} +0 -0
- /package/src/{not-loaded-error.mjs → not-loaded-error.js} +0 -0
- /package/src/{result.mjs → result.js} +0 -0
- /package/src/{routes.mjs → routes.js} +0 -0
- /package/src/{run-last.mjs → run-last.js} +0 -0
- /package/src/{serializer.mjs → serializer.js} +0 -0
- /package/src/table/{column-identifier.mjs → column-identifier.js} +0 -0
- /package/src/table/{column-visible.mjs → column-visible.js} +0 -0
- /package/src/table/{model-callback-args.mjs → model-callback-args.js} +0 -0
- /package/src/{translated-collections-data.mjs.erb → translated-collections-data.js.erb} +0 -0
- /package/src/{url-encode.mjs → url-encode.js} +0 -0
- /package/src/{use-event-emitter.mjs → use-event-emitter.js} +0 -0
- /package/src/{use-event-listener.mjs → use-event-listener.js} +0 -0
- /package/src/{use-screen-layout.mjs → use-screen-layout.js} +0 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import * as inflection from "inflection";
|
|
2
|
+
import modelClassRequire from "./model-class-require";
|
|
3
|
+
export default class ApiMakerPreloaded {
|
|
4
|
+
constructor(response) {
|
|
5
|
+
this.response = response;
|
|
6
|
+
this.loadPreloadedModels();
|
|
7
|
+
}
|
|
8
|
+
loadPreloadedModels() {
|
|
9
|
+
this.preloaded = {};
|
|
10
|
+
for (const preloadedType in this.response.preloaded) {
|
|
11
|
+
const modelClassName = inflection.classify(preloadedType);
|
|
12
|
+
const ModelClass = modelClassRequire(modelClassName);
|
|
13
|
+
for (const preloadedId in this.response.preloaded[preloadedType]) {
|
|
14
|
+
const preloadedData = this.response.preloaded[preloadedType][preloadedId];
|
|
15
|
+
const model = new ModelClass({
|
|
16
|
+
data: preloadedData,
|
|
17
|
+
isNewRecord: false
|
|
18
|
+
});
|
|
19
|
+
if (!this.preloaded[preloadedType]) {
|
|
20
|
+
this.preloaded[preloadedType] = {};
|
|
21
|
+
}
|
|
22
|
+
this.preloaded[preloadedType][preloadedId] = model;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
for (const modelType in this.preloaded) {
|
|
26
|
+
for (const modelId in this.preloaded[modelType]) {
|
|
27
|
+
this.preloaded[modelType][modelId]._readPreloadedRelationships(this);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
getModel(type, id) {
|
|
32
|
+
if (!this.preloaded[type] || !this.preloaded[type][id]) {
|
|
33
|
+
throw new Error(`Could not find a ${type} by that ID: ${id}`);
|
|
34
|
+
}
|
|
35
|
+
return this.preloaded[type][id];
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpbmZsZWN0aW9uIiwibW9kZWxDbGFzc1JlcXVpcmUiLCJBcGlNYWtlclByZWxvYWRlZCIsImNvbnN0cnVjdG9yIiwicmVzcG9uc2UiLCJsb2FkUHJlbG9hZGVkTW9kZWxzIiwicHJlbG9hZGVkIiwicHJlbG9hZGVkVHlwZSIsIm1vZGVsQ2xhc3NOYW1lIiwiY2xhc3NpZnkiLCJNb2RlbENsYXNzIiwicHJlbG9hZGVkSWQiLCJwcmVsb2FkZWREYXRhIiwibW9kZWwiLCJkYXRhIiwiaXNOZXdSZWNvcmQiLCJtb2RlbFR5cGUiLCJtb2RlbElkIiwiX3JlYWRQcmVsb2FkZWRSZWxhdGlvbnNoaXBzIiwiZ2V0TW9kZWwiLCJ0eXBlIiwiaWQiLCJFcnJvciJdLCJzb3VyY2VzIjpbIi4uL3NyYy9wcmVsb2FkZWQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiXG5pbXBvcnQgbW9kZWxDbGFzc1JlcXVpcmUgZnJvbSBcIi4vbW9kZWwtY2xhc3MtcmVxdWlyZVwiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFwaU1ha2VyUHJlbG9hZGVkIHtcbiAgY29uc3RydWN0b3IgKHJlc3BvbnNlKSB7XG4gICAgdGhpcy5yZXNwb25zZSA9IHJlc3BvbnNlXG4gICAgdGhpcy5sb2FkUHJlbG9hZGVkTW9kZWxzKClcbiAgfVxuXG4gIGxvYWRQcmVsb2FkZWRNb2RlbHMgKCkge1xuICAgIHRoaXMucHJlbG9hZGVkID0ge31cblxuICAgIGZvciAoY29uc3QgcHJlbG9hZGVkVHlwZSBpbiB0aGlzLnJlc3BvbnNlLnByZWxvYWRlZCkge1xuICAgICAgY29uc3QgbW9kZWxDbGFzc05hbWUgPSBpbmZsZWN0aW9uLmNsYXNzaWZ5KHByZWxvYWRlZFR5cGUpXG4gICAgICBjb25zdCBNb2RlbENsYXNzID0gbW9kZWxDbGFzc1JlcXVpcmUobW9kZWxDbGFzc05hbWUpXG5cbiAgICAgIGZvciAoY29uc3QgcHJlbG9hZGVkSWQgaW4gdGhpcy5yZXNwb25zZS5wcmVsb2FkZWRbcHJlbG9hZGVkVHlwZV0pIHtcbiAgICAgICAgY29uc3QgcHJlbG9hZGVkRGF0YSA9IHRoaXMucmVzcG9uc2UucHJlbG9hZGVkW3ByZWxvYWRlZFR5cGVdW3ByZWxvYWRlZElkXVxuICAgICAgICBjb25zdCBtb2RlbCA9IG5ldyBNb2RlbENsYXNzKHtkYXRhOiBwcmVsb2FkZWREYXRhLCBpc05ld1JlY29yZDogZmFsc2V9KVxuXG4gICAgICAgIGlmICghdGhpcy5wcmVsb2FkZWRbcHJlbG9hZGVkVHlwZV0pIHtcbiAgICAgICAgICB0aGlzLnByZWxvYWRlZFtwcmVsb2FkZWRUeXBlXSA9IHt9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnByZWxvYWRlZFtwcmVsb2FkZWRUeXBlXVtwcmVsb2FkZWRJZF0gPSBtb2RlbFxuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAoY29uc3QgbW9kZWxUeXBlIGluIHRoaXMucHJlbG9hZGVkKSB7XG4gICAgICBmb3IgKGNvbnN0IG1vZGVsSWQgaW4gdGhpcy5wcmVsb2FkZWRbbW9kZWxUeXBlXSkge1xuICAgICAgICB0aGlzLnByZWxvYWRlZFttb2RlbFR5cGVdW21vZGVsSWRdLl9yZWFkUHJlbG9hZGVkUmVsYXRpb25zaGlwcyh0aGlzKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldE1vZGVsICh0eXBlLCBpZCkge1xuICAgIGlmICghdGhpcy5wcmVsb2FkZWRbdHlwZV0gfHwgIXRoaXMucHJlbG9hZGVkW3R5cGVdW2lkXSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgZmluZCBhICR7dHlwZX0gYnkgdGhhdCBJRDogJHtpZH1gKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnByZWxvYWRlZFt0eXBlXVtpZF1cbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUtBLFVBQVUsTUFBTSxZQUFZO0FBQ3hDLE9BQU9DLGlCQUFpQixNQUFNLHVCQUF1QjtBQUVyRCxlQUFlLE1BQU1DLGlCQUFpQixDQUFDO0VBQ3JDQyxXQUFXQSxDQUFFQyxRQUFRLEVBQUU7SUFDckIsSUFBSSxDQUFDQSxRQUFRLEdBQUdBLFFBQVE7SUFDeEIsSUFBSSxDQUFDQyxtQkFBbUIsQ0FBQyxDQUFDO0VBQzVCO0VBRUFBLG1CQUFtQkEsQ0FBQSxFQUFJO0lBQ3JCLElBQUksQ0FBQ0MsU0FBUyxHQUFHLENBQUMsQ0FBQztJQUVuQixLQUFLLE1BQU1DLGFBQWEsSUFBSSxJQUFJLENBQUNILFFBQVEsQ0FBQ0UsU0FBUyxFQUFFO01BQ25ELE1BQU1FLGNBQWMsR0FBR1IsVUFBVSxDQUFDUyxRQUFRLENBQUNGLGFBQWEsQ0FBQztNQUN6RCxNQUFNRyxVQUFVLEdBQUdULGlCQUFpQixDQUFDTyxjQUFjLENBQUM7TUFFcEQsS0FBSyxNQUFNRyxXQUFXLElBQUksSUFBSSxDQUFDUCxRQUFRLENBQUNFLFNBQVMsQ0FBQ0MsYUFBYSxDQUFDLEVBQUU7UUFDaEUsTUFBTUssYUFBYSxHQUFHLElBQUksQ0FBQ1IsUUFBUSxDQUFDRSxTQUFTLENBQUNDLGFBQWEsQ0FBQyxDQUFDSSxXQUFXLENBQUM7UUFDekUsTUFBTUUsS0FBSyxHQUFHLElBQUlILFVBQVUsQ0FBQztVQUFDSSxJQUFJLEVBQUVGLGFBQWE7VUFBRUcsV0FBVyxFQUFFO1FBQUssQ0FBQyxDQUFDO1FBRXZFLElBQUksQ0FBQyxJQUFJLENBQUNULFNBQVMsQ0FBQ0MsYUFBYSxDQUFDLEVBQUU7VUFDbEMsSUFBSSxDQUFDRCxTQUFTLENBQUNDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwQztRQUVBLElBQUksQ0FBQ0QsU0FBUyxDQUFDQyxhQUFhLENBQUMsQ0FBQ0ksV0FBVyxDQUFDLEdBQUdFLEtBQUs7TUFDcEQ7SUFDRjtJQUVBLEtBQUssTUFBTUcsU0FBUyxJQUFJLElBQUksQ0FBQ1YsU0FBUyxFQUFFO01BQ3RDLEtBQUssTUFBTVcsT0FBTyxJQUFJLElBQUksQ0FBQ1gsU0FBUyxDQUFDVSxTQUFTLENBQUMsRUFBRTtRQUMvQyxJQUFJLENBQUNWLFNBQVMsQ0FBQ1UsU0FBUyxDQUFDLENBQUNDLE9BQU8sQ0FBQyxDQUFDQywyQkFBMkIsQ0FBQyxJQUFJLENBQUM7TUFDdEU7SUFDRjtFQUNGO0VBRUFDLFFBQVFBLENBQUVDLElBQUksRUFBRUMsRUFBRSxFQUFFO0lBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUNmLFNBQVMsQ0FBQ2MsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUNkLFNBQVMsQ0FBQ2MsSUFBSSxDQUFDLENBQUNDLEVBQUUsQ0FBQyxFQUFFO01BQ3RELE1BQU0sSUFBSUMsS0FBSyxDQUFDLG9CQUFvQkYsSUFBSSxnQkFBZ0JDLEVBQUUsRUFBRSxDQUFDO0lBQy9EO0lBRUEsT0FBTyxJQUFJLENBQUNmLFNBQVMsQ0FBQ2MsSUFBSSxDQUFDLENBQUNDLEVBQUUsQ0FBQztFQUNqQztBQUNGIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import memo from "set-state-compare/src/memo";
|
|
2
|
+
import useResizeObserver from "./use-resize-observer";
|
|
3
|
+
const ApiMakerResizeObserver = memo(({
|
|
4
|
+
element,
|
|
5
|
+
onResize
|
|
6
|
+
}) => {
|
|
7
|
+
useResizeObserver(element, onResize);
|
|
8
|
+
return null;
|
|
9
|
+
});
|
|
10
|
+
export default ApiMakerResizeObserver;
|
|
11
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtZW1vIiwidXNlUmVzaXplT2JzZXJ2ZXIiLCJBcGlNYWtlclJlc2l6ZU9ic2VydmVyIiwiZWxlbWVudCIsIm9uUmVzaXplIl0sInNvdXJjZXMiOlsiLi4vc3JjL3Jlc2l6ZS1vYnNlcnZlci5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG1lbW8gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL3NyYy9tZW1vXCJcbmltcG9ydCB1c2VSZXNpemVPYnNlcnZlciBmcm9tIFwiLi91c2UtcmVzaXplLW9ic2VydmVyXCJcblxuY29uc3QgQXBpTWFrZXJSZXNpemVPYnNlcnZlciA9IG1lbW8oKHtlbGVtZW50LCBvblJlc2l6ZX0pID0+IHtcbiAgdXNlUmVzaXplT2JzZXJ2ZXIoZWxlbWVudCwgb25SZXNpemUpXG5cbiAgcmV0dXJuIG51bGxcbn0pXG5cbmV4cG9ydCBkZWZhdWx0IEFwaU1ha2VyUmVzaXplT2JzZXJ2ZXJcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsSUFBSSxNQUFNLDRCQUE0QjtBQUM3QyxPQUFPQyxpQkFBaUIsTUFBTSx1QkFBdUI7QUFFckQsTUFBTUMsc0JBQXNCLEdBQUdGLElBQUksQ0FBQyxDQUFDO0VBQUNHLE9BQU87RUFBRUM7QUFBUSxDQUFDLEtBQUs7RUFDM0RILGlCQUFpQixDQUFDRSxPQUFPLEVBQUVDLFFBQVEsQ0FBQztFQUVwQyxPQUFPLElBQUk7QUFDYixDQUFDLENBQUM7QUFFRixlQUFlRixzQkFBc0IiLCJpZ25vcmVMaXN0IjpbXX0=
|
package/build/result.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export default class ApiMakerResult {
|
|
2
|
+
constructor(data) {
|
|
3
|
+
this.data = data;
|
|
4
|
+
}
|
|
5
|
+
count = () => this.data.response.meta.count;
|
|
6
|
+
currentPage = () => this.data.response.meta.currentPage;
|
|
7
|
+
models = () => this.data.models;
|
|
8
|
+
modelClass = () => this.data.collection.modelClass();
|
|
9
|
+
perPage = () => this.data.response.meta.perPage;
|
|
10
|
+
totalCount = () => this.data.response.meta.totalCount;
|
|
11
|
+
totalPages = () => this.data.response.meta.totalPages;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBcGlNYWtlclJlc3VsdCIsImNvbnN0cnVjdG9yIiwiZGF0YSIsImNvdW50IiwicmVzcG9uc2UiLCJtZXRhIiwiY3VycmVudFBhZ2UiLCJtb2RlbHMiLCJtb2RlbENsYXNzIiwiY29sbGVjdGlvbiIsInBlclBhZ2UiLCJ0b3RhbENvdW50IiwidG90YWxQYWdlcyJdLCJzb3VyY2VzIjpbIi4uL3NyYy9yZXN1bHQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXBpTWFrZXJSZXN1bHQge1xuICBjb25zdHJ1Y3RvciAoZGF0YSkge1xuICAgIHRoaXMuZGF0YSA9IGRhdGFcbiAgfVxuXG4gIGNvdW50ID0gKCkgPT4gdGhpcy5kYXRhLnJlc3BvbnNlLm1ldGEuY291bnRcbiAgY3VycmVudFBhZ2UgPSAoKSA9PiB0aGlzLmRhdGEucmVzcG9uc2UubWV0YS5jdXJyZW50UGFnZVxuICBtb2RlbHMgPSAoKSA9PiB0aGlzLmRhdGEubW9kZWxzXG4gIG1vZGVsQ2xhc3MgPSAoKSA9PiB0aGlzLmRhdGEuY29sbGVjdGlvbi5tb2RlbENsYXNzKClcbiAgcGVyUGFnZSA9ICgpID0+IHRoaXMuZGF0YS5yZXNwb25zZS5tZXRhLnBlclBhZ2VcbiAgdG90YWxDb3VudCA9ICgpID0+IHRoaXMuZGF0YS5yZXNwb25zZS5tZXRhLnRvdGFsQ291bnRcbiAgdG90YWxQYWdlcyA9ICgpID0+IHRoaXMuZGF0YS5yZXNwb25zZS5tZXRhLnRvdGFsUGFnZXNcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsZUFBZSxNQUFNQSxjQUFjLENBQUM7RUFDbENDLFdBQVdBLENBQUVDLElBQUksRUFBRTtJQUNqQixJQUFJLENBQUNBLElBQUksR0FBR0EsSUFBSTtFQUNsQjtFQUVBQyxLQUFLLEdBQUdBLENBQUEsS0FBTSxJQUFJLENBQUNELElBQUksQ0FBQ0UsUUFBUSxDQUFDQyxJQUFJLENBQUNGLEtBQUs7RUFDM0NHLFdBQVcsR0FBR0EsQ0FBQSxLQUFNLElBQUksQ0FBQ0osSUFBSSxDQUFDRSxRQUFRLENBQUNDLElBQUksQ0FBQ0MsV0FBVztFQUN2REMsTUFBTSxHQUFHQSxDQUFBLEtBQU0sSUFBSSxDQUFDTCxJQUFJLENBQUNLLE1BQU07RUFDL0JDLFVBQVUsR0FBR0EsQ0FBQSxLQUFNLElBQUksQ0FBQ04sSUFBSSxDQUFDTyxVQUFVLENBQUNELFVBQVUsQ0FBQyxDQUFDO0VBQ3BERSxPQUFPLEdBQUdBLENBQUEsS0FBTSxJQUFJLENBQUNSLElBQUksQ0FBQ0UsUUFBUSxDQUFDQyxJQUFJLENBQUNLLE9BQU87RUFDL0NDLFVBQVUsR0FBR0EsQ0FBQSxLQUFNLElBQUksQ0FBQ1QsSUFBSSxDQUFDRSxRQUFRLENBQUNDLElBQUksQ0FBQ00sVUFBVTtFQUNyREMsVUFBVSxHQUFHQSxDQUFBLEtBQU0sSUFBSSxDQUFDVixJQUFJLENBQUNFLFFBQVEsQ0FBQ0MsSUFBSSxDQUFDTyxVQUFVO0FBQ3ZEIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
import BaseComponent from "../base-component";
|
|
2
|
+
import { createContext, useContext, useMemo } from "react";
|
|
3
|
+
import memo from "set-state-compare/src/memo";
|
|
4
|
+
import PropTypes from "prop-types";
|
|
5
|
+
import propTypesExact from "prop-types-exact";
|
|
6
|
+
import { shapeComponent } from "set-state-compare/src/shape-component";
|
|
7
|
+
import Switch, { CurrentSwitchContext } from "./switch";
|
|
8
|
+
const CurrentPathContext = /*#__PURE__*/createContext([]);
|
|
9
|
+
const ParamsContext = /*#__PURE__*/createContext({});
|
|
10
|
+
const RequireComponentContext = /*#__PURE__*/createContext(null);
|
|
11
|
+
const RouteContext = /*#__PURE__*/createContext(null);
|
|
12
|
+
const useParams = () => useContext(ParamsContext);
|
|
13
|
+
const Route = memo(shapeComponent(class Route extends BaseComponent {
|
|
14
|
+
static defaultProps = {
|
|
15
|
+
exact: false,
|
|
16
|
+
fallback: false,
|
|
17
|
+
includeInPath: true
|
|
18
|
+
};
|
|
19
|
+
static propTypes = propTypesExact({
|
|
20
|
+
children: PropTypes.node,
|
|
21
|
+
component: PropTypes.string,
|
|
22
|
+
componentPath: PropTypes.string,
|
|
23
|
+
exact: PropTypes.bool.isRequired,
|
|
24
|
+
fallback: PropTypes.bool.isRequired,
|
|
25
|
+
includeInPath: PropTypes.bool.isRequired,
|
|
26
|
+
onMatch: PropTypes.func,
|
|
27
|
+
path: PropTypes.oneOfType([PropTypes.string, PropTypes.instanceOf(RegExp)])
|
|
28
|
+
});
|
|
29
|
+
match = null;
|
|
30
|
+
newParams = null;
|
|
31
|
+
pathParts = null;
|
|
32
|
+
setup() {
|
|
33
|
+
const {
|
|
34
|
+
path
|
|
35
|
+
} = this.props;
|
|
36
|
+
const {
|
|
37
|
+
pathsMatched,
|
|
38
|
+
switchGroup
|
|
39
|
+
} = useContext(CurrentSwitchContext);
|
|
40
|
+
const givenRoute = useContext(RouteContext);
|
|
41
|
+
const {
|
|
42
|
+
pathShown
|
|
43
|
+
} = switchGroup.s;
|
|
44
|
+
this.debug = false;
|
|
45
|
+
this.log(() => ({
|
|
46
|
+
givenRoute
|
|
47
|
+
}));
|
|
48
|
+
this.requireComponent = useContext(RequireComponentContext);
|
|
49
|
+
this.currentParams = useContext(ParamsContext);
|
|
50
|
+
this.currentPath = useContext(CurrentPathContext);
|
|
51
|
+
this.switchGroup = switchGroup;
|
|
52
|
+
this.routeParts = useMemo(() => givenRoute?.split("/"), [path, givenRoute]);
|
|
53
|
+
this.pathParts = useMemo(() => path?.split("/"), [path]);
|
|
54
|
+
this.newRouteParts = useMemo(() => {
|
|
55
|
+
if (!path) {
|
|
56
|
+
if (givenRoute == "") {
|
|
57
|
+
return [];
|
|
58
|
+
} else {
|
|
59
|
+
return this.routeParts;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return this.routeParts.slice(this.pathParts.length, this.routeParts.length);
|
|
63
|
+
}, [givenRoute].concat(this.pathParts));
|
|
64
|
+
this.useStates({
|
|
65
|
+
Component: null,
|
|
66
|
+
componentNotFound: null,
|
|
67
|
+
matches: false
|
|
68
|
+
});
|
|
69
|
+
useMemo(() => {
|
|
70
|
+
this.loadMatches();
|
|
71
|
+
}, [givenRoute, path, pathsMatched]);
|
|
72
|
+
useMemo(() => {
|
|
73
|
+
if (this.hasSwitchMatch() && !this.s.Component && this.s.matches) {
|
|
74
|
+
if (this.props.onMatch) {
|
|
75
|
+
this.props.onMatch();
|
|
76
|
+
}
|
|
77
|
+
if (!this.props.children && (this.props.path || this.props.component || this.props.componentPath)) {
|
|
78
|
+
this.loadComponent();
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}, [path, pathShown, this.s.matches]);
|
|
82
|
+
}
|
|
83
|
+
hasSwitchMatch = () => this.switchGroup.s.pathShown && this.switchGroup.s.pathShown == this.pathId();
|
|
84
|
+
pathId() {
|
|
85
|
+
const {
|
|
86
|
+
fallback
|
|
87
|
+
} = this.p;
|
|
88
|
+
const {
|
|
89
|
+
path
|
|
90
|
+
} = this.props;
|
|
91
|
+
let pathId;
|
|
92
|
+
if (fallback) {
|
|
93
|
+
pathId = "[FALLBACK]";
|
|
94
|
+
} else if (!path) {
|
|
95
|
+
pathId = "[PATH-EMPTY]";
|
|
96
|
+
} else {
|
|
97
|
+
pathId = path;
|
|
98
|
+
}
|
|
99
|
+
return pathId;
|
|
100
|
+
}
|
|
101
|
+
loadMatches() {
|
|
102
|
+
const {
|
|
103
|
+
newRouteParts
|
|
104
|
+
} = this.tt;
|
|
105
|
+
const {
|
|
106
|
+
component,
|
|
107
|
+
path
|
|
108
|
+
} = this.props;
|
|
109
|
+
const {
|
|
110
|
+
exact,
|
|
111
|
+
includeInPath,
|
|
112
|
+
fallback
|
|
113
|
+
} = this.p;
|
|
114
|
+
let matches = true;
|
|
115
|
+
const params = {};
|
|
116
|
+
const componentPathParts = [...this.currentPath];
|
|
117
|
+
this.log(() => [this.props.path, "Start generating component paths", JSON.stringify(componentPathParts)]);
|
|
118
|
+
for (const pathPartIndex in this.pathParts) {
|
|
119
|
+
const pathPart = this.pathParts[pathPartIndex];
|
|
120
|
+
const translatedPathPart = I18n.t(`routes.${pathPart}`, {
|
|
121
|
+
defaultValue: pathPart
|
|
122
|
+
});
|
|
123
|
+
if (!(pathPartIndex in this.routeParts)) {
|
|
124
|
+
this.log(() => `No match for: ${pathPartIndex}`);
|
|
125
|
+
matches = false;
|
|
126
|
+
break;
|
|
127
|
+
}
|
|
128
|
+
const routePart = decodeURIComponent(this.routeParts[pathPartIndex]);
|
|
129
|
+
if (pathPart.startsWith(":") && routePart) {
|
|
130
|
+
const paramName = pathPart.slice(1, pathPart.length);
|
|
131
|
+
params[paramName] = routePart;
|
|
132
|
+
} else if (translatedPathPart != routePart) {
|
|
133
|
+
matches = false;
|
|
134
|
+
break;
|
|
135
|
+
} else if (!component && includeInPath) {
|
|
136
|
+
componentPathParts.push(pathPart);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
if (exact && newRouteParts.length > 0) {
|
|
140
|
+
this.log(() => ["Exact and more route parts", {
|
|
141
|
+
newRouteParts,
|
|
142
|
+
pathParts: this.pathParts,
|
|
143
|
+
routeParts: this.routeParts
|
|
144
|
+
}]);
|
|
145
|
+
matches = false;
|
|
146
|
+
} else if (matches && path) {
|
|
147
|
+
matches = true;
|
|
148
|
+
} else if (this.routeParts.length == 0) {
|
|
149
|
+
matches = true;
|
|
150
|
+
}
|
|
151
|
+
const matchId = this.pathId();
|
|
152
|
+
if (!matches && fallback) {
|
|
153
|
+
matches = true;
|
|
154
|
+
}
|
|
155
|
+
this.log(() => [this.props.path, "End generating component paths", JSON.stringify(componentPathParts), {
|
|
156
|
+
matches
|
|
157
|
+
}]);
|
|
158
|
+
if (matches) {
|
|
159
|
+
if (component && includeInPath) {
|
|
160
|
+
componentPathParts.push(component);
|
|
161
|
+
}
|
|
162
|
+
const newParams = Object.assign({}, this.currentParams, params);
|
|
163
|
+
this.setInstance({
|
|
164
|
+
componentPathParts,
|
|
165
|
+
match: {
|
|
166
|
+
params
|
|
167
|
+
},
|
|
168
|
+
newParams
|
|
169
|
+
});
|
|
170
|
+
this.setState({
|
|
171
|
+
matches
|
|
172
|
+
});
|
|
173
|
+
this.switchGroup?.setPathMatched(matchId, true);
|
|
174
|
+
} else {
|
|
175
|
+
this.setInstance({
|
|
176
|
+
componentPathParts: null,
|
|
177
|
+
match: null,
|
|
178
|
+
newParams: null
|
|
179
|
+
});
|
|
180
|
+
this.setState({
|
|
181
|
+
matches
|
|
182
|
+
});
|
|
183
|
+
this.switchGroup?.setPathMatched(matchId, false);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
async loadComponent() {
|
|
187
|
+
const actualComponentPath = this.props.componentPath || this.tt.componentPathParts.join("/");
|
|
188
|
+
let Component;
|
|
189
|
+
this.log(() => ["loadComponent", {
|
|
190
|
+
componentPath: this.props.componentPath,
|
|
191
|
+
componentPathParts: this.componentPathParts,
|
|
192
|
+
actualComponentPath
|
|
193
|
+
}]);
|
|
194
|
+
try {
|
|
195
|
+
const componentImport = await this.tt.requireComponent({
|
|
196
|
+
routeDefinition: {
|
|
197
|
+
component: actualComponentPath
|
|
198
|
+
}
|
|
199
|
+
});
|
|
200
|
+
Component = componentImport.default;
|
|
201
|
+
} catch (error) {
|
|
202
|
+
console.error(`Couldn't find component: ${actualComponentPath}`);
|
|
203
|
+
throw error;
|
|
204
|
+
}
|
|
205
|
+
this.setState({
|
|
206
|
+
Component,
|
|
207
|
+
componentNotFound: !Component
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
log(callbackArgs) {
|
|
211
|
+
if (this.debug) {
|
|
212
|
+
let args = callbackArgs();
|
|
213
|
+
if (!Array.isArray(args)) args = [args];
|
|
214
|
+
console.log(...args);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
render() {
|
|
218
|
+
const {
|
|
219
|
+
componentPathParts,
|
|
220
|
+
match,
|
|
221
|
+
newParams,
|
|
222
|
+
newRouteParts
|
|
223
|
+
} = this.tt;
|
|
224
|
+
const {
|
|
225
|
+
children,
|
|
226
|
+
component,
|
|
227
|
+
path
|
|
228
|
+
} = this.props;
|
|
229
|
+
const {
|
|
230
|
+
Component,
|
|
231
|
+
componentNotFound,
|
|
232
|
+
matches
|
|
233
|
+
} = this.s;
|
|
234
|
+
if (!matches || !this.hasSwitchMatch()) {
|
|
235
|
+
// Route isn't matching and shouldn't be rendered at all.
|
|
236
|
+
return null;
|
|
237
|
+
}
|
|
238
|
+
if (!Component && !children && !componentNotFound) {
|
|
239
|
+
// Route is matching but hasn't been loaded yet.
|
|
240
|
+
return /*#__PURE__*/React.createElement("div", null, "Loading ", component || this.props.componentPath || componentPathParts.join("/"));
|
|
241
|
+
}
|
|
242
|
+
if (!Component && !children && componentNotFound) {
|
|
243
|
+
// Don't render anything if the component couldn't be found.
|
|
244
|
+
return null;
|
|
245
|
+
}
|
|
246
|
+
return /*#__PURE__*/React.createElement(CurrentPathContext.Provider, {
|
|
247
|
+
value: componentPathParts
|
|
248
|
+
}, /*#__PURE__*/React.createElement(RouteContext.Provider, {
|
|
249
|
+
value: newRouteParts.join("/")
|
|
250
|
+
}, /*#__PURE__*/React.createElement(ParamsContext.Provider, {
|
|
251
|
+
value: newParams
|
|
252
|
+
}, /*#__PURE__*/React.createElement(Switch, {
|
|
253
|
+
name: `route-group-${path}`,
|
|
254
|
+
single: false
|
|
255
|
+
}, Component && /*#__PURE__*/React.createElement(Component, {
|
|
256
|
+
match: match
|
|
257
|
+
}), children))));
|
|
258
|
+
}
|
|
259
|
+
}));
|
|
260
|
+
export { RequireComponentContext, RouteContext, Switch, useParams };
|
|
261
|
+
export default Route;
|
|
262
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlQ29tcG9uZW50IiwiY3JlYXRlQ29udGV4dCIsInVzZUNvbnRleHQiLCJ1c2VNZW1vIiwibWVtbyIsIlByb3BUeXBlcyIsInByb3BUeXBlc0V4YWN0Iiwic2hhcGVDb21wb25lbnQiLCJTd2l0Y2giLCJDdXJyZW50U3dpdGNoQ29udGV4dCIsIkN1cnJlbnRQYXRoQ29udGV4dCIsIlBhcmFtc0NvbnRleHQiLCJSZXF1aXJlQ29tcG9uZW50Q29udGV4dCIsIlJvdXRlQ29udGV4dCIsInVzZVBhcmFtcyIsIlJvdXRlIiwiZGVmYXVsdFByb3BzIiwiZXhhY3QiLCJmYWxsYmFjayIsImluY2x1ZGVJblBhdGgiLCJwcm9wVHlwZXMiLCJjaGlsZHJlbiIsIm5vZGUiLCJjb21wb25lbnQiLCJzdHJpbmciLCJjb21wb25lbnRQYXRoIiwiYm9vbCIsImlzUmVxdWlyZWQiLCJvbk1hdGNoIiwiZnVuYyIsInBhdGgiLCJvbmVPZlR5cGUiLCJpbnN0YW5jZU9mIiwiUmVnRXhwIiwibWF0Y2giLCJuZXdQYXJhbXMiLCJwYXRoUGFydHMiLCJzZXR1cCIsInByb3BzIiwicGF0aHNNYXRjaGVkIiwic3dpdGNoR3JvdXAiLCJnaXZlblJvdXRlIiwicGF0aFNob3duIiwicyIsImRlYnVnIiwibG9nIiwicmVxdWlyZUNvbXBvbmVudCIsImN1cnJlbnRQYXJhbXMiLCJjdXJyZW50UGF0aCIsInJvdXRlUGFydHMiLCJzcGxpdCIsIm5ld1JvdXRlUGFydHMiLCJzbGljZSIsImxlbmd0aCIsImNvbmNhdCIsInVzZVN0YXRlcyIsIkNvbXBvbmVudCIsImNvbXBvbmVudE5vdEZvdW5kIiwibWF0Y2hlcyIsImxvYWRNYXRjaGVzIiwiaGFzU3dpdGNoTWF0Y2giLCJsb2FkQ29tcG9uZW50IiwicGF0aElkIiwicCIsInR0IiwicGFyYW1zIiwiY29tcG9uZW50UGF0aFBhcnRzIiwiSlNPTiIsInN0cmluZ2lmeSIsInBhdGhQYXJ0SW5kZXgiLCJwYXRoUGFydCIsInRyYW5zbGF0ZWRQYXRoUGFydCIsIkkxOG4iLCJ0IiwiZGVmYXVsdFZhbHVlIiwicm91dGVQYXJ0IiwiZGVjb2RlVVJJQ29tcG9uZW50Iiwic3RhcnRzV2l0aCIsInBhcmFtTmFtZSIsInB1c2giLCJtYXRjaElkIiwiT2JqZWN0IiwiYXNzaWduIiwic2V0SW5zdGFuY2UiLCJzZXRTdGF0ZSIsInNldFBhdGhNYXRjaGVkIiwiYWN0dWFsQ29tcG9uZW50UGF0aCIsImpvaW4iLCJjb21wb25lbnRJbXBvcnQiLCJyb3V0ZURlZmluaXRpb24iLCJkZWZhdWx0IiwiZXJyb3IiLCJjb25zb2xlIiwiY2FsbGJhY2tBcmdzIiwiYXJncyIsIkFycmF5IiwiaXNBcnJheSIsInJlbmRlciIsIlJlYWN0IiwiY3JlYXRlRWxlbWVudCIsIlByb3ZpZGVyIiwidmFsdWUiLCJuYW1lIiwic2luZ2xlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JvdXRlci9yb3V0ZS5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJhc2VDb21wb25lbnQgZnJvbSBcIi4uL2Jhc2UtY29tcG9uZW50XCJcbmltcG9ydCB7Y3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCwgdXNlTWVtb30gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBtZW1vIGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvbWVtb1wiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBwcm9wVHlwZXNFeGFjdCBmcm9tIFwicHJvcC10eXBlcy1leGFjdFwiXG5pbXBvcnQge3NoYXBlQ29tcG9uZW50fSBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvc3JjL3NoYXBlLWNvbXBvbmVudFwiXG5pbXBvcnQgU3dpdGNoLCB7Q3VycmVudFN3aXRjaENvbnRleHR9IGZyb20gXCIuL3N3aXRjaFwiXG5cbmNvbnN0IEN1cnJlbnRQYXRoQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQoW10pXG5jb25zdCBQYXJhbXNDb250ZXh0ID0gY3JlYXRlQ29udGV4dCh7fSlcbmNvbnN0IFJlcXVpcmVDb21wb25lbnRDb250ZXh0ID0gY3JlYXRlQ29udGV4dChudWxsKVxuY29uc3QgUm91dGVDb250ZXh0ID0gY3JlYXRlQ29udGV4dChudWxsKVxuY29uc3QgdXNlUGFyYW1zID0gKCkgPT4gdXNlQ29udGV4dChQYXJhbXNDb250ZXh0KVxuXG5jb25zdCBSb3V0ZSA9IG1lbW8oc2hhcGVDb21wb25lbnQoY2xhc3MgUm91dGUgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBleGFjdDogZmFsc2UsXG4gICAgZmFsbGJhY2s6IGZhbHNlLFxuICAgIGluY2x1ZGVJblBhdGg6IHRydWVcbiAgfVxuXG4gIHN0YXRpYyBwcm9wVHlwZXMgPSBwcm9wVHlwZXNFeGFjdCh7XG4gICAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLFxuICAgIGNvbXBvbmVudDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjb21wb25lbnRQYXRoOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGV4YWN0OiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICAgIGZhbGxiYWNrOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICAgIGluY2x1ZGVJblBhdGg6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgb25NYXRjaDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgcGF0aDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLnN0cmluZywgUHJvcFR5cGVzLmluc3RhbmNlT2YoUmVnRXhwKV0pXG4gIH0pXG5cbiAgbWF0Y2ggPSBudWxsXG4gIG5ld1BhcmFtcyA9IG51bGxcbiAgcGF0aFBhcnRzID0gbnVsbFxuXG4gIHNldHVwKCkge1xuICAgIGNvbnN0IHtwYXRofSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCB7cGF0aHNNYXRjaGVkLCBzd2l0Y2hHcm91cH0gPSB1c2VDb250ZXh0KEN1cnJlbnRTd2l0Y2hDb250ZXh0KVxuICAgIGNvbnN0IGdpdmVuUm91dGUgPSB1c2VDb250ZXh0KFJvdXRlQ29udGV4dClcbiAgICBjb25zdCB7cGF0aFNob3dufSA9IHN3aXRjaEdyb3VwLnNcblxuICAgIHRoaXMuZGVidWcgPSBmYWxzZVxuICAgIHRoaXMubG9nKCgpID0+ICh7Z2l2ZW5Sb3V0ZX0pKVxuXG4gICAgdGhpcy5yZXF1aXJlQ29tcG9uZW50ID0gdXNlQ29udGV4dChSZXF1aXJlQ29tcG9uZW50Q29udGV4dClcbiAgICB0aGlzLmN1cnJlbnRQYXJhbXMgPSB1c2VDb250ZXh0KFBhcmFtc0NvbnRleHQpXG4gICAgdGhpcy5jdXJyZW50UGF0aCA9IHVzZUNvbnRleHQoQ3VycmVudFBhdGhDb250ZXh0KVxuICAgIHRoaXMuc3dpdGNoR3JvdXAgPSBzd2l0Y2hHcm91cFxuICAgIHRoaXMucm91dGVQYXJ0cyA9IHVzZU1lbW8oKCkgPT4gZ2l2ZW5Sb3V0ZT8uc3BsaXQoXCIvXCIpLCBbcGF0aCwgZ2l2ZW5Sb3V0ZV0pXG4gICAgdGhpcy5wYXRoUGFydHMgPSB1c2VNZW1vKCgpID0+IHBhdGg/LnNwbGl0KFwiL1wiKSwgW3BhdGhdKVxuXG4gICAgdGhpcy5uZXdSb3V0ZVBhcnRzID0gdXNlTWVtbyhcbiAgICAgICgpID0+IHtcbiAgICAgICAgaWYgKCFwYXRoKSB7XG4gICAgICAgICAgaWYgKGdpdmVuUm91dGUgPT0gXCJcIikge1xuICAgICAgICAgICAgcmV0dXJuIFtdXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJvdXRlUGFydHNcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5yb3V0ZVBhcnRzLnNsaWNlKHRoaXMucGF0aFBhcnRzLmxlbmd0aCwgdGhpcy5yb3V0ZVBhcnRzLmxlbmd0aClcbiAgICAgIH0sXG4gICAgICBbZ2l2ZW5Sb3V0ZV0uY29uY2F0KHRoaXMucGF0aFBhcnRzKVxuICAgIClcblxuICAgIHRoaXMudXNlU3RhdGVzKHtDb21wb25lbnQ6IG51bGwsIGNvbXBvbmVudE5vdEZvdW5kOiBudWxsLCBtYXRjaGVzOiBmYWxzZX0pXG5cbiAgICB1c2VNZW1vKCgpID0+IHtcbiAgICAgIHRoaXMubG9hZE1hdGNoZXMoKVxuICAgIH0sIFtnaXZlblJvdXRlLCBwYXRoLCBwYXRoc01hdGNoZWRdKVxuXG4gICAgdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAodGhpcy5oYXNTd2l0Y2hNYXRjaCgpICYmICF0aGlzLnMuQ29tcG9uZW50ICYmIHRoaXMucy5tYXRjaGVzKSB7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLm9uTWF0Y2gpIHtcbiAgICAgICAgICB0aGlzLnByb3BzLm9uTWF0Y2goKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLnByb3BzLmNoaWxkcmVuICYmICh0aGlzLnByb3BzLnBhdGggfHwgdGhpcy5wcm9wcy5jb21wb25lbnQgfHwgdGhpcy5wcm9wcy5jb21wb25lbnRQYXRoKSkge1xuICAgICAgICAgIHRoaXMubG9hZENvbXBvbmVudCgpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCBbcGF0aCwgcGF0aFNob3duLCB0aGlzLnMubWF0Y2hlc10pXG4gIH1cblxuICBoYXNTd2l0Y2hNYXRjaCA9ICgpID0+IHRoaXMuc3dpdGNoR3JvdXAucy5wYXRoU2hvd24gJiYgdGhpcy5zd2l0Y2hHcm91cC5zLnBhdGhTaG93biA9PSB0aGlzLnBhdGhJZCgpXG5cbiAgcGF0aElkKCkge1xuICAgIGNvbnN0IHtmYWxsYmFja30gPSB0aGlzLnBcbiAgICBjb25zdCB7cGF0aH0gPSB0aGlzLnByb3BzXG4gICAgbGV0IHBhdGhJZFxuXG4gICAgaWYgKGZhbGxiYWNrKSB7XG4gICAgICBwYXRoSWQgPSBcIltGQUxMQkFDS11cIlxuICAgIH0gZWxzZSBpZiAoIXBhdGgpIHtcbiAgICAgIHBhdGhJZCA9IFwiW1BBVEgtRU1QVFldXCJcbiAgICB9IGVsc2Uge1xuICAgICAgcGF0aElkID0gcGF0aFxuICAgIH1cblxuICAgIHJldHVybiBwYXRoSWRcbiAgfVxuXG4gIGxvYWRNYXRjaGVzKCkge1xuICAgIGNvbnN0IHtuZXdSb3V0ZVBhcnRzfSA9IHRoaXMudHRcbiAgICBjb25zdCB7Y29tcG9uZW50LCBwYXRofSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCB7ZXhhY3QsIGluY2x1ZGVJblBhdGgsIGZhbGxiYWNrfSA9IHRoaXMucFxuXG4gICAgbGV0IG1hdGNoZXMgPSB0cnVlXG4gICAgY29uc3QgcGFyYW1zID0ge31cbiAgICBjb25zdCBjb21wb25lbnRQYXRoUGFydHMgPSBbLi4udGhpcy5jdXJyZW50UGF0aF1cblxuICAgIHRoaXMubG9nKCgpID0+IFt0aGlzLnByb3BzLnBhdGgsIFwiU3RhcnQgZ2VuZXJhdGluZyBjb21wb25lbnQgcGF0aHNcIiwgSlNPTi5zdHJpbmdpZnkoY29tcG9uZW50UGF0aFBhcnRzKV0pXG5cbiAgICBmb3IgKGNvbnN0IHBhdGhQYXJ0SW5kZXggaW4gdGhpcy5wYXRoUGFydHMpIHtcbiAgICAgIGNvbnN0IHBhdGhQYXJ0ID0gdGhpcy5wYXRoUGFydHNbcGF0aFBhcnRJbmRleF1cbiAgICAgIGNvbnN0IHRyYW5zbGF0ZWRQYXRoUGFydCA9IEkxOG4udChgcm91dGVzLiR7cGF0aFBhcnR9YCwge2RlZmF1bHRWYWx1ZTogcGF0aFBhcnR9KVxuXG4gICAgICBpZiAoIShwYXRoUGFydEluZGV4IGluIHRoaXMucm91dGVQYXJ0cykpIHtcbiAgICAgICAgdGhpcy5sb2coKCkgPT4gYE5vIG1hdGNoIGZvcjogJHtwYXRoUGFydEluZGV4fWApXG4gICAgICAgIG1hdGNoZXMgPSBmYWxzZVxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjb25zdCByb3V0ZVBhcnQgPSBkZWNvZGVVUklDb21wb25lbnQodGhpcy5yb3V0ZVBhcnRzW3BhdGhQYXJ0SW5kZXhdKVxuXG4gICAgICBpZiAocGF0aFBhcnQuc3RhcnRzV2l0aChcIjpcIikgJiYgcm91dGVQYXJ0KSB7XG4gICAgICAgIGNvbnN0IHBhcmFtTmFtZSA9IHBhdGhQYXJ0LnNsaWNlKDEsIHBhdGhQYXJ0Lmxlbmd0aClcblxuICAgICAgICBwYXJhbXNbcGFyYW1OYW1lXSA9IHJvdXRlUGFydFxuICAgICAgfSBlbHNlIGlmICh0cmFuc2xhdGVkUGF0aFBhcnQgIT0gcm91dGVQYXJ0KSB7XG4gICAgICAgIG1hdGNoZXMgPSBmYWxzZVxuICAgICAgICBicmVha1xuICAgICAgfSBlbHNlIGlmICghY29tcG9uZW50ICYmIGluY2x1ZGVJblBhdGgpIHtcbiAgICAgICAgY29tcG9uZW50UGF0aFBhcnRzLnB1c2gocGF0aFBhcnQpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGV4YWN0ICYmIG5ld1JvdXRlUGFydHMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5sb2coKCkgPT4gW1wiRXhhY3QgYW5kIG1vcmUgcm91dGUgcGFydHNcIiwge25ld1JvdXRlUGFydHMsIHBhdGhQYXJ0czogdGhpcy5wYXRoUGFydHMsIHJvdXRlUGFydHM6IHRoaXMucm91dGVQYXJ0c31dKVxuICAgICAgbWF0Y2hlcyA9IGZhbHNlXG4gICAgfSBlbHNlIGlmIChtYXRjaGVzICYmIHBhdGgpIHtcbiAgICAgIG1hdGNoZXMgPSB0cnVlXG4gICAgfSBlbHNlIGlmICh0aGlzLnJvdXRlUGFydHMubGVuZ3RoID09IDApIHtcbiAgICAgIG1hdGNoZXMgPSB0cnVlXG4gICAgfVxuXG4gICAgY29uc3QgbWF0Y2hJZCA9IHRoaXMucGF0aElkKClcblxuICAgIGlmICghbWF0Y2hlcyAmJiBmYWxsYmFjaykge1xuICAgICAgbWF0Y2hlcyA9IHRydWVcbiAgICB9XG5cbiAgICB0aGlzLmxvZygoKSA9PiBbdGhpcy5wcm9wcy5wYXRoLCBcIkVuZCBnZW5lcmF0aW5nIGNvbXBvbmVudCBwYXRoc1wiLCBKU09OLnN0cmluZ2lmeShjb21wb25lbnRQYXRoUGFydHMpLCB7bWF0Y2hlc31dKVxuXG4gICAgaWYgKG1hdGNoZXMpIHtcbiAgICAgIGlmIChjb21wb25lbnQgJiYgaW5jbHVkZUluUGF0aCkge1xuICAgICAgICBjb21wb25lbnRQYXRoUGFydHMucHVzaChjb21wb25lbnQpXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG5ld1BhcmFtcyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuY3VycmVudFBhcmFtcywgcGFyYW1zKVxuXG4gICAgICB0aGlzLnNldEluc3RhbmNlKHtjb21wb25lbnRQYXRoUGFydHMsIG1hdGNoOiB7cGFyYW1zfSwgbmV3UGFyYW1zfSlcbiAgICAgIHRoaXMuc2V0U3RhdGUoe21hdGNoZXN9KVxuICAgICAgdGhpcy5zd2l0Y2hHcm91cD8uc2V0UGF0aE1hdGNoZWQobWF0Y2hJZCwgdHJ1ZSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXRJbnN0YW5jZSh7Y29tcG9uZW50UGF0aFBhcnRzOiBudWxsLCBtYXRjaDogbnVsbCwgbmV3UGFyYW1zOiBudWxsfSlcbiAgICAgIHRoaXMuc2V0U3RhdGUoe21hdGNoZXN9KVxuICAgICAgdGhpcy5zd2l0Y2hHcm91cD8uc2V0UGF0aE1hdGNoZWQobWF0Y2hJZCwgZmFsc2UpXG4gICAgfVxuICB9XG5cbiAgYXN5bmMgbG9hZENvbXBvbmVudCgpIHtcbiAgICBjb25zdCBhY3R1YWxDb21wb25lbnRQYXRoID0gdGhpcy5wcm9wcy5jb21wb25lbnRQYXRoIHx8IHRoaXMudHQuY29tcG9uZW50UGF0aFBhcnRzLmpvaW4oXCIvXCIpXG4gICAgbGV0IENvbXBvbmVudFxuXG4gICAgdGhpcy5sb2coKCkgPT4gW1wibG9hZENvbXBvbmVudFwiLCB7Y29tcG9uZW50UGF0aDogdGhpcy5wcm9wcy5jb21wb25lbnRQYXRoLCBjb21wb25lbnRQYXRoUGFydHM6IHRoaXMuY29tcG9uZW50UGF0aFBhcnRzLCBhY3R1YWxDb21wb25lbnRQYXRofV0pXG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgY29tcG9uZW50SW1wb3J0ID0gYXdhaXQgdGhpcy50dC5yZXF1aXJlQ29tcG9uZW50KHtyb3V0ZURlZmluaXRpb246IHtjb21wb25lbnQ6IGFjdHVhbENvbXBvbmVudFBhdGh9fSlcblxuICAgICAgQ29tcG9uZW50ID0gY29tcG9uZW50SW1wb3J0LmRlZmF1bHRcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihgQ291bGRuJ3QgZmluZCBjb21wb25lbnQ6ICR7YWN0dWFsQ29tcG9uZW50UGF0aH1gKVxuXG4gICAgICB0aHJvdyBlcnJvclxuICAgIH1cblxuICAgIHRoaXMuc2V0U3RhdGUoe0NvbXBvbmVudCwgY29tcG9uZW50Tm90Rm91bmQ6ICFDb21wb25lbnR9KVxuICB9XG5cbiAgbG9nKGNhbGxiYWNrQXJncykge1xuICAgIGlmICh0aGlzLmRlYnVnKSB7XG4gICAgICBsZXQgYXJncyA9IGNhbGxiYWNrQXJncygpXG5cbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShhcmdzKSkgYXJncyA9IFthcmdzXVxuXG4gICAgICBjb25zb2xlLmxvZyguLi5hcmdzKVxuICAgIH1cbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7Y29tcG9uZW50UGF0aFBhcnRzLCBtYXRjaCwgbmV3UGFyYW1zLCBuZXdSb3V0ZVBhcnRzfSA9IHRoaXMudHRcbiAgICBjb25zdCB7Y2hpbGRyZW4sIGNvbXBvbmVudCwgcGF0aH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3Qge0NvbXBvbmVudCwgY29tcG9uZW50Tm90Rm91bmQsIG1hdGNoZXN9ID0gdGhpcy5zXG5cbiAgICBpZiAoIW1hdGNoZXMgfHwgIXRoaXMuaGFzU3dpdGNoTWF0Y2goKSkge1xuICAgICAgLy8gUm91dGUgaXNuJ3QgbWF0Y2hpbmcgYW5kIHNob3VsZG4ndCBiZSByZW5kZXJlZCBhdCBhbGwuXG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cblxuICAgIGlmICghQ29tcG9uZW50ICYmICFjaGlsZHJlbiAmJiAhY29tcG9uZW50Tm90Rm91bmQpIHtcbiAgICAgIC8vIFJvdXRlIGlzIG1hdGNoaW5nIGJ1dCBoYXNuJ3QgYmVlbiBsb2FkZWQgeWV0LlxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPGRpdj5cbiAgICAgICAgICBMb2FkaW5nIHtjb21wb25lbnQgfHwgdGhpcy5wcm9wcy5jb21wb25lbnRQYXRoIHx8IGNvbXBvbmVudFBhdGhQYXJ0cy5qb2luKFwiL1wiKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICApXG4gICAgfVxuXG4gICAgaWYgKCFDb21wb25lbnQgJiYgIWNoaWxkcmVuICYmIGNvbXBvbmVudE5vdEZvdW5kKSB7XG4gICAgICAvLyBEb24ndCByZW5kZXIgYW55dGhpbmcgaWYgdGhlIGNvbXBvbmVudCBjb3VsZG4ndCBiZSBmb3VuZC5cbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxDdXJyZW50UGF0aENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2NvbXBvbmVudFBhdGhQYXJ0c30+XG4gICAgICAgIDxSb3V0ZUNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e25ld1JvdXRlUGFydHMuam9pbihcIi9cIil9PlxuICAgICAgICAgIDxQYXJhbXNDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtuZXdQYXJhbXN9PlxuICAgICAgICAgICAgPFN3aXRjaCBuYW1lPXtgcm91dGUtZ3JvdXAtJHtwYXRofWB9IHNpbmdsZT17ZmFsc2V9PlxuICAgICAgICAgICAgICB7Q29tcG9uZW50ICYmIDxDb21wb25lbnQgbWF0Y2g9e21hdGNofSAvPn1cbiAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgPC9Td2l0Y2g+XG4gICAgICAgICAgPC9QYXJhbXNDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgICA8L1JvdXRlQ29udGV4dC5Qcm92aWRlcj5cbiAgICAgIDwvQ3VycmVudFBhdGhDb250ZXh0LlByb3ZpZGVyPlxuICAgIClcbiAgfVxufSkpXG5cbmV4cG9ydCB7UmVxdWlyZUNvbXBvbmVudENvbnRleHQsIFJvdXRlQ29udGV4dCwgU3dpdGNoLCB1c2VQYXJhbXN9XG5leHBvcnQgZGVmYXVsdCBSb3V0ZVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxhQUFhLE1BQU0sbUJBQW1CO0FBQzdDLFNB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
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import BaseComponent from "../base-component";
|
|
2
|
+
import { createContext } from "react";
|
|
3
|
+
import memo from "set-state-compare/src/memo";
|
|
4
|
+
import PropTypes from "prop-types";
|
|
5
|
+
import propTypesExact from "prop-types-exact";
|
|
6
|
+
import { shapeComponent } from "set-state-compare/src/shape-component";
|
|
7
|
+
const CurrentSwitchContext = /*#__PURE__*/createContext([]);
|
|
8
|
+
const Switch = memo(shapeComponent(class Switch extends BaseComponent {
|
|
9
|
+
static defaultProps = {
|
|
10
|
+
name: "[no name]",
|
|
11
|
+
single: true
|
|
12
|
+
};
|
|
13
|
+
static propTypes = propTypesExact({
|
|
14
|
+
children: PropTypes.node,
|
|
15
|
+
name: PropTypes.string,
|
|
16
|
+
single: PropTypes.bool
|
|
17
|
+
});
|
|
18
|
+
pathsMatchedKeys = [];
|
|
19
|
+
setup() {
|
|
20
|
+
this.useStates({
|
|
21
|
+
lastUpdate: new Date(),
|
|
22
|
+
pathShown: undefined,
|
|
23
|
+
pathsMatched: {}
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
render() {
|
|
27
|
+
const {
|
|
28
|
+
pathShown,
|
|
29
|
+
pathsMatched
|
|
30
|
+
} = this.s;
|
|
31
|
+
return /*#__PURE__*/React.createElement(CurrentSwitchContext.Provider, {
|
|
32
|
+
value: {
|
|
33
|
+
pathShown,
|
|
34
|
+
pathsMatched,
|
|
35
|
+
switchGroup: this
|
|
36
|
+
}
|
|
37
|
+
}, this.props.children);
|
|
38
|
+
}
|
|
39
|
+
pathShown(pathsMatched) {
|
|
40
|
+
for (const pathMatched of this.tt.pathsMatchedKeys) {
|
|
41
|
+
const isPathMatched = pathsMatched[pathMatched];
|
|
42
|
+
if (isPathMatched) {
|
|
43
|
+
return pathMatched;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
setPathMatched(path, matched) {
|
|
48
|
+
const {
|
|
49
|
+
pathsMatchedKeys
|
|
50
|
+
} = this.tt;
|
|
51
|
+
const {
|
|
52
|
+
pathsMatched
|
|
53
|
+
} = this.s;
|
|
54
|
+
if (!path) throw new Error("No 'path' given");
|
|
55
|
+
if (pathsMatched[path] == matched) return;
|
|
56
|
+
if (!pathsMatchedKeys.includes(path)) {
|
|
57
|
+
pathsMatchedKeys.push(path);
|
|
58
|
+
}
|
|
59
|
+
const newPathsMatched = {
|
|
60
|
+
...this.s.pathsMatched
|
|
61
|
+
};
|
|
62
|
+
newPathsMatched[path] = matched;
|
|
63
|
+
this.setState({
|
|
64
|
+
lastUpdate: Math.random() + new Date().getTime(),
|
|
65
|
+
pathShown: this.pathShown(newPathsMatched),
|
|
66
|
+
pathsMatched: newPathsMatched
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
}));
|
|
70
|
+
export { CurrentSwitchContext };
|
|
71
|
+
export default Switch;
|
|
72
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlQ29tcG9uZW50IiwiY3JlYXRlQ29udGV4dCIsIm1lbW8iLCJQcm9wVHlwZXMiLCJwcm9wVHlwZXNFeGFjdCIsInNoYXBlQ29tcG9uZW50IiwiQ3VycmVudFN3aXRjaENvbnRleHQiLCJTd2l0Y2giLCJkZWZhdWx0UHJvcHMiLCJuYW1lIiwic2luZ2xlIiwicHJvcFR5cGVzIiwiY2hpbGRyZW4iLCJub2RlIiwic3RyaW5nIiwiYm9vbCIsInBhdGhzTWF0Y2hlZEtleXMiLCJzZXR1cCIsInVzZVN0YXRlcyIsImxhc3RVcGRhdGUiLCJEYXRlIiwicGF0aFNob3duIiwidW5kZWZpbmVkIiwicGF0aHNNYXRjaGVkIiwicmVuZGVyIiwicyIsIlJlYWN0IiwiY3JlYXRlRWxlbWVudCIsIlByb3ZpZGVyIiwidmFsdWUiLCJzd2l0Y2hHcm91cCIsInByb3BzIiwicGF0aE1hdGNoZWQiLCJ0dCIsImlzUGF0aE1hdGNoZWQiLCJzZXRQYXRoTWF0Y2hlZCIsInBhdGgiLCJtYXRjaGVkIiwiRXJyb3IiLCJpbmNsdWRlcyIsInB1c2giLCJuZXdQYXRoc01hdGNoZWQiLCJzZXRTdGF0ZSIsIk1hdGgiLCJyYW5kb20iLCJnZXRUaW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JvdXRlci9zd2l0Y2guanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCYXNlQ29tcG9uZW50IGZyb20gXCIuLi9iYXNlLWNvbXBvbmVudFwiXG5pbXBvcnQge2NyZWF0ZUNvbnRleHR9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgbWVtbyBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvc3JjL21lbW9cIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgcHJvcFR5cGVzRXhhY3QgZnJvbSBcInByb3AtdHlwZXMtZXhhY3RcIlxuaW1wb3J0IHtzaGFwZUNvbXBvbmVudH0gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL3NyYy9zaGFwZS1jb21wb25lbnRcIlxuXG5jb25zdCBDdXJyZW50U3dpdGNoQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQoW10pXG5cbmNvbnN0IFN3aXRjaCA9IG1lbW8oc2hhcGVDb21wb25lbnQoY2xhc3MgU3dpdGNoIGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgbmFtZTogXCJbbm8gbmFtZV1cIixcbiAgICBzaW5nbGU6IHRydWVcbiAgfVxuXG4gIHN0YXRpYyBwcm9wVHlwZXMgPSBwcm9wVHlwZXNFeGFjdCh7XG4gICAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLFxuICAgIG5hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgc2luZ2xlOiBQcm9wVHlwZXMuYm9vbFxuICB9KVxuXG4gIHBhdGhzTWF0Y2hlZEtleXMgPSBbXVxuXG4gIHNldHVwKCkge1xuICAgIHRoaXMudXNlU3RhdGVzKHtcbiAgICAgIGxhc3RVcGRhdGU6IG5ldyBEYXRlKCksXG4gICAgICBwYXRoU2hvd246IHVuZGVmaW5lZCxcbiAgICAgIHBhdGhzTWF0Y2hlZDoge31cbiAgICB9KVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtwYXRoU2hvd24sIHBhdGhzTWF0Y2hlZH0gPSB0aGlzLnNcblxuICAgIHJldHVybiAoXG4gICAgICA8Q3VycmVudFN3aXRjaENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3twYXRoU2hvd24sIHBhdGhzTWF0Y2hlZCwgc3dpdGNoR3JvdXA6IHRoaXN9fT5cbiAgICAgICAge3RoaXMucHJvcHMuY2hpbGRyZW59XG4gICAgICA8L0N1cnJlbnRTd2l0Y2hDb250ZXh0LlByb3ZpZGVyPlxuICAgIClcbiAgfVxuXG4gIHBhdGhTaG93bihwYXRoc01hdGNoZWQpIHtcbiAgICBmb3IgKGNvbnN0IHBhdGhNYXRjaGVkIG9mIHRoaXMudHQucGF0aHNNYXRjaGVkS2V5cykge1xuICAgICAgY29uc3QgaXNQYXRoTWF0Y2hlZCA9IHBhdGhzTWF0Y2hlZFtwYXRoTWF0Y2hlZF1cblxuICAgICAgaWYgKGlzUGF0aE1hdGNoZWQpIHtcbiAgICAgICAgcmV0dXJuIHBhdGhNYXRjaGVkXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc2V0UGF0aE1hdGNoZWQocGF0aCwgbWF0Y2hlZCkge1xuICAgIGNvbnN0IHtwYXRoc01hdGNoZWRLZXlzfSA9IHRoaXMudHRcbiAgICBjb25zdCB7cGF0aHNNYXRjaGVkfSA9IHRoaXMuc1xuXG4gICAgaWYgKCFwYXRoKSB0aHJvdyBuZXcgRXJyb3IoXCJObyAncGF0aCcgZ2l2ZW5cIilcbiAgICBpZiAocGF0aHNNYXRjaGVkW3BhdGhdID09IG1hdGNoZWQpIHJldHVyblxuXG4gICAgaWYgKCFwYXRoc01hdGNoZWRLZXlzLmluY2x1ZGVzKHBhdGgpKSB7XG4gICAgICBwYXRoc01hdGNoZWRLZXlzLnB1c2gocGF0aClcbiAgICB9XG5cbiAgICBjb25zdCBuZXdQYXRoc01hdGNoZWQgPSB7Li4udGhpcy5zLnBhdGhzTWF0Y2hlZH1cblxuICAgIG5ld1BhdGhzTWF0Y2hlZFtwYXRoXSA9IG1hdGNoZWRcblxuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgbGFzdFVwZGF0ZTogTWF0aC5yYW5kb20oKSArIG5ldyBEYXRlKCkuZ2V0VGltZSgpLFxuICAgICAgcGF0aFNob3duOiB0aGlzLnBhdGhTaG93bihuZXdQYXRoc01hdGNoZWQpLFxuICAgICAgcGF0aHNNYXRjaGVkOiBuZXdQYXRoc01hdGNoZWRcbiAgICB9KVxuICB9XG59KSlcblxuZXhwb3J0IHtDdXJyZW50U3dpdGNoQ29udGV4dH1cbmV4cG9ydCBkZWZhdWx0IFN3aXRjaFxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxhQUFhLE1BQU0sbUJBQW1CO0FBQzdDLFNBQVFDLGFBQWEsUUFBTyxPQUFPO0FBQ25DLE9BQU9DLElBQUksTUFBTSw0QkFBNEI7QUFDN0MsT0FBT0MsU0FBUyxNQUFNLFlBQVk7QUFDbEMsT0FBT0MsY0FBYyxNQUFNLGtCQUFrQjtBQUM3QyxTQUFRQyxjQUFjLFFBQU8sdUNBQXVDO0FB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
|
package/build/router.js
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import BaseComponent from "./base-component";
|
|
2
|
+
import PropTypes from "prop-types";
|
|
3
|
+
import propTypesExact from "prop-types-exact";
|
|
4
|
+
import React, { memo } from "react";
|
|
5
|
+
import { shapeComponent } from "set-state-compare/src/shape-component";
|
|
6
|
+
import { Suspense } from "react";
|
|
7
|
+
import useRouter from "./use-router";
|
|
8
|
+
export default /*#__PURE__*/memo(shapeComponent(class ApiMakerRouter extends BaseComponent {
|
|
9
|
+
static propTypes = propTypesExact({
|
|
10
|
+
history: PropTypes.object,
|
|
11
|
+
notFoundComponent: PropTypes.elementType,
|
|
12
|
+
path: PropTypes.string,
|
|
13
|
+
requireComponent: PropTypes.func.isRequired,
|
|
14
|
+
routeDefinitions: PropTypes.object,
|
|
15
|
+
routes: PropTypes.object
|
|
16
|
+
});
|
|
17
|
+
render() {
|
|
18
|
+
const {
|
|
19
|
+
notFoundComponent,
|
|
20
|
+
path,
|
|
21
|
+
requireComponent,
|
|
22
|
+
routeDefinitions,
|
|
23
|
+
routes
|
|
24
|
+
} = this.props;
|
|
25
|
+
const {
|
|
26
|
+
match
|
|
27
|
+
} = useRouter({
|
|
28
|
+
path,
|
|
29
|
+
routes,
|
|
30
|
+
routeDefinitions
|
|
31
|
+
});
|
|
32
|
+
const {
|
|
33
|
+
matchingRoute
|
|
34
|
+
} = match;
|
|
35
|
+
if (!matchingRoute) {
|
|
36
|
+
if (notFoundComponent) {
|
|
37
|
+
const NotFoundComponent = notFoundComponent;
|
|
38
|
+
return /*#__PURE__*/React.createElement(Suspense, {
|
|
39
|
+
fallback: /*#__PURE__*/React.createElement("div", null)
|
|
40
|
+
}, /*#__PURE__*/React.createElement(NotFoundComponent, {
|
|
41
|
+
match: match
|
|
42
|
+
}));
|
|
43
|
+
} else {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
const Component = requireComponent({
|
|
48
|
+
routeDefinition: matchingRoute.parsedRouteDefinition.routeDefinition
|
|
49
|
+
});
|
|
50
|
+
return /*#__PURE__*/React.createElement(Suspense, {
|
|
51
|
+
fallback: /*#__PURE__*/React.createElement("div", null)
|
|
52
|
+
}, /*#__PURE__*/React.createElement(Component, {
|
|
53
|
+
match: match
|
|
54
|
+
}));
|
|
55
|
+
}
|
|
56
|
+
}));
|
|
57
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlQ29tcG9uZW50IiwiUHJvcFR5cGVzIiwicHJvcFR5cGVzRXhhY3QiLCJSZWFjdCIsIm1lbW8iLCJzaGFwZUNvbXBvbmVudCIsIlN1c3BlbnNlIiwidXNlUm91dGVyIiwiQXBpTWFrZXJSb3V0ZXIiLCJwcm9wVHlwZXMiLCJoaXN0b3J5Iiwib2JqZWN0Iiwibm90Rm91bmRDb21wb25lbnQiLCJlbGVtZW50VHlwZSIsInBhdGgiLCJzdHJpbmciLCJyZXF1aXJlQ29tcG9uZW50IiwiZnVuYyIsImlzUmVxdWlyZWQiLCJyb3V0ZURlZmluaXRpb25zIiwicm91dGVzIiwicmVuZGVyIiwicHJvcHMiLCJtYXRjaCIsIm1hdGNoaW5nUm91dGUiLCJOb3RGb3VuZENvbXBvbmVudCIsImNyZWF0ZUVsZW1lbnQiLCJmYWxsYmFjayIsIkNvbXBvbmVudCIsInJvdXRlRGVmaW5pdGlvbiIsInBhcnNlZFJvdXRlRGVmaW5pdGlvbiJdLCJzb3VyY2VzIjpbIi4uL3NyYy9yb3V0ZXIuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCYXNlQ29tcG9uZW50IGZyb20gXCIuL2Jhc2UtY29tcG9uZW50XCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IHByb3BUeXBlc0V4YWN0IGZyb20gXCJwcm9wLXR5cGVzLWV4YWN0XCJcbmltcG9ydCBSZWFjdCwge21lbW99IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQge3NoYXBlQ29tcG9uZW50fSBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvc3JjL3NoYXBlLWNvbXBvbmVudFwiXG5pbXBvcnQge1N1c3BlbnNlfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHVzZVJvdXRlciBmcm9tIFwiLi91c2Utcm91dGVyXCJcblxuZXhwb3J0IGRlZmF1bHQgbWVtbyhzaGFwZUNvbXBvbmVudChjbGFzcyBBcGlNYWtlclJvdXRlciBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0gcHJvcFR5cGVzRXhhY3Qoe1xuICAgIGhpc3Rvcnk6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbm90Rm91bmRDb21wb25lbnQ6IFByb3BUeXBlcy5lbGVtZW50VHlwZSxcbiAgICBwYXRoOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIHJlcXVpcmVDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgcm91dGVEZWZpbml0aW9uczogUHJvcFR5cGVzLm9iamVjdCxcbiAgICByb3V0ZXM6IFByb3BUeXBlcy5vYmplY3RcbiAgfSlcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge25vdEZvdW5kQ29tcG9uZW50LCBwYXRoLCByZXF1aXJlQ29tcG9uZW50LCByb3V0ZURlZmluaXRpb25zLCByb3V0ZXN9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IHttYXRjaH0gPSB1c2VSb3V0ZXIoe3BhdGgsIHJvdXRlcywgcm91dGVEZWZpbml0aW9uc30pXG4gICAgY29uc3Qge21hdGNoaW5nUm91dGV9ID0gbWF0Y2hcblxuICAgIGlmICghbWF0Y2hpbmdSb3V0ZSkge1xuICAgICAgaWYgKG5vdEZvdW5kQ29tcG9uZW50KSB7XG4gICAgICAgIGNvbnN0IE5vdEZvdW5kQ29tcG9uZW50ID0gbm90Rm91bmRDb21wb25lbnRcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxTdXNwZW5zZSBmYWxsYmFjaz17PGRpdiAvPn0+XG4gICAgICAgICAgICA8Tm90Rm91bmRDb21wb25lbnQgbWF0Y2g9e21hdGNofSAvPlxuICAgICAgICAgIDwvU3VzcGVuc2U+XG4gICAgICAgIClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgQ29tcG9uZW50ID0gcmVxdWlyZUNvbXBvbmVudCh7cm91dGVEZWZpbml0aW9uOiBtYXRjaGluZ1JvdXRlLnBhcnNlZFJvdXRlRGVmaW5pdGlvbi5yb3V0ZURlZmluaXRpb259KVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTdXNwZW5zZSBmYWxsYmFjaz17PGRpdiAvPn0+XG4gICAgICAgIDxDb21wb25lbnQgbWF0Y2g9e21hdGNofSAvPlxuICAgICAgPC9TdXNwZW5zZT5cbiAgICApXG4gIH1cbn0pKVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxhQUFhLE1BQU0sa0JBQWtCO0FBQzVDLE9BQU9DLFNBQVMsTUFBTSxZQUFZO0FBQ2xDLE9BQU9DLGNBQWMsTUFBTSxrQkFBa0I7QUFDN0MsT0FBT0MsS0FBSyxJQUFHQyxJQUFJLFFBQU8sT0FBTztBQUNqQyxTQUFRQyxjQUFjLFFBQU8sdUNBQXVDO0FBQ3BFLFNBQVFDLFFBQVEsUUFBTyxPQUFPO0FBQzlCLE9BQU9DLFNBQVMsTUFBTSxjQUFjO0FBRXBDLDRCQUFlSCxJQUFJLENBQUNDLGNBQWMsQ0FBQyxNQUFNRyxjQUFjLFNBQVNSLGFBQWEsQ0FBQztFQUM1RSxPQUFPUyxTQUFTLEdBQUdQLGNBQWMsQ0FBQztJQUNoQ1EsT0FBTyxFQUFFVCxTQUFTLENBQUNVLE1BQU07SUFDekJDLGlCQUFpQixFQUFFWCxTQUFTLENBQUNZLFdBQVc7SUFDeENDLElBQUksRUFBRWIsU0FBUyxDQUFDYyxNQUFNO0lBQ3RCQyxnQkFBZ0IsRUFBRWYsU0FBUyxDQUFDZ0IsSUFBSSxDQUFDQyxVQUFVO0lBQzNDQyxnQkFBZ0IsRUFBRWxCLFNBQVMsQ0FBQ1UsTUFBTTtJQUNsQ1MsTUFBTSxFQUFFbkIsU0FBUyxDQUFDVTtFQUNwQixDQUFDLENBQUM7RUFFRlUsTUFBTUEsQ0FBQSxFQUFHO0lBQ1AsTUFBTTtNQUFDVCxpQkFBaUI7TUFBRUUsSUFBSTtNQUFFRSxnQkFBZ0I7TUFBRUcsZ0JBQWdCO01BQUVDO0lBQU0sQ0FBQyxHQUFHLElBQUksQ0FBQ0UsS0FBSztJQUN4RixNQUFNO01BQUNDO0lBQUssQ0FBQyxHQUFHaEIsU0FBUyxDQUFDO01BQUNPLElBQUk7TUFBRU0sTUFBTTtNQUFFRDtJQUFnQixDQUFDLENBQUM7SUFDM0QsTUFBTTtNQUFDSztJQUFhLENBQUMsR0FBR0QsS0FBSztJQUU3QixJQUFJLENBQUNDLGFBQWEsRUFBRTtNQUNsQixJQUFJWixpQkFBaUIsRUFBRTtRQUNyQixNQUFNYSxpQkFBaUIsR0FBR2IsaUJBQWlCO1FBRTNDLG9CQUNFVCxLQUFBLENBQUF1QixhQUFBLENBQUNwQixRQUFRO1VBQUNxQixRQUFRLGVBQUV4QixLQUFBLENBQUF1QixhQUFBLFlBQU07UUFBRSxnQkFDMUJ2QixLQUFBLENBQUF1QixhQUFBLENBQUNELGlCQUFpQjtVQUFDRixLQUFLLEVBQUVBO1FBQU0sQ0FBRSxDQUMxQixDQUFDO01BRWYsQ0FBQyxNQUFNO1FBQ0wsT0FBTyxJQUFJO01BQ2I7SUFDRjtJQUVBLE1BQU1LLFNBQVMsR0FBR1osZ0JBQWdCLENBQUM7TUFBQ2EsZUFBZSxFQUFFTCxhQUFhLENBQUNNLHFCQUFxQixDQUFDRDtJQUFlLENBQUMsQ0FBQztJQUUxRyxvQkFDRTFCLEtBQUEsQ0FBQXVCLGFBQUEsQ0FBQ3BCLFFBQVE7TUFBQ3FCLFFBQVEsZUFBRXhCLEtBQUEsQ0FBQXVCLGFBQUEsWUFBTTtJQUFFLGdCQUMxQnZCLEtBQUEsQ0FBQXVCLGFBQUEsQ0FBQ0UsU0FBUztNQUFDTCxLQUFLLEVBQUVBO0lBQU0sQ0FBRSxDQUNsQixDQUFDO0VBRWY7QUFDRixDQUFDLENBQUMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|