@kaspernj/api-maker 1.0.446 → 1.0.448
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{.eslintrc.cjs → .eslintrc.js} +4 -0
- package/README.md +35 -0
- package/android/build.gradle +43 -0
- package/android/src/main/AndroidManifest.xml +2 -0
- package/android/src/main/java/expo/modules/api_maker/ApiMakerModule.kt +50 -0
- package/android/src/main/java/expo/modules/api_maker/ApiMakerView.kt +30 -0
- package/build/api.js +120 -0
- package/build/attribute-not-loaded-error.js +2 -0
- package/build/base-component.js +5 -0
- package/build/base-error.js +33 -0
- package/build/base-model/attribute.js +25 -0
- package/build/base-model/column.js +11 -0
- package/build/base-model/reflection.js +14 -0
- package/build/base-model/scope.js +11 -0
- package/build/base-model.js +828 -0
- package/build/bootstrap/attribute-row/index.js +105 -0
- package/build/bootstrap/attribute-rows.js +31 -0
- package/build/bootstrap/card.js +138 -0
- package/build/bootstrap/checkbox.js +97 -0
- package/build/bootstrap/checkboxes.js +183 -0
- package/build/bootstrap/index.js +2 -0
- package/build/bootstrap/input.js +128 -0
- package/build/bootstrap/invalid-feedback.js +27 -0
- package/build/bootstrap/paginate.js +150 -0
- package/build/bootstrap/radio-buttons.js +72 -0
- package/build/bootstrap/select.js +88 -0
- package/build/bootstrap/sort-link.js +130 -0
- package/build/cable-connection-pool.js +128 -0
- package/build/cable-subscription-pool.js +207 -0
- package/build/cable-subscription.js +21 -0
- package/build/cache-key-generator.js +81 -0
- package/build/can-can.js +134 -0
- package/build/channels-consumer.js +3 -0
- package/build/collection-loader.js +48 -0
- package/build/collection.js +279 -0
- package/build/command-submit-data.js +81 -0
- package/build/commands-pool.js +195 -0
- package/build/compose.js +9 -0
- package/build/config.js +53 -0
- package/build/custom-error.js +5 -0
- package/build/data-set-to-attributes.js +10 -0
- package/build/deserializer.js +56 -0
- package/build/destroy-error.js +5 -0
- package/build/devise.js +109 -0
- package/build/draggable-sort/controller.js +136 -0
- package/build/draggable-sort/index.js +114 -0
- package/build/draggable-sort/item.js +188 -0
- package/build/error-logger.js +101 -0
- package/build/error-messages.js +13 -0
- package/build/event-connection.js +32 -0
- package/build/event-model-class.js +24 -0
- package/build/events.js +5 -0
- package/build/form.js +83 -0
- package/build/index.js +3 -0
- package/build/inputs/attachment.js +121 -0
- package/build/inputs/auto-submit.js +36 -0
- package/build/inputs/checkbox.js +145 -0
- package/build/inputs/checkboxes.js +111 -0
- package/build/inputs/id-for-component.js +15 -0
- package/build/inputs/input-wrapper.js +18 -0
- package/build/inputs/input.js +230 -0
- package/build/inputs/money.js +179 -0
- package/build/inputs/name-for-component.js +13 -0
- package/build/inputs/select.js +92 -0
- package/build/instance-of-class-name.js +23 -0
- package/build/key-value-store.js +53 -0
- package/build/link.js +68 -0
- package/build/logger.js +30 -0
- package/build/modal.js +37 -0
- package/build/model-class-require.js +13 -0
- package/build/model-events.js +30 -0
- package/build/model-name.js +28 -0
- package/build/model-prop-type.js +101 -0
- package/build/model-recipes-loader.js +32 -0
- package/build/model-recipes-model-loader.js +357 -0
- package/build/models-response-reader.js +40 -0
- package/build/models.js +8 -0
- package/build/money-formatter.js +77 -0
- package/build/not-loaded-error.js +2 -0
- package/build/params.js +60 -0
- package/build/preloaded.js +38 -0
- package/build/resize-observer.js +11 -0
- package/build/result.js +13 -0
- package/build/router/route.js +262 -0
- package/build/router/switch.js +72 -0
- package/build/router.js +57 -0
- package/build/routes-native.js +202 -0
- package/build/routes.js +50 -0
- package/build/run-last.js +35 -0
- package/build/serializer.js +63 -0
- package/build/services.js +20 -0
- package/build/session-status-updater.js +126 -0
- package/build/source-maps-loader.js +171 -0
- package/build/super-admin/config-reader.js +84 -0
- package/build/super-admin/edit-page/edit-attribute-checkbox.js +85 -0
- package/build/super-admin/edit-page/edit-attribute-content.js +54 -0
- package/build/super-admin/edit-page/edit-attribute-input.js +79 -0
- package/build/super-admin/edit-page/edit-attribute.js +76 -0
- package/build/super-admin/edit-page.js +120 -0
- package/build/super-admin/has-edit-config.js +12 -0
- package/build/super-admin/index-page.js +24 -0
- package/build/super-admin/index.js +180 -0
- package/build/super-admin/layout/header/index.js +151 -0
- package/build/super-admin/layout/index.js +109 -0
- package/build/super-admin/layout/menu/index.js +93 -0
- package/build/super-admin/layout/menu/menu-content.js +40 -0
- package/build/super-admin/layout/menu/menu-item.js +83 -0
- package/build/super-admin/layout/no-access.js +25 -0
- package/build/super-admin/model-class-table.js +61 -0
- package/build/super-admin/models.js +8 -0
- package/build/super-admin/show-nav.js +49 -0
- package/build/super-admin/show-page/belongs-to-attribute-row.js +28 -0
- package/build/super-admin/show-page/index.js +141 -0
- package/build/super-admin/show-reflection-actions.js +47 -0
- package/build/super-admin/show-reflection-link.js +46 -0
- package/build/super-admin/show-reflection-page.js +47 -0
- package/build/table/column-content.js +112 -0
- package/build/table/column-identifier.js +18 -0
- package/build/table/column-visible.js +7 -0
- package/build/table/components/column.js +20 -0
- package/build/table/components/flat-list.js +20 -0
- package/build/table/components/header.js +25 -0
- package/build/table/components/row.js +25 -0
- package/build/table/filters/attribute-element.js +43 -0
- package/build/table/filters/filter-form.js +392 -0
- package/build/table/filters/filter.js +89 -0
- package/build/table/filters/index.js +182 -0
- package/build/table/filters/load-search-modal.js +174 -0
- package/build/table/filters/reflection-element.js +36 -0
- package/build/table/filters/save-search-modal.js +86 -0
- package/build/table/filters/scope-element.js +41 -0
- package/build/table/header-column-content.js +67 -0
- package/build/table/header-column.js +144 -0
- package/build/table/header-select.js +104 -0
- package/build/table/model-callback-args.js +10 -0
- package/build/table/model-column.js +87 -0
- package/build/table/model-row.js +179 -0
- package/build/table/select-calculator.js +63 -0
- package/build/table/settings/column-row.js +97 -0
- package/build/table/settings/download-action.js +78 -0
- package/build/table/settings/index.js +92 -0
- package/build/table/table-settings.js +219 -0
- package/build/table/table.js +972 -0
- package/build/table/use-sorting.js +34 -0
- package/build/table/widths.js +75 -0
- package/build/table/worker-plugins-check-all-checkbox.js +125 -0
- package/build/table/worker-plugins-checkbox.js +115 -0
- package/build/translated-attributes.js +10 -0
- package/build/translated-collections.js +11 -0
- package/build/updated-attribute.js +76 -0
- package/build/url-encode.js +15 -0
- package/build/use-breakpoint.js +44 -0
- package/build/use-can-can.js +55 -0
- package/build/use-collection.js +225 -0
- package/build/use-created-event.js +52 -0
- package/build/use-current-user.js +73 -0
- package/build/use-destroyed-event.js +60 -0
- package/build/use-event-emitter.js +13 -0
- package/build/use-event-listener.js +16 -0
- package/build/use-input.js +140 -0
- package/build/use-model-event.js +60 -0
- package/build/use-model.js +169 -0
- package/build/use-resize-observer.js +23 -0
- package/build/use-router.js +102 -0
- package/build/use-screen-layout.js +39 -0
- package/build/use-updated-event.js +60 -0
- package/build/use-validation-errors.js +30 -0
- package/build/utils/card.js +51 -0
- package/build/utils/checkbox.js +48 -0
- package/build/utils/default-style.js +18 -0
- package/build/utils/modal.js +61 -0
- package/build/utils/text.js +18 -0
- package/build/validation-error.js +28 -0
- package/build/validation-errors.js +98 -0
- package/build/with-collection.js +13 -0
- package/build/with-current-user.js +9 -0
- package/build/with-model.js +14 -0
- package/build/with-router.js +21 -0
- package/expo-module.config.json +17 -0
- package/ios/ApiMaker.podspec +29 -0
- package/ios/ApiMakerModule.swift +48 -0
- package/ios/ApiMakerView.swift +38 -0
- package/package.json +35 -16
- package/src/{api.mjs → api.js} +5 -5
- package/src/{base-error.mjs → base-error.js} +1 -1
- package/src/base-model/{attribute.mjs → attribute.js} +1 -1
- package/src/base-model/{reflection.mjs → reflection.js} +1 -1
- package/src/{base-model.mjs → base-model.js} +14 -14
- package/src/bootstrap/attribute-row/index.jsx +2 -2
- package/src/bootstrap/attribute-rows.jsx +1 -1
- package/src/bootstrap/card.jsx +1 -1
- package/src/bootstrap/checkbox.jsx +1 -1
- package/src/bootstrap/checkboxes.jsx +1 -1
- package/src/bootstrap/input.jsx +1 -1
- package/src/bootstrap/paginate.jsx +2 -2
- package/src/bootstrap/sort-link.jsx +3 -3
- package/src/{cable-connection-pool.mjs → cable-connection-pool.js} +3 -3
- package/src/{cable-subscription-pool.mjs → cable-subscription-pool.js} +4 -4
- package/src/{cable-subscription.mjs → cable-subscription.js} +1 -1
- package/src/{can-can.mjs → can-can.js} +1 -1
- package/src/collection-loader.jsx +2 -2
- package/src/{collection.mjs → collection.js} +3 -3
- package/src/{commands-pool.mjs → commands-pool.js} +11 -11
- package/src/{custom-error.mjs → custom-error.js} +1 -1
- package/src/{deserializer.mjs → deserializer.js} +2 -2
- package/src/{destroy-error.mjs → destroy-error.js} +1 -1
- package/src/{devise.mjs → devise.js} +5 -9
- package/src/draggable-sort/index.jsx +3 -3
- package/src/draggable-sort/item.jsx +2 -2
- package/src/{error-logger.mjs → error-logger.js} +1 -1
- package/src/event-connection.jsx +1 -1
- package/src/event-model-class.jsx +1 -1
- package/src/form.jsx +1 -1
- package/src/index.js +3 -0
- package/src/inputs/attachment.jsx +2 -2
- package/src/inputs/checkbox.jsx +7 -6
- package/src/inputs/checkboxes.jsx +1 -1
- package/src/inputs/input-wrapper.jsx +1 -1
- package/src/inputs/input.jsx +8 -7
- package/src/inputs/money.jsx +3 -3
- package/src/inputs/select.jsx +1 -1
- package/src/{key-value-store.mjs → key-value-store.js} +1 -1
- package/src/link.jsx +2 -2
- package/src/modal.jsx +1 -1
- package/src/{model-class-require.mjs → model-class-require.js} +4 -2
- package/src/{model-events.mjs → model-events.js} +1 -1
- package/src/{model-name.mjs → model-name.js} +1 -1
- package/src/{model-recipes-loader.mjs → model-recipes-loader.js} +1 -1
- package/src/{model-recipes-model-loader.mjs → model-recipes-model-loader.js} +2 -2
- package/src/{models-response-reader.mjs → models-response-reader.js} +2 -2
- package/src/models.js +7 -0
- package/src/{models.mjs.erb → models.js.erb} +1 -1
- package/src/{params.mjs → params.js} +2 -2
- package/src/{preloaded.mjs → preloaded.js} +1 -1
- package/src/resize-observer.jsx +1 -1
- package/src/router/route.jsx +1 -1
- package/src/router/switch.jsx +1 -1
- package/src/router.jsx +1 -1
- package/src/{routes-native.mjs → routes-native.js} +1 -1
- package/src/{services.mjs → services.js} +1 -1
- package/src/{session-status-updater.mjs → session-status-updater.js} +3 -3
- package/src/{source-maps-loader.mjs → source-maps-loader.js} +1 -1
- package/src/super-admin/edit-page/edit-attribute-checkbox.jsx +1 -1
- package/src/super-admin/edit-page/edit-attribute-content.jsx +1 -1
- package/src/super-admin/edit-page/edit-attribute-input.jsx +1 -1
- package/src/super-admin/edit-page/edit-attribute.jsx +1 -1
- package/src/super-admin/edit-page.jsx +2 -2
- package/src/super-admin/has-edit-config.js +1 -1
- package/src/super-admin/index-page.jsx +1 -1
- package/src/super-admin/index.jsx +7 -7
- package/src/super-admin/layout/header/index.jsx +2 -2
- package/src/super-admin/layout/index.jsx +3 -3
- package/src/super-admin/layout/menu/index.jsx +3 -3
- package/src/super-admin/layout/menu/menu-content.jsx +2 -2
- package/src/super-admin/layout/menu/{menu-item/index.jsx → menu-item.jsx} +5 -6
- package/src/super-admin/layout/no-access.jsx +2 -2
- package/src/super-admin/model-class-table.jsx +3 -3
- package/src/super-admin/models.js +1 -1
- package/src/super-admin/show-nav.jsx +2 -2
- package/src/super-admin/show-page/belongs-to-attribute-row.jsx +1 -1
- package/src/super-admin/show-page/index.jsx +2 -2
- package/src/super-admin/show-reflection-actions.jsx +1 -1
- package/src/super-admin/show-reflection-link.jsx +1 -1
- package/src/super-admin/show-reflection-page.jsx +1 -1
- package/src/table/column-content.jsx +1 -1
- package/src/table/filters/filter-form.jsx +1 -1
- package/src/table/filters/index.jsx +5 -3
- package/src/table/filters/load-search-modal.jsx +6 -4
- package/src/table/filters/save-search-modal.jsx +4 -4
- package/src/table/header-select.jsx +1 -1
- package/src/table/model-column.jsx +1 -1
- package/src/table/model-row.jsx +2 -2
- package/src/table/{select-calculator.mjs → select-calculator.js} +1 -1
- package/src/table/settings/column-row.jsx +2 -2
- package/src/table/settings/download-action.jsx +3 -3
- package/src/table/settings/index.jsx +3 -3
- package/src/table/table-settings.js +5 -4
- package/src/table/table.jsx +8 -8
- package/src/table/{use-sorting.mjs → use-sorting.js} +1 -1
- package/src/table/worker-plugins-check-all-checkbox.jsx +2 -2
- package/src/table/worker-plugins-checkbox.jsx +2 -2
- package/src/{translated-collections.mjs → translated-collections.js} +1 -1
- package/src/updated-attribute.jsx +1 -1
- package/src/{use-breakpoint.mjs → use-breakpoint.js} +2 -2
- package/src/use-can-can.js +55 -0
- package/src/{use-collection.mjs → use-collection.js} +4 -4
- package/src/{use-created-event.mjs → use-created-event.js} +2 -2
- package/src/{use-current-user.mjs → use-current-user.js} +6 -5
- package/src/{use-destroyed-event.mjs → use-destroyed-event.js} +2 -2
- package/src/{use-input.mjs → use-input.js} +5 -5
- package/src/use-model-event.js +2 -2
- package/src/{use-model.mjs → use-model.js} +4 -4
- package/src/{use-resize-observer.mjs → use-resize-observer.js} +1 -1
- package/src/use-router.jsx +2 -2
- package/src/{use-updated-event.mjs → use-updated-event.js} +2 -2
- package/src/{use-validation-errors.mjs → use-validation-errors.js} +3 -3
- package/src/utils/checkbox.jsx +2 -2
- package/src/{validation-error.mjs → validation-error.js} +1 -1
- package/src/{validation-errors.mjs → validation-errors.js} +1 -1
- package/src/with-current-user.jsx +1 -1
- package/src/with-model.jsx +1 -1
- package/__tests__/base-model.test.mjs +0 -71
- package/__tests__/cable-connection-pool.test.mjs +0 -227
- package/__tests__/cable-subscription-pool.test.mjs +0 -27
- package/__tests__/can-can.test.mjs +0 -34
- package/__tests__/collection.test.mjs +0 -51
- package/__tests__/custom-error.test.mjs +0 -13
- package/__tests__/model-name.test.mjs +0 -34
- package/__tests__/model-prop-type.test.mjs +0 -113
- package/__tests__/params.test.mjs +0 -40
- package/__tests__/routes-native.test.mjs +0 -104
- package/__tests__/routes.test.mjs +0 -47
- package/__tests__/serializer.test.mjs +0 -30
- package/__tests__/support/task.mjs +0 -27
- package/__tests__/support/user.mjs +0 -32
- package/index.js +0 -1
- package/jest.config.js +0 -9
- package/src/event-created.jsx +0 -12
- package/src/event-destroyed.jsx +0 -25
- package/src/event-emitter-listener.jsx +0 -10
- package/src/event-listener.jsx +0 -25
- package/src/event-updated.jsx +0 -27
- package/src/super-admin/layout/menu/menu-item/style.scss +0 -10
- package/src/use-can-can.mjs +0 -48
- package/src/with-can-can.jsx +0 -12
- package/webpack.config.js +0 -15
- /package/src/{attribute-not-loaded-error.mjs → attribute-not-loaded-error.js} +0 -0
- /package/src/base-model/{column.mjs → column.js} +0 -0
- /package/src/base-model/{scope.mjs → scope.js} +0 -0
- /package/src/{cache-key-generator.mjs → cache-key-generator.js} +0 -0
- /package/src/{channels-consumer.mjs → channels-consumer.js} +0 -0
- /package/src/{command-submit-data.mjs → command-submit-data.js} +0 -0
- /package/src/{config.mjs → config.js} +0 -0
- /package/src/{data-set-to-attributes.mjs → data-set-to-attributes.js} +0 -0
- /package/src/draggable-sort/{controller.mjs → controller.js} +0 -0
- /package/src/{error-messages.mjs → error-messages.js} +0 -0
- /package/src/{events.mjs → events.js} +0 -0
- /package/src/inputs/{auto-submit.mjs → auto-submit.js} +0 -0
- /package/src/inputs/{id-for-component.mjs → id-for-component.js} +0 -0
- /package/src/inputs/{name-for-component.mjs → name-for-component.js} +0 -0
- /package/src/{instance-of-class-name.mjs → instance-of-class-name.js} +0 -0
- /package/src/{logger.mjs → logger.js} +0 -0
- /package/src/{model-prop-type.mjs → model-prop-type.js} +0 -0
- /package/src/{money-formatter.mjs → money-formatter.js} +0 -0
- /package/src/{not-loaded-error.mjs → not-loaded-error.js} +0 -0
- /package/src/{result.mjs → result.js} +0 -0
- /package/src/{routes.mjs → routes.js} +0 -0
- /package/src/{run-last.mjs → run-last.js} +0 -0
- /package/src/{serializer.mjs → serializer.js} +0 -0
- /package/src/table/{column-identifier.mjs → column-identifier.js} +0 -0
- /package/src/table/{column-visible.mjs → column-visible.js} +0 -0
- /package/src/table/{model-callback-args.mjs → model-callback-args.js} +0 -0
- /package/src/{translated-collections-data.mjs.erb → translated-collections-data.js.erb} +0 -0
- /package/src/{url-encode.mjs → url-encode.js} +0 -0
- /package/src/{use-event-emitter.mjs → use-event-emitter.js} +0 -0
- /package/src/{use-event-listener.mjs → use-event-listener.js} +0 -0
- /package/src/{use-screen-layout.mjs → use-screen-layout.js} +0 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { camelize } from "inflection";
|
|
2
|
+
import useQueryParams from "on-location-changed/src/use-query-params";
|
|
3
|
+
const calculateQParams = (defaultParams, queryParams, searchKey) => {
|
|
4
|
+
if (searchKey in queryParams) {
|
|
5
|
+
return JSON.parse(queryParams[searchKey]);
|
|
6
|
+
} else if (defaultParams) {
|
|
7
|
+
return {
|
|
8
|
+
...defaultParams
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
return {};
|
|
12
|
+
};
|
|
13
|
+
const useSorting = ({
|
|
14
|
+
defaultParams,
|
|
15
|
+
query
|
|
16
|
+
}) => {
|
|
17
|
+
const queryParams = useQueryParams();
|
|
18
|
+
const searchKey = query.queryArgs.searchKey || "q";
|
|
19
|
+
const qParams = calculateQParams(defaultParams, queryParams, searchKey);
|
|
20
|
+
let matchSortParam;
|
|
21
|
+
if (typeof qParams.s == "string") {
|
|
22
|
+
matchSortParam = qParams.s?.match(/^(.+?)( asc| desc|)$/);
|
|
23
|
+
}
|
|
24
|
+
const sortAttribute = matchSortParam ? camelize(matchSortParam[1], true) : null;
|
|
25
|
+
const sortMode = matchSortParam ? matchSortParam[2].trim() : null;
|
|
26
|
+
return {
|
|
27
|
+
qParams,
|
|
28
|
+
searchKey,
|
|
29
|
+
sortAttribute,
|
|
30
|
+
sortMode
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
export default useSorting;
|
|
34
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjYW1lbGl6ZSIsInVzZVF1ZXJ5UGFyYW1zIiwiY2FsY3VsYXRlUVBhcmFtcyIsImRlZmF1bHRQYXJhbXMiLCJxdWVyeVBhcmFtcyIsInNlYXJjaEtleSIsIkpTT04iLCJwYXJzZSIsInVzZVNvcnRpbmciLCJxdWVyeSIsInF1ZXJ5QXJncyIsInFQYXJhbXMiLCJtYXRjaFNvcnRQYXJhbSIsInMiLCJtYXRjaCIsInNvcnRBdHRyaWJ1dGUiLCJzb3J0TW9kZSIsInRyaW0iXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdGFibGUvdXNlLXNvcnRpbmcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtjYW1lbGl6ZX0gZnJvbSBcImluZmxlY3Rpb25cIlxuaW1wb3J0IHVzZVF1ZXJ5UGFyYW1zIGZyb20gXCJvbi1sb2NhdGlvbi1jaGFuZ2VkL3NyYy91c2UtcXVlcnktcGFyYW1zXCJcblxuY29uc3QgY2FsY3VsYXRlUVBhcmFtcyA9IChkZWZhdWx0UGFyYW1zLCBxdWVyeVBhcmFtcywgc2VhcmNoS2V5KSA9PiB7XG4gIGlmIChzZWFyY2hLZXkgaW4gcXVlcnlQYXJhbXMpIHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShxdWVyeVBhcmFtc1tzZWFyY2hLZXldKVxuICB9IGVsc2UgaWYgKGRlZmF1bHRQYXJhbXMpIHtcbiAgICByZXR1cm4gey4uLmRlZmF1bHRQYXJhbXN9XG4gIH1cblxuICByZXR1cm4ge31cbn1cblxuY29uc3QgdXNlU29ydGluZyA9ICh7ZGVmYXVsdFBhcmFtcywgcXVlcnl9KSA9PiB7XG4gIGNvbnN0IHF1ZXJ5UGFyYW1zID0gdXNlUXVlcnlQYXJhbXMoKVxuICBjb25zdCBzZWFyY2hLZXkgPSBxdWVyeS5xdWVyeUFyZ3Muc2VhcmNoS2V5IHx8IFwicVwiXG4gIGNvbnN0IHFQYXJhbXMgPSBjYWxjdWxhdGVRUGFyYW1zKGRlZmF1bHRQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBzZWFyY2hLZXkpXG4gIGxldCBtYXRjaFNvcnRQYXJhbVxuXG4gIGlmICh0eXBlb2YgcVBhcmFtcy5zID09IFwic3RyaW5nXCIpIHtcbiAgICBtYXRjaFNvcnRQYXJhbSA9IHFQYXJhbXMucz8ubWF0Y2goL14oLis/KSggYXNjfCBkZXNjfCkkLylcbiAgfVxuXG4gIGNvbnN0IHNvcnRBdHRyaWJ1dGUgPSBtYXRjaFNvcnRQYXJhbSA/IGNhbWVsaXplKG1hdGNoU29ydFBhcmFtWzFdLCB0cnVlKSA6IG51bGxcbiAgY29uc3Qgc29ydE1vZGUgPSBtYXRjaFNvcnRQYXJhbSA/IG1hdGNoU29ydFBhcmFtWzJdLnRyaW0oKSA6IG51bGxcblxuICByZXR1cm4ge1xuICAgIHFQYXJhbXMsXG4gICAgc2VhcmNoS2V5LFxuICAgIHNvcnRBdHRyaWJ1dGUsXG4gICAgc29ydE1vZGVcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCB1c2VTb3J0aW5nXG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVFBLFFBQVEsUUFBTyxZQUFZO0FBQ25DLE9BQU9DLGNBQWMsTUFBTSwwQ0FBMEM7QUFFckUsTUFBTUMsZ0JBQWdCLEdBQUdBLENBQUNDLGFBQWEsRUFBRUMsV0FBVyxFQUFFQyxTQUFTLEtBQUs7RUFDbEUsSUFBSUEsU0FBUyxJQUFJRCxXQUFXLEVBQUU7SUFDNUIsT0FBT0UsSUFBSSxDQUFDQyxLQUFLLENBQUNILFdBQVcsQ0FBQ0MsU0FBUyxDQUFDLENBQUM7RUFDM0MsQ0FBQyxNQUFNLElBQUlGLGFBQWEsRUFBRTtJQUN4QixPQUFPO01BQUMsR0FBR0E7SUFBYSxDQUFDO0VBQzNCO0VBRUEsT0FBTyxDQUFDLENBQUM7QUFDWCxDQUFDO0FBRUQsTUFBTUssVUFBVSxHQUFHQSxDQUFDO0VBQUNMLGFBQWE7RUFBRU07QUFBSyxDQUFDLEtBQUs7RUFDN0MsTUFBTUwsV0FBVyxHQUFHSCxjQUFjLENBQUMsQ0FBQztFQUNwQyxNQUFNSSxTQUFTLEdBQUdJLEtBQUssQ0FBQ0MsU0FBUyxDQUFDTCxTQUFTLElBQUksR0FBRztFQUNsRCxNQUFNTSxPQUFPLEdBQUdULGdCQUFnQixDQUFDQyxhQUFhLEVBQUVDLFdBQVcsRUFBRUMsU0FBUyxDQUFDO0VBQ3ZFLElBQUlPLGNBQWM7RUFFbEIsSUFBSSxPQUFPRCxPQUFPLENBQUNFLENBQUMsSUFBSSxRQUFRLEVBQUU7SUFDaENELGNBQWMsR0FBR0QsT0FBTyxDQUFDRSxDQUFDLEVBQUVDLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQztFQUMzRDtFQUVBLE1BQU1DLGFBQWEsR0FBR0gsY0FBYyxHQUFHWixRQUFRLENBQUNZLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxJQUFJO0VBQy9FLE1BQU1JLFFBQVEsR0FBR0osY0FBYyxHQUFHQSxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUNLLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSTtFQUVqRSxPQUFPO0lBQ0xOLE9BQU87SUFDUE4sU0FBUztJQUNUVSxhQUFhO0lBQ2JDO0VBQ0YsQ0FBQztBQUNILENBQUM7QUFFRCxlQUFlUixVQUFVIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { Animated, Easing } from "react-native";
|
|
2
|
+
import { digg } from "diggerize";
|
|
3
|
+
export default class TableWidths {
|
|
4
|
+
constructor({
|
|
5
|
+
columns,
|
|
6
|
+
table,
|
|
7
|
+
width
|
|
8
|
+
}) {
|
|
9
|
+
this.columns = columns;
|
|
10
|
+
this.tableWidth = width;
|
|
11
|
+
this.table = table;
|
|
12
|
+
this.setWidths();
|
|
13
|
+
}
|
|
14
|
+
setWidths() {
|
|
15
|
+
this.columnsWidths = {};
|
|
16
|
+
let widthLeft = this.tableWidth;
|
|
17
|
+
const updateData = [];
|
|
18
|
+
|
|
19
|
+
// Set widths that are defined
|
|
20
|
+
for (const columnIndex in this.columns) {
|
|
21
|
+
const column = this.columns[columnIndex];
|
|
22
|
+
const tableSettingColumn = column.tableSettingColumn;
|
|
23
|
+
if (column.animatedPosition) throw new Error("Column already had an animated position");
|
|
24
|
+
column.animatedPosition = new Animated.ValueXY();
|
|
25
|
+
column.animatedZIndex = new Animated.Value(0);
|
|
26
|
+
if (tableSettingColumn.hasWidth()) {
|
|
27
|
+
if (column.animatedWidth) throw new Error("Column already had an animated width");
|
|
28
|
+
column.animatedWidth = new Animated.Value(tableSettingColumn.width());
|
|
29
|
+
column.width = tableSettingColumn.width();
|
|
30
|
+
widthLeft -= tableSettingColumn.width();
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// Calculate how many columns are shown
|
|
35
|
+
const columnsWithoutWidth = this.columns.filter(column => !column.tableSettingColumn.hasWidth());
|
|
36
|
+
let amountOfColumns = columnsWithoutWidth.length;
|
|
37
|
+
amountOfColumns++; // Actions column
|
|
38
|
+
|
|
39
|
+
if (this.table.p.workplace) amountOfColumns++;
|
|
40
|
+
|
|
41
|
+
// Set widths of columns without
|
|
42
|
+
for (const columnIndex in this.columns) {
|
|
43
|
+
const column = this.columns[columnIndex];
|
|
44
|
+
const tableSettingColumn = column.tableSettingColumn;
|
|
45
|
+
if (!tableSettingColumn.hasWidth()) {
|
|
46
|
+
let newWidth = widthLeft / amountOfColumns;
|
|
47
|
+
if (newWidth < 200) newWidth = 200;
|
|
48
|
+
column.animatedWidth = new Animated.Value(newWidth);
|
|
49
|
+
column.width = newWidth;
|
|
50
|
+
updateData << {
|
|
51
|
+
id: tableSettingColumn.id(),
|
|
52
|
+
width: newWidth
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
if (updateData.length > 0) {
|
|
57
|
+
// FIXME: Should update the columns on the backend if anything changed
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
getWidthOfColumn(identifier) {
|
|
61
|
+
const column = this.columns.find(column => column.tableSettingColumn.identifier() == identifier);
|
|
62
|
+
if (!column) throw new Error(`No such column: ${identifier}`);
|
|
63
|
+
return digg(column, "width");
|
|
64
|
+
}
|
|
65
|
+
setWidthOfColumn({
|
|
66
|
+
identifier,
|
|
67
|
+
width
|
|
68
|
+
}) {
|
|
69
|
+
const column = this.columns.find(column => column.tableSettingColumn.identifier() == identifier);
|
|
70
|
+
if (!column) throw new Error(`No such column: ${identifier}`);
|
|
71
|
+
column.width = width;
|
|
72
|
+
column.animatedWidth.setValue(width);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBbmltYXRlZCIsIkVhc2luZyIsImRpZ2ciLCJUYWJsZVdpZHRocyIsImNvbnN0cnVjdG9yIiwiY29sdW1ucyIsInRhYmxlIiwid2lkdGgiLCJ0YWJsZVdpZHRoIiwic2V0V2lkdGhzIiwiY29sdW1uc1dpZHRocyIsIndpZHRoTGVmdCIsInVwZGF0ZURhdGEiLCJjb2x1bW5JbmRleCIsImNvbHVtbiIsInRhYmxlU2V0dGluZ0NvbHVtbiIsImFuaW1hdGVkUG9zaXRpb24iLCJFcnJvciIsIlZhbHVlWFkiLCJhbmltYXRlZFpJbmRleCIsIlZhbHVlIiwiaGFzV2lkdGgiLCJhbmltYXRlZFdpZHRoIiwiY29sdW1uc1dpdGhvdXRXaWR0aCIsImZpbHRlciIsImFtb3VudE9mQ29sdW1ucyIsImxlbmd0aCIsInAiLCJ3b3JrcGxhY2UiLCJuZXdXaWR0aCIsImlkIiwiZ2V0V2lkdGhPZkNvbHVtbiIsImlkZW50aWZpZXIiLCJmaW5kIiwic2V0V2lkdGhPZkNvbHVtbiIsInNldFZhbHVlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RhYmxlL3dpZHRocy5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBbmltYXRlZCwgRWFzaW5nfSBmcm9tIFwicmVhY3QtbmF0aXZlXCJcbmltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRhYmxlV2lkdGhzIHtcbiAgY29uc3RydWN0b3Ioe2NvbHVtbnMsIHRhYmxlLCB3aWR0aH0pIHtcbiAgICB0aGlzLmNvbHVtbnMgPSBjb2x1bW5zXG4gICAgdGhpcy50YWJsZVdpZHRoID0gd2lkdGhcbiAgICB0aGlzLnRhYmxlID0gdGFibGVcbiAgICB0aGlzLnNldFdpZHRocygpXG4gIH1cblxuICBzZXRXaWR0aHMoKSB7XG4gICAgdGhpcy5jb2x1bW5zV2lkdGhzID0ge31cblxuICAgIGxldCB3aWR0aExlZnQgPSB0aGlzLnRhYmxlV2lkdGhcbiAgICBjb25zdCB1cGRhdGVEYXRhID0gW11cblxuICAgIC8vIFNldCB3aWR0aHMgdGhhdCBhcmUgZGVmaW5lZFxuICAgIGZvciAoY29uc3QgY29sdW1uSW5kZXggaW4gdGhpcy5jb2x1bW5zKSB7XG4gICAgICBjb25zdCBjb2x1bW4gPSB0aGlzLmNvbHVtbnNbY29sdW1uSW5kZXhdXG4gICAgICBjb25zdCB0YWJsZVNldHRpbmdDb2x1bW4gPSBjb2x1bW4udGFibGVTZXR0aW5nQ29sdW1uXG5cbiAgICAgIGlmIChjb2x1bW4uYW5pbWF0ZWRQb3NpdGlvbikgdGhyb3cgbmV3IEVycm9yKFwiQ29sdW1uIGFscmVhZHkgaGFkIGFuIGFuaW1hdGVkIHBvc2l0aW9uXCIpXG5cbiAgICAgIGNvbHVtbi5hbmltYXRlZFBvc2l0aW9uID0gbmV3IEFuaW1hdGVkLlZhbHVlWFkoKVxuICAgICAgY29sdW1uLmFuaW1hdGVkWkluZGV4ID0gbmV3IEFuaW1hdGVkLlZhbHVlKDApXG5cbiAgICAgIGlmICh0YWJsZVNldHRpbmdDb2x1bW4uaGFzV2lkdGgoKSkge1xuICAgICAgICBpZiAoY29sdW1uLmFuaW1hdGVkV2lkdGgpIHRocm93IG5ldyBFcnJvcihcIkNvbHVtbiBhbHJlYWR5IGhhZCBhbiBhbmltYXRlZCB3aWR0aFwiKVxuXG4gICAgICAgIGNvbHVtbi5hbmltYXRlZFdpZHRoID0gbmV3IEFuaW1hdGVkLlZhbHVlKHRhYmxlU2V0dGluZ0NvbHVtbi53aWR0aCgpKVxuICAgICAgICBjb2x1bW4ud2lkdGggPSB0YWJsZVNldHRpbmdDb2x1bW4ud2lkdGgoKVxuXG4gICAgICAgIHdpZHRoTGVmdCAtPSB0YWJsZVNldHRpbmdDb2x1bW4ud2lkdGgoKVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIENhbGN1bGF0ZSBob3cgbWFueSBjb2x1bW5zIGFyZSBzaG93blxuICAgIGNvbnN0IGNvbHVtbnNXaXRob3V0V2lkdGggPSB0aGlzLmNvbHVtbnMuZmlsdGVyKChjb2x1bW4pID0+ICFjb2x1bW4udGFibGVTZXR0aW5nQ29sdW1uLmhhc1dpZHRoKCkpXG4gICAgbGV0IGFtb3VudE9mQ29sdW1ucyA9IGNvbHVtbnNXaXRob3V0V2lkdGgubGVuZ3RoXG5cbiAgICBhbW91bnRPZkNvbHVtbnMrKyAvLyBBY3Rpb25zIGNvbHVtblxuXG4gICAgaWYgKHRoaXMudGFibGUucC53b3JrcGxhY2UpIGFtb3VudE9mQ29sdW1ucysrXG5cbiAgICAvLyBTZXQgd2lkdGhzIG9mIGNvbHVtbnMgd2l0aG91dFxuICAgIGZvciAoY29uc3QgY29sdW1uSW5kZXggaW4gdGhpcy5jb2x1bW5zKSB7XG4gICAgICBjb25zdCBjb2x1bW4gPSB0aGlzLmNvbHVtbnNbY29sdW1uSW5kZXhdXG4gICAgICBjb25zdCB0YWJsZVNldHRpbmdDb2x1bW4gPSBjb2x1bW4udGFibGVTZXR0aW5nQ29sdW1uXG5cbiAgICAgIGlmICghdGFibGVTZXR0aW5nQ29sdW1uLmhhc1dpZHRoKCkpIHtcbiAgICAgICAgbGV0IG5ld1dpZHRoID0gd2lkdGhMZWZ0IC8gYW1vdW50T2ZDb2x1bW5zXG5cbiAgICAgICAgaWYgKG5ld1dpZHRoIDwgMjAwKSBuZXdXaWR0aCA9IDIwMFxuXG4gICAgICAgIGNvbHVtbi5hbmltYXRlZFdpZHRoID0gbmV3IEFuaW1hdGVkLlZhbHVlKG5ld1dpZHRoKVxuICAgICAgICBjb2x1bW4ud2lkdGggPSBuZXdXaWR0aFxuXG4gICAgICAgIHVwZGF0ZURhdGEgPDwge1xuICAgICAgICAgIGlkOiB0YWJsZVNldHRpbmdDb2x1bW4uaWQoKSxcbiAgICAgICAgICB3aWR0aDogbmV3V2lkdGhcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh1cGRhdGVEYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgIC8vIEZJWE1FOiBTaG91bGQgdXBkYXRlIHRoZSBjb2x1bW5zIG9uIHRoZSBiYWNrZW5kIGlmIGFueXRoaW5nIGNoYW5nZWRcbiAgICB9XG4gIH1cblxuICBnZXRXaWR0aE9mQ29sdW1uKGlkZW50aWZpZXIpIHtcbiAgICBjb25zdCBjb2x1bW4gPSB0aGlzLmNvbHVtbnMuZmluZCgoY29sdW1uKSA9PiBjb2x1bW4udGFibGVTZXR0aW5nQ29sdW1uLmlkZW50aWZpZXIoKSA9PSBpZGVudGlmaWVyKVxuXG4gICAgaWYgKCFjb2x1bW4pIHRocm93IG5ldyBFcnJvcihgTm8gc3VjaCBjb2x1bW46ICR7aWRlbnRpZmllcn1gKVxuXG4gICAgcmV0dXJuIGRpZ2coY29sdW1uLCBcIndpZHRoXCIpXG4gIH1cblxuICBzZXRXaWR0aE9mQ29sdW1uKHtpZGVudGlmaWVyLCB3aWR0aH0pIHtcbiAgICBjb25zdCBjb2x1bW4gPSB0aGlzLmNvbHVtbnMuZmluZCgoY29sdW1uKSA9PiBjb2x1bW4udGFibGVTZXR0aW5nQ29sdW1uLmlkZW50aWZpZXIoKSA9PSBpZGVudGlmaWVyKVxuXG4gICAgaWYgKCFjb2x1bW4pIHRocm93IG5ldyBFcnJvcihgTm8gc3VjaCBjb2x1bW46ICR7aWRlbnRpZmllcn1gKVxuXG4gICAgY29sdW1uLndpZHRoID0gd2lkdGhcbiAgICBjb2x1bW4uYW5pbWF0ZWRXaWR0aC5zZXRWYWx1ZSh3aWR0aClcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFRQSxRQUFRLEVBQUVDLE1BQU0sUUFBTyxjQUFjO0FBQzdDLFNBQVFDLElBQUksUUFBTyxXQUFXO0FBRTlCLGVBQWUsTUFBTUMsV0FBVyxDQUFDO0VBQy9CQyxXQUFXQSxDQUFDO0lBQUNDLE9BQU87SUFBRUMsS0FBSztJQUFFQztFQUFLLENBQUMsRUFBRTtJQUNuQyxJQUFJLENBQUNGLE9BQU8sR0FBR0EsT0FBTztJQUN0QixJQUFJLENBQUNHLFVBQVUsR0FBR0QsS0FBSztJQUN2QixJQUFJLENBQUNELEtBQUssR0FBR0EsS0FBSztJQUNsQixJQUFJLENBQUNHLFNBQVMsQ0FBQyxDQUFDO0VBQ2xCO0VBRUFBLFNBQVNBLENBQUEsRUFBRztJQUNWLElBQUksQ0FBQ0MsYUFBYSxHQUFHLENBQUMsQ0FBQztJQUV2QixJQUFJQyxTQUFTLEdBQUcsSUFBSSxDQUFDSCxVQUFVO0lBQy9CLE1BQU1JLFVBQVUsR0FB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
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
|
+
import { useEffect, useMemo, useRef } from "react";
|
|
3
|
+
import BaseComponent from "../base-component";
|
|
4
|
+
import classNames from "classnames";
|
|
5
|
+
import Collection from "../collection";
|
|
6
|
+
import memo from "set-state-compare/src/memo";
|
|
7
|
+
import PropTypes from "prop-types";
|
|
8
|
+
import propTypesExact from "prop-types-exact";
|
|
9
|
+
import { shapeComponent } from "set-state-compare/src/shape-component";
|
|
10
|
+
import { simpleObjectDifferent } from "set-state-compare/src/diff-utils";
|
|
11
|
+
import useModelEvent from "../use-model-event";
|
|
12
|
+
const Checkbox = memo(shapeComponent(class Checkbox extends BaseComponent {
|
|
13
|
+
render() {
|
|
14
|
+
const {
|
|
15
|
+
indeterminate,
|
|
16
|
+
...restProps
|
|
17
|
+
} = this.props;
|
|
18
|
+
const checkboxRef = useRef();
|
|
19
|
+
useEffect(() => {
|
|
20
|
+
checkboxRef.current.indeterminate = indeterminate;
|
|
21
|
+
});
|
|
22
|
+
return /*#__PURE__*/React.createElement("input", _extends({
|
|
23
|
+
ref: checkboxRef,
|
|
24
|
+
type: "checkbox"
|
|
25
|
+
}, restProps));
|
|
26
|
+
}
|
|
27
|
+
}));
|
|
28
|
+
export default memo(shapeComponent(class ApiMakerTableWorkerPluginsCheckAllCheckbox extends BaseComponent {
|
|
29
|
+
static propTypes = propTypesExact({
|
|
30
|
+
currentWorkplace: PropTypes.object,
|
|
31
|
+
query: PropTypes.instanceOf(Collection),
|
|
32
|
+
style: PropTypes.object
|
|
33
|
+
});
|
|
34
|
+
setup() {
|
|
35
|
+
this.useStates({
|
|
36
|
+
checked: false,
|
|
37
|
+
indeterminate: false
|
|
38
|
+
});
|
|
39
|
+
useMemo(() => {
|
|
40
|
+
this.updateAllChecked();
|
|
41
|
+
}, []);
|
|
42
|
+
useModelEvent(this.props.currentWorkplace, "workplace_links_created", this.tt.onLinksCreated);
|
|
43
|
+
useModelEvent(this.props.currentWorkplace, "workplace_links_destroyed", this.tt.onLinksDestroyed);
|
|
44
|
+
}
|
|
45
|
+
componentDidUpdate(prevProps) {
|
|
46
|
+
const previousParams = prevProps.query.params();
|
|
47
|
+
const currentParams = this.props.query.params();
|
|
48
|
+
if (simpleObjectDifferent(previousParams, currentParams)) {
|
|
49
|
+
this.updateAllChecked();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
async updateAllChecked() {
|
|
53
|
+
const {
|
|
54
|
+
query,
|
|
55
|
+
currentWorkplace
|
|
56
|
+
} = this.props;
|
|
57
|
+
const queryLinksStatusResult = await currentWorkplace.queryLinksStatus({
|
|
58
|
+
query
|
|
59
|
+
});
|
|
60
|
+
const allChecked = queryLinksStatusResult.all_checked;
|
|
61
|
+
const someChecked = queryLinksStatusResult.some_checked;
|
|
62
|
+
this.setState({
|
|
63
|
+
checked: allChecked,
|
|
64
|
+
indeterminate: someChecked
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
render() {
|
|
68
|
+
const {
|
|
69
|
+
className,
|
|
70
|
+
style
|
|
71
|
+
} = this.props;
|
|
72
|
+
const {
|
|
73
|
+
checked,
|
|
74
|
+
indeterminate
|
|
75
|
+
} = this.state;
|
|
76
|
+
return /*#__PURE__*/React.createElement(Checkbox, {
|
|
77
|
+
checked: checked,
|
|
78
|
+
className: classNames("api-maker--table--worker-plugins-check-all-checkbox", className),
|
|
79
|
+
indeterminate: indeterminate,
|
|
80
|
+
onChange: this.onCheckedChanged,
|
|
81
|
+
style: style
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
modelClassName = () => this.props.query.modelClass().modelClassData().name;
|
|
85
|
+
onCheckedChanged = async e => {
|
|
86
|
+
e.preventDefault();
|
|
87
|
+
const {
|
|
88
|
+
currentWorkplace,
|
|
89
|
+
query
|
|
90
|
+
} = this.props;
|
|
91
|
+
const checkbox = e.target;
|
|
92
|
+
if (checkbox.checked) {
|
|
93
|
+
await currentWorkplace.addQuery({
|
|
94
|
+
query
|
|
95
|
+
});
|
|
96
|
+
this.setState({
|
|
97
|
+
checked: true,
|
|
98
|
+
indeterminate: false
|
|
99
|
+
});
|
|
100
|
+
} else {
|
|
101
|
+
await currentWorkplace.removeQuery({
|
|
102
|
+
query
|
|
103
|
+
});
|
|
104
|
+
this.setState({
|
|
105
|
+
checked: false,
|
|
106
|
+
indeterminate: false
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
onLinksCreated = ({
|
|
111
|
+
args
|
|
112
|
+
}) => {
|
|
113
|
+
if (args.created[this.modelClassName()]) {
|
|
114
|
+
this.updateAllChecked();
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
onLinksDestroyed = ({
|
|
118
|
+
args
|
|
119
|
+
}) => {
|
|
120
|
+
if (args.destroyed[this.modelClassName()]) {
|
|
121
|
+
this.updateAllChecked();
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
}));
|
|
125
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VNZW1vIiwidXNlUmVmIiwiQmFzZUNvbXBvbmVudCIsImNsYXNzTmFtZXMiLCJDb2xsZWN0aW9uIiwibWVtbyIsIlByb3BUeXBlcyIsInByb3BUeXBlc0V4YWN0Iiwic2hhcGVDb21wb25lbnQiLCJzaW1wbGVPYmplY3REaWZmZXJlbnQiLCJ1c2VNb2RlbEV2ZW50IiwiQ2hlY2tib3giLCJyZW5kZXIiLCJpbmRldGVybWluYXRlIiwicmVzdFByb3BzIiwicHJvcHMiLCJjaGVja2JveFJlZiIsImN1cnJlbnQiLCJSZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kcyIsInJlZiIsInR5cGUiLCJBcGlNYWtlclRhYmxlV29ya2VyUGx1Z2luc0NoZWNrQWxsQ2hlY2tib3giLCJwcm9wVHlwZXMiLCJjdXJyZW50V29ya3BsYWNlIiwib2JqZWN0IiwicXVlcnkiLCJpbnN0YW5jZU9mIiwic3R5bGUiLCJzZXR1cCIsInVzZVN0YXRlcyIsImNoZWNrZWQiLCJ1cGRhdGVBbGxDaGVja2VkIiwidHQiLCJvbkxpbmtzQ3JlYXRlZCIsIm9uTGlua3NEZXN0cm95ZWQiLCJjb21wb25lbnREaWRVcGRhdGUiLCJwcmV2UHJvcHMiLCJwcmV2aW91c1BhcmFtcyIsInBhcmFtcyIsImN1cnJlbnRQYXJhbXMiLCJxdWVyeUxpbmtzU3RhdHVzUmVzdWx0IiwicXVlcnlMaW5rc1N0YXR1cyIsImFsbENoZWNrZWQiLCJhbGxfY2hlY2tlZCIsInNvbWVDaGVja2VkIiwic29tZV9jaGVja2VkIiwic2V0U3RhdGUiLCJjbGFzc05hbWUiLCJzdGF0ZSIsIm9uQ2hhbmdlIiwib25DaGVja2VkQ2hhbmdlZCIsIm1vZGVsQ2xhc3NOYW1lIiwibW9kZWxDbGFzcyIsIm1vZGVsQ2xhc3NEYXRhIiwibmFtZSIsImUiLCJwcmV2ZW50RGVmYXVsdCIsImNoZWNrYm94IiwidGFyZ2V0IiwiYWRkUXVlcnkiLCJyZW1vdmVRdWVyeSIsImFyZ3MiLCJjcmVhdGVkIiwiZGVzdHJveWVkIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RhYmxlL3dvcmtlci1wbHVnaW5zLWNoZWNrLWFsbC1jaGVja2JveC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHt1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZn0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBCYXNlQ29tcG9uZW50IGZyb20gXCIuLi9iYXNlLWNvbXBvbmVudFwiXG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tIFwiY2xhc3NuYW1lc1wiXG5pbXBvcnQgQ29sbGVjdGlvbiBmcm9tIFwiLi4vY29sbGVjdGlvblwiXG5pbXBvcnQgbWVtbyBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvc3JjL21lbW9cIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgcHJvcFR5cGVzRXhhY3QgZnJvbSBcInByb3AtdHlwZXMtZXhhY3RcIlxuaW1wb3J0IHtzaGFwZUNvbXBvbmVudH0gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL3NyYy9zaGFwZS1jb21wb25lbnRcIlxuaW1wb3J0IHtzaW1wbGVPYmplY3REaWZmZXJlbnR9IGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvZGlmZi11dGlsc1wiXG5pbXBvcnQgdXNlTW9kZWxFdmVudCBmcm9tIFwiLi4vdXNlLW1vZGVsLWV2ZW50XCJcblxuY29uc3QgQ2hlY2tib3ggPSBtZW1vKHNoYXBlQ29tcG9uZW50KGNsYXNzIENoZWNrYm94IGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7aW5kZXRlcm1pbmF0ZSwgLi4ucmVzdFByb3BzfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCBjaGVja2JveFJlZiA9IHVzZVJlZigpXG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgY2hlY2tib3hSZWYuY3VycmVudC5pbmRldGVybWluYXRlID0gaW5kZXRlcm1pbmF0ZVxuICAgIH0pXG5cbiAgICByZXR1cm4gKFxuICAgICAgPGlucHV0IHJlZj17Y2hlY2tib3hSZWZ9IHR5cGU9XCJjaGVja2JveFwiIHsuLi5yZXN0UHJvcHN9IC8+XG4gICAgKVxuICB9XG59KSlcblxuZXhwb3J0IGRlZmF1bHQgbWVtbyhzaGFwZUNvbXBvbmVudChjbGFzcyBBcGlNYWtlclRhYmxlV29ya2VyUGx1Z2luc0NoZWNrQWxsQ2hlY2tib3ggZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHByb3BUeXBlc0V4YWN0KHtcbiAgICBjdXJyZW50V29ya3BsYWNlOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIHF1ZXJ5OiBQcm9wVHlwZXMuaW5zdGFuY2VPZihDb2xsZWN0aW9uKSxcbiAgICBzdHlsZTogUHJvcFR5cGVzLm9iamVjdFxuICB9KVxuXG4gIHNldHVwKCkge1xuICAgIHRoaXMudXNlU3RhdGVzKHtcbiAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgaW5kZXRlcm1pbmF0ZTogZmFsc2VcbiAgICB9KVxuXG4gICAgdXNlTWVtbygoKSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZUFsbENoZWNrZWQoKVxuICAgIH0sIFtdKVxuXG4gICAgdXNlTW9kZWxFdmVudCh0aGlzLnByb3BzLmN1cnJlbnRXb3JrcGxhY2UsIFwid29ya3BsYWNlX2xpbmtzX2NyZWF0ZWRcIiwgdGhpcy50dC5vbkxpbmtzQ3JlYXRlZClcbiAgICB1c2VNb2RlbEV2ZW50KHRoaXMucHJvcHMuY3VycmVudFdvcmtwbGFjZSwgXCJ3b3JrcGxhY2VfbGlua3NfZGVzdHJveWVkXCIsIHRoaXMudHQub25MaW5rc0Rlc3Ryb3llZClcbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICBjb25zdCBwcmV2aW91c1BhcmFtcyA9IHByZXZQcm9wcy5xdWVyeS5wYXJhbXMoKVxuICAgIGNvbnN0IGN1cnJlbnRQYXJhbXMgPSB0aGlzLnByb3BzLnF1ZXJ5LnBhcmFtcygpXG5cbiAgICBpZiAoc2ltcGxlT2JqZWN0RGlmZmVyZW50KHByZXZpb3VzUGFyYW1zLCBjdXJyZW50UGFyYW1zKSkge1xuICAgICAgdGhpcy51cGRhdGVBbGxDaGVja2VkKClcbiAgICB9XG4gIH1cblxuICBhc3luYyB1cGRhdGVBbGxDaGVja2VkKCkge1xuICAgIGNvbnN0IHtxdWVyeSwgY3VycmVudFdvcmtwbGFjZX0gPSB0aGlzLnByb3BzXG4gICAgY29uc3QgcXVlcnlMaW5rc1N0YXR1c1Jlc3VsdCA9IGF3YWl0IGN1cnJlbnRXb3JrcGxhY2UucXVlcnlMaW5rc1N0YXR1cyh7cXVlcnl9KVxuICAgIGNvbnN0IGFsbENoZWNrZWQgPSBxdWVyeUxpbmtzU3RhdHVzUmVzdWx0LmFsbF9jaGVja2VkXG4gICAgY29uc3Qgc29tZUNoZWNrZWQgPSBxdWVyeUxpbmtzU3RhdHVzUmVzdWx0LnNvbWVfY2hlY2tlZFxuXG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBjaGVja2VkOiBhbGxDaGVja2VkLFxuICAgICAgaW5kZXRlcm1pbmF0ZTogc29tZUNoZWNrZWRcbiAgICB9KVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtjbGFzc05hbWUsIHN0eWxlfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCB7Y2hlY2tlZCwgaW5kZXRlcm1pbmF0ZX0gPSB0aGlzLnN0YXRlXG5cbiAgICByZXR1cm4gKFxuICAgICAgPENoZWNrYm94XG4gICAgICAgIGNoZWNrZWQ9e2NoZWNrZWR9XG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhcImFwaS1tYWtlci0tdGFibGUtLXdvcmtlci1wbHVnaW5zLWNoZWNrLWFsbC1jaGVja2JveFwiLCBjbGFzc05hbWUpfVxuICAgICAgICBpbmRldGVybWluYXRlPXtpbmRldGVybWluYXRlfVxuICAgICAgICBvbkNoYW5nZT17dGhpcy5vbkNoZWNrZWRDaGFuZ2VkfVxuICAgICAgICBzdHlsZT17c3R5bGV9XG4gICAgICAvPlxuICAgIClcbiAgfVxuXG4gIG1vZGVsQ2xhc3NOYW1lID0gKCkgPT4gdGhpcy5wcm9wcy5xdWVyeS5tb2RlbENsYXNzKCkubW9kZWxDbGFzc0RhdGEoKS5uYW1lXG5cbiAgb25DaGVja2VkQ2hhbmdlZCA9IGFzeW5jIChlKSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG5cbiAgICBjb25zdCB7Y3VycmVudFdvcmtwbGFjZSwgcXVlcnl9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IGNoZWNrYm94ID0gZS50YXJnZXRcblxuICAgIGlmIChjaGVja2JveC5jaGVja2VkKSB7XG4gICAgICBhd2FpdCBjdXJyZW50V29ya3BsYWNlLmFkZFF1ZXJ5KHtxdWVyeX0pXG4gICAgICB0aGlzLnNldFN0YXRlKHtjaGVja2VkOiB0cnVlLCBpbmRldGVybWluYXRlOiBmYWxzZX0pXG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IGN1cnJlbnRXb3JrcGxhY2UucmVtb3ZlUXVlcnkoe3F1ZXJ5fSlcbiAgICAgIHRoaXMuc2V0U3RhdGUoe2NoZWNrZWQ6IGZhbHNlLCBpbmRldGVybWluYXRlOiBmYWxzZX0pXG4gICAgfVxuICB9XG5cbiAgb25MaW5rc0NyZWF0ZWQgPSAoe2FyZ3N9KSA9PiB7XG4gICAgaWYgKGFyZ3MuY3JlYXRlZFt0aGlzLm1vZGVsQ2xhc3NOYW1lKCldKSB7XG4gICAgICB0aGlzLnVwZGF0ZUFsbENoZWNrZWQoKVxuICAgIH1cbiAgfVxuXG4gIG9uTGlua3NEZXN0cm95ZWQgPSAoe2FyZ3N9KSA9PiB7XG4gICAgaWYgKGFyZ3MuZGVzdHJveWVkW3RoaXMubW9kZWxDbGFzc05hbWUoKV0pIHtcbiAgICAgIHRoaXMudXBkYXRlQWxsQ2hlY2tlZCgpXG4gICAgfVxuICB9XG59KSlcbiJdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQVFBLFNBQVMsRUFBRUMsT0FBTyxFQUFFQyxNQUFNLFFBQU8sT0FBTztBQUNoRCxPQUFPQyxhQUFhLE1BQU0sbUJBQW1CO0FBQzdDLE9BQU9DLFVBQVUsTUFBTSxZQUFZO0FBQ25DLE9BQU9DLFVBQVUsTUFBTSxlQUFlO0FBQ3RDLE9BQU9DLElBQUksTUFBTSw0QkFBNEI7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
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import BaseComponent from "../base-component";
|
|
2
|
+
import classNames from "classnames";
|
|
3
|
+
import { digg } from "diggerize";
|
|
4
|
+
import memo from "set-state-compare/src/memo";
|
|
5
|
+
import modelClassRequire from "../model-class-require";
|
|
6
|
+
import PropTypes from "prop-types";
|
|
7
|
+
import PropTypesExact from "prop-types-exact";
|
|
8
|
+
import { useMemo } from "react";
|
|
9
|
+
import { shapeComponent } from "set-state-compare/src/shape-component";
|
|
10
|
+
import useModelEvent from "../use-model-event";
|
|
11
|
+
const Workplace = modelClassRequire("Workplace");
|
|
12
|
+
export default memo(shapeComponent(class ApiMakerTableWorkerPluginsCheckbox extends BaseComponent {
|
|
13
|
+
static propTypes = PropTypesExact({
|
|
14
|
+
currentWorkplace: PropTypes.object,
|
|
15
|
+
model: PropTypes.object.isRequired,
|
|
16
|
+
style: PropTypes.object
|
|
17
|
+
});
|
|
18
|
+
setup() {
|
|
19
|
+
this.useStates({
|
|
20
|
+
checked: false,
|
|
21
|
+
linkLoaded: false
|
|
22
|
+
});
|
|
23
|
+
useMemo(() => {
|
|
24
|
+
this.loadCurrentLink();
|
|
25
|
+
}, []);
|
|
26
|
+
useModelEvent(this.p.currentWorkplace, "workplace_links_created", this.tt.onLinksCreated);
|
|
27
|
+
useModelEvent(this.p.currentWorkplace, "workplace_links_destroyed", this.tt.onLinksDestroyed);
|
|
28
|
+
}
|
|
29
|
+
async loadCurrentLink() {
|
|
30
|
+
const {
|
|
31
|
+
model
|
|
32
|
+
} = this.props;
|
|
33
|
+
const response = await Workplace.linkFor({
|
|
34
|
+
model_class: model.modelClassData().name,
|
|
35
|
+
model_id: model.id()
|
|
36
|
+
});
|
|
37
|
+
const link = digg(response, "link");
|
|
38
|
+
this.setState({
|
|
39
|
+
checked: Boolean(link),
|
|
40
|
+
linkLoaded: true
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
render() {
|
|
44
|
+
const {
|
|
45
|
+
className,
|
|
46
|
+
model,
|
|
47
|
+
style
|
|
48
|
+
} = this.props;
|
|
49
|
+
const {
|
|
50
|
+
checked,
|
|
51
|
+
linkLoaded
|
|
52
|
+
} = this.state;
|
|
53
|
+
if (!linkLoaded) {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
return /*#__PURE__*/React.createElement("input", {
|
|
57
|
+
checked: checked,
|
|
58
|
+
className: classNames("api-maker--table--worker-plugins-checkbox", className),
|
|
59
|
+
"data-checked": checked,
|
|
60
|
+
"data-model-id": model.id(),
|
|
61
|
+
onChange: this.tt.onCheckedChanged,
|
|
62
|
+
style: style,
|
|
63
|
+
type: "checkbox"
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
onCheckedChanged = e => {
|
|
67
|
+
e.preventDefault();
|
|
68
|
+
const {
|
|
69
|
+
model
|
|
70
|
+
} = this.props;
|
|
71
|
+
const checked = e.target.checked;
|
|
72
|
+
if (checked) {
|
|
73
|
+
Workplace.createLink({
|
|
74
|
+
model_class: model.modelClassData().name,
|
|
75
|
+
model_id: model.id()
|
|
76
|
+
});
|
|
77
|
+
} else {
|
|
78
|
+
const modelClassName = model.modelClassData().name;
|
|
79
|
+
const params = {
|
|
80
|
+
models: {}
|
|
81
|
+
};
|
|
82
|
+
params.models[modelClassName] = [model.id()];
|
|
83
|
+
Workplace.destroyLinks(params);
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
onLinksCreated = ({
|
|
87
|
+
args
|
|
88
|
+
}) => {
|
|
89
|
+
const {
|
|
90
|
+
model
|
|
91
|
+
} = digs(this.props, "model");
|
|
92
|
+
const id = model.id();
|
|
93
|
+
const modelClassName = model.modelClassData().name;
|
|
94
|
+
if (args.created[modelClassName] && args.created[modelClassName].includes(id)) {
|
|
95
|
+
this.setState({
|
|
96
|
+
checked: true
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
onLinksDestroyed = ({
|
|
101
|
+
args
|
|
102
|
+
}) => {
|
|
103
|
+
const {
|
|
104
|
+
model
|
|
105
|
+
} = digs(this.props, "model");
|
|
106
|
+
const id = model.id();
|
|
107
|
+
const modelClassName = model.modelClassData().name;
|
|
108
|
+
if (args.destroyed[modelClassName] && args.destroyed[modelClassName].includes(id)) {
|
|
109
|
+
this.setState({
|
|
110
|
+
checked: false
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
}));
|
|
115
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlQ29tcG9uZW50IiwiY2xhc3NOYW1lcyIsImRpZ2ciLCJtZW1vIiwibW9kZWxDbGFzc1JlcXVpcmUiLCJQcm9wVHlwZXMiLCJQcm9wVHlwZXNFeGFjdCIsInVzZU1lbW8iLCJzaGFwZUNvbXBvbmVudCIsInVzZU1vZGVsRXZlbnQiLCJXb3JrcGxhY2UiLCJBcGlNYWtlclRhYmxlV29ya2VyUGx1Z2luc0NoZWNrYm94IiwicHJvcFR5cGVzIiwiY3VycmVudFdvcmtwbGFjZSIsIm9iamVjdCIsIm1vZGVsIiwiaXNSZXF1aXJlZCIsInN0eWxlIiwic2V0dXAiLCJ1c2VTdGF0ZXMiLCJjaGVja2VkIiwibGlua0xvYWRlZCIsImxvYWRDdXJyZW50TGluayIsInAiLCJ0dCIsIm9uTGlua3NDcmVhdGVkIiwib25MaW5rc0Rlc3Ryb3llZCIsInByb3BzIiwicmVzcG9uc2UiLCJsaW5rRm9yIiwibW9kZWxfY2xhc3MiLCJtb2RlbENsYXNzRGF0YSIsIm5hbWUiLCJtb2RlbF9pZCIsImlkIiwibGluayIsInNldFN0YXRlIiwiQm9vbGVhbiIsInJlbmRlciIsImNsYXNzTmFtZSIsInN0YXRlIiwiUmVhY3QiLCJjcmVhdGVFbGVtZW50Iiwib25DaGFuZ2UiLCJvbkNoZWNrZWRDaGFuZ2VkIiwidHlwZSIsImUiLCJwcmV2ZW50RGVmYXVsdCIsInRhcmdldCIsImNyZWF0ZUxpbmsiLCJtb2RlbENsYXNzTmFtZSIsInBhcmFtcyIsIm1vZGVscyIsImRlc3Ryb3lMaW5rcyIsImFyZ3MiLCJkaWdzIiwiY3JlYXRlZCIsImluY2x1ZGVzIiwiZGVzdHJveWVkIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RhYmxlL3dvcmtlci1wbHVnaW5zLWNoZWNrYm94LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQmFzZUNvbXBvbmVudCBmcm9tIFwiLi4vYmFzZS1jb21wb25lbnRcIlxuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSBcImNsYXNzbmFtZXNcIlxuaW1wb3J0IHtkaWdnfSBmcm9tIFwiZGlnZ2VyaXplXCJcbmltcG9ydCBtZW1vIGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvbWVtb1wiXG5pbXBvcnQgbW9kZWxDbGFzc1JlcXVpcmUgZnJvbSBcIi4uL21vZGVsLWNsYXNzLXJlcXVpcmVcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgUHJvcFR5cGVzRXhhY3QgZnJvbSBcInByb3AtdHlwZXMtZXhhY3RcIlxuaW1wb3J0IHt1c2VNZW1vfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHtzaGFwZUNvbXBvbmVudH0gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL3NyYy9zaGFwZS1jb21wb25lbnRcIlxuaW1wb3J0IHVzZU1vZGVsRXZlbnQgZnJvbSBcIi4uL3VzZS1tb2RlbC1ldmVudFwiXG5cbmNvbnN0IFdvcmtwbGFjZSA9IG1vZGVsQ2xhc3NSZXF1aXJlKFwiV29ya3BsYWNlXCIpXG5cbmV4cG9ydCBkZWZhdWx0IG1lbW8oc2hhcGVDb21wb25lbnQoY2xhc3MgQXBpTWFrZXJUYWJsZVdvcmtlclBsdWdpbnNDaGVja2JveCBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0gUHJvcFR5cGVzRXhhY3Qoe1xuICAgIGN1cnJlbnRXb3JrcGxhY2U6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbW9kZWw6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBzdHlsZTogUHJvcFR5cGVzLm9iamVjdFxuICB9KVxuXG4gIHNldHVwKCkge1xuICAgIHRoaXMudXNlU3RhdGVzKHtcbiAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgbGlua0xvYWRlZDogZmFsc2VcbiAgICB9KVxuXG4gICAgdXNlTWVtbygoKSA9PiB7XG4gICAgICB0aGlzLmxvYWRDdXJyZW50TGluaygpXG4gICAgfSwgW10pXG5cbiAgICB1c2VNb2RlbEV2ZW50KHRoaXMucC5jdXJyZW50V29ya3BsYWNlLCBcIndvcmtwbGFjZV9saW5rc19jcmVhdGVkXCIsIHRoaXMudHQub25MaW5rc0NyZWF0ZWQpXG4gICAgdXNlTW9kZWxFdmVudCh0aGlzLnAuY3VycmVudFdvcmtwbGFjZSwgXCJ3b3JrcGxhY2VfbGlua3NfZGVzdHJveWVkXCIsIHRoaXMudHQub25MaW5rc0Rlc3Ryb3llZClcbiAgfVxuXG4gIGFzeW5jIGxvYWRDdXJyZW50TGluaygpIHtcbiAgICBjb25zdCB7bW9kZWx9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgV29ya3BsYWNlLmxpbmtGb3Ioe21vZGVsX2NsYXNzOiBtb2RlbC5tb2RlbENsYXNzRGF0YSgpLm5hbWUsIG1vZGVsX2lkOiBtb2RlbC5pZCgpfSlcbiAgICBjb25zdCBsaW5rID0gZGlnZyhyZXNwb25zZSwgXCJsaW5rXCIpXG5cbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIGNoZWNrZWQ6IEJvb2xlYW4obGluayksXG4gICAgICBsaW5rTG9hZGVkOiB0cnVlXG4gICAgfSlcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7Y2xhc3NOYW1lLCBtb2RlbCwgc3R5bGV9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IHtjaGVja2VkLCBsaW5rTG9hZGVkfSA9IHRoaXMuc3RhdGVcblxuICAgIGlmICghbGlua0xvYWRlZCkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGlucHV0XG4gICAgICAgIGNoZWNrZWQ9e2NoZWNrZWR9XG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhcImFwaS1tYWtlci0tdGFibGUtLXdvcmtlci1wbHVnaW5zLWNoZWNrYm94XCIsIGNsYXNzTmFtZSl9XG4gICAgICAgIGRhdGEtY2hlY2tlZD17Y2hlY2tlZH1cbiAgICAgICAgZGF0YS1tb2RlbC1pZD17bW9kZWwuaWQoKX1cbiAgICAgICAgb25DaGFuZ2U9e3RoaXMudHQub25DaGVja2VkQ2hhbmdlZH1cbiAgICAgICAgc3R5bGU9e3N0eWxlfVxuICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgLz5cbiAgICApXG4gIH1cblxuICBvbkNoZWNrZWRDaGFuZ2VkID0gKGUpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KClcblxuICAgIGNvbnN0IHttb2RlbH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3QgY2hlY2tlZCA9IGUudGFyZ2V0LmNoZWNrZWRcblxuICAgIGlmIChjaGVja2VkKSB7XG4gICAgICBXb3JrcGxhY2UuY3JlYXRlTGluayh7bW9kZWxfY2xhc3M6IG1vZGVsLm1vZGVsQ2xhc3NEYXRhKCkubmFtZSwgbW9kZWxfaWQ6IG1vZGVsLmlkKCl9KVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBtb2RlbENsYXNzTmFtZSA9IG1vZGVsLm1vZGVsQ2xhc3NEYXRhKCkubmFtZVxuICAgICAgY29uc3QgcGFyYW1zID0ge21vZGVsczoge319XG5cbiAgICAgIHBhcmFtcy5tb2RlbHNbbW9kZWxDbGFzc05hbWVdID0gW21vZGVsLmlkKCldXG5cbiAgICAgIFdvcmtwbGFjZS5kZXN0cm95TGlua3MocGFyYW1zKVxuICAgIH1cbiAgfVxuXG4gIG9uTGlua3NDcmVhdGVkID0gKHthcmdzfSkgPT4ge1xuICAgIGNvbnN0IHttb2RlbH0gPSBkaWdzKHRoaXMucHJvcHMsIFwibW9kZWxcIilcbiAgICBjb25zdCBpZCA9IG1vZGVsLmlkKClcbiAgICBjb25zdCBtb2RlbENsYXNzTmFtZSA9IG1vZGVsLm1vZGVsQ2xhc3NEYXRhKCkubmFtZVxuXG4gICAgaWYgKGFyZ3MuY3JlYXRlZFttb2RlbENsYXNzTmFtZV0gJiYgYXJncy5jcmVhdGVkW21vZGVsQ2xhc3NOYW1lXS5pbmNsdWRlcyhpZCkpIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe2NoZWNrZWQ6IHRydWV9KVxuICAgIH1cbiAgfVxuXG4gIG9uTGlua3NEZXN0cm95ZWQgPSAoe2FyZ3N9KSA9PiB7XG4gICAgY29uc3Qge21vZGVsfSA9IGRpZ3ModGhpcy5wcm9wcywgXCJtb2RlbFwiKVxuICAgIGNvbnN0IGlkID0gbW9kZWwuaWQoKVxuICAgIGNvbnN0IG1vZGVsQ2xhc3NOYW1lID0gbW9kZWwubW9kZWxDbGFzc0RhdGEoKS5uYW1lXG5cbiAgICBpZiAoYXJncy5kZXN0cm95ZWRbbW9kZWxDbGFzc05hbWVdICYmIGFyZ3MuZGVzdHJveWVkW21vZGVsQ2xhc3NOYW1lXS5pbmNsdWRlcyhpZCkpIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe2NoZWNrZWQ6IGZhbHNlfSlcbiAgICB9XG4gIH1cbn0pKVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxhQUFhLE1BQU0sbUJBQW1CO0FBQzdDLE9BQU9DLFVBQVUsTUFBTSxZQUFZO0FBQ25DLFNBQVFDLElBQUksUUFBTyxXQUFXO0FBQzlCLE9BQU9DLElBQUksTUFBTSw0QkFBNEI7QUFDN0MsT0FBT0MsaUJBQWlCLE1BQU0sd0JBQXdCO0FBQ3RELE9BQU9DLFNBQVMsTUFBTSxZQUFZO0FBQ2xDLE9BQU9DLGNBQWMsTUFBTSxrQkFBa0I7QUFDN0MsU0FBUUMsT0FBTyxRQUFPLE9BQU87QUFDN0IsU0FBUUMsY0FBYyxRQUFPLHVDQUF1QztBQUNwRSxPQUFPQyxhQUFhLE1BQU0sb0JBQW9CO0FBRTlDLE1BQU1DLFNBQVMsR0FBR04saUJBQWlCLENBQUMsV0FBVyxDQUFDO0FBRWhELGVBQWVELElBQUksQ0FBQ0ssY0FBYyxDQUFDLE1BQU1HLGtDQUFrQyxTQUFTWCxhQUFhLENBQUM7RUFDaEcsT0FBT1ksU0FBUyxHQUFHTixjQUFjLENBQUM7SUFDaENPLGdCQUFnQixFQUFFUixTQUFTLENBQUNTLE1BQU07SUFDbENDLEtBQUssRUFBRVYsU0FBUyxDQUFDUyxNQUFNLENBQUNFLFVBQVU7SUFDbENDLEtBQUssRUFBRVosU0FBUyxDQUFDUztFQUNuQixDQUFDLENBQUM7RUFFRkksS0FBS0EsQ0FBQSxFQUFHO0lBQ04sSUFBSSxDQUFDQyxTQUFTLENBQUM7TUFDYkMsT0FBTyxFQUFFLEtBQUs7TUFDZEMsVUFBVSxFQUFFO0lBQ2QsQ0FBQyxDQUFDO0lB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
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export default function apiMakerTranslatedAttributes(attributeNames, availableLocales) {
|
|
2
|
+
translatedAttributes = [];
|
|
3
|
+
for (const attribute of attributeNames) {
|
|
4
|
+
for (const locale of availableLocales) {
|
|
5
|
+
translatedAttributes.push(`${attribute}${locale.substring(0, 1).toUpperCase()}${locale.substring(1, 99)}`);
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
return translatedAttributes;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhcGlNYWtlclRyYW5zbGF0ZWRBdHRyaWJ1dGVzIiwiYXR0cmlidXRlTmFtZXMiLCJhdmFpbGFibGVMb2NhbGVzIiwidHJhbnNsYXRlZEF0dHJpYnV0ZXMiLCJhdHRyaWJ1dGUiLCJsb2NhbGUiLCJwdXNoIiwic3Vic3RyaW5nIiwidG9VcHBlckNhc2UiXSwic291cmNlcyI6WyIuLi9zcmMvdHJhbnNsYXRlZC1hdHRyaWJ1dGVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGFwaU1ha2VyVHJhbnNsYXRlZEF0dHJpYnV0ZXMoYXR0cmlidXRlTmFtZXMsIGF2YWlsYWJsZUxvY2FsZXMpIHtcbiAgdHJhbnNsYXRlZEF0dHJpYnV0ZXMgPSBbXVxuXG4gIGZvciAoY29uc3QgYXR0cmlidXRlIG9mIGF0dHJpYnV0ZU5hbWVzKSB7XG4gICAgZm9yIChjb25zdCBsb2NhbGUgb2YgYXZhaWxhYmxlTG9jYWxlcykge1xuICAgICAgdHJhbnNsYXRlZEF0dHJpYnV0ZXMucHVzaChgJHthdHRyaWJ1dGV9JHtsb2NhbGUuc3Vic3RyaW5nKDAsIDEpLnRvVXBwZXJDYXNlKCl9JHtsb2NhbGUuc3Vic3RyaW5nKDEsIDk5KX1gKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cmFuc2xhdGVkQXR0cmlidXRlc1xufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxlQUFlLFNBQVNBLDRCQUE0QkEsQ0FBQ0MsY0FBYyxFQUFFQyxnQkFBZ0IsRUFBRTtFQUNyRkMsb0JBQW9CLEdBQUcsRUFBRTtFQUV6QixLQUFLLE1BQU1DLFNBQVMsSUFBSUgsY0FBYyxFQUFFO0lBQ3RDLEtBQUssTUFBTUksTUFBTSxJQUFJSCxnQkFBZ0IsRUFBRTtNQUNyQ0Msb0JBQW9CLENBQUNHLElBQUksQ0FBQyxHQUFHRixTQUFTLEdBQUdDLE1BQU0sQ0FBQ0UsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQ0MsV0FBVyxDQUFDLENBQUMsR0FBR0gsTUFBTSxDQUFDRSxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDNUc7RUFDRjtFQUVBLE9BQU9KLG9CQUFvQjtBQUM3QiIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { digg } from "diggerize";
|
|
2
|
+
import translatedCollectionsData from "../src/translated-collections-data.js.erb";
|
|
3
|
+
export default class ApiMakerTranslatedCollections {
|
|
4
|
+
static get(modelClass, collectionName) {
|
|
5
|
+
const locale = I18n.locale;
|
|
6
|
+
const modelClassName = digg(modelClass.modelClassData(), "name");
|
|
7
|
+
const collection = digg(translatedCollectionsData, modelClassName, collectionName, locale, "collection_array");
|
|
8
|
+
return collection;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkaWdnIiwidHJhbnNsYXRlZENvbGxlY3Rpb25zRGF0YSIsIkFwaU1ha2VyVHJhbnNsYXRlZENvbGxlY3Rpb25zIiwiZ2V0IiwibW9kZWxDbGFzcyIsImNvbGxlY3Rpb25OYW1lIiwibG9jYWxlIiwiSTE4biIsIm1vZGVsQ2xhc3NOYW1lIiwibW9kZWxDbGFzc0RhdGEiLCJjb2xsZWN0aW9uIl0sInNvdXJjZXMiOlsiLi4vc3JjL3RyYW5zbGF0ZWQtY29sbGVjdGlvbnMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtkaWdnfSBmcm9tIFwiZGlnZ2VyaXplXCJcbmltcG9ydCB0cmFuc2xhdGVkQ29sbGVjdGlvbnNEYXRhIGZyb20gXCIuLi9zcmMvdHJhbnNsYXRlZC1jb2xsZWN0aW9ucy1kYXRhLmpzLmVyYlwiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFwaU1ha2VyVHJhbnNsYXRlZENvbGxlY3Rpb25zIHtcbiAgc3RhdGljIGdldCAobW9kZWxDbGFzcywgY29sbGVjdGlvbk5hbWUpIHtcbiAgICBjb25zdCBsb2NhbGUgPSBJMThuLmxvY2FsZVxuICAgIGNvbnN0IG1vZGVsQ2xhc3NOYW1lID0gZGlnZyhtb2RlbENsYXNzLm1vZGVsQ2xhc3NEYXRhKCksIFwibmFtZVwiKVxuICAgIGNvbnN0IGNvbGxlY3Rpb24gPSBkaWdnKHRyYW5zbGF0ZWRDb2xsZWN0aW9uc0RhdGEsIG1vZGVsQ2xhc3NOYW1lLCBjb2xsZWN0aW9uTmFtZSwgbG9jYWxlLCBcImNvbGxlY3Rpb25fYXJyYXlcIilcblxuICAgIHJldHVybiBjb2xsZWN0aW9uXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUUEsSUFBSSxRQUFPLFdBQVc7QUFDOUIsT0FBT0MseUJBQXlCLE1BQU0sMkNBQTJDO0FBRWpGLGVBQWUsTUFBTUMsNkJBQTZCLENBQUM7RUFDakQsT0FBT0MsR0FBR0EsQ0FBRUMsVUFBVSxFQUFFQyxjQUFjLEVBQUU7SUFDdEMsTUFBTUMsTUFBTSxHQUFHQyxJQUFJLENBQUNELE1BQU07SUFDMUIsTUFBTUUsY0FBYyxHQUFHUixJQUFJLENBQUNJLFVBQVUsQ0FBQ0ssY0FBYyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDaEUsTUFBTUMsVUFBVSxHQUFHVixJQUFJLENBQUNDLHlCQUF5QixFQUFFTyxjQUFjLEVBQUVILGNBQWMsRUFBRUMsTUFBTSxFQUFFLGtCQUFrQixDQUFDO0lBRTlHLE9BQU9JLFVBQVU7RUFDbkI7QUFDRiIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { digg } from "diggerize";
|
|
2
|
+
import ModelEvents from "./model-events";
|
|
3
|
+
import PropTypes from "prop-types";
|
|
4
|
+
import propTypesExact from "prop-types-exact";
|
|
5
|
+
import React from "react";
|
|
6
|
+
export default class ApiMakerUpdatedAttribute extends React.PureComponent {
|
|
7
|
+
static propTypes = propTypesExact({
|
|
8
|
+
attribute: PropTypes.string,
|
|
9
|
+
model: PropTypes.object.isRequired,
|
|
10
|
+
onValue: PropTypes.func
|
|
11
|
+
});
|
|
12
|
+
constructor(props) {
|
|
13
|
+
super(props);
|
|
14
|
+
this.state = {
|
|
15
|
+
model: this.props.model
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
componentDidMount() {
|
|
19
|
+
this.setAttribute();
|
|
20
|
+
this.connect();
|
|
21
|
+
}
|
|
22
|
+
componentWillUnmount() {
|
|
23
|
+
// Apparently 'componentWillUnmount' can be called without 'componentDidMount' was called. Several bug reports on this.
|
|
24
|
+
if (this.connectUpdated) {
|
|
25
|
+
this.connectUpdated.unsubscribe();
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
connect() {
|
|
29
|
+
this.connectUpdated = ModelEvents.connectUpdated(this.props.model, args => {
|
|
30
|
+
if (!this.props.attribute || args.model.isAttributeLoaded(this.props.attribute)) {
|
|
31
|
+
this.setState({
|
|
32
|
+
model: args.model
|
|
33
|
+
}, () => this.setAttribute());
|
|
34
|
+
} else {
|
|
35
|
+
this.loadModelWithAttribute();
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// This loads the model from the backend with the primary key and the attribute and calls setAttribute
|
|
41
|
+
async loadModelWithAttribute() {
|
|
42
|
+
const id = this.props.model.primaryKey();
|
|
43
|
+
const modelClass = this.props.model.modelClass();
|
|
44
|
+
const modelName = digg(modelClass.modelClassData(), "name");
|
|
45
|
+
const primaryKey = digg(modelClass.modelClassData(), "primaryKey");
|
|
46
|
+
const args = {};
|
|
47
|
+
args[`${primaryKey}_eq`] = id;
|
|
48
|
+
const select = {};
|
|
49
|
+
select[modelName] = [primaryKey, this.props.attribute];
|
|
50
|
+
const model = await modelClass.ransack(args).select(select).first();
|
|
51
|
+
this.setState({
|
|
52
|
+
model
|
|
53
|
+
}, () => this.setAttribute());
|
|
54
|
+
}
|
|
55
|
+
setAttribute() {
|
|
56
|
+
let newValue;
|
|
57
|
+
if (this.props.onValue) {
|
|
58
|
+
newValue = this.props.onValue.apply(null, [{
|
|
59
|
+
model: this.state.model
|
|
60
|
+
}]);
|
|
61
|
+
} else {
|
|
62
|
+
if (!this.state.model[this.props.attribute]) {
|
|
63
|
+
throw new Error(`No such method: ${digg(this.state.model.modelClassData(), "name")}#${this.props.attribute}()`);
|
|
64
|
+
}
|
|
65
|
+
newValue = this.state.model[this.props.attribute].apply(this.state.model);
|
|
66
|
+
}
|
|
67
|
+
this.setState({
|
|
68
|
+
value: newValue
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
render() {
|
|
72
|
+
if (this.state.value === undefined) return null;
|
|
73
|
+
return this.state.value;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkaWdnIiwiTW9kZWxFdmVudHMiLCJQcm9wVHlwZXMiLCJwcm9wVHlwZXNFeGFjdCIsIlJlYWN0IiwiQXBpTWFrZXJVcGRhdGVkQXR0cmlidXRlIiwiUHVyZUNvbXBvbmVudCIsInByb3BUeXBlcyIsImF0dHJpYnV0ZSIsInN0cmluZyIsIm1vZGVsIiwib2JqZWN0IiwiaXNSZXF1aXJlZCIsIm9uVmFsdWUiLCJmdW5jIiwiY29uc3RydWN0b3IiLCJwcm9wcyIsInN0YXRlIiwiY29tcG9uZW50RGlkTW91bnQiLCJzZXRBdHRyaWJ1dGUiLCJjb25uZWN0IiwiY29tcG9uZW50V2lsbFVubW91bnQiLCJjb25uZWN0VXBkYXRlZCIsInVuc3Vic2NyaWJlIiwiYXJncyIsImlzQXR0cmlidXRlTG9hZGVkIiwic2V0U3RhdGUiLCJsb2FkTW9kZWxXaXRoQXR0cmlidXRlIiwiaWQiLCJwcmltYXJ5S2V5IiwibW9kZWxDbGFzcyIsIm1vZGVsTmFtZSIsIm1vZGVsQ2xhc3NEYXRhIiwic2VsZWN0IiwicmFuc2FjayIsImZpcnN0IiwibmV3VmFsdWUiLCJhcHBseSIsIkVycm9yIiwidmFsdWUiLCJyZW5kZXIiLCJ1bmRlZmluZWQiXSwic291cmNlcyI6WyIuLi9zcmMvdXBkYXRlZC1hdHRyaWJ1dGUuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgTW9kZWxFdmVudHMgZnJvbSBcIi4vbW9kZWwtZXZlbnRzXCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IHByb3BUeXBlc0V4YWN0IGZyb20gXCJwcm9wLXR5cGVzLWV4YWN0XCJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBcGlNYWtlclVwZGF0ZWRBdHRyaWJ1dGUgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHByb3BUeXBlc0V4YWN0KHtcbiAgICBhdHRyaWJ1dGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgbW9kZWw6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBvblZhbHVlOiBQcm9wVHlwZXMuZnVuY1xuICB9KVxuXG4gIGNvbnN0cnVjdG9yIChwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKVxuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICBtb2RlbDogdGhpcy5wcm9wcy5tb2RlbFxuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZE1vdW50ICgpIHtcbiAgICB0aGlzLnNldEF0dHJpYnV0ZSgpXG4gICAgdGhpcy5jb25uZWN0KClcbiAgfVxuXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50ICgpIHtcbiAgICAvLyBBcHBhcmVudGx5ICdjb21wb25lbnRXaWxsVW5tb3VudCcgY2FuIGJlIGNhbGxlZCB3aXRob3V0ICdjb21wb25lbnREaWRNb3VudCcgd2FzIGNhbGxlZC4gU2V2ZXJhbCBidWcgcmVwb3J0cyBvbiB0aGlzLlxuICAgIGlmICh0aGlzLmNvbm5lY3RVcGRhdGVkKSB7XG4gICAgICB0aGlzLmNvbm5lY3RVcGRhdGVkLnVuc3Vic2NyaWJlKClcbiAgICB9XG4gIH1cblxuICBjb25uZWN0ICgpIHtcbiAgICB0aGlzLmNvbm5lY3RVcGRhdGVkID0gTW9kZWxFdmVudHMuY29ubmVjdFVwZGF0ZWQodGhpcy5wcm9wcy5tb2RlbCwgKGFyZ3MpID0+IHtcbiAgICAgIGlmICghdGhpcy5wcm9wcy5hdHRyaWJ1dGUgfHwgYXJncy5tb2RlbC5pc0F0dHJpYnV0ZUxvYWRlZCh0aGlzLnByb3BzLmF0dHJpYnV0ZSkpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZShcbiAgICAgICAgICB7bW9kZWw6IGFyZ3MubW9kZWx9LFxuICAgICAgICAgICgpID0+IHRoaXMuc2V0QXR0cmlidXRlKClcbiAgICAgICAgKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5sb2FkTW9kZWxXaXRoQXR0cmlidXRlKClcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLy8gVGhpcyBsb2FkcyB0aGUgbW9kZWwgZnJvbSB0aGUgYmFja2VuZCB3aXRoIHRoZSBwcmltYXJ5IGtleSBhbmQgdGhlIGF0dHJpYnV0ZSBhbmQgY2FsbHMgc2V0QXR0cmlidXRlXG4gIGFzeW5jIGxvYWRNb2RlbFdpdGhBdHRyaWJ1dGUgKCkge1xuICAgIGNvbnN0IGlkID0gdGhpcy5wcm9wcy5tb2RlbC5wcmltYXJ5S2V5KClcbiAgICBjb25zdCBtb2RlbENsYXNzID0gdGhpcy5wcm9wcy5tb2RlbC5tb2RlbENsYXNzKClcbiAgICBjb25zdCBtb2RlbE5hbWUgPSBkaWdnKG1vZGVsQ2xhc3MubW9kZWxDbGFzc0RhdGEoKSwgXCJuYW1lXCIpXG4gICAgY29uc3QgcHJpbWFyeUtleSA9IGRpZ2cobW9kZWxDbGFzcy5tb2RlbENsYXNzRGF0YSgpLCBcInByaW1hcnlLZXlcIilcblxuICAgIGNvbnN0IGFyZ3MgPSB7fVxuICAgIGFyZ3NbYCR7cHJpbWFyeUtleX1fZXFgXSA9IGlkXG5cbiAgICBjb25zdCBzZWxlY3QgPSB7fVxuICAgIHNlbGVjdFttb2RlbE5hbWVdID0gW3ByaW1hcnlLZXksIHRoaXMucHJvcHMuYXR0cmlidXRlXVxuXG4gICAgY29uc3QgbW9kZWwgPSBhd2FpdCBtb2RlbENsYXNzXG4gICAgICAucmFuc2FjayhhcmdzKVxuICAgICAgLnNlbGVjdChzZWxlY3QpXG4gICAgICAuZmlyc3QoKVxuXG4gICAgdGhpcy5zZXRTdGF0ZShcbiAgICAgIHttb2RlbH0sXG4gICAgICAoKSA9PiB0aGlzLnNldEF0dHJpYnV0ZSgpXG4gICAgKVxuICB9XG5cbiAgc2V0QXR0cmlidXRlICgpIHtcbiAgICBsZXQgbmV3VmFsdWVcblxuICAgIGlmICh0aGlzLnByb3BzLm9uVmFsdWUpIHtcbiAgICAgIG5ld1ZhbHVlID0gdGhpcy5wcm9wcy5vblZhbHVlLmFwcGx5KG51bGwsIFt7bW9kZWw6IHRoaXMuc3RhdGUubW9kZWx9XSlcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCF0aGlzLnN0YXRlLm1vZGVsW3RoaXMucHJvcHMuYXR0cmlidXRlXSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIHN1Y2ggbWV0aG9kOiAke2RpZ2codGhpcy5zdGF0ZS5tb2RlbC5tb2RlbENsYXNzRGF0YSgpLCBcIm5hbWVcIil9IyR7dGhpcy5wcm9wcy5hdHRyaWJ1dGV9KClgKVxuICAgICAgfVxuXG4gICAgICBuZXdWYWx1ZSA9IHRoaXMuc3RhdGUubW9kZWxbdGhpcy5wcm9wcy5hdHRyaWJ1dGVdLmFwcGx5KHRoaXMuc3RhdGUubW9kZWwpXG4gICAgfVxuXG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICB2YWx1ZTogbmV3VmFsdWVcbiAgICB9KVxuICB9XG5cbiAgcmVuZGVyICgpIHtcbiAgICBpZiAodGhpcy5zdGF0ZS52YWx1ZSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gbnVsbFxuXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUudmFsdWVcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFRQSxJQUFJLFFBQU8sV0FBVztBQUM5QixPQUFPQyxXQUFXLE1BQU0sZ0JBQWdCO0FBQ3hDLE9BQU9DLFNBQVMsTUFBTSxZQUFZO0FBQ2xDLE9BQU9DLGNBQWMsTUFBTSxrQkFBa0I7QUFDN0MsT0FBT0MsS0FBSyxNQUFNLE9BQU87QUFFekIsZUFBZSxNQUFNQyx3QkFBd0IsU0FBU0QsS0FBSyxDQUFDRSxhQUFhLENBQUM7RUFDeEUsT0FBT0MsU0FBUyxHQUFHSixjQUFjLENBQUM7SUFDaENLLFNBQVMsRUFBRU4sU0FBUyxDQUFDTyxNQUFNO0lBQzNCQyxLQUFLLEVBQUVSLFNBQVMsQ0FBQ1MsTUFBTSxDQUFDQyxVQUFVO0lBQ2xDQyxPQUFPLEVBQUVYLFNBQVMsQ0FBQ1k7RUFDckIsQ0FBQyxDQUFDO0VBRUZDLFdBQVdBLENBQUVDLEtBQUssRUFBRTtJQUNsQixLQUFLLENBQUNBLEtBQUssQ0FBQztJQUNaLElBQUksQ0FBQ0MsS0FBSyxHQUFHO01BQ1hQLEtBQUssRUFB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
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import escapeStringRegexp from "escape-string-regexp";
|
|
2
|
+
const replaces = {
|
|
3
|
+
" ": "+",
|
|
4
|
+
"&": "%26",
|
|
5
|
+
"#": "%23",
|
|
6
|
+
"+": "%2B",
|
|
7
|
+
"/": "%2F",
|
|
8
|
+
"?": "%3F"
|
|
9
|
+
};
|
|
10
|
+
const regexp = new RegExp(`(${Object.keys(replaces).map(escapeStringRegexp).join("|")})`, "g");
|
|
11
|
+
const urlEncode = string => {
|
|
12
|
+
return String(string).replaceAll(regexp, character => replaces[character]);
|
|
13
|
+
};
|
|
14
|
+
export default urlEncode;
|
|
15
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJlc2NhcGVTdHJpbmdSZWdleHAiLCJyZXBsYWNlcyIsInJlZ2V4cCIsIlJlZ0V4cCIsIk9iamVjdCIsImtleXMiLCJtYXAiLCJqb2luIiwidXJsRW5jb2RlIiwic3RyaW5nIiwiU3RyaW5nIiwicmVwbGFjZUFsbCIsImNoYXJhY3RlciJdLCJzb3VyY2VzIjpbIi4uL3NyYy91cmwtZW5jb2RlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBlc2NhcGVTdHJpbmdSZWdleHAgZnJvbSBcImVzY2FwZS1zdHJpbmctcmVnZXhwXCJcblxuY29uc3QgcmVwbGFjZXMgPSB7XG4gIFwiIFwiOiBcIitcIixcbiAgXCImXCI6IFwiJTI2XCIsXG4gIFwiI1wiOiBcIiUyM1wiLFxuICBcIitcIjogXCIlMkJcIixcbiAgXCIvXCI6IFwiJTJGXCIsXG4gIFwiP1wiOiBcIiUzRlwiXG59XG5cbmNvbnN0IHJlZ2V4cCA9IG5ldyBSZWdFeHAoYCgke09iamVjdC5rZXlzKHJlcGxhY2VzKS5tYXAoZXNjYXBlU3RyaW5nUmVnZXhwKS5qb2luKFwifFwiKX0pYCwgXCJnXCIpXG5cbmNvbnN0IHVybEVuY29kZSA9IChzdHJpbmcpID0+IHtcbiAgcmV0dXJuIFN0cmluZyhzdHJpbmcpLnJlcGxhY2VBbGwocmVnZXhwLCAoY2hhcmFjdGVyKSA9PiByZXBsYWNlc1tjaGFyYWN0ZXJdKVxufVxuXG5leHBvcnQgZGVmYXVsdCB1cmxFbmNvZGVcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0Esa0JBQWtCLE1BQU0sc0JBQXNCO0FBRXJELE1BQU1DLFFBQVEsR0FBRztFQUNmLEdBQUcsRUFBRSxHQUFHO0VBQ1IsR0FBRyxFQUFFLEtBQUs7RUFDVixHQUFHLEVBQUUsS0FBSztFQUNWLEdBQUcsRUFBRSxLQUFLO0VBQ1YsR0FBRyxFQUFFLEtBQUs7RUFDVixHQUFHLEVBQUU7QUFDUCxDQUFDO0FBRUQsTUFBTUMsTUFBTSxHQUFHLElBQUlDLE1BQU0sQ0FBQyxJQUFJQyxNQUFNLENBQUNDLElBQUksQ0FBQ0osUUFBUSxDQUFDLENBQUNLLEdBQUcsQ0FBQ04sa0JBQWtCLENBQUMsQ0FBQ08sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO0FBRTlGLE1BQU1DLFNBQVMsR0FBSUMsTUFBTSxJQUFLO0VBQzVCLE9BQU9DLE1BQU0sQ0FBQ0QsTUFBTSxDQUFDLENBQUNFLFVBQVUsQ0FBQ1QsTUFBTSxFQUFHVSxTQUFTLElBQUtYLFFBQVEsQ0FBQ1csU0FBUyxDQUFDLENBQUM7QUFDOUUsQ0FBQztBQUVELGVBQWVKLFNBQVMiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { useCallback, useLayoutEffect } from "react";
|
|
2
|
+
import apiMakerConfig from "@kaspernj/api-maker/build/config";
|
|
3
|
+
import { Dimensions } from "react-native";
|
|
4
|
+
import useShape from "set-state-compare/src/use-shape";
|
|
5
|
+
const calculateBreakPoint = window => {
|
|
6
|
+
const windowWidth = window.width;
|
|
7
|
+
const result = {};
|
|
8
|
+
for (const breakpointData of apiMakerConfig.getBreakPoints()) {
|
|
9
|
+
const breakpoint = breakpointData[0];
|
|
10
|
+
const width = breakpointData[1];
|
|
11
|
+
if (!result.name && windowWidth >= width) {
|
|
12
|
+
result.name = breakpoint;
|
|
13
|
+
}
|
|
14
|
+
result[`${breakpoint}Down`] = !result.name;
|
|
15
|
+
result[`${breakpoint}Up`] = Boolean(result.name);
|
|
16
|
+
}
|
|
17
|
+
if (result.name) {
|
|
18
|
+
return result;
|
|
19
|
+
}
|
|
20
|
+
throw new Error(`Couldn't not find breakpoint from window width: ${windowWidth}`);
|
|
21
|
+
};
|
|
22
|
+
const useBreakpoint = () => {
|
|
23
|
+
const s = useShape();
|
|
24
|
+
const onCalled = useCallback(({
|
|
25
|
+
window
|
|
26
|
+
}) => {
|
|
27
|
+
const breakpoint = calculateBreakPoint(window);
|
|
28
|
+
if (breakpoint.name != s.s.breakpoint.name) {
|
|
29
|
+
s.set({
|
|
30
|
+
breakpoint
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}, []);
|
|
34
|
+
s.useStates({
|
|
35
|
+
breakpoint: () => calculateBreakPoint(Dimensions.get("window"))
|
|
36
|
+
});
|
|
37
|
+
useLayoutEffect(() => {
|
|
38
|
+
const subscription = Dimensions.addEventListener("change", onCalled);
|
|
39
|
+
return () => subscription?.remove();
|
|
40
|
+
});
|
|
41
|
+
return s.s.breakpoint;
|
|
42
|
+
};
|
|
43
|
+
export default useBreakpoint;
|
|
44
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZUxheW91dEVmZmVjdCIsImFwaU1ha2VyQ29uZmlnIiwiRGltZW5zaW9ucyIsInVzZVNoYXBlIiwiY2FsY3VsYXRlQnJlYWtQb2ludCIsIndpbmRvdyIsIndpbmRvd1dpZHRoIiwid2lkdGgiLCJyZXN1bHQiLCJicmVha3BvaW50RGF0YSIsImdldEJyZWFrUG9pbnRzIiwiYnJlYWtwb2ludCIsIm5hbWUiLCJCb29sZWFuIiwiRXJyb3IiLCJ1c2VCcmVha3BvaW50IiwicyIsIm9uQ2FsbGVkIiwic2V0IiwidXNlU3RhdGVzIiwiZ2V0Iiwic3Vic2NyaXB0aW9uIiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy91c2UtYnJlYWtwb2ludC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3VzZUNhbGxiYWNrLCB1c2VMYXlvdXRFZmZlY3R9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgYXBpTWFrZXJDb25maWcgZnJvbSBcIkBrYXNwZXJuai9hcGktbWFrZXIvYnVpbGQvY29uZmlnXCJcbmltcG9ydCB7RGltZW5zaW9uc30gZnJvbSBcInJlYWN0LW5hdGl2ZVwiXG5pbXBvcnQgdXNlU2hhcGUgZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL3NyYy91c2Utc2hhcGVcIlxuXG5jb25zdCBjYWxjdWxhdGVCcmVha1BvaW50ID0gKHdpbmRvdykgPT4ge1xuICBjb25zdCB3aW5kb3dXaWR0aCA9IHdpbmRvdy53aWR0aFxuICBjb25zdCByZXN1bHQgPSB7fVxuXG4gIGZvciAoY29uc3QgYnJlYWtwb2ludERhdGEgb2YgYXBpTWFrZXJDb25maWcuZ2V0QnJlYWtQb2ludHMoKSkge1xuICAgIGNvbnN0IGJyZWFrcG9pbnQgPSBicmVha3BvaW50RGF0YVswXVxuICAgIGNvbnN0IHdpZHRoID0gYnJlYWtwb2ludERhdGFbMV1cblxuICAgIGlmICghcmVzdWx0Lm5hbWUgJiYgd2luZG93V2lkdGggPj0gd2lkdGgpIHtcbiAgICAgIHJlc3VsdC5uYW1lID0gYnJlYWtwb2ludFxuICAgIH1cblxuICAgIHJlc3VsdFtgJHticmVha3BvaW50fURvd25gXSA9ICFyZXN1bHQubmFtZVxuICAgIHJlc3VsdFtgJHticmVha3BvaW50fVVwYF0gPSBCb29sZWFuKHJlc3VsdC5uYW1lKVxuICB9XG5cbiAgaWYgKHJlc3VsdC5uYW1lKSB7XG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG5cbiAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZG4ndCBub3QgZmluZCBicmVha3BvaW50IGZyb20gd2luZG93IHdpZHRoOiAke3dpbmRvd1dpZHRofWApXG59XG5cbmNvbnN0IHVzZUJyZWFrcG9pbnQgPSAoKSA9PiB7XG4gIGNvbnN0IHMgPSB1c2VTaGFwZSgpXG4gIGNvbnN0IG9uQ2FsbGVkID0gdXNlQ2FsbGJhY2soKHt3aW5kb3d9KSA9PiB7XG4gICAgY29uc3QgYnJlYWtwb2ludCA9IGNhbGN1bGF0ZUJyZWFrUG9pbnQod2luZG93KVxuXG4gICAgaWYgKGJyZWFrcG9pbnQubmFtZSAhPSBzLnMuYnJlYWtwb2ludC5uYW1lKSB7XG4gICAgICBzLnNldCh7YnJlYWtwb2ludH0pXG4gICAgfVxuICB9LCBbXSlcblxuICBzLnVzZVN0YXRlcyh7XG4gICAgYnJlYWtwb2ludDogKCkgPT4gY2FsY3VsYXRlQnJlYWtQb2ludChEaW1lbnNpb25zLmdldChcIndpbmRvd1wiKSlcbiAgfSlcblxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IERpbWVuc2lvbnMuYWRkRXZlbnRMaXN0ZW5lcihcImNoYW5nZVwiLCBvbkNhbGxlZClcblxuICAgIHJldHVybiAoKSA9PiBzdWJzY3JpcHRpb24/LnJlbW92ZSgpXG4gIH0pXG5cbiAgcmV0dXJuIHMucy5icmVha3BvaW50XG59XG5cbmV4cG9ydCBkZWZhdWx0IHVzZUJyZWFrcG9pbnRcbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUUEsV0FBVyxFQUFFQyxlQUFlLFFBQU8sT0FBTztBQUNsRCxPQUFPQyxjQUFjLE1BQU0sa0NBQWtDO0FBQzdELFNBQVFDLFVBQVUsUUFBTyxjQUFjO0FBQ3ZDLE9BQU9DLFFBQVEsTUFBTSxpQ0FBaUM7QUFFdEQsTUFBTUMsbUJBQW1CLEdBQUlDLE1BQU0sSUFBSztFQUN0QyxNQUFNQyxXQUFXLEdBQUdELE1BQU0sQ0FBQ0UsS0FBSztFQUNoQyxNQUFNQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0VBRWpCLEtBQUssTUFBTUMsY0FBYyxJQUFJUixjQUFjLENBQUNTLGNBQWMsQ0FBQyxDQUFDLEVBQUU7SUFDNUQsTUFBTUMsVUFBVSxHQUFHRixjQUFjLENBQUMsQ0FBQyxDQUFDO0lBQ3BDLE1BQU1GLEtBQUssR0FBR0UsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUUvQixJQUFJLENBQUNELE1BQU0sQ0FBQ0ksSUFBSSxJQUFJTixXQUFXLElBQUlDLEtBQUssRUFBRTtNQUN4Q0MsTUFBTSxDQUFDSSxJQUFJLEdBQUdELFVBQVU7SUFDMUI7SUFFQUgsTUFBTSxDQUFDLEdBQUdHLFVBQVUsTUFBTSxDQUFDLEdBQUcsQ0FBQ0gsTUFBTSxDQUFDSSxJQUFJO0lBQzFDSixNQUFNLENBQUMsR0FBR0csVUFBVSxJQUFJLENBQUMsR0FBR0UsT0FBTyxDQUFDTCxNQUFNLENBQUNJLElBQUksQ0FBQztFQUNsRDtFQUVBLElBQUlKLE1BQU0sQ0FBQ0ksSUFBSSxFQUFFO0lBQ2YsT0FBT0osTUFBTTtFQUNmO0VBRUEsTUFBTSxJQUFJTSxLQUFLLENBQUMsbURBQW1EUixXQUFXLEVBQUUsQ0FBQztBQUNuRixDQUFDO0FBRUQsTUFBTVMsYUFBYSxHQUFHQSxDQUFBLEtBQU07RUFDMUIsTUFBTUMsQ0FBQyxHQUFHYixRQUFRLENBQUMsQ0FBQztFQUNwQixNQUFNYyxRQUFRLEdBQUdsQixXQUFXLENBQUMsQ0FBQztJQUFDTTtFQUFNLENBQUMsS0FBSztJQUN6QyxNQUFNTSxVQUFVLEdBQUdQLG1CQUFtQixDQUFDQyxNQUFNLENBQUM7SUFFOUMsSUFBSU0sVUFBVSxDQUFDQyxJQUFJLElBQUlJLENBQUMsQ0FBQ0EsQ0FBQyxDQUFDTCxVQUFVLENBQUNDLElBQUksRUFBRTtNQUMxQ0ksQ0FBQyxDQUFDRSxHQUFHLENBQUM7UUFBQ1A7TUFBVSxDQUFDLENBQUM7SUFDckI7RUFDRixDQUFDLEVBQUUsRUFBRSxDQUFDO0VBRU5LLENBQUMsQ0FBQ0csU0FBUyxDQUFDO0lBQ1ZSLFVBQVUsRUFBRUEsQ0FBQSxLQUFNUCxtQkFBbUIsQ0FBQ0YsVUFBVSxDQUFDa0IsR0FBRyxDQUFDLFFBQVEsQ0FBQztFQUNoRSxDQUFDLENBQUM7RUFFRnBCLGVBQWUsQ0FBQyxNQUFNO0lBQ3BCLE1BQU1xQixZQUFZLEdBQUduQixVQUFVLENBQUNvQixnQkFBZ0IsQ0FBQyxRQUFRLEVBQUVMLFFBQVEsQ0FBQztJQUVwRSxPQUFPLE1BQU1JLFlBQVksRUFBRUUsTUFBTSxDQUFDLENBQUM7RUFDckMsQ0FBQyxDQUFDO0VBRUYsT0FBT1AsQ0FBQyxDQUFDQSxDQUFDLENBQUNMLFVBQVU7QUFDdkIsQ0FBQztBQUVELGVBQWVJLGFBQWEiLCJpZ25vcmVMaXN0IjpbXX0=
|