@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/devise.js
CHANGED
|
@@ -1,221 +1,117 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
36
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
37
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
38
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
39
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
40
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
41
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
42
|
-
});
|
|
43
|
-
};
|
|
44
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
45
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
46
|
-
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
47
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
48
|
-
function step(op) {
|
|
49
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
50
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
51
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
52
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
53
|
-
switch (op[0]) {
|
|
54
|
-
case 0: case 1: t = op; break;
|
|
55
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
56
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
57
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
58
|
-
default:
|
|
59
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
60
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
61
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
62
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
63
|
-
if (t[2]) _.ops.pop();
|
|
64
|
-
_.trys.pop(); continue;
|
|
65
|
-
}
|
|
66
|
-
op = body.call(thisArg, _);
|
|
67
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
68
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
69
|
-
}
|
|
70
|
-
};
|
|
71
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
72
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
73
|
-
};
|
|
74
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
75
|
-
var react_1 = require("react");
|
|
76
|
-
var deserializer_js_1 = __importDefault(require("./deserializer.js"));
|
|
77
|
-
var events_js_1 = __importDefault(require("./events.js"));
|
|
78
|
-
var inflection = __importStar(require("inflection"));
|
|
79
|
-
var model_class_require_js_1 = __importDefault(require("./model-class-require.js"));
|
|
80
|
-
var services_js_1 = __importDefault(require("./services.js"));
|
|
1
|
+
import { createContext } from "react";
|
|
2
|
+
import Deserializer from "./deserializer.js";
|
|
3
|
+
import events from "./events.js";
|
|
4
|
+
import * as inflection from "inflection";
|
|
5
|
+
import modelClassRequire from "./model-class-require.js";
|
|
6
|
+
import Services from "./services.js";
|
|
81
7
|
if (!globalThis.ApiMakerDevise)
|
|
82
8
|
globalThis.ApiMakerDevise = { scopes: {} };
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
var _this = this;
|
|
87
|
-
this.getContext = function () { return _this.context; };
|
|
9
|
+
const shared = globalThis.ApiMakerDevise;
|
|
10
|
+
class DeviseScope {
|
|
11
|
+
constructor(scope, args) {
|
|
88
12
|
this.args = args;
|
|
89
|
-
this.context =
|
|
13
|
+
this.context = createContext();
|
|
90
14
|
this.scope = scope;
|
|
91
15
|
}
|
|
92
|
-
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
16
|
+
getContext = () => this.context;
|
|
17
|
+
}
|
|
18
|
+
export default class ApiMakerDevise {
|
|
19
|
+
static callSignOutEvent(args) {
|
|
20
|
+
events.emit("onDeviseSignOut", { args });
|
|
97
21
|
}
|
|
98
|
-
|
|
99
|
-
events_js_1.default.emit("onDeviseSignOut", { args: args });
|
|
100
|
-
};
|
|
101
|
-
ApiMakerDevise.current = function () {
|
|
22
|
+
static current() {
|
|
102
23
|
if (!shared.currentApiMakerDevise) {
|
|
103
24
|
shared.currentApiMakerDevise = new ApiMakerDevise();
|
|
104
25
|
}
|
|
105
26
|
return shared.currentApiMakerDevise;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
return
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
ApiMakerDevise[
|
|
119
|
-
ApiMakerDevise[
|
|
120
|
-
ApiMakerDevise[
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
var getScopeName = "get".concat(scopeCamelized, "Scope");
|
|
27
|
+
}
|
|
28
|
+
static events() {
|
|
29
|
+
return events;
|
|
30
|
+
}
|
|
31
|
+
static addUserScope(scope, args = {}) {
|
|
32
|
+
const scopeCamelized = inflection.camelize(scope);
|
|
33
|
+
const currentMethodName = `current${scopeCamelized}`;
|
|
34
|
+
const isSignedInMethodName = `is${scopeCamelized}SignedIn`;
|
|
35
|
+
const getArgsMethodName = `get${scopeCamelized}Args`;
|
|
36
|
+
const getScopeName = `get${scopeCamelized}Scope`;
|
|
37
|
+
const scopeInstance = new DeviseScope(scope, args);
|
|
38
|
+
ApiMakerDevise[currentMethodName] = () => ApiMakerDevise.current().getCurrentScope(scope);
|
|
39
|
+
ApiMakerDevise[isSignedInMethodName] = () => Boolean(ApiMakerDevise.current().getCurrentScope(scope));
|
|
40
|
+
ApiMakerDevise[getArgsMethodName] = () => args;
|
|
41
|
+
ApiMakerDevise[getScopeName] = () => scopeInstance;
|
|
42
|
+
}
|
|
43
|
+
static getScope(scope) {
|
|
44
|
+
const scopeCamelized = inflection.camelize(scope);
|
|
45
|
+
const getScopeName = `get${scopeCamelized}Scope`;
|
|
126
46
|
return ApiMakerDevise[getScopeName]();
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
return __awaiter(this, arguments, void 0, function (username, password, args) {
|
|
130
|
-
var postData, response, model;
|
|
131
|
-
if (args === void 0) { args = {}; }
|
|
132
|
-
return __generator(this, function (_a) {
|
|
133
|
-
switch (_a.label) {
|
|
134
|
-
case 0:
|
|
135
|
-
if (!args.scope)
|
|
136
|
-
args.scope = "user";
|
|
137
|
-
postData = { username: username, password: password, args: args };
|
|
138
|
-
return [4 /*yield*/, services_js_1.default.current().sendRequest("Devise::SignIn", postData)];
|
|
139
|
-
case 1:
|
|
140
|
-
response = _a.sent();
|
|
141
|
-
model = response.model;
|
|
142
|
-
if (Array.isArray(model))
|
|
143
|
-
model = model[0];
|
|
144
|
-
ApiMakerDevise.updateSession(model);
|
|
145
|
-
events_js_1.default.emit("onDeviseSignIn", Object.assign({ username: username }, args));
|
|
146
|
-
return [2 /*return*/, { model: model, response: response }];
|
|
147
|
-
}
|
|
148
|
-
});
|
|
149
|
-
});
|
|
150
|
-
};
|
|
151
|
-
ApiMakerDevise.updateSession = function (model, args) {
|
|
152
|
-
if (args === void 0) { args = {}; }
|
|
47
|
+
}
|
|
48
|
+
static async signIn(username, password, args = {}) {
|
|
153
49
|
if (!args.scope)
|
|
154
50
|
args.scope = "user";
|
|
155
|
-
|
|
51
|
+
const postData = { username, password, args };
|
|
52
|
+
const response = await Services.current().sendRequest("Devise::SignIn", postData);
|
|
53
|
+
let model = response.model;
|
|
54
|
+
if (Array.isArray(model))
|
|
55
|
+
model = model[0];
|
|
56
|
+
ApiMakerDevise.updateSession(model);
|
|
57
|
+
events.emit("onDeviseSignIn", Object.assign({ username }, args));
|
|
58
|
+
return { model, response };
|
|
59
|
+
}
|
|
60
|
+
static updateSession(model, args = {}) {
|
|
61
|
+
if (!args.scope)
|
|
62
|
+
args.scope = "user";
|
|
63
|
+
const camelizedScopeName = inflection.camelize(args.scope, true);
|
|
156
64
|
ApiMakerDevise.current().currents[camelizedScopeName] = model;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
|
|
65
|
+
}
|
|
66
|
+
hasCurrentScope(scope) {
|
|
67
|
+
const camelizedScopeName = inflection.camelize(scope, true);
|
|
160
68
|
return camelizedScopeName in ApiMakerDevise.current().currents;
|
|
161
|
-
}
|
|
162
|
-
|
|
69
|
+
}
|
|
70
|
+
static setSignedOut(args) {
|
|
163
71
|
ApiMakerDevise.current().currents[inflection.camelize(args.scope, true)] = null;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
shared.apiMakerSessionStatusUpdater.updateSessionStatus();
|
|
183
|
-
}
|
|
184
|
-
ApiMakerDevise.setSignedOut(args);
|
|
185
|
-
ApiMakerDevise.callSignOutEvent(args);
|
|
186
|
-
return [2 /*return*/, response];
|
|
187
|
-
}
|
|
188
|
-
});
|
|
189
|
-
});
|
|
190
|
-
};
|
|
191
|
-
ApiMakerDevise.prototype.getCurrentScope = function (scope) {
|
|
72
|
+
}
|
|
73
|
+
static async signOut(args = {}) {
|
|
74
|
+
if (!args.scope) {
|
|
75
|
+
args.scope = "user";
|
|
76
|
+
}
|
|
77
|
+
const response = await Services.current().sendRequest("Devise::SignOut", { args });
|
|
78
|
+
// Cannot use the class because they would both import each other
|
|
79
|
+
if (shared.apiMakerSessionStatusUpdater) {
|
|
80
|
+
shared.apiMakerSessionStatusUpdater.updateSessionStatus();
|
|
81
|
+
}
|
|
82
|
+
ApiMakerDevise.setSignedOut(args);
|
|
83
|
+
ApiMakerDevise.callSignOutEvent(args);
|
|
84
|
+
return response;
|
|
85
|
+
}
|
|
86
|
+
constructor() {
|
|
87
|
+
this.currents = {};
|
|
88
|
+
}
|
|
89
|
+
getCurrentScope(scope) {
|
|
192
90
|
if (!(scope in this.currents)) {
|
|
193
91
|
this.currents[scope] = this.loadCurrentScope(scope);
|
|
194
92
|
}
|
|
195
93
|
return this.currents[scope];
|
|
196
|
-
}
|
|
197
|
-
|
|
94
|
+
}
|
|
95
|
+
hasGlobalCurrentScope(scope) {
|
|
198
96
|
if (globalThis.apiMakerDeviseCurrent && scope in globalThis.apiMakerDeviseCurrent) {
|
|
199
97
|
return true;
|
|
200
98
|
}
|
|
201
99
|
return false;
|
|
202
|
-
}
|
|
203
|
-
|
|
100
|
+
}
|
|
101
|
+
loadCurrentScope(scope) {
|
|
204
102
|
if (!this.hasGlobalCurrentScope(scope)) {
|
|
205
103
|
return null;
|
|
206
104
|
}
|
|
207
|
-
|
|
105
|
+
const scopeData = globalThis.apiMakerDeviseCurrent[scope];
|
|
208
106
|
if (!scopeData)
|
|
209
107
|
return null;
|
|
210
|
-
|
|
108
|
+
const parsedScopeData = Deserializer.parse(scopeData);
|
|
211
109
|
// Might be a collection with preloaded relationships
|
|
212
110
|
if (Array.isArray(parsedScopeData))
|
|
213
111
|
return parsedScopeData[0];
|
|
214
|
-
|
|
215
|
-
|
|
112
|
+
const ModelClass = modelClassRequire(scope);
|
|
113
|
+
const modelInstance = new ModelClass({ data: parsedScopeData });
|
|
216
114
|
return modelInstance;
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
}());
|
|
220
|
-
exports.default = ApiMakerDevise;
|
|
221
|
-
//# sourceMappingURL=devise.js.map
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aXNlLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJkZXZpc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLE9BQU8sQ0FBQTtBQUNuQyxPQUFPLFlBQVksTUFBTSxtQkFBbUIsQ0FBQTtBQUM1QyxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUE7QUFDaEMsT0FBTyxLQUFLLFVBQVUsTUFBTSxZQUFZLENBQUE7QUFDeEMsT0FBTyxpQkFBaUIsTUFBTSwwQkFBMEIsQ0FBQTtBQUN4RCxPQUFPLFFBQVEsTUFBTSxlQUFlLENBQUE7QUFFcEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjO0lBQUUsVUFBVSxDQUFDLGNBQWMsR0FBRyxFQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUMsQ0FBQTtBQUV4RSxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsY0FBYyxDQUFBO0FBRXhDLE1BQU0sV0FBVztJQUNmLFlBQVksS0FBSyxFQUFFLElBQUk7UUFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFDaEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxhQUFhLEVBQUUsQ0FBQTtRQUM5QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtJQUNwQixDQUFDO0lBRUQsVUFBVSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUE7Q0FDaEM7QUFFRCxNQUFNLENBQUMsT0FBTyxPQUFPLGNBQWM7SUFDakMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUk7UUFDMUIsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFDLElBQUksRUFBQyxDQUFDLENBQUE7SUFDeEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPO1FBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ2xDLE1BQU0sQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFB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RGVzZXJpYWxpemVyIGZyb20gXCIuL2Rlc2VyaWFsaXplci5qc1wiXG5pbXBvcnQgZXZlbnRzIGZyb20gXCIuL2V2ZW50cy5qc1wiXG5pbXBvcnQgKiBhcyBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCJcbmltcG9ydCBtb2RlbENsYXNzUmVxdWlyZSBmcm9tIFwiLi9tb2RlbC1jbGFzcy1yZXF1aXJlLmpzXCJcbmltcG9ydCBTZXJ2aWNlcyBmcm9tIFwiLi9zZXJ2aWNlcy5qc1wiXG5cbmlmICghZ2xvYmFsVGhpcy5BcGlNYWtlckRldmlzZSkgZ2xvYmFsVGhpcy5BcGlNYWtlckRldmlzZSA9IHtzY29wZXM6IHt9fVxuXG5jb25zdCBzaGFyZWQgPSBnbG9iYWxUaGlzLkFwaU1ha2VyRGV2aXNlXG5cbmNsYXNzIERldmlzZVNjb3BlIHtcbiAgY29uc3RydWN0b3Ioc2NvcGUsIGFyZ3MpIHtcbiAgICB0aGlzLmFyZ3MgPSBhcmdzXG4gICAgdGhpcy5jb250ZXh0ID0gY3JlYXRlQ29udGV4dCgpXG4gICAgdGhpcy5zY29wZSA9IHNjb3BlXG4gIH1cblxuICBnZXRDb250ZXh0ID0gKCkgPT4gdGhpcy5jb250ZXh0XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFwaU1ha2VyRGV2aXNlIHtcbiAgc3RhdGljIGNhbGxTaWduT3V0RXZlbnQoYXJncykge1xuICAgIGV2ZW50cy5lbWl0KFwib25EZXZpc2VTaWduT3V0XCIsIHthcmdzfSlcbiAgfVxuXG4gIHN0YXRpYyBjdXJyZW50KCkge1xuICAgIGlmICghc2hhcmVkLmN1cnJlbnRBcGlNYWtlckRldmlzZSkge1xuICAgICAgc2hhcmVkLmN1cnJlbnRBcGlNYWtlckRldmlzZSA9IG5ldyBBcGlNYWtlckRldmlzZSgpXG4gICAgfVxuXG4gICAgcmV0dXJuIHNoYXJlZC5jdXJyZW50QXBpTWFrZXJEZXZpc2VcbiAgfVxuXG4gIHN0YXRpYyBldmVudHMoKSB7XG4gICAgcmV0dXJuIGV2ZW50c1xuICB9XG5cbiAgc3RhdGljIGFkZFVzZXJTY29wZShzY29wZSwgYXJncyA9IHt9KSB7XG4gICAgY29uc3Qgc2NvcGVDYW1lbGl6ZWQgPSBpbmZsZWN0aW9uLmNhbWVsaXplKHNjb3BlKVxuICAgIGNvbnN0IGN1cnJlbnRNZXRob2ROYW1lID0gYGN1cnJlbnQke3Njb3BlQ2FtZWxpemVkfWBcbiAgICBjb25zdCBpc1NpZ25lZEluTWV0aG9kTmFtZSA9IGBpcyR7c2NvcGVDYW1lbGl6ZWR9U2lnbmVkSW5gXG4gICAgY29uc3QgZ2V0QXJnc01ldGhvZE5hbWUgPSBgZ2V0JHtzY29wZUNhbWVsaXplZH1BcmdzYFxuICAgIGNvbnN0IGdldFNjb3BlTmFtZSA9IGBnZXQke3Njb3BlQ2FtZWxpemVkfVNjb3BlYFxuICAgIGNvbnN0IHNjb3BlSW5zdGFuY2UgPSBuZXcgRGV2aXNlU2NvcGUoc2NvcGUsIGFyZ3MpXG5cbiAgICBBcGlNYWtlckRldmlzZVtjdXJyZW50TWV0aG9kTmFtZV0gPSAoKSA9PiBBcGlNYWtlckRldmlzZS5jdXJyZW50KCkuZ2V0Q3VycmVudFNjb3BlKHNjb3BlKVxuICAgIEFwaU1ha2VyRGV2aXNlW2lzU2lnbmVkSW5NZXRob2ROYW1lXSA9ICgpID0+IEJvb2xlYW4oQXBpTWFrZXJEZXZpc2UuY3VycmVudCgpLmdldEN1cnJlbnRTY29wZShzY29wZSkpXG4gICAgQXBpTWFrZXJEZXZpc2VbZ2V0QXJnc01ldGhvZE5hbWVdID0gKCkgPT4gYXJnc1xuICAgIEFwaU1ha2VyRGV2aXNlW2dldFNjb3BlTmFtZV0gPSAoKSA9PiBzY29wZUluc3RhbmNlXG4gIH1cblxuICBzdGF0aWMgZ2V0U2NvcGUoc2NvcGUpIHtcbiAgICBjb25zdCBzY29wZUNhbWVsaXplZCA9IGluZmxlY3Rpb24uY2FtZWxpemUoc2NvcGUpXG4gICAgY29uc3QgZ2V0U2NvcGVOYW1lID0gYGdldCR7c2NvcGVDYW1lbGl6ZWR9U2NvcGVgXG5cbiAgICByZXR1cm4gQXBpTWFrZXJEZXZpc2VbZ2V0U2NvcGVOYW1lXSgpXG4gIH1cblxuICBzdGF0aWMgYXN5bmMgc2lnbkluKHVzZXJuYW1lLCBwYXNzd29yZCwgYXJncyA9IHt9KSB7XG4gICAgaWYgKCFhcmdzLnNjb3BlKSBhcmdzLnNjb3BlID0gXCJ1c2VyXCJcblxuICAgIGNvbnN0IHBvc3REYXRhID0ge3VzZXJuYW1lLCBwYXNzd29yZCwgYXJnc31cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFNlcnZpY2VzLmN1cnJlbnQoKS5zZW5kUmVxdWVzdChcIkRldmlzZTo6U2lnbkluXCIsIHBvc3REYXRhKVxuXG4gICAgbGV0IG1vZGVsID0gcmVzcG9uc2UubW9kZWxcblxuICAgIGlmIChBcnJheS5pc0FycmF5KG1vZGVsKSkgbW9kZWwgPSBtb2RlbFswXVxuXG4gICAgQXBpTWFrZXJEZXZpc2UudXBkYXRlU2Vzc2lvbihtb2RlbClcbiAgICBldmVudHMuZW1pdChcIm9uRGV2aXNlU2lnbkluXCIsIE9iamVjdC5hc3NpZ24oe3VzZXJuYW1lfSwgYXJncykpXG5cbiAgICByZXR1cm4ge21vZGVsLCByZXNwb25zZX1cbiAgfVxuXG4gIHN0YXRpYyB1cGRhdGVTZXNzaW9uKG1vZGVsLCBhcmdzID0ge30pIHtcbiAgICBpZiAoIWFyZ3Muc2NvcGUpIGFyZ3Muc2NvcGUgPSBcInVzZXJcIlxuXG4gICAgY29uc3QgY2FtZWxpemVkU2NvcGVOYW1lID0gaW5mbGVjdGlvbi5jYW1lbGl6ZShhcmdzLnNjb3BlLCB0cnVlKVxuXG4gICAgQXBpTWFrZXJEZXZpc2UuY3VycmVudCgpLmN1cnJlbnRzW2NhbWVsaXplZFNjb3BlTmFtZV0gPSBtb2RlbFxuICB9XG5cbiAgaGFzQ3VycmVudFNjb3BlKHNjb3BlKSB7XG4gICAgY29uc3QgY2FtZWxpemVkU2NvcGVOYW1lID0gaW5mbGVjdGlvbi5jYW1lbGl6ZShzY29wZSwgdHJ1ZSlcblxuICAgIHJldHVybiBjYW1lbGl6ZWRTY29wZU5hbWUgaW4gQXBpTWFrZXJEZXZpc2UuY3VycmVudCgpLmN1cnJlbnRzXG4gIH1cblxuICBzdGF0aWMgc2V0U2lnbmVkT3V0KGFyZ3MpIHtcbiAgICBBcGlNYWtlckRldmlzZS5jdXJyZW50KCkuY3VycmVudHNbaW5mbGVjdGlvbi5jYW1lbGl6ZShhcmdzLnNjb3BlLCB0cnVlKV0gPSBudWxsXG4gIH1cblxuICBzdGF0aWMgYXN5bmMgc2lnbk91dChhcmdzID0ge30pIHtcbiAgICBpZiAoIWFyZ3Muc2NvcGUpIHtcbiAgICAgIGFyZ3Muc2NvcGUgPSBcInVzZXJcIlxuICAgIH1cblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgU2VydmljZXMuY3VycmVudCgpLnNlbmRSZXF1ZXN0KFwiRGV2aXNlOjpTaWduT3V0XCIsIHthcmdzfSlcblxuICAgIC8vIENhbm5vdCB1c2UgdGhlIGNsYXNzIGJlY2F1c2UgdGhleSB3b3VsZCBib3RoIGltcG9ydCBlYWNoIG90aGVyXG4gICAgaWYgKHNoYXJlZC5hcGlNYWtlclNlc3Npb25TdGF0dXNVcGRhdGVyKSB7XG4gICAgICBzaGFyZWQuYXBpTWFrZXJTZXNzaW9uU3RhdHVzVXBkYXRlci51cGRhdGVTZXNzaW9uU3RhdHVzKClcbiAgICB9XG5cbiAgICBBcGlNYWtlckRldmlzZS5zZXRTaWduZWRPdXQoYXJncylcbiAgICBBcGlNYWtlckRldmlzZS5jYWxsU2lnbk91dEV2ZW50KGFyZ3MpXG5cbiAgICByZXR1cm4gcmVzcG9uc2VcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuY3VycmVudHMgPSB7fVxuICB9XG5cbiAgZ2V0Q3VycmVudFNjb3BlKHNjb3BlKSB7XG4gICAgaWYgKCEoc2NvcGUgaW4gdGhpcy5jdXJyZW50cykpIHtcbiAgICAgIHRoaXMuY3VycmVudHNbc2NvcGVdID0gdGhpcy5sb2FkQ3VycmVudFNjb3BlKHNjb3BlKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmN1cnJlbnRzW3Njb3BlXVxuICB9XG5cbiAgaGFzR2xvYmFsQ3VycmVudFNjb3BlKHNjb3BlKSB7XG4gICAgaWYgKGdsb2JhbFRoaXMuYXBpTWFrZXJEZXZpc2VDdXJyZW50ICYmIHNjb3BlIGluIGdsb2JhbFRoaXMuYXBpTWFrZXJEZXZpc2VDdXJyZW50KSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgbG9hZEN1cnJlbnRTY29wZShzY29wZSkge1xuICAgIGlmICghdGhpcy5oYXNHbG9iYWxDdXJyZW50U2NvcGUoc2NvcGUpKSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cblxuICAgIGNvbnN0IHNjb3BlRGF0YSA9IGdsb2JhbFRoaXMuYXBpTWFrZXJEZXZpc2VDdXJyZW50W3Njb3BlXVxuXG4gICAgaWYgKCFzY29wZURhdGEpIHJldHVybiBudWxsXG5cbiAgICBjb25zdCBwYXJzZWRTY29wZURhdGEgPSBEZXNlcmlhbGl6ZXIucGFyc2Uoc2NvcGVEYXRhKVxuXG4gICAgLy8gTWlnaHQgYmUgYSBjb2xsZWN0aW9uIHdpdGggcHJlbG9hZGVkIHJlbGF0aW9uc2hpcHNcbiAgICBpZiAoQXJyYXkuaXNBcnJheShwYXJzZWRTY29wZURhdGEpKSByZXR1cm4gcGFyc2VkU2NvcGVEYXRhWzBdXG5cbiAgICBjb25zdCBNb2RlbENsYXNzID0gbW9kZWxDbGFzc1JlcXVpcmUoc2NvcGUpXG4gICAgY29uc3QgbW9kZWxJbnN0YW5jZSA9IG5ldyBNb2RlbENsYXNzKHtkYXRhOiBwYXJzZWRTY29wZURhdGF9KVxuXG4gICAgcmV0dXJuIG1vZGVsSW5zdGFuY2VcbiAgfVxufVxuIl19
|
|
@@ -1,102 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
6
|
-
ar[i] = from[i];
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
10
|
-
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
var diggerize_1 = require("diggerize");
|
|
16
|
-
var events_1 = __importDefault(require("events"));
|
|
17
|
-
var DraggableSortController = /** @class */ (function () {
|
|
18
|
-
function DraggableSortController(_a) {
|
|
19
|
-
var data = _a.data, events = _a.events, keyExtractor = _a.keyExtractor;
|
|
20
|
-
var _this = this;
|
|
21
|
-
this.getEvents = function () { return _this.events; };
|
|
22
|
-
this.getItemDataForItem = function (item) { return _this.getItemDataForIndex(_this.data.indexOf(item)); };
|
|
23
|
-
this.getItemDataForKey = function (key) { return _this.itemData.find(function (itemDataI) { return (0, diggerize_1.digg)(itemDataI, "key") == key; }); };
|
|
24
|
-
this.getItemDataForIndex = function (index) { return (0, diggerize_1.digg)(_this, "itemData", index); };
|
|
25
|
-
this.onDragStart = function (_a) {
|
|
26
|
-
var item = _a.item, itemIndex = _a.itemIndex;
|
|
27
|
-
if (item) {
|
|
28
|
-
_this.draggedItem = item;
|
|
29
|
-
_this.draggedItemData = _this.getItemDataForIndex(itemIndex);
|
|
30
|
-
_this.draggedItemIndex = itemIndex;
|
|
31
|
-
_this.draggedItemPosition = _this.draggedItemData.position;
|
|
32
|
-
_this.events.emit("onDragStart", { item: item, itemData: _this.draggedItemData });
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
this.onDragEnd = function () {
|
|
36
|
-
var itemData = _this.draggedItemData;
|
|
37
|
-
var fromIndex = itemData.index;
|
|
38
|
-
var fromPosition = (0, diggerize_1.digg)(_this, "draggedItemPosition");
|
|
39
|
-
var toPosition = _this.draggedItemNewPosition;
|
|
40
|
-
var fromItem = _this.draggedItem;
|
|
41
|
-
var toItem = _this.draggedOverItem;
|
|
42
|
-
var callbackArgs = { item: itemData.item, itemData: itemData, fromIndex: fromIndex, fromItem: fromItem, fromPosition: fromPosition, toItem: toItem, toPosition: toPosition };
|
|
43
|
-
_this.draggedItemData.events.emit("resetPosition", {
|
|
44
|
-
callback: function () {
|
|
45
|
-
_this.events.emit("onDragEndAnimation", callbackArgs);
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
_this.draggedItem = null;
|
|
49
|
-
_this.draggedItemData = null;
|
|
50
|
-
_this.draggedItemNewPosition = null;
|
|
51
|
-
_this.draggedOverItem = null;
|
|
52
|
-
_this.draggedOverItemData = null;
|
|
53
|
-
_this.events.emit("onDragEnd", callbackArgs);
|
|
54
|
-
};
|
|
55
|
-
this.onItemLayout = function (_a) {
|
|
56
|
-
var events = _a.events, index = _a.index, item = _a.item, layout = _a.layout;
|
|
57
|
-
if (!(index in _this.itemData))
|
|
58
|
-
throw new Error("Item not found for index ".concat(index));
|
|
59
|
-
var itemData = _this.itemData[index];
|
|
60
|
-
itemData.layout = layout;
|
|
61
|
-
if (!itemData.initialLayout) {
|
|
62
|
-
itemData.baseX = layout.x;
|
|
63
|
-
itemData.events = events;
|
|
64
|
-
itemData.initialLayout = layout;
|
|
65
|
-
itemData.key = _this.keyExtractor(item);
|
|
66
|
-
}
|
|
67
|
-
};
|
|
68
|
-
this.onMove = function (_a) {
|
|
69
|
-
var _b, _c;
|
|
70
|
-
var gestate = _a.gestate;
|
|
71
|
-
// Send move-event to the item being dragged so it will actually move around
|
|
72
|
-
(_c = (_b = _this.draggedItemData) === null || _b === void 0 ? void 0 : _b.events) === null || _c === void 0 ? void 0 : _c.emit("move", { gestate: gestate });
|
|
73
|
-
var moveX = gestate.dx + _this.initialDragPosition.x;
|
|
74
|
-
for (var itemIndex in _this.itemData) {
|
|
75
|
-
var itemData = _this.getItemDataForIndex(itemIndex);
|
|
76
|
-
var baseX = (0, diggerize_1.digg)(itemData, "baseX");
|
|
77
|
-
var smallestWidth = _this.draggedItemData.layout.width;
|
|
78
|
-
if (itemData.layout.width < smallestWidth)
|
|
79
|
-
smallestWidth = itemData.layout.width;
|
|
80
|
-
if (moveX > baseX && moveX < (baseX + smallestWidth) && itemIndex != _this.draggedItemData.index) {
|
|
81
|
-
_this.draggedOverItem = itemData.item;
|
|
82
|
-
_this.draggedOverItemData = itemData;
|
|
83
|
-
var positionOfDraggedItem = _this.currentOrder.indexOf(_this.draggedItemData.item);
|
|
84
|
-
var positionOfOverItem = _this.currentOrder.indexOf(_this.draggedOverItemData.item);
|
|
85
|
-
_this.currentOrder[positionOfDraggedItem] = _this.draggedOverItemData.item;
|
|
86
|
-
_this.currentOrder[positionOfOverItem] = _this.draggedItemData.item;
|
|
87
|
-
_this.draggedItemData.position = positionOfOverItem;
|
|
88
|
-
_this.draggedOverItemData.position = positionOfDraggedItem;
|
|
89
|
-
_this.updatePositionOfItems();
|
|
90
|
-
_this.draggedItemNewPosition = positionOfOverItem;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
};
|
|
94
|
-
this.setInitialDragPosition = function (initialDragPosition) {
|
|
95
|
-
_this.initialDragPosition = initialDragPosition;
|
|
96
|
-
};
|
|
1
|
+
import { digg } from "diggerize";
|
|
2
|
+
import EventEmitter from "events";
|
|
3
|
+
export default class DraggableSortController {
|
|
4
|
+
constructor({ data, events, keyExtractor }) {
|
|
97
5
|
this.data = data;
|
|
98
|
-
this.currentOrder =
|
|
99
|
-
this.events = events || new
|
|
6
|
+
this.currentOrder = [...data];
|
|
7
|
+
this.events = events || new EventEmitter();
|
|
100
8
|
this.keyExtractor = keyExtractor;
|
|
101
9
|
this.draggedItem = null;
|
|
102
10
|
this.draggedItemData = null;
|
|
@@ -104,7 +12,7 @@ var DraggableSortController = /** @class */ (function () {
|
|
|
104
12
|
this.draggedOverItem = null;
|
|
105
13
|
this.draggedOverItemData = null;
|
|
106
14
|
this.itemData = {};
|
|
107
|
-
for (
|
|
15
|
+
for (const itemIndex in data) {
|
|
108
16
|
this.itemData[itemIndex] = {
|
|
109
17
|
index: itemIndex,
|
|
110
18
|
item: data[itemIndex],
|
|
@@ -112,22 +20,91 @@ var DraggableSortController = /** @class */ (function () {
|
|
|
112
20
|
};
|
|
113
21
|
}
|
|
114
22
|
}
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
23
|
+
getEvents = () => this.events;
|
|
24
|
+
getItemDataForItem = (item) => this.getItemDataForIndex(this.data.indexOf(item));
|
|
25
|
+
getItemDataForKey = (key) => this.itemData.find((itemDataI) => digg(itemDataI, "key") == key);
|
|
26
|
+
getItemDataForIndex = (index) => digg(this, "itemData", index);
|
|
27
|
+
onDragStart = ({ item, itemIndex }) => {
|
|
28
|
+
if (item) {
|
|
29
|
+
this.draggedItem = item;
|
|
30
|
+
this.draggedItemData = this.getItemDataForIndex(itemIndex);
|
|
31
|
+
this.draggedItemIndex = itemIndex;
|
|
32
|
+
this.draggedItemPosition = this.draggedItemData.position;
|
|
33
|
+
this.events.emit("onDragStart", { item, itemData: this.draggedItemData });
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
onDragEnd = () => {
|
|
37
|
+
const itemData = this.draggedItemData;
|
|
38
|
+
const fromIndex = itemData.index;
|
|
39
|
+
const fromPosition = digg(this, "draggedItemPosition");
|
|
40
|
+
const toPosition = this.draggedItemNewPosition;
|
|
41
|
+
const fromItem = this.draggedItem;
|
|
42
|
+
const toItem = this.draggedOverItem;
|
|
43
|
+
const callbackArgs = { item: itemData.item, itemData, fromIndex, fromItem, fromPosition, toItem, toPosition };
|
|
44
|
+
this.draggedItemData.events.emit("resetPosition", {
|
|
45
|
+
callback: () => {
|
|
46
|
+
this.events.emit("onDragEndAnimation", callbackArgs);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
this.draggedItem = null;
|
|
50
|
+
this.draggedItemData = null;
|
|
51
|
+
this.draggedItemNewPosition = null;
|
|
52
|
+
this.draggedOverItem = null;
|
|
53
|
+
this.draggedOverItemData = null;
|
|
54
|
+
this.events.emit("onDragEnd", callbackArgs);
|
|
55
|
+
};
|
|
56
|
+
onItemLayout = ({ events, index, item, layout }) => {
|
|
57
|
+
if (!(index in this.itemData))
|
|
58
|
+
throw new Error(`Item not found for index ${index}`);
|
|
59
|
+
const itemData = this.itemData[index];
|
|
60
|
+
itemData.layout = layout;
|
|
61
|
+
if (!itemData.initialLayout) {
|
|
62
|
+
itemData.baseX = layout.x;
|
|
63
|
+
itemData.events = events;
|
|
64
|
+
itemData.initialLayout = layout;
|
|
65
|
+
itemData.key = this.keyExtractor(item);
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
onMove = ({ gestate }) => {
|
|
69
|
+
// Send move-event to the item being dragged so it will actually move around
|
|
70
|
+
this.draggedItemData?.events?.emit("move", { gestate });
|
|
71
|
+
const moveX = gestate.dx + this.initialDragPosition.x;
|
|
72
|
+
for (const itemIndex in this.itemData) {
|
|
73
|
+
const itemData = this.getItemDataForIndex(itemIndex);
|
|
74
|
+
const baseX = digg(itemData, "baseX");
|
|
75
|
+
let smallestWidth = this.draggedItemData.layout.width;
|
|
76
|
+
if (itemData.layout.width < smallestWidth)
|
|
77
|
+
smallestWidth = itemData.layout.width;
|
|
78
|
+
if (moveX > baseX && moveX < (baseX + smallestWidth) && itemIndex != this.draggedItemData.index) {
|
|
79
|
+
this.draggedOverItem = itemData.item;
|
|
80
|
+
this.draggedOverItemData = itemData;
|
|
81
|
+
const positionOfDraggedItem = this.currentOrder.indexOf(this.draggedItemData.item);
|
|
82
|
+
const positionOfOverItem = this.currentOrder.indexOf(this.draggedOverItemData.item);
|
|
83
|
+
this.currentOrder[positionOfDraggedItem] = this.draggedOverItemData.item;
|
|
84
|
+
this.currentOrder[positionOfOverItem] = this.draggedItemData.item;
|
|
85
|
+
this.draggedItemData.position = positionOfOverItem;
|
|
86
|
+
this.draggedOverItemData.position = positionOfDraggedItem;
|
|
87
|
+
this.updatePositionOfItems();
|
|
88
|
+
this.draggedItemNewPosition = positionOfOverItem;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
setInitialDragPosition = (initialDragPosition) => {
|
|
93
|
+
this.initialDragPosition = initialDragPosition;
|
|
94
|
+
};
|
|
95
|
+
updatePositionOfItems() {
|
|
96
|
+
let currentPosition = 0;
|
|
97
|
+
for (const item of this.currentOrder) {
|
|
98
|
+
const itemData = this.getItemDataForItem(item);
|
|
99
|
+
if (digg(itemData, "index") != digg(this, "draggedItemData", "index")) { // Dont animate dragged element to a new position because it is currently being dragged
|
|
121
100
|
itemData.events.emit("moveToPosition", {
|
|
122
101
|
x: currentPosition,
|
|
123
102
|
y: 0
|
|
124
103
|
});
|
|
125
104
|
}
|
|
126
105
|
itemData.baseX = currentPosition;
|
|
127
|
-
currentPosition +=
|
|
106
|
+
currentPosition += digg(itemData, "layout", "width");
|
|
128
107
|
}
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
}());
|
|
132
|
-
exports.default = DraggableSortController;
|
|
133
|
-
//# sourceMappingURL=controller.js.map
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIvc3JjLyIsInNvdXJjZXMiOlsiZHJhZ2dhYmxlLXNvcnQvY29udHJvbGxlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sV0FBVyxDQUFBO0FBQzlCLE9BQU8sWUFBWSxNQUFNLFFBQVEsQ0FBQTtBQUVqQyxNQUFNLENBQUMsT0FBTyxPQUFPLHVCQUF1QjtJQUMxQyxZQUFZLEVBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUM7UUFDdEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFDaEIsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUE7UUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLElBQUksSUFBSSxZQUFZLEVBQUUsQ0FBQTtRQUMxQyxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQTtRQUVoQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQTtRQUN2QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQTtRQUMzQixJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFBO1FBRWxDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFBO1FBQzNCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUE7UUFFL0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUE7UUFFbEIsS0FBSyxNQUFNLFNBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHO2dCQUN6QixLQUFLLEVBQUUsU0FBUztnQkFDaEIsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUM7Z0JBQ3JCLFFBQVEsRUFBRSxTQUFTO2FBQ3BCLENBQUE7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELFNBQVMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFBO0lBQzdCLGtCQUFrQixHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNoRixpQkFBaUIsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUE7SUFDN0YsbUJBQW1CLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBRTlELFdBQVcsR0FBRyxDQUFDLEVBQUMsSUFBSSxFQUFFLFNBQVMsRUFBQyxFQUFFLEVBQUU7UUFDbEMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNULElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFBO1lBQ3ZCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFBO1lBQzFELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxTQUFTLENBQUE7WUFDakMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFBO1lBQ3hELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBQyxDQUFDLENBQUE7UUFDekUsQ0FBQztJQUNILENBQUMsQ0FBQTtJQUVELFNBQVMsR0FBRyxHQUFHLEVBQUU7UUFDZixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFBO1FBQ3JDLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUE7UUFDaEMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxxQkFBcUIsQ0FBQyxDQUFBO1FBQ3RELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQTtRQUM5QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFBO1FBQ2pDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUE7UUFDbkMsTUFBTSxZQUFZLEdBQUcsRUFBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBQyxDQUFBO1FBRTNHLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDaEQsUUFBUSxFQUFFLEdBQUcsRUFBRTtnQkFDYixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxZQUFZLENBQUMsQ0FBQTtZQUN0RCxDQUFDO1NBQ0YsQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUE7UUFDdkIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUE7UUFDM0IsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQTtRQUVsQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQTtRQUMzQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFBO1FBRS9CLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxZQUFZLENBQUMsQ0FBQTtJQUM3QyxDQUFDLENBQUE7SUFFRCxZQUFZLEdBQUcsQ0FBQyxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBQyxFQUFFLEVBQUU7UUFDL0MsSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUM7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixLQUFLLEVBQUUsQ0FBQyxDQUFBO1FBRW5GLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUE7UUFFckMsUUFBUSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7UUFFeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUM1QixRQUFRLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUE7WUFDekIsUUFBUSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7WUFDeEIsUUFBUSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUE7WUFDL0IsUUFBUSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3hDLENBQUM7SUFDSCxDQUFDLENBQUE7SUFFRCxNQUFNLEdBQUcsQ0FBQyxFQUFDLE9BQU8sRUFBQyxFQUFFLEVBQUU7UUFDckIsNEVBQTRFO1FBQzVFLElBQUksQ0FBQyxlQUFlLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBQyxPQUFPLEVBQUMsQ0FBQyxDQUFBO1FBRXJELE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQTtRQUVyRCxLQUFLLE1BQU0sU0FBUyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN0QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUE7WUFDcEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQTtZQUNyQyxJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUE7WUFFckQsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxhQUFhO2dCQUFFLGFBQWEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQTtZQUVoRixJQUFJLEtBQUssR0FBRyxLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsS0FBSyxHQUFHLGFBQWEsQ0FBQyxJQUFJLFNBQVMsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNoRyxJQUFJLENBQUMsZUFBZSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUE7Z0JBQ3BDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxRQUFRLENBQUE7Z0JBRW5DLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtnQkFDbEYsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUE7Z0JBRW5GLElBQUksQ0FBQyxZQUFZLENBQUMscUJBQXFCLENBQUMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFBO2dCQUN4RSxJQUFJLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUE7Z0JBRWpFLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxHQUFHLGtCQUFrQixDQUFBO2dCQUNsRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxHQUFHLHFCQUFxQixDQUFBO2dCQUV6RCxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQTtnQkFDNUIsSUFBSSxDQUFDLHNCQUFzQixHQUFHLGtCQUFrQixDQUFBO1lBQ2xELENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQyxDQUFBO0lBRUQsc0JBQXNCLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRSxFQUFFO1FBQy9DLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxtQkFBbUIsQ0FBQTtJQUNoRCxDQUFDLENBQUE7SUFFRCxxQkFBcUI7UUFDbkIsSUFBSSxlQUFlLEdBQUcsQ0FBQyxDQUFBO1FBRXZCLEtBQUssTUFBTSxJQUFJLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3JDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUU5QyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsdUZBQXVGO2dCQUM5SixRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtvQkFDckMsQ0FBQyxFQUFFLGVBQWU7b0JBQ2xCLENBQUMsRUFBRSxDQUFDO2lCQUNMLENBQUMsQ0FBQTtZQUNKLENBQUM7WUFFRCxRQUFRLENBQUMsS0FBSyxHQUFHLGVBQWUsQ0FBQTtZQUNoQyxlQUFlLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFDdEQsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgRXZlbnRFbWl0dGVyIGZyb20gXCJldmVudHNcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEcmFnZ2FibGVTb3J0Q29udHJvbGxlciB7XG4gIGNvbnN0cnVjdG9yKHtkYXRhLCBldmVudHMsIGtleUV4dHJhY3Rvcn0pIHtcbiAgICB0aGlzLmRhdGEgPSBkYXRhXG4gICAgdGhpcy5jdXJyZW50T3JkZXIgPSBbLi4uZGF0YV1cbiAgICB0aGlzLmV2ZW50cyA9IGV2ZW50cyB8fCBuZXcgRXZlbnRFbWl0dGVyKClcbiAgICB0aGlzLmtleUV4dHJhY3RvciA9IGtleUV4dHJhY3RvclxuXG4gICAgdGhpcy5kcmFnZ2VkSXRlbSA9IG51bGxcbiAgICB0aGlzLmRyYWdnZWRJdGVtRGF0YSA9IG51bGxcbiAgICB0aGlzLmRyYWdnZWRJdGVtTmV3UG9zaXRpb24gPSBudWxsXG5cbiAgICB0aGlzLmRyYWdnZWRPdmVySXRlbSA9IG51bGxcbiAgICB0aGlzLmRyYWdnZWRPdmVySXRlbURhdGEgPSBudWxsXG5cbiAgICB0aGlzLml0ZW1EYXRhID0ge31cblxuICAgIGZvciAoY29uc3QgaXRlbUluZGV4IGluIGRhdGEpIHtcbiAgICAgIHRoaXMuaXRlbURhdGFbaXRlbUluZGV4XSA9IHtcbiAgICAgICAgaW5kZXg6IGl0ZW1JbmRleCxcbiAgICAgICAgaXRlbTogZGF0YVtpdGVtSW5kZXhdLFxuICAgICAgICBwb3NpdGlvbjogaXRlbUluZGV4XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0RXZlbnRzID0gKCkgPT4gdGhpcy5ldmVudHNcbiAgZ2V0SXRlbURhdGFGb3JJdGVtID0gKGl0ZW0pID0+IHRoaXMuZ2V0SXRlbURhdGFGb3JJbmRleCh0aGlzLmRhdGEuaW5kZXhPZihpdGVtKSlcbiAgZ2V0SXRlbURhdGFGb3JLZXkgPSAoa2V5KSA9PiB0aGlzLml0ZW1EYXRhLmZpbmQoKGl0ZW1EYXRhSSkgPT4gZGlnZyhpdGVtRGF0YUksIFwia2V5XCIpID09IGtleSlcbiAgZ2V0SXRlbURhdGFGb3JJbmRleCA9IChpbmRleCkgPT4gZGlnZyh0aGlzLCBcIml0ZW1EYXRhXCIsIGluZGV4KVxuXG4gIG9uRHJhZ1N0YXJ0ID0gKHtpdGVtLCBpdGVtSW5kZXh9KSA9PiB7XG4gICAgaWYgKGl0ZW0pIHtcbiAgICAgIHRoaXMuZHJhZ2dlZEl0ZW0gPSBpdGVtXG4gICAgICB0aGlzLmRyYWdnZWRJdGVtRGF0YSA9IHRoaXMuZ2V0SXRlbURhdGFGb3JJbmRleChpdGVtSW5kZXgpXG4gICAgICB0aGlzLmRyYWdnZWRJdGVtSW5kZXggPSBpdGVtSW5kZXhcbiAgICAgIHRoaXMuZHJhZ2dlZEl0ZW1Qb3NpdGlvbiA9IHRoaXMuZHJhZ2dlZEl0ZW1EYXRhLnBvc2l0aW9uXG4gICAgICB0aGlzLmV2ZW50cy5lbWl0KFwib25EcmFnU3RhcnRcIiwge2l0ZW0sIGl0ZW1EYXRhOiB0aGlzLmRyYWdnZWRJdGVtRGF0YX0pXG4gICAgfVxuICB9XG5cbiAgb25EcmFnRW5kID0gKCkgPT4ge1xuICAgIGNvbnN0IGl0ZW1EYXRhID0gdGhpcy5kcmFnZ2VkSXRlbURhdGFcbiAgICBjb25zdCBmcm9tSW5kZXggPSBpdGVtRGF0YS5pbmRleFxuICAgIGNvbnN0IGZyb21Qb3NpdGlvbiA9IGRpZ2codGhpcywgXCJkcmFnZ2VkSXRlbVBvc2l0aW9uXCIpXG4gICAgY29uc3QgdG9Qb3NpdGlvbiA9IHRoaXMuZHJhZ2dlZEl0ZW1OZXdQb3NpdGlvblxuICAgIGNvbnN0IGZyb21JdGVtID0gdGhpcy5kcmFnZ2VkSXRlbVxuICAgIGNvbnN0IHRvSXRlbSA9IHRoaXMuZHJhZ2dlZE92ZXJJdGVtXG4gICAgY29uc3QgY2FsbGJhY2tBcmdzID0ge2l0ZW06IGl0ZW1EYXRhLml0ZW0sIGl0ZW1EYXRhLCBmcm9tSW5kZXgsIGZyb21JdGVtLCBmcm9tUG9zaXRpb24sIHRvSXRlbSwgdG9Qb3NpdGlvbn1cblxuICAgIHRoaXMuZHJhZ2dlZEl0ZW1EYXRhLmV2ZW50cy5lbWl0KFwicmVzZXRQb3NpdGlvblwiLCB7XG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xuICAgICAgICB0aGlzLmV2ZW50cy5lbWl0KFwib25EcmFnRW5kQW5pbWF0aW9uXCIsIGNhbGxiYWNrQXJncylcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgdGhpcy5kcmFnZ2VkSXRlbSA9IG51bGxcbiAgICB0aGlzLmRyYWdnZWRJdGVtRGF0YSA9IG51bGxcbiAgICB0aGlzLmRyYWdnZWRJdGVtTmV3UG9zaXRpb24gPSBudWxsXG5cbiAgICB0aGlzLmRyYWdnZWRPdmVySXRlbSA9IG51bGxcbiAgICB0aGlzLmRyYWdnZWRPdmVySXRlbURhdGEgPSBudWxsXG5cbiAgICB0aGlzLmV2ZW50cy5lbWl0KFwib25EcmFnRW5kXCIsIGNhbGxiYWNrQXJncylcbiAgfVxuXG4gIG9uSXRlbUxheW91dCA9ICh7ZXZlbnRzLCBpbmRleCwgaXRlbSwgbGF5b3V0fSkgPT4ge1xuICAgIGlmICghKGluZGV4IGluIHRoaXMuaXRlbURhdGEpKSB0aHJvdyBuZXcgRXJyb3IoYEl0ZW0gbm90IGZvdW5kIGZvciBpbmRleCAke2luZGV4fWApXG5cbiAgICBjb25zdCBpdGVtRGF0YSA9IHRoaXMuaXRlbURhdGFbaW5kZXhdXG5cbiAgICBpdGVtRGF0YS5sYXlvdXQgPSBsYXlvdXRcblxuICAgIGlmICghaXRlbURhdGEuaW5pdGlhbExheW91dCkge1xuICAgICAgaXRlbURhdGEuYmFzZVggPSBsYXlvdXQueFxuICAgICAgaXRlbURhdGEuZXZlbnRzID0gZXZlbnRzXG4gICAgICBpdGVtRGF0YS5pbml0aWFsTGF5b3V0ID0gbGF5b3V0XG4gICAgICBpdGVtRGF0YS5rZXkgPSB0aGlzLmtleUV4dHJhY3RvcihpdGVtKVxuICAgIH1cbiAgfVxuXG4gIG9uTW92ZSA9ICh7Z2VzdGF0ZX0pID0+IHtcbiAgICAvLyBTZW5kIG1vdmUtZXZlbnQgdG8gdGhlIGl0ZW0gYmVpbmcgZHJhZ2dlZCBzbyBpdCB3aWxsIGFjdHVhbGx5IG1vdmUgYXJvdW5kXG4gICAgdGhpcy5kcmFnZ2VkSXRlbURhdGE/LmV2ZW50cz8uZW1pdChcIm1vdmVcIiwge2dlc3RhdGV9KVxuXG4gICAgY29uc3QgbW92ZVggPSBnZXN0YXRlLmR4ICsgdGhpcy5pbml0aWFsRHJhZ1Bvc2l0aW9uLnhcblxuICAgIGZvciAoY29uc3QgaXRlbUluZGV4IGluIHRoaXMuaXRlbURhdGEpIHtcbiAgICAgIGNvbnN0IGl0ZW1EYXRhID0gdGhpcy5nZXRJdGVtRGF0YUZvckluZGV4KGl0ZW1JbmRleClcbiAgICAgIGNvbnN0IGJhc2VYID0gZGlnZyhpdGVtRGF0YSwgXCJiYXNlWFwiKVxuICAgICAgbGV0IHNtYWxsZXN0V2lkdGggPSB0aGlzLmRyYWdnZWRJdGVtRGF0YS5sYXlvdXQud2lkdGhcblxuICAgICAgaWYgKGl0ZW1EYXRhLmxheW91dC53aWR0aCA8IHNtYWxsZXN0V2lkdGgpIHNtYWxsZXN0V2lkdGggPSBpdGVtRGF0YS5sYXlvdXQud2lkdGhcblxuICAgICAgaWYgKG1vdmVYID4gYmFzZVggJiYgbW92ZVggPCAoYmFzZVggKyBzbWFsbGVzdFdpZHRoKSAmJiBpdGVtSW5kZXggIT0gdGhpcy5kcmFnZ2VkSXRlbURhdGEuaW5kZXgpIHtcbiAgICAgICAgdGhpcy5kcmFnZ2VkT3Zlckl0ZW0gPSBpdGVtRGF0YS5pdGVtXG4gICAgICAgIHRoaXMuZHJhZ2dlZE92ZXJJdGVtRGF0YSA9IGl0ZW1EYXRhXG5cbiAgICAgICAgY29uc3QgcG9zaXRpb25PZkRyYWdnZWRJdGVtID0gdGhpcy5jdXJyZW50T3JkZXIuaW5kZXhPZih0aGlzLmRyYWdnZWRJdGVtRGF0YS5pdGVtKVxuICAgICAgICBjb25zdCBwb3NpdGlvbk9mT3Zlckl0ZW0gPSB0aGlzLmN1cnJlbnRPcmRlci5pbmRleE9mKHRoaXMuZHJhZ2dlZE92ZXJJdGVtRGF0YS5pdGVtKVxuXG4gICAgICAgIHRoaXMuY3VycmVudE9yZGVyW3Bvc2l0aW9uT2ZEcmFnZ2VkSXRlbV0gPSB0aGlzLmRyYWdnZWRPdmVySXRlbURhdGEuaXRlbVxuICAgICAgICB0aGlzLmN1cnJlbnRPcmRlcltwb3NpdGlvbk9mT3Zlckl0ZW1dID0gdGhpcy5kcmFnZ2VkSXRlbURhdGEuaXRlbVxuXG4gICAgICAgIHRoaXMuZHJhZ2dlZEl0ZW1EYXRhLnBvc2l0aW9uID0gcG9zaXRpb25PZk92ZXJJdGVtXG4gICAgICAgIHRoaXMuZHJhZ2dlZE92ZXJJdGVtRGF0YS5wb3NpdGlvbiA9IHBvc2l0aW9uT2ZEcmFnZ2VkSXRlbVxuXG4gICAgICAgIHRoaXMudXBkYXRlUG9zaXRpb25PZkl0ZW1zKClcbiAgICAgICAgdGhpcy5kcmFnZ2VkSXRlbU5ld1Bvc2l0aW9uID0gcG9zaXRpb25PZk92ZXJJdGVtXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc2V0SW5pdGlhbERyYWdQb3NpdGlvbiA9IChpbml0aWFsRHJhZ1Bvc2l0aW9uKSA9PiB7XG4gICAgdGhpcy5pbml0aWFsRHJhZ1Bvc2l0aW9uID0gaW5pdGlhbERyYWdQb3NpdGlvblxuICB9XG5cbiAgdXBkYXRlUG9zaXRpb25PZkl0ZW1zKCkge1xuICAgIGxldCBjdXJyZW50UG9zaXRpb24gPSAwXG5cbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5jdXJyZW50T3JkZXIpIHtcbiAgICAgIGNvbnN0IGl0ZW1EYXRhID0gdGhpcy5nZXRJdGVtRGF0YUZvckl0ZW0oaXRlbSlcblxuICAgICAgaWYgKGRpZ2coaXRlbURhdGEsIFwiaW5kZXhcIikgIT0gZGlnZyh0aGlzLCBcImRyYWdnZWRJdGVtRGF0YVwiLCBcImluZGV4XCIpKSB7IC8vIERvbnQgYW5pbWF0ZSBkcmFnZ2VkIGVsZW1lbnQgdG8gYSBuZXcgcG9zaXRpb24gYmVjYXVzZSBpdCBpcyBjdXJyZW50bHkgYmVpbmcgZHJhZ2dlZFxuICAgICAgICBpdGVtRGF0YS5ldmVudHMuZW1pdChcIm1vdmVUb1Bvc2l0aW9uXCIsIHtcbiAgICAgICAgICB4OiBjdXJyZW50UG9zaXRpb24sXG4gICAgICAgICAgeTogMFxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICBpdGVtRGF0YS5iYXNlWCA9IGN1cnJlbnRQb3NpdGlvblxuICAgICAgY3VycmVudFBvc2l0aW9uICs9IGRpZ2coaXRlbURhdGEsIFwibGF5b3V0XCIsIFwid2lkdGhcIilcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|