@kaspernj/api-maker 1.0.2054 → 1.0.2056
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/api.js +65 -213
- package/build/attribute-not-loaded-error.js +3 -26
- package/build/base-component.js +4 -27
- package/build/base-error.js +21 -46
- package/build/base-model/attribute.js +15 -22
- package/build/base-model/column.js +5 -9
- package/build/base-model/reflection.js +12 -52
- package/build/base-model/scope.js +9 -46
- package/build/base-model.js +584 -837
- package/build/bootstrap/attribute-row.js +88 -173
- package/build/bootstrap/attribute-rows.js +22 -51
- package/build/bootstrap/card.js +77 -160
- package/build/bootstrap/checkbox.js +54 -103
- package/build/bootstrap/checkboxes.js +117 -203
- package/build/bootstrap/index.js +1 -1
- package/build/bootstrap/input.js +81 -132
- package/build/bootstrap/invalid-feedback.js +19 -47
- package/build/bootstrap/paginate.js +100 -165
- package/build/bootstrap/radio-buttons.js +44 -81
- package/build/bootstrap/select.js +44 -91
- package/build/bootstrap/sort-link.js +69 -152
- package/build/cable-connection-pool.js +44 -66
- package/build/cable-subscription-pool.js +105 -162
- package/build/cable-subscription.js +10 -17
- package/build/cache-key-generator.js +28 -37
- package/build/can-can.js +81 -202
- package/build/channels-consumer.js +6 -11
- package/build/collection-loader.js +36 -54
- package/build/collection.d.ts.map +1 -1
- package/build/collection.js +160 -308
- package/build/command-submit-data.d.ts +1 -1
- package/build/command-submit-data.d.ts.map +1 -1
- package/build/command-submit-data.js +30 -39
- package/build/commands-pool.js +140 -216
- package/build/compose.js +4 -12
- package/build/config.js +21 -68
- package/build/custom-error.js +5 -30
- package/build/data-set-to-attributes.js +6 -42
- package/build/deserializer.js +27 -80
- package/build/destroy-error.js +5 -30
- package/build/devise.js +84 -188
- package/build/draggable-sort/controller.js +88 -111
- package/build/draggable-sort/index.js +68 -145
- package/build/draggable-sort/item.js +132 -198
- package/build/error-logger.js +79 -164
- package/build/error-messages.js +5 -8
- package/build/event-connection.js +24 -62
- package/build/event-emitter-listener.js +7 -24
- package/build/event-model-class.js +20 -47
- package/build/events.js +4 -9
- package/build/form.js +66 -154
- package/build/history-expo.js +13 -25
- package/build/history-react-native.js +15 -27
- package/build/history.js +3 -5
- package/build/index.js +3 -6
- package/build/inputs/attachment.js +72 -123
- package/build/inputs/auto-submit.js +16 -55
- package/build/inputs/checkbox.js +78 -167
- package/build/inputs/checkboxes.js +76 -159
- package/build/inputs/id-for-component.js +5 -41
- package/build/inputs/input-wrapper.js +8 -27
- package/build/inputs/input.js +159 -245
- package/build/inputs/money.js +124 -186
- package/build/inputs/name-for-component.js +5 -41
- package/build/inputs/select.js +69 -123
- package/build/instance-of-class-name.js +16 -21
- package/build/is-expo.js +9 -11
- package/build/key-value-store.js +52 -128
- package/build/link.js +52 -115
- package/build/logger.js +20 -26
- package/build/merge-styles.js +6 -10
- package/build/modal.js +15 -62
- package/build/model-class-require.js +9 -44
- package/build/model-events.js +25 -34
- package/build/model-name.js +16 -57
- package/build/model-prop-type.js +52 -63
- package/build/model-recipes-loader.js +17 -25
- package/build/model-recipes-model-loader.d.ts +1 -1
- package/build/model-recipes-model-loader.js +130 -208
- package/build/models-response-reader.js +25 -66
- package/build/models.js +6 -11
- package/build/money-formatter.d.ts +2 -2
- package/build/money-formatter.d.ts.map +1 -1
- package/build/money-formatter.js +46 -56
- package/build/not-loaded-error.js +3 -26
- package/build/params.js +32 -42
- package/build/preloaded.js +19 -59
- package/build/resize-observer.js +6 -12
- package/build/rest-props-validator.js +5 -7
- package/build/result.js +11 -15
- package/build/router/route.js +179 -312
- package/build/router/switch.js +56 -130
- package/build/router.js +34 -94
- package/build/routes-native.js +64 -148
- package/build/routes.js +26 -80
- package/build/run-last.js +20 -25
- package/build/serializer.js +29 -34
- package/build/services.js +10 -19
- package/build/session-status-updater.js +85 -184
- package/build/source-maps-loader.d.ts +37 -0
- package/build/source-maps-loader.d.ts.map +1 -0
- package/build/source-maps-loader.js +103 -225
- package/build/super-admin/config-reader.d.ts +2 -2
- package/build/super-admin/config-reader.js +42 -83
- package/build/super-admin/edit-page/edit-attribute-checkbox.js +53 -115
- package/build/super-admin/edit-page/edit-attribute-content.js +47 -77
- package/build/super-admin/edit-page/edit-attribute-input.js +57 -119
- package/build/super-admin/edit-page/edit-attribute.js +40 -104
- package/build/super-admin/edit-page.js +88 -201
- package/build/super-admin/has-edit-config.js +7 -13
- package/build/super-admin/index-page.js +17 -44
- package/build/super-admin/index.js +87 -210
- package/build/super-admin/layout/header/index.js +91 -152
- package/build/super-admin/layout/index.js +70 -153
- package/build/super-admin/layout/menu/index.js +85 -161
- package/build/super-admin/layout/menu/menu-content.js +25 -85
- package/build/super-admin/layout/menu/menu-item.js +52 -102
- package/build/super-admin/layout/no-access.js +19 -45
- package/build/super-admin/model-class-table.js +45 -129
- package/build/super-admin/models.js +6 -42
- package/build/super-admin/show-nav.js +27 -89
- package/build/super-admin/show-page/belongs-to-attribute-row.js +18 -76
- package/build/super-admin/show-page/index.js +101 -187
- package/build/super-admin/show-reflection-actions.js +39 -100
- package/build/super-admin/show-reflection-link.js +27 -99
- package/build/super-admin/show-reflection-page.js +34 -97
- package/build/table/column-content.js +77 -121
- package/build/table/column-identifier.js +7 -11
- package/build/table/column-visible.js +2 -5
- package/build/table/components/column.js +13 -60
- package/build/table/components/flat-list.js +13 -60
- package/build/table/components/header.js +15 -62
- package/build/table/components/row.js +16 -63
- package/build/table/filters/attribute-element.js +34 -62
- package/build/table/filters/filter-form.js +280 -483
- package/build/table/filters/filter.js +45 -73
- package/build/table/filters/index.js +95 -139
- package/build/table/filters/load-search-modal.js +64 -212
- package/build/table/filters/reflection-element.js +27 -55
- package/build/table/filters/save-search-modal.js +44 -140
- package/build/table/filters/scope-element.js +28 -56
- package/build/table/header-column-content.js +33 -71
- package/build/table/header-column.js +89 -218
- package/build/table/header-select.js +45 -77
- package/build/table/model-callback-args.js +5 -41
- package/build/table/model-column.js +59 -144
- package/build/table/model-row.js +75 -187
- package/build/table/select-calculator.js +27 -86
- package/build/table/settings/column-row.js +66 -186
- package/build/table/settings/download-action.js +38 -74
- package/build/table/settings/index.js +38 -102
- package/build/table/table-settings.js +185 -323
- package/build/table/table.js +583 -781
- package/build/table/use-sorting.js +16 -35
- package/build/table/widths.js +32 -38
- package/build/table/worker-plugins-check-all-checkbox.js +77 -225
- package/build/table/worker-plugins-checkbox.js +74 -185
- package/build/translated-attributes.js +6 -11
- package/build/translated-collections.js +11 -20
- package/build/updated-attribute.js +47 -120
- package/build/url-encode.js +6 -12
- package/build/use-breakpoint.js +43 -95
- package/build/use-can-can.js +30 -92
- package/build/use-collection.js +119 -229
- package/build/use-created-event.js +27 -44
- package/build/use-current-user-context.js +57 -151
- package/build/use-current-user.js +14 -32
- package/build/use-destroyed-event.js +22 -43
- package/build/use-event-emitter.d.ts +1 -2
- package/build/use-event-emitter.d.ts.map +1 -1
- package/build/use-event-emitter.js +10 -16
- package/build/use-event-listener.js +13 -22
- package/build/use-input.js +49 -69
- package/build/use-model-event.js +22 -43
- package/build/use-model.js +96 -199
- package/build/use-resize-observer.js +11 -21
- package/build/use-router.js +65 -107
- package/build/use-screen-layout.js +17 -19
- package/build/use-styles.js +24 -75
- package/build/use-updated-event.js +22 -44
- package/build/use-validation-errors.js +12 -18
- package/build/utils/button.js +86 -136
- package/build/utils/card.js +31 -106
- package/build/utils/checkbox.js +51 -112
- package/build/utils/checkboxes.js +109 -182
- package/build/utils/default-style.js +29 -103
- package/build/utils/header.js +8 -35
- package/build/utils/icon.js +36 -117
- package/build/utils/invalid-feedback.js +16 -43
- package/build/utils/modal.js +25 -108
- package/build/utils/text.js +10 -37
- package/build/validation-error.js +31 -89
- package/build/validation-errors.js +61 -111
- package/build/with-api-maker.js +15 -67
- package/build/with-collection.js +14 -64
- package/build/with-current-user.js +7 -23
- package/build/with-model.js +11 -27
- package/build/with-router.js +8 -35
- package/package.json +4 -3
- package/build/api.js.map +0 -1
- package/build/attribute-not-loaded-error.js.map +0 -1
- package/build/base-component.js.map +0 -1
- package/build/base-error.js.map +0 -1
- package/build/base-model/attribute.js.map +0 -1
- package/build/base-model/column.js.map +0 -1
- package/build/base-model/reflection.js.map +0 -1
- package/build/base-model/scope.js.map +0 -1
- package/build/base-model.js.map +0 -1
- package/build/bootstrap/attribute-row.js.map +0 -1
- package/build/bootstrap/attribute-rows.js.map +0 -1
- package/build/bootstrap/card.js.map +0 -1
- package/build/bootstrap/checkbox.js.map +0 -1
- package/build/bootstrap/checkboxes.js.map +0 -1
- package/build/bootstrap/index.js.map +0 -1
- package/build/bootstrap/input.js.map +0 -1
- package/build/bootstrap/invalid-feedback.js.map +0 -1
- package/build/bootstrap/paginate.js.map +0 -1
- package/build/bootstrap/radio-buttons.js.map +0 -1
- package/build/bootstrap/select.js.map +0 -1
- package/build/bootstrap/sort-link.js.map +0 -1
- package/build/cable-connection-pool.js.map +0 -1
- package/build/cable-subscription-pool.js.map +0 -1
- package/build/cable-subscription.js.map +0 -1
- package/build/cache-key-generator.js.map +0 -1
- package/build/can-can.js.map +0 -1
- package/build/channels-consumer.js.map +0 -1
- package/build/collection-loader.js.map +0 -1
- package/build/collection.js.map +0 -1
- package/build/command-submit-data.js.map +0 -1
- package/build/commands-pool.js.map +0 -1
- package/build/compose.js.map +0 -1
- package/build/config.js.map +0 -1
- package/build/custom-error.js.map +0 -1
- package/build/data-set-to-attributes.js.map +0 -1
- package/build/deserializer.js.map +0 -1
- package/build/destroy-error.js.map +0 -1
- package/build/devise.js.map +0 -1
- package/build/draggable-sort/controller.js.map +0 -1
- package/build/draggable-sort/index.js.map +0 -1
- package/build/draggable-sort/item.js.map +0 -1
- package/build/error-logger.js.map +0 -1
- package/build/error-messages.js.map +0 -1
- package/build/event-connection.js.map +0 -1
- package/build/event-emitter-listener.js.map +0 -1
- package/build/event-model-class.js.map +0 -1
- package/build/events.js.map +0 -1
- package/build/form.js.map +0 -1
- package/build/history-expo.js.map +0 -1
- package/build/history-react-native.js.map +0 -1
- package/build/history.js.map +0 -1
- package/build/index.js.map +0 -1
- package/build/inputs/attachment.js.map +0 -1
- package/build/inputs/auto-submit.js.map +0 -1
- package/build/inputs/checkbox.js.map +0 -1
- package/build/inputs/checkboxes.js.map +0 -1
- package/build/inputs/id-for-component.js.map +0 -1
- package/build/inputs/input-wrapper.js.map +0 -1
- package/build/inputs/input.js.map +0 -1
- package/build/inputs/money.js.map +0 -1
- package/build/inputs/name-for-component.js.map +0 -1
- package/build/inputs/select.js.map +0 -1
- package/build/instance-of-class-name.js.map +0 -1
- package/build/is-expo.js.map +0 -1
- package/build/key-value-store.js.map +0 -1
- package/build/link.js.map +0 -1
- package/build/logger.js.map +0 -1
- package/build/merge-styles.js.map +0 -1
- package/build/modal.js.map +0 -1
- package/build/model-class-require.js.map +0 -1
- package/build/model-events.js.map +0 -1
- package/build/model-name.js.map +0 -1
- package/build/model-prop-type.js.map +0 -1
- package/build/model-recipes-loader.js.map +0 -1
- package/build/model-recipes-model-loader.js.map +0 -1
- package/build/models-response-reader.js.map +0 -1
- package/build/models.js.map +0 -1
- package/build/money-formatter.js.map +0 -1
- package/build/not-loaded-error.js.map +0 -1
- package/build/params.js.map +0 -1
- package/build/preloaded.js.map +0 -1
- package/build/resize-observer.js.map +0 -1
- package/build/rest-props-validator.js.map +0 -1
- package/build/result.js.map +0 -1
- package/build/router/route.js.map +0 -1
- package/build/router/switch.js.map +0 -1
- package/build/router.js.map +0 -1
- package/build/routes-native.js.map +0 -1
- package/build/routes.js.map +0 -1
- package/build/run-last.js.map +0 -1
- package/build/serializer.js.map +0 -1
- package/build/services.js.map +0 -1
- package/build/session-status-updater.js.map +0 -1
- package/build/source-maps-loader.js.map +0 -1
- package/build/super-admin/config-reader.js.map +0 -1
- package/build/super-admin/edit-page/edit-attribute-checkbox.js.map +0 -1
- package/build/super-admin/edit-page/edit-attribute-content.js.map +0 -1
- package/build/super-admin/edit-page/edit-attribute-input.js.map +0 -1
- package/build/super-admin/edit-page/edit-attribute.js.map +0 -1
- package/build/super-admin/edit-page.js.map +0 -1
- package/build/super-admin/has-edit-config.js.map +0 -1
- package/build/super-admin/index-page.js.map +0 -1
- package/build/super-admin/index.js.map +0 -1
- package/build/super-admin/layout/header/index.js.map +0 -1
- package/build/super-admin/layout/index.js.map +0 -1
- package/build/super-admin/layout/menu/index.js.map +0 -1
- package/build/super-admin/layout/menu/menu-content.js.map +0 -1
- package/build/super-admin/layout/menu/menu-item.js.map +0 -1
- package/build/super-admin/layout/no-access.js.map +0 -1
- package/build/super-admin/model-class-table.js.map +0 -1
- package/build/super-admin/models.js.map +0 -1
- package/build/super-admin/show-nav.js.map +0 -1
- package/build/super-admin/show-page/belongs-to-attribute-row.js.map +0 -1
- package/build/super-admin/show-page/index.js.map +0 -1
- package/build/super-admin/show-reflection-actions.js.map +0 -1
- package/build/super-admin/show-reflection-link.js.map +0 -1
- package/build/super-admin/show-reflection-page.js.map +0 -1
- package/build/table/column-content.js.map +0 -1
- package/build/table/column-identifier.js.map +0 -1
- package/build/table/column-visible.js.map +0 -1
- package/build/table/components/column.js.map +0 -1
- package/build/table/components/flat-list.js.map +0 -1
- package/build/table/components/header.js.map +0 -1
- package/build/table/components/row.js.map +0 -1
- package/build/table/filters/attribute-element.js.map +0 -1
- package/build/table/filters/filter-form.js.map +0 -1
- package/build/table/filters/filter.js.map +0 -1
- package/build/table/filters/index.js.map +0 -1
- package/build/table/filters/load-search-modal.js.map +0 -1
- package/build/table/filters/reflection-element.js.map +0 -1
- package/build/table/filters/save-search-modal.js.map +0 -1
- package/build/table/filters/scope-element.js.map +0 -1
- package/build/table/header-column-content.js.map +0 -1
- package/build/table/header-column.js.map +0 -1
- package/build/table/header-select.js.map +0 -1
- package/build/table/model-callback-args.js.map +0 -1
- package/build/table/model-column.js.map +0 -1
- package/build/table/model-row.js.map +0 -1
- package/build/table/select-calculator.js.map +0 -1
- package/build/table/settings/column-row.js.map +0 -1
- package/build/table/settings/download-action.js.map +0 -1
- package/build/table/settings/index.js.map +0 -1
- package/build/table/table-settings.js.map +0 -1
- package/build/table/table.js.map +0 -1
- package/build/table/use-sorting.js.map +0 -1
- package/build/table/widths.js.map +0 -1
- package/build/table/worker-plugins-check-all-checkbox.js.map +0 -1
- package/build/table/worker-plugins-checkbox.js.map +0 -1
- package/build/translated-attributes.js.map +0 -1
- package/build/translated-collections.js.map +0 -1
- package/build/updated-attribute.js.map +0 -1
- package/build/url-encode.js.map +0 -1
- package/build/use-breakpoint.js.map +0 -1
- package/build/use-can-can.js.map +0 -1
- package/build/use-collection.js.map +0 -1
- package/build/use-created-event.js.map +0 -1
- package/build/use-current-user-context.js.map +0 -1
- package/build/use-current-user.js.map +0 -1
- package/build/use-destroyed-event.js.map +0 -1
- package/build/use-event-emitter.js.map +0 -1
- package/build/use-event-listener.js.map +0 -1
- package/build/use-input.js.map +0 -1
- package/build/use-model-event.js.map +0 -1
- package/build/use-model.js.map +0 -1
- package/build/use-resize-observer.js.map +0 -1
- package/build/use-router.js.map +0 -1
- package/build/use-screen-layout.js.map +0 -1
- package/build/use-styles.js.map +0 -1
- package/build/use-updated-event.js.map +0 -1
- package/build/use-validation-errors.js.map +0 -1
- package/build/utils/button.js.map +0 -1
- package/build/utils/card.js.map +0 -1
- package/build/utils/checkbox.js.map +0 -1
- package/build/utils/checkboxes.js.map +0 -1
- package/build/utils/default-style.js.map +0 -1
- package/build/utils/header.js.map +0 -1
- package/build/utils/icon.js.map +0 -1
- package/build/utils/invalid-feedback.js.map +0 -1
- package/build/utils/modal.js.map +0 -1
- package/build/utils/text.js.map +0 -1
- package/build/validation-error.js.map +0 -1
- package/build/validation-errors.js.map +0 -1
- package/build/with-api-maker.js.map +0 -1
- package/build/with-collection.js.map +0 -1
- package/build/with-current-user.js.map +0 -1
- package/build/with-model.js.map +0 -1
- package/build/with-router.js.map +0 -1
package/build/inputs/money.js
CHANGED
|
@@ -1,191 +1,129 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React, { useRef } from "react";
|
|
3
|
+
import { shapeComponent, ShapeComponent } from "set-state-compare/build/shape-component.js";
|
|
4
|
+
import classNames from "classnames";
|
|
5
|
+
import Config from "../config.js";
|
|
6
|
+
import { digg } from "diggerize";
|
|
7
|
+
import idForComponent from "./id-for-component.js";
|
|
8
|
+
import * as inflection from "inflection";
|
|
9
|
+
import memo from "set-state-compare/build/memo.js";
|
|
10
|
+
import MoneyFormatter from "../money-formatter.js";
|
|
11
|
+
import PropTypes from "prop-types";
|
|
12
|
+
import PropTypesExact from "prop-types-exact";
|
|
13
|
+
export default memo(shapeComponent(class ApiMakerInputsMoney extends ShapeComponent {
|
|
14
|
+
static defaultProps = {
|
|
15
|
+
disabled: false,
|
|
16
|
+
showCurrencyOptions: true
|
|
15
17
|
};
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
static propTypes = PropTypesExact({
|
|
19
|
+
attribute: PropTypes.string,
|
|
20
|
+
centsInputName: PropTypes.string,
|
|
21
|
+
className: PropTypes.string,
|
|
22
|
+
currenciesCollection: PropTypes.array,
|
|
23
|
+
currencyName: PropTypes.string,
|
|
24
|
+
currencyRef: PropTypes.object,
|
|
25
|
+
defaultValue: PropTypes.object,
|
|
26
|
+
disabled: PropTypes.bool.isRequired,
|
|
27
|
+
id: PropTypes.string,
|
|
28
|
+
inputRef: PropTypes.object,
|
|
29
|
+
label: PropTypes.any,
|
|
30
|
+
model: PropTypes.object,
|
|
31
|
+
name: PropTypes.string,
|
|
32
|
+
onChange: PropTypes.func,
|
|
33
|
+
placeholder: PropTypes.any,
|
|
34
|
+
showCurrencyOptions: PropTypes.bool,
|
|
35
|
+
small: PropTypes.bool,
|
|
36
|
+
type: PropTypes.string,
|
|
37
|
+
wholeRef: PropTypes.object
|
|
38
|
+
});
|
|
39
|
+
setup() {
|
|
40
|
+
this.inputRef = useRef();
|
|
41
|
+
this.currencyRefBackup = useRef();
|
|
42
|
+
this.currencyRef = this.props.currencyRef || this.currencyRefBackup;
|
|
43
|
+
this.wholeRefBackup = useRef();
|
|
44
|
+
this.wholeRef = this.props.wholeRef || this.wholeRefBackup;
|
|
22
45
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
};
|
|
40
|
-
|
|
46
|
+
getInputRef = () => this.props.inputRef || this.inputRef;
|
|
47
|
+
render() {
|
|
48
|
+
const { attribute, className, disabled, model, showCurrencyOptions } = this.props;
|
|
49
|
+
let { currenciesCollection } = this.props;
|
|
50
|
+
if (!currenciesCollection)
|
|
51
|
+
currenciesCollection = Config.getCurrenciesCollection();
|
|
52
|
+
return (_jsxs("div", { className: "api-maker-inputs-money", "data-attribute": attribute, "data-model-id": model?.id(), children: [_jsx("input", { defaultValue: this.inputDefaultCentsValue(), id: this.inputCentsId(), name: this.inputCentsName(), ref: this.getInputRef(), type: "hidden" }), _jsx("input", { className: classNames("money-cents", className), defaultValue: this.inputDefaultValue(), disabled: disabled, id: this.inputId(), onBlur: this.tt.setAmount, onChange: this.tt.setCents, onKeyUp: this.tt.setCents, placeholder: this.props.placeholder, ref: this.tt.wholeRef, type: "text" }), showCurrencyOptions &&
|
|
53
|
+
_jsxs("select", { className: "money-currency", defaultValue: this.inputCurrencyValue(), disabled: disabled, id: this.inputCurrencyId(), name: this.inputCurrencyName(), onChange: this.tt.onCurrencyChanged, ref: this.tt.currencyRef, children: [_jsx("option", {}), currenciesCollection.map((option) => (_jsxs("option", { value: option[1], children: [this.props.small && option[1], !this.props.small && option[0]] }, `select-option-${option[1]}`)))] })] }));
|
|
54
|
+
}
|
|
55
|
+
inputCurrencyId = () => `${this.inputId()}_currency`;
|
|
56
|
+
inputCurrencyName() {
|
|
57
|
+
if ("currencyName" in this.props)
|
|
58
|
+
return this.props.currencyName;
|
|
59
|
+
return `${this.props.model.modelClassData().paramKey}[${inflection.underscore(this.props.attribute)}_currency]`;
|
|
60
|
+
}
|
|
61
|
+
inputCurrencyValue() {
|
|
62
|
+
const { defaultValue } = this.props;
|
|
63
|
+
if (defaultValue) {
|
|
64
|
+
return MoneyFormatter.currencyFromMoney(defaultValue).code;
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
return "DKK";
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
inputDefaultValue() {
|
|
71
|
+
const { defaultValue } = this.props;
|
|
72
|
+
if (defaultValue) {
|
|
73
|
+
return MoneyFormatter.fromMoney({ amount: defaultValue.amount, currency: this.inputCurrencyValue() }, { decimals: 2, excludeCurrency: true }).toString();
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
return "";
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
inputDefaultCentsValue() {
|
|
80
|
+
const { defaultValue } = this.props;
|
|
81
|
+
if (this.getInputRef().current) {
|
|
82
|
+
return digg(this.getInputRef(), "current", "value");
|
|
83
|
+
}
|
|
84
|
+
else if (defaultValue) {
|
|
85
|
+
return MoneyFormatter.amountFromMoney(defaultValue);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
inputCentsId = () => `${this.inputId()}_cents`;
|
|
89
|
+
inputCentsName() {
|
|
90
|
+
if ("name" in this.props)
|
|
91
|
+
return this.props.name;
|
|
92
|
+
return `${this.props.model.modelClassData().paramKey}[${inflection.underscore(this.props.attribute)}_cents]`;
|
|
93
|
+
}
|
|
94
|
+
inputId = () => idForComponent(this);
|
|
95
|
+
onCurrencyChanged = () => {
|
|
96
|
+
if (this.props.onChange)
|
|
97
|
+
this.props.onChange();
|
|
41
98
|
};
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
99
|
+
setAmount = () => {
|
|
100
|
+
const inputElement = this.getInputRef().current;
|
|
101
|
+
if (!inputElement)
|
|
102
|
+
return;
|
|
103
|
+
if (!inputElement.value && inputElement.value == "") {
|
|
104
|
+
this.wholeRef.current.value = "";
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
const cents = parseFloat(inputElement.value);
|
|
108
|
+
const formatted = MoneyFormatter.fromMoney({ amount: cents, currency: this.inputCurrencyValue() }, { decimals: 2, excludeCurrency: true }).toString();
|
|
109
|
+
this.wholeRef.current.value = formatted;
|
|
110
|
+
}
|
|
48
111
|
};
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
var classnames_1 = __importDefault(require("classnames"));
|
|
59
|
-
var config_js_1 = __importDefault(require("../config.js"));
|
|
60
|
-
var diggerize_1 = require("diggerize");
|
|
61
|
-
var id_for_component_js_1 = __importDefault(require("./id-for-component.js"));
|
|
62
|
-
var inflection = __importStar(require("inflection"));
|
|
63
|
-
var memo_js_1 = __importDefault(require("set-state-compare/build/memo.js"));
|
|
64
|
-
var money_formatter_js_1 = __importDefault(require("../money-formatter.js"));
|
|
65
|
-
var prop_types_1 = __importDefault(require("prop-types"));
|
|
66
|
-
var prop_types_exact_1 = __importDefault(require("prop-types-exact"));
|
|
67
|
-
exports.default = (0, memo_js_1.default)((0, shape_component_js_1.shapeComponent)((_a = /** @class */ (function (_super) {
|
|
68
|
-
__extends(ApiMakerInputsMoney, _super);
|
|
69
|
-
function ApiMakerInputsMoney() {
|
|
70
|
-
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
71
|
-
_this.getInputRef = function () { return _this.props.inputRef || _this.inputRef; };
|
|
72
|
-
_this.inputCurrencyId = function () { return "".concat(_this.inputId(), "_currency"); };
|
|
73
|
-
_this.inputCentsId = function () { return "".concat(_this.inputId(), "_cents"); };
|
|
74
|
-
_this.inputId = function () { return (0, id_for_component_js_1.default)(_this); };
|
|
75
|
-
_this.onCurrencyChanged = function () {
|
|
76
|
-
if (_this.props.onChange)
|
|
77
|
-
_this.props.onChange();
|
|
78
|
-
};
|
|
79
|
-
_this.setAmount = function () {
|
|
80
|
-
var inputElement = _this.getInputRef().current;
|
|
81
|
-
if (!inputElement)
|
|
82
|
-
return;
|
|
83
|
-
if (!inputElement.value && inputElement.value == "") {
|
|
84
|
-
_this.wholeRef.current.value = "";
|
|
85
|
-
}
|
|
86
|
-
else {
|
|
87
|
-
var cents = parseFloat(inputElement.value);
|
|
88
|
-
var formatted = money_formatter_js_1.default.fromMoney({ amount: cents, currency: _this.inputCurrencyValue() }, { decimals: 2, excludeCurrency: true }).toString();
|
|
89
|
-
_this.wholeRef.current.value = formatted;
|
|
90
|
-
}
|
|
91
|
-
};
|
|
92
|
-
_this.setCents = function () {
|
|
93
|
-
var inputElement = _this.getInputRef().current;
|
|
94
|
-
if (!inputElement)
|
|
95
|
-
return;
|
|
96
|
-
var whole = money_formatter_js_1.default.stringToFloat(_this.wholeRef.current.value);
|
|
97
|
-
var cents = parseInt(whole * 100, 10);
|
|
98
|
-
var oldCents = parseInt(inputElement.value, 10);
|
|
99
|
-
if (typeof cents == "number") {
|
|
100
|
-
inputElement.value = cents;
|
|
101
|
-
}
|
|
102
|
-
else {
|
|
103
|
-
inputElement.value = '';
|
|
104
|
-
}
|
|
105
|
-
if (_this.props.onChange && oldCents != cents)
|
|
106
|
-
_this.props.onChange();
|
|
107
|
-
};
|
|
108
|
-
return _this;
|
|
112
|
+
setCents = () => {
|
|
113
|
+
const inputElement = this.getInputRef().current;
|
|
114
|
+
if (!inputElement)
|
|
115
|
+
return;
|
|
116
|
+
let whole = MoneyFormatter.stringToFloat(this.wholeRef.current.value);
|
|
117
|
+
let cents = parseInt(whole * 100, 10);
|
|
118
|
+
let oldCents = parseInt(inputElement.value, 10);
|
|
119
|
+
if (typeof cents == "number") {
|
|
120
|
+
inputElement.value = cents;
|
|
109
121
|
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
this.
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
ApiMakerInputsMoney.prototype.render = function () {
|
|
118
|
-
var _this = this;
|
|
119
|
-
var _b = this.props, attribute = _b.attribute, className = _b.className, disabled = _b.disabled, model = _b.model, showCurrencyOptions = _b.showCurrencyOptions;
|
|
120
|
-
var currenciesCollection = this.props.currenciesCollection;
|
|
121
|
-
if (!currenciesCollection)
|
|
122
|
-
currenciesCollection = config_js_1.default.getCurrenciesCollection();
|
|
123
|
-
return ((0, jsx_runtime_1.jsxs)("div", { className: "api-maker-inputs-money", "data-attribute": attribute, "data-model-id": model === null || model === void 0 ? void 0 : model.id(), children: [(0, jsx_runtime_1.jsx)("input", { defaultValue: this.inputDefaultCentsValue(), id: this.inputCentsId(), name: this.inputCentsName(), ref: this.getInputRef(), type: "hidden" }), (0, jsx_runtime_1.jsx)("input", { className: (0, classnames_1.default)("money-cents", className), defaultValue: this.inputDefaultValue(), disabled: disabled, id: this.inputId(), onBlur: this.tt.setAmount, onChange: this.tt.setCents, onKeyUp: this.tt.setCents, placeholder: this.props.placeholder, ref: this.tt.wholeRef, type: "text" }), showCurrencyOptions &&
|
|
124
|
-
(0, jsx_runtime_1.jsxs)("select", { className: "money-currency", defaultValue: this.inputCurrencyValue(), disabled: disabled, id: this.inputCurrencyId(), name: this.inputCurrencyName(), onChange: this.tt.onCurrencyChanged, ref: this.tt.currencyRef, children: [(0, jsx_runtime_1.jsx)("option", {}), currenciesCollection.map(function (option) { return ((0, jsx_runtime_1.jsxs)("option", { value: option[1], children: [_this.props.small && option[1], !_this.props.small && option[0]] }, "select-option-".concat(option[1]))); })] })] }));
|
|
125
|
-
};
|
|
126
|
-
ApiMakerInputsMoney.prototype.inputCurrencyName = function () {
|
|
127
|
-
if ("currencyName" in this.props)
|
|
128
|
-
return this.props.currencyName;
|
|
129
|
-
return "".concat(this.props.model.modelClassData().paramKey, "[").concat(inflection.underscore(this.props.attribute), "_currency]");
|
|
130
|
-
};
|
|
131
|
-
ApiMakerInputsMoney.prototype.inputCurrencyValue = function () {
|
|
132
|
-
var defaultValue = this.props.defaultValue;
|
|
133
|
-
if (defaultValue) {
|
|
134
|
-
return money_formatter_js_1.default.currencyFromMoney(defaultValue).code;
|
|
135
|
-
}
|
|
136
|
-
else {
|
|
137
|
-
return "DKK";
|
|
138
|
-
}
|
|
139
|
-
};
|
|
140
|
-
ApiMakerInputsMoney.prototype.inputDefaultValue = function () {
|
|
141
|
-
var defaultValue = this.props.defaultValue;
|
|
142
|
-
if (defaultValue) {
|
|
143
|
-
return money_formatter_js_1.default.fromMoney({ amount: defaultValue.amount, currency: this.inputCurrencyValue() }, { decimals: 2, excludeCurrency: true }).toString();
|
|
144
|
-
}
|
|
145
|
-
else {
|
|
146
|
-
return "";
|
|
147
|
-
}
|
|
148
|
-
};
|
|
149
|
-
ApiMakerInputsMoney.prototype.inputDefaultCentsValue = function () {
|
|
150
|
-
var defaultValue = this.props.defaultValue;
|
|
151
|
-
if (this.getInputRef().current) {
|
|
152
|
-
return (0, diggerize_1.digg)(this.getInputRef(), "current", "value");
|
|
153
|
-
}
|
|
154
|
-
else if (defaultValue) {
|
|
155
|
-
return money_formatter_js_1.default.amountFromMoney(defaultValue);
|
|
156
|
-
}
|
|
157
|
-
};
|
|
158
|
-
ApiMakerInputsMoney.prototype.inputCentsName = function () {
|
|
159
|
-
if ("name" in this.props)
|
|
160
|
-
return this.props.name;
|
|
161
|
-
return "".concat(this.props.model.modelClassData().paramKey, "[").concat(inflection.underscore(this.props.attribute), "_cents]");
|
|
162
|
-
};
|
|
163
|
-
return ApiMakerInputsMoney;
|
|
164
|
-
}(shape_component_js_1.ShapeComponent)),
|
|
165
|
-
_a.defaultProps = {
|
|
166
|
-
disabled: false,
|
|
167
|
-
showCurrencyOptions: true
|
|
168
|
-
},
|
|
169
|
-
_a.propTypes = (0, prop_types_exact_1.default)({
|
|
170
|
-
attribute: prop_types_1.default.string,
|
|
171
|
-
centsInputName: prop_types_1.default.string,
|
|
172
|
-
className: prop_types_1.default.string,
|
|
173
|
-
currenciesCollection: prop_types_1.default.array,
|
|
174
|
-
currencyName: prop_types_1.default.string,
|
|
175
|
-
currencyRef: prop_types_1.default.object,
|
|
176
|
-
defaultValue: prop_types_1.default.object,
|
|
177
|
-
disabled: prop_types_1.default.bool.isRequired,
|
|
178
|
-
id: prop_types_1.default.string,
|
|
179
|
-
inputRef: prop_types_1.default.object,
|
|
180
|
-
label: prop_types_1.default.any,
|
|
181
|
-
model: prop_types_1.default.object,
|
|
182
|
-
name: prop_types_1.default.string,
|
|
183
|
-
onChange: prop_types_1.default.func,
|
|
184
|
-
placeholder: prop_types_1.default.any,
|
|
185
|
-
showCurrencyOptions: prop_types_1.default.bool,
|
|
186
|
-
small: prop_types_1.default.bool,
|
|
187
|
-
type: prop_types_1.default.string,
|
|
188
|
-
wholeRef: prop_types_1.default.object
|
|
189
|
-
}),
|
|
190
|
-
_a)));
|
|
191
|
-
//# sourceMappingURL=money.js.map
|
|
122
|
+
else {
|
|
123
|
+
inputElement.value = '';
|
|
124
|
+
}
|
|
125
|
+
if (this.props.onChange && oldCents != cents)
|
|
126
|
+
this.props.onChange();
|
|
127
|
+
};
|
|
128
|
+
}));
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZXkuanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbImlucHV0cy9tb25leS5qc3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQUMsTUFBTSxFQUFDLE1BQU0sT0FBTyxDQUFBO0FBQ25DLE9BQU8sRUFBQyxjQUFjLEVBQUUsY0FBYyxFQUFDLE1BQU0sNENBQTRDLENBQUE7QUFDekYsT0FBTyxVQUFVLE1BQU0sWUFBWSxDQUFBO0FBQ25DLE9BQU8sTUFBTSxNQUFNLGNBQWMsQ0FBQTtBQUNqQyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sV0FBVyxDQUFBO0FBQzlCLE9BQU8sY0FBYyxNQUFNLHVCQUF1QixDQUFBO0FBQ2xELE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFBO0FBQ3hDLE9BQU8sSUFBSSxNQUFNLGlDQUFpQyxDQUFBO0FBQ2xELE9BQU8sY0FBYyxNQUFNLHVCQUF1QixDQUFBO0FBQ2xELE9BQU8sU0FBUyxNQUFNLFlBQVksQ0FBQTtBQUNsQyxPQUFPLGNBQWMsTUFBTSxrQkFBa0IsQ0FBQTtBQUU3QyxlQUFlLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxtQkFBb0IsU0FBUSxjQUFjO0lBQ2pGLE1BQU0sQ0FBQyxZQUFZLEdBQUc7UUFDcEIsUUFBUSxFQUFFLEtBQUs7UUFDZixtQkFBbUIsRUFBRSxJQUFJO0tBQzFCLENBQUE7SUFFRCxNQUFNLENBQUMsU0FBUyxHQUFHLGNBQWMsQ0FBQztRQUNoQyxTQUFTLEVBQUUsU0FBUyxDQUFDLE1BQU07UUFDM0IsY0FBYyxFQUFFLFNBQVMsQ0FBQyxNQUFNO1FBQ2hDLFNBQVMsRUFBRSxTQUFTLENBQUMsTUFBTTtRQUMzQixvQkFBb0IsRUFBRSxTQUFTLENBQUMsS0FBSztRQUNyQyxZQUFZLEVBQUUsU0FBUyxDQUFDLE1BQU07UUFDOUIsV0FBVyxFQUFFLFNBQVMsQ0FBQyxNQUFNO1FBQzdCLFlBQVksRUFBRSxTQUFTLENBQUMsTUFBTTtRQUM5QixRQUFRLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVO1FBQ25DLEVBQUUsRUFBRSxTQUFTLENBQUMsTUFBTTtRQUNwQixRQUFRLEVBQUUsU0FBUyxDQUFDLE1BQU07UUFDMUIsS0FBSyxFQUFFLFNBQVMsQ0FBQyxHQUFHO1FBQ3BCLEtBQUssRUFBRSxTQUFTLENBQUMsTUFBTTtRQUN2QixJQUFJLEVBQUUsU0FBUyxDQUFDLE1BQU07UUFDdEIsUUFBUSxFQUFFLFNBQVMsQ0FBQyxJQUFJO1FBQ3hCLFdBQVcsRUFBRSxTQUFTLENBQUMsR0FBRztRQUMxQixtQkFBbUIsRUFBRSxTQUFTLENBQUMsSUFBSTtRQUNuQyxLQUFLLEVBQUUsU0FBUyxDQUFDLElBQUk7UUFDckIsSUFBSSxFQUFFLFNBQVMsQ0FBQyxNQUFNO1FBQ3RCLFFBQVEsRUFBRSxTQUFTLENBQUMsTUFBTTtLQUMzQixDQUFDLENBQUE7SUFFRixLQUFLO1FBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLEVBQUUsQ0FBQTtRQUN4QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsTUFBTSxFQUFFLENBQUE7UUFDakMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUE7UUFDbkUsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLEVBQUUsQ0FBQTtRQUM5QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUE7SUFDNUQsQ0FBQztJQUVELFdBQVcsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFBO0lBRXhELE1BQU07UUFDSixNQUFNLEVBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLG1CQUFtQixFQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQTtRQUMvRSxJQUFJLEVBQUMsb0JBQW9CLEVBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFBO1FBRXZDLElBQUksQ0FBQyxvQkFBb0I7WUFBRSxvQkFBb0IsR0FBRyxNQUFNLENBQUMsdUJBQXVCLEVBQUUsQ0FBQTtRQUVsRixPQUFPLENBQ0wsZUFBSyxTQUFTLEVBQUMsd0JBQXdCLG9CQUFpQixTQUFTLG1CQUFpQixLQUFLLEVBQUUsRUFBRSxFQUFFLGFBQzNGLGdCQUFPLFlBQVksRUFBRSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUMsUUFBUSxHQUFHLEVBQ25KLGdCQUNFLFNBQVMsRUFBRSxVQUFVLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxFQUMvQyxZQUFZLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQ3RDLFFBQVEsRUFBRSxRQUFRLEVBQ2xCLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQ2xCLE1BQU0sRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFDekIsUUFBUSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUMxQixPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQ3pCLFdBQVcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFDbkMsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUNyQixJQUFJLEVBQUMsTUFBTSxHQUNYLEVBQ0QsbUJBQW1CO29CQUNsQixrQkFDRSxTQUFTLEVBQUMsZ0JBQWdCLEVBQzFCLFlBQVksRUFBRSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsRUFDdkMsUUFBUSxFQUFFLFFBQVEsRUFDbEIsRUFBRSxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFDMUIsSUFBSSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUM5QixRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsRUFDbkMsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxhQUV4QixrQkFBaUIsRUFDaEIsb0JBQW9CLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUNwQyxrQkFBMkMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsYUFDeEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUM3QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FGcEIsaUJBQWlCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUdoQyxDQUNWLENBQUMsSUFDSyxJQUVQLENBQ1AsQ0FBQTtJQUNILENBQUM7SUFFRCxlQUFlLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQTtJQUVwRCxpQkFBaUI7UUFDZixJQUFJLGNBQWMsSUFBSSxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUE7UUFFaEUsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDLFFBQVEsSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQTtJQUNqSCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE1BQU0sRUFBQyxZQUFZLEVBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFBO1FBRWpDLElBQUksWUFBWSxFQUFFLENBQUM7WUFDakIsT0FBTyxjQUFjLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFBO1FBQzVELENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxLQUFLLENBQUE7UUFDZCxDQUFDO0lBQ0gsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE1BQU0sRUFBQyxZQUFZLEVBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFBO1FBRWpDLElBQUksWUFBWSxFQUFFLENBQUM7WUFDakIsT0FBTyxjQUFjLENBQUMsU0FBUyxDQUFDLEVBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxFQUFDLEVBQUUsRUFBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFBO1FBQ3RKLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxFQUFFLENBQUE7UUFDWCxDQUFDO0lBQ0gsQ0FBQztJQUVELHNCQUFzQjtRQUNwQixNQUFNLEVBQUMsWUFBWSxFQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQTtRQUVqQyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUMvQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFBO1FBQ3JELENBQUM7YUFBTSxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ3hCLE9BQU8sY0FBYyxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUNyRCxDQUFDO0lBQ0gsQ0FBQztJQUVELFlBQVksR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFBO0lBRTlDLGNBQWM7UUFDWixJQUFJLE1BQU0sSUFBSSxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUE7UUFFaEQsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDLFFBQVEsSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQTtJQUM5RyxDQUFDO0lBRUQsT0FBTyxHQUFHLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUVwQyxpQkFBaUIsR0FBRyxHQUFHLEVBQUU7UUFDdkIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVE7WUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFBO0lBQ2hELENBQUMsQ0FBQTtJQUVELFNBQVMsR0FBRyxHQUFHLEVBQUU7UUFDZixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFBO1FBRS9DLElBQUksQ0FBQyxZQUFZO1lBQUUsT0FBTTtRQUV6QixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssSUFBSSxZQUFZLENBQUMsS0FBSyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ3BELElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUE7UUFDbEMsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQzVDLE1BQU0sU0FBUyxHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQUMsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsRUFBQyxFQUFFLEVBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQTtZQUVqSixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFBO1FBQ3pDLENBQUM7SUFDSCxDQUFDLENBQUE7SUFFRCxRQUFRLEdBQUcsR0FBRyxFQUFFO1FBQ2QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQTtRQUUvQyxJQUFJLENBQUMsWUFBWTtZQUFFLE9BQU07UUFFekIsSUFBSSxLQUFLLEdBQUcsY0FBYyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNyRSxJQUFJLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxHQUFHLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUNyQyxJQUFJLFFBQVEsR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUUvQyxJQUFJLE9BQU8sS0FBSyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQzdCLFlBQVksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO1FBQzVCLENBQUM7YUFBTSxDQUFDO1lBQ04sWUFBWSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUE7UUFDekIsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLElBQUksUUFBUSxJQUFJLEtBQUs7WUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFBO0lBQ3JFLENBQUMsQ0FBQTtDQUNGLENBQUMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7dXNlUmVmfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHtzaGFwZUNvbXBvbmVudCwgU2hhcGVDb21wb25lbnR9IGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9idWlsZC9zaGFwZS1jb21wb25lbnQuanNcIlxuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSBcImNsYXNzbmFtZXNcIlxuaW1wb3J0IENvbmZpZyBmcm9tIFwiLi4vY29uZmlnLmpzXCJcbmltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgaWRGb3JDb21wb25lbnQgZnJvbSBcIi4vaWQtZm9yLWNvbXBvbmVudC5qc1wiXG5pbXBvcnQgKiBhcyBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCJcbmltcG9ydCBtZW1vIGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9idWlsZC9tZW1vLmpzXCJcbmltcG9ydCBNb25leUZvcm1hdHRlciBmcm9tIFwiLi4vbW9uZXktZm9ybWF0dGVyLmpzXCJcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIlxuaW1wb3J0IFByb3BUeXBlc0V4YWN0IGZyb20gXCJwcm9wLXR5cGVzLWV4YWN0XCJcblxuZXhwb3J0IGRlZmF1bHQgbWVtbyhzaGFwZUNvbXBvbmVudChjbGFzcyBBcGlNYWtlcklucHV0c01vbmV5IGV4dGVuZHMgU2hhcGVDb21wb25lbnQge1xuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICBzaG93Q3VycmVuY3lPcHRpb25zOiB0cnVlXG4gIH1cblxuICBzdGF0aWMgcHJvcFR5cGVzID0gUHJvcFR5cGVzRXhhY3Qoe1xuICAgIGF0dHJpYnV0ZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjZW50c0lucHV0TmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgY3VycmVuY2llc0NvbGxlY3Rpb246IFByb3BUeXBlcy5hcnJheSxcbiAgICBjdXJyZW5jeU5hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgY3VycmVuY3lSZWY6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgZGVmYXVsdFZhbHVlOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICAgIGlkOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGlucHV0UmVmOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGxhYmVsOiBQcm9wVHlwZXMuYW55LFxuICAgIG1vZGVsOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIG5hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICAgIHBsYWNlaG9sZGVyOiBQcm9wVHlwZXMuYW55LFxuICAgIHNob3dDdXJyZW5jeU9wdGlvbnM6IFByb3BUeXBlcy5ib29sLFxuICAgIHNtYWxsOiBQcm9wVHlwZXMuYm9vbCxcbiAgICB0eXBlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIHdob2xlUmVmOiBQcm9wVHlwZXMub2JqZWN0XG4gIH0pXG5cbiAgc2V0dXAoKSB7XG4gICAgdGhpcy5pbnB1dFJlZiA9IHVzZVJlZigpXG4gICAgdGhpcy5jdXJyZW5jeVJlZkJhY2t1cCA9IHVzZVJlZigpXG4gICAgdGhpcy5jdXJyZW5jeVJlZiA9IHRoaXMucHJvcHMuY3VycmVuY3lSZWYgfHwgdGhpcy5jdXJyZW5jeVJlZkJhY2t1cFxuICAgIHRoaXMud2hvbGVSZWZCYWNrdXAgPSB1c2VSZWYoKVxuICAgIHRoaXMud2hvbGVSZWYgPSB0aGlzLnByb3BzLndob2xlUmVmIHx8IHRoaXMud2hvbGVSZWZCYWNrdXBcbiAgfVxuXG4gIGdldElucHV0UmVmID0gKCkgPT4gdGhpcy5wcm9wcy5pbnB1dFJlZiB8fCB0aGlzLmlucHV0UmVmXG5cbiAgcmVuZGVyICgpIHtcbiAgICBjb25zdCB7YXR0cmlidXRlLCBjbGFzc05hbWUsIGRpc2FibGVkLCBtb2RlbCwgc2hvd0N1cnJlbmN5T3B0aW9uc30gPSB0aGlzLnByb3BzXG4gICAgbGV0IHtjdXJyZW5jaWVzQ29sbGVjdGlvbn0gPSB0aGlzLnByb3BzXG5cbiAgICBpZiAoIWN1cnJlbmNpZXNDb2xsZWN0aW9uKSBjdXJyZW5jaWVzQ29sbGVjdGlvbiA9IENvbmZpZy5nZXRDdXJyZW5jaWVzQ29sbGVjdGlvbigpXG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJhcGktbWFrZXItaW5wdXRzLW1vbmV5XCIgZGF0YS1hdHRyaWJ1dGU9e2F0dHJpYnV0ZX0gZGF0YS1tb2RlbC1pZD17bW9kZWw/LmlkKCl9PlxuICAgICAgICA8aW5wdXQgZGVmYXVsdFZhbHVlPXt0aGlzLmlucHV0RGVmYXVsdENlbnRzVmFsdWUoKX0gaWQ9e3RoaXMuaW5wdXRDZW50c0lkKCl9IG5hbWU9e3RoaXMuaW5wdXRDZW50c05hbWUoKX0gcmVmPXt0aGlzLmdldElucHV0UmVmKCl9IHR5cGU9XCJoaWRkZW5cIiAvPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoXCJtb25leS1jZW50c1wiLCBjbGFzc05hbWUpfVxuICAgICAgICAgIGRlZmF1bHRWYWx1ZT17dGhpcy5pbnB1dERlZmF1bHRWYWx1ZSgpfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBpZD17dGhpcy5pbnB1dElkKCl9XG4gICAgICAgICAgb25CbHVyPXt0aGlzLnR0LnNldEFtb3VudH1cbiAgICAgICAgICBvbkNoYW5nZT17dGhpcy50dC5zZXRDZW50c31cbiAgICAgICAgICBvbktleVVwPXt0aGlzLnR0LnNldENlbnRzfVxuICAgICAgICAgIHBsYWNlaG9sZGVyPXt0aGlzLnByb3BzLnBsYWNlaG9sZGVyfVxuICAgICAgICAgIHJlZj17dGhpcy50dC53aG9sZVJlZn1cbiAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIC8+XG4gICAgICAgIHtzaG93Q3VycmVuY3lPcHRpb25zICYmXG4gICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgY2xhc3NOYW1lPVwibW9uZXktY3VycmVuY3lcIlxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlPXt0aGlzLmlucHV0Q3VycmVuY3lWYWx1ZSgpfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgaWQ9e3RoaXMuaW5wdXRDdXJyZW5jeUlkKCl9XG4gICAgICAgICAgICBuYW1lPXt0aGlzLmlucHV0Q3VycmVuY3lOYW1lKCl9XG4gICAgICAgICAgICBvbkNoYW5nZT17dGhpcy50dC5vbkN1cnJlbmN5Q2hhbmdlZH1cbiAgICAgICAgICAgIHJlZj17dGhpcy50dC5jdXJyZW5jeVJlZn1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8b3B0aW9uPjwvb3B0aW9uPlxuICAgICAgICAgICAge2N1cnJlbmNpZXNDb2xsZWN0aW9uLm1hcCgob3B0aW9uKSA9PiAoXG4gICAgICAgICAgICAgIDxvcHRpb24ga2V5PXtgc2VsZWN0LW9wdGlvbi0ke29wdGlvblsxXX1gfSB2YWx1ZT17b3B0aW9uWzFdfT5cbiAgICAgICAgICAgICAgICB7dGhpcy5wcm9wcy5zbWFsbCAmJiBvcHRpb25bMV19XG4gICAgICAgICAgICAgICAgeyF0aGlzLnByb3BzLnNtYWxsICYmIG9wdGlvblswXX1cbiAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgKVxuICB9XG5cbiAgaW5wdXRDdXJyZW5jeUlkID0gKCkgPT4gYCR7dGhpcy5pbnB1dElkKCl9X2N1cnJlbmN5YFxuXG4gIGlucHV0Q3VycmVuY3lOYW1lICgpIHtcbiAgICBpZiAoXCJjdXJyZW5jeU5hbWVcIiBpbiB0aGlzLnByb3BzKSByZXR1cm4gdGhpcy5wcm9wcy5jdXJyZW5jeU5hbWVcblxuICAgIHJldHVybiBgJHt0aGlzLnByb3BzLm1vZGVsLm1vZGVsQ2xhc3NEYXRhKCkucGFyYW1LZXl9WyR7aW5mbGVjdGlvbi51bmRlcnNjb3JlKHRoaXMucHJvcHMuYXR0cmlidXRlKX1fY3VycmVuY3ldYFxuICB9XG5cbiAgaW5wdXRDdXJyZW5jeVZhbHVlICgpIHtcbiAgICBjb25zdCB7ZGVmYXVsdFZhbHVlfSA9IHRoaXMucHJvcHNcblxuICAgIGlmIChkZWZhdWx0VmFsdWUpIHtcbiAgICAgIHJldHVybiBNb25leUZvcm1hdHRlci5jdXJyZW5jeUZyb21Nb25leShkZWZhdWx0VmFsdWUpLmNvZGVcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFwiREtLXCJcbiAgICB9XG4gIH1cblxuICBpbnB1dERlZmF1bHRWYWx1ZSAoKSB7XG4gICAgY29uc3Qge2RlZmF1bHRWYWx1ZX0gPSB0aGlzLnByb3BzXG5cbiAgICBpZiAoZGVmYXVsdFZhbHVlKSB7XG4gICAgICByZXR1cm4gTW9uZXlGb3JtYXR0ZXIuZnJvbU1vbmV5KHthbW91bnQ6IGRlZmF1bHRWYWx1ZS5hbW91bnQsIGN1cnJlbmN5OiB0aGlzLmlucHV0Q3VycmVuY3lWYWx1ZSgpfSwge2RlY2ltYWxzOiAyLCBleGNsdWRlQ3VycmVuY3k6IHRydWV9KS50b1N0cmluZygpXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBcIlwiXG4gICAgfVxuICB9XG5cbiAgaW5wdXREZWZhdWx0Q2VudHNWYWx1ZSAoKSB7XG4gICAgY29uc3Qge2RlZmF1bHRWYWx1ZX0gPSB0aGlzLnByb3BzXG5cbiAgICBpZiAodGhpcy5nZXRJbnB1dFJlZigpLmN1cnJlbnQpIHtcbiAgICAgIHJldHVybiBkaWdnKHRoaXMuZ2V0SW5wdXRSZWYoKSwgXCJjdXJyZW50XCIsIFwidmFsdWVcIilcbiAgICB9IGVsc2UgaWYgKGRlZmF1bHRWYWx1ZSkge1xuICAgICAgcmV0dXJuIE1vbmV5Rm9ybWF0dGVyLmFtb3VudEZyb21Nb25leShkZWZhdWx0VmFsdWUpXG4gICAgfVxuICB9XG5cbiAgaW5wdXRDZW50c0lkID0gKCkgPT4gYCR7dGhpcy5pbnB1dElkKCl9X2NlbnRzYFxuXG4gIGlucHV0Q2VudHNOYW1lICgpIHtcbiAgICBpZiAoXCJuYW1lXCIgaW4gdGhpcy5wcm9wcykgcmV0dXJuIHRoaXMucHJvcHMubmFtZVxuXG4gICAgcmV0dXJuIGAke3RoaXMucHJvcHMubW9kZWwubW9kZWxDbGFzc0RhdGEoKS5wYXJhbUtleX1bJHtpbmZsZWN0aW9uLnVuZGVyc2NvcmUodGhpcy5wcm9wcy5hdHRyaWJ1dGUpfV9jZW50c11gXG4gIH1cblxuICBpbnB1dElkID0gKCkgPT4gaWRGb3JDb21wb25lbnQodGhpcylcblxuICBvbkN1cnJlbmN5Q2hhbmdlZCA9ICgpID0+IHtcbiAgICBpZiAodGhpcy5wcm9wcy5vbkNoYW5nZSkgdGhpcy5wcm9wcy5vbkNoYW5nZSgpXG4gIH1cblxuICBzZXRBbW91bnQgPSAoKSA9PiB7XG4gICAgY29uc3QgaW5wdXRFbGVtZW50ID0gdGhpcy5nZXRJbnB1dFJlZigpLmN1cnJlbnRcblxuICAgIGlmICghaW5wdXRFbGVtZW50KSByZXR1cm5cblxuICAgIGlmICghaW5wdXRFbGVtZW50LnZhbHVlICYmIGlucHV0RWxlbWVudC52YWx1ZSA9PSBcIlwiKSB7XG4gICAgICB0aGlzLndob2xlUmVmLmN1cnJlbnQudmFsdWUgPSBcIlwiXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGNlbnRzID0gcGFyc2VGbG9hdChpbnB1dEVsZW1lbnQudmFsdWUpXG4gICAgICBjb25zdCBmb3JtYXR0ZWQgPSBNb25leUZvcm1hdHRlci5mcm9tTW9uZXkoe2Ftb3VudDogY2VudHMsIGN1cnJlbmN5OiB0aGlzLmlucHV0Q3VycmVuY3lWYWx1ZSgpfSwge2RlY2ltYWxzOiAyLCBleGNsdWRlQ3VycmVuY3k6IHRydWV9KS50b1N0cmluZygpXG5cbiAgICAgIHRoaXMud2hvbGVSZWYuY3VycmVudC52YWx1ZSA9IGZvcm1hdHRlZFxuICAgIH1cbiAgfVxuXG4gIHNldENlbnRzID0gKCkgPT4ge1xuICAgIGNvbnN0IGlucHV0RWxlbWVudCA9IHRoaXMuZ2V0SW5wdXRSZWYoKS5jdXJyZW50XG5cbiAgICBpZiAoIWlucHV0RWxlbWVudCkgcmV0dXJuXG5cbiAgICBsZXQgd2hvbGUgPSBNb25leUZvcm1hdHRlci5zdHJpbmdUb0Zsb2F0KHRoaXMud2hvbGVSZWYuY3VycmVudC52YWx1ZSlcbiAgICBsZXQgY2VudHMgPSBwYXJzZUludCh3aG9sZSAqIDEwMCwgMTApXG4gICAgbGV0IG9sZENlbnRzID0gcGFyc2VJbnQoaW5wdXRFbGVtZW50LnZhbHVlLCAxMClcblxuICAgIGlmICh0eXBlb2YgY2VudHMgPT0gXCJudW1iZXJcIikge1xuICAgICAgaW5wdXRFbGVtZW50LnZhbHVlID0gY2VudHNcbiAgICB9IGVsc2Uge1xuICAgICAgaW5wdXRFbGVtZW50LnZhbHVlID0gJydcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wcm9wcy5vbkNoYW5nZSAmJiBvbGRDZW50cyAhPSBjZW50cykgdGhpcy5wcm9wcy5vbkNoYW5nZSgpXG4gIH1cbn0pKVxuIl19
|
|
@@ -1,50 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.default = apiMakerNameForComponent;
|
|
37
|
-
var inflection = __importStar(require("inflection"));
|
|
38
|
-
function apiMakerNameForComponent(component) {
|
|
1
|
+
import * as inflection from "inflection";
|
|
2
|
+
export default function apiMakerNameForComponent(component) {
|
|
39
3
|
if ("name" in component.props) {
|
|
40
4
|
return component.props.name;
|
|
41
5
|
}
|
|
42
6
|
else if (component.props.attribute && component.props.model) {
|
|
43
|
-
|
|
7
|
+
let attributeName = inflection.underscore(component.props.attribute);
|
|
44
8
|
if (component.props.type == "money") {
|
|
45
9
|
attributeName += "_cents";
|
|
46
10
|
}
|
|
47
|
-
return
|
|
11
|
+
return `${component.props.model.modelClassData().paramKey}[${attributeName}]`;
|
|
48
12
|
}
|
|
49
13
|
}
|
|
50
|
-
//# sourceMappingURL=
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZS1mb3ItY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJpbnB1dHMvbmFtZS1mb3ItY29tcG9uZW50LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFBO0FBRXhDLE1BQU0sQ0FBQyxPQUFPLFVBQVUsd0JBQXdCLENBQUUsU0FBUztJQUN6RCxJQUFJLE1BQU0sSUFBSSxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDOUIsT0FBTyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQTtJQUM3QixDQUFDO1NBQU0sSUFBSSxTQUFTLENBQUMsS0FBSyxDQUFDLFNBQVMsSUFBSSxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzlELElBQUksYUFBYSxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUVwRSxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ3BDLGFBQWEsSUFBSSxRQUFRLENBQUE7UUFDM0IsQ0FBQztRQUVELE9BQU8sR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQyxRQUFRLElBQUksYUFBYSxHQUFHLENBQUE7SUFDL0UsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCJcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gYXBpTWFrZXJOYW1lRm9yQ29tcG9uZW50IChjb21wb25lbnQpIHtcbiAgaWYgKFwibmFtZVwiIGluIGNvbXBvbmVudC5wcm9wcykge1xuICAgIHJldHVybiBjb21wb25lbnQucHJvcHMubmFtZVxuICB9IGVsc2UgaWYgKGNvbXBvbmVudC5wcm9wcy5hdHRyaWJ1dGUgJiYgY29tcG9uZW50LnByb3BzLm1vZGVsKSB7XG4gICAgbGV0IGF0dHJpYnV0ZU5hbWUgPSBpbmZsZWN0aW9uLnVuZGVyc2NvcmUoY29tcG9uZW50LnByb3BzLmF0dHJpYnV0ZSlcblxuICAgIGlmIChjb21wb25lbnQucHJvcHMudHlwZSA9PSBcIm1vbmV5XCIpIHtcbiAgICAgIGF0dHJpYnV0ZU5hbWUgKz0gXCJfY2VudHNcIlxuICAgIH1cblxuICAgIHJldHVybiBgJHtjb21wb25lbnQucHJvcHMubW9kZWwubW9kZWxDbGFzc0RhdGEoKS5wYXJhbUtleX1bJHthdHRyaWJ1dGVOYW1lfV1gXG4gIH1cbn1cbiJdfQ==
|
package/build/inputs/select.js
CHANGED
|
@@ -1,128 +1,74 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import BaseComponent from "../base-component.js";
|
|
3
|
+
import inputWrapper from "./input-wrapper";
|
|
4
|
+
import memo from "set-state-compare/build/memo.js";
|
|
5
|
+
import PropTypes from "prop-types";
|
|
6
|
+
import React from "react";
|
|
7
|
+
import { shapeComponent } from "set-state-compare/build/shape-component.js";
|
|
8
|
+
import { useForm } from "../form";
|
|
9
|
+
const ApiMakerInputsSelect = memo(shapeComponent(class ApiMakerInputsSelect extends BaseComponent {
|
|
10
|
+
static propTypes = {
|
|
11
|
+
attribute: PropTypes.string,
|
|
12
|
+
children: PropTypes.any,
|
|
13
|
+
defaultValue: PropTypes.oneOfType([PropTypes.array, PropTypes.number, PropTypes.string]),
|
|
14
|
+
id: PropTypes.string,
|
|
15
|
+
includeBlank: PropTypes.oneOfType([PropTypes.bool, PropTypes.any]),
|
|
16
|
+
inputProps: PropTypes.object.isRequired,
|
|
17
|
+
model: PropTypes.object,
|
|
18
|
+
name: PropTypes.string,
|
|
19
|
+
onChange: PropTypes.func,
|
|
20
|
+
options: PropTypes.array,
|
|
21
|
+
wrapperOpts: PropTypes.object.isRequired
|
|
8
22
|
};
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
23
|
+
setup() {
|
|
24
|
+
this.form = useForm();
|
|
25
|
+
}
|
|
26
|
+
render() {
|
|
27
|
+
const { attribute, children, defaultValue, id, includeBlank, inputProps, inputRef, model, name, onChange, options, wrapperOpts, ...restProps } = this.props;
|
|
28
|
+
return (_jsxs("select", { onChange: this.tt.onChange, ...inputProps, ...restProps, children: [this.includeBlank() &&
|
|
29
|
+
_jsx("option", { "data-include-blank": "true", children: typeof includeBlank != "boolean" ? includeBlank : null }), options && options.map((option) => _jsx("option", { value: this.optionValue(option), children: this.optionLabel(option) }, this.optionKey(option))), children] }));
|
|
30
|
+
}
|
|
31
|
+
onChange = (e) => {
|
|
32
|
+
const { form } = this.tt;
|
|
33
|
+
const { name, onChange } = this.props;
|
|
34
|
+
if (form && name)
|
|
35
|
+
form.setValue(name, e.target.value);
|
|
36
|
+
if (onChange)
|
|
37
|
+
onChange(e);
|
|
15
38
|
};
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
20
|
-
s = arguments[i];
|
|
21
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
22
|
-
t[p] = s[p];
|
|
39
|
+
optionKey(option) {
|
|
40
|
+
if (Array.isArray(option)) {
|
|
41
|
+
return `select-option-${option[1]}`;
|
|
23
42
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
43
|
+
else {
|
|
44
|
+
return `select-option-${option}`;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
optionLabel(option) {
|
|
48
|
+
if (Array.isArray(option)) {
|
|
49
|
+
return option[0];
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
return option;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
optionValue(option) {
|
|
56
|
+
if (Array.isArray(option)) {
|
|
57
|
+
return option[1];
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
return option;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
includeBlank() {
|
|
64
|
+
if (this.props.includeBlank && !this.props.multiple) {
|
|
65
|
+
return true;
|
|
36
66
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
40
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
41
|
-
};
|
|
42
|
-
var _a;
|
|
43
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
44
|
-
exports.Select = void 0;
|
|
45
|
-
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
46
|
-
var base_component_js_1 = __importDefault(require("../base-component.js"));
|
|
47
|
-
var input_wrapper_1 = __importDefault(require("./input-wrapper"));
|
|
48
|
-
var memo_js_1 = __importDefault(require("set-state-compare/build/memo.js"));
|
|
49
|
-
var prop_types_1 = __importDefault(require("prop-types"));
|
|
50
|
-
var react_1 = __importDefault(require("react"));
|
|
51
|
-
var shape_component_js_1 = require("set-state-compare/build/shape-component.js");
|
|
52
|
-
var form_1 = require("../form");
|
|
53
|
-
var ApiMakerInputsSelect = (0, memo_js_1.default)((0, shape_component_js_1.shapeComponent)((_a = /** @class */ (function (_super) {
|
|
54
|
-
__extends(ApiMakerInputsSelect, _super);
|
|
55
|
-
function ApiMakerInputsSelect() {
|
|
56
|
-
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
57
|
-
_this.onChange = function (e) {
|
|
58
|
-
var form = _this.tt.form;
|
|
59
|
-
var _b = _this.props, name = _b.name, onChange = _b.onChange;
|
|
60
|
-
if (form && name)
|
|
61
|
-
form.setValue(name, e.target.value);
|
|
62
|
-
if (onChange)
|
|
63
|
-
onChange(e);
|
|
64
|
-
};
|
|
65
|
-
return _this;
|
|
67
|
+
else {
|
|
68
|
+
return false;
|
|
66
69
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
var _b = this.props, attribute = _b.attribute, children = _b.children, defaultValue = _b.defaultValue, id = _b.id, includeBlank = _b.includeBlank, inputProps = _b.inputProps, inputRef = _b.inputRef, model = _b.model, name = _b.name, onChange = _b.onChange, options = _b.options, wrapperOpts = _b.wrapperOpts, restProps = __rest(_b, ["attribute", "children", "defaultValue", "id", "includeBlank", "inputProps", "inputRef", "model", "name", "onChange", "options", "wrapperOpts"]);
|
|
73
|
-
return ((0, jsx_runtime_1.jsxs)("select", __assign({ onChange: this.tt.onChange }, inputProps, restProps, { children: [this.includeBlank() &&
|
|
74
|
-
(0, jsx_runtime_1.jsx)("option", { "data-include-blank": "true", children: typeof includeBlank != "boolean" ? includeBlank : null }), options && options.map(function (option) {
|
|
75
|
-
return (0, jsx_runtime_1.jsx)("option", { value: _this.optionValue(option), children: _this.optionLabel(option) }, _this.optionKey(option));
|
|
76
|
-
}), children] })));
|
|
77
|
-
};
|
|
78
|
-
ApiMakerInputsSelect.prototype.optionKey = function (option) {
|
|
79
|
-
if (Array.isArray(option)) {
|
|
80
|
-
return "select-option-".concat(option[1]);
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
return "select-option-".concat(option);
|
|
84
|
-
}
|
|
85
|
-
};
|
|
86
|
-
ApiMakerInputsSelect.prototype.optionLabel = function (option) {
|
|
87
|
-
if (Array.isArray(option)) {
|
|
88
|
-
return option[0];
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
return option;
|
|
92
|
-
}
|
|
93
|
-
};
|
|
94
|
-
ApiMakerInputsSelect.prototype.optionValue = function (option) {
|
|
95
|
-
if (Array.isArray(option)) {
|
|
96
|
-
return option[1];
|
|
97
|
-
}
|
|
98
|
-
else {
|
|
99
|
-
return option;
|
|
100
|
-
}
|
|
101
|
-
};
|
|
102
|
-
ApiMakerInputsSelect.prototype.includeBlank = function () {
|
|
103
|
-
if (this.props.includeBlank && !this.props.multiple) {
|
|
104
|
-
return true;
|
|
105
|
-
}
|
|
106
|
-
else {
|
|
107
|
-
return false;
|
|
108
|
-
}
|
|
109
|
-
};
|
|
110
|
-
return ApiMakerInputsSelect;
|
|
111
|
-
}(base_component_js_1.default)),
|
|
112
|
-
_a.propTypes = {
|
|
113
|
-
attribute: prop_types_1.default.string,
|
|
114
|
-
children: prop_types_1.default.any,
|
|
115
|
-
defaultValue: prop_types_1.default.oneOfType([prop_types_1.default.array, prop_types_1.default.number, prop_types_1.default.string]),
|
|
116
|
-
id: prop_types_1.default.string,
|
|
117
|
-
includeBlank: prop_types_1.default.oneOfType([prop_types_1.default.bool, prop_types_1.default.any]),
|
|
118
|
-
inputProps: prop_types_1.default.object.isRequired,
|
|
119
|
-
model: prop_types_1.default.object,
|
|
120
|
-
name: prop_types_1.default.string,
|
|
121
|
-
onChange: prop_types_1.default.func,
|
|
122
|
-
options: prop_types_1.default.array,
|
|
123
|
-
wrapperOpts: prop_types_1.default.object.isRequired
|
|
124
|
-
},
|
|
125
|
-
_a)));
|
|
126
|
-
exports.Select = ApiMakerInputsSelect;
|
|
127
|
-
exports.default = (0, input_wrapper_1.default)(ApiMakerInputsSelect);
|
|
128
|
-
//# sourceMappingURL=select.js.map
|
|
70
|
+
}
|
|
71
|
+
}));
|
|
72
|
+
export { ApiMakerInputsSelect as Select };
|
|
73
|
+
export default inputWrapper(ApiMakerInputsSelect);
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJpbnB1dHMvc2VsZWN0LmpzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxhQUFhLE1BQU0sc0JBQXNCLENBQUE7QUFDaEQsT0FBTyxZQUFZLE1BQU0saUJBQWlCLENBQUE7QUFDMUMsT0FBTyxJQUFJLE1BQU0saUNBQWlDLENBQUE7QUFDbEQsT0FBTyxTQUFTLE1BQU0sWUFBWSxDQUFBO0FBQ2xDLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQTtBQUN6QixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sNENBQTRDLENBQUE7QUFDekUsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLFNBQVMsQ0FBQTtBQUUvQixNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxvQkFBcUIsU0FBUSxhQUFhO0lBQy9GLE1BQU0sQ0FBQyxTQUFTLEdBQUc7UUFDakIsU0FBUyxFQUFFLFNBQVMsQ0FBQyxNQUFNO1FBQzNCLFFBQVEsRUFBRSxTQUFTLENBQUMsR0FBRztRQUN2QixZQUFZLEVBQUUsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEYsRUFBRSxFQUFFLFNBQVMsQ0FBQyxNQUFNO1FBQ3BCLFlBQVksRUFBRSxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEUsVUFBVSxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsVUFBVTtRQUN2QyxLQUFLLEVBQUUsU0FBUyxDQUFDLE1BQU07UUFDdkIsSUFBSSxFQUFFLFNBQVMsQ0FBQyxNQUFNO1FBQ3RCLFFBQVEsRUFBRSxTQUFTLENBQUMsSUFBSTtRQUN4QixPQUFPLEVBQUUsU0FBUyxDQUFDLEtBQUs7UUFDeEIs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b0IsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJhc2VDb21wb25lbnQgZnJvbSBcIi4uL2Jhc2UtY29tcG9uZW50LmpzXCJcbmltcG9ydCBpbnB1dFdyYXBwZXIgZnJvbSBcIi4vaW5wdXQtd3JhcHBlclwiXG5pbXBvcnQgbWVtbyBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvYnVpbGQvbWVtby5qc1wiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHtzaGFwZUNvbXBvbmVudH0gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL2J1aWxkL3NoYXBlLWNvbXBvbmVudC5qc1wiXG5pbXBvcnQge3VzZUZvcm19IGZyb20gXCIuLi9mb3JtXCJcblxuY29uc3QgQXBpTWFrZXJJbnB1dHNTZWxlY3QgPSBtZW1vKHNoYXBlQ29tcG9uZW50KGNsYXNzIEFwaU1ha2VySW5wdXRzU2VsZWN0IGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgYXR0cmlidXRlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNoaWxkcmVuOiBQcm9wVHlwZXMuYW55LFxuICAgIGRlZmF1bHRWYWx1ZTogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmFycmF5LCBQcm9wVHlwZXMubnVtYmVyLCBQcm9wVHlwZXMuc3RyaW5nXSksXG4gICAgaWQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgaW5jbHVkZUJsYW5rOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuYm9vbCwgUHJvcFR5cGVzLmFueV0pLFxuICAgIGlucHV0UHJvcHM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBtb2RlbDogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBuYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvcHRpb25zOiBQcm9wVHlwZXMuYXJyYXksXG4gICAgd3JhcHBlck9wdHM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZFxuICB9XG5cbiAgc2V0dXAoKSB7XG4gICAgdGhpcy5mb3JtID0gdXNlRm9ybSgpXG4gIH1cblxuICByZW5kZXIgKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGF0dHJpYnV0ZSxcbiAgICAgIGNoaWxkcmVuLFxuICAgICAgZGVmYXVsdFZhbHVlLFxuICAgICAgaWQsXG4gICAgICBpbmNsdWRlQmxhbmssXG4gICAgICBpbnB1dFByb3BzLFxuICAgICAgaW5wdXRSZWYsXG4gICAgICBtb2RlbCxcbiAgICAgIG5hbWUsXG4gICAgICBvbkNoYW5nZSxcbiAgICAgIG9wdGlvbnMsXG4gICAgICB3cmFwcGVyT3B0cyxcbiAgICAgIC4uLnJlc3RQcm9wc1xuICAgIH0gPSB0aGlzLnByb3BzXG5cbiAgICByZXR1cm4gKFxuICAgICAgPHNlbGVjdCBvbkNoYW5nZT17dGhpcy50dC5vbkNoYW5nZX0gey4uLmlucHV0UHJvcHN9IHsuLi5yZXN0UHJvcHN9PlxuICAgICAgICB7dGhpcy5pbmNsdWRlQmxhbmsoKSAmJlxuICAgICAgICAgIDxvcHRpb24gZGF0YS1pbmNsdWRlLWJsYW5rPVwidHJ1ZVwiPlxuICAgICAgICAgICAge3R5cGVvZiBpbmNsdWRlQmxhbmsgIT0gXCJib29sZWFuXCIgPyBpbmNsdWRlQmxhbmsgOiBudWxsfVxuICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICB9XG4gICAgICAgIHtvcHRpb25zICYmIG9wdGlvbnMubWFwKChvcHRpb24pID0+XG4gICAgICAgICAgPG9wdGlvbiBrZXk9e3RoaXMub3B0aW9uS2V5KG9wdGlvbil9IHZhbHVlPXt0aGlzLm9wdGlvblZhbHVlKG9wdGlvbil9PlxuICAgICAgICAgICAge3RoaXMub3B0aW9uTGFiZWwob3B0aW9uKX1cbiAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgKX1cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9zZWxlY3Q+XG4gICAgKVxuICB9XG5cbiAgb25DaGFuZ2UgPSAoZSkgPT4ge1xuICAgIGNvbnN0IHtmb3JtfSA9IHRoaXMudHRcbiAgICBjb25zdCB7bmFtZSwgb25DaGFuZ2V9ID0gdGhpcy5wcm9wc1xuXG4gICAgaWYgKGZvcm0gJiYgbmFtZSkgZm9ybS5zZXRWYWx1ZShuYW1lLCBlLnRhcmdldC52YWx1ZSlcbiAgICBpZiAob25DaGFuZ2UpIG9uQ2hhbmdlKGUpXG4gIH1cblxuICBvcHRpb25LZXkgKG9wdGlvbikge1xuICAgIGlmIChBcnJheS5pc0FycmF5KG9wdGlvbikpIHtcbiAgICAgIHJldHVybiBgc2VsZWN0LW9wdGlvbi0ke29wdGlvblsxXX1gXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBgc2VsZWN0LW9wdGlvbi0ke29wdGlvbn1gXG4gICAgfVxuICB9XG5cbiAgb3B0aW9uTGFiZWwgKG9wdGlvbikge1xuICAgIGlmIChBcnJheS5pc0FycmF5KG9wdGlvbikpIHtcbiAgICAgIHJldHVybiBvcHRpb25bMF1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG9wdGlvblxuICAgIH1cbiAgfVxuXG4gIG9wdGlvblZhbHVlIChvcHRpb24pIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShvcHRpb24pKSB7XG4gICAgICByZXR1cm4gb3B0aW9uWzFdXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvcHRpb25cbiAgICB9XG4gIH1cblxuICBpbmNsdWRlQmxhbmsgKCkge1xuICAgIGlmICh0aGlzLnByb3BzLmluY2x1ZGVCbGFuayAmJiAhdGhpcy5wcm9wcy5tdWx0aXBsZSkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICB9XG59KSlcblxuZXhwb3J0IHtBcGlNYWtlcklucHV0c1NlbGVjdCBhcyBTZWxlY3R9XG5leHBvcnQgZGVmYXVsdCBpbnB1dFdyYXBwZXIoQXBpTWFrZXJJbnB1dHNTZWxlY3QpXG4iXX0=
|