@kaspernj/api-maker 1.0.2011 → 1.0.2013
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/is-expo.js +22 -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 +71 -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-styles.js +41 -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 +44 -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/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/is-expo.js +18 -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 +87 -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-styles.js +50 -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 +38 -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,188 @@
|
|
|
1
|
+
import React, { useMemo } from "react";
|
|
2
|
+
import { Animated, Easing, PanResponder } from "react-native";
|
|
3
|
+
import { shapeComponent, ShapeComponent } from "set-state-compare/src/shape-component";
|
|
4
|
+
import EventEmitter from "events";
|
|
5
|
+
import memo from "set-state-compare/src/memo";
|
|
6
|
+
import PropTypes from "prop-types";
|
|
7
|
+
import propTypesExact from "prop-types-exact";
|
|
8
|
+
import useEventEmitter from "../use-event-emitter";
|
|
9
|
+
export default memo(shapeComponent(class DraggableSortItem extends ShapeComponent {
|
|
10
|
+
static propTypes = propTypesExact({
|
|
11
|
+
cacheKey: PropTypes.string,
|
|
12
|
+
controller: PropTypes.object.isRequired,
|
|
13
|
+
item: PropTypes.any.isRequired,
|
|
14
|
+
itemIndex: PropTypes.number.isRequired,
|
|
15
|
+
onItemMoved: PropTypes.func,
|
|
16
|
+
renderItem: PropTypes.func.isRequired
|
|
17
|
+
});
|
|
18
|
+
initialLayout = null;
|
|
19
|
+
setup() {
|
|
20
|
+
this.useStates({
|
|
21
|
+
active: false,
|
|
22
|
+
dragging: false
|
|
23
|
+
});
|
|
24
|
+
this.events = useMemo(() => new EventEmitter(), []);
|
|
25
|
+
this.position = useMemo(() => new Animated.ValueXY(), []);
|
|
26
|
+
this.panResponder = useMemo(() => PanResponder.create({
|
|
27
|
+
onStartShouldSetPanResponder: e => {
|
|
28
|
+
this.setState({
|
|
29
|
+
dragging: true
|
|
30
|
+
});
|
|
31
|
+
this.p.controller.onDragStart({
|
|
32
|
+
item: this.p.item,
|
|
33
|
+
itemIndex: this.p.itemIndex
|
|
34
|
+
});
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
}), []);
|
|
38
|
+
useEventEmitter(this.p.controller.getEvents(), "onDragStart", this.tt.onDragStart);
|
|
39
|
+
useEventEmitter(this.p.controller.getEvents(), "onDragEndAnimation", this.tt.onDragEndAnimation);
|
|
40
|
+
useEventEmitter(this.tt.events, "move", this.tt.onMove);
|
|
41
|
+
useEventEmitter(this.tt.events, "moveToPosition", this.tt.onMoveToPosition);
|
|
42
|
+
useEventEmitter(this.tt.events, "resetPosition", this.tt.onResetPosition);
|
|
43
|
+
}
|
|
44
|
+
render() {
|
|
45
|
+
const {
|
|
46
|
+
item,
|
|
47
|
+
renderItem
|
|
48
|
+
} = this.p;
|
|
49
|
+
const {
|
|
50
|
+
active
|
|
51
|
+
} = this.s;
|
|
52
|
+
const style = useMemo(() => {
|
|
53
|
+
const style = {
|
|
54
|
+
transform: this.tt.position.getTranslateTransform()
|
|
55
|
+
};
|
|
56
|
+
if (active) {
|
|
57
|
+
style.backgroundColor = "#fff";
|
|
58
|
+
style.elevation = 2;
|
|
59
|
+
style.zIndex = 99999;
|
|
60
|
+
}
|
|
61
|
+
return style;
|
|
62
|
+
}, [active]);
|
|
63
|
+
return /*#__PURE__*/React.createElement(Animated.View, {
|
|
64
|
+
dataSet: {
|
|
65
|
+
component: "draggable-sort/item"
|
|
66
|
+
},
|
|
67
|
+
onLayout: this.tt.onLayout,
|
|
68
|
+
style: style
|
|
69
|
+
}, renderItem({
|
|
70
|
+
isActive: active,
|
|
71
|
+
item,
|
|
72
|
+
touchProps: this.tt.panResponder.panHandlers
|
|
73
|
+
}));
|
|
74
|
+
}
|
|
75
|
+
onDragStart = ({
|
|
76
|
+
itemData
|
|
77
|
+
}) => {
|
|
78
|
+
const newState = {
|
|
79
|
+
dragging: true
|
|
80
|
+
};
|
|
81
|
+
if (itemData.index == this.p.itemIndex) {
|
|
82
|
+
newState.active = true;
|
|
83
|
+
this.baseXAtStartedDragging = this.getBaseX();
|
|
84
|
+
}
|
|
85
|
+
this.setState(newState);
|
|
86
|
+
};
|
|
87
|
+
onDragEndAnimation = () => this.setState({
|
|
88
|
+
active: false,
|
|
89
|
+
dragging: false
|
|
90
|
+
});
|
|
91
|
+
onLayout = e => {
|
|
92
|
+
const {
|
|
93
|
+
controller,
|
|
94
|
+
item,
|
|
95
|
+
itemIndex
|
|
96
|
+
} = this.p;
|
|
97
|
+
controller.onItemLayout({
|
|
98
|
+
events: this.tt.events,
|
|
99
|
+
index: itemIndex,
|
|
100
|
+
item,
|
|
101
|
+
layout: e.nativeEvent.layout
|
|
102
|
+
});
|
|
103
|
+
if (!this.tt.initialLayout) {
|
|
104
|
+
this.initialLayout = e.nativeEvent.layout;
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
onMove = ({
|
|
108
|
+
gestate
|
|
109
|
+
}) => {
|
|
110
|
+
const x = gestate.dx + this.tt.baseXAtStartedDragging - this.tt.initialLayout.x;
|
|
111
|
+
const y = this.tt.initialLayout.y;
|
|
112
|
+
this.tt.position.setValue({
|
|
113
|
+
x,
|
|
114
|
+
y
|
|
115
|
+
});
|
|
116
|
+
if (this.props.onItemMoved) {
|
|
117
|
+
this.p.onItemMoved({
|
|
118
|
+
itemIndex: this.p.itemIndex,
|
|
119
|
+
x,
|
|
120
|
+
y
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
onMoveToPosition = ({
|
|
125
|
+
x,
|
|
126
|
+
y
|
|
127
|
+
}) => {
|
|
128
|
+
const calculatedXFromStartingPosition = x - this.tt.initialLayout.x;
|
|
129
|
+
const animationArgs = {
|
|
130
|
+
duration: 200,
|
|
131
|
+
easing: Easing.inOut(Easing.linear),
|
|
132
|
+
toValue: {
|
|
133
|
+
x: calculatedXFromStartingPosition,
|
|
134
|
+
y
|
|
135
|
+
},
|
|
136
|
+
useNativeDriver: true
|
|
137
|
+
};
|
|
138
|
+
const animationEventArgs = {
|
|
139
|
+
animationArgs,
|
|
140
|
+
animationType: "moveToPosition",
|
|
141
|
+
item: this.p.item
|
|
142
|
+
};
|
|
143
|
+
this.p.controller.events.emit("onAnimationStart", animationEventArgs);
|
|
144
|
+
Animated.timing(this.tt.position, animationArgs).start(() => {
|
|
145
|
+
this.p.controller.events.emit("onAnimationEnd", animationEventArgs);
|
|
146
|
+
});
|
|
147
|
+
if (this.props.onItemMoved) {
|
|
148
|
+
this.p.onItemMoved({
|
|
149
|
+
animationArgs,
|
|
150
|
+
itemIndex: this.p.itemIndex,
|
|
151
|
+
x: calculatedXFromStartingPosition,
|
|
152
|
+
y
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
};
|
|
156
|
+
getBaseX = () => this.p.controller.getItemDataForIndex(this.p.itemIndex).baseX;
|
|
157
|
+
onResetPosition = args => {
|
|
158
|
+
const baseX = this.getBaseX() - this.tt.initialLayout.x;
|
|
159
|
+
const animationArgs = {
|
|
160
|
+
duration: 200,
|
|
161
|
+
easing: Easing.inOut(Easing.linear),
|
|
162
|
+
toValue: {
|
|
163
|
+
x: baseX,
|
|
164
|
+
y: 0
|
|
165
|
+
},
|
|
166
|
+
useNativeDriver: true
|
|
167
|
+
};
|
|
168
|
+
const animationEventArgs = {
|
|
169
|
+
animationArgs,
|
|
170
|
+
animationType: "resetPosition",
|
|
171
|
+
item: this.p.item
|
|
172
|
+
};
|
|
173
|
+
this.p.controller.events.emit("onAnimationStart", animationEventArgs);
|
|
174
|
+
Animated.timing(this.tt.position, animationArgs).start(() => {
|
|
175
|
+
this.p.controller.events.emit("onAnimationEnd", animationEventArgs);
|
|
176
|
+
if (args?.callback) args.callback();
|
|
177
|
+
});
|
|
178
|
+
if (this.props.onItemMoved) {
|
|
179
|
+
this.p.onItemMoved({
|
|
180
|
+
animationArgs,
|
|
181
|
+
itemIndex: this.p.itemIndex,
|
|
182
|
+
x: baseX,
|
|
183
|
+
y: 0
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
};
|
|
187
|
+
}));
|
|
188
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZU1lbW8iLCJBbmltYXRlZCIsIkVhc2luZyIsIlBhblJlc3BvbmRlciIsInNoYXBlQ29tcG9uZW50IiwiU2hhcGVDb21wb25lbnQiLCJFdmVudEVtaXR0ZXIiLCJtZW1vIiwiUHJvcFR5cGVzIiwicHJvcFR5cGVzRXhhY3QiLCJ1c2VFdmVudEVtaXR0ZXIiLCJEcmFnZ2FibGVTb3J0SXRlbSIsInByb3BUeXBlcyIsImNhY2hlS2V5Iiwic3RyaW5nIiwiY29udHJvbGxlciIsIm9iamVjdCIsImlzUmVxdWlyZWQiLCJpdGVtIiwiYW55IiwiaXRlbUluZGV4IiwibnVtYmVyIiwib25JdGVtTW92ZWQiLCJmdW5jIiwicmVuZGVySXRlbSIsImluaXRpYWxMYXlvdXQiLCJzZXR1cCIsInVzZVN0YXRlcyIsImFjdGl2ZSIsImRyYWdnaW5nIiwiZXZlbnRzIiwicG9zaXRpb24iLCJWYWx1ZVhZIiwicGFuUmVzcG9uZGVyIiwiY3JlYXRlIiwib25TdGFydFNob3VsZFNldFBhblJlc3BvbmRlciIsImUiLCJzZXRTdGF0ZSIsInAiLCJvbkRyYWdTdGFydCIsImdldEV2ZW50cyIsInR0Iiwib25EcmFnRW5kQW5pbWF0aW9uIiwib25Nb3ZlIiwib25Nb3ZlVG9Qb3NpdGlvbiIsIm9uUmVzZXRQb3NpdGlvbiIsInJlbmRlciIsInMiLCJzdHlsZSIsInRyYW5zZm9ybSIsImdldFRyYW5zbGF0ZVRyYW5zZm9ybSIsImJhY2tncm91bmRDb2xvciIsImVsZXZhdGlvbiIsInpJbmRleCIsImNyZWF0ZUVsZW1lbnQiLCJWaWV3IiwiZGF0YVNldCIsImNvbXBvbmVudCIsIm9uTGF5b3V0IiwiaXNBY3RpdmUiLCJ0b3VjaFByb3BzIiwicGFuSGFuZGxlcnMiLCJpdGVtRGF0YSIsIm5ld1N0YXRlIiwiaW5kZXgiLCJiYXNlWEF0U3RhcnRlZERyYWdnaW5nIiwiZ2V0QmFzZVgiLCJvbkl0ZW1MYXlvdXQiLCJsYXlvdXQiLCJuYXRpdmVFdmVudCIsImdlc3RhdGUiLCJ4IiwiZHgiLCJ5Iiwic2V0VmFsdWUiLCJwcm9wcyIsImNhbGN1bGF0ZWRYRnJvbVN0YXJ0aW5nUG9zaXRpb24iLCJhbmltYXRpb25BcmdzIiwiZHVyYXRpb24iLCJlYXNpbmciLCJpbk91dCIsImxpbmVhciIsInRvVmFsdWUiLCJ1c2VOYXRpdmVEcml2ZXIiLCJhbmltYXRpb25FdmVudEFyZ3MiLCJhbmltYXRpb25UeXBlIiwiZW1pdCIsInRpbWluZyIsInN0YXJ0IiwiZ2V0SXRlbURhdGFGb3JJbmRleCIsImJhc2VYIiwiYXJncyIsImNhbGxiYWNrIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RyYWdnYWJsZS1zb3J0L2l0ZW0uanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge3VzZU1lbW99IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQge0FuaW1hdGVkLCBFYXNpbmcsIFBhblJlc3BvbmRlcn0gZnJvbSBcInJlYWN0LW5hdGl2ZVwiXG5pbXBvcnQge3NoYXBlQ29tcG9uZW50LCBTaGFwZUNvbXBvbmVudH0gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL3NyYy9zaGFwZS1jb21wb25lbnRcIlxuaW1wb3J0IEV2ZW50RW1pdHRlciBmcm9tIFwiZXZlbnRzXCJcbmltcG9ydCBtZW1vIGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvbWVtb1wiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBwcm9wVHlwZXNFeGFjdCBmcm9tIFwicHJvcC10eXBlcy1leGFjdFwiXG5pbXBvcnQgdXNlRXZlbnRFbWl0dGVyIGZyb20gXCIuLi91c2UtZXZlbnQtZW1pdHRlclwiXG5cbmV4cG9ydCBkZWZhdWx0IG1lbW8oc2hhcGVDb21wb25lbnQoY2xhc3MgRHJhZ2dhYmxlU29ydEl0ZW0gZXh0ZW5kcyBTaGFwZUNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSBwcm9wVHlwZXNFeGFjdCh7XG4gICAgY2FjaGVLZXk6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgY29udHJvbGxlcjogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGl0ZW06IFByb3BUeXBlcy5hbnkuaXNSZXF1aXJlZCxcbiAgICBpdGVtSW5kZXg6IFByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCxcbiAgICBvbkl0ZW1Nb3ZlZDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgcmVuZGVySXRlbTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZFxuICB9KVxuXG4gIGluaXRpYWxMYXlvdXQgPSBudWxsXG5cbiAgc2V0dXAoKSB7XG4gICAgdGhpcy51c2VTdGF0ZXMoe1xuICAgICAgYWN0aXZlOiBmYWxzZSxcbiAgICAgIGRyYWdnaW5nOiBmYWxzZVxuICAgIH0pXG5cbiAgICB0aGlzLmV2ZW50cyA9IHVzZU1lbW8oKCkgPT4gbmV3IEV2ZW50RW1pdHRlcigpLCBbXSlcbiAgICB0aGlzLnBvc2l0aW9uID0gdXNlTWVtbygoKSA9PiBuZXcgQW5pbWF0ZWQuVmFsdWVYWSgpLCBbXSlcbiAgICB0aGlzLnBhblJlc3BvbmRlciA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiBQYW5SZXNwb25kZXIuY3JlYXRlKHtcbiAgICAgICAgb25TdGFydFNob3VsZFNldFBhblJlc3BvbmRlcjogKGUsICkgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe2RyYWdnaW5nOiB0cnVlfSlcbiAgICAgICAgICB0aGlzLnAuY29udHJvbGxlci5vbkRyYWdTdGFydCh7aXRlbTogdGhpcy5wLml0ZW0sIGl0ZW1JbmRleDogdGhpcy5wLml0ZW1JbmRleH0pXG5cbiAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICBbXVxuICAgIClcblxuICAgIHVzZUV2ZW50RW1pdHRlcih0aGlzLnAuY29udHJvbGxlci5nZXRFdmVudHMoKSwgXCJvbkRyYWdTdGFydFwiLCB0aGlzLnR0Lm9uRHJhZ1N0YXJ0KVxuICAgIHVzZUV2ZW50RW1pdHRlcih0aGlzLnAuY29udHJvbGxlci5nZXRFdmVudHMoKSwgXCJvbkRyYWdFbmRBbmltYXRpb25cIiwgdGhpcy50dC5vbkRyYWdFbmRBbmltYXRpb24pXG4gICAgdXNlRXZlbnRFbWl0dGVyKHRoaXMudHQuZXZlbnRzLCBcIm1vdmVcIiwgdGhpcy50dC5vbk1vdmUpXG4gICAgdXNlRXZlbnRFbWl0dGVyKHRoaXMudHQuZXZlbnRzLCBcIm1vdmVUb1Bvc2l0aW9uXCIsIHRoaXMudHQub25Nb3ZlVG9Qb3NpdGlvbilcbiAgICB1c2VFdmVudEVtaXR0ZXIodGhpcy50dC5ldmVudHMsIFwicmVzZXRQb3NpdGlvblwiLCB0aGlzLnR0Lm9uUmVzZXRQb3NpdGlvbilcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7aXRlbSwgcmVuZGVySXRlbX0gPSB0aGlzLnBcbiAgICBjb25zdCB7YWN0aXZlfSA9IHRoaXMuc1xuICAgIGNvbnN0IHN0eWxlID0gdXNlTWVtbyhcbiAgICAgICgpID0+IHtcbiAgICAgICAgY29uc3Qgc3R5bGUgPSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0aGlzLnR0LnBvc2l0aW9uLmdldFRyYW5zbGF0ZVRyYW5zZm9ybSgpXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYWN0aXZlKSB7XG4gICAgICAgICAgc3R5bGUuYmFja2dyb3VuZENvbG9yID0gXCIjZmZmXCJcbiAgICAgICAgICBzdHlsZS5lbGV2YXRpb24gPSAyXG4gICAgICAgICAgc3R5bGUuekluZGV4ID0gOTk5OTlcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdHlsZVxuICAgICAgfSxcbiAgICAgIFthY3RpdmVdXG4gICAgKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxBbmltYXRlZC5WaWV3IGRhdGFTZXQ9e3tjb21wb25lbnQ6IFwiZHJhZ2dhYmxlLXNvcnQvaXRlbVwifX0gb25MYXlvdXQ9e3RoaXMudHQub25MYXlvdXR9IHN0eWxlPXtzdHlsZX0+XG4gICAgICAgIHtyZW5kZXJJdGVtKHtpc0FjdGl2ZTogYWN0aXZlLCBpdGVtLCB0b3VjaFByb3BzOiB0aGlzLnR0LnBhblJlc3BvbmRlci5wYW5IYW5kbGVyc30pfVxuICAgICAgPC9BbmltYXRlZC5WaWV3PlxuICAgIClcbiAgfVxuXG4gIG9uRHJhZ1N0YXJ0ID0gKHtpdGVtRGF0YX0pID0+IHtcbiAgICBjb25zdCBuZXdTdGF0ZSA9IHtkcmFnZ2luZzogdHJ1ZX1cblxuICAgIGlmIChpdGVtRGF0YS5pbmRleCA9PSB0aGlzLnAuaXRlbUluZGV4KSB7XG4gICAgICBuZXdTdGF0ZS5hY3RpdmUgPSB0cnVlXG4gICAgICB0aGlzLmJhc2VYQXRTdGFydGVkRHJhZ2dpbmcgPSB0aGlzLmdldEJhc2VYKClcbiAgICB9XG5cbiAgICB0aGlzLnNldFN0YXRlKG5ld1N0YXRlKVxuICB9XG5cbiAgb25EcmFnRW5kQW5pbWF0aW9uID0gKCkgPT4gdGhpcy5zZXRTdGF0ZSh7YWN0aXZlOiBmYWxzZSwgZHJhZ2dpbmc6IGZhbHNlfSlcblxuICBvbkxheW91dCA9IChlKSA9PiB7XG4gICAgY29uc3Qge2NvbnRyb2xsZXIsIGl0ZW0sIGl0ZW1JbmRleH0gPSB0aGlzLnBcblxuICAgIGNvbnRyb2xsZXIub25JdGVtTGF5b3V0KHtldmVudHM6IHRoaXMudHQuZXZlbnRzLCBpbmRleDogaXRlbUluZGV4LCBpdGVtLCBsYXlvdXQ6IGUubmF0aXZlRXZlbnQubGF5b3V0fSlcblxuICAgIGlmICghdGhpcy50dC5pbml0aWFsTGF5b3V0KSB7XG4gICAgICB0aGlzLmluaXRpYWxMYXlvdXQgPSBlLm5hdGl2ZUV2ZW50LmxheW91dFxuICAgIH1cbiAgfVxuXG4gIG9uTW92ZSA9ICh7Z2VzdGF0ZX0pID0+IHtcbiAgICBjb25zdCB4ID0gZ2VzdGF0ZS5keCArIHRoaXMudHQuYmFzZVhBdFN0YXJ0ZWREcmFnZ2luZyAtIHRoaXMudHQuaW5pdGlhbExheW91dC54XG4gICAgY29uc3QgeSA9IHRoaXMudHQuaW5pdGlhbExheW91dC55XG5cbiAgICB0aGlzLnR0LnBvc2l0aW9uLnNldFZhbHVlKHt4LCB5fSlcblxuICAgIGlmICh0aGlzLnByb3BzLm9uSXRlbU1vdmVkKSB7XG4gICAgICB0aGlzLnAub25JdGVtTW92ZWQoe2l0ZW1JbmRleDogdGhpcy5wLml0ZW1JbmRleCwgeCwgeX0pXG4gICAgfVxuICB9XG5cbiAgb25Nb3ZlVG9Qb3NpdGlvbiA9ICh7eCwgeX0pID0+IHtcbiAgICBjb25zdCBjYWxjdWxhdGVkWEZyb21TdGFydGluZ1Bvc2l0aW9uID0geCAtIHRoaXMudHQuaW5pdGlhbExheW91dC54XG4gICAgY29uc3QgYW5pbWF0aW9uQXJncyA9IHtcbiAgICAgIGR1cmF0aW9uOiAyMDAsXG4gICAgICBlYXNpbmc6IEVhc2luZy5pbk91dChFYXNpbmcubGluZWFyKSxcbiAgICAgIHRvVmFsdWU6IHtcbiAgICAgICAgeDogY2FsY3VsYXRlZFhGcm9tU3RhcnRpbmdQb3NpdGlvbixcbiAgICAgICAgeVxuICAgICAgfSxcbiAgICAgIHVzZU5hdGl2ZURyaXZlcjogdHJ1ZSxcbiAgICB9XG4gICAgY29uc3QgYW5pbWF0aW9uRXZlbnRBcmdzID0ge2FuaW1hdGlvbkFyZ3MsIGFuaW1hdGlvblR5cGU6IFwibW92ZVRvUG9zaXRpb25cIiwgaXRlbTogdGhpcy5wLml0ZW19XG5cbiAgICB0aGlzLnAuY29udHJvbGxlci5ldmVudHMuZW1pdChcIm9uQW5pbWF0aW9uU3RhcnRcIiwgYW5pbWF0aW9uRXZlbnRBcmdzKVxuXG4gICAgQW5pbWF0ZWRcbiAgICAgIC50aW1pbmcodGhpcy50dC5wb3NpdGlvbiwgYW5pbWF0aW9uQXJncylcbiAgICAgIC5zdGFydCgoKSA9PiB7XG4gICAgICAgIHRoaXMucC5jb250cm9sbGVyLmV2ZW50cy5lbWl0KFwib25BbmltYXRpb25FbmRcIiwgYW5pbWF0aW9uRXZlbnRBcmdzKVxuICAgICAgfSlcblxuICAgIGlmICh0aGlzLnByb3BzLm9uSXRlbU1vdmVkKSB7XG4gICAgICB0aGlzLnAub25JdGVtTW92ZWQoe1xuICAgICAgICBhbmltYXRpb25BcmdzLFxuICAgICAgICBpdGVtSW5kZXg6IHRoaXMucC5pdGVtSW5kZXgsXG4gICAgICAgIHg6IGNhbGN1bGF0ZWRYRnJvbVN0YXJ0aW5nUG9zaXRpb24sXG4gICAgICAgIHlcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgZ2V0QmFzZVggPSAoKSA9PiB0aGlzLnAuY29udHJvbGxlci5nZXRJdGVtRGF0YUZvckluZGV4KHRoaXMucC5pdGVtSW5kZXgpLmJhc2VYXG5cbiAgb25SZXNldFBvc2l0aW9uID0gKGFyZ3MpID0+IHtcbiAgICBjb25zdCBiYXNlWCA9IHRoaXMuZ2V0QmFzZVgoKSAtIHRoaXMudHQuaW5pdGlhbExheW91dC54XG4gICAgY29uc3QgYW5pbWF0aW9uQXJncyA9IHtcbiAgICAgIGR1cmF0aW9uOiAyMDAsXG4gICAgICBlYXNpbmc6IEVhc2luZy5pbk91dChFYXNpbmcubGluZWFyKSxcbiAgICAgIHRvVmFsdWU6IHtcbiAgICAgICAgeDogYmFzZVgsXG4gICAgICAgIHk6IDBcbiAgICAgIH0sXG4gICAgICB1c2VOYXRpdmVEcml2ZXI6IHRydWUsXG4gICAgfVxuICAgIGNvbnN0IGFuaW1hdGlvbkV2ZW50QXJncyA9IHthbmltYXRpb25BcmdzLCBhbmltYXRpb25UeXBlOiBcInJlc2V0UG9zaXRpb25cIiwgaXRlbTogdGhpcy5wLml0ZW19XG5cbiAgICB0aGlzLnAuY29udHJvbGxlci5ldmVudHMuZW1pdChcIm9uQW5pbWF0aW9uU3RhcnRcIiwgYW5pbWF0aW9uRXZlbnRBcmdzKVxuXG4gICAgQW5pbWF0ZWRcbiAgICAgIC50aW1pbmcodGhpcy50dC5wb3NpdGlvbiwgYW5pbWF0aW9uQXJncylcbiAgICAgIC5zdGFydCgoKSA9PiB7XG4gICAgICAgIHRoaXMucC5jb250cm9sbGVyLmV2ZW50cy5lbWl0KFwib25BbmltYXRpb25FbmRcIiwgYW5pbWF0aW9uRXZlbnRBcmdzKVxuICAgICAgICBpZiAoYXJncz8uY2FsbGJhY2spIGFyZ3MuY2FsbGJhY2soKVxuICAgICAgfSlcblxuICAgIGlmICh0aGlzLnByb3BzLm9uSXRlbU1vdmVkKSB7XG4gICAgICB0aGlzLnAub25JdGVtTW92ZWQoe1xuICAgICAgICBhbmltYXRpb25BcmdzLFxuICAgICAgICBpdGVtSW5kZXg6IHRoaXMucC5pdGVtSW5kZXgsXG4gICAgICAgIHg6IGJhc2VYLFxuICAgICAgICB5OiAwXG4gICAgICB9KVxuICAgIH1cbiAgfVxufSkpXG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLEtBQUssSUFBR0MsT0FBTyxRQUFPLE9BQU87QUFDcEMsU0FBUUMsUUFBUSxFQUFFQyxNQUFNLEVBQUVDLFlBQVksUUFBTyxjQUFjO0FBQzNELFNBQVFDLGNBQWMsRUFBRUMsY0FBYyxRQUFPLHVDQUF1QztBQUNwRixPQUFPQyxZQUFZLE1BQU0sUUFBUTtBQUNqQyxPQUFPQyxJQUFJLE1BQU0sNEJBQTRCO0FBQzdDLE9BQU9DLFNBQVMsTUFBTSxZQUFZO0FBQ2xDLE9BQU9DLGNBQWMsTUFBTSxrQkFBa0I7QUFDN0MsT0FBT0MsZUFBZSxNQUFNLHNCQUFzQjtBQUVsRCxlQUFlSCxJQUFJLENBQUNILGNBQWMsQ0FBQyxNQUFNTyxpQkFBaUIsU0FBU04sY0FBYyxDQUFDO0VBQ2hGLE9BQU9PLFNBQVMsR0FBR0gsY0FBYyxDQUFDO0lBQ2hDSSxRQUFRLEVBQUVMLFNBQVMsQ0FBQ00sTUFBTTtJQUMxQkMsVUFBVSxFQUFFUCxTQUFTLENBQUNRLE1BQU0sQ0FBQ0MsVUFBVTtJQUN2Q0MsSUFBSSxFQUFFVixTQUFTLENBQUNXLEdBQUcsQ0FBQ0YsVUFBVTtJQUM5QkcsU0FBUyxFQUFFWixTQUFTLENBQUNhLE1BQU0sQ0FBQ0osVUFBVTtJQUN0Q0ssV0FBVyxFQUFFZCxTQUFTLENBQUNlLElBQUk7SUFDM0JDLFVBQVUsRUFBRWhCLFNBQVMsQ0FBQ2UsSUFBSSxDQUFDTjtFQUM3QixDQUFDLENBQUM7RUFFRlEsYUFBYSxHQUFHLElBQUk7RUFFcEJDLEtBQUtBLENBQUEsRUFBRztJQUNOLElBQUksQ0FBQ0MsU0FBUyxDQUFDO01BQ2JDLE1BQU0sRUFBRSxLQUFLO01BQ2JDLFFBQVEsRUFBRTtJQUNaLENBQUMs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
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { digg } from "diggerize";
|
|
2
|
+
import SourceMapsLoader from "./source-maps-loader";
|
|
3
|
+
export default class ErrorLogger {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.debugging = false;
|
|
6
|
+
this.errorOccurred = false;
|
|
7
|
+
this.errors = [];
|
|
8
|
+
this.isHandlingError = false;
|
|
9
|
+
this.sourceMapsLoader = new SourceMapsLoader();
|
|
10
|
+
this.sourceMapsLoader.loadSourceMapsForScriptTags(script => {
|
|
11
|
+
const src = script.getAttribute("src");
|
|
12
|
+
const type = script.getAttribute("type");
|
|
13
|
+
if (src && (src.includes("/packs/") || src.includes("/packs-test/")) && (type == "text/javascript" || !type)) {
|
|
14
|
+
return src;
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
debug(...output) {
|
|
19
|
+
if (this.debugging) console.error(`ApiMaker ErrorLogger:`, ...output);
|
|
20
|
+
}
|
|
21
|
+
enable() {
|
|
22
|
+
this.debug("Enable called");
|
|
23
|
+
this.connectOnError();
|
|
24
|
+
this.connectUnhandledRejection();
|
|
25
|
+
}
|
|
26
|
+
getErrors = () => this.errors;
|
|
27
|
+
hasErrorOccurred() {
|
|
28
|
+
return digg(this, "errorOccurred");
|
|
29
|
+
}
|
|
30
|
+
isLoadingSourceMaps() {
|
|
31
|
+
return digg(this, "sourceMapsLoader", "isLoadingSourceMaps");
|
|
32
|
+
}
|
|
33
|
+
isWorkingOnError() {
|
|
34
|
+
return digg(this, "isHandlingError") || this.isLoadingSourceMaps();
|
|
35
|
+
}
|
|
36
|
+
connectOnError() {
|
|
37
|
+
window.addEventListener("error", event => {
|
|
38
|
+
if (this.debugging) this.debug(`Error:`, event.message);
|
|
39
|
+
this.errorOccurred = true;
|
|
40
|
+
if (!this.isHandlingError) {
|
|
41
|
+
this.isHandlingError = true;
|
|
42
|
+
this.onError(event).finally(() => {
|
|
43
|
+
this.isHandlingError = false;
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
connectUnhandledRejection() {
|
|
49
|
+
window.addEventListener("unhandledrejection", event => {
|
|
50
|
+
if (this.debugging) this.debug(`Unhandled rejection:`, event.reason.message);
|
|
51
|
+
this.errorOccurred = true;
|
|
52
|
+
if (!this.isHandlingError) {
|
|
53
|
+
this.isHandlingError = true;
|
|
54
|
+
this.onUnhandledRejection(event).finally(() => {
|
|
55
|
+
this.isHandlingError = false;
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
async onError(event) {
|
|
61
|
+
this.errorOccurred = true;
|
|
62
|
+
await this.sourceMapsLoader.loadSourceMaps(event.error);
|
|
63
|
+
if (event.error && event.error.stack) {
|
|
64
|
+
const backtrace = this.sourceMapsLoader.parseStackTrace(event.error.stack);
|
|
65
|
+
this.errors.push({
|
|
66
|
+
errorClass: event.error ? event.error.name : "No error class",
|
|
67
|
+
message: event.message || "Unknown error",
|
|
68
|
+
backtrace
|
|
69
|
+
});
|
|
70
|
+
} else {
|
|
71
|
+
this.errors.push({
|
|
72
|
+
errorClass: event.error ? event.error.name : "No error class",
|
|
73
|
+
message: event.message || "Unknown error",
|
|
74
|
+
backtrace: null
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
async onUnhandledRejection(event) {
|
|
79
|
+
await this.sourceMapsLoader.loadSourceMaps(event.reason);
|
|
80
|
+
if (event.reason.stack) {
|
|
81
|
+
const backtrace = this.sourceMapsLoader.parseStackTrace(event.reason.stack);
|
|
82
|
+
this.errors.push({
|
|
83
|
+
errorClass: "UnhandledRejection",
|
|
84
|
+
message: event.reason.message || "Unhandled promise rejection",
|
|
85
|
+
backtrace
|
|
86
|
+
});
|
|
87
|
+
} else {
|
|
88
|
+
this.errors.push({
|
|
89
|
+
errorClass: "UnhandledRejection",
|
|
90
|
+
message: event.reason.message || "Unhandled promise rejection",
|
|
91
|
+
backtrace: null
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
testPromiseError() {
|
|
96
|
+
return new Promise(_resolve => {
|
|
97
|
+
throw new Error("testPromiseError");
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkaWdnIiwiU291cmNlTWFwc0xvYWRlciIsIkVycm9yTG9nZ2VyIiwiY29uc3RydWN0b3IiLCJkZWJ1Z2dpbmciLCJlcnJvck9jY3VycmVkIiwiZXJyb3JzIiwiaXNIYW5kbGluZ0Vycm9yIiwic291cmNlTWFwc0xvYWRlciIsImxvYWRTb3VyY2VNYXBzRm9yU2NyaXB0VGFncyIsInNjcmlwdCIsInNyYyIsImdldEF0dHJpYnV0ZSIsInR5cGUiLCJpbmNsdWRlcyIsImRlYnVnIiwib3V0cHV0IiwiY29uc29sZSIsImVycm9yIiwiZW5hYmxlIiwiY29ubmVjdE9uRXJyb3IiLCJjb25uZWN0VW5oYW5kbGVkUmVqZWN0aW9uIiwiZ2V0RXJyb3JzIiwiaGFzRXJyb3JPY2N1cnJlZCIsImlzTG9hZGluZ1NvdXJjZU1hcHMiLCJpc1dvcmtpbmdPbkVycm9yIiwid2luZG93IiwiYWRkRXZlbnRMaXN0ZW5lciIsImV2ZW50IiwibWVzc2FnZSIsIm9uRXJyb3IiLCJmaW5hbGx5IiwicmVhc29uIiwib25VbmhhbmRsZWRSZWplY3Rpb24iLCJsb2FkU291cmNlTWFwcyIsInN0YWNrIiwiYmFja3RyYWNlIiwicGFyc2VTdGFja1RyYWNlIiwicHVzaCIsImVycm9yQ2xhc3MiLCJuYW1lIiwidGVzdFByb21pc2VFcnJvciIsIlByb21pc2UiLCJfcmVzb2x2ZSIsIkVycm9yIl0sInNvdXJjZXMiOlsiLi4vc3JjL2Vycm9yLWxvZ2dlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2RpZ2d9IGZyb20gXCJkaWdnZXJpemVcIlxuaW1wb3J0IFNvdXJjZU1hcHNMb2FkZXIgZnJvbSBcIi4vc291cmNlLW1hcHMtbG9hZGVyXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRXJyb3JMb2dnZXIge1xuICBjb25zdHJ1Y3RvciAoKSB7XG4gICAgdGhpcy5kZWJ1Z2dpbmcgPSBmYWxzZVxuICAgIHRoaXMuZXJyb3JPY2N1cnJlZCA9IGZhbHNlXG4gICAgdGhpcy5lcnJvcnMgPSBbXVxuICAgIHRoaXMuaXNIYW5kbGluZ0Vycm9yID0gZmFsc2VcbiAgICB0aGlzLnNvdXJjZU1hcHNMb2FkZXIgPSBuZXcgU291cmNlTWFwc0xvYWRlcigpXG4gICAgdGhpcy5zb3VyY2VNYXBzTG9hZGVyLmxvYWRTb3VyY2VNYXBzRm9yU2NyaXB0VGFncygoc2NyaXB0KSA9PiB7XG4gICAgICBjb25zdCBzcmMgPSBzY3JpcHQuZ2V0QXR0cmlidXRlKFwic3JjXCIpXG4gICAgICBjb25zdCB0eXBlID0gc2NyaXB0LmdldEF0dHJpYnV0ZShcInR5cGVcIilcblxuICAgICAgaWYgKHNyYyAmJiAoc3JjLmluY2x1ZGVzKFwiL3BhY2tzL1wiKSB8fCBzcmMuaW5jbHVkZXMoXCIvcGFja3MtdGVzdC9cIikpICYmICh0eXBlID09IFwidGV4dC9qYXZhc2NyaXB0XCIgfHwgIXR5cGUpKSB7XG4gICAgICAgIHJldHVybiBzcmNcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgZGVidWcoLi4ub3V0cHV0KSB7XG4gICAgaWYgKHRoaXMuZGVidWdnaW5nKSBjb25zb2xlLmVycm9yKGBBcGlNYWtlciBFcnJvckxvZ2dlcjpgLCAuLi5vdXRwdXQpXG4gIH1cblxuICBlbmFibGUgKCkge1xuICAgIHRoaXMuZGVidWcoXCJFbmFibGUgY2FsbGVkXCIpXG4gICAgdGhpcy5jb25uZWN0T25FcnJvcigpXG4gICAgdGhpcy5jb25uZWN0VW5oYW5kbGVkUmVqZWN0aW9uKClcbiAgfVxuXG4gIGdldEVycm9ycyA9ICgpID0+IHRoaXMuZXJyb3JzXG5cbiAgaGFzRXJyb3JPY2N1cnJlZCgpIHtcbiAgICByZXR1cm4gZGlnZyh0aGlzLCBcImVycm9yT2NjdXJyZWRcIilcbiAgfVxuXG4gIGlzTG9hZGluZ1NvdXJjZU1hcHMoKSB7XG4gICAgcmV0dXJuIGRpZ2codGhpcywgXCJzb3VyY2VNYXBzTG9hZGVyXCIsIFwiaXNMb2FkaW5nU291cmNlTWFwc1wiKVxuICB9XG5cbiAgaXNXb3JraW5nT25FcnJvcigpIHtcbiAgICByZXR1cm4gZGlnZyh0aGlzLCBcImlzSGFuZGxpbmdFcnJvclwiKSB8fCB0aGlzLmlzTG9hZGluZ1NvdXJjZU1hcHMoKVxuICB9XG5cbiAgY29ubmVjdE9uRXJyb3IgKCkge1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwiZXJyb3JcIiwgKGV2ZW50KSA9PiB7XG4gICAgICBpZiAodGhpcy5kZWJ1Z2dpbmcpIHRoaXMuZGVidWcoYEVycm9yOmAsIGV2ZW50Lm1lc3NhZ2UpXG4gICAgICB0aGlzLmVycm9yT2NjdXJyZWQgPSB0cnVlXG5cbiAgICAgIGlmICghdGhpcy5pc0hhbmRsaW5nRXJyb3IpIHtcbiAgICAgICAgdGhpcy5pc0hhbmRsaW5nRXJyb3IgPSB0cnVlXG4gICAgICAgIHRoaXMub25FcnJvcihldmVudCkuZmluYWxseSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5pc0hhbmRsaW5nRXJyb3IgPSBmYWxzZVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBjb25uZWN0VW5oYW5kbGVkUmVqZWN0aW9uICgpIHtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInVuaGFuZGxlZHJlamVjdGlvblwiLCAoZXZlbnQpID0+IHtcbiAgICAgIGlmICh0aGlzLmRlYnVnZ2luZykgdGhpcy5kZWJ1ZyhgVW5oYW5kbGVkIHJlamVjdGlvbjpgLCBldmVudC5yZWFzb24ubWVzc2FnZSlcbiAgICAgIHRoaXMuZXJyb3JPY2N1cnJlZCA9IHRydWVcblxuICAgICAgaWYgKCF0aGlzLmlzSGFuZGxpbmdFcnJvcikge1xuICAgICAgICB0aGlzLmlzSGFuZGxpbmdFcnJvciA9IHRydWVcbiAgICAgICAgdGhpcy5vblVuaGFuZGxlZFJlamVjdGlvbihldmVudCkuZmluYWxseSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5pc0hhbmRsaW5nRXJyb3IgPSBmYWxzZVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBhc3luYyBvbkVycm9yIChldmVudCkge1xuICAgIHRoaXMuZXJyb3JPY2N1cnJlZCA9IHRydWVcbiAgICBhd2FpdCB0aGlzLnNvdXJjZU1hcHNMb2FkZXIubG9hZFNvdXJjZU1hcHMoZXZlbnQuZXJyb3IpXG5cbiAgICBpZiAoZXZlbnQuZXJyb3IgJiYgZXZlbnQuZXJyb3Iuc3RhY2spIHtcbiAgICAgIGNvbnN0IGJhY2t0cmFjZSA9IHRoaXMuc291cmNlTWFwc0xvYWRlci5wYXJzZVN0YWNrVHJhY2UoZXZlbnQuZXJyb3Iuc3RhY2spXG5cbiAgICAgIHRoaXMuZXJyb3JzLnB1c2goe1xuICAgICAgICBlcnJvckNsYXNzOiBldmVudC5lcnJvciA/IGV2ZW50LmVycm9yLm5hbWUgOiBcIk5vIGVycm9yIGNsYXNzXCIsXG4gICAgICAgIG1lc3NhZ2U6IGV2ZW50Lm1lc3NhZ2UgfHwgXCJVbmtub3duIGVycm9yXCIsXG4gICAgICAgIGJhY2t0cmFjZVxuICAgICAgfSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lcnJvcnMucHVzaCh7XG4gICAgICAgIGVycm9yQ2xhc3M6IGV2ZW50LmVycm9yID8gZXZlbnQuZXJyb3IubmFtZSA6IFwiTm8gZXJyb3IgY2xhc3NcIixcbiAgICAgICAgbWVzc2FnZTogZXZlbnQubWVzc2FnZSB8fCBcIlVua25vd24gZXJyb3JcIixcbiAgICAgICAgYmFja3RyYWNlOiBudWxsXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIG9uVW5oYW5kbGVkUmVqZWN0aW9uIChldmVudCkge1xuICAgIGF3YWl0IHRoaXMuc291cmNlTWFwc0xvYWRlci5sb2FkU291cmNlTWFwcyhldmVudC5yZWFzb24pXG5cbiAgICBpZiAoZXZlbnQucmVhc29uLnN0YWNrKSB7XG4gICAgICBjb25zdCBiYWNrdHJhY2UgPSB0aGlzLnNvdXJjZU1hcHNMb2FkZXIucGFyc2VTdGFja1RyYWNlKGV2ZW50LnJlYXNvbi5zdGFjaylcblxuICAgICAgdGhpcy5lcnJvcnMucHVzaCh7XG4gICAgICAgIGVycm9yQ2xhc3M6IFwiVW5oYW5kbGVkUmVqZWN0aW9uXCIsXG4gICAgICAgIG1lc3NhZ2U6IGV2ZW50LnJlYXNvbi5tZXNzYWdlIHx8IFwiVW5oYW5kbGVkIHByb21pc2UgcmVqZWN0aW9uXCIsXG4gICAgICAgIGJhY2t0cmFjZVxuICAgICAgfSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lcnJvcnMucHVzaCh7XG4gICAgICAgIGVycm9yQ2xhc3M6IFwiVW5oYW5kbGVkUmVqZWN0aW9uXCIsXG4gICAgICAgIG1lc3NhZ2U6IGV2ZW50LnJlYXNvbi5tZXNzYWdlIHx8IFwiVW5oYW5kbGVkIHByb21pc2UgcmVqZWN0aW9uXCIsXG4gICAgICAgIGJhY2t0cmFjZTogbnVsbFxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICB0ZXN0UHJvbWlzZUVycm9yICgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKF9yZXNvbHZlKSA9PiB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJ0ZXN0UHJvbWlzZUVycm9yXCIpXG4gICAgfSlcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFRQSxJQUFJLFFBQU8sV0FBVztBQUM5QixPQUFPQyxnQkFBZ0IsTUFBTSxzQkFBc0I7QUFFbkQsZUFBZSxNQUFNQyxXQUFXLENBQUM7RUFDL0JDLFdBQVdBLENBQUEsRUFBSTtJQUNiLElBQUksQ0FBQ0MsU0FBUyxHQUFHLEtBQUs7SUFDdEIsSUFBSSxDQUFDQyxhQUFhLEdBQUcsS0FBSztJQUMxQixJQUFJLENBQUNDLE1BQU0sR0FBRyxFQUFFO0lBQ2hCLElBQUksQ0FBQ0MsZUFBZSxHQUFHLEtBQUs7SUFDNUIsSUFBSSxDQUFDQyxnQkFBZ0IsR0FBRyxJQUFJUCxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzlDLElBQUksQ0FBQ08sZ0JBQWdCLENBQUNDLDJCQUEyQixDQUFFQyxNQUFNLElBQUs7TUFDNUQsTUFBTUMsR0FBRyxHQUFHRCxNQUFNLENBQUNFLFlBQVksQ0FBQyxLQUFLLENBQUM7TUFDdEMsTUFBTUMsSUFBSSxHQUFHSCxNQUFNLENBQUNFLFlBQVksQ0FBQyxNQUFN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
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { digg } from "diggerize";
|
|
2
|
+
const errorMessages = args => {
|
|
3
|
+
if (typeof args.response == "object") {
|
|
4
|
+
return digg(args, "response", "errors").map(error => {
|
|
5
|
+
if (typeof error == "string") {
|
|
6
|
+
return error;
|
|
7
|
+
}
|
|
8
|
+
return digg(error, "message");
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
export default errorMessages;
|
|
13
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkaWdnIiwiZXJyb3JNZXNzYWdlcyIsImFyZ3MiLCJyZXNwb25zZSIsIm1hcCIsImVycm9yIl0sInNvdXJjZXMiOlsiLi4vc3JjL2Vycm9yLW1lc3NhZ2VzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5cbmNvbnN0IGVycm9yTWVzc2FnZXMgPSAoYXJncykgPT4ge1xuICBpZiAodHlwZW9mIGFyZ3MucmVzcG9uc2UgPT0gXCJvYmplY3RcIikge1xuICAgIHJldHVybiBkaWdnKGFyZ3MsIFwicmVzcG9uc2VcIiwgXCJlcnJvcnNcIikubWFwKChlcnJvcikgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBlcnJvciA9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHJldHVybiBlcnJvclxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZGlnZyhlcnJvciwgXCJtZXNzYWdlXCIpXG4gICAgfSlcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBlcnJvck1lc3NhZ2VzXG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVFBLElBQUksUUFBTyxXQUFXO0FBRTlCLE1BQU1DLGFBQWEsR0FBSUMsSUFBSSxJQUFLO0VBQzlCLElBQUksT0FBT0EsSUFBSSxDQUFDQyxRQUFRLElBQUksUUFBUSxFQUFFO0lBQ3BDLE9BQU9ILElBQUksQ0FBQ0UsSUFBSSxFQUFFLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQ0UsR0FBRyxDQUFFQyxLQUFLLElBQUs7TUFDckQsSUFBSSxPQUFPQSxLQUFLLElBQUksUUFBUSxFQUFFO1FBQzVCLE9BQU9BLEtBQUs7TUFDZDtNQUVBLE9BQU9MLElBQUksQ0FBQ0ssS0FBSyxFQUFFLFNBQVMsQ0FBQztJQUMvQixDQUFDLENBQUM7RUFDSjtBQUNGLENBQUM7QUFFRCxlQUFlSixhQUFhIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import ModelEvents from "./model-events";
|
|
2
|
+
import PropTypes from "prop-types";
|
|
3
|
+
import propTypesExact from "prop-types-exact";
|
|
4
|
+
import React from "react";
|
|
5
|
+
export default class ApiMakerEventConnection extends React.PureComponent {
|
|
6
|
+
static defaultProps = {
|
|
7
|
+
active: true
|
|
8
|
+
};
|
|
9
|
+
static propTypes = propTypesExact({
|
|
10
|
+
active: PropTypes.bool.isRequired,
|
|
11
|
+
model: PropTypes.object.isRequired,
|
|
12
|
+
event: PropTypes.string.isRequired,
|
|
13
|
+
onCall: PropTypes.func.isRequired
|
|
14
|
+
});
|
|
15
|
+
componentDidMount() {
|
|
16
|
+
this.subscription = ModelEvents.connect(this.props.model, this.props.event, (...args) => this.onCall(...args));
|
|
17
|
+
}
|
|
18
|
+
componentWillUnmount() {
|
|
19
|
+
if (this.subscription) {
|
|
20
|
+
this.subscription.unsubscribe();
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
render() {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
onCall(...args) {
|
|
27
|
+
if (this.props.active) {
|
|
28
|
+
this.props.onCall(...args);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNb2RlbEV2ZW50cyIsIlByb3BUeXBlcyIsInByb3BUeXBlc0V4YWN0IiwiUmVhY3QiLCJBcGlNYWtlckV2ZW50Q29ubmVjdGlvbiIsIlB1cmVDb21wb25lbnQiLCJkZWZhdWx0UHJvcHMiLCJhY3RpdmUiLCJwcm9wVHlwZXMiLCJib29sIiwiaXNSZXF1aXJlZCIsIm1vZGVsIiwib2JqZWN0IiwiZXZlbnQiLCJzdHJpbmciLCJvbkNhbGwiLCJmdW5jIiwiY29tcG9uZW50RGlkTW91bnQiLCJzdWJzY3JpcHRpb24iLCJjb25uZWN0IiwicHJvcHMiLCJhcmdzIiwiY29tcG9uZW50V2lsbFVubW91bnQiLCJ1bnN1YnNjcmliZSIsInJlbmRlciJdLCJzb3VyY2VzIjpbIi4uL3NyYy9ldmVudC1jb25uZWN0aW9uLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTW9kZWxFdmVudHMgZnJvbSBcIi4vbW9kZWwtZXZlbnRzXCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IHByb3BUeXBlc0V4YWN0IGZyb20gXCJwcm9wLXR5cGVzLWV4YWN0XCJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBcGlNYWtlckV2ZW50Q29ubmVjdGlvbiBleHRlbmRzIFJlYWN0LlB1cmVDb21wb25lbnQge1xuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIGFjdGl2ZTogdHJ1ZVxuICB9XG5cbiAgc3RhdGljIHByb3BUeXBlcyA9IHByb3BUeXBlc0V4YWN0KHtcbiAgICBhY3RpdmU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgbW9kZWw6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBldmVudDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIG9uQ2FsbDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZFxuICB9KVxuXG4gIGNvbXBvbmVudERpZE1vdW50ICgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IE1vZGVsRXZlbnRzLmNvbm5lY3QodGhpcy5wcm9wcy5tb2RlbCwgdGhpcy5wcm9wcy5ldmVudCwgKC4uLmFyZ3MpID0+IHRoaXMub25DYWxsKC4uLmFyZ3MpKVxuICB9XG5cbiAgY29tcG9uZW50V2lsbFVubW91bnQgKCkge1xuICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKVxuICAgIH1cbiAgfVxuXG4gIHJlbmRlciAoKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIG9uQ2FsbCAoLi4uYXJncykge1xuICAgIGlmICh0aGlzLnByb3BzLmFjdGl2ZSkge1xuICAgICAgdGhpcy5wcm9wcy5vbkNhbGwoLi4uYXJncylcbiAgICB9XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsV0FBVyxNQUFNLGdCQUFnQjtBQUN4QyxPQUFPQyxTQUFTLE1BQU0sWUFBWTtBQUNsQyxPQUFPQyxjQUFjLE1BQU0sa0JBQWtCO0FBQzdDLE9BQU9DLEtBQUssTUFBTSxPQUFPO0FBRXpCLGVBQWUsTUFBTUMsdUJBQXVCLFNBQVNELEtBQUssQ0FBQ0UsYUFBYSxDQUFDO0VBQ3ZFLE9BQU9DLFlBQVksR0FBRztJQUNwQkMsTUFBTSxFQUFFO0VBQ1YsQ0FBQztFQUVELE9BQU9DLFNBQVMsR0FBR04sY0FBYyxDQUFDO0lBQ2hDSyxNQUFNLEVBQUVOLFNBQVMsQ0FBQ1EsSUFBSSxDQUFDQyxVQUFVO0lBQ2pDQyxLQUFLLEVBQUVWLFNBQVMsQ0FBQ1csTUFBTSxDQUFDRixVQUFVO0lBQ2xDRyxLQUFLLEVBQUVaLFNBQVMsQ0FBQ2EsTUFBTSxDQUFDSixVQUFVO0lBQ2xDSyxNQUFNLEVBQUVkLFNBQVMsQ0FBQ2UsSUFBSSxDQUFDTjtFQUN6QixDQUFDLENBQUM7RUFFRk8saUJBQWlCQSxDQUFBLEVBQUk7SUFDbkIsSUFBSSxDQUFDQyxZQUFZLEdBQUdsQixXQUFXLENBQUNtQixPQUFPLENBQUMsSUFBSSxDQUFDQyxLQUFLLENBQUNULEtBQUssRUFBRSxJQUFJLENBQUNTLEtBQUssQ0FBQ1AsS0FBSyxFQUFFLENBQUMsR0FBR1EsSUFBSSxLQUFLLElBQUksQ0FBQ04sTUFBTSxDQUFDLEdBQUdNLElBQUksQ0FBQyxDQUFDO0VBQ2hIO0VBRUFDLG9CQUFvQkEsQ0FBQSxFQUFJO0lBQ3RCLElBQUksSUFBSSxDQUFDSixZQUFZLEVBQUU7TUFDckIsSUFBSSxDQUFDQSxZQUFZLENBQUNLLFdBQVcsQ0FBQyxDQUFDO0lBQ2pDO0VBQ0Y7RUFFQUMsTUFBTUEsQ0FBQSxFQUFJO0lBQ1IsT0FBTyxJQUFJO0VBQ2I7RUFFQVQsTUFBTUEsQ0FBRSxHQUFHTSxJQUFJLEVBQUU7SUFDZixJQUFJLElBQUksQ0FBQ0QsS0FBSyxDQUFDYixNQUFNLEVBQUU7TUFDckIsSUFBSSxDQUFDYSxLQUFLLENBQUNMLE1BQU0sQ0FBQyxHQUFHTSxJQUFJLENBQUM7SUFDNUI7RUFDRjtBQUNGIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import useEventEmitter from "./use-event-emitter";
|
|
2
|
+
const EventEmitterListener = ({
|
|
3
|
+
event,
|
|
4
|
+
events,
|
|
5
|
+
onCalled,
|
|
6
|
+
...restProps
|
|
7
|
+
}) => {
|
|
8
|
+
const restPropsKeys = Object.keys(restProps);
|
|
9
|
+
if (restPropsKeys.length > 0) {
|
|
10
|
+
throw new Error(`Unexpected props: ${restPropsKeys}`);
|
|
11
|
+
}
|
|
12
|
+
useEventEmitter(events, event, onCalled);
|
|
13
|
+
};
|
|
14
|
+
export default EventEmitterListener;
|
|
15
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFdmVudEVtaXR0ZXIiLCJFdmVudEVtaXR0ZXJMaXN0ZW5lciIsImV2ZW50IiwiZXZlbnRzIiwib25DYWxsZWQiLCJyZXN0UHJvcHMiLCJyZXN0UHJvcHNLZXlzIiwiT2JqZWN0Iiwia2V5cyIsImxlbmd0aCIsIkVycm9yIl0sInNvdXJjZXMiOlsiLi4vc3JjL2V2ZW50LWVtaXR0ZXItbGlzdGVuZXIuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB1c2VFdmVudEVtaXR0ZXIgZnJvbSBcIi4vdXNlLWV2ZW50LWVtaXR0ZXJcIlxuXG5jb25zdCBFdmVudEVtaXR0ZXJMaXN0ZW5lciA9ICh7ZXZlbnQsIGV2ZW50cywgb25DYWxsZWQsIC4uLnJlc3RQcm9wc30pID0+IHtcbiAgY29uc3QgcmVzdFByb3BzS2V5cyA9IE9iamVjdC5rZXlzKHJlc3RQcm9wcylcblxuICBpZiAocmVzdFByb3BzS2V5cy5sZW5ndGggPiAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIHByb3BzOiAke3Jlc3RQcm9wc0tleXN9YClcbiAgfVxuXG4gIHVzZUV2ZW50RW1pdHRlcihldmVudHMsIGV2ZW50LCBvbkNhbGxlZClcbn1cblxuZXhwb3J0IGRlZmF1bHQgRXZlbnRFbWl0dGVyTGlzdGVuZXJcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsZUFBZSxNQUFNLHFCQUFxQjtBQUVqRCxNQUFNQyxvQkFBb0IsR0FBR0EsQ0FBQztFQUFDQyxLQUFLO0VBQUVDLE1BQU07RUFBRUMsUUFBUTtFQUFFLEdBQUdDO0FBQVMsQ0FBQyxLQUFLO0VBQ3hFLE1BQU1DLGFBQWEsR0FBR0MsTUFBTSxDQUFDQyxJQUFJLENBQUNILFNBQVMsQ0FBQztFQUU1QyxJQUFJQyxhQUFhLENBQUNHLE1BQU0sR0FBRyxDQUFDLEVBQUU7SUFDNUIsTUFBTSxJQUFJQyxLQUFLLENBQUMscUJBQXFCSixhQUFhLEVBQUUsQ0FBQztFQUN2RDtFQUVBTixlQUFlLENBQUNHLE1BQU0sRUFBRUQsS0FBSyxFQUFFRSxRQUFRLENBQUM7QUFDMUMsQ0FBQztBQUVELGVBQWVILG9CQUFvQiIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import ModelEvents from "./model-events";
|
|
2
|
+
import PropTypes from "prop-types";
|
|
3
|
+
import propTypesExact from "prop-types-exact";
|
|
4
|
+
import React from "react";
|
|
5
|
+
export default class ApiMakerEventModelClass extends React.PureComponent {
|
|
6
|
+
static propTypes = propTypesExact({
|
|
7
|
+
event: PropTypes.string.isRequired,
|
|
8
|
+
modelClass: PropTypes.func.isRequired,
|
|
9
|
+
onCall: PropTypes.func.isRequired
|
|
10
|
+
});
|
|
11
|
+
componentDidMount() {
|
|
12
|
+
this.connect();
|
|
13
|
+
}
|
|
14
|
+
componentWillUnmount() {
|
|
15
|
+
if (this.connection) {
|
|
16
|
+
this.connection.unsubscribe();
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
connect() {
|
|
20
|
+
this.connection = ModelEvents.connectModelClass(this.props.modelClass, this.props.event, this.props.onCall);
|
|
21
|
+
}
|
|
22
|
+
render = () => null;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNb2RlbEV2ZW50cyIsIlByb3BUeXBlcyIsInByb3BUeXBlc0V4YWN0IiwiUmVhY3QiLCJBcGlNYWtlckV2ZW50TW9kZWxDbGFzcyIsIlB1cmVDb21wb25lbnQiLCJwcm9wVHlwZXMiLCJldmVudCIsInN0cmluZyIsImlzUmVxdWlyZWQiLCJtb2RlbENsYXNzIiwiZnVuYyIsIm9uQ2FsbCIsImNvbXBvbmVudERpZE1vdW50IiwiY29ubmVjdCIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwiY29ubmVjdGlvbiIsInVuc3Vic2NyaWJlIiwiY29ubmVjdE1vZGVsQ2xhc3MiLCJwcm9wcyIsInJlbmRlciJdLCJzb3VyY2VzIjpbIi4uL3NyYy9ldmVudC1tb2RlbC1jbGFzcy5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE1vZGVsRXZlbnRzIGZyb20gXCIuL21vZGVsLWV2ZW50c1wiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBwcm9wVHlwZXNFeGFjdCBmcm9tIFwicHJvcC10eXBlcy1leGFjdFwiXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXBpTWFrZXJFdmVudE1vZGVsQ2xhc3MgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHByb3BUeXBlc0V4YWN0KHtcbiAgICBldmVudDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIG1vZGVsQ2xhc3M6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25DYWxsOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkXG4gIH0pXG5cbiAgY29tcG9uZW50RGlkTW91bnQgKCkge1xuICAgIHRoaXMuY29ubmVjdCgpXG4gIH1cblxuICBjb21wb25lbnRXaWxsVW5tb3VudCAoKSB7XG4gICAgaWYgKHRoaXMuY29ubmVjdGlvbikge1xuICAgICAgdGhpcy5jb25uZWN0aW9uLnVuc3Vic2NyaWJlKClcbiAgICB9XG4gIH1cblxuICBjb25uZWN0ICgpIHtcbiAgICB0aGlzLmNvbm5lY3Rpb24gPSBNb2RlbEV2ZW50cy5jb25uZWN0TW9kZWxDbGFzcyh0aGlzLnByb3BzLm1vZGVsQ2xhc3MsIHRoaXMucHJvcHMuZXZlbnQsIHRoaXMucHJvcHMub25DYWxsKVxuICB9XG5cbiAgcmVuZGVyID0gKCkgPT4gbnVsbFxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxXQUFXLE1BQU0sZ0JBQWdCO0FBQ3hDLE9BQU9DLFNBQVMsTUFBTSxZQUFZO0FBQ2xDLE9BQU9DLGNBQWMsTUFBTSxrQkFBa0I7QUFDN0MsT0FBT0MsS0FBSyxNQUFNLE9BQU87QUFFekIsZUFBZSxNQUFNQyx1QkFBdUIsU0FBU0QsS0FBSyxDQUFDRSxhQUFhLENBQUM7RUFDdkUsT0FBT0MsU0FBUyxHQUFHSixjQUFjLENBQUM7SUFDaENLLEtBQUssRUFBRU4sU0FBUyxDQUFDTyxNQUFNLENBQUNDLFVBQVU7SUFDbENDLFVBQVUsRUFBRVQsU0FBUyxDQUFDVSxJQUFJLENBQUNGLFVBQVU7SUFDckNHLE1BQU0sRUFBRVgsU0FBUyxDQUFDVSxJQUFJLENBQUNGO0VBQ3pCLENBQUMsQ0FBQztFQUVGSSxpQkFBaUJBLENBQUEsRUFBSTtJQUNuQixJQUFJLENBQUNDLE9BQU8sQ0FBQyxDQUFDO0VBQ2hCO0VBRUFDLG9CQUFvQkEsQ0FBQSxFQUFJO0lBQ3RCLElBQUksSUFBSSxDQUFDQyxVQUFVLEVBQUU7TUFDbkIsSUFBSSxDQUFDQSxVQUFVLENBQUNDLFdBQVcsQ0FBQyxDQUFDO0lBQy9CO0VBQ0Y7RUFFQUgsT0FBT0EsQ0FBQSxFQUFJO0lBQ1QsSUFBSSxDQUFDRSxVQUFVLEdBQUdoQixXQUFXLENBQUNrQixpQkFBaUIsQ0FBQyxJQUFJLENBQUNDLEtBQUssQ0FBQ1QsVUFBVSxFQUFFLElBQUksQ0FBQ1MsS0FBSyxDQUFDWixLQUFLLEVBQUUsSUFBSSxDQUFDWSxLQUFLLENBQUNQLE1BQU0sQ0FBQztFQUM3RztFQUVBUSxNQUFNLEdBQUdBLENBQUEsS0FBTSxJQUFJO0FBQ3JCIiwiaWdub3JlTGlzdCI6W119
|
package/build/events.js
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import EventEmitter from "events";
|
|
2
|
+
const events = new EventEmitter();
|
|
3
|
+
events.setMaxListeners(1000);
|
|
4
|
+
export default events;
|
|
5
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFdmVudEVtaXR0ZXIiLCJldmVudHMiLCJzZXRNYXhMaXN0ZW5lcnMiXSwic291cmNlcyI6WyIuLi9zcmMvZXZlbnRzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBFdmVudEVtaXR0ZXIgZnJvbSBcImV2ZW50c1wiXG5cbmNvbnN0IGV2ZW50cyA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuXG5ldmVudHMuc2V0TWF4TGlzdGVuZXJzKDEwMDApXG5cbmV4cG9ydCBkZWZhdWx0IGV2ZW50c1xuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxZQUFZLE1BQU0sUUFBUTtBQUVqQyxNQUFNQyxNQUFNLEdBQUcsSUFBSUQsWUFBWSxDQUFDLENBQUM7QUFFakNDLE1BQU0sQ0FBQ0MsZUFBZSxDQUFDLElBQUksQ0FBQztBQUU1QixlQUFlRCxNQUFNIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import CustomError from "@kaspernj/api-maker/build/custom-error";
|
|
2
|
+
import I18nOnSteroids from "i18n-on-steroids";
|
|
3
|
+
import ValidationError from "@kaspernj/api-maker/build/validation-error";
|
|
4
|
+
import { digg } from "diggerize";
|
|
5
|
+
export default class FlashMessage {
|
|
6
|
+
static alert(message) {
|
|
7
|
+
new FlashMessage({
|
|
8
|
+
type: "alert",
|
|
9
|
+
message
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
static error(message) {
|
|
13
|
+
new FlashMessage({
|
|
14
|
+
type: "error",
|
|
15
|
+
message
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
static errorResponse(error) {
|
|
19
|
+
if (error instanceof ValidationError) {
|
|
20
|
+
if (error.hasUnhandledErrors()) {
|
|
21
|
+
FlashMessage.error(error.message);
|
|
22
|
+
} else {
|
|
23
|
+
FlashMessage.error(I18nOnSteroids.getCurrent().t("js.flash_message.couldnt_submit_because_of_validation_errors"));
|
|
24
|
+
}
|
|
25
|
+
} else if (error instanceof CustomError) {
|
|
26
|
+
const errors = error.args.response.errors;
|
|
27
|
+
const errorMessages = errors.map(error => {
|
|
28
|
+
if (typeof error == "string") {
|
|
29
|
+
return error;
|
|
30
|
+
}
|
|
31
|
+
return digg(error, "message");
|
|
32
|
+
});
|
|
33
|
+
const errorMessage = errorMessages.join(". ");
|
|
34
|
+
FlashMessage.error(errorMessage);
|
|
35
|
+
} else {
|
|
36
|
+
console.error("Didnt know what to do with this", error);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
static success(message) {
|
|
40
|
+
new FlashMessage({
|
|
41
|
+
type: "success",
|
|
42
|
+
message
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
constructor({
|
|
46
|
+
message,
|
|
47
|
+
type
|
|
48
|
+
}) {
|
|
49
|
+
if (!message) throw new Error("No message given");
|
|
50
|
+
if (!type) throw new Error("No type given");
|
|
51
|
+
let title;
|
|
52
|
+
if (type == "alert") {
|
|
53
|
+
title = I18nOnSteroids.getCurrent().t("js.flash_message.alert", {
|
|
54
|
+
defaultValue: "Alert"
|
|
55
|
+
});
|
|
56
|
+
} else if (type == "error") {
|
|
57
|
+
title = I18nOnSteroids.getCurrent().t("js.flash_message.error", {
|
|
58
|
+
defaultValue: "Error"
|
|
59
|
+
});
|
|
60
|
+
} else if (type == "success") {
|
|
61
|
+
title = I18nOnSteroids.getCurrent().t("js.flash_message.success", {
|
|
62
|
+
defaultValue: "Success"
|
|
63
|
+
});
|
|
64
|
+
} else {
|
|
65
|
+
title = I18nOnSteroids.getCurrent().t("js.flash_message.notification", {
|
|
66
|
+
defaultValue: "Notification"
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
const event = new CustomEvent("pushNotification", {
|
|
70
|
+
detail: {
|
|
71
|
+
message,
|
|
72
|
+
title,
|
|
73
|
+
type
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
globalThis.dispatchEvent(event);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDdXN0b21FcnJvciIsIkkxOG5PblN0ZXJvaWRzIiwiVmFsaWRhdGlvbkVycm9yIiwiZGlnZyIsIkZsYXNoTWVzc2FnZSIsImFsZXJ0IiwibWVzc2FnZSIsInR5cGUiLCJlcnJvciIsImVycm9yUmVzcG9uc2UiLCJoYXNVbmhhbmRsZWRFcnJvcnMiLCJnZXRDdXJyZW50IiwidCIsImVycm9ycyIsImFyZ3MiLCJyZXNwb25zZSIsImVycm9yTWVzc2FnZXMiLCJtYXAiLCJlcnJvck1lc3NhZ2UiLCJqb2luIiwiY29uc29sZSIsInN1Y2Nlc3MiLCJjb25zdHJ1Y3RvciIsIkVycm9yIiwidGl0bGUiLCJkZWZhdWx0VmFsdWUiLCJldmVudCIsIkN1c3RvbUV2ZW50IiwiZGV0YWlsIiwiZ2xvYmFsVGhpcyIsImRpc3BhdGNoRXZlbnQiXSwic291cmNlcyI6WyIuLi9zcmMvZmxhc2gtbWVzc2FnZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ3VzdG9tRXJyb3IgZnJvbSBcIkBrYXNwZXJuai9hcGktbWFrZXIvYnVpbGQvY3VzdG9tLWVycm9yXCJcbmltcG9ydCBJMThuT25TdGVyb2lkcyBmcm9tIFwiaTE4bi1vbi1zdGVyb2lkc1wiXG5pbXBvcnQgVmFsaWRhdGlvbkVycm9yIGZyb20gXCJAa2FzcGVybmovYXBpLW1ha2VyL2J1aWxkL3ZhbGlkYXRpb24tZXJyb3JcIlxuaW1wb3J0IHtkaWdnfSBmcm9tIFwiZGlnZ2VyaXplXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRmxhc2hNZXNzYWdlIHtcbiAgc3RhdGljIGFsZXJ0KG1lc3NhZ2UpIHtcbiAgICBuZXcgRmxhc2hNZXNzYWdlKHt0eXBlOiBcImFsZXJ0XCIsIG1lc3NhZ2V9KVxuICB9XG5cbiAgc3RhdGljIGVycm9yKG1lc3NhZ2UpIHtcbiAgICBuZXcgRmxhc2hNZXNzYWdlKHt0eXBlOiBcImVycm9yXCIsIG1lc3NhZ2V9KVxuICB9XG5cbiAgc3RhdGljIGVycm9yUmVzcG9uc2UoZXJyb3IpIHtcbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBWYWxpZGF0aW9uRXJyb3IpIHtcbiAgICAgIGlmIChlcnJvci5oYXNVbmhhbmRsZWRFcnJvcnMoKSkge1xuICAgICAgICBGbGFzaE1lc3NhZ2UuZXJyb3IoZXJyb3IubWVzc2FnZSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIEZsYXNoTWVzc2FnZS5lcnJvcihJMThuT25TdGVyb2lkcy5nZXRDdXJyZW50KCkudChcImpzLmZsYXNoX21lc3NhZ2UuY291bGRudF9zdWJtaXRfYmVjYXVzZV9vZl92YWxpZGF0aW9uX2Vycm9yc1wiKSlcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGVycm9yIGluc3RhbmNlb2YgQ3VzdG9tRXJyb3IpIHtcbiAgICAgIGNvbnN0IGVycm9ycyA9IGVycm9yLmFyZ3MucmVzcG9uc2UuZXJyb3JzXG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2VzID0gZXJyb3JzXG4gICAgICAgIC5tYXAoKGVycm9yKSA9PiB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBlcnJvciA9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXR1cm4gZXJyb3JcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gZGlnZyhlcnJvciwgXCJtZXNzYWdlXCIpXG4gICAgICAgIH0pXG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBlcnJvck1lc3NhZ2VzLmpvaW4oXCIuIFwiKVxuXG4gICAgICBGbGFzaE1lc3NhZ2UuZXJyb3IoZXJyb3JNZXNzYWdlKVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmVycm9yKFwiRGlkbnQga25vdyB3aGF0IHRvIGRvIHdpdGggdGhpc1wiLCBlcnJvcilcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgc3VjY2VzcyhtZXNzYWdlKSB7XG4gICAgbmV3IEZsYXNoTWVzc2FnZSh7dHlwZTogXCJzdWNjZXNzXCIsIG1lc3NhZ2V9KVxuICB9XG5cbiAgY29uc3RydWN0b3Ioe21lc3NhZ2UsIHR5cGV9KSB7XG4gICAgaWYgKCFtZXNzYWdlKSB0aHJvdyBuZXcgRXJyb3IoXCJObyBtZXNzYWdlIGdpdmVuXCIpXG4gICAgaWYgKCF0eXBlKSB0aHJvdyBuZXcgRXJyb3IoXCJObyB0eXBlIGdpdmVuXCIpXG5cbiAgICBsZXQgdGl0bGVcblxuICAgIGlmICh0eXBlID09IFwiYWxlcnRcIikge1xuICAgICAgdGl0bGUgPSBJMThuT25TdGVyb2lkcy5nZXRDdXJyZW50KCkudChcImpzLmZsYXNoX21lc3NhZ2UuYWxlcnRcIiwge2RlZmF1bHRWYWx1ZTogXCJBbGVydFwifSlcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJlcnJvclwiKSB7XG4gICAgICB0aXRsZSA9IEkxOG5PblN0ZXJvaWRzLmdldEN1cnJlbnQoKS50KFwianMuZmxhc2hfbWVzc2FnZS5lcnJvclwiLCB7ZGVmYXVsdFZhbHVlOiBcIkVycm9yXCJ9KVxuICAgIH0gZWxzZSBpZiAodHlwZSA9PSBcInN1Y2Nlc3NcIikge1xuICAgICAgdGl0bGUgPSBJMThuT25TdGVyb2lkcy5nZXRDdXJyZW50KCkudChcImpzLmZsYXNoX21lc3NhZ2Uuc3VjY2Vzc1wiLCB7ZGVmYXVsdFZhbHVlOiBcIlN1Y2Nlc3NcIn0pXG4gICAgfSBlbHNlIHtcbiAgICAgIHRpdGxlID0gSTE4bk9uU3Rlcm9pZHMuZ2V0Q3VycmVudCgpLnQoXCJqcy5mbGFzaF9tZXNzYWdlLm5vdGlmaWNhdGlvblwiLCB7ZGVmYXVsdFZhbHVlOiBcIk5vdGlmaWNhdGlvblwifSlcbiAgICB9XG5cbiAgICBjb25zdCBldmVudCA9IG5ldyBDdXN0b21FdmVudChcInB1c2hOb3RpZmljYXRpb25cIiwge1xuICAgICAgZGV0YWlsOiB7XG4gICAgICAgIG1lc3NhZ2UsXG4gICAgICAgIHRpdGxlLFxuICAgICAgICB0eXBlXG4gICAgICB9XG4gICAgfSlcblxuICAgIGdsb2JhbFRoaXMuZGlzcGF0Y2hFdmVudChldmVudClcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxXQUFXLE1BQU0sd0NBQXdDO0FB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
|
package/build/form.js
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
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 React, { createContext, useContext, useMemo } from "react";
|
|
3
|
+
import BaseComponent from "./base-component";
|
|
4
|
+
import FormDataObjectizer from "form-data-objectizer";
|
|
5
|
+
import memo from "set-state-compare/src/memo";
|
|
6
|
+
import { Platform } from "react-native";
|
|
7
|
+
import PropTypes from "prop-types";
|
|
8
|
+
import { shapeComponent } from "set-state-compare/src/shape-component";
|
|
9
|
+
const FormContext = /*#__PURE__*/createContext(null);
|
|
10
|
+
const useForm = () => useContext(FormContext);
|
|
11
|
+
class FormInputs {
|
|
12
|
+
constructor(props) {
|
|
13
|
+
this.inputs = {};
|
|
14
|
+
this.onSubmit = props?.onSubmit;
|
|
15
|
+
}
|
|
16
|
+
asObject() {
|
|
17
|
+
const result = {};
|
|
18
|
+
const formDataObjectizer = new FormDataObjectizer();
|
|
19
|
+
for (const key in this.inputs) {
|
|
20
|
+
const value = this.inputs[key];
|
|
21
|
+
formDataObjectizer.treatInitial(key, value, result);
|
|
22
|
+
}
|
|
23
|
+
return result;
|
|
24
|
+
}
|
|
25
|
+
setValue(name, value) {
|
|
26
|
+
if (!name) throw new Error("'name' is required");
|
|
27
|
+
this.inputs[name] = value;
|
|
28
|
+
}
|
|
29
|
+
setValueWithHidden(name, value) {
|
|
30
|
+
this.setValue(name, value);
|
|
31
|
+
if (Platform.OS == "web") {
|
|
32
|
+
return /*#__PURE__*/React.createElement("input", {
|
|
33
|
+
name: name,
|
|
34
|
+
type: "hidden",
|
|
35
|
+
value: value !== null && value !== undefined ? value : ""
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
submit() {
|
|
40
|
+
if (this.onSubmit) {
|
|
41
|
+
this.onSubmit();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
const Form = memo(shapeComponent(class Form extends BaseComponent {
|
|
46
|
+
static propTypes = {
|
|
47
|
+
children: PropTypes.node,
|
|
48
|
+
formRef: PropTypes.object,
|
|
49
|
+
onSubmit: PropTypes.func,
|
|
50
|
+
setForm: PropTypes.func
|
|
51
|
+
};
|
|
52
|
+
render() {
|
|
53
|
+
const {
|
|
54
|
+
children,
|
|
55
|
+
formRef,
|
|
56
|
+
onSubmit,
|
|
57
|
+
setForm,
|
|
58
|
+
...restProps
|
|
59
|
+
} = this.props;
|
|
60
|
+
const form = useMemo(() => new FormInputs({
|
|
61
|
+
onSubmit
|
|
62
|
+
}), []);
|
|
63
|
+
useMemo(() => {
|
|
64
|
+
if (setForm) {
|
|
65
|
+
setForm(form);
|
|
66
|
+
}
|
|
67
|
+
}, [setForm]);
|
|
68
|
+
return /*#__PURE__*/React.createElement(FormContext.Provider, {
|
|
69
|
+
value: form
|
|
70
|
+
}, Platform.OS == "web" && /*#__PURE__*/React.createElement("form", _extends({
|
|
71
|
+
ref: formRef,
|
|
72
|
+
onSubmit: this.tt.onFormSubmit
|
|
73
|
+
}, restProps), children), Platform.OS != "web" && this.props.children);
|
|
74
|
+
}
|
|
75
|
+
onFormSubmit = e => {
|
|
76
|
+
e.preventDefault();
|
|
77
|
+
if (this.props.onSubmit) {
|
|
78
|
+
this.props.onSubmit();
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
}));
|
|
82
|
+
export { Form, FormContext, FormInputs, useForm };
|
|
83
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImNyZWF0ZUNvbnRleHQiLCJ1c2VDb250ZXh0IiwidXNlTWVtbyIsIkJhc2VDb21wb25lbnQiLCJGb3JtRGF0YU9iamVjdGl6ZXIiLCJtZW1vIiwiUGxhdGZvcm0iLCJQcm9wVHlwZXMiLCJzaGFwZUNvbXBvbmVudCIsIkZvcm1Db250ZXh0IiwidXNlRm9ybSIsIkZvcm1JbnB1dHMiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwiaW5wdXRzIiwib25TdWJtaXQiLCJhc09iamVjdCIsInJlc3VsdCIsImZvcm1EYXRhT2JqZWN0aXplciIsImtleSIsInZhbHVlIiwidHJlYXRJbml0aWFsIiwic2V0VmFsdWUiLCJuYW1lIiwiRXJyb3IiLCJzZXRWYWx1ZVdpdGhIaWRkZW4iLCJPUyIsImNyZWF0ZUVsZW1lbnQiLCJ0eXBlIiwidW5kZWZpbmVkIiwic3VibWl0IiwiRm9ybSIsInByb3BUeXBlcyIsImNoaWxkcmVuIiwibm9kZSIsImZvcm1SZWYiLCJvYmplY3QiLCJmdW5jIiwic2V0Rm9ybSIsInJlbmRlciIsInJlc3RQcm9wcyIsImZvcm0iLCJQcm92aWRlciIsIl9leHRlbmRzIiwicmVmIiwidHQiLCJvbkZvcm1TdWJtaXQiLCJlIiwicHJldmVudERlZmF1bHQiXSwic291cmNlcyI6WyIuLi9zcmMvZm9ybS5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7Y3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCwgdXNlTWVtb30gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBCYXNlQ29tcG9uZW50IGZyb20gXCIuL2Jhc2UtY29tcG9uZW50XCJcbmltcG9ydCBGb3JtRGF0YU9iamVjdGl6ZXIgZnJvbSBcImZvcm0tZGF0YS1vYmplY3RpemVyXCJcbmltcG9ydCBtZW1vIGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvbWVtb1wiXG5pbXBvcnQge1BsYXRmb3JtfSBmcm9tIFwicmVhY3QtbmF0aXZlXCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IHtzaGFwZUNvbXBvbmVudH0gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL3NyYy9zaGFwZS1jb21wb25lbnRcIlxuXG5jb25zdCBGb3JtQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQobnVsbClcbmNvbnN0IHVzZUZvcm0gPSAoKSA9PiB1c2VDb250ZXh0KEZvcm1Db250ZXh0KVxuXG5jbGFzcyBGb3JtSW5wdXRzIHtcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICB0aGlzLmlucHV0cyA9IHt9XG4gICAgdGhpcy5vblN1Ym1pdCA9IHByb3BzPy5vblN1Ym1pdFxuICB9XG5cbiAgYXNPYmplY3QoKSB7XG4gICAgY29uc3QgcmVzdWx0ID0ge31cbiAgICBjb25zdCBmb3JtRGF0YU9iamVjdGl6ZXIgPSBuZXcgRm9ybURhdGFPYmplY3RpemVyKClcblxuICAgIGZvcihjb25zdCBrZXkgaW4gdGhpcy5pbnB1dHMpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5pbnB1dHNba2V5XVxuXG4gICAgICBmb3JtRGF0YU9iamVjdGl6ZXIudHJlYXRJbml0aWFsKGtleSwgdmFsdWUsIHJlc3VsdClcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cblxuICBzZXRWYWx1ZShuYW1lLCB2YWx1ZSkge1xuICAgIGlmICghbmFtZSkgdGhyb3cgbmV3IEVycm9yKFwiJ25hbWUnIGlzIHJlcXVpcmVkXCIpXG5cbiAgICB0aGlzLmlucHV0c1tuYW1lXSA9IHZhbHVlXG4gIH1cblxuICBzZXRWYWx1ZVdpdGhIaWRkZW4obmFtZSwgdmFsdWUpIHtcbiAgICB0aGlzLnNldFZhbHVlKG5hbWUsIHZhbHVlKVxuXG4gICAgaWYgKFBsYXRmb3JtLk9TID09IFwid2ViXCIpIHtcbiAgICAgIHJldHVybiA8aW5wdXQgbmFtZT17bmFtZX0gdHlwZT1cImhpZGRlblwiIHZhbHVlPXt2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkID8gdmFsdWUgOiBcIlwifSAvPlxuICAgIH1cbiAgfVxuXG4gIHN1Ym1pdCgpIHtcbiAgICBpZiAodGhpcy5vblN1Ym1pdCkge1xuICAgICAgdGhpcy5vblN1Ym1pdCgpXG4gICAgfVxuICB9XG59XG5cbmNvbnN0IEZvcm0gPSBtZW1vKHNoYXBlQ29tcG9uZW50KGNsYXNzIEZvcm0gZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGUsXG4gICAgZm9ybVJlZjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBvblN1Ym1pdDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgc2V0Rm9ybTogUHJvcFR5cGVzLmZ1bmNcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7Y2hpbGRyZW4sIGZvcm1SZWYsIG9uU3VibWl0LCBzZXRGb3JtLCAuLi5yZXN0UHJvcHN9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IGZvcm0gPSB1c2VNZW1vKCgpID0+IG5ldyBGb3JtSW5wdXRzKHtvblN1Ym1pdH0pLCBbXSlcblxuICAgIHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKHNldEZvcm0pIHtcbiAgICAgICAgc2V0Rm9ybShmb3JtKVxuICAgICAgfVxuICAgIH0sIFtzZXRGb3JtXSlcblxuICAgIHJldHVybiAoXG4gICAgICA8Rm9ybUNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2Zvcm19PlxuICAgICAgICB7UGxhdGZvcm0uT1MgPT0gXCJ3ZWJcIiAmJlxuICAgICAgICAgIDxmb3JtIHJlZj17Zm9ybVJlZn0gb25TdWJtaXQ9e3RoaXMudHQub25Gb3JtU3VibWl0fSB7Li4ucmVzdFByb3BzfT5cbiAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgIH1cbiAgICAgICAge1BsYXRmb3JtLk9TICE9IFwid2ViXCIgJiYgdGhpcy5wcm9wcy5jaGlsZHJlbn1cbiAgICAgIDwvRm9ybUNvbnRleHQuUHJvdmlkZXI+XG4gICAgKVxuICB9XG5cbiAgb25Gb3JtU3VibWl0ID0gKGUpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KClcblxuICAgIGlmICh0aGlzLnByb3BzLm9uU3VibWl0KSB7XG4gICAgICB0aGlzLnByb3BzLm9uU3VibWl0KClcbiAgICB9XG4gIH1cbn0pKVxuXG5leHBvcnQge0Zvcm0sIEZvcm1Db250ZXh0LCBGb3JtSW5wdXRzLCB1c2VGb3JtfVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsT0FBT0EsS0FBSyxJQUFHQyxhQUFhLEVBQUVDLFVBQVUsRUFBRUMsT0FBTyxRQUFPLE9BQU87QUFDL0QsT0FBT0MsYUFBYSxNQUFNLGtCQUFrQjtBQUM1QyxPQUFPQyxrQkFBa0IsTUFBTSxzQkFBc0I7QUFDckQsT0FBT0MsSUFBSSxNQUFNLDRCQUE0QjtBQUM3QyxTQUFRQyxRQUFRLFFBQU8sY0FBYztBQUNyQyxPQUFPQyxTQUFTLE1BQU0sWUFBWTtBQUNsQyxTQUFRQyxjQUFjLFFBQU8sdUNBQXVDO0FBRXBFLE1BQU1DLFdBQVcsZ0JBQUdULGFBQWEsQ0FBQyxJQUFJLENBQUM7QUFDdkMsTUFBTVUsT0FBTyxHQUFHQSxDQUFBLEtBQU1ULFVBQVUsQ0FBQ1EsV0FBVyxDQUFDO0FBRTdDLE1BQU1FLFVBQVUsQ0FBQztFQUNmQyxXQUFXQSxDQUFDQyxLQUFLLEVBQUU7SUFDakIsSUFBSSxDQUFDQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2hCLElBQUksQ0FBQ0MsUUFBUSxHQUFHRixLQUFLLEVBQUVFLFFBQVE7RUFDakM7RUFFQUMsUUFBUUEsQ0FBQSxFQUFHO0lBQ1QsTUFBTUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNqQixNQUFNQyxrQkFBa0IsR0FBRyxJQUFJZCxrQkFBa0IsQ0FBQyxDQUFDO0lBRW5ELEtBQUksTUFBTWUsR0FBRyxJQUFJLElBQUksQ0FBQ0wsTUFBTSxFQUFFO01BQzVCLE1BQU1NLEtBQUssR0FBRyxJQUFJLENBQUNOLE1BQU0sQ0FBQ0ssR0FBRyxDQUFDO01BRTlCRCxrQkFBa0IsQ0FBQ0csWUFBWSxDQUFDRixH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
|