@kaspernj/api-maker 1.0.2011 → 1.0.2012
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} +10 -1
- 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.js +135 -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 +129 -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 +131 -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 +9 -0
- package/build/collection-loader.js +48 -0
- package/build/collection.js +280 -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 +62 -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 +112 -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-emitter-listener.js +15 -0
- package/build/event-model-class.js +24 -0
- package/build/events.js +5 -0
- package/build/flash-message.js +79 -0
- package/build/form.js +83 -0
- package/build/history-expo.js +20 -0
- package/build/history-react-native.js +20 -0
- package/build/history.js +3 -0
- package/build/index.js +3 -0
- package/build/inputs/attachment.js +133 -0
- package/build/inputs/auto-submit.js +36 -0
- package/build/inputs/checkbox.js +138 -0
- package/build/inputs/checkboxes.js +112 -0
- package/build/inputs/id-for-component.js +15 -0
- package/build/inputs/input-wrapper.js +19 -0
- package/build/inputs/input.js +243 -0
- package/build/inputs/money.js +179 -0
- package/build/inputs/name-for-component.js +13 -0
- package/build/inputs/select.js +93 -0
- package/build/instance-of-class-name.js +23 -0
- package/build/key-value-store.js +53 -0
- package/build/link.js +73 -0
- package/build/logger.js +30 -0
- package/build/modal.js +38 -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 +78 -0
- package/build/not-loaded-error.js +2 -0
- package/build/params.js +61 -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 +270 -0
- package/build/router/switch.js +72 -0
- package/build/router.js +59 -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 +134 -0
- package/build/source-maps-loader.js +184 -0
- package/build/super-admin/config-reader.js +85 -0
- package/build/super-admin/edit-page/edit-attribute-checkbox.js +85 -0
- package/build/super-admin/edit-page/edit-attribute-content.js +55 -0
- package/build/super-admin/edit-page/edit-attribute-input.js +79 -0
- package/build/super-admin/edit-page/edit-attribute.js +77 -0
- package/build/super-admin/edit-page.js +123 -0
- package/build/super-admin/has-edit-config.js +12 -0
- package/build/super-admin/index-page.js +25 -0
- package/build/super-admin/index.js +181 -0
- package/build/super-admin/layout/header/index.js +161 -0
- package/build/super-admin/layout/index.js +164 -0
- package/build/super-admin/layout/menu/index.js +206 -0
- package/build/super-admin/layout/menu/menu-content.js +46 -0
- package/build/super-admin/layout/menu/menu-item.js +84 -0
- package/build/super-admin/layout/no-access.js +27 -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 +51 -0
- package/build/super-admin/show-page/belongs-to-attribute-row.js +29 -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 +48 -0
- package/build/super-admin/show-reflection-page.js +48 -0
- package/build/table/column-content.js +117 -0
- package/build/table/column-identifier.js +18 -0
- package/build/table/column-visible.js +7 -0
- package/build/table/components/column.js +21 -0
- package/build/table/components/flat-list.js +21 -0
- package/build/table/components/header.js +26 -0
- package/build/table/components/row.js +26 -0
- package/build/table/filters/attribute-element.js +44 -0
- package/build/table/filters/filter-form.js +402 -0
- package/build/table/filters/filter.js +90 -0
- package/build/table/filters/index.js +184 -0
- package/build/table/filters/load-search-modal.js +175 -0
- package/build/table/filters/reflection-element.js +37 -0
- package/build/table/filters/save-search-modal.js +88 -0
- package/build/table/filters/scope-element.js +42 -0
- package/build/table/header-column-content.js +68 -0
- package/build/table/header-column.js +144 -0
- package/build/table/header-select.js +105 -0
- package/build/table/model-callback-args.js +10 -0
- package/build/table/model-column.js +97 -0
- package/build/table/model-row.js +193 -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 +79 -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 +12 -0
- package/build/updated-attribute.js +76 -0
- package/build/url-encode.js +15 -0
- package/build/use-breakpoint.js +62 -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 +76 -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 +137 -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 +104 -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 +78 -0
- package/build/utils/checkboxes.js +163 -0
- package/build/utils/default-style.js +18 -0
- package/build/utils/icon.js +23 -0
- package/build/utils/invalid-feedback.js +19 -0
- package/build/utils/modal.js +62 -0
- package/build/utils/text.js +19 -0
- package/build/validation-error.js +28 -0
- package/build/validation-errors.js +98 -0
- package/build/with-api-maker.js +29 -0
- package/build/with-collection.js +14 -0
- package/build/with-current-user.js +10 -0
- package/build/with-model.js +15 -0
- package/build/with-router.js +22 -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/link.sh +8 -0
- package/package.json +49 -46
- package/src/{api.mjs → api.js} +38 -37
- package/src/base-component.jsx +5 -0
- package/src/{base-error.mjs → base-error.js} +4 -6
- package/src/base-model/attribute.js +33 -0
- package/src/base-model/column.js +13 -0
- package/src/base-model/reflection.js +15 -0
- package/src/base-model/scope.js +12 -0
- package/src/{base-model.mjs → base-model.js} +302 -144
- package/src/bootstrap/attribute-row.jsx +135 -0
- package/src/bootstrap/attribute-rows.jsx +27 -0
- package/src/bootstrap/card.jsx +149 -0
- package/src/bootstrap/checkbox.jsx +86 -0
- package/src/bootstrap/checkboxes.jsx +185 -0
- package/src/bootstrap/index.js +0 -0
- package/src/bootstrap/input.jsx +173 -0
- package/src/bootstrap/invalid-feedback.jsx +31 -0
- package/src/bootstrap/paginate.jsx +187 -0
- package/src/bootstrap/radio-buttons.jsx +87 -0
- package/src/bootstrap/select.jsx +110 -0
- package/src/bootstrap/sort-link.jsx +106 -0
- package/src/{cable-connection-pool.mjs → cable-connection-pool.js} +16 -36
- package/src/{cable-subscription-pool.mjs → cable-subscription-pool.js} +26 -21
- package/src/{cable-subscription.mjs → cable-subscription.js} +6 -4
- package/src/cache-key-generator.js +100 -0
- package/src/{can-can.mjs → can-can.js} +13 -12
- package/src/channels-consumer.js +10 -0
- package/src/collection-loader.jsx +58 -224
- package/src/{collection.mjs → collection.js} +98 -44
- package/src/{command-submit-data.mjs → command-submit-data.js} +2 -7
- package/src/{commands-pool.mjs → commands-pool.js} +57 -41
- package/src/compose.js +11 -0
- package/src/{config.mjs → config.js} +6 -2
- package/src/{custom-error.mjs → custom-error.js} +1 -1
- package/src/data-set-to-attributes.js +13 -0
- package/src/{deserializer.mjs → deserializer.js} +3 -3
- package/src/destroy-error.js +7 -0
- package/src/devise.js +129 -0
- package/src/draggable-sort/controller.js +137 -0
- package/src/draggable-sort/index.jsx +108 -0
- package/src/draggable-sort/item.jsx +174 -0
- package/src/{error-logger.mjs → error-logger.js} +12 -7
- package/src/{error-messages.mjs → error-messages.js} +1 -0
- package/src/event-connection.jsx +1 -1
- package/src/event-emitter-listener.jsx +8 -27
- package/src/event-model-class.jsx +2 -4
- package/src/events.js +7 -0
- package/src/flash-message.js +70 -0
- package/src/form.jsx +91 -0
- package/src/history-expo.js +23 -0
- package/src/history-react-native.js +25 -0
- package/src/history.js +3 -0
- package/src/index.js +3 -0
- package/src/inputs/attachment.jsx +108 -0
- package/src/inputs/auto-submit.js +37 -0
- package/src/inputs/checkbox.jsx +125 -0
- package/src/inputs/checkboxes.jsx +116 -0
- package/src/inputs/id-for-component.js +15 -0
- package/src/inputs/input-wrapper.jsx +16 -0
- package/src/inputs/input.jsx +260 -0
- package/src/inputs/money.jsx +187 -0
- package/src/inputs/name-for-component.js +15 -0
- package/src/inputs/select.jsx +104 -0
- package/src/{key-value-store.mjs → key-value-store.js} +1 -1
- package/src/link.jsx +54 -9
- package/src/logger.js +38 -0
- package/src/modal.jsx +37 -0
- package/src/model-class-require.js +17 -0
- package/src/{model-events.mjs → model-events.js} +1 -1
- package/src/{model-name.mjs → model-name.js} +8 -8
- package/src/{model-recipes-loader.mjs → model-recipes-loader.js} +1 -1
- package/src/{model-recipes-model-loader.mjs → model-recipes-model-loader.js} +5 -5
- package/src/{models-response-reader.mjs → models-response-reader.js} +3 -4
- package/src/models.js +7 -0
- package/src/{models.mjs.erb → models.js.erb} +6 -3
- package/src/{money-formatter.mjs → money-formatter.js} +5 -4
- package/src/{params.mjs → params.js} +17 -7
- package/src/{preloaded.mjs → preloaded.js} +2 -2
- package/src/resize-observer.jsx +10 -0
- package/src/result.js +13 -0
- package/src/router/route.jsx +246 -0
- package/src/router/switch.jsx +76 -0
- package/src/router.jsx +23 -21
- package/src/{routes-native.mjs → routes-native.js} +12 -6
- package/src/{routes.mjs → routes.js} +1 -1
- package/src/run-last.js +39 -0
- package/src/{serializer.mjs → serializer.js} +2 -2
- package/src/{services.mjs → services.js} +1 -1
- package/src/session-status-updater.js +172 -0
- package/src/{source-maps-loader.mjs → source-maps-loader.js} +54 -28
- package/src/super-admin/config-reader.jsx +93 -0
- package/src/super-admin/edit-page/edit-attribute-checkbox.jsx +81 -0
- package/src/super-admin/edit-page/edit-attribute-content.jsx +57 -0
- package/src/super-admin/edit-page/edit-attribute-input.jsx +71 -0
- package/src/super-admin/edit-page/edit-attribute.jsx +81 -0
- package/src/super-admin/edit-page.jsx +117 -0
- package/src/super-admin/has-edit-config.js +15 -0
- package/src/super-admin/index-page.jsx +23 -0
- package/src/super-admin/index.jsx +197 -0
- package/src/super-admin/layout/header/index.jsx +144 -0
- package/src/super-admin/layout/header/style.scss +45 -0
- package/src/super-admin/layout/index.jsx +154 -0
- package/src/super-admin/layout/menu/index.jsx +171 -0
- package/src/super-admin/layout/menu/menu-content.jsx +43 -0
- package/src/super-admin/layout/menu/menu-item.jsx +70 -0
- package/src/super-admin/layout/menu/style.scss +11 -0
- package/src/super-admin/layout/no-access.jsx +26 -0
- package/src/super-admin/model-class-table.jsx +66 -0
- package/src/super-admin/models.js +11 -0
- package/src/super-admin/show-nav.jsx +44 -0
- package/src/super-admin/show-page/belongs-to-attribute-row.jsx +30 -0
- package/src/super-admin/show-page/index.jsx +141 -0
- package/src/super-admin/show-reflection-actions.jsx +49 -0
- package/src/super-admin/show-reflection-link.jsx +40 -0
- package/src/super-admin/show-reflection-page.jsx +47 -0
- package/src/super-admin/stylesheets/variables.scss +11 -0
- package/src/table/column-content.jsx +122 -0
- package/src/table/column-identifier.js +23 -0
- package/src/table/column-visible.js +7 -0
- package/src/table/components/column.jsx +19 -0
- package/src/table/components/flat-list.jsx +19 -0
- package/src/table/components/header.jsx +21 -0
- package/src/table/components/row.jsx +23 -0
- package/src/table/filters/attribute-element.jsx +47 -0
- package/src/table/filters/filter-form.jsx +407 -0
- package/src/table/filters/filter.jsx +70 -0
- package/src/table/filters/index.jsx +170 -0
- package/src/table/filters/load-search-modal.jsx +146 -0
- package/src/table/filters/reflection-element.jsx +38 -0
- package/src/table/filters/save-search-modal.jsx +74 -0
- package/src/table/filters/scope-element.jsx +44 -0
- package/src/table/header-column-content.jsx +55 -0
- package/src/table/header-column.jsx +129 -0
- package/src/table/header-select.jsx +73 -0
- package/src/table/model-callback-args.js +10 -0
- package/src/table/model-column.jsx +82 -0
- package/src/table/model-row.jsx +136 -0
- package/src/table/select-calculator.js +65 -0
- package/src/table/settings/column-row.jsx +93 -0
- package/src/table/settings/download-action.jsx +68 -0
- package/src/table/settings/index.jsx +65 -0
- package/src/table/table-settings.js +263 -0
- package/src/table/table.jsx +950 -0
- package/src/table/use-sorting.js +35 -0
- package/src/table/variables.scss +11 -0
- package/src/table/widths.jsx +87 -0
- package/src/table/worker-plugins-check-all-checkbox.jsx +112 -0
- package/src/table/worker-plugins-checkbox.jsx +104 -0
- package/src/translated-attributes.js +11 -0
- package/src/{translated-collections.mjs → translated-collections.js} +3 -2
- package/src/updated-attribute.jsx +1 -1
- package/src/url-encode.js +18 -0
- package/src/use-breakpoint.js +76 -0
- package/src/use-can-can.js +55 -0
- package/src/use-collection.js +280 -0
- package/src/use-created-event.js +55 -0
- package/src/use-current-user.js +88 -0
- package/src/use-destroyed-event.js +60 -0
- package/src/use-event-emitter.js +15 -0
- package/src/use-event-listener.js +19 -0
- package/src/use-input.js +157 -0
- package/src/use-model-event.js +60 -0
- package/src/use-model.js +189 -0
- package/src/use-resize-observer.js +24 -0
- package/src/use-router.jsx +128 -0
- package/src/use-screen-layout.js +49 -0
- package/src/use-updated-event.js +60 -0
- package/src/use-validation-errors.js +33 -0
- package/src/utils/card.jsx +49 -0
- package/src/utils/checkbox.jsx +80 -0
- package/src/utils/checkboxes.jsx +158 -0
- package/src/utils/default-style.jsx +25 -0
- package/src/utils/icon.jsx +21 -0
- package/src/utils/invalid-feedback.jsx +20 -0
- package/src/utils/modal.jsx +60 -0
- package/src/utils/text.jsx +16 -0
- package/src/{validation-error.mjs → validation-error.js} +9 -5
- package/src/{validation-errors.mjs → validation-errors.js} +15 -27
- package/src/with-api-maker.jsx +31 -0
- package/src/with-collection.jsx +17 -0
- package/src/with-current-user.jsx +7 -25
- package/src/with-model.jsx +16 -0
- package/src/with-router.jsx +7 -129
- package/__tests__/base-model.test.js +0 -71
- package/__tests__/cable-connection-pool.test.js +0 -227
- package/__tests__/cable-subscription-pool.test.js +0 -26
- package/__tests__/can-can.test.js +0 -34
- package/__tests__/collection.test.js +0 -51
- package/__tests__/custom-error.test.js +0 -13
- package/__tests__/model-name.test.js +0 -34
- package/__tests__/model-prop-type.test.js +0 -113
- package/__tests__/params.test.js +0 -40
- package/__tests__/routes-native.test.js +0 -103
- package/__tests__/routes.test.js +0 -46
- package/__tests__/serializer.test.js +0 -30
- package/__tests__/support/task.js +0 -27
- package/__tests__/support/user.js +0 -32
- package/index.js +0 -1
- package/jest.config.js +0 -4
- package/src/can-can-loader.jsx +0 -54
- package/src/channels-consumer.mjs +0 -3
- package/src/destroy-error.mjs +0 -7
- package/src/devise.mjs +0 -122
- package/src/event-created.jsx +0 -65
- package/src/event-destroyed.jsx +0 -29
- package/src/event-listener.jsx +0 -38
- package/src/event-updated.jsx +0 -74
- package/src/logger.mjs +0 -25
- package/src/model-class-require.mjs +0 -10
- package/src/model-load-wrapper.jsx +0 -116
- package/src/result.mjs +0 -29
- package/src/session-status-updater.mjs +0 -116
- package/webpack.config.js +0 -15
- /package/src/{attribute-not-loaded-error.mjs → attribute-not-loaded-error.js} +0 -0
- /package/src/{instance-of-class-name.mjs → instance-of-class-name.js} +0 -0
- /package/src/{model-prop-type.mjs → model-prop-type.js} +0 -0
- /package/src/{not-loaded-error.mjs → not-loaded-error.js} +0 -0
- /package/src/{translated-collections-data.mjs.erb → translated-collections-data.js.erb} +0 -0
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import BaseComponent from "../../base-component";
|
|
2
|
+
import { digg } from "diggerize";
|
|
3
|
+
import EditAttributeCheckbox from "./edit-attribute-checkbox";
|
|
4
|
+
import EditAttributeContent from "./edit-attribute-content";
|
|
5
|
+
import EditAttributeInput from "./edit-attribute-input";
|
|
6
|
+
import * as inflection from "inflection";
|
|
7
|
+
import Locales from "shared/locales";
|
|
8
|
+
import memo from "set-state-compare/src/memo";
|
|
9
|
+
import PropTypes from "prop-types";
|
|
10
|
+
import propTypesExact from "prop-types-exact";
|
|
11
|
+
import React from "react";
|
|
12
|
+
import { View } from "react-native";
|
|
13
|
+
import { shapeComponent } from "set-state-compare/src/shape-component";
|
|
14
|
+
export default memo(shapeComponent(class EditAttribute extends BaseComponent {
|
|
15
|
+
static propTypes = propTypesExact({
|
|
16
|
+
attribute: PropTypes.object.isRequired,
|
|
17
|
+
model: PropTypes.object,
|
|
18
|
+
modelClass: PropTypes.func
|
|
19
|
+
});
|
|
20
|
+
render() {
|
|
21
|
+
const {
|
|
22
|
+
attribute,
|
|
23
|
+
model,
|
|
24
|
+
modelClass
|
|
25
|
+
} = this.props;
|
|
26
|
+
const availableLocales = Locales.availableLocales();
|
|
27
|
+
const camelizedLower = digg(modelClass.modelClassData(), "camelizedLower");
|
|
28
|
+
const modelAttribute = modelClass.attributes().find(modelAttributeI => modelAttributeI.name() == attribute.attribute);
|
|
29
|
+
return /*#__PURE__*/React.createElement(View, {
|
|
30
|
+
dataSet: {
|
|
31
|
+
component: "api-maker/super-admin/edit-page/edit-attribute"
|
|
32
|
+
},
|
|
33
|
+
style: {
|
|
34
|
+
marginBottom: attribute.translated ? undefined : 12
|
|
35
|
+
}
|
|
36
|
+
}, (() => {
|
|
37
|
+
if (attribute.content) {
|
|
38
|
+
return /*#__PURE__*/React.createElement(EditAttributeContent, {
|
|
39
|
+
attribute: attribute,
|
|
40
|
+
id: `${inflection.underscore(camelizedLower)}_${inflection.underscore(attribute.attribute)}`,
|
|
41
|
+
model: model,
|
|
42
|
+
name: inflection.underscore(attribute.attribute)
|
|
43
|
+
});
|
|
44
|
+
} else if (attribute.translated) {
|
|
45
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, availableLocales.map(locale => /*#__PURE__*/React.createElement(View, {
|
|
46
|
+
key: locale,
|
|
47
|
+
style: {
|
|
48
|
+
marginBottom: 12
|
|
49
|
+
}
|
|
50
|
+
}, /*#__PURE__*/React.createElement(EditAttributeInput, {
|
|
51
|
+
attributeName: `${attribute.attribute}${inflection.camelize(locale)}`,
|
|
52
|
+
id: `${inflection.underscore(camelizedLower)}_${inflection.underscore(attribute.attribute)}_${locale}`,
|
|
53
|
+
label: `${modelClass.humanAttributeName(attribute.attribute)} (${locale})`,
|
|
54
|
+
model: model,
|
|
55
|
+
name: `${inflection.underscore(attribute.attribute)}_${locale}`
|
|
56
|
+
}))));
|
|
57
|
+
} else if (modelAttribute?.getColumn()?.getType() == "boolean") {
|
|
58
|
+
return /*#__PURE__*/React.createElement(EditAttributeCheckbox, {
|
|
59
|
+
attributeName: attribute.attribute,
|
|
60
|
+
id: `${inflection.underscore(camelizedLower)}_${inflection.underscore(attribute.attribute)}`,
|
|
61
|
+
label: modelClass.humanAttributeName(attribute.attribute),
|
|
62
|
+
model: model,
|
|
63
|
+
name: inflection.underscore(attribute.attribute)
|
|
64
|
+
});
|
|
65
|
+
} else {
|
|
66
|
+
return /*#__PURE__*/React.createElement(EditAttributeInput, {
|
|
67
|
+
attributeName: attribute.attribute,
|
|
68
|
+
id: `${inflection.underscore(camelizedLower)}_${inflection.underscore(attribute.attribute)}`,
|
|
69
|
+
label: modelClass.humanAttributeName(attribute.attribute),
|
|
70
|
+
model: model,
|
|
71
|
+
name: inflection.underscore(attribute.attribute)
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
})());
|
|
75
|
+
}
|
|
76
|
+
}));
|
|
77
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlQ29tcG9uZW50IiwiZGlnZyIsIkVkaXRBdHRyaWJ1dGVDaGVja2JveCIsIkVkaXRBdHRyaWJ1dGVDb250ZW50IiwiRWRpdEF0dHJpYnV0ZUlucHV0IiwiaW5mbGVjdGlvbiIsIkxvY2FsZXMiLCJtZW1vIiwiUHJvcFR5cGVzIiwicHJvcFR5cGVzRXhhY3QiLCJSZWFjdCIsIlZpZXciLCJzaGFwZUNvbXBvbmVudCIsIkVkaXRBdHRyaWJ1dGUiLCJwcm9wVHlwZXMiLCJhdHRyaWJ1dGUiLCJvYmplY3QiLCJpc1JlcXVpcmVkIiwibW9kZWwiLCJtb2RlbENsYXNzIiwiZnVuYyIsInJlbmRlciIsInByb3BzIiwiYXZhaWxhYmxlTG9jYWxlcyIsImNhbWVsaXplZExvd2VyIiwibW9kZWxDbGFzc0RhdGEiLCJtb2RlbEF0dHJpYnV0ZSIsImF0dHJpYnV0ZXMiLCJmaW5kIiwibW9kZWxBdHRyaWJ1dGVJIiwibmFtZSIsImNyZWF0ZUVsZW1lbnQiLCJkYXRhU2V0IiwiY29tcG9uZW50Iiwic3R5bGUiLCJtYXJnaW5Cb3R0b20iLCJ0cmFuc2xhdGVkIiwidW5kZWZpbmVkIiwiY29udGVudCIsImlkIiwidW5kZXJzY29yZSIsIkZyYWdtZW50IiwibWFwIiwibG9jYWxlIiwia2V5IiwiYXR0cmlidXRlTmFtZSIsImNhbWVsaXplIiwibGFiZWwiLCJodW1hbkF0dHJpYnV0ZU5hbWUiLCJnZXRDb2x1bW4iLCJnZXRUeXBlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N1cGVyLWFkbWluL2VkaXQtcGFnZS9lZGl0LWF0dHJpYnV0ZS5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJhc2VDb21wb25lbnQgZnJvbSBcIi4uLy4uL2Jhc2UtY29tcG9uZW50XCJcbmltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgRWRpdEF0dHJpYnV0ZUNoZWNrYm94IGZyb20gXCIuL2VkaXQtYXR0cmlidXRlLWNoZWNrYm94XCJcbmltcG9ydCBFZGl0QXR0cmlidXRlQ29udGVudCBmcm9tIFwiLi9lZGl0LWF0dHJpYnV0ZS1jb250ZW50XCJcbmltcG9ydCBFZGl0QXR0cmlidXRlSW5wdXQgZnJvbSBcIi4vZWRpdC1hdHRyaWJ1dGUtaW5wdXRcIlxuaW1wb3J0ICogYXMgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiXG5pbXBvcnQgTG9jYWxlcyBmcm9tIFwic2hhcmVkL2xvY2FsZXNcIlxuaW1wb3J0IG1lbW8gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL3NyYy9tZW1vXCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IHByb3BUeXBlc0V4YWN0IGZyb20gXCJwcm9wLXR5cGVzLWV4YWN0XCJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHtWaWV3fSBmcm9tIFwicmVhY3QtbmF0aXZlXCJcbmltcG9ydCB7c2hhcGVDb21wb25lbnR9IGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvc2hhcGUtY29tcG9uZW50XCJcblxuZXhwb3J0IGRlZmF1bHQgbWVtbyhzaGFwZUNvbXBvbmVudChjbGFzcyBFZGl0QXR0cmlidXRlIGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSBwcm9wVHlwZXNFeGFjdCh7XG4gICAgYXR0cmlidXRlOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgbW9kZWw6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbW9kZWxDbGFzczogUHJvcFR5cGVzLmZ1bmNcbiAgfSlcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge2F0dHJpYnV0ZSwgbW9kZWwsIG1vZGVsQ2xhc3N9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IGF2YWlsYWJsZUxvY2FsZXMgPSBMb2NhbGVzLmF2YWlsYWJsZUxvY2FsZXMoKVxuICAgIGNvbnN0IGNhbWVsaXplZExvd2VyID0gZGlnZyhtb2RlbENsYXNzLm1vZGVsQ2xhc3NEYXRhKCksIFwiY2FtZWxpemVkTG93ZXJcIilcbiAgICBjb25zdCBtb2RlbEF0dHJpYnV0ZSA9IG1vZGVsQ2xhc3MuYXR0cmlidXRlcygpLmZpbmQoKG1vZGVsQXR0cmlidXRlSSkgPT4gbW9kZWxBdHRyaWJ1dGVJLm5hbWUoKSA9PSBhdHRyaWJ1dGUuYXR0cmlidXRlKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxWaWV3IGRhdGFTZXQ9e3tjb21wb25lbnQ6IFwiYXBpLW1ha2VyL3N1cGVyLWFkbWluL2VkaXQtcGFnZS9lZGl0LWF0dHJpYnV0ZVwifX0gc3R5bGU9e3ttYXJnaW5Cb3R0b206IGF0dHJpYnV0ZS50cmFuc2xhdGVkID8gdW5kZWZpbmVkIDogMTJ9fT5cbiAgICAgICAgeygoKSA9PiB7XG4gICAgICAgICAgaWYgKGF0dHJpYnV0ZS5jb250ZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICA8RWRpdEF0dHJpYnV0ZUNvbnRlbnRcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGU9e2F0dHJpYnV0ZX1cbiAgICAgICAgICAgICAgICBpZD17YCR7aW5mbGVjdGlvbi51bmRlcnNjb3JlKGNhbWVsaXplZExvd2VyKX1fJHtpbmZsZWN0aW9uLnVuZGVyc2NvcmUoYXR0cmlidXRlLmF0dHJpYnV0ZSl9YH1cbiAgICAgICAgICAgICAgICBtb2RlbD17bW9kZWx9XG4gICAgICAgICAgICAgICAgbmFtZT17aW5mbGVjdGlvbi51bmRlcnNjb3JlKGF0dHJpYnV0ZS5hdHRyaWJ1dGUpfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKVxuICAgICAgICAgIH0gZWxzZSBpZiAoYXR0cmlidXRlLnRyYW5zbGF0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAge2F2YWlsYWJsZUxvY2FsZXMubWFwKChsb2NhbGUpID0+XG4gICAgICAgICAgICAgICAgICA8VmlldyBrZXk9e2xvY2FsZX0gc3R5bGU9e3ttYXJnaW5Cb3R0b206IDEyfX0+XG4gICAgICAgICAgICAgICAgICAgIDxFZGl0QXR0cmlidXRlSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVOYW1lPXtgJHthdHRyaWJ1dGUuYXR0cmlidXRlfSR7aW5mbGVjdGlvbi5jYW1lbGl6ZShsb2NhbGUpfWB9XG4gICAgICAgICAgICAgICAgICAgICAgaWQ9e2Ake2luZmxlY3Rpb24udW5kZXJzY29yZShjYW1lbGl6ZWRMb3dlcil9XyR7aW5mbGVjdGlvbi51bmRlcnNjb3JlKGF0dHJpYnV0ZS5hdHRyaWJ1dGUpfV8ke2xvY2FsZX1gfVxuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXtgJHttb2RlbENsYXNzLmh1bWFuQXR0cmlidXRlTmFtZShhdHRyaWJ1dGUuYXR0cmlidXRlKX0gKCR7bG9jYWxlfSlgfVxuICAgICAgICAgICAgICAgICAgICAgIG1vZGVsPXttb2RlbH1cbiAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtgJHtpbmZsZWN0aW9uLnVuZGVyc2NvcmUoYXR0cmlidXRlLmF0dHJpYnV0ZSl9XyR7bG9jYWxlfWB9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1ZpZXc+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApXG4gICAgICAgICAgfSBlbHNlIGlmIChtb2RlbEF0dHJpYnV0ZT8uZ2V0Q29sdW1uKCk/LmdldFR5cGUoKSA9PSBcImJvb2xlYW5cIikge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgPEVkaXRBdHRyaWJ1dGVDaGVja2JveFxuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZU5hbWU9e2F0dHJpYnV0ZS5hdHRyaWJ1dGV9XG4gICAgICAgICAgICAgICAgaWQ9e2Ake2luZmxlY3Rpb24udW5kZXJzY29yZShjYW1lbGl6ZWRMb3dlcil9XyR7aW5mbGVjdGlvbi51bmRlcnNjb3JlKGF0dHJpYnV0ZS5hdHRyaWJ1dGUpfWB9XG4gICAgICAgICAgICAgICAgbGFiZWw9e21vZGVsQ2xhc3MuaHVtYW5BdHRyaWJ1dGVOYW1lKGF0dHJpYnV0ZS5hdHRyaWJ1dGUpfVxuICAgICAgICAgICAgICAgIG1vZGVsPXttb2RlbH1cbiAgICAgICAgICAgICAgICBuYW1lPXtpbmZsZWN0aW9uLnVuZGVyc2NvcmUoYXR0cmlidXRlLmF0dHJpYnV0ZSl9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxFZGl0QXR0cmlidXRlSW5wdXRcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVOYW1lPXthdHRyaWJ1dGUuYXR0cmlidXRlfVxuICAgICAgICAgICAgICAgIGlkPXtgJHtpbmZsZWN0aW9uLnVuZGVyc2NvcmUoY2FtZWxpemVkTG93ZXIpfV8ke2luZmxlY3Rpb24udW5kZXJzY29yZShhdHRyaWJ1dGUuYXR0cmlidXRlKX1gfVxuICAgICAgICAgICAgICAgIGxhYmVsPXttb2RlbENsYXNzLmh1bWFuQXR0cmlidXRlTmFtZShhdHRyaWJ1dGUuYXR0cmlidXRlKX1cbiAgICAgICAgICAgICAgICBtb2RlbD17bW9kZWx9XG4gICAgICAgICAgICAgICAgbmFtZT17aW5mbGVjdGlvbi51bmRlcnNjb3JlKGF0dHJpYnV0ZS5hdHRyaWJ1dGUpfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cbiAgICAgICAgfSkoKX1cbiAgICAgIDwvVmlldz5cbiAgICApXG4gIH1cbn0pKVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxhQUFhLE1BQU0sc0JBQXNCO0FBQ2hELFNBQVFDLElBQUksUUFBTyxXQUFXO0FBQzlCLE9BQU9DLHFCQUFxQixNQUFNLDJCQUEyQjtBQUM3RCxPQUFPQyxvQkFBb0IsTUFBTSwwQkFBMEI7QUFDM0QsT0FBT0Msa0JBQWtCLE1BQU0sd0JBQXdCO0FBQ3ZELE9BQU8sS0FBS0MsVUFBVSxNQUFN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QixDQUFDakMsU0FBUyxDQUFDQSxTQUFTLENBQUMsS0FBSzRCLE1BQU0sR0FBSTtVQUMzRXpCLEtBQUssRUFBRUEsS0FBTTtVQUNiWSxJQUFJLEVBQUUsR0FBR3pCLFVBQVUsQ0FBQ21DLFVBQVUsQ0FBQ3pCLFNBQVMsQ0FBQ0EsU0FBUyxDQUFDLElBQUk0QixNQUFNO1FBQUcsQ0FDakUsQ0FDRyxDQUNSLENBQ0EsQ0FBQztNQUVQLENBQUMsTUFBTSxJQUFJakIsY0FBYyxFQUFFdUIsU0FBUyxDQUFDLENBQUMsRUFBRUMsT0FBTyxDQUFDLENBQUMsSUFBSSxTQUFTLEVBQUU7UUFDOUQsb0JBQ0V4QyxLQUFBLENBQUFxQixhQUFBLENBQUM3QixxQkFBcUI7VUFDcEIyQyxhQUFhLEVBQUU5QixTQUFTLENBQUNBLFNBQVU7VUFDbkN3QixFQUFFLEVBQUUsR0FBR2xDLFVBQVUsQ0FBQ21DLFVBQVUsQ0FBQ2hCLGNBQWMsQ0FBQyxJQUFJbkIsVUFBVSxDQUFDbUMsVUFBVSxDQUFDekIsU0FBUyxDQUFDQSxTQUFTLENBQUMsRUFBRztVQUM3RmdDLEtBQUssRUFBRTVCLFVBQVUsQ0FBQzZCLGtCQUFrQixDQUFDakMsU0FBUyxDQUFDQSxTQUFTLENBQUU7VUFDMURHLEtBQUssRUFBRUEsS0FBTTtVQUNiWSxJQUFJLEVBQUV6QixVQUFVLENBQUNtQyxVQUFVLENBQUN6QixTQUFTLENBQUNBLFNBQVM7UUFBRSxDQUNsRCxDQUFDO01BRU4sQ0FBQyxNQUFNO1FBQ0wsb0JBQ0VMLEtBQUEsQ0FBQXFCLGFBQUEsQ0FBQzNCLGtCQUFrQjtVQUNqQnlDLGFBQWEsRUFBRTlCLFNBQVMsQ0FBQ0EsU0FBVTtVQUNuQ3dCLEVBQUUsRUFBRSxHQUFHbEMsVUFBVSxDQUFDbUMsVUFBVSxDQUFDaEIsY0FBYyxDQUFDLElBQUluQixVQUFVLENBQUNtQyxVQUFVLENBQUN6QixTQUFTLENBQUNBLFNBQVMsQ0FBQyxFQUFHO1VBQzdGZ0MsS0FBSyxFQUFFNUIsVUFBVSxDQUFDNkIsa0JBQWtCLENBQUNqQyxTQUFTLENBQUNBLFNBQVMsQ0FBRTtVQUMxREcsS0FBSyxFQUFFQSxLQUFNO1VBQ2JZLElBQUksRUFBRXpCLFVBQVUsQ0FBQ21DLFVBQVUsQ0FBQ3pCLFNBQVMsQ0FBQ0EsU0FBUztRQUFFLENBQ2xELENBQUM7TUFFTjtJQUNGLENBQUMsRUFBRSxDQUNDLENBQUM7RUFFWDtBQUNGLENBQUMsQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { Pressable, View } from "react-native";
|
|
2
|
+
import BaseComponent from "../base-component";
|
|
3
|
+
import ConfigReader from "./config-reader";
|
|
4
|
+
import { digg } from "diggerize";
|
|
5
|
+
import EditAttribute from "./edit-page/edit-attribute";
|
|
6
|
+
import FlashMessage from "../flash-message";
|
|
7
|
+
import { Form } from "../form";
|
|
8
|
+
import * as inflection from "inflection";
|
|
9
|
+
import Locales from "shared/locales";
|
|
10
|
+
import memo from "set-state-compare/src/memo";
|
|
11
|
+
import Params from "../params";
|
|
12
|
+
import PropTypes from "prop-types";
|
|
13
|
+
import propTypesExact from "prop-types-exact";
|
|
14
|
+
import React from "react";
|
|
15
|
+
import { shapeComponent } from "set-state-compare/src/shape-component";
|
|
16
|
+
import Text from "../utils/text";
|
|
17
|
+
import useCurrentUser from "../use-current-user";
|
|
18
|
+
import useModel from "../use-model";
|
|
19
|
+
import useQueryParams from "on-location-changed/build/use-query-params";
|
|
20
|
+
export default memo(shapeComponent(class ApiMakerSuperAdminEditPage extends BaseComponent {
|
|
21
|
+
static propTypes = propTypesExact({
|
|
22
|
+
modelClass: PropTypes.func.isRequired
|
|
23
|
+
});
|
|
24
|
+
setup() {
|
|
25
|
+
const {
|
|
26
|
+
modelClass
|
|
27
|
+
} = this.p;
|
|
28
|
+
const modelClassName = modelClass.modelClassData().name;
|
|
29
|
+
const availableLocales = Locales.availableLocales();
|
|
30
|
+
this.configReader = ConfigReader.forModel(modelClass);
|
|
31
|
+
const currentUser = useCurrentUser();
|
|
32
|
+
const queryParams = useQueryParams();
|
|
33
|
+
const selectedModelAttributes = ["id"];
|
|
34
|
+
const selectedAttributes = {};
|
|
35
|
+
this.attributes = this.configReader.modelConfig?.edit?.attributes;
|
|
36
|
+
if (!this.attributes) {
|
|
37
|
+
throw new Error(`No 'attributes' given from edit config for ${modelClass.modelClassData().name}`);
|
|
38
|
+
}
|
|
39
|
+
for (const attribute of this.attributes) {
|
|
40
|
+
if (attribute.translated) {
|
|
41
|
+
for (const locale of availableLocales) {
|
|
42
|
+
selectedModelAttributes.push(`${attribute.attribute}${inflection.camelize(locale)}`);
|
|
43
|
+
}
|
|
44
|
+
} else {
|
|
45
|
+
selectedModelAttributes.push(attribute.attribute);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
selectedAttributes[modelClassName] = selectedModelAttributes;
|
|
49
|
+
const useModelResult = useModel(modelClass, {
|
|
50
|
+
cacheArgs: [currentUser?.id()],
|
|
51
|
+
loadByQueryParam: props => props.queryParams.model_id,
|
|
52
|
+
newIfNoId: this.configReader.modelConfig?.edit?.newIfNoId || true,
|
|
53
|
+
preload: this.configReader.modelConfig?.edit?.preload,
|
|
54
|
+
select: selectedAttributes
|
|
55
|
+
});
|
|
56
|
+
const modelIdVarName = `${inflection.camelize(modelClass.modelClassData().name, true)}Id`;
|
|
57
|
+
const modelVarName = inflection.camelize(modelClass.modelClassData().name, true);
|
|
58
|
+
this.model = digg(useModelResult, modelVarName);
|
|
59
|
+
this.modelId = queryParams.model_id;
|
|
60
|
+
this.modelArgs = {};
|
|
61
|
+
this.modelArgs[modelIdVarName] = this.modelId;
|
|
62
|
+
this.useStates({
|
|
63
|
+
form: null
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
render() {
|
|
67
|
+
const {
|
|
68
|
+
attributes,
|
|
69
|
+
model
|
|
70
|
+
} = this.tt;
|
|
71
|
+
const {
|
|
72
|
+
modelClass
|
|
73
|
+
} = this.p;
|
|
74
|
+
const extraContent = this.configReader.modelConfig?.edit?.extraContentconst;
|
|
75
|
+
return /*#__PURE__*/React.createElement(View, {
|
|
76
|
+
dataSet: {
|
|
77
|
+
class: "super-admin--edit-page"
|
|
78
|
+
}
|
|
79
|
+
}, /*#__PURE__*/React.createElement(Form, {
|
|
80
|
+
setForm: this.setStates.form
|
|
81
|
+
}, model && attributes?.map(attribute => /*#__PURE__*/React.createElement(EditAttribute, {
|
|
82
|
+
attribute: attribute,
|
|
83
|
+
key: attribute.attribute,
|
|
84
|
+
model: model,
|
|
85
|
+
modelClass: modelClass
|
|
86
|
+
})), extraContent && extraContent(modelArgs), /*#__PURE__*/React.createElement(Pressable, {
|
|
87
|
+
dataSet: {
|
|
88
|
+
class: "submit-button"
|
|
89
|
+
},
|
|
90
|
+
onPress: this.tt.onSubmit,
|
|
91
|
+
style: {
|
|
92
|
+
paddingTop: 18,
|
|
93
|
+
paddingRight: 24,
|
|
94
|
+
paddingBottom: 18,
|
|
95
|
+
paddingLeft: 24,
|
|
96
|
+
borderRadius: 10,
|
|
97
|
+
backgroundColor: "#4c93ff",
|
|
98
|
+
marginTop: 10
|
|
99
|
+
}
|
|
100
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
101
|
+
style: {
|
|
102
|
+
color: "#fff"
|
|
103
|
+
}
|
|
104
|
+
}, "Submit"))));
|
|
105
|
+
}
|
|
106
|
+
onSubmit = async () => {
|
|
107
|
+
try {
|
|
108
|
+
const {
|
|
109
|
+
model
|
|
110
|
+
} = this.tt;
|
|
111
|
+
const formObject = this.s.form.asObject();
|
|
112
|
+
model.assignAttributes(formObject);
|
|
113
|
+
await model.save();
|
|
114
|
+
Params.changeParams({
|
|
115
|
+
mode: undefined,
|
|
116
|
+
model_id: model.id()
|
|
117
|
+
});
|
|
118
|
+
} catch (error) {
|
|
119
|
+
FlashMessage.errorResponse(error);
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
}));
|
|
123
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQcmVzc2FibGUiLCJWaWV3IiwiQmFzZUNvbXBvbmVudCIsIkNvbmZpZ1JlYWRlciIsImRpZ2ciLCJFZGl0QXR0cmlidXRlIiwiRmxhc2hNZXNzYWdlIiwiRm9ybSIsImluZmxlY3Rpb24iLCJMb2NhbGVzIiwibWVtbyIsIlBhcmFtcyIsIlByb3BUeXBlcyIsInByb3BUeXBlc0V4YWN0IiwiUmVhY3QiLCJzaGFwZUNvbXBvbmVudCIsIlRleHQiLCJ1c2VDdXJyZW50VXNlciIsInVzZU1vZGVsIiwidXNlUXVlcnlQYXJhbXMiLCJBcGlNYWtlclN1cGVyQWRtaW5FZGl0UGFnZSIsInByb3BUeXBlcyIsIm1vZGVsQ2xhc3MiLCJmdW5jIiwiaXNSZXF1aXJlZCIsInNldHVwIiwicCIsIm1vZGVsQ2xhc3NOYW1lIiwibW9kZWxDbGFzc0RhdGEiLCJuYW1lIiwiYXZhaWxhYmxlTG9jYWxlcyIsImNvbmZpZ1JlYWRlciIsImZvck1vZGVsIiwiY3VycmVudFVzZXIiLCJxdWVyeVBhcmFtcyIsInNlbGVjdGVkTW9kZWxBdHRyaWJ1dGVzIiwic2VsZWN0ZWRBdHRyaWJ1dGVzIiwiYXR0cmlidXRlcyIsIm1vZGVsQ29uZmlnIiwiZWRpdCIsIkVycm9yIiwiYXR0cmlidXRlIiwidHJhbnNsYXRlZCIsImxvY2FsZSIsInB1c2giLCJjYW1lbGl6ZSIsInVzZU1vZGVsUmVzdWx0IiwiY2FjaGVBcmdzIiwiaWQiLCJsb2FkQnlRdWVyeVBhcmFtIiwicHJvcHMiLCJtb2RlbF9pZCIsIm5ld0lmTm9JZCIsInByZWxvYWQiLCJzZWxlY3QiLCJtb2RlbElkVmFyTmFtZSIsIm1vZGVsVmFyTmFtZSIsIm1vZGVsIiwibW9kZWxJZCIsIm1vZGVsQXJncyIsInVzZVN0YXRlcyIsImZvcm0iLCJyZW5kZXIiLCJ0dCIsImV4dHJhQ29udGVudCIsImV4dHJhQ29udGVudGNvbnN0IiwiY3JlYXRlRWxlbWVudCIsImRhdGFTZXQiLCJjbGFzcyIsInNldEZvcm0iLCJzZXRTdGF0ZXMiLCJtYXAiLCJrZXkiLCJvblByZXNzIiwib25TdWJtaXQiLCJzdHlsZSIsInBhZGRpbmdUb3AiLCJwYWRkaW5nUmlnaHQiLCJwYWRkaW5nQm90dG9tIiwicGFkZGluZ0xlZnQiLCJib3JkZXJSYWRpdXMiLCJiYWNrZ3JvdW5kQ29sb3IiLCJtYXJnaW5Ub3AiLCJjb2xvciIsImZvcm1PYmplY3QiLCJzIiwiYXNPYmplY3QiLCJhc3NpZ25BdHRyaWJ1dGVzIiwic2F2ZSIsImNoYW5nZVBhcmFtcyIsIm1vZGUiLCJ1bmRlZmluZWQiLCJlcnJvciIsImVycm9yUmVzcG9uc2UiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc3VwZXItYWRtaW4vZWRpdC1wYWdlLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1ByZXNzYWJsZSwgVmlld30gZnJvbSBcInJlYWN0LW5hdGl2ZVwiXG5pbXBvcnQgQmFzZUNvbXBvbmVudCBmcm9tIFwiLi4vYmFzZS1jb21wb25lbnRcIlxuaW1wb3J0IENvbmZpZ1JlYWRlciBmcm9tIFwiLi9jb25maWctcmVhZGVyXCJcbmltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgRWRpdEF0dHJpYnV0ZSBmcm9tIFwiLi9lZGl0LXBhZ2UvZWRpdC1hdHRyaWJ1dGVcIlxuaW1wb3J0IEZsYXNoTWVzc2FnZSBmcm9tIFwiLi4vZmxhc2gtbWVzc2FnZVwiXG5pbXBvcnQge0Zvcm19IGZyb20gXCIuLi9mb3JtXCJcbmltcG9ydCAqIGFzIGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIlxuaW1wb3J0IExvY2FsZXMgZnJvbSBcInNoYXJlZC9sb2NhbGVzXCJcbmltcG9ydCBtZW1vIGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvbWVtb1wiXG5pbXBvcnQgUGFyYW1zIGZyb20gXCIuLi9wYXJhbXNcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgcHJvcFR5cGVzRXhhY3QgZnJvbSBcInByb3AtdHlwZXMtZXhhY3RcIlxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQge3NoYXBlQ29tcG9uZW50fSBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvc3JjL3NoYXBlLWNvbXBvbmVudFwiXG5pbXBvcnQgVGV4dCBmcm9tIFwiLi4vdXRpbHMvdGV4dFwiXG5pbXBvcnQgdXNlQ3VycmVudFVzZXIgZnJvbSBcIi4uL3VzZS1jdXJyZW50LXVzZXJcIlxuaW1wb3J0IHVzZU1vZGVsIGZyb20gXCIuLi91c2UtbW9kZWxcIlxuaW1wb3J0IHVzZVF1ZXJ5UGFyYW1zIGZyb20gXCJvbi1sb2NhdGlvbi1jaGFuZ2VkL2J1aWxkL3VzZS1xdWVyeS1wYXJhbXNcIlxuXG5leHBvcnQgZGVmYXVsdCBtZW1vKHNoYXBlQ29tcG9uZW50KGNsYXNzIEFwaU1ha2VyU3VwZXJBZG1pbkVkaXRQYWdlIGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSBwcm9wVHlwZXNFeGFjdCh7XG4gICAgbW9kZWxDbGFzczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZFxuICB9KVxuXG4gIHNldHVwKCkge1xuICAgIGNvbnN0IHttb2RlbENsYXNzfSA9IHRoaXMucFxuICAgIGNvbnN0IG1vZGVsQ2xhc3NOYW1lID0gbW9kZWxDbGFzcy5tb2RlbENsYXNzRGF0YSgpLm5hbWVcbiAgICBjb25zdCBhdmFpbGFibGVMb2NhbGVzID0gTG9jYWxlcy5hdmFpbGFibGVMb2NhbGVzKClcbiAgICB0aGlzLmNvbmZpZ1JlYWRlciA9IENvbmZpZ1JlYWRlci5mb3JNb2RlbChtb2RlbENsYXNzKVxuICAgIGNvbnN0IGN1cnJlbnRVc2VyID0gdXNlQ3VycmVudFVzZXIoKVxuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gdXNlUXVlcnlQYXJhbXMoKVxuICAgIGNvbnN0IHNlbGVjdGVkTW9kZWxBdHRyaWJ1dGVzID0gW1wiaWRcIl1cbiAgICBjb25zdCBzZWxlY3RlZEF0dHJpYnV0ZXMgPSB7fVxuICAgIHRoaXMuYXR0cmlidXRlcyA9IHRoaXMuY29uZmlnUmVhZGVyLm1vZGVsQ29uZmlnPy5lZGl0Py5hdHRyaWJ1dGVzXG5cbiAgICBpZiAoIXRoaXMuYXR0cmlidXRlcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyAnYXR0cmlidXRlcycgZ2l2ZW4gZnJvbSBlZGl0IGNvbmZpZyBmb3IgJHttb2RlbENsYXNzLm1vZGVsQ2xhc3NEYXRhKCkubmFtZX1gKVxuICAgIH1cblxuICAgIGZvciAoY29uc3QgYXR0cmlidXRlIG9mIHRoaXMuYXR0cmlidXRlcykge1xuICAgICAgaWYgKGF0dHJpYnV0ZS50cmFuc2xhdGVkKSB7XG4gICAgICAgIGZvciAoY29uc3QgbG9jYWxlIG9mIGF2YWlsYWJsZUxvY2FsZXMpIHtcbiAgICAgICAgICBzZWxlY3RlZE1vZGVsQXR0cmlidXRlcy5wdXNoKGAke2F0dHJpYnV0ZS5hdHRyaWJ1dGV9JHtpbmZsZWN0aW9uLmNhbWVsaXplKGxvY2FsZSl9YClcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2VsZWN0ZWRNb2RlbEF0dHJpYnV0ZXMucHVzaChhdHRyaWJ1dGUuYXR0cmlidXRlKVxuICAgICAgfVxuICAgIH1cblxuICAgIHNlbGVjdGVkQXR0cmlidXRlc1ttb2RlbENsYXNzTmFtZV0gPSBzZWxlY3RlZE1vZGVsQXR0cmlidXRlc1xuXG4gICAgY29uc3QgdXNlTW9kZWxSZXN1bHQgPSB1c2VNb2RlbChtb2RlbENsYXNzLCB7XG4gICAgICBjYWNoZUFyZ3M6IFtjdXJyZW50VXNlcj8uaWQoKV0sXG4gICAgICBsb2FkQnlRdWVyeVBhcmFtOiAocHJvcHMpID0+IHByb3BzLnF1ZXJ5UGFyYW1zLm1vZGVsX2lkLFxuICAgICAgbmV3SWZOb0lkOiB0aGlzLmNvbmZpZ1JlYWRlci5tb2RlbENvbmZpZz8uZWRpdD8ubmV3SWZOb0lkIHx8IHRydWUsXG4gICAgICBwcmVsb2FkOiB0aGlzLmNvbmZpZ1JlYWRlci5tb2RlbENvbmZpZz8uZWRpdD8ucHJlbG9hZCxcbiAgICAgIHNlbGVjdDogc2VsZWN0ZWRBdHRyaWJ1dGVzXG4gICAgfSlcblxuICAgIGNvbnN0IG1vZGVsSWRWYXJOYW1lID0gYCR7aW5mbGVjdGlvbi5jYW1lbGl6ZShtb2RlbENsYXNzLm1vZGVsQ2xhc3NEYXRhKCkubmFtZSwgdHJ1ZSl9SWRgXG4gICAgY29uc3QgbW9kZWxWYXJOYW1lID0gaW5mbGVjdGlvbi5jYW1lbGl6ZShtb2RlbENsYXNzLm1vZGVsQ2xhc3NEYXRhKCkubmFtZSwgdHJ1ZSlcblxuICAgIHRoaXMubW9kZWwgPSBkaWdnKHVzZU1vZGVsUmVzdWx0LCBtb2RlbFZhck5hbWUpXG4gICAgdGhpcy5tb2RlbElkID0gcXVlcnlQYXJhbXMubW9kZWxfaWRcbiAgICB0aGlzLm1vZGVsQXJncyA9IHt9XG4gICAgdGhpcy5tb2RlbEFyZ3NbbW9kZWxJZFZhck5hbWVdID0gdGhpcy5tb2RlbElkXG4gICAgdGhpcy51c2VTdGF0ZXMoe2Zvcm06IG51bGx9KVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHthdHRyaWJ1dGVzLCBtb2RlbH0gPSB0aGlzLnR0XG4gICAgY29uc3Qge21vZGVsQ2xhc3N9ID0gdGhpcy5wXG4gICAgY29uc3QgZXh0cmFDb250ZW50ID0gdGhpcy5jb25maWdSZWFkZXIubW9kZWxDb25maWc/LmVkaXQ/LmV4dHJhQ29udGVudGNvbnN0XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFZpZXcgZGF0YVNldD17e2NsYXNzOiBcInN1cGVyLWFkbWluLS1lZGl0LXBhZ2VcIn19PlxuICAgICAgICA8Rm9ybSBzZXRGb3JtPXt0aGlzLnNldFN0YXRlcy5mb3JtfT5cbiAgICAgICAgICB7bW9kZWwgJiYgYXR0cmlidXRlcz8ubWFwKChhdHRyaWJ1dGUpID0+XG4gICAgICAgICAgICA8RWRpdEF0dHJpYnV0ZSBhdHRyaWJ1dGU9e2F0dHJpYnV0ZX0ga2V5PXthdHRyaWJ1dGUuYXR0cmlidXRlfSBtb2RlbD17bW9kZWx9IG1vZGVsQ2xhc3M9e21vZGVsQ2xhc3N9IC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgICB7ZXh0cmFDb250ZW50ICYmIGV4dHJhQ29udGVudChtb2RlbEFyZ3MpfVxuICAgICAgICAgIDxQcmVzc2FibGVcbiAgICAgICAgICAgIGRhdGFTZXQ9e3tjbGFzczogXCJzdWJtaXQtYnV0dG9uXCJ9fVxuICAgICAgICAgICAgb25QcmVzcz17dGhpcy50dC5vblN1Ym1pdH1cbiAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgIHBhZGRpbmdUb3A6IDE4LFxuICAgICAgICAgICAgICBwYWRkaW5nUmlnaHQ6IDI0LFxuICAgICAgICAgICAgICBwYWRkaW5nQm90dG9tOiAxOCxcbiAgICAgICAgICAgICAgcGFkZGluZ0xlZnQ6IDI0LFxuICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6IDEwLFxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IFwiIzRjOTNmZlwiLFxuICAgICAgICAgICAgICBtYXJnaW5Ub3A6IDEwXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxUZXh0IHN0eWxlPXt7Y29sb3I6IFwiI2ZmZlwifX0+XG4gICAgICAgICAgICAgIFN1Ym1pdFxuICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgIDwvUHJlc3NhYmxlPlxuICAgICAgICA8L0Zvcm0+XG4gICAgICA8L1ZpZXc+XG4gICAgKVxuICB9XG5cbiAgb25TdWJtaXQgPSBhc3luYyAoKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHttb2RlbH0gPSB0aGlzLnR0XG4gICAgICBjb25zdCBmb3JtT2JqZWN0ID0gdGhpcy5zLmZvcm0uYXNPYmplY3QoKVxuXG4gICAgICBtb2RlbC5hc3NpZ25BdHRyaWJ1dGVzKGZvcm1PYmplY3QpXG4gICAgICBhd2FpdCBtb2RlbC5zYXZlKClcbiAgICAgIFBhcmFtcy5jaGFuZ2VQYXJhbXMoe21vZGU6IHVuZGVmaW5lZCwgbW9kZWxfaWQ6IG1vZGVsLmlkKCl9KVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBGbGFzaE1lc3NhZ2Uu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
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import ConfigReader from "./config-reader";
|
|
2
|
+
const hasEditConfig = modelClass => {
|
|
3
|
+
const configReader = ConfigReader.forModel(modelClass);
|
|
4
|
+
const extraContent = configReader.modelConfig?.edit?.extraContentconst;
|
|
5
|
+
const attributes = configReader.modelConfig?.edit?.attributes;
|
|
6
|
+
if (attributes || extraContent) {
|
|
7
|
+
return true;
|
|
8
|
+
}
|
|
9
|
+
return false;
|
|
10
|
+
};
|
|
11
|
+
export default hasEditConfig;
|
|
12
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb25maWdSZWFkZXIiLCJoYXNFZGl0Q29uZmlnIiwibW9kZWxDbGFzcyIsImNvbmZpZ1JlYWRlciIsImZvck1vZGVsIiwiZXh0cmFDb250ZW50IiwibW9kZWxDb25maWciLCJlZGl0IiwiZXh0cmFDb250ZW50Y29uc3QiLCJhdHRyaWJ1dGVzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N1cGVyLWFkbWluL2hhcy1lZGl0LWNvbmZpZy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29uZmlnUmVhZGVyIGZyb20gXCIuL2NvbmZpZy1yZWFkZXJcIlxuXG5jb25zdCBoYXNFZGl0Q29uZmlnID0gKG1vZGVsQ2xhc3MpID0+IHtcbiAgY29uc3QgY29uZmlnUmVhZGVyID0gQ29uZmlnUmVhZGVyLmZvck1vZGVsKG1vZGVsQ2xhc3MpXG4gIGNvbnN0IGV4dHJhQ29udGVudCA9IGNvbmZpZ1JlYWRlci5tb2RlbENvbmZpZz8uZWRpdD8uZXh0cmFDb250ZW50Y29uc3RcbiAgY29uc3QgYXR0cmlidXRlcyA9IGNvbmZpZ1JlYWRlci5tb2RlbENvbmZpZz8uZWRpdD8uYXR0cmlidXRlc1xuXG4gIGlmIChhdHRyaWJ1dGVzIHx8IGV4dHJhQ29udGVudCkge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICByZXR1cm4gZmFsc2Vcbn1cblxuZXhwb3J0IGRlZmF1bHQgaGFzRWRpdENvbmZpZ1xuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxZQUFZLE1BQU0saUJBQWlCO0FBRTFDLE1BQU1DLGFBQWEsR0FBSUMsVUFBVSxJQUFLO0VBQ3BDLE1BQU1DLFlBQVksR0FBR0gsWUFBWSxDQUFDSSxRQUFRLENBQUNGLFVBQVUsQ0FBQztFQUN0RCxNQUFNRyxZQUFZLEdBQUdGLFlBQVksQ0FBQ0csV0FBVyxFQUFFQyxJQUFJLEVBQUVDLGlCQUFpQjtFQUN0RSxNQUFNQyxVQUFVLEdBQUdOLFlBQVksQ0FBQ0csV0FBVyxFQUFFQyxJQUFJLEVBQUVFLFVBQVU7RUFFN0QsSUFBSUEsVUFBVSxJQUFJSixZQUFZLEVBQUU7SUFDOUIsT0FBTyxJQUFJO0VBQ2I7RUFFQSxPQUFPLEtBQUs7QUFDZCxDQUFDO0FBRUQsZUFBZUosYUFBYSIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import BaseComponent from "../base-component";
|
|
2
|
+
import memo from "set-state-compare/src/memo";
|
|
3
|
+
import ModelClassTable from "./model-class-table";
|
|
4
|
+
import PropTypes from "prop-types";
|
|
5
|
+
import React from "react";
|
|
6
|
+
import { shapeComponent } from "set-state-compare/src/shape-component";
|
|
7
|
+
import { View } from "react-native";
|
|
8
|
+
export default memo(shapeComponent(class ApiMakerSuperAdminIndexPage extends BaseComponent {
|
|
9
|
+
static propTypes = {
|
|
10
|
+
modelClass: PropTypes.func.isRequired
|
|
11
|
+
};
|
|
12
|
+
render() {
|
|
13
|
+
const {
|
|
14
|
+
modelClass
|
|
15
|
+
} = this.props;
|
|
16
|
+
return /*#__PURE__*/React.createElement(View, {
|
|
17
|
+
dataSet: {
|
|
18
|
+
component: "super-admin--index-page"
|
|
19
|
+
}
|
|
20
|
+
}, /*#__PURE__*/React.createElement(ModelClassTable, {
|
|
21
|
+
modelClass: modelClass
|
|
22
|
+
}));
|
|
23
|
+
}
|
|
24
|
+
}));
|
|
25
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlQ29tcG9uZW50IiwibWVtbyIsIk1vZGVsQ2xhc3NUYWJsZSIsIlByb3BUeXBlcyIsIlJlYWN0Iiwic2hhcGVDb21wb25lbnQiLCJWaWV3IiwiQXBpTWFrZXJTdXBlckFkbWluSW5kZXhQYWdlIiwicHJvcFR5cGVzIiwibW9kZWxDbGFzcyIsImZ1bmMiLCJpc1JlcXVpcmVkIiwicmVuZGVyIiwicHJvcHMiLCJjcmVhdGVFbGVtZW50IiwiZGF0YVNldCIsImNvbXBvbmVudCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdXBlci1hZG1pbi9pbmRleC1wYWdlLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQmFzZUNvbXBvbmVudCBmcm9tIFwiLi4vYmFzZS1jb21wb25lbnRcIlxuaW1wb3J0IG1lbW8gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL3NyYy9tZW1vXCJcbmltcG9ydCBNb2RlbENsYXNzVGFibGUgZnJvbSBcIi4vbW9kZWwtY2xhc3MtdGFibGVcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7c2hhcGVDb21wb25lbnR9IGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvc2hhcGUtY29tcG9uZW50XCJcbmltcG9ydCB7Vmlld30gZnJvbSBcInJlYWN0LW5hdGl2ZVwiXG5cbmV4cG9ydCBkZWZhdWx0IG1lbW8oc2hhcGVDb21wb25lbnQoY2xhc3MgQXBpTWFrZXJTdXBlckFkbWluSW5kZXhQYWdlIGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgbW9kZWxDbGFzczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZFxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHttb2RlbENsYXNzfSA9IHRoaXMucHJvcHNcblxuICAgIHJldHVybiAoXG4gICAgICA8VmlldyBkYXRhU2V0PXt7Y29tcG9uZW50OiBcInN1cGVyLWFkbWluLS1pbmRleC1wYWdlXCJ9fT5cbiAgICAgICAgPE1vZGVsQ2xhc3NUYWJsZSBtb2RlbENsYXNzPXttb2RlbENsYXNzfSAvPlxuICAgICAgPC9WaWV3PlxuICAgIClcbiAgfVxufSkpXG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLGFBQWEsTUFBTSxtQkFBbUI7QUFDN0MsT0FBT0MsSUFBSSxNQUFNLDRCQUE0QjtBQUM3QyxPQUFPQyxlQUFlLE1BQU0scUJBQXFCO0FBQ2pELE9BQU9DLFNBQVMsTUFBTSxZQUFZO0FBQ2xDLE9BQU9DLEtBQUssTUFBTSxPQUFPO0FBQ3pCLFNBQVFDLGNBQWMsUUFBTyx1Q0FBdUM7QUFDcEUsU0FBUUMsSUFBSSxRQUFPLGNBQWM7QUFFakMsZUFBZUwsSUFBSSxDQUFDSSxjQUFjLENBQUMsTUFBTUUsMkJBQTJCLFNBQVNQLGFBQWEsQ0FBQztFQUN6RixPQUFPUSxTQUFTLEdBQUc7SUFDakJDLFVBQVUsRUFBRU4sU0FBUyxDQUFDTyxJQUFJLENBQUNDO0VBQzdCLENBQUM7RUFFREMsTUFBTUEsQ0FBQSxFQUFHO0lBQ1AsTUFBTTtNQUFDSDtJQUFVLENBQUMsR0FBRyxJQUFJLENBQUNJLEtBQUs7SUFFL0Isb0JBQ0VULEtBQUEsQ0FBQVUsYUFBQSxDQUFDUixJQUFJO01BQUNTLE9BQU8sRUFBRTtRQUFDQyxTQUFTLEVBQUU7TUFBeUI7SUFBRSxnQkFDcERaLEtBQUEsQ0FBQVUsYUFBQSxDQUFDWixlQUFlO01BQUNPLFVBQVUsRUFBRUE7SUFBVyxDQUFFLENBQ3RDLENBQUM7RUFFWDtBQUNGLENBQUMsQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import React, { useMemo } from "react";
|
|
2
|
+
import { Pressable, View } from "react-native";
|
|
3
|
+
import BaseComponent from "../base-component";
|
|
4
|
+
import ConfigReader from "./config-reader";
|
|
5
|
+
import EditPage from "./edit-page";
|
|
6
|
+
import hasEditConfig from "./has-edit-config";
|
|
7
|
+
import IndexPage from "./index-page";
|
|
8
|
+
import Layout from "./layout/index";
|
|
9
|
+
import Link from "../link";
|
|
10
|
+
import memo from "set-state-compare/src/memo";
|
|
11
|
+
import * as models from "models";
|
|
12
|
+
import Params from "../params";
|
|
13
|
+
import { shapeComponent } from "set-state-compare/src/shape-component";
|
|
14
|
+
import ShowPage from "./show-page/index";
|
|
15
|
+
import ShowReflectionActions from "./show-reflection-actions";
|
|
16
|
+
import ShowReflectionPage from "./show-reflection-page";
|
|
17
|
+
import Text from "../utils/text";
|
|
18
|
+
import useCanCan from "../use-can-can";
|
|
19
|
+
import useCurrentUser from "../use-current-user";
|
|
20
|
+
import useQueryParams from "on-location-changed/build/use-query-params";
|
|
21
|
+
export default memo(shapeComponent(class ApiMakerSuperAdmin extends BaseComponent {
|
|
22
|
+
setup() {
|
|
23
|
+
this.queryParams = useQueryParams();
|
|
24
|
+
if (this.queryParams.model) {
|
|
25
|
+
this.modelClass = models[this.queryParams.model];
|
|
26
|
+
} else {
|
|
27
|
+
this.modelClass = null;
|
|
28
|
+
}
|
|
29
|
+
this.configReader = useMemo(() => this.modelClass && ConfigReader.forModel(this.modelClass), [this.modelClass]);
|
|
30
|
+
this.modelId = this.queryParams.model_id;
|
|
31
|
+
this.modelName = this.modelClass?.modelClassData()?.name;
|
|
32
|
+
this.currentUser = useCurrentUser();
|
|
33
|
+
this.canCan = useCanCan(() => {
|
|
34
|
+
const abilities = [];
|
|
35
|
+
if (this.modelClass) abilities.push([this.modelClass, ["new"]]);
|
|
36
|
+
return abilities;
|
|
37
|
+
}, [this.currentUser?.id(), this.modelClass]);
|
|
38
|
+
this.useStates({
|
|
39
|
+
model: undefined
|
|
40
|
+
});
|
|
41
|
+
useMemo(() => {
|
|
42
|
+
this.loadModel();
|
|
43
|
+
}, [this.modelId]);
|
|
44
|
+
}
|
|
45
|
+
loadModel = async () => {
|
|
46
|
+
const {
|
|
47
|
+
configReader,
|
|
48
|
+
modelClass,
|
|
49
|
+
modelId,
|
|
50
|
+
modelName
|
|
51
|
+
} = this.tt;
|
|
52
|
+
if (modelId && modelClass) {
|
|
53
|
+
const abilities = {};
|
|
54
|
+
const abilitiesForModel = ["destroy", "edit"];
|
|
55
|
+
const layoutSelect = configReader?.modelConfig?.layout?.select;
|
|
56
|
+
abilities[modelName] = abilitiesForModel;
|
|
57
|
+
const query = await modelClass.ransack({
|
|
58
|
+
id_eq: modelId
|
|
59
|
+
}).abilities(abilities);
|
|
60
|
+
if (layoutSelect) query.select(layoutSelect);
|
|
61
|
+
const model = await query.first();
|
|
62
|
+
this.setState({
|
|
63
|
+
model
|
|
64
|
+
});
|
|
65
|
+
} else {
|
|
66
|
+
this.setState({
|
|
67
|
+
model: undefined
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
render() {
|
|
72
|
+
const {
|
|
73
|
+
canCan,
|
|
74
|
+
configReader,
|
|
75
|
+
modelClass,
|
|
76
|
+
modelId,
|
|
77
|
+
modelName,
|
|
78
|
+
queryParams
|
|
79
|
+
} = this.tt;
|
|
80
|
+
const {
|
|
81
|
+
model
|
|
82
|
+
} = this.s;
|
|
83
|
+
const modelConfigActions = configReader?.modelConfig?.actions;
|
|
84
|
+
let pageToShow;
|
|
85
|
+
if (queryParams.model && queryParams.model_id && queryParams.model_reflection) {
|
|
86
|
+
pageToShow = "show_reflection";
|
|
87
|
+
} else if (queryParams.model && queryParams.model_id && queryParams.mode == "edit") {
|
|
88
|
+
pageToShow = "edit";
|
|
89
|
+
} else if (queryParams.model && queryParams.model_id) {
|
|
90
|
+
pageToShow = "show";
|
|
91
|
+
} else if (queryParams.model && queryParams.mode == "new") {
|
|
92
|
+
pageToShow = "edit";
|
|
93
|
+
} else if (queryParams.model) {
|
|
94
|
+
pageToShow = "index";
|
|
95
|
+
} else {
|
|
96
|
+
pageToShow = "welcome";
|
|
97
|
+
}
|
|
98
|
+
const actions = useMemo(() => /*#__PURE__*/React.createElement(View, {
|
|
99
|
+
style: {
|
|
100
|
+
flexDirection: "row",
|
|
101
|
+
alignItems: "center"
|
|
102
|
+
}
|
|
103
|
+
}, model && modelConfigActions && modelConfigActions({
|
|
104
|
+
model
|
|
105
|
+
}), modelClass && pageToShow == "index" && /*#__PURE__*/React.createElement(React.Fragment, null, canCan?.can("new", modelClass) && hasEditConfig(modelClass) && /*#__PURE__*/React.createElement(Link, {
|
|
106
|
+
dataSet: {
|
|
107
|
+
class: "create-new-model-link"
|
|
108
|
+
},
|
|
109
|
+
style: {
|
|
110
|
+
marginLeft: 10,
|
|
111
|
+
marginRight: 10
|
|
112
|
+
},
|
|
113
|
+
to: Params.withParams({
|
|
114
|
+
model: modelName,
|
|
115
|
+
mode: "new"
|
|
116
|
+
})
|
|
117
|
+
}, /*#__PURE__*/React.createElement(Text, null, "Create new"))), model && pageToShow == "show" && /*#__PURE__*/React.createElement(React.Fragment, null, model.can("edit") && hasEditConfig(modelClass) && /*#__PURE__*/React.createElement(Link, {
|
|
118
|
+
dataSet: {
|
|
119
|
+
class: "edit-model-link"
|
|
120
|
+
},
|
|
121
|
+
style: {
|
|
122
|
+
marginLeft: 10,
|
|
123
|
+
marginRight: 10
|
|
124
|
+
},
|
|
125
|
+
to: Params.withParams({
|
|
126
|
+
model: modelName,
|
|
127
|
+
model_id: modelId,
|
|
128
|
+
mode: "edit"
|
|
129
|
+
})
|
|
130
|
+
}, /*#__PURE__*/React.createElement(Text, null, "Edit")), model.can("destroy") && /*#__PURE__*/React.createElement(Pressable, {
|
|
131
|
+
dataSet: {
|
|
132
|
+
class: "destroy-model-link"
|
|
133
|
+
},
|
|
134
|
+
onPress: this.tt.onDestroyClicked,
|
|
135
|
+
style: {
|
|
136
|
+
marginLeft: 10,
|
|
137
|
+
marginRight: 10
|
|
138
|
+
}
|
|
139
|
+
}, /*#__PURE__*/React.createElement(Text, null, "Delete"))), pageToShow == "show_reflection" && /*#__PURE__*/React.createElement(ShowReflectionActions, {
|
|
140
|
+
model: model,
|
|
141
|
+
modelClass: modelClass,
|
|
142
|
+
reflectionName: queryParams.model_reflection
|
|
143
|
+
})), [canCan, configReader?.actions, model, modelClass, pageToShow]);
|
|
144
|
+
return /*#__PURE__*/React.createElement(Layout, {
|
|
145
|
+
actions: actions,
|
|
146
|
+
active: queryParams.model,
|
|
147
|
+
headerTitle: modelClass?.modelName()?.human({
|
|
148
|
+
count: 2
|
|
149
|
+
})
|
|
150
|
+
}, pageToShow == "index" && /*#__PURE__*/React.createElement(IndexPage, {
|
|
151
|
+
key: `index-page-${modelName}`,
|
|
152
|
+
modelClass: modelClass
|
|
153
|
+
}), pageToShow == "show" && /*#__PURE__*/React.createElement(ShowPage, {
|
|
154
|
+
key: `show-page-${modelName}-${modelId}`,
|
|
155
|
+
modelClass: modelClass,
|
|
156
|
+
modelId: modelId
|
|
157
|
+
}), pageToShow == "show_reflection" && /*#__PURE__*/React.createElement(ShowReflectionPage, {
|
|
158
|
+
key: `show-reflection-page-${modelName}-${modelId}`,
|
|
159
|
+
modelClass: modelClass,
|
|
160
|
+
modelId: modelId
|
|
161
|
+
}), pageToShow == "edit" && /*#__PURE__*/React.createElement(EditPage, {
|
|
162
|
+
key: `edit-page-${modelName}-${modelId}`,
|
|
163
|
+
modelClass: modelClass
|
|
164
|
+
}));
|
|
165
|
+
}
|
|
166
|
+
onDestroyClicked = async () => {
|
|
167
|
+
if (!confirm("Are you sure?")) {
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
try {
|
|
171
|
+
await this.s.model.destroy();
|
|
172
|
+
Params.changeParams({
|
|
173
|
+
mode: undefined,
|
|
174
|
+
model_id: undefined
|
|
175
|
+
});
|
|
176
|
+
} catch (error) {
|
|
177
|
+
FlashMessage.errorResponse(error);
|
|
178
|
+
}
|
|
179
|
+
};
|
|
180
|
+
}));
|
|
181
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZU1lbW8iLCJQcmVzc2FibGUiLCJWaWV3IiwiQmFzZUNvbXBvbmVudCIsIkNvbmZpZ1JlYWRlciIsIkVkaXRQYWdlIiwiaGFzRWRpdENvbmZpZyIsIkluZGV4UGFnZSIsIkxheW91dCIsIkxpbmsiLCJtZW1vIiwibW9kZWxzIiwiUGFyYW1zIiwic2hhcGVDb21wb25lbnQiLCJTaG93UGFnZSIsIlNob3dSZWZsZWN0aW9uQWN0aW9ucyIsIlNob3dSZWZsZWN0aW9uUGFnZSIsIlRleHQiLCJ1c2VDYW5DYW4iLCJ1c2VDdXJyZW50VXNlciIsInVzZVF1ZXJ5UGFyYW1zIiwiQXBpTWFrZXJTdXBlckFkbWluIiwic2V0dXAiLCJxdWVyeVBhcmFtcyIsIm1vZGVsIiwibW9kZWxDbGFzcyIsImNvbmZpZ1JlYWRlciIsImZvck1vZGVsIiwibW9kZWxJZCIsIm1vZGVsX2lkIiwibW9kZWxOYW1lIiwibW9kZWxDbGFzc0RhdGEiLCJuYW1lIiwiY3VycmVudFVzZXIiLCJjYW5DYW4iLCJhYmlsaXRpZXMiLCJwdXNoIiwiaWQiLCJ1c2VTdGF0ZXMiLCJ1bmRlZmluZWQiLCJsb2FkTW9kZWwiLCJ0dCIsImFiaWxpdGllc0Zvck1vZGVsIiwibGF5b3V0U2VsZWN0IiwibW9kZWxDb25maWciLCJsYXlvdXQiLCJzZWxlY3QiLCJxdWVyeSIsInJhbnNhY2siLCJpZF9lcSIsImZpcnN0Iiwic2V0U3RhdGUiLCJyZW5kZXIiLCJzIiwibW9kZWxDb25maWdBY3Rpb25zIiwiYWN0aW9ucyIsInBhZ2VUb1Nob3ciLCJtb2RlbF9yZWZsZWN0aW9uIiwibW9kZSIsImNyZWF0ZUVsZW1lbnQiLCJzdHlsZSIsImZsZXhEaXJlY3Rpb24iLCJhbGlnbkl0ZW1zIiwiRnJhZ21lbnQiLCJjYW4iLCJkYXRhU2V0IiwiY2xhc3MiLCJtYXJnaW5MZWZ0IiwibWFyZ2luUmlnaHQiLCJ0byIsIndpdGhQYXJhbXMiLCJvblByZXNzIiwib25EZXN0cm95Q2xpY2tlZCIsInJlZmxlY3Rpb25OYW1lIiwiYWN0aXZlIiwiaGVhZGVyVGl0bGUiLCJodW1hbiIsImNvdW50Iiwia2V5IiwiY29uZmlybSIsImRlc3Ryb3kiLCJjaGFuZ2VQYXJhbXMiLCJlcnJvciIsIkZsYXNoTWVzc2FnZSIsImVycm9yUmVzcG9uc2UiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc3VwZXItYWRtaW4vaW5kZXguanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge3VzZU1lbW99IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQge1ByZXNzYWJsZSwgVmlld30gZnJvbSBcInJlYWN0LW5hdGl2ZVwiXG5pbXBvcnQgQmFzZUNvbXBvbmVudCBmcm9tIFwiLi4vYmFzZS1jb21wb25lbnRcIlxuaW1wb3J0IENvbmZpZ1JlYWRlciBmcm9tIFwiLi9jb25maWctcmVhZGVyXCJcbmltcG9ydCBFZGl0UGFnZSBmcm9tIFwiLi9lZGl0LXBhZ2VcIlxuaW1wb3J0IGhhc0VkaXRDb25maWcgZnJvbSBcIi4vaGFzLWVkaXQtY29uZmlnXCJcbmltcG9ydCBJbmRleFBhZ2UgZnJvbSBcIi4vaW5kZXgtcGFnZVwiXG5pbXBvcnQgTGF5b3V0IGZyb20gXCIuL2xheW91dC9pbmRleFwiXG5pbXBvcnQgTGluayBmcm9tIFwiLi4vbGlua1wiXG5pbXBvcnQgbWVtbyBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvc3JjL21lbW9cIlxuaW1wb3J0ICogYXMgbW9kZWxzIGZyb20gXCJtb2RlbHNcIlxuaW1wb3J0IFBhcmFtcyBmcm9tIFwiLi4vcGFyYW1zXCJcbmltcG9ydCB7c2hhcGVDb21wb25lbnR9IGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvc2hhcGUtY29tcG9uZW50XCJcbmltcG9ydCBTaG93UGFnZSBmcm9tIFwiLi9zaG93LXBhZ2UvaW5kZXhcIlxuaW1wb3J0IFNob3dSZWZsZWN0aW9uQWN0aW9ucyBmcm9tIFwiLi9zaG93LXJlZmxlY3Rpb24tYWN0aW9uc1wiXG5pbXBvcnQgU2hvd1JlZmxlY3Rpb25QYWdlIGZyb20gXCIuL3Nob3ctcmVmbGVjdGlvbi1wYWdlXCJcbmltcG9ydCBUZXh0IGZyb20gXCIuLi91dGlscy90ZXh0XCJcbmltcG9ydCB1c2VDYW5DYW4gZnJvbSBcIi4uL3VzZS1jYW4tY2FuXCJcbmltcG9ydCB1c2VDdXJyZW50VXNlciBmcm9tIFwiLi4vdXNlLWN1cnJlbnQtdXNlclwiXG5pbXBvcnQgdXNlUXVlcnlQYXJhbXMgZnJvbSBcIm9uLWxvY2F0aW9uLWNoYW5nZWQvYnVpbGQvdXNlLXF1ZXJ5LXBhcmFtc1wiXG5cbmV4cG9ydCBkZWZhdWx0IG1lbW8oc2hhcGVDb21wb25lbnQoY2xhc3MgQXBpTWFrZXJTdXBlckFkbWluIGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIHNldHVwKCkge1xuICAgIHRoaXMucXVlcnlQYXJhbXMgPSB1c2VRdWVyeVBhcmFtcygpXG5cbiAgICBpZiAodGhpcy5xdWVyeVBhcmFtcy5tb2RlbCkge1xuICAgICAgdGhpcy5tb2RlbENsYXNzID0gbW9kZWxzW3RoaXMucXVlcnlQYXJhbXMubW9kZWxdXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubW9kZWxDbGFzcyA9IG51bGxcbiAgICB9XG5cbiAgICB0aGlzLmNvbmZpZ1JlYWRlciA9IHVzZU1lbW8oKCkgPT4gdGhpcy5tb2RlbENsYXNzICYmIENvbmZpZ1JlYWRlci5mb3JNb2RlbCh0aGlzLm1vZGVsQ2xhc3MpLCBbdGhpcy5tb2RlbENsYXNzXSlcbiAgICB0aGlzLm1vZGVsSWQgPSB0aGlzLnF1ZXJ5UGFyYW1zLm1vZGVsX2lkXG4gICAgdGhpcy5tb2RlbE5hbWUgPSB0aGlzLm1vZGVsQ2xhc3M/Lm1vZGVsQ2xhc3NEYXRhKCk/Lm5hbWVcbiAgICB0aGlzLmN1cnJlbnRVc2VyID0gdXNlQ3VycmVudFVzZXIoKVxuXG4gICAgdGhpcy5jYW5DYW4gPSB1c2VDYW5DYW4oXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGFiaWxpdGllcyA9IFtdXG5cbiAgICAgICAgaWYgKHRoaXMubW9kZWxDbGFzcykgYWJpbGl0aWVzLnB1c2goW3RoaXMubW9kZWxDbGFzcywgW1wibmV3XCJdXSlcblxuICAgICAgICByZXR1cm4gYWJpbGl0aWVzXG4gICAgICB9LFxuICAgICAgW3RoaXMuY3VycmVudFVzZXI/LmlkKCksIHRoaXMubW9kZWxDbGFzc11cbiAgICApXG5cbiAgICB0aGlzLnVzZVN0YXRlcyh7XG4gICAgICBtb2RlbDogdW5kZWZpbmVkXG4gICAgfSlcbiAgICB1c2VNZW1vKFxuICAgICAgKCkgPT4geyB0aGlzLmxvYWRNb2RlbCgpIH0sXG4gICAgICBbdGhpcy5tb2RlbElkXVxuICAgIClcbiAgfVxuXG4gIGxvYWRNb2RlbCA9IGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB7Y29uZmlnUmVhZGVyLCBtb2RlbENsYXNzLCBtb2RlbElkLCBtb2RlbE5hbWV9ID0gdGhpcy50dFxuXG4gICAgaWYgKG1vZGVsSWQgJiYgbW9kZWxDbGFzcykge1xuICAgICAgY29uc3QgYWJpbGl0aWVzID0ge31cbiAgICAgIGNvbnN0IGFiaWxpdGllc0Zvck1vZGVsID0gW1wiZGVzdHJveVwiLCBcImVkaXRcIl1cbiAgICAgIGNvbnN0IGxheW91dFNlbGVjdCA9IGNvbmZpZ1JlYWRlcj8ubW9kZWxDb25maWc/LmxheW91dD8uc2VsZWN0XG5cbiAgICAgIGFiaWxpdGllc1ttb2RlbE5hbWVdID0gYWJpbGl0aWVzRm9yTW9kZWxcblxuICAgICAgY29uc3QgcXVlcnkgPSBhd2FpdCBtb2RlbENsYXNzXG4gICAgICAgIC5yYW5zYWNrKHtpZF9lcTogbW9kZWxJZH0pXG4gICAgICAgIC5hYmlsaXRpZXMoYWJpbGl0aWVzKVxuXG4gICAgICBpZiAobGF5b3V0U2VsZWN0KSBxdWVyeS5zZWxlY3QobGF5b3V0U2VsZWN0KVxuXG4gICAgICBjb25zdCBtb2RlbCA9IGF3YWl0IHF1ZXJ5LmZpcnN0KClcblxuICAgICAgdGhpcy5zZXRTdGF0ZSh7bW9kZWx9KVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHttb2RlbDogdW5kZWZpbmVkfSlcbiAgICB9XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge2NhbkNhbiwgY29uZmlnUmVhZGVyLCBtb2RlbENsYXNzLCBtb2RlbElkLCBtb2RlbE5hbWUsIHF1ZXJ5UGFyYW1zfSA9IHRoaXMudHRcbiAgICBjb25zdCB7bW9kZWx9ID0gdGhpcy5zXG4gICAgY29uc3QgbW9kZWxDb25maWdBY3Rpb25zID0gY29uZmlnUmVhZGVyPy5tb2RlbENvbmZpZz8uYWN0aW9uc1xuICAgIGxldCBwYWdlVG9TaG93XG5cbiAgICBpZiAocXVlcnlQYXJhbXMubW9kZWwgJiYgcXVlcnlQYXJhbXMubW9kZWxfaWQgJiYgcXVlcnlQYXJhbXMubW9kZWxfcmVmbGVjdGlvbikge1xuICAgICAgcGFnZVRvU2hvdyA9IFwic2hvd19yZWZsZWN0aW9uXCJcbiAgICB9IGVsc2UgaWYgKHF1ZXJ5UGFyYW1zLm1vZGVsICYmIHF1ZXJ5UGFyYW1zLm1vZGVsX2lkICYmIHF1ZXJ5UGFyYW1zLm1vZGUgPT0gXCJlZGl0XCIpIHtcbiAgICAgIHBhZ2VUb1Nob3cgPSBcImVkaXRcIlxuICAgIH0gZWxzZSBpZiAocXVlcnlQYXJhbXMubW9kZWwgJiYgcXVlcnlQYXJhbXMubW9kZWxfaWQpIHtcbiAgICAgIHBhZ2VUb1Nob3cgPSBcInNob3dcIlxuICAgIH0gZWxzZSBpZiAocXVlcnlQYXJhbXMubW9kZWwgJiYgcXVlcnlQYXJhbXMubW9kZSA9PSBcIm5ld1wiKSB7XG4gICAgICBwYWdlVG9TaG93ID0gXCJlZGl0XCJcbiAgICB9IGVsc2UgaWYgKHF1ZXJ5UGFyYW1zLm1vZGVsKSB7XG4gICAgICBwYWdlVG9TaG93ID0gXCJpbmRleFwiXG4gICAgfSBlbHNlIHtcbiAgICAgIHBhZ2VUb1Nob3cgPSBcIndlbGNvbWVcIlxuICAgIH1cblxuICAgIGNvbnN0IGFjdGlvbnMgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gPFZpZXcgc3R5bGU9e3tmbGV4RGlyZWN0aW9uOiBcInJvd1wiLCBhbGlnbkl0ZW1zOiBcImNlbnRlclwifX0+XG4gICAgICAgIHttb2RlbCAmJiBtb2RlbENvbmZpZ0FjdGlvbnMgJiYgbW9kZWxDb25maWdBY3Rpb25zKHttb2RlbH0pfVxuICAgICAgICB7bW9kZWxDbGFzcyAmJiBwYWdlVG9TaG93ID09IFwiaW5kZXhcIiAmJlxuICAgICAgICAgIDw+XG4gICAgICAgICAgICB7Y2FuQ2FuPy5jYW4oXCJuZXdcIiwgbW9kZWxDbGFzcykgJiYgaGFzRWRpdENvbmZpZyhtb2RlbENsYXNzKSAmJlxuICAgICAgICAgICAgICA8TGlua1xuICAgICAgICAgICAgICAgIGRhdGFTZXQ9e3tjbGFzczogXCJjcmVhdGUtbmV3LW1vZGVsLWxpbmtcIn19XG4gICAgICAgICAgICAgICAgc3R5bGU9e3ttYXJnaW5MZWZ0OiAxMCwgbWFyZ2luUmlnaHQ6IDEwfX1cbiAgICAgICAgICAgICAgICB0bz17UGFyYW1zLndpdGhQYXJhbXMoe21vZGVsOiBtb2RlbE5hbWUsIG1vZGU6IFwibmV3XCJ9KX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxUZXh0PlxuICAgICAgICAgICAgICAgICAgQ3JlYXRlIG5ld1xuICAgICAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgICAgPC9MaW5rPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvPlxuICAgICAgICB9XG4gICAgICAgIHttb2RlbCAmJiBwYWdlVG9TaG93ID09IFwic2hvd1wiICYmXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHttb2RlbC5jYW4oXCJlZGl0XCIpICYmIGhhc0VkaXRDb25maWcobW9kZWxDbGFzcykgJiZcbiAgICAgICAgICAgICAgPExpbmtcbiAgICAgICAgICAgICAgICBkYXRhU2V0PXt7Y2xhc3M6IFwiZWRpdC1tb2RlbC1saW5rXCJ9fVxuICAgICAgICAgICAgICAgIHN0eWxlPXt7bWFyZ2luTGVmdDogMTAsIG1hcmdpblJpZ2h0OiAxMH19XG4gICAgICAgICAgICAgICAgdG89e1BhcmFtcy53aXRoUGFyYW1zKHttb2RlbDogbW9kZWxOYW1lLCBtb2RlbF9pZDogbW9kZWxJZCwgbW9kZTogXCJlZGl0XCJ9KX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxUZXh0PlxuICAgICAgICAgICAgICAgICAgRWRpdFxuICAgICAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgICAgPC9MaW5rPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAge21vZGVsLmNhbihcImRlc3Ryb3lcIikgJiZcbiAgICAgICAgICAgICAgPFByZXNzYWJsZVxuICAgICAgICAgICAgICAgIGRhdGFTZXQ9e3tjbGFzczogXCJkZXN0cm95LW1vZGVsLWxpbmtcIn19XG4gICAgICAgICAgICAgICAgb25QcmVzcz17dGhpcy50dC5vbkRlc3Ryb3lDbGlja2VkfVxuICAgICAgICAgICAgICAgIHN0eWxlPXt7bWFyZ2luTGVmdDogMTAsIG1hcmdpblJpZ2h0OiAxMH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8VGV4dD5cbiAgICAgICAgICAgICAgICAgIERlbGV0ZVxuICAgICAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgICAgPC9QcmVzc2FibGU+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC8+XG4gICAgICAgIH1cbiAgICAgICAge3BhZ2VUb1Nob3cgPT0gXCJzaG93X3JlZmxlY3Rpb25cIiAmJlxuICAgICAgICAgIDxTaG93UmVmbGVjdGlvbkFjdGlvbnMgbW9kZWw9e21vZGVsfSBtb2RlbENsYXNzPXttb2RlbENsYXNzfSByZWZsZWN0aW9uTmFtZT17cXVlcnlQYXJhbXMubW9kZWxfcmVmbGVjdGlvbn0gLz5cbiAgICAgICAgfVxuICAgICAgPC9WaWV3PixcbiAgICAgIFtjYW5DYW4sIGNvbmZpZ1JlYWRlcj8uYWN0aW9ucywgbW9kZWwsIG1vZGVsQ2xhc3MsIHBhZ2VUb1Nob3ddXG4gICAgKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxMYXlvdXQgYWN0aW9ucz17YWN0aW9uc30gYWN0aXZlPXtxdWVyeVBhcmFtcy5tb2RlbH0gaGVhZGVyVGl0bGU9e21vZGVsQ2xhc3M/Lm1vZGVsTmFtZSgpPy5odW1hbih7Y291bnQ6IDJ9KX0+XG4gICAgICAgIHtwYWdlVG9TaG93ID09IFwiaW5kZXhcIiAmJlxuICAgICAgICAgIDxJbmRleFBhZ2VcbiAgICAgICAgICAgIGtleT17YGluZGV4LXBhZ2UtJHttb2RlbE5hbWV9YH1cbiAgICAgICAgICAgIG1vZGVsQ2xhc3M9e21vZGVsQ2xhc3N9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgICB7cGFnZVRvU2hvdyA9PSBcInNob3dcIiAmJlxuICAgICAgICAgIDxTaG93UGFnZVxuICAgICAgICAgICAga2V5PXtgc2hvdy1wYWdlLSR7bW9kZWxOYW1lfS0ke21vZGVsSWR9YH1cbiAgICAgICAgICAgIG1vZGVsQ2xhc3M9e21vZGVsQ2xhc3N9XG4gICAgICAgICAgICBtb2RlbElkPXttb2RlbElkfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgICAge3BhZ2VUb1Nob3cgPT0gXCJzaG93X3JlZmxlY3Rpb25cIiAmJlxuICAgICAgICAgIDxTaG93UmVmbGVjdGlvblBhZ2VcbiAgICAgICAgICAgIGtleT17YHNob3ctcmVmbGVjdGlvbi1wYWdlLSR7bW9kZWxOYW1lfS0ke21vZGVsSWR9YH1cbiAgICAgICAgICAgIG1vZGVsQ2xhc3M9e21vZGVsQ2xhc3N9XG4gICAgICAgICAgICBtb2RlbElkPXttb2RlbElkfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgICAge3BhZ2VUb1Nob3cgPT0gXCJlZGl0XCIgJiZcbiAgICAgICAgICA8RWRpdFBhZ2VcbiAgICAgICAgICAgIGtleT17YGVkaXQtcGFnZS0ke21vZGVsTmFtZX0tJHttb2RlbElkfWB9XG4gICAgICAgICAgICBtb2RlbENsYXNzPXttb2RlbENsYXNzfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvTGF5b3V0PlxuICAgIClcbiAgfVxuXG4gIG9uRGVzdHJveUNsaWNrZWQgPSBhc3luYyAoKSA9PiB7XG4gICAgaWYgKCFjb25maXJtKFwiQXJlIHlvdSBzdXJlP1wiKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMucy5tb2RlbC5kZXN0cm95KClcblxuICAgICAgUGFyYW1zLmNoYW5nZVBhcmFtcyh7bW9kZTogdW5kZWZpbmVkLCBtb2RlbF9pZDogdW5kZWZpbmVkfSlcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgRmxhc2hNZXNzYWdlLmVycm9yUmVzcG9uc2UoZXJyb3IpXG4gICAgfVxuICB9XG59KSlcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsS0FBSyxJQUFHQyxPQUFPLFFBQU8sT0FBTztBQUNwQyxTQUFRQyxTQUFTLEVBQUVDLElBQUksUUFBTyxjQUFjO0FBQzVDLE9BQU9DLGFBQWEsTUFBTSxtQkFBbUI7QUFDN0MsT0FBT0MsWUFBWSxNQUFNLGlCQUFpQjtBQUMxQyxPQUFPQyxRQUFRLE1BQU0sYUFBYTtBQUNsQyxPQUFPQyxhQUFhLE1BQU0sbUJBQW1CO0FBQzdDLE9BQU9DLFNBQVMsTUFBTSxjQUFjO0FBQ3BDLE9BQU9DLE1BQU0sTUFBTSxnQkFBZ0I7QUFDbkMsT0FBT0MsSUFBSSxNQUFNLFNBQVM7QUFDMUIsT0FBT0MsSUFBSSxNQUFNLDRCQUE0QjtBQUM3QyxPQUFPLEtBQUtDLE1BQU0sTUFBTSxRQUFRO0FBQ2hDLE9BQU9DLE1BQU0sTUFBTSxXQUFXO0FBQzlCLFNBQVFDLGNBQWMsUUFBTyx1Q0FBdUM7QUFDcEUsT0FBT0MsUUFBUSxNQUFNLG1CQUFtQjtBQUN4QyxPQUFPQyxxQkFBcUIsTUFBTSwyQkFBMkI7QUFDN0QsT0FBT0Msa0JBQWtCLE1BQU0sd0JBQXdCO0FBQ3ZELE9BQU9DLElBQUksTUFBTSxlQUFlO0FBQ2hDLE9BQU9DLFNBQVMsTUFBTSxnQkFBZ0I7QUFDdEMsT0FBT0MsY0FBYyxNQUFNLHFCQUFxQjtBQUNoRCxPQUFPQyxjQUFjLE1BQU0sNENBQTRDO0FB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
|