@kaspernj/api-maker 1.0.2108 → 1.0.2110
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/README.md +32 -0
- package/build/api.d.ts +1 -3
- package/build/api.d.ts.map +1 -1
- package/build/api.js +2 -4
- package/build/attribute-not-loaded-error.d.ts +1 -0
- package/build/attribute-not-loaded-error.d.ts.map +1 -1
- package/build/attribute-not-loaded-error.js +2 -1
- package/build/base-model/attribute.d.ts +1 -3
- package/build/base-model/attribute.d.ts.map +1 -1
- package/build/base-model/attribute.js +2 -4
- package/build/base-model/reflection.d.ts +2 -0
- package/build/base-model/reflection.d.ts.map +1 -1
- package/build/base-model/reflection.js +3 -1
- package/build/base-model/scope.d.ts +1 -0
- package/build/base-model/scope.d.ts.map +1 -1
- package/build/base-model/scope.js +2 -1
- package/build/base-model.js +128 -46
- package/build/bootstrap/attribute-row.js +54 -6
- package/build/bootstrap/attribute-rows.js +8 -4
- package/build/bootstrap/index.js +2 -1
- package/build/cable-connection-pool.d.ts +10 -0
- package/build/cable-connection-pool.d.ts.map +1 -1
- package/build/cable-connection-pool.js +11 -1
- package/build/cable-subscription-pool.d.ts +10 -0
- package/build/cable-subscription-pool.d.ts.map +1 -1
- package/build/cable-subscription-pool.js +13 -1
- package/build/cable-subscription.d.ts +2 -0
- package/build/cable-subscription.d.ts.map +1 -1
- package/build/cable-subscription.js +4 -1
- package/build/cache-key-generator.d.ts +9 -0
- package/build/cache-key-generator.d.ts.map +1 -1
- package/build/cache-key-generator.js +10 -1
- package/build/can-can.d.ts +20 -0
- package/build/can-can.d.ts.map +1 -1
- package/build/can-can.js +22 -1
- package/build/channels-consumer.d.ts.map +1 -1
- package/build/channels-consumer.js +4 -1
- package/build/collection.d.ts +57 -49
- package/build/collection.d.ts.map +1 -1
- package/build/collection.js +55 -51
- package/build/command-submit-data.d.ts +3 -0
- package/build/command-submit-data.d.ts.map +1 -1
- package/build/command-submit-data.js +4 -1
- package/build/commands-pool.d.ts +7 -0
- package/build/commands-pool.d.ts.map +1 -1
- package/build/commands-pool.js +10 -4
- package/build/compose.d.ts +1 -0
- package/build/compose.d.ts.map +1 -1
- package/build/compose.js +2 -1
- package/build/config.d.ts +2 -0
- package/build/config.d.ts.map +1 -1
- package/build/config.js +4 -1
- package/build/custom-error.d.ts +1 -0
- package/build/custom-error.d.ts.map +1 -1
- package/build/custom-error.js +2 -1
- package/build/data-set-to-attributes.d.ts +1 -0
- package/build/data-set-to-attributes.d.ts.map +1 -1
- package/build/data-set-to-attributes.js +2 -1
- package/build/deserializer.d.ts +2 -0
- package/build/deserializer.d.ts.map +1 -1
- package/build/deserializer.js +5 -3
- package/build/destroy-error.d.ts +1 -0
- package/build/destroy-error.d.ts.map +1 -1
- package/build/destroy-error.js +2 -1
- package/build/devise.d.ts +11 -0
- package/build/devise.d.ts.map +1 -1
- package/build/devise.js +17 -2
- package/build/draggable-sort/controller.d.ts +12 -0
- package/build/draggable-sort/controller.d.ts.map +1 -1
- package/build/draggable-sort/controller.js +13 -1
- package/build/error-logger.d.ts +10 -0
- package/build/error-logger.d.ts.map +1 -1
- package/build/error-logger.js +12 -1
- package/build/error-messages.d.ts +1 -3
- package/build/error-messages.d.ts.map +1 -1
- package/build/error-messages.js +2 -4
- package/build/event-connection.d.ts +1 -1
- package/build/event-connection.d.ts.map +1 -1
- package/build/event-model-class.d.ts +1 -1
- package/build/event-model-class.d.ts.map +1 -1
- package/build/events.d.ts +1 -0
- package/build/events.d.ts.map +1 -1
- package/build/events.js +2 -1
- package/build/history-expo.d.ts +7 -1
- package/build/history-expo.d.ts.map +1 -1
- package/build/history-expo.js +8 -1
- package/build/history-react-native.d.ts +7 -1
- package/build/history-react-native.d.ts.map +1 -1
- package/build/history-react-native.js +8 -1
- package/build/history.js +2 -1
- package/build/index.d.ts +1 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +2 -1
- package/build/inputs/auto-submit.d.ts +14 -2
- package/build/inputs/auto-submit.d.ts.map +1 -1
- package/build/inputs/auto-submit.js +5 -1
- package/build/inputs/id-for-component.d.ts +1 -0
- package/build/inputs/id-for-component.d.ts.map +1 -1
- package/build/inputs/id-for-component.js +2 -1
- package/build/inputs/name-for-component.d.ts +1 -0
- package/build/inputs/name-for-component.d.ts.map +1 -1
- package/build/inputs/name-for-component.js +2 -1
- package/build/instance-of-class-name.d.ts +5 -1
- package/build/instance-of-class-name.d.ts.map +1 -1
- package/build/instance-of-class-name.js +11 -2
- package/build/is-expo.js +2 -1
- package/build/key-value-store.d.ts +39 -7
- package/build/key-value-store.d.ts.map +1 -1
- package/build/key-value-store.js +33 -1
- package/build/logger.d.ts +35 -9
- package/build/logger.d.ts.map +1 -1
- package/build/logger.js +25 -1
- package/build/merge-styles.d.ts +1 -0
- package/build/merge-styles.d.ts.map +1 -1
- package/build/merge-styles.js +2 -1
- package/build/model-events.d.ts +33 -5
- package/build/model-events.d.ts.map +1 -1
- package/build/model-events.js +29 -1
- package/build/model-name.d.ts +19 -5
- package/build/model-name.d.ts.map +1 -1
- package/build/model-name.js +10 -1
- package/build/model-prop-type.d.ts +11 -0
- package/build/model-prop-type.d.ts.map +1 -1
- package/build/model-prop-type.js +13 -1
- package/build/model-recipes-loader.d.ts +11 -4
- package/build/model-recipes-loader.d.ts.map +1 -1
- package/build/model-recipes-loader.js +8 -1
- package/build/model-recipes-model-loader.d.ts +67 -35
- package/build/model-recipes-model-loader.d.ts.map +1 -1
- package/build/model-recipes-model-loader.js +24 -3
- package/build/models-response-reader.d.ts +32 -6
- package/build/models-response-reader.d.ts.map +1 -1
- package/build/models-response-reader.js +12 -1
- package/build/models.d.ts +1 -1
- package/build/models.d.ts.map +1 -1
- package/build/models.js +2 -1
- package/build/money-formatter.d.ts +72 -8
- package/build/money-formatter.d.ts.map +1 -1
- package/build/money-formatter.js +36 -1
- package/build/not-loaded-error.d.ts +1 -0
- package/build/not-loaded-error.d.ts.map +1 -1
- package/build/not-loaded-error.js +2 -1
- package/build/params.d.ts +1 -0
- package/build/params.d.ts.map +1 -1
- package/build/params.js +2 -1
- package/build/preloaded.d.ts +2 -3
- package/build/preloaded.d.ts.map +1 -1
- package/build/preloaded.js +3 -4
- package/build/rest-props-validator.d.ts +5 -1
- package/build/rest-props-validator.d.ts.map +1 -1
- package/build/rest-props-validator.js +5 -1
- package/build/result.d.ts +4 -0
- package/build/result.d.ts.map +1 -1
- package/build/result.js +3 -1
- package/build/routes-native.d.ts +4 -12
- package/build/routes-native.d.ts.map +1 -1
- package/build/routes-native.js +5 -13
- package/build/routes.d.ts +11 -5
- package/build/routes.d.ts.map +1 -1
- package/build/routes.js +5 -1
- package/build/run-last.d.ts +9 -2
- package/build/run-last.d.ts.map +1 -1
- package/build/run-last.js +8 -1
- package/build/serializer.d.ts +7 -0
- package/build/serializer.d.ts.map +1 -1
- package/build/serializer.js +9 -2
- package/build/services.d.ts +10 -2
- package/build/services.d.ts.map +1 -1
- package/build/services.js +9 -1
- package/build/session-status-updater.d.ts +13 -0
- package/build/session-status-updater.d.ts.map +1 -1
- package/build/session-status-updater.js +15 -1
- package/build/source-maps-loader.js +20 -3
- package/build/super-admin/has-edit-config.d.ts +5 -1
- package/build/super-admin/has-edit-config.d.ts.map +1 -1
- package/build/super-admin/has-edit-config.js +5 -1
- package/build/super-admin/models.d.ts +1 -0
- package/build/super-admin/models.d.ts.map +1 -1
- package/build/super-admin/models.js +2 -1
- package/build/table/column-identifier.d.ts +1 -0
- package/build/table/column-identifier.d.ts.map +1 -1
- package/build/table/column-identifier.js +2 -1
- package/build/table/column-visible.d.ts +1 -0
- package/build/table/column-visible.d.ts.map +1 -1
- package/build/table/column-visible.js +2 -1
- package/build/table/model-callback-args.d.ts +1 -0
- package/build/table/model-callback-args.d.ts.map +1 -1
- package/build/table/model-callback-args.js +2 -1
- package/build/table/select-calculator.d.ts +1 -0
- package/build/table/select-calculator.d.ts.map +1 -1
- package/build/table/select-calculator.js +5 -1
- package/build/table/table-settings.d.ts +16 -0
- package/build/table/table-settings.d.ts.map +1 -1
- package/build/table/table-settings.js +19 -1
- package/build/table/use-sorting.d.ts.map +1 -1
- package/build/table/use-sorting.js +2 -4
- package/build/translated-attributes.d.ts +1 -0
- package/build/translated-attributes.d.ts.map +1 -1
- package/build/translated-attributes.js +2 -1
- package/build/translated-collections.d.ts +7 -1
- package/build/translated-collections.d.ts.map +1 -1
- package/build/translated-collections.js +7 -1
- package/build/updated-attribute.d.ts +1 -1
- package/build/updated-attribute.d.ts.map +1 -1
- package/build/use-can-can.d.ts.map +1 -1
- package/build/use-can-can.js +10 -1
- package/build/use-created-event.d.ts +0 -3
- package/build/use-created-event.d.ts.map +1 -1
- package/build/use-created-event.js +3 -48
- package/build/use-destroyed-event.d.ts +3 -6
- package/build/use-destroyed-event.d.ts.map +1 -1
- package/build/use-destroyed-event.js +95 -62
- package/build/use-model-class-event.d.ts +14 -0
- package/build/use-model-class-event.d.ts.map +1 -0
- package/build/use-model-class-event.js +85 -0
- package/build/use-model-event.d.ts +2 -5
- package/build/use-model-event.d.ts.map +1 -1
- package/build/use-model-event.js +2 -1
- package/build/use-model.d.ts +2 -3
- package/build/use-model.d.ts.map +1 -1
- package/build/use-model.js +2 -1
- package/build/use-screen-layout.d.ts +2 -1
- package/build/use-screen-layout.d.ts.map +1 -1
- package/build/use-screen-layout.js +7 -2
- package/build/use-styles.d.ts +7 -1
- package/build/use-styles.d.ts.map +1 -1
- package/build/use-styles.js +18 -5
- package/build/validation-error.d.ts +1 -0
- package/build/validation-error.d.ts.map +1 -1
- package/build/validation-error.js +2 -1
- package/build/validation-errors.d.ts +7 -0
- package/build/validation-errors.d.ts.map +1 -1
- package/build/validation-errors.js +8 -1
- package/package.json +2 -2
|
@@ -1,24 +1,39 @@
|
|
|
1
|
+
/** Persistent table settings manager. */
|
|
1
2
|
export default class ApiMakerTableSettings {
|
|
3
|
+
/** Constructor. */
|
|
2
4
|
constructor({ table }: {
|
|
3
5
|
table: any;
|
|
4
6
|
});
|
|
5
7
|
table: any;
|
|
8
|
+
/** setTableSettingsLock. */
|
|
6
9
|
setTableSettingsLock(): void;
|
|
7
10
|
tableSettingsLock: any;
|
|
11
|
+
/** columns. */
|
|
8
12
|
columns: () => any;
|
|
13
|
+
/** currentUser. */
|
|
9
14
|
currentUser: () => any;
|
|
15
|
+
/** identifier. */
|
|
10
16
|
identifier: () => any;
|
|
17
|
+
/** preparedColumns. */
|
|
11
18
|
preparedColumns: (tableSetting: any) => {
|
|
12
19
|
columns: any[];
|
|
13
20
|
preload: any[];
|
|
14
21
|
};
|
|
22
|
+
/** orderedTableSettingColumns. */
|
|
15
23
|
orderedTableSettingColumns: (tableSetting: any) => any;
|
|
24
|
+
/** loadExistingOrCreateTableSettings. */
|
|
16
25
|
loadExistingOrCreateTableSettings: () => Promise<any>;
|
|
26
|
+
/** loadTableSetting. */
|
|
17
27
|
loadTableSetting: () => Promise<any>;
|
|
28
|
+
/** currentUserIdOrFallback. */
|
|
18
29
|
currentUserIdOrFallback(): any;
|
|
30
|
+
/** currentUserTypeOrFallback. */
|
|
19
31
|
currentUserTypeOrFallback(): any;
|
|
32
|
+
/** anonymouseUserId. */
|
|
20
33
|
anonymouseUserId(): any;
|
|
34
|
+
/** createInitialTableSetting. */
|
|
21
35
|
createInitialTableSetting: () => Promise<any>;
|
|
36
|
+
/** columnSaveData. */
|
|
22
37
|
columnSaveData(column: any, { identifier, position }: {
|
|
23
38
|
identifier: any;
|
|
24
39
|
position: any;
|
|
@@ -30,6 +45,7 @@ export default class ApiMakerTableSettings {
|
|
|
30
45
|
sort_key: any;
|
|
31
46
|
visible: any;
|
|
32
47
|
};
|
|
48
|
+
/** updateTableSetting. */
|
|
33
49
|
updateTableSetting: (tableSetting: any) => Promise<any>;
|
|
34
50
|
}
|
|
35
51
|
//# sourceMappingURL=table-settings.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-settings.d.ts","sourceRoot":"/src/","sources":["table/table-settings.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"table-settings.d.ts","sourceRoot":"/src/","sources":["table/table-settings.js"],"names":[],"mappings":"AAkBA,yCAAyC;AACzC;IACE,mBAAmB;IACnB;;OAGC;IAFC,WAAkB;IAIpB,4BAA4B;IAC5B,6BAQC;IADC,uBAA6D;IAG/D,eAAe;IACf,mBAAuD;IAEvD,mBAAmB;IACnB,uBAA+D;IAE/D,kBAAkB;IAClB,sBAA6D;IAE7D,uBAAuB;IACvB,kBAAmB,iBAAY;;;MA0B9B;IAED,kCAAkC;IAClC,6BAA8B,iBAAY,SAKzC;IAED,yCAAyC;IACzC,sDAcC;IAED,wBAAwB;IACxB,qCAaC;IAED,+BAA+B;IAC/B,+BAMC;IAED,iCAAiC;IACjC,iCAMC;IAED,wBAAwB;IACxB,wBAUC;IAED,iCAAiC;IACjC,8CA4BC;IAED,sBAAsB;IACtB;;;;;;;;;;MASC;IAED,0BAA0B;IAC1B,qBAA4B,iBAAY,kBA8FvC;CACF"}
|
|
@@ -6,16 +6,21 @@ import * as inflection from "inflection";
|
|
|
6
6
|
import Logger from "../logger.js";
|
|
7
7
|
import { ReadersWriterLock } from "epic-locks";
|
|
8
8
|
import { serialize as objectToFormData } from "object-to-formdata";
|
|
9
|
+
// @ts-expect-error
|
|
9
10
|
import { TableSetting } from "models.js";
|
|
11
|
+
// @ts-expect-error
|
|
10
12
|
import { v4 as uuidv4 } from "uuid";
|
|
11
13
|
const logger = new Logger({ name: "ApiMaker / TableSettings" });
|
|
12
14
|
// Have a lock for each unique table identifier
|
|
13
15
|
const tableSettingsLocks = {};
|
|
16
|
+
/** Persistent table settings manager. */
|
|
14
17
|
export default class ApiMakerTableSettings {
|
|
18
|
+
/** Constructor. */
|
|
15
19
|
constructor({ table }) {
|
|
16
20
|
this.table = table;
|
|
17
21
|
this.setTableSettingsLock();
|
|
18
22
|
}
|
|
23
|
+
/** setTableSettingsLock. */
|
|
19
24
|
setTableSettingsLock() {
|
|
20
25
|
const identifier = this.identifier();
|
|
21
26
|
if (!(identifier in tableSettingsLocks)) {
|
|
@@ -23,9 +28,13 @@ export default class ApiMakerTableSettings {
|
|
|
23
28
|
}
|
|
24
29
|
this.tableSettingsLock = digg(tableSettingsLocks, identifier);
|
|
25
30
|
}
|
|
31
|
+
/** columns. */
|
|
26
32
|
columns = () => digg(this, "table", "columnsAsArray")();
|
|
33
|
+
/** currentUser. */
|
|
27
34
|
currentUser = () => digg(this, "table", "props", "currentUser");
|
|
35
|
+
/** identifier. */
|
|
28
36
|
identifier = () => digg(this, "table", "state", "identifier");
|
|
37
|
+
/** preparedColumns. */
|
|
29
38
|
preparedColumns = (tableSetting) => {
|
|
30
39
|
const columns = this.table.columnsAsArray();
|
|
31
40
|
const ordered = this.orderedTableSettingColumns(tableSetting);
|
|
@@ -49,12 +58,14 @@ export default class ApiMakerTableSettings {
|
|
|
49
58
|
}
|
|
50
59
|
return result;
|
|
51
60
|
};
|
|
61
|
+
/** orderedTableSettingColumns. */
|
|
52
62
|
orderedTableSettingColumns = (tableSetting) => {
|
|
53
63
|
return tableSetting
|
|
54
64
|
.columns()
|
|
55
65
|
.loaded()
|
|
56
66
|
.sort((tableSettingColumn1, tableSettingColumn2) => tableSettingColumn1.position() - tableSettingColumn2.position());
|
|
57
67
|
};
|
|
68
|
+
/** loadExistingOrCreateTableSettings. */
|
|
58
69
|
loadExistingOrCreateTableSettings = async () => {
|
|
59
70
|
return await this.tableSettingsLock.write(async () => {
|
|
60
71
|
let tableSetting = await this.loadTableSetting();
|
|
@@ -69,6 +80,7 @@ export default class ApiMakerTableSettings {
|
|
|
69
80
|
return tableSetting;
|
|
70
81
|
});
|
|
71
82
|
};
|
|
83
|
+
/** loadTableSetting. */
|
|
72
84
|
loadTableSetting = async () => {
|
|
73
85
|
if (!TableSetting)
|
|
74
86
|
throw new Error("TableSetting model isn't globally available");
|
|
@@ -82,18 +94,21 @@ export default class ApiMakerTableSettings {
|
|
|
82
94
|
.first();
|
|
83
95
|
return tableSetting;
|
|
84
96
|
};
|
|
97
|
+
/** currentUserIdOrFallback. */
|
|
85
98
|
currentUserIdOrFallback() {
|
|
86
99
|
const currentUser = this.currentUser();
|
|
87
100
|
if (currentUser)
|
|
88
101
|
return currentUser.id();
|
|
89
102
|
return this.anonymouseUserId();
|
|
90
103
|
}
|
|
104
|
+
/** currentUserTypeOrFallback. */
|
|
91
105
|
currentUserTypeOrFallback() {
|
|
92
106
|
const currentUser = this.currentUser();
|
|
93
107
|
if (currentUser)
|
|
94
108
|
return digg(currentUser.modelClassData(), "name");
|
|
95
109
|
return null;
|
|
96
110
|
}
|
|
111
|
+
/** anonymouseUserId. */
|
|
97
112
|
anonymouseUserId() {
|
|
98
113
|
const variableName = `ApiMakerTableAnonymousUserId-${this.identifier()}`;
|
|
99
114
|
if (!(variableName in localStorage)) {
|
|
@@ -102,6 +117,7 @@ export default class ApiMakerTableSettings {
|
|
|
102
117
|
}
|
|
103
118
|
return digg(localStorage, variableName);
|
|
104
119
|
}
|
|
120
|
+
/** createInitialTableSetting. */
|
|
105
121
|
createInitialTableSetting = async () => {
|
|
106
122
|
const tableSettingData = {
|
|
107
123
|
identifier: this.identifier(),
|
|
@@ -124,6 +140,7 @@ export default class ApiMakerTableSettings {
|
|
|
124
140
|
throw new Error("No reloadedTableSetting returned by loadTableSetting");
|
|
125
141
|
return reloadedTableSetting;
|
|
126
142
|
};
|
|
143
|
+
/** columnSaveData. */
|
|
127
144
|
columnSaveData(column, { identifier, position }) {
|
|
128
145
|
return {
|
|
129
146
|
attribute_name: column.attribute,
|
|
@@ -134,6 +151,7 @@ export default class ApiMakerTableSettings {
|
|
|
134
151
|
visible: null
|
|
135
152
|
};
|
|
136
153
|
}
|
|
154
|
+
/** updateTableSetting. */
|
|
137
155
|
updateTableSetting = async (tableSetting) => {
|
|
138
156
|
const changedAttributesList = ["attributeName", "sortKey"];
|
|
139
157
|
const columns = this.columns();
|
|
@@ -210,4 +228,4 @@ export default class ApiMakerTableSettings {
|
|
|
210
228
|
return tableSetting;
|
|
211
229
|
};
|
|
212
230
|
}
|
|
213
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtc2V0dGluZ3MuanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbInRhYmxlL3RhYmxlLXNldHRpbmdzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG1HQUFtRztBQUNuRyxPQUFPLGdCQUFnQixNQUFNLHdCQUF3QixDQUFBO0FBQ3JELE9BQU8sYUFBYSxNQUFNLHFCQUFxQixDQUFBO0FBQy9DLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxXQUFXLENBQUE7QUFDOUIsT0FBTyxLQUFLLFVBQVUsTUFBTSxZQUFZLENBQUE7QUFDeEMsT0FBTyxNQUFNLE1BQU0sY0FBYyxDQUFBO0FBQ2pDLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLFlBQVksQ0FBQTtBQUM1QyxPQUFPLEVBQUMsU0FBUyxJQUFJLGdCQUFnQixFQUFDLE1BQU0sb0JBQW9CLENBQUE7QUFDaEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLFdBQVcsQ0FBQTtBQUN0QyxPQUFPLEVBQUMsRUFBRSxJQUFJLE1BQU0sRUFBQyxNQUFNLE1BQU0sQ0FBQTtBQUVqQyxNQUFNLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxFQUFDLElBQUksRUFBRSwwQkFBMEIsRUFBQyxDQUFDLENBQUE7QUFFN0QsK0NBQStDO0FBQy9DLE1BQU0sa0JBQWtCLEdBQUcsRUFBRSxDQUFBO0FBRTdCLE1BQU0sQ0FBQyxPQUFPLE9BQU8scUJBQXFCO0lBQ3hDLFlBQVksRUFBQyxLQUFLLEVBQUM7UUFDakIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7UUFDbEIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUE7SUFDN0IsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUE7UUFFcEMsSUFBSSxDQUFDLENBQUMsVUFBVSxJQUFJLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztZQUN4QyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsR0FB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QUc7b0JBQ3ZCLEVBQUUsRUFBRSxrQkFBa0IsQ0FBQyxFQUFFLEVBQUU7b0JBQzNCLFFBQVEsRUFBRSxJQUFJO2lCQUNmLENBQUE7Z0JBQ0QsT0FBTyxHQUFHLElBQUksQ0FBQTtnQkFFZCxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUE7WUFDOUUsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osTUFBTSxvQkFBb0IsR0FBRyxnQkFBZ0IsQ0FBQyxFQUFDLGFBQWEsRUFBRSxnQkFBZ0IsRUFBQyxDQUFDLENBQUE7WUFFaEYsTUFBTSxZQUFZLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUE7UUFDbEQsQ0FBQztRQUVELE9BQU8sWUFBWSxDQUFBO0lBQ3JCLENBQUMsQ0FBQTtDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgYXJyb3ctYm9keS1zdHlsZSwgaW1wb3J0L25vLXVucmVzb2x2ZWQsIG5ld2xpbmUtcGVyLWNoYWluZWQtY2FsbCwgc29ydC1pbXBvcnRzICovXG5pbXBvcnQgY29sdW1uSWRlbnRpZmllciBmcm9tIFwiLi9jb2x1bW4taWRlbnRpZmllci5qc1wiXG5pbXBvcnQgY29sdW1uVmlzaWJsZSBmcm9tIFwiLi9jb2x1bW4tdmlzaWJsZS5qc1wiXG5pbXBvcnQge2RpZ2d9IGZyb20gXCJkaWdnZXJpemVcIlxuaW1wb3J0ICogYXMgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiXG5pbXBvcnQgTG9nZ2VyIGZyb20gXCIuLi9sb2dnZXIuanNcIlxuaW1wb3J0IHtSZWFkZXJzV3JpdGVyTG9ja30gZnJvbSBcImVwaWMtbG9ja3NcIlxuaW1wb3J0IHtzZXJpYWxpemUgYXMgb2JqZWN0VG9Gb3JtRGF0YX0gZnJvbSBcIm9iamVjdC10by1mb3JtZGF0YVwiXG5pbXBvcnQge1RhYmxlU2V0dGluZ30gZnJvbSBcIm1vZGVscy5qc1wiXG5pbXBvcnQge3Y0IGFzIHV1aWR2NH0gZnJvbSBcInV1aWRcIlxuXG5jb25zdCBsb2dnZXIgPSBuZXcgTG9nZ2VyKHtuYW1lOiBcIkFwaU1ha2VyIC8gVGFibGVTZXR0aW5nc1wifSlcblxuLy8gSGF2ZSBhIGxvY2sgZm9yIGVhY2ggdW5pcXVlIHRhYmxlIGlkZW50aWZpZXJcbmNvbnN0IHRhYmxlU2V0dGluZ3NMb2NrcyA9IHt9XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFwaU1ha2VyVGFibGVTZXR0aW5ncyB7XG4gIGNvbnN0cnVjdG9yKHt0YWJsZX0pIHtcbiAgICB0aGlzLnRhYmxlID0gdGFibGVcbiAgICB0aGlzLnNldFRhYmxlU2V0dGluZ3NMb2NrKClcbiAgfVxuXG4gIHNldFRhYmxlU2V0dGluZ3NMb2NrKCkge1xuICAgIGNvbnN0IGlkZW50aWZpZXIgPSB0aGlzLmlkZW50aWZpZXIoKVxuXG4gICAgaWYgKCEoaWRlbnRpZmllciBpbiB0YWJsZVNldHRpbmdzTG9ja3MpKSB7XG4gICAgICB0YWJsZVNldHRpbmdzTG9ja3NbaWRlbnRpZmllcl0gPSBuZXcgUmVhZGVyc1dyaXRlckxvY2soKVxuICAgIH1cblxuICAgIHRoaXMudGFibGVTZXR0aW5nc0xvY2sgPSBkaWdnKHRhYmxlU2V0dGluZ3NMb2NrcywgaWRlbnRpZmllcilcbiAgfVxuXG4gIGNvbHVtbnMgPSAoKSA9PiBkaWdnKHRoaXMsIFwidGFibGVcIiwgXCJjb2x1bW5zQXNBcnJheVwiKSgpXG4gIGN1cnJlbnRVc2VyID0gKCkgPT4gZGlnZyh0aGlzLCBcInRhYmxlXCIsIFwicHJvcHNcIiwgXCJjdXJyZW50VXNlclwiKVxuICBpZGVudGlmaWVyID0gKCkgPT4gZGlnZyh0aGlzLCBcInRhYmxlXCIsIFwic3RhdGVcIiwgXCJpZGVudGlmaWVyXCIpXG5cbiAgcHJlcGFyZWRDb2x1bW5zID0gKHRhYmxlU2V0dGluZykgPT4ge1xuICAgIGNvbnN0IGNvbHVtbnMgPSB0aGlzLnRhYmxlLmNvbHVtbnNBc0FycmF5KClcbiAgICBjb25zdCBvcmRlcmVkID0gdGhpcy5vcmRlcmVkVGFibGVTZXR0aW5nQ29sdW1ucyh0YWJsZVNldHRpbmcpXG4gICAgY29uc3QgcmVzdWx0ID0ge1xuICAgICAgY29sdW1uczogW10sXG4gICAgICBwcmVsb2FkOiBbXVxuICAgIH1cblxuICAgIGlmICghb3JkZXJlZCkgcmV0dXJuXG5cbiAgICBmb3IgKGNvbnN0IHRhYmxlU2V0dGluZ0NvbHVtbiBvZiBvcmRlcmVkKSB7XG4gICAgICBjb25zdCBjb2x1bW4gPSBjb2x1bW5zLmZpbmQoKGNvbHVtbikgPT4gY29sdW1uSWRlbnRpZmllcihjb2x1bW4pID09IHRhYmxlU2V0dGluZ0NvbHVtbi5pZGVudGlmaWVyKCkpXG5cbiAgICAgIHJlc3VsdC5jb2x1bW5zLnB1c2goe2NvbHVtbiwgdGFibGVTZXR0aW5nQ29sdW1ufSlcblxuICAgICAgLy8gQWRkIG5lZWRlZCBwcmVsb2FkcyBpZiBjb2x1bW4gaXMgdmlzaWJsZVxuICAgICAgaWYgKGNvbHVtblZpc2libGUoY29sdW1uLCB0YWJsZVNldHRpbmdDb2x1bW4pKSB7XG4gICAgICAgIGlmIChjb2x1bW4ucGF0aCkge1xuICAgICAgICAgIGNvbnN0IHByZWxvYWQgPSBjb2x1bW4ucGF0aC5tYXAoKHBhdGhQYXJ0KSA9PiBpbmZsZWN0aW9uLnVuZGVyc2NvcmUocGF0aFBhcnQpKS5qb2luKFwiLlwiKVxuXG4gICAgICAgICAgaWYgKCFyZXN1bHQucHJlbG9hZC5pbmNsdWRlcyhwcmVsb2FkKSkgcmVzdWx0LnByZWxvYWQucHVzaChwcmVsb2FkKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG5cbiAgb3JkZXJlZFRhYmxlU2V0dGluZ0NvbHVtbnMgPSAodGFibGVTZXR0aW5nKSA9PiB7XG4gICAgcmV0dXJuIHRhYmxlU2V0dGluZ1xuICAgICAgLmNvbHVtbnMoKVxuICAgICAgLmxvYWRlZCgpXG4gICAgICAuc29ydCgodGFibGVTZXR0aW5nQ29sdW1uMSwgdGFibGVTZXR0aW5nQ29sdW1uMikgPT4gdGFibGVTZXR0aW5nQ29sdW1uMS5wb3NpdGlvbigpIC0gdGFibGVTZXR0aW5nQ29sdW1uMi5wb3NpdGlvbigpKVxuICB9XG5cbiAgbG9hZEV4aXN0aW5nT3JDcmVhdGVUYWJsZVNldHRpbmdzID0gYXN5bmMgKCkgPT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLnRhYmxlU2V0dGluZ3NMb2NrLndyaXRlKGFzeW5jICgpID0+IHtcbiAgICAgIGxldCB0YWJsZVNldHRpbmcgPSBhd2FpdCB0aGlzLmxvYWRUYWJsZVNldHRpbmcoKVxuXG4gICAgICBpZiAodGFibGVTZXR0aW5nKSB7XG4gICAgICAgIHRhYmxlU2V0dGluZyA9IGF3YWl0IHRoaXMudXBkYXRlVGFibGVTZXR0aW5nKHRhYmxlU2V0dGluZylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRhYmxlU2V0dGluZyA9IGF3YWl0IHRoaXMuY3JlYXRlSW5pdGlhbFRhYmxlU2V0dGluZygpXG5cbiAgICAgICAgaWYgKCF0YWJsZVNldHRpbmcpIHRocm93IG5ldyBFcnJvcihcIk5vIHRhYmxlU2V0dGluZyByZXR1cm5lZCBieSBjcmVhdGVJbml0aWFsVGFibGVTZXR0aW5nXCIpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0YWJsZVNldHRpbmdcbiAgICB9KVxuICB9XG5cbiAgbG9hZFRhYmxlU2V0dGluZyA9IGFzeW5jICgpID0+IHtcbiAgICBpZiAoIVRhYmxlU2V0dGluZykgdGhyb3cgbmV3IEVycm9yKFwiVGFibGVTZXR0aW5nIG1vZGVsIGlzbid0IGdsb2JhbGx5IGF2YWlsYWJsZVwiKVxuXG4gICAgY29uc3QgdGFibGVTZXR0aW5nID0gYXdhaXQgVGFibGVTZXR0aW5nXG4gICAgICAucmFuc2Fjayh7XG4gICAgICAgIGlkZW50aWZpZXJfZXE6IHRoaXMuaWRlbnRpZmllcigpLFxuICAgICAgICB1c2VyX2lkX2VxOiB0aGlzLmN1cnJlbnRVc2VySWRPckZhbGxiYWNrKCksXG4gICAgICAgIHVzZXJfdHlwZV9lcTogdGhpcy5jdXJyZW50VXNlclR5cGVPckZhbGxiYWNrKClcbiAgICAgIH0pXG4gICAgICAucHJlbG9hZChcImNvbHVtbnNcIilcbiAgICAgIC5maXJzdCgpXG5cbiAgICByZXR1cm4gdGFibGVTZXR0aW5nXG4gIH1cblxuICBjdXJyZW50VXNlcklkT3JGYWxsYmFjaygpIHtcbiAgICBjb25zdCBjdXJyZW50VXNlciA9IHRoaXMuY3VycmVudFVzZXIoKVxuXG4gICAgaWYgKGN1cnJlbnRVc2VyKSByZXR1cm4gY3VycmVudFVzZXIuaWQoKVxuXG4gICAgcmV0dXJuIHRoaXMuYW5vbnltb3VzZVVzZXJJZCgpXG4gIH1cblxuICBjdXJyZW50VXNlclR5cGVPckZhbGxiYWNrKCkge1xuICAgIGNvbnN0IGN1cnJlbnRVc2VyID0gdGhpcy5jdXJyZW50VXNlcigpXG5cbiAgICBpZiAoY3VycmVudFVzZXIpIHJldHVybiBkaWdnKGN1cnJlbnRVc2VyLm1vZGVsQ2xhc3NEYXRhKCksIFwibmFtZVwiKVxuXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGFub255bW91c2VVc2VySWQoKSB7XG4gICAgY29uc3QgdmFyaWFibGVOYW1lID0gYEFwaU1ha2VyVGFibGVBbm9ueW1vdXNVc2VySWQtJHt0aGlzLmlkZW50aWZpZXIoKX1gXG5cbiAgICBpZiAoISh2YXJpYWJsZU5hbWUgaW4gbG9jYWxTdG9yYWdlKSkge1xuICAgICAgY29uc3QgZ2VuZXJhdGVkSWQgPSB1dWlkdjQoKVxuXG4gICAgICBsb2NhbFN0b3JhZ2VbdmFyaWFibGVOYW1lXSA9IGdlbmVyYXRlZElkXG4gICAgfVxuXG4gICAgcmV0dXJuIGRpZ2cobG9jYWxTdG9yYWdlLCB2YXJpYWJsZU5hbWUpXG4gIH1cblxuICBjcmVhdGVJbml0aWFsVGFibGVTZXR0aW5nID0gYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHRhYmxlU2V0dGluZ0RhdGEgPSB7XG4gICAgICBpZGVudGlmaWVyOiB0aGlzLmlkZW50aWZpZXIoKSxcbiAgICAgIHVzZXJfaWQ6IHRoaXMuY3VycmVudFVzZXJJZE9yRmFsbGJhY2soKSxcbiAgICAgIHVzZXJfdHlwZTogdGhpcy5jdXJyZW50VXNlclR5cGVPckZhbGxiYWNrKCksXG4gICAgICBjb2x1bW5zX2F0dHJpYnV0ZXM6IHt9XG4gICAgfVxuXG4gICAgY29uc3QgY29sdW1ucyA9IHRoaXMuY29sdW1ucygpXG5cbiAgICBmb3IgKGNvbnN0IGNvbHVtbktleSBpbiBjb2x1bW5zKSB7XG4gICAgICBjb25zdCBjb2x1bW4gPSBkaWdnKGNvbHVtbnMsIGNvbHVtbktleSlcbiAgICAgIGNvbnN0IGlkZW50aWZpZXIgPSBjb2x1bW5JZGVudGlmaWVyKGNvbHVtbilcbiAgICAgIGNvbnN0IGNvbHVtbkRhdGEgPSB0aGlzLmNvbHVtblNhdmVEYXRhKGNvbHVtbiwge2lkZW50aWZpZXIsIHBvc2l0aW9uOiBjb2x1bW5LZXl9KVxuXG4gICAgICB0YWJsZVNldHRpbmdEYXRhLmNvbHVtbnNfYXR0cmlidXRlc1tjb2x1bW5LZXldID0gY29sdW1uRGF0YVxuICAgIH1cblxuICAgIGNvbnN0IHRhYmxlU2V0dGluZyA9IG5ldyBUYWJsZVNldHRpbmcoKVxuICAgIGNvbnN0IHRhYmxlU2V0dGluZ0Zvcm1EYXRhID0gb2JqZWN0VG9Gb3JtRGF0YSh7dGFibGVfc2V0dGluZzogdGFibGVTZXR0aW5nRGF0YX0pXG5cbiAgICBhd2FpdCB0YWJsZVNldHRpbmcuc2F2ZVJhdyh0YWJsZVNldHRpbmdGb3JtRGF0YSlcblxuICAgIGNvbnN0IHJlbG9hZGVkVGFibGVTZXR0aW5nID0gYXdhaXQgdGhpcy5sb2FkVGFibGVTZXR0aW5nKClcblxuICAgIGlmICghcmVsb2FkZWRUYWJsZVNldHRpbmcpIHRocm93IG5ldyBFcnJvcihcIk5vIHJlbG9hZGVkVGFibGVTZXR0aW5nIHJldHVybmVkIGJ5IGxvYWRUYWJsZVNldHRpbmdcIilcblxuICAgIHJldHVybiByZWxvYWRlZFRhYmxlU2V0dGluZ1xuICB9XG5cbiAgY29sdW1uU2F2ZURhdGEoY29sdW1uLCB7aWRlbnRpZmllciwgcG9zaXRpb259KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGF0dHJpYnV0ZV9uYW1lOiBjb2x1bW4uYXR0cmlidXRlLFxuICAgICAgaWRlbnRpZmllcixcbiAgICAgIHBhdGg6IGNvbHVtbi5wYXRoLFxuICAgICAgcG9zaXRpb24sXG4gICAgICBzb3J0X2tleTogY29sdW1uLnNvcnRLZXksXG4gICAgICB2aXNpYmxlOiBudWxsXG4gICAgfVxuICB9XG5cbiAgdXBkYXRlVGFibGVTZXR0aW5nID0gYXN5bmMgKHRhYmxlU2V0dGluZykgPT4ge1xuICAgIGNvbnN0IGNoYW5nZWRBdHRyaWJ1dGVzTGlzdCA9IFtcImF0dHJpYnV0ZU5hbWVcIiwgXCJzb3J0S2V5XCJdXG4gICAgY29uc3QgY29sdW1ucyA9IHRoaXMuY29sdW1ucygpXG4gICAgY29uc3QgY29sdW1uc0RhdGEgPSB7fVxuICAgIGNvbnN0IHRhYmxlU2V0dGluZ0RhdGEgPSB7Y29sdW1uc19hdHRyaWJ1dGVzOiBjb2x1bW5zRGF0YX1cbiAgICBsZXQgY29sdW1uc0tleUNvdW50ID0gMFxuICAgIGxldCBjaGFuZ2VkID0gZmFsc2VcblxuICAgIC8vIEFkZCBtaXNzaW5nIGNvbHVtbnNcbiAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiBjb2x1bW5zKSB7XG4gICAgICBjb25zdCBpZGVudGlmaWVyID0gY29sdW1uSWRlbnRpZmllcihjb2x1bW4pXG4gICAgICBjb25zdCB0YWJsZVNldHRpbmdDb2x1bW4gPSB0YWJsZVNldHRpbmcuY29sdW1ucygpLmxvYWRlZCgpLmZpbmQoKHRhYmxlU2V0dGluZ0NvbHVtbikgPT4gdGFibGVTZXR0aW5nQ29sdW1uLmlkZW50aWZpZXIoKSA9PSBpZGVudGlmaWVyKVxuXG4gICAgICBpZiAoIXRhYmxlU2V0dGluZ0NvbHVtbikge1xuICAgICAgICBjb25zdCBjb2x1bW5LZXkgPSArK2NvbHVtbnNLZXlDb3VudFxuXG4gICAgICAgIGNvbHVtbnNEYXRhW2NvbHVtbktleV0gPSB0aGlzLmNvbHVtblNhdmVEYXRhKFxuICAgICAgICAgIGNvbHVtbixcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZGVudGlmaWVyLFxuICAgICAgICAgICAgcG9zaXRpb246IHRhYmxlU2V0dGluZy5jb2x1bW5zKCkubG9hZGVkKCkubGVuZ3RoICsgY29sdW1uS2V5XG4gICAgICAgICAgfVxuICAgICAgICApXG5cbiAgICAgICAgbG9nZ2VyLmRlYnVnKCgpID0+IGBDaGFuZ2VkIGJlY2F1c2Ugb2YgbmV3IGNvbHVtbjogJHtjb2x1bW4ubGFiZWx9YClcbiAgICAgICAgY2hhbmdlZCA9IHRydWVcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHRhYmxlU2V0dGluZ0NvbHVtbiBvZiB0YWJsZVNldHRpbmcuY29sdW1ucygpLmxvYWRlZCgpKSB7XG4gICAgICBjb25zdCBjb2x1bW4gPSBjb2x1bW5zLmZpbmQoKGNvbHVtbikgPT4gY29sdW1uSWRlbnRpZmllcihjb2x1bW4pID09IHRhYmxlU2V0dGluZ0NvbHVtbi5pZGVudGlmaWVyKCkpXG5cbiAgICAgIGlmIChjb2x1bW4pIHtcbiAgICAgICAgLy8gVE9ETzogVXBkYXRlIGNvbHVtbiBpZiBjaGFuZ2VkXG4gICAgICAgIGxldCBjb2x1bW5DaGFuZ2VkID0gZmFsc2VcblxuICAgICAgICBmb3IgKGNvbnN0IGNoYW5nZWRBdHRyaWJ1dGUgb2YgY2hhbmdlZEF0dHJpYnV0ZXNMaXN0KSB7XG4gICAgICAgICAgbGV0IGNvbHVtbkF0dHJpYnV0ZU5hbWVcblxuICAgICAgICAgIGlmIChjaGFuZ2VkQXR0cmlidXRlID09IFwiYXR0cmlidXRlTmFtZVwiKSB7XG4gICAgICAgICAgICBjb2x1bW5BdHRyaWJ1dGVOYW1lID0gXCJhdHRyaWJ1dGVcIlxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb2x1bW5BdHRyaWJ1dGVOYW1lID0gY2hhbmdlZEF0dHJpYnV0ZVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IG9sZEF0dHJpYnV0ZVZhbHVlID0gdGFibGVTZXR0aW5nQ29sdW1uW2NoYW5nZWRBdHRyaWJ1dGVdKClcbiAgICAgICAgICBjb25zdCBuZXdBdHRyaWJ1dGVWYWx1ZSA9IGNvbHVtbltjb2x1bW5BdHRyaWJ1dGVOYW1lXVxuXG4gICAgICAgICAgaWYgKG9sZEF0dHJpYnV0ZVZhbHVlICE9IG5ld0F0dHJpYnV0ZVZhbHVlKSB7XG4gICAgICAgICAgICBsb2dnZXIuZGVidWcoKCkgPT4gYCR7Y2hhbmdlZEF0dHJpYnV0ZX0gY2hhbmdlZCBmcm9tICR7b2xkQXR0cmlidXRlVmFsdWV9IHRvICR7bmV3QXR0cmlidXRlVmFsdWV9IG9uIGNvbHVtbjogJHtjb2x1bW4ubGFiZWx9YClcbiAgICAgICAgICAgIGNvbHVtbkNoYW5nZWQgPSB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY29sdW1uUGF0aEFzU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoY29sdW1uLnBhdGgpXG4gICAgICAgIGNvbnN0IHRhYmxlU2V0dGluZ0NvbHVtblBhdGhBc1N0cmluZyA9IHRhYmxlU2V0dGluZ0NvbHVtbi5wYXRoKClcblxuICAgICAgICBpZiAoY29sdW1uUGF0aEFzU3RyaW5nICE9IHRhYmxlU2V0dGluZ0NvbHVtblBhdGhBc1N0cmluZykge1xuICAgICAgICAgIGxvZ2dlci5kZWJ1ZygoKSA9PiBgUGF0aCBjaGFuZ2VkIG9uICR7Y29sdW1uLmxhYmVsfSBmcm9tICR7Y29sdW1uUGF0aEFzU3RyaW5nfSB0byAke3RhYmxlU2V0dGluZ0NvbHVtblBhdGhBc1N0cmluZ31gKVxuICAgICAgICAgIGNvbHVtbkNoYW5nZWQgPSB0cnVlXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY29sdW1uQ2hhbmdlZCkge1xuICAgICAgICAgIGNvbnN0IGNvbHVtbktleSA9ICsrY29sdW1uc0tleUNvdW50XG5cbiAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZVxuICAgICAgICAgIGNvbHVtbnNEYXRhW2NvbHVtbktleV0gPSB7XG4gICAgICAgICAgICBhdHRyaWJ1dGVfbmFtZTogY29sdW1uLmF0dHJpYnV0ZU5hbWUsXG4gICAgICAgICAgICBpZDogdGFibGVTZXR0aW5nQ29sdW1uLmlkKCksXG4gICAgICAgICAgICBwYXRoOiBjb2x1bW4ucGF0aCxcbiAgICAgICAgICAgIHNvcnRfa2V5OiBjb2x1bW4uc29ydEtleVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gUmVtb3ZlZCBzYXZlZCBjb2x1bW5zIG5vIGxvbmdlciBmb3VuZFxuICAgICAgICBjb25zdCBjb2x1bW5LZXkgPSArK2NvbHVtbnNLZXlDb3VudFxuXG4gICAgICAgIGNvbHVtbnNEYXRhW2NvbHVtbktleV0gPSB7XG4gICAgICAgICAgaWQ6IHRhYmxlU2V0dGluZ0NvbHVtbi5pZCgpLFxuICAgICAgICAgIF9kZXN0cm95OiB0cnVlXG4gICAgICAgIH1cbiAgICAgICAgY2hhbmdlZCA9IHRydWVcblxuICAgICAgICBsb2dnZXIuZGVidWcoKCkgPT4gYENvbHVtbiBnb3QgcmVtb3ZlZDogJHt0YWJsZVNldHRpbmdDb2x1bW4uaWRlbnRpZmllcigpfWApXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZWQpIHtcbiAgICAgIGNvbnN0IHRhYmxlU2V0dGluZ0Zvcm1EYXRhID0gb2JqZWN0VG9Gb3JtRGF0YSh7dGFibGVfc2V0dGluZzogdGFibGVTZXR0aW5nRGF0YX0pXG5cbiAgICAgIGF3YWl0IHRhYmxlU2V0dGluZy5zYXZlUmF3KHRhYmxlU2V0dGluZ0Zvcm1EYXRhKVxuICAgIH1cblxuICAgIHJldHVybiB0YWJsZVNldHRpbmdcbiAgfVxufVxuIl19
|
|
231
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtc2V0dGluZ3MuanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbInRhYmxlL3RhYmxlLXNldHRpbmdzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG1HQUFtRztBQUNuRyxPQUFPLGdCQUFnQixNQUFNLHdCQUF3QixDQUFBO0FBQ3JELE9BQU8sYUFBYSxNQUFNLHFCQUFxQixDQUFBO0FBQy9DLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxXQUFXLENBQUE7QUFDOUIsT0FBTyxLQUFLLFVBQVUsTUFBTSxZQUFZLENBQUE7QUFDeEMsT0FBTyxNQUFNLE1BQU0sY0FBYyxDQUFBO0FBQ2pDLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLFlBQVksQ0FBQTtBQUM1QyxPQUFPLEVBQUMsU0FBUyxJQUFJLGdCQUFnQixFQUFDLE1BQU0sb0JBQW9CLENBQUE7QUFDaEUsbUJBQW1CO0FBQ25CLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxXQUFXLENBQUE7QUFDdEMsbUJBQW1CO0FBQ25CLE9BQU8sRUFBQyxFQUFFLElBQUksTUFBTSxFQUFDLE1BQU0sTUFBTSxDQUFBO0FBRWpDLE1BQU0sTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLEVBQUMsSUFBSSxFQUFFLDBCQUEwQixFQUFDLENBQUMsQ0FBQTtBQUU3RCwrQ0FBK0M7QUFDL0MsTUFBTSxrQkFBa0IsR0FBRyxFQUFFLENBQUE7QUFFN0IseUNBQXlDO0FBQ3pDLE1BQU0sQ0FBQyxPQUFPLE9BQU8scUJBQXFCO0lBQ3hDLG1CQUFtQjtJQUNuQixZQUFZLEVBQUMsS0FBSyxFQUFDO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO1FBQ2xCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFBO0lBQzdCLENBQUM7SUFFRCw0QkFBNEI7SUFDNUIsb0JBQW9CO1FBQ2xCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQUVwQyxJQUFJLENBQUMsQ0FB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YUFBYTt3QkFDcEMsRUFBRSxFQUFFLGtCQUFrQixDQUFDLEVBQUUsRUFBRTt3QkFDM0IsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO3dCQUNqQixRQUFRLEVBQUUsTUFBTSxDQUFDLE9BQU87cUJBQ3pCLENBQUE7Z0JBQ0gsQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTix3Q0FBd0M7Z0JBQ3hDLE1BQU0sU0FBUyxHQUFHLEVBQUUsZUFBZSxDQUFBO2dCQUVuQyxXQUFXLENBQUMsU0FBUyxDQUFDLEdBQUc7b0JBQ3ZCLEVBQUUsRUFBRSxrQkFBa0IsQ0FBQyxFQUFFLEVBQUU7b0JBQzNCLFFBQVEsRUFBRSxJQUFJO2lCQUNmLENBQUE7Z0JBQ0QsT0FBTyxHQUFHLElBQUksQ0FBQTtnQkFFZCxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUE7WUFDOUUsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osTUFBTSxvQkFBb0IsR0FBRyxnQkFBZ0IsQ0FBQyxFQUFDLGFBQWEsRUFBRSxnQkFBZ0IsRUFBQyxDQUFDLENBQUE7WUFFaEYsTUFBTSxZQUFZLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUE7UUFDbEQsQ0FBQztRQUVELE9BQU8sWUFBWSxDQUFBO0lBQ3JCLENBQUMsQ0FBQTtDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgYXJyb3ctYm9keS1zdHlsZSwgaW1wb3J0L25vLXVucmVzb2x2ZWQsIG5ld2xpbmUtcGVyLWNoYWluZWQtY2FsbCwgc29ydC1pbXBvcnRzICovXG5pbXBvcnQgY29sdW1uSWRlbnRpZmllciBmcm9tIFwiLi9jb2x1bW4taWRlbnRpZmllci5qc1wiXG5pbXBvcnQgY29sdW1uVmlzaWJsZSBmcm9tIFwiLi9jb2x1bW4tdmlzaWJsZS5qc1wiXG5pbXBvcnQge2RpZ2d9IGZyb20gXCJkaWdnZXJpemVcIlxuaW1wb3J0ICogYXMgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiXG5pbXBvcnQgTG9nZ2VyIGZyb20gXCIuLi9sb2dnZXIuanNcIlxuaW1wb3J0IHtSZWFkZXJzV3JpdGVyTG9ja30gZnJvbSBcImVwaWMtbG9ja3NcIlxuaW1wb3J0IHtzZXJpYWxpemUgYXMgb2JqZWN0VG9Gb3JtRGF0YX0gZnJvbSBcIm9iamVjdC10by1mb3JtZGF0YVwiXG4vLyBAdHMtZXhwZWN0LWVycm9yXG5pbXBvcnQge1RhYmxlU2V0dGluZ30gZnJvbSBcIm1vZGVscy5qc1wiXG4vLyBAdHMtZXhwZWN0LWVycm9yXG5pbXBvcnQge3Y0IGFzIHV1aWR2NH0gZnJvbSBcInV1aWRcIlxuXG5jb25zdCBsb2dnZXIgPSBuZXcgTG9nZ2VyKHtuYW1lOiBcIkFwaU1ha2VyIC8gVGFibGVTZXR0aW5nc1wifSlcblxuLy8gSGF2ZSBhIGxvY2sgZm9yIGVhY2ggdW5pcXVlIHRhYmxlIGlkZW50aWZpZXJcbmNvbnN0IHRhYmxlU2V0dGluZ3NMb2NrcyA9IHt9XG5cbi8qKiBQZXJzaXN0ZW50IHRhYmxlIHNldHRpbmdzIG1hbmFnZXIuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBcGlNYWtlclRhYmxlU2V0dGluZ3Mge1xuICAvKiogQ29uc3RydWN0b3IuICovXG4gIGNvbnN0cnVjdG9yKHt0YWJsZX0pIHtcbiAgICB0aGlzLnRhYmxlID0gdGFibGVcbiAgICB0aGlzLnNldFRhYmxlU2V0dGluZ3NMb2NrKClcbiAgfVxuXG4gIC8qKiBzZXRUYWJsZVNldHRpbmdzTG9jay4gKi9cbiAgc2V0VGFibGVTZXR0aW5nc0xvY2soKSB7XG4gICAgY29uc3QgaWRlbnRpZmllciA9IHRoaXMuaWRlbnRpZmllcigpXG5cbiAgICBpZiAoIShpZGVudGlmaWVyIGluIHRhYmxlU2V0dGluZ3NMb2NrcykpIHtcbiAgICAgIHRhYmxlU2V0dGluZ3NMb2Nrc1tpZGVudGlmaWVyXSA9IG5ldyBSZWFkZXJzV3JpdGVyTG9jaygpXG4gICAgfVxuXG4gICAgdGhpcy50YWJsZVNldHRpbmdzTG9jayA9IGRpZ2codGFibGVTZXR0aW5nc0xvY2tzLCBpZGVudGlmaWVyKVxuICB9XG5cbiAgLyoqIGNvbHVtbnMuICovXG4gIGNvbHVtbnMgPSAoKSA9PiBkaWdnKHRoaXMsIFwidGFibGVcIiwgXCJjb2x1bW5zQXNBcnJheVwiKSgpXG5cbiAgLyoqIGN1cnJlbnRVc2VyLiAqL1xuICBjdXJyZW50VXNlciA9ICgpID0+IGRpZ2codGhpcywgXCJ0YWJsZVwiLCBcInByb3BzXCIsIFwiY3VycmVudFVzZXJcIilcblxuICAvKiogaWRlbnRpZmllci4gKi9cbiAgaWRlbnRpZmllciA9ICgpID0+IGRpZ2codGhpcywgXCJ0YWJsZVwiLCBcInN0YXRlXCIsIFwiaWRlbnRpZmllclwiKVxuXG4gIC8qKiBwcmVwYXJlZENvbHVtbnMuICovXG4gIHByZXBhcmVkQ29sdW1ucyA9ICh0YWJsZVNldHRpbmcpID0+IHtcbiAgICBjb25zdCBjb2x1bW5zID0gdGhpcy50YWJsZS5jb2x1bW5zQXNBcnJheSgpXG4gICAgY29uc3Qgb3JkZXJlZCA9IHRoaXMub3JkZXJlZFRhYmxlU2V0dGluZ0NvbHVtbnModGFibGVTZXR0aW5nKVxuICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgIGNvbHVtbnM6IFtdLFxuICAgICAgcHJlbG9hZDogW11cbiAgICB9XG5cbiAgICBpZiAoIW9yZGVyZWQpIHJldHVyblxuXG4gICAgZm9yIChjb25zdCB0YWJsZVNldHRpbmdDb2x1bW4gb2Ygb3JkZXJlZCkge1xuICAgICAgY29uc3QgY29sdW1uID0gY29sdW1ucy5maW5kKChjb2x1bW4pID0+IGNvbHVtbklkZW50aWZpZXIoY29sdW1uKSA9PSB0YWJsZVNldHRpbmdDb2x1bW4uaWRlbnRpZmllcigpKVxuXG4gICAgICByZXN1bHQuY29sdW1ucy5wdXNoKHtjb2x1bW4sIHRhYmxlU2V0dGluZ0NvbHVtbn0pXG5cbiAgICAgIC8vIEFkZCBuZWVkZWQgcHJlbG9hZHMgaWYgY29sdW1uIGlzIHZpc2libGVcbiAgICAgIGlmIChjb2x1bW5WaXNpYmxlKGNvbHVtbiwgdGFibGVTZXR0aW5nQ29sdW1uKSkge1xuICAgICAgICBpZiAoY29sdW1uLnBhdGgpIHtcbiAgICAgICAgICBjb25zdCBwcmVsb2FkID0gY29sdW1uLnBhdGgubWFwKChwYXRoUGFydCkgPT4gaW5mbGVjdGlvbi51bmRlcnNjb3JlKHBhdGhQYXJ0KSkuam9pbihcIi5cIilcblxuICAgICAgICAgIGlmICghcmVzdWx0LnByZWxvYWQuaW5jbHVkZXMocHJlbG9hZCkpIHJlc3VsdC5wcmVsb2FkLnB1c2gocHJlbG9hZClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHRcbiAgfVxuXG4gIC8qKiBvcmRlcmVkVGFibGVTZXR0aW5nQ29sdW1ucy4gKi9cbiAgb3JkZXJlZFRhYmxlU2V0dGluZ0NvbHVtbnMgPSAodGFibGVTZXR0aW5nKSA9PiB7XG4gICAgcmV0dXJuIHRhYmxlU2V0dGluZ1xuICAgICAgLmNvbHVtbnMoKVxuICAgICAgLmxvYWRlZCgpXG4gICAgICAuc29ydCgodGFibGVTZXR0aW5nQ29sdW1uMSwgdGFibGVTZXR0aW5nQ29sdW1uMikgPT4gdGFibGVTZXR0aW5nQ29sdW1uMS5wb3NpdGlvbigpIC0gdGFibGVTZXR0aW5nQ29sdW1uMi5wb3NpdGlvbigpKVxuICB9XG5cbiAgLyoqIGxvYWRFeGlzdGluZ09yQ3JlYXRlVGFibGVTZXR0aW5ncy4gKi9cbiAgbG9hZEV4aXN0aW5nT3JDcmVhdGVUYWJsZVNldHRpbmdzID0gYXN5bmMgKCkgPT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLnRhYmxlU2V0dGluZ3NMb2NrLndyaXRlKGFzeW5jICgpID0+IHtcbiAgICAgIGxldCB0YWJsZVNldHRpbmcgPSBhd2FpdCB0aGlzLmxvYWRUYWJsZVNldHRpbmcoKVxuXG4gICAgICBpZiAodGFibGVTZXR0aW5nKSB7XG4gICAgICAgIHRhYmxlU2V0dGluZyA9IGF3YWl0IHRoaXMudXBkYXRlVGFibGVTZXR0aW5nKHRhYmxlU2V0dGluZylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRhYmxlU2V0dGluZyA9IGF3YWl0IHRoaXMuY3JlYXRlSW5pdGlhbFRhYmxlU2V0dGluZygpXG5cbiAgICAgICAgaWYgKCF0YWJsZVNldHRpbmcpIHRocm93IG5ldyBFcnJvcihcIk5vIHRhYmxlU2V0dGluZyByZXR1cm5lZCBieSBjcmVhdGVJbml0aWFsVGFibGVTZXR0aW5nXCIpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0YWJsZVNldHRpbmdcbiAgICB9KVxuICB9XG5cbiAgLyoqIGxvYWRUYWJsZVNldHRpbmcuICovXG4gIGxvYWRUYWJsZVNldHRpbmcgPSBhc3luYyAoKSA9PiB7XG4gICAgaWYgKCFUYWJsZVNldHRpbmcpIHRocm93IG5ldyBFcnJvcihcIlRhYmxlU2V0dGluZyBtb2RlbCBpc24ndCBnbG9iYWxseSBhdmFpbGFibGVcIilcblxuICAgIGNvbnN0IHRhYmxlU2V0dGluZyA9IGF3YWl0IFRhYmxlU2V0dGluZ1xuICAgICAgLnJhbnNhY2soe1xuICAgICAgICBpZGVudGlmaWVyX2VxOiB0aGlzLmlkZW50aWZpZXIoKSxcbiAgICAgICAgdXNlcl9pZF9lcTogdGhpcy5jdXJyZW50VXNlcklkT3JGYWxsYmFjaygpLFxuICAgICAgICB1c2VyX3R5cGVfZXE6IHRoaXMuY3VycmVudFVzZXJUeXBlT3JGYWxsYmFjaygpXG4gICAgICB9KVxuICAgICAgLnByZWxvYWQoXCJjb2x1bW5zXCIpXG4gICAgICAuZmlyc3QoKVxuXG4gICAgcmV0dXJuIHRhYmxlU2V0dGluZ1xuICB9XG5cbiAgLyoqIGN1cnJlbnRVc2VySWRPckZhbGxiYWNrLiAqL1xuICBjdXJyZW50VXNlcklkT3JGYWxsYmFjaygpIHtcbiAgICBjb25zdCBjdXJyZW50VXNlciA9IHRoaXMuY3VycmVudFVzZXIoKVxuXG4gICAgaWYgKGN1cnJlbnRVc2VyKSByZXR1cm4gY3VycmVudFVzZXIuaWQoKVxuXG4gICAgcmV0dXJuIHRoaXMuYW5vbnltb3VzZVVzZXJJZCgpXG4gIH1cblxuICAvKiogY3VycmVudFVzZXJUeXBlT3JGYWxsYmFjay4gKi9cbiAgY3VycmVudFVzZXJUeXBlT3JGYWxsYmFjaygpIHtcbiAgICBjb25zdCBjdXJyZW50VXNlciA9IHRoaXMuY3VycmVudFVzZXIoKVxuXG4gICAgaWYgKGN1cnJlbnRVc2VyKSByZXR1cm4gZGlnZyhjdXJyZW50VXNlci5tb2RlbENsYXNzRGF0YSgpLCBcIm5hbWVcIilcblxuICAgIHJldHVybiBudWxsXG4gIH1cblxuICAvKiogYW5vbnltb3VzZVVzZXJJZC4gKi9cbiAgYW5vbnltb3VzZVVzZXJJZCgpIHtcbiAgICBjb25zdCB2YXJpYWJsZU5hbWUgPSBgQXBpTWFrZXJUYWJsZUFub255bW91c1VzZXJJZC0ke3RoaXMuaWRlbnRpZmllcigpfWBcblxuICAgIGlmICghKHZhcmlhYmxlTmFtZSBpbiBsb2NhbFN0b3JhZ2UpKSB7XG4gICAgICBjb25zdCBnZW5lcmF0ZWRJZCA9IHV1aWR2NCgpXG5cbiAgICAgIGxvY2FsU3RvcmFnZVt2YXJpYWJsZU5hbWVdID0gZ2VuZXJhdGVkSWRcbiAgICB9XG5cbiAgICByZXR1cm4gZGlnZyhsb2NhbFN0b3JhZ2UsIHZhcmlhYmxlTmFtZSlcbiAgfVxuXG4gIC8qKiBjcmVhdGVJbml0aWFsVGFibGVTZXR0aW5nLiAqL1xuICBjcmVhdGVJbml0aWFsVGFibGVTZXR0aW5nID0gYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHRhYmxlU2V0dGluZ0RhdGEgPSB7XG4gICAgICBpZGVudGlmaWVyOiB0aGlzLmlkZW50aWZpZXIoKSxcbiAgICAgIHVzZXJfaWQ6IHRoaXMuY3VycmVudFVzZXJJZE9yRmFsbGJhY2soKSxcbiAgICAgIHVzZXJfdHlwZTogdGhpcy5jdXJyZW50VXNlclR5cGVPckZhbGxiYWNrKCksXG4gICAgICBjb2x1bW5zX2F0dHJpYnV0ZXM6IHt9XG4gICAgfVxuXG4gICAgY29uc3QgY29sdW1ucyA9IHRoaXMuY29sdW1ucygpXG5cbiAgICBmb3IgKGNvbnN0IGNvbHVtbktleSBpbiBjb2x1bW5zKSB7XG4gICAgICBjb25zdCBjb2x1bW4gPSBkaWdnKGNvbHVtbnMsIGNvbHVtbktleSlcbiAgICAgIGNvbnN0IGlkZW50aWZpZXIgPSBjb2x1bW5JZGVudGlmaWVyKGNvbHVtbilcbiAgICAgIGNvbnN0IGNvbHVtbkRhdGEgPSB0aGlzLmNvbHVtblNhdmVEYXRhKGNvbHVtbiwge2lkZW50aWZpZXIsIHBvc2l0aW9uOiBjb2x1bW5LZXl9KVxuXG4gICAgICB0YWJsZVNldHRpbmdEYXRhLmNvbHVtbnNfYXR0cmlidXRlc1tjb2x1bW5LZXldID0gY29sdW1uRGF0YVxuICAgIH1cblxuICAgIGNvbnN0IHRhYmxlU2V0dGluZyA9IG5ldyBUYWJsZVNldHRpbmcoKVxuICAgIGNvbnN0IHRhYmxlU2V0dGluZ0Zvcm1EYXRhID0gb2JqZWN0VG9Gb3JtRGF0YSh7dGFibGVfc2V0dGluZzogdGFibGVTZXR0aW5nRGF0YX0pXG5cbiAgICBhd2FpdCB0YWJsZVNldHRpbmcuc2F2ZVJhdyh0YWJsZVNldHRpbmdGb3JtRGF0YSlcblxuICAgIGNvbnN0IHJlbG9hZGVkVGFibGVTZXR0aW5nID0gYXdhaXQgdGhpcy5sb2FkVGFibGVTZXR0aW5nKClcblxuICAgIGlmICghcmVsb2FkZWRUYWJsZVNldHRpbmcpIHRocm93IG5ldyBFcnJvcihcIk5vIHJlbG9hZGVkVGFibGVTZXR0aW5nIHJldHVybmVkIGJ5IGxvYWRUYWJsZVNldHRpbmdcIilcblxuICAgIHJldHVybiByZWxvYWRlZFRhYmxlU2V0dGluZ1xuICB9XG5cbiAgLyoqIGNvbHVtblNhdmVEYXRhLiAqL1xuICBjb2x1bW5TYXZlRGF0YShjb2x1bW4sIHtpZGVudGlmaWVyLCBwb3NpdGlvbn0pIHtcbiAgICByZXR1cm4ge1xuICAgICAgYXR0cmlidXRlX25hbWU6IGNvbHVtbi5hdHRyaWJ1dGUsXG4gICAgICBpZGVudGlmaWVyLFxuICAgICAgcGF0aDogY29sdW1uLnBhdGgsXG4gICAgICBwb3NpdGlvbixcbiAgICAgIHNvcnRfa2V5OiBjb2x1bW4uc29ydEtleSxcbiAgICAgIHZpc2libGU6IG51bGxcbiAgICB9XG4gIH1cblxuICAvKiogdXBkYXRlVGFibGVTZXR0aW5nLiAqL1xuICB1cGRhdGVUYWJsZVNldHRpbmcgPSBhc3luYyAodGFibGVTZXR0aW5nKSA9PiB7XG4gICAgY29uc3QgY2hhbmdlZEF0dHJpYnV0ZXNMaXN0ID0gW1wiYXR0cmlidXRlTmFtZVwiLCBcInNvcnRLZXlcIl1cbiAgICBjb25zdCBjb2x1bW5zID0gdGhpcy5jb2x1bW5zKClcbiAgICBjb25zdCBjb2x1bW5zRGF0YSA9IHt9XG4gICAgY29uc3QgdGFibGVTZXR0aW5nRGF0YSA9IHtjb2x1bW5zX2F0dHJpYnV0ZXM6IGNvbHVtbnNEYXRhfVxuICAgIGxldCBjb2x1bW5zS2V5Q291bnQgPSAwXG4gICAgbGV0IGNoYW5nZWQgPSBmYWxzZVxuXG4gICAgLy8gQWRkIG1pc3NpbmcgY29sdW1uc1xuICAgIGZvciAoY29uc3QgY29sdW1uIG9mIGNvbHVtbnMpIHtcbiAgICAgIGNvbnN0IGlkZW50aWZpZXIgPSBjb2x1bW5JZGVudGlmaWVyKGNvbHVtbilcbiAgICAgIGNvbnN0IHRhYmxlU2V0dGluZ0NvbHVtbiA9IHRhYmxlU2V0dGluZy5jb2x1bW5zKCkubG9hZGVkKCkuZmluZCgodGFibGVTZXR0aW5nQ29sdW1uKSA9PiB0YWJsZVNldHRpbmdDb2x1bW4uaWRlbnRpZmllcigpID09IGlkZW50aWZpZXIpXG5cbiAgICAgIGlmICghdGFibGVTZXR0aW5nQ29sdW1uKSB7XG4gICAgICAgIGNvbnN0IGNvbHVtbktleSA9ICsrY29sdW1uc0tleUNvdW50XG5cbiAgICAgICAgY29sdW1uc0RhdGFbY29sdW1uS2V5XSA9IHRoaXMuY29sdW1uU2F2ZURhdGEoXG4gICAgICAgICAgY29sdW1uLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkZW50aWZpZXIsXG4gICAgICAgICAgICBwb3NpdGlvbjogdGFibGVTZXR0aW5nLmNvbHVtbnMoKS5sb2FkZWQoKS5sZW5ndGggKyBjb2x1bW5LZXlcbiAgICAgICAgICB9XG4gICAgICAgIClcblxuICAgICAgICBsb2dnZXIuZGVidWcoKCkgPT4gYENoYW5nZWQgYmVjYXVzZSBvZiBuZXcgY29sdW1uOiAke2NvbHVtbi5sYWJlbH1gKVxuICAgICAgICBjaGFuZ2VkID0gdHJ1ZVxuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAoY29uc3QgdGFibGVTZXR0aW5nQ29sdW1uIG9mIHRhYmxlU2V0dGluZy5jb2x1bW5zKCkubG9hZGVkKCkpIHtcbiAgICAgIGNvbnN0IGNvbHVtbiA9IGNvbHVtbnMuZmluZCgoY29sdW1uKSA9PiBjb2x1bW5JZGVudGlmaWVyKGNvbHVtbikgPT0gdGFibGVTZXR0aW5nQ29sdW1uLmlkZW50aWZpZXIoKSlcblxuICAgICAgaWYgKGNvbHVtbikge1xuICAgICAgICAvLyBUT0RPOiBVcGRhdGUgY29sdW1uIGlmIGNoYW5nZWRcbiAgICAgICAgbGV0IGNvbHVtbkNoYW5nZWQgPSBmYWxzZVxuXG4gICAgICAgIGZvciAoY29uc3QgY2hhbmdlZEF0dHJpYnV0ZSBvZiBjaGFuZ2VkQXR0cmlidXRlc0xpc3QpIHtcbiAgICAgICAgICBsZXQgY29sdW1uQXR0cmlidXRlTmFtZVxuXG4gICAgICAgICAgaWYgKGNoYW5nZWRBdHRyaWJ1dGUgPT0gXCJhdHRyaWJ1dGVOYW1lXCIpIHtcbiAgICAgICAgICAgIGNvbHVtbkF0dHJpYnV0ZU5hbWUgPSBcImF0dHJpYnV0ZVwiXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbHVtbkF0dHJpYnV0ZU5hbWUgPSBjaGFuZ2VkQXR0cmlidXRlXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3Qgb2xkQXR0cmlidXRlVmFsdWUgPSB0YWJsZVNldHRpbmdDb2x1bW5bY2hhbmdlZEF0dHJpYnV0ZV0oKVxuICAgICAgICAgIGNvbnN0IG5ld0F0dHJpYnV0ZVZhbHVlID0gY29sdW1uW2NvbHVtbkF0dHJpYnV0ZU5hbWVdXG5cbiAgICAgICAgICBpZiAob2xkQXR0cmlidXRlVmFsdWUgIT0gbmV3QXR0cmlidXRlVmFsdWUpIHtcbiAgICAgICAgICAgIGxvZ2dlci5kZWJ1ZygoKSA9PiBgJHtjaGFuZ2VkQXR0cmlidXRlfSBjaGFuZ2VkIGZyb20gJHtvbGRBdHRyaWJ1dGVWYWx1ZX0gdG8gJHtuZXdBdHRyaWJ1dGVWYWx1ZX0gb24gY29sdW1uOiAke2NvbHVtbi5sYWJlbH1gKVxuICAgICAgICAgICAgY29sdW1uQ2hhbmdlZCA9IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb2x1bW5QYXRoQXNTdHJpbmcgPSBKU09OLnN0cmluZ2lmeShjb2x1bW4ucGF0aClcbiAgICAgICAgY29uc3QgdGFibGVTZXR0aW5nQ29sdW1uUGF0aEFzU3RyaW5nID0gdGFibGVTZXR0aW5nQ29sdW1uLnBhdGgoKVxuXG4gICAgICAgIGlmIChjb2x1bW5QYXRoQXNTdHJpbmcgIT0gdGFibGVTZXR0aW5nQ29sdW1uUGF0aEFzU3RyaW5nKSB7XG4gICAgICAgICAgbG9nZ2VyLmRlYnVnKCgpID0+IGBQYXRoIGNoYW5nZWQgb24gJHtjb2x1bW4ubGFiZWx9IGZyb20gJHtjb2x1bW5QYXRoQXNTdHJpbmd9IHRvICR7dGFibGVTZXR0aW5nQ29sdW1uUGF0aEFzU3RyaW5nfWApXG4gICAgICAgICAgY29sdW1uQ2hhbmdlZCA9IHRydWVcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb2x1bW5DaGFuZ2VkKSB7XG4gICAgICAgICAgY29uc3QgY29sdW1uS2V5ID0gKytjb2x1bW5zS2V5Q291bnRcblxuICAgICAgICAgIGNoYW5nZWQgPSB0cnVlXG4gICAgICAgICAgY29sdW1uc0RhdGFbY29sdW1uS2V5XSA9IHtcbiAgICAgICAgICAgIGF0dHJpYnV0ZV9uYW1lOiBjb2x1bW4uYXR0cmlidXRlTmFtZSxcbiAgICAgICAgICAgIGlkOiB0YWJsZVNldHRpbmdDb2x1bW4uaWQoKSxcbiAgICAgICAgICAgIHBhdGg6IGNvbHVtbi5wYXRoLFxuICAgICAgICAgICAgc29ydF9rZXk6IGNvbHVtbi5zb3J0S2V5XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBSZW1vdmVkIHNhdmVkIGNvbHVtbnMgbm8gbG9uZ2VyIGZvdW5kXG4gICAgICAgIGNvbnN0IGNvbHVtbktleSA9ICsrY29sdW1uc0tleUNvdW50XG5cbiAgICAgICAgY29sdW1uc0RhdGFbY29sdW1uS2V5XSA9IHtcbiAgICAgICAgICBpZDogdGFibGVTZXR0aW5nQ29sdW1uLmlkKCksXG4gICAgICAgICAgX2Rlc3Ryb3k6IHRydWVcbiAgICAgICAgfVxuICAgICAgICBjaGFuZ2VkID0gdHJ1ZVxuXG4gICAgICAgIGxvZ2dlci5kZWJ1ZygoKSA9PiBgQ29sdW1uIGdvdCByZW1vdmVkOiAke3RhYmxlU2V0dGluZ0NvbHVtbi5pZGVudGlmaWVyKCl9YClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlZCkge1xuICAgICAgY29uc3QgdGFibGVTZXR0aW5nRm9ybURhdGEgPSBvYmplY3RUb0Zvcm1EYXRhKHt0YWJsZV9zZXR0aW5nOiB0YWJsZVNldHRpbmdEYXRhfSlcblxuICAgICAgYXdhaXQgdGFibGVTZXR0aW5nLnNhdmVSYXcodGFibGVTZXR0aW5nRm9ybURhdGEpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRhYmxlU2V0dGluZ1xuICB9XG59XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-sorting.d.ts","sourceRoot":"/src/","sources":["table/use-sorting.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-sorting.d.ts","sourceRoot":"/src/","sources":["table/use-sorting.js"],"names":[],"mappings":"AAeA;;;;;;;;;;GAUG;AACH,6DATG;IAAqB,aAAa,EAA1B,MAAM;IACmC,KAAK,EAA9C,uCAAkC;CAC1C,GAAU;IACR,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAqBH"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
/* eslint-disable func-style */
|
|
2
2
|
import { camelize } from "inflection";
|
|
3
3
|
import useQueryParams from "on-location-changed/build/use-query-params.js";
|
|
4
|
-
/**
|
|
5
|
-
* @returns {object}
|
|
6
|
-
*/
|
|
4
|
+
/** @returns {object} */
|
|
7
5
|
function calculateQParams(defaultParams, queryParams, searchKey) {
|
|
8
6
|
if (searchKey in queryParams) {
|
|
9
7
|
return JSON.parse(queryParams[searchKey]);
|
|
@@ -41,4 +39,4 @@ export default function useSorting({ defaultParams, query }) {
|
|
|
41
39
|
sortMode
|
|
42
40
|
};
|
|
43
41
|
}
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLXNvcnRpbmcuanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbInRhYmxlL3VzZS1zb3J0aW5nLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sWUFBWSxDQUFBO0FBQ25DLE9BQU8sY0FBYyxNQUFNLCtDQUErQyxDQUFBO0FBRTFFLHdCQUF3QjtBQUN4QixTQUFTLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsU0FBUztJQUM3RCxJQUFJLFNBQVMsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUE7SUFDM0MsQ0FBQztTQUFNLElBQUksYUFBYSxFQUFFLENBQUM7UUFDekIsT0FBTyxFQUFDLEdBQUcsYUFBYSxFQUFDLENBQUE7SUFDM0IsQ0FBQztJQUVELE9BQU8sRUFBRSxDQUFBO0FBQ1gsQ0FBQztBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLENBQUMsT0FBTyxVQUFVLFVBQVUsQ0FBQyxFQUFDLGFBQWEsRUFBRSxLQUFLLEVBQUM7SUFDdkQsTUFBTSxXQUFXLEdBQUcsY0FBYyxFQUFFLENBQUE7SUFDcEMsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxTQUFTLElBQUksR0FBRyxDQUFBO0lBQ2xELE1BQU0sT0FBTyxHQUFHLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUE7SUFDdkUsSUFBSSxjQUFjLENBQUE7SUFFbEIsSUFBSSxPQUFPLE9BQU8sQ0FBQyxDQUFDLElBQUksUUFBUSxFQUFFLENBQUM7UUFDakMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUE7SUFDM0QsQ0FBQztJQUVELE1BQU0sYUFBYSxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBO0lBQy9FLE1BQU0sUUFBUSxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUE7SUFFakUsT0FBTztRQUNMLE9BQU87UUFDUCxTQUFTO1FBQ1QsYUFBYTtRQUNiLFFBQVE7S0FDVCxDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGZ1bmMtc3R5bGUgKi9cbmltcG9ydCB7Y2FtZWxpemV9IGZyb20gXCJpbmZsZWN0aW9uXCJcbmltcG9ydCB1c2VRdWVyeVBhcmFtcyBmcm9tIFwib24tbG9jYXRpb24tY2hhbmdlZC9idWlsZC91c2UtcXVlcnktcGFyYW1zLmpzXCJcblxuLyoqIEByZXR1cm5zIHtvYmplY3R9ICovXG5mdW5jdGlvbiBjYWxjdWxhdGVRUGFyYW1zKGRlZmF1bHRQYXJhbXMsIHF1ZXJ5UGFyYW1zLCBzZWFyY2hLZXkpIHtcbiAgaWYgKHNlYXJjaEtleSBpbiBxdWVyeVBhcmFtcykge1xuICAgIHJldHVybiBKU09OLnBhcnNlKHF1ZXJ5UGFyYW1zW3NlYXJjaEtleV0pXG4gIH0gZWxzZSBpZiAoZGVmYXVsdFBhcmFtcykge1xuICAgIHJldHVybiB7Li4uZGVmYXVsdFBhcmFtc31cbiAgfVxuXG4gIHJldHVybiB7fVxufVxuXG4vKipcbiAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzXG4gKiBAcGFyYW0ge29iamVjdH0gYXJncy5kZWZhdWx0UGFyYW1zXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4uL2NvbGxlY3Rpb24uanNcIikuZGVmYXVsdH0gYXJncy5xdWVyeVxuICogQHJldHVybnMge3tcbiAqICAgcVBhcmFtczogb2JqZWN0XG4gKiAgIHNlYXJjaEtleTogc3RyaW5nLFxuICogICBzb3J0QXR0cmlidXRlOiBzdHJpbmcsXG4gKiAgIHNvcnRNb2RlOiBzdHJpbmdcbiAqIH19XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVzZVNvcnRpbmcoe2RlZmF1bHRQYXJhbXMsIHF1ZXJ5fSkge1xuICBjb25zdCBxdWVyeVBhcmFtcyA9IHVzZVF1ZXJ5UGFyYW1zKClcbiAgY29uc3Qgc2VhcmNoS2V5ID0gcXVlcnkucXVlcnlBcmdzLnNlYXJjaEtleSB8fCBcInFcIlxuICBjb25zdCBxUGFyYW1zID0gY2FsY3VsYXRlUVBhcmFtcyhkZWZhdWx0UGFyYW1zLCBxdWVyeVBhcmFtcywgc2VhcmNoS2V5KVxuICBsZXQgbWF0Y2hTb3J0UGFyYW1cblxuICBpZiAodHlwZW9mIHFQYXJhbXMucyA9PSBcInN0cmluZ1wiKSB7XG4gICAgbWF0Y2hTb3J0UGFyYW0gPSBxUGFyYW1zLnM/Lm1hdGNoKC9eKC4rPykoIGFzY3wgZGVzY3wpJC8pXG4gIH1cblxuICBjb25zdCBzb3J0QXR0cmlidXRlID0gbWF0Y2hTb3J0UGFyYW0gPyBjYW1lbGl6ZShtYXRjaFNvcnRQYXJhbVsxXSwgdHJ1ZSkgOiBudWxsXG4gIGNvbnN0IHNvcnRNb2RlID0gbWF0Y2hTb3J0UGFyYW0gPyBtYXRjaFNvcnRQYXJhbVsyXS50cmltKCkgOiBudWxsXG5cbiAgcmV0dXJuIHtcbiAgICBxUGFyYW1zLFxuICAgIHNlYXJjaEtleSxcbiAgICBzb3J0QXR0cmlidXRlLFxuICAgIHNvcnRNb2RlXG4gIH1cbn1cbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translated-attributes.d.ts","sourceRoot":"/src/","sources":["translated-attributes.js"],"names":[],"mappings":"AAAA,2GAUC"}
|
|
1
|
+
{"version":3,"file":"translated-attributes.d.ts","sourceRoot":"/src/","sources":["translated-attributes.js"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,2GAUC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** Build translated attribute names per locale. */
|
|
1
2
|
export default function apiMakerTranslatedAttributes(attributeNames, availableLocales) {
|
|
2
3
|
const translatedAttributes = [];
|
|
3
4
|
for (const attribute of attributeNames) {
|
|
@@ -7,4 +8,4 @@ export default function apiMakerTranslatedAttributes(attributeNames, availableLo
|
|
|
7
8
|
}
|
|
8
9
|
return translatedAttributes;
|
|
9
10
|
}
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlZC1hdHRyaWJ1dGVzLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJ0cmFuc2xhdGVkLWF0dHJpYnV0ZXMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsbURBQW1EO0FBQ25ELE1BQU0sQ0FBQyxPQUFPLFVBQVUsNEJBQTRCLENBQUMsY0FBYyxFQUFFLGdCQUFnQjtJQUNuRixNQUFNLG9CQUFvQixHQUFHLEVBQUUsQ0FBQTtJQUUvQixLQUFLLE1BQU0sU0FBUyxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQ3ZDLEtBQUssTUFBTSxNQUFNLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUN0QyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQzVHLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxvQkFBb0IsQ0FBQTtBQUM3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIEJ1aWxkIHRyYW5zbGF0ZWQgYXR0cmlidXRlIG5hbWVzIHBlciBsb2NhbGUuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBhcGlNYWtlclRyYW5zbGF0ZWRBdHRyaWJ1dGVzKGF0dHJpYnV0ZU5hbWVzLCBhdmFpbGFibGVMb2NhbGVzKSB7XG4gIGNvbnN0IHRyYW5zbGF0ZWRBdHRyaWJ1dGVzID0gW11cblxuICBmb3IgKGNvbnN0IGF0dHJpYnV0ZSBvZiBhdHRyaWJ1dGVOYW1lcykge1xuICAgIGZvciAoY29uc3QgbG9jYWxlIG9mIGF2YWlsYWJsZUxvY2FsZXMpIHtcbiAgICAgIHRyYW5zbGF0ZWRBdHRyaWJ1dGVzLnB1c2goYCR7YXR0cmlidXRlfSR7bG9jYWxlLnN1YnN0cmluZygwLCAxKS50b1VwcGVyQ2FzZSgpfSR7bG9jYWxlLnN1YnN0cmluZygxLCA5OSl9YClcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJhbnNsYXRlZEF0dHJpYnV0ZXNcbn1cbiJdfQ==
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
+
/** Translated collections helper. */
|
|
1
2
|
export default class ApiMakerTranslatedCollections {
|
|
2
|
-
|
|
3
|
+
/**
|
|
4
|
+
* @param {typeof import("./base-model.js").default} modelClass
|
|
5
|
+
* @param {string} collectionName
|
|
6
|
+
* @returns {Array<any> | undefined}
|
|
7
|
+
*/
|
|
8
|
+
static get(modelClass: typeof import("./base-model.js").default, collectionName: string): Array<any> | undefined;
|
|
3
9
|
}
|
|
4
10
|
//# sourceMappingURL=translated-collections.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translated-collections.d.ts","sourceRoot":"/src/","sources":["translated-collections.js"],"names":[],"mappings":"AAOA;IACE,
|
|
1
|
+
{"version":3,"file":"translated-collections.d.ts","sourceRoot":"/src/","sources":["translated-collections.js"],"names":[],"mappings":"AAOA,qCAAqC;AACrC;IACE;;;;OAIG;IACH,uBAJW,cAAc,iBAAiB,EAAE,OAAO,kBACxC,MAAM,GACJ,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAQlC;CACF"}
|
|
@@ -3,7 +3,13 @@ import { digg } from "diggerize";
|
|
|
3
3
|
import I18nOnSteroids from "i18n-on-steroids";
|
|
4
4
|
// @ts-expect-error
|
|
5
5
|
import translatedCollectionsData from "translated-collections-data.json";
|
|
6
|
+
/** Translated collections helper. */
|
|
6
7
|
export default class ApiMakerTranslatedCollections {
|
|
8
|
+
/**
|
|
9
|
+
* @param {typeof import("./base-model.js").default} modelClass
|
|
10
|
+
* @param {string} collectionName
|
|
11
|
+
* @returns {Array<any> | undefined}
|
|
12
|
+
*/
|
|
7
13
|
static get(modelClass, collectionName) {
|
|
8
14
|
const locale = I18nOnSteroids.getCurrent().locale;
|
|
9
15
|
const modelClassName = digg(modelClass.modelClassData(), "name");
|
|
@@ -11,4 +17,4 @@ export default class ApiMakerTranslatedCollections {
|
|
|
11
17
|
return collection;
|
|
12
18
|
}
|
|
13
19
|
}
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlZC1jb2xsZWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIvc3JjLyIsInNvdXJjZXMiOlsidHJhbnNsYXRlZC1jb2xsZWN0aW9ucy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLFdBQVcsQ0FBQTtBQUM5QixPQUFPLGNBQWMsTUFBTSxrQkFBa0IsQ0FBQTtBQUU3QyxtQkFBbUI7QUFDbkIsT0FBTyx5QkFBeUIsTUFBTSxrQ0FBa0MsQ0FBQTtBQUV4RSxxQ0FBcUM7QUFDckMsTUFBTSxDQUFDLE9BQU8sT0FBTyw2QkFBNkI7SUFDaEQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxHQUFHLENBQUUsVUFBVSxFQUFFLGNBQWM7UUFDcEMsTUFBTSxNQUFNLEdBQUcsY0FBYyxDQUFDLFVBQVUsRUFBRSxDQUFDLE1BQU0sQ0FBQTtRQUNqRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFBO1FBQ2hFLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQyxDQUFBO1FBRTlHLE9BQU8sVUFBVSxDQUFBO0lBQ25CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC9uby11bnJlc29sdmVkLCBzb3J0LWltcG9ydHMgKi9cbmltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgSTE4bk9uU3Rlcm9pZHMgZnJvbSBcImkxOG4tb24tc3Rlcm9pZHNcIlxuXG4vLyBAdHMtZXhwZWN0LWVycm9yXG5pbXBvcnQgdHJhbnNsYXRlZENvbGxlY3Rpb25zRGF0YSBmcm9tIFwidHJhbnNsYXRlZC1jb2xsZWN0aW9ucy1kYXRhLmpzb25cIlxuXG4vKiogVHJhbnNsYXRlZCBjb2xsZWN0aW9ucyBoZWxwZXIuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBcGlNYWtlclRyYW5zbGF0ZWRDb2xsZWN0aW9ucyB7XG4gIC8qKlxuICAgKiBAcGFyYW0ge3R5cGVvZiBpbXBvcnQoXCIuL2Jhc2UtbW9kZWwuanNcIikuZGVmYXVsdH0gbW9kZWxDbGFzc1xuICAgKiBAcGFyYW0ge3N0cmluZ30gY29sbGVjdGlvbk5hbWVcbiAgICogQHJldHVybnMge0FycmF5PGFueT4gfCB1bmRlZmluZWR9XG4gICAqL1xuICBzdGF0aWMgZ2V0IChtb2RlbENsYXNzLCBjb2xsZWN0aW9uTmFtZSkge1xuICAgIGNvbnN0IGxvY2FsZSA9IEkxOG5PblN0ZXJvaWRzLmdldEN1cnJlbnQoKS5sb2NhbGVcbiAgICBjb25zdCBtb2RlbENsYXNzTmFtZSA9IGRpZ2cobW9kZWxDbGFzcy5tb2RlbENsYXNzRGF0YSgpLCBcIm5hbWVcIilcbiAgICBjb25zdCBjb2xsZWN0aW9uID0gZGlnZyh0cmFuc2xhdGVkQ29sbGVjdGlvbnNEYXRhLCBtb2RlbENsYXNzTmFtZSwgY29sbGVjdGlvbk5hbWUsIGxvY2FsZSwgXCJjb2xsZWN0aW9uX2FycmF5XCIpXG5cbiAgICByZXR1cm4gY29sbGVjdGlvblxuICB9XG59XG4iXX0=
|
|
@@ -7,7 +7,7 @@ export default class ApiMakerUpdatedAttribute extends React.PureComponent<any, a
|
|
|
7
7
|
componentDidMount(): void;
|
|
8
8
|
componentWillUnmount(): void;
|
|
9
9
|
connect(): void;
|
|
10
|
-
connectUpdated:
|
|
10
|
+
connectUpdated: import("./cable-subscription.js").default;
|
|
11
11
|
loadModelWithAttribute(): Promise<void>;
|
|
12
12
|
setAttribute(): void;
|
|
13
13
|
render(): any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updated-attribute.d.ts","sourceRoot":"/src/","sources":["updated-attribute.jsx"],"names":[],"mappings":"AAOA;IACE,sBAIE;IAEF,wBAKC;IAHC;;MAEC;IAGH,0BAGC;IAED,6BAKC;IAED,gBAWC;IAVC,
|
|
1
|
+
{"version":3,"file":"updated-attribute.d.ts","sourceRoot":"/src/","sources":["updated-attribute.jsx"],"names":[],"mappings":"AAOA;IACE,sBAIE;IAEF,wBAKC;IAHC;;MAEC;IAGH,0BAGC;IAED,6BAKC;IAED,gBAWC;IAVC,0DASE;IAIJ,wCAqBC;IAED,qBAgBC;IAED,cAIC;CACF;kBAxFiB,OAAO"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-can-can.d.ts","sourceRoot":"/src/","sources":["use-can-can.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-can-can.d.ts","sourceRoot":"/src/","sources":["use-can-can.js"],"names":[],"mappings":"AAmIA;;;;;;GAMG;AACH,qDANW,WAAkB,kCAG1B;IAA0B,KAAK,GAAvB,OAAO;CACf,GAAU,MAAM,CAalB;mBAnJkB,cAAc"}
|
package/build/use-can-can.js
CHANGED
|
@@ -3,7 +3,9 @@ import { useEffect, useMemo } from "react";
|
|
|
3
3
|
import CanCan from "./can-can.js";
|
|
4
4
|
import Devise from "./devise.js";
|
|
5
5
|
import useEventEmitter from "ya-use-event-emitter";
|
|
6
|
+
/** UseCanCanClass. */
|
|
6
7
|
class UseCanCanClass extends ShapeHook {
|
|
8
|
+
/** Constructor. */
|
|
7
9
|
constructor(props) {
|
|
8
10
|
super(props);
|
|
9
11
|
this.canCan = CanCan.current();
|
|
@@ -13,6 +15,7 @@ class UseCanCanClass extends ShapeHook {
|
|
|
13
15
|
this.dependencyKeyMap = new WeakMap();
|
|
14
16
|
this.dependencyKeyNextId = 1;
|
|
15
17
|
}
|
|
18
|
+
/** dependencyKeyFor. */
|
|
16
19
|
dependencyKeyFor(value) {
|
|
17
20
|
if (value === null)
|
|
18
21
|
return "null";
|
|
@@ -28,11 +31,13 @@ class UseCanCanClass extends ShapeHook {
|
|
|
28
31
|
}
|
|
29
32
|
return `${valueType}:ref:${this.dependencyKeyMap.get(value)}`;
|
|
30
33
|
}
|
|
34
|
+
/** dependencyListKey. */
|
|
31
35
|
dependencyListKey(list) {
|
|
32
36
|
if (!Array.isArray(list))
|
|
33
37
|
return this.dependencyKeyFor(list);
|
|
34
38
|
return list.map((value) => this.dependencyKeyFor(value)).join("|");
|
|
35
39
|
}
|
|
40
|
+
/** loadAbilities. */
|
|
36
41
|
loadAbilities = async (reloadKey) => {
|
|
37
42
|
const abilities = this.p.abilitiesCallback();
|
|
38
43
|
if (reloadKey === undefined) {
|
|
@@ -43,6 +48,7 @@ class UseCanCanClass extends ShapeHook {
|
|
|
43
48
|
}
|
|
44
49
|
this.setState({ lastUpdate: new Date() });
|
|
45
50
|
};
|
|
51
|
+
/** onDeviseChange. */
|
|
46
52
|
onDeviseChange = () => {
|
|
47
53
|
this.deviseReloadKey += 1;
|
|
48
54
|
if (this.p.debug) {
|
|
@@ -50,18 +56,21 @@ class UseCanCanClass extends ShapeHook {
|
|
|
50
56
|
}
|
|
51
57
|
this.loadAbilities(`devise:${this.deviseReloadKey}`);
|
|
52
58
|
};
|
|
59
|
+
/** onResetAbilities. */
|
|
53
60
|
onResetAbilities = () => {
|
|
54
61
|
if (this.p.debug) {
|
|
55
62
|
console.log("[useCanCan] onResetAbilities -> loadAbilities()");
|
|
56
63
|
}
|
|
57
64
|
this.loadAbilities();
|
|
58
65
|
};
|
|
66
|
+
/** onAbilitiesLoaded. */
|
|
59
67
|
onAbilitiesLoaded = () => {
|
|
60
68
|
if (this.p.debug) {
|
|
61
69
|
console.log("[useCanCan] onAbilitiesLoaded");
|
|
62
70
|
}
|
|
63
71
|
this.setState({ lastUpdate: new Date() });
|
|
64
72
|
};
|
|
73
|
+
/** setup. */
|
|
65
74
|
setup() {
|
|
66
75
|
this.useStates({
|
|
67
76
|
lastUpdate: () => new Date()
|
|
@@ -116,4 +125,4 @@ export default function useCanCan(abilitiesCallback, dependencies = undefined, o
|
|
|
116
125
|
const shapeHook = useShapeHook(UseCanCanClass, { abilitiesCallback, debug, dependencies });
|
|
117
126
|
return shapeHook.canCan;
|
|
118
127
|
}
|
|
119
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWNhbi1jYW4uanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbInVzZS1jYW4tY2FuLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFDLE1BQU0sbUJBQW1CLENBQUE7QUFDekQsT0FBTyxFQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUMsTUFBTSxPQUFPLENBQUE7QUFDeEMsT0FBTyxNQUFNLE1BQU0sY0FBYyxDQUFBO0FBQ2pDLE9BQU8sTUFBTSxNQUFNLGFBQWEsQ0FBQTtBQUNoQyxPQUFPLGVBQWUsTUFBTSxzQkFBc0IsQ0FBQTtBQUVsRCxNQUFNLGNBQWUsU0FBUSxTQUFTO0lBQ3BDLFlBQVksS0FBSztRQUNmLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNaLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFBO1FBQzlCLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUE7UUFDN0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUE7UUFDeEIsSUFBSSxDQUFDLDRCQUE0QixHQUFHLEtBQUssQ0FBQTtRQUN6QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQTtRQUNyQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxDQUFBO0lBQzlCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFLO1FBQ3BCLElBQUksS0FBSyxLQUFLLElBQUk7WUFBRSxPQUFPLE1BQU0sQ0FBQTtRQUNqQyxJQUFJLEtBQUssS0FBSyxTQUFTO1lBQUUsT0FBTyxXQUFXLENBQUE7UUFFM0MsTUFBTSxTQUFTLEdBQUcsT0FBTyxLQUFLLENBQUE7UUFFOUIsSUFBSSxTQUFTLEtBQUssUUFBUSxJQUFJLFNBQVMsS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUN2RCxPQUFPLEdBQUcsU0FBUyxJQUFJLE1BQU0sQ0FBQyxLQUFL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QUFFLGdCQUFnQixFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQTtRQUN2RSxlQUFlLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFFLGlCQUFpQixFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQTtRQUN4RSxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUE7UUFDaEYsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLGtCQUFrQixFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO0lBQ2hGLENBQUM7Q0FDRjtBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBQyxPQUFPLFVBQVUsU0FBUyxDQUFDLGlCQUFpQixFQUFFLFlBQVksR0FBRyxTQUFTLEVBQUUsT0FBTyxHQUFHLEVBQUU7SUFDekYsTUFBTSxFQUFDLEtBQUssR0FBRyxLQUFLLEVBQUUsR0FBRyxRQUFRLEVBQUMsR0FBRyxPQUFPLENBQUE7SUFDNUMsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUUxQyxJQUFJLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDbkYsQ0FBQztJQUVELE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxjQUFjLEVBQUUsRUFBQyxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFDLENBQUMsQ0FBQTtJQUV4RixPQUFPLFNBQVMsQ0FBQyxNQUFNLENBQUE7QUFDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U2hhcGVIb29rLCB1c2VTaGFwZUhvb2t9IGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZVwiXG5pbXBvcnQge3VzZUVmZmVjdCwgdXNlTWVtb30gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBDYW5DYW4gZnJvbSBcIi4vY2FuLWNhbi5qc1wiXG5pbXBvcnQgRGV2aXNlIGZyb20gXCIuL2RldmlzZS5qc1wiXG5pbXBvcnQgdXNlRXZlbnRFbWl0dGVyIGZyb20gXCJ5YS11c2UtZXZlbnQtZW1pdHRlclwiXG5cbmNsYXNzIFVzZUNhbkNhbkNsYXNzIGV4dGVuZHMgU2hhcGVIb29rIHtcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcylcbiAgICB0aGlzLmNhbkNhbiA9IENhbkNhbi5jdXJyZW50KClcbiAgICB0aGlzLmRlYnVnVG9rZW4gPSBTeW1ib2woXCJ1c2UtY2FuLWNhbi1kZWJ1Z1wiKVxuICAgIHRoaXMuZGV2aXNlUmVsb2FkS2V5ID0gMFxuICAgIHRoaXMubG9hZGVkV2l0aEN1c3RvbURlcGVuZGVuY2llcyA9IGZhbHNlXG4gICAgdGhpcy5kZXBlbmRlbmN5S2V5TWFwID0gbmV3IFdlYWtNYXAoKVxuICAgIHRoaXMuZGVwZW5kZW5jeUtleU5leHRJZCA9IDFcbiAgfVxuXG4gIGRlcGVuZGVuY3lLZXlGb3IodmFsdWUpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwpIHJldHVybiBcIm51bGxcIlxuICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gXCJ1bmRlZmluZWRcIlxuXG4gICAgY29uc3QgdmFsdWVUeXBlID0gdHlwZW9mIHZhbHVlXG5cbiAgICBpZiAodmFsdWVUeXBlICE9PSBcIm9iamVjdFwiICYmIHZhbHVlVHlwZSAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICByZXR1cm4gYCR7dmFsdWVUeXBlfToke1N0cmluZyh2YWx1ZSl9YFxuICAgIH1cblxuICAgIGlmICghdGhpcy5kZXBlbmRlbmN5S2V5TWFwLmhhcyh2YWx1ZSkpIHtcbiAgICAgIHRoaXMuZGVwZW5kZW5jeUtleU1hcC5zZXQodmFsdWUsIHRoaXMuZGVwZW5kZW5jeUtleU5leHRJZClcbiAgICAgIHRoaXMuZGVwZW5kZW5jeUtleU5leHRJZCArPSAxXG4gICAgfVxuXG4gICAgcmV0dXJuIGAke3ZhbHVlVHlwZX06cmVmOiR7dGhpcy5kZXBlbmRlbmN5S2V5TWFwLmdldCh2YWx1ZSl9YFxuICB9XG5cbiAgZGVwZW5kZW5jeUxpc3RLZXkobGlzdCkge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShsaXN0KSkgcmV0dXJuIHRoaXMuZGVwZW5kZW5jeUtleUZvcihsaXN0KVxuXG4gICAgcmV0dXJuIGxpc3QubWFwKCh2YWx1ZSkgPT4gdGhpcy5kZXBlbmRlbmN5S2V5Rm9yKHZhbHVlKSkuam9pbihcInxcIilcbiAgfVxuXG4gIGxvYWRBYmlsaXRpZXMgPSBhc3luYyAocmVsb2FkS2V5KSA9PiB7XG4gICAgY29uc3QgYWJpbGl0aWVzID0gdGhpcy5wLmFiaWxpdGllc0NhbGxiYWNrKClcblxuICAgIGlmIChyZWxvYWRLZXkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgYXdhaXQgdGhpcy5jYW5DYW4ubG9hZEFiaWxpdGllcyhhYmlsaXRpZXMpXG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IHRoaXMuY2FuQ2FuLnJlbG9hZEFiaWxpdGllcyhhYmlsaXRpZXMsIHJlbG9hZEtleSlcbiAgICB9XG5cbiAgICB0aGlzLnNldFN0YXRlKHtsYXN0VXBkYXRlOiBuZXcgRGF0ZSgpfSlcbiAgfVxuXG4gIG9uRGV2aXNlQ2hhbmdlID0gKCkgPT4ge1xuICAgIHRoaXMuZGV2aXNlUmVsb2FkS2V5ICs9IDFcblxuICAgIGlmICh0aGlzLnAuZGVidWcpIHtcbiAgICAgIGNvbnNvbGUubG9nKGBbdXNlQ2FuQ2FuXSBkZXZpc2UtY2hhbmdlIHJlbG9hZEtleT1kZXZpc2U6JHt0aGlzLmRldmlzZVJlbG9hZEtleX1gKVxuICAgIH1cblxuICAgIHRoaXMubG9hZEFiaWxpdGllcyhgZGV2aXNlOiR7dGhpcy5kZXZpc2VSZWxvYWRLZXl9YClcbiAgfVxuXG4gIG9uUmVzZXRBYmlsaXRpZXMgPSAoKSA9PiB7XG4gICAgaWYgKHRoaXMucC5kZWJ1Zykge1xuICAgICAgY29uc29sZS5sb2coXCJbdXNlQ2FuQ2FuXSBvblJlc2V0QWJpbGl0aWVzIC0+IGxvYWRBYmlsaXRpZXMoKVwiKVxuICAgIH1cblxuICAgIHRoaXMubG9hZEFiaWxpdGllcygpXG4gIH1cblxuICBvbkFiaWxpdGllc0xvYWRlZCA9ICgpID0+IHtcbiAgICBpZiAodGhpcy5wLmRlYnVnKSB7XG4gICAgICBjb25zb2xlLmxvZyhcIlt1c2VDYW5DYW5dIG9uQWJpbGl0aWVzTG9hZGVkXCIpXG4gICAgfVxuXG4gICAgdGhpcy5zZXRTdGF0ZSh7bGFzdFVwZGF0ZTogbmV3IERhdGUoKX0pXG4gIH1cblxuICBzZXR1cCgpIHtcbiAgICB0aGlzLnVzZVN0YXRlcyh7XG4gICAgICBsYXN0VXBkYXRlOiAoKSA9PiBuZXcgRGF0ZSgpXG4gICAgfSlcblxuICAgIGNvbnN0IHtkZWJ1ZywgZGVwZW5kZW5jaWVzfSA9IHRoaXMucFxuICAgIGNvbnN0IGRlcGVuZGVuY3lMaXN0ID0gZGVwZW5kZW5jaWVzID8/IFtdXG4gICAgY29uc3QgZGVwZW5kZW5jeUtleSA9IHVzZU1lbW8oKCkgPT4gdGhpcy5kZXBlbmRlbmN5TGlzdEtleShkZXBlbmRlbmN5TGlzdCksIGRlcGVuZGVuY3lMaXN0KVxuICAgIGNvbnN0IGhhc0N1c3RvbURlcGVuZGVuY2llcyA9IGRlcGVuZGVuY2llcyAhPT0gdW5kZWZpbmVkXG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgdGhpcy5jYW5DYW4uc2V0RGVidWcodGhpcy5kZWJ1Z1Rva2VuLCB0cnVlKVxuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICB0aGlzLmNhbkNhbi5zZXREZWJ1Zyh0aGlzLmRlYnVnVG9rZW4sIGZhbHNlKVxuICAgICAgfVxuICAgIH0sIFtkZWJ1Z10pXG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKGRlYnVnKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBbdXNlQ2FuQ2FuXSBlZmZlY3QgaGFzQ3VzdG9tRGVwZW5kZW5jaWVzPSR7U3RyaW5nKGhhc0N1c3RvbURlcGVuZGVuY2llcyl9OyBkZXBlbmRlbmN5S2V5PSR7ZGVwZW5kZW5jeUtleX1gKVxuICAgICAgfVxuXG4gICAgICBpZiAoaGFzQ3VzdG9tRGVwZW5kZW5jaWVzKSB7XG4gICAgICAgIGlmICh0aGlzLmxvYWRlZFdpdGhDdXN0b21EZXBlbmRlbmNpZXMpIHtcbiAgICAgICAgICB0aGlzLmxvYWRBYmlsaXRpZXMoZGVwZW5kZW5jeUtleSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmxvYWRlZFdpdGhDdXN0b21EZXBlbmRlbmNpZXMgPSB0cnVlXG4gICAgICAgICAgdGhpcy5sb2FkQWJpbGl0aWVzKClcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5sb2FkZWRXaXRoQ3VzdG9tRGVwZW5kZW5jaWVzID0gZmFsc2VcbiAgICAgICAgdGhpcy5sb2FkQWJpbGl0aWVzKClcbiAgICAgIH1cbiAgICB9LCBbZGVwZW5kZW5jeUtleSwgaGFzQ3VzdG9tRGVwZW5kZW5jaWVzXSlcblxuICAgIHVzZUV2ZW50RW1pdHRlcihEZXZpc2UuZXZlbnRzKCksIFwib25EZXZpc2VTaWduSW5cIiwgdGhpcy5vbkRldmlzZUNoYW5nZSlcbiAgICB1c2VFdmVudEVtaXR0ZXIoRGV2aXNlLmV2ZW50cygpLCBcIm9uRGV2aXNlU2lnbk91dFwiLCB0aGlzLm9uRGV2aXNlQ2hhbmdlKVxuICAgIHVzZUV2ZW50RW1pdHRlcih0aGlzLmNhbkNhbi5ldmVudHMsIFwib25BYmlsaXRpZXNMb2FkZWRcIiwgdGhpcy5vbkFiaWxpdGllc0xvYWRlZClcbiAgICB1c2VFdmVudEVtaXR0ZXIodGhpcy5jYW5DYW4uZXZlbnRzLCBcIm9uUmVzZXRBYmlsaXRpZXNcIiwgdGhpcy5vblJlc2V0QWJpbGl0aWVzKVxuICB9XG59XG5cbi8qKlxuICogQHBhcmFtIHtmdW5jdGlvbigpIDogQXJyYXl9IGFiaWxpdGllc0NhbGxiYWNrXG4gKiBAcGFyYW0ge0FycmF5fSBbZGVwZW5kZW5jaWVzXVxuICogQHBhcmFtIHtvYmplY3R9IFtvcHRpb25zXVxuICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5kZWJ1Z11cbiAqIEByZXR1cm5zIHtDYW5DYW59XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVzZUNhbkNhbihhYmlsaXRpZXNDYWxsYmFjaywgZGVwZW5kZW5jaWVzID0gdW5kZWZpbmVkLCBvcHRpb25zID0ge30pIHtcbiAgY29uc3Qge2RlYnVnID0gZmFsc2UsIC4uLnJlc3RBcmdzfSA9IG9wdGlvbnNcbiAgY29uc3QgcmVzdEFyZ3NLZXlzID0gT2JqZWN0LmtleXMocmVzdEFyZ3MpXG5cbiAgaWYgKHJlc3RBcmdzS2V5cy5sZW5ndGggPiAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIG9wdGlvbnMgZ2l2ZW4gdG8gdXNlQ2FuQ2FuOiAke3Jlc3RBcmdzS2V5cy5qb2luKFwiLCBcIil9YClcbiAgfVxuXG4gIGNvbnN0IHNoYXBlSG9vayA9IHVzZVNoYXBlSG9vayhVc2VDYW5DYW5DbGFzcywge2FiaWxpdGllc0NhbGxiYWNrLCBkZWJ1ZywgZGVwZW5kZW5jaWVzfSlcblxuICByZXR1cm4gc2hhcGVIb29rLmNhbkNhblxufVxuIl19
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWNhbi1jYW4uanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbInVzZS1jYW4tY2FuLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFDLE1BQU0sbUJBQW1CLENBQUE7QUFDekQsT0FBTyxFQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUMsTUFBTSxPQUFPLENBQUE7QUFDeEMsT0FBTyxNQUFNLE1BQU0sY0FBYyxDQUFBO0FBQ2pDLE9BQU8sTUFBTSxNQUFNLGFBQWEsQ0FBQTtBQUNoQyxPQUFPLGVBQWUsTUFBTSxzQkFBc0IsQ0FBQTtBQUVsRCxzQkFBc0I7QUFDdEIsTUFBTSxjQUFlLFNBQVEsU0FBUztJQUNwQyxtQkFBbUI7SUFDbkIsWUFBWSxLQUFLO1FBQ2YsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ1osSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUE7UUFDOUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtRQUM3QyxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQTtRQUN4QixJQUFJLENBQUMsNEJBQTRCLEdBQUcsS0FBSyxDQUFBO1FBQ3pDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFBO1FBQ3JDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxDQUFDLENBQUE7SUFDOUIsQ0FBQztJQUVELHdCQUF3QjtJQUN4QixnQkFBZ0IsQ0FBQyxLQUFLO1FBQ3BCLElBQUksS0FBSyxLQUFLLElBQUk7WUFBRSxPQUFPLE1BQU0sQ0FBQTtRQUNqQyxJQUFJLEtBQUssS0FBSyxTQUFTO1lBQUUsT0FBTyxXQUFXLENBQUE7UUFFM0MsTUFBTSxTQUFTLEdBQUcsT0FBTyxLQUFLLENBQUE7UUFFOUIsSUFBSSxTQUFTLEtBQUssUUFBUSxJQUFJLFNBQVMsS0FBSyxVQUFVLEVBQUUsQ0FBQztZ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QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U2hhcGVIb29rLCB1c2VTaGFwZUhvb2t9IGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZVwiXG5pbXBvcnQge3VzZUVmZmVjdCwgdXNlTWVtb30gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBDYW5DYW4gZnJvbSBcIi4vY2FuLWNhbi5qc1wiXG5pbXBvcnQgRGV2aXNlIGZyb20gXCIuL2RldmlzZS5qc1wiXG5pbXBvcnQgdXNlRXZlbnRFbWl0dGVyIGZyb20gXCJ5YS11c2UtZXZlbnQtZW1pdHRlclwiXG5cbi8qKiBVc2VDYW5DYW5DbGFzcy4gKi9cbmNsYXNzIFVzZUNhbkNhbkNsYXNzIGV4dGVuZHMgU2hhcGVIb29rIHtcbiAgLyoqIENvbnN0cnVjdG9yLiAqL1xuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKVxuICAgIHRoaXMuY2FuQ2FuID0gQ2FuQ2FuLmN1cnJlbnQoKVxuICAgIHRoaXMuZGVidWdUb2tlbiA9IFN5bWJvbChcInVzZS1jYW4tY2FuLWRlYnVnXCIpXG4gICAgdGhpcy5kZXZpc2VSZWxvYWRLZXkgPSAwXG4gICAgdGhpcy5sb2FkZWRXaXRoQ3VzdG9tRGVwZW5kZW5jaWVzID0gZmFsc2VcbiAgICB0aGlzLmRlcGVuZGVuY3lLZXlNYXAgPSBuZXcgV2Vha01hcCgpXG4gICAgdGhpcy5kZXBlbmRlbmN5S2V5TmV4dElkID0gMVxuICB9XG5cbiAgLyoqIGRlcGVuZGVuY3lLZXlGb3IuICovXG4gIGRlcGVuZGVuY3lLZXlGb3IodmFsdWUpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwpIHJldHVybiBcIm51bGxcIlxuICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gXCJ1bmRlZmluZWRcIlxuXG4gICAgY29uc3QgdmFsdWVUeXBlID0gdHlwZW9mIHZhbHVlXG5cbiAgICBpZiAodmFsdWVUeXBlICE9PSBcIm9iamVjdFwiICYmIHZhbHVlVHlwZSAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICByZXR1cm4gYCR7dmFsdWVUeXBlfToke1N0cmluZyh2YWx1ZSl9YFxuICAgIH1cblxuICAgIGlmICghdGhpcy5kZXBlbmRlbmN5S2V5TWFwLmhhcyh2YWx1ZSkpIHtcbiAgICAgIHRoaXMuZGVwZW5kZW5jeUtleU1hcC5zZXQodmFsdWUsIHRoaXMuZGVwZW5kZW5jeUtleU5leHRJZClcbiAgICAgIHRoaXMuZGVwZW5kZW5jeUtleU5leHRJZCArPSAxXG4gICAgfVxuXG4gICAgcmV0dXJuIGAke3ZhbHVlVHlwZX06cmVmOiR7dGhpcy5kZXBlbmRlbmN5S2V5TWFwLmdldCh2YWx1ZSl9YFxuICB9XG5cbiAgLyoqIGRlcGVuZGVuY3lMaXN0S2V5LiAqL1xuICBkZXBlbmRlbmN5TGlzdEtleShsaXN0KSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGxpc3QpKSByZXR1cm4gdGhpcy5kZXBlbmRlbmN5S2V5Rm9yKGxpc3QpXG5cbiAgICByZXR1cm4gbGlzdC5tYXAoKHZhbHVlKSA9PiB0aGlzLmRlcGVuZGVuY3lLZXlGb3IodmFsdWUpKS5qb2luKFwifFwiKVxuICB9XG5cbiAgLyoqIGxvYWRBYmlsaXRpZXMuICovXG4gIGxvYWRBYmlsaXRpZXMgPSBhc3luYyAocmVsb2FkS2V5KSA9PiB7XG4gICAgY29uc3QgYWJpbGl0aWVzID0gdGhpcy5wLmFiaWxpdGllc0NhbGxiYWNrKClcblxuICAgIGlmIChyZWxvYWRLZXkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgYXdhaXQgdGhpcy5jYW5DYW4ubG9hZEFiaWxpdGllcyhhYmlsaXRpZXMpXG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IHRoaXMuY2FuQ2FuLnJlbG9hZEFiaWxpdGllcyhhYmlsaXRpZXMsIHJlbG9hZEtleSlcbiAgICB9XG5cbiAgICB0aGlzLnNldFN0YXRlKHtsYXN0VXBkYXRlOiBuZXcgRGF0ZSgpfSlcbiAgfVxuXG4gIC8qKiBvbkRldmlzZUNoYW5nZS4gKi9cbiAgb25EZXZpc2VDaGFuZ2UgPSAoKSA9PiB7XG4gICAgdGhpcy5kZXZpc2VSZWxvYWRLZXkgKz0gMVxuXG4gICAgaWYgKHRoaXMucC5kZWJ1Zykge1xuICAgICAgY29uc29sZS5sb2coYFt1c2VDYW5DYW5dIGRldmlzZS1jaGFuZ2UgcmVsb2FkS2V5PWRldmlzZToke3RoaXMuZGV2aXNlUmVsb2FkS2V5fWApXG4gICAgfVxuXG4gICAgdGhpcy5sb2FkQWJpbGl0aWVzKGBkZXZpc2U6JHt0aGlzLmRldmlzZVJlbG9hZEtleX1gKVxuICB9XG5cbiAgLyoqIG9uUmVzZXRBYmlsaXRpZXMuICovXG4gIG9uUmVzZXRBYmlsaXRpZXMgPSAoKSA9PiB7XG4gICAgaWYgKHRoaXMucC5kZWJ1Zykge1xuICAgICAgY29uc29sZS5sb2coXCJbdXNlQ2FuQ2FuXSBvblJlc2V0QWJpbGl0aWVzIC0+IGxvYWRBYmlsaXRpZXMoKVwiKVxuICAgIH1cblxuICAgIHRoaXMubG9hZEFiaWxpdGllcygpXG4gIH1cblxuICAvKiogb25BYmlsaXRpZXNMb2FkZWQuICovXG4gIG9uQWJpbGl0aWVzTG9hZGVkID0gKCkgPT4ge1xuICAgIGlmICh0aGlzLnAuZGVidWcpIHtcbiAgICAgIGNvbnNvbGUubG9nKFwiW3VzZUNhbkNhbl0gb25BYmlsaXRpZXNMb2FkZWRcIilcbiAgICB9XG5cbiAgICB0aGlzLnNldFN0YXRlKHtsYXN0VXBkYXRlOiBuZXcgRGF0ZSgpfSlcbiAgfVxuXG4gIC8qKiBzZXR1cC4gKi9cbiAgc2V0dXAoKSB7XG4gICAgdGhpcy51c2VTdGF0ZXMoe1xuICAgICAgbGFzdFVwZGF0ZTogKCkgPT4gbmV3IERhdGUoKVxuICAgIH0pXG5cbiAgICBjb25zdCB7ZGVidWcsIGRlcGVuZGVuY2llc30gPSB0aGlzLnBcbiAgICBjb25zdCBkZXBlbmRlbmN5TGlzdCA9IGRlcGVuZGVuY2llcyA/PyBbXVxuICAgIGNvbnN0IGRlcGVuZGVuY3lLZXkgPSB1c2VNZW1vKCgpID0+IHRoaXMuZGVwZW5kZW5jeUxpc3RLZXkoZGVwZW5kZW5jeUxpc3QpLCBkZXBlbmRlbmN5TGlzdClcbiAgICBjb25zdCBoYXNDdXN0b21EZXBlbmRlbmNpZXMgPSBkZXBlbmRlbmNpZXMgIT09IHVuZGVmaW5lZFxuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIHRoaXMuY2FuQ2FuLnNldERlYnVnKHRoaXMuZGVidWdUb2tlbiwgdHJ1ZSlcblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgdGhpcy5jYW5DYW4uc2V0RGVidWcodGhpcy5kZWJ1Z1Rva2VuLCBmYWxzZSlcbiAgICAgIH1cbiAgICB9LCBbZGVidWddKVxuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChkZWJ1Zykge1xuICAgICAgICBjb25zb2xlLmxvZyhgW3VzZUNhbkNhbl0gZWZmZWN0IGhhc0N1c3RvbURlcGVuZGVuY2llcz0ke1N0cmluZyhoYXNDdXN0b21EZXBlbmRlbmNpZXMpfTsgZGVwZW5kZW5jeUtleT0ke2RlcGVuZGVuY3lLZXl9YClcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0N1c3RvbURlcGVuZGVuY2llcykge1xuICAgICAgICBpZiAodGhpcy5sb2FkZWRXaXRoQ3VzdG9tRGVwZW5kZW5jaWVzKSB7XG4gICAgICAgICAgdGhpcy5sb2FkQWJpbGl0aWVzKGRlcGVuZGVuY3lLZXkpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5sb2FkZWRXaXRoQ3VzdG9tRGVwZW5kZW5jaWVzID0gdHJ1ZVxuICAgICAgICAgIHRoaXMubG9hZEFiaWxpdGllcygpXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubG9hZGVkV2l0aEN1c3RvbURlcGVuZGVuY2llcyA9IGZhbHNlXG4gICAgICAgIHRoaXMubG9hZEFiaWxpdGllcygpXG4gICAgICB9XG4gICAgfSwgW2RlcGVuZGVuY3lLZXksIGhhc0N1c3RvbURlcGVuZGVuY2llc10pXG5cbiAgICB1c2VFdmVudEVtaXR0ZXIoRGV2aXNlLmV2ZW50cygpLCBcIm9uRGV2aXNlU2lnbkluXCIsIHRoaXMub25EZXZpc2VDaGFuZ2UpXG4gICAgdXNlRXZlbnRFbWl0dGVyKERldmlzZS5ldmVudHMoKSwgXCJvbkRldmlzZVNpZ25PdXRcIiwgdGhpcy5vbkRldmlzZUNoYW5nZSlcbiAgICB1c2VFdmVudEVtaXR0ZXIodGhpcy5jYW5DYW4uZXZlbnRzLCBcIm9uQWJpbGl0aWVzTG9hZGVkXCIsIHRoaXMub25BYmlsaXRpZXNMb2FkZWQpXG4gICAgdXNlRXZlbnRFbWl0dGVyKHRoaXMuY2FuQ2FuLmV2ZW50cywgXCJvblJlc2V0QWJpbGl0aWVzXCIsIHRoaXMub25SZXNldEFiaWxpdGllcylcbiAgfVxufVxuXG4vKipcbiAqIEBwYXJhbSB7ZnVuY3Rpb24oKSA6IEFycmF5fSBhYmlsaXRpZXNDYWxsYmFja1xuICogQHBhcmFtIHtBcnJheX0gW2RlcGVuZGVuY2llc11cbiAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9uc11cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuZGVidWddXG4gKiBAcmV0dXJucyB7Q2FuQ2FufVxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VDYW5DYW4oYWJpbGl0aWVzQ2FsbGJhY2ssIGRlcGVuZGVuY2llcyA9IHVuZGVmaW5lZCwgb3B0aW9ucyA9IHt9KSB7XG4gIGNvbnN0IHtkZWJ1ZyA9IGZhbHNlLCAuLi5yZXN0QXJnc30gPSBvcHRpb25zXG4gIGNvbnN0IHJlc3RBcmdzS2V5cyA9IE9iamVjdC5rZXlzKHJlc3RBcmdzKVxuXG4gIGlmIChyZXN0QXJnc0tleXMubGVuZ3RoID4gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBvcHRpb25zIGdpdmVuIHRvIHVzZUNhbkNhbjogJHtyZXN0QXJnc0tleXMuam9pbihcIiwgXCIpfWApXG4gIH1cblxuICBjb25zdCBzaGFwZUhvb2sgPSB1c2VTaGFwZUhvb2soVXNlQ2FuQ2FuQ2xhc3MsIHthYmlsaXRpZXNDYWxsYmFjaywgZGVidWcsIGRlcGVuZGVuY2llc30pXG5cbiAgcmV0dXJuIHNoYXBlSG9vay5jYW5DYW5cbn1cbiJdfQ==
|
|
@@ -13,7 +13,4 @@ declare function ApiMakerUseCreatedEvent(modelClass: Function, onCreated: Functi
|
|
|
13
13
|
debounce?: number;
|
|
14
14
|
onConnected?: Function;
|
|
15
15
|
}): void;
|
|
16
|
-
declare namespace ApiMakerUseCreatedEvent {
|
|
17
|
-
let propTypes: any;
|
|
18
|
-
}
|
|
19
16
|
//# sourceMappingURL=use-created-event.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-created-event.d.ts","sourceRoot":"/src/","sources":["use-created-event.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"use-created-event.d.ts","sourceRoot":"/src/","sources":["use-created-event.js"],"names":[],"mappings":";AAEA;;;;;;;;GAQG;AACH,2FALG;IAAuB,MAAM,GAArB,OAAO;IACO,QAAQ,GAAtB,MAAM;IACU,WAAW;CACnC,GAAU,IAAI,CAQhB"}
|
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
import debounceFunction from "debounce";
|
|
3
|
-
import ModelEvents from "./model-events.js";
|
|
4
|
-
import PropTypes from "prop-types";
|
|
5
|
-
import propTypesExact from "prop-types-exact";
|
|
6
|
-
import { useCallback, useLayoutEffect } from "react";
|
|
7
|
-
import useShape from "set-state-compare/build/use-shape.js";
|
|
1
|
+
import useModelClassEvent from "./use-model-class-event.js";
|
|
8
2
|
/**
|
|
9
3
|
* @param {Function} modelClass
|
|
10
4
|
* @param {Function} onCreated
|
|
@@ -14,47 +8,8 @@ import useShape from "set-state-compare/build/use-shape.js";
|
|
|
14
8
|
* @param {Function} [args.onConnected]
|
|
15
9
|
* @returns {void}
|
|
16
10
|
*/
|
|
17
|
-
// eslint-disable-next-line max-len
|
|
18
11
|
const ApiMakerUseCreatedEvent = (modelClass, onCreated, args = { active: true, debounce: 0, onConnected: undefined }) => {
|
|
19
|
-
|
|
20
|
-
const s = useShape({ active, debounce, modelClass, onCreated });
|
|
21
|
-
const eventDebounce = useCallback(() => {
|
|
22
|
-
if (!s.meta.debounceInstance) {
|
|
23
|
-
if (typeof s.props.debounce == "number") {
|
|
24
|
-
s.meta.debounceInstance = debounceFunction(s.p.onCreated, s.p.debounce);
|
|
25
|
-
}
|
|
26
|
-
else {
|
|
27
|
-
s.meta.debounceInstance = debounceFunction(s.p.onCreated);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
return s.meta.debounceInstance;
|
|
31
|
-
}, []);
|
|
32
|
-
const onCreatedCallback = useCallback((...args) => {
|
|
33
|
-
if (!s.p.active) {
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
if (s.p.debounce) {
|
|
37
|
-
eventDebounce()(...args);
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
s.p.onCreated(...args);
|
|
41
|
-
}
|
|
42
|
-
}, []);
|
|
43
|
-
useLayoutEffect(() => {
|
|
44
|
-
const connectCreated = ModelEvents.connectCreated(s.p.modelClass, (...args) => onCreatedCallback(...args));
|
|
45
|
-
return () => {
|
|
46
|
-
connectCreated.unsubscribe();
|
|
47
|
-
};
|
|
48
|
-
}, []);
|
|
12
|
+
useModelClassEvent(modelClass, "creates", onCreated, args);
|
|
49
13
|
};
|
|
50
|
-
ApiMakerUseCreatedEvent.propTypes = propTypesExact({
|
|
51
|
-
active: PropTypes.bool.isRequired,
|
|
52
|
-
debounce: PropTypes.oneOfType([
|
|
53
|
-
PropTypes.bool,
|
|
54
|
-
PropTypes.number
|
|
55
|
-
]),
|
|
56
|
-
modelClass: PropTypes.func.isRequired,
|
|
57
|
-
onCreated: PropTypes.func.isRequired
|
|
58
|
-
});
|
|
59
14
|
export default ApiMakerUseCreatedEvent;
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWNyZWF0ZWQtZXZlbnQuanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbInVzZS1jcmVhdGVkLWV2ZW50LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sa0JBQWtCLE1BQU0sNEJBQTRCLENBQUE7QUFFM0Q7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLHVCQUF1QixHQUFHLENBQzlCLFVBQVUsRUFDVixTQUFTLEVBQ1QsSUFBSSxHQUFHLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUMsRUFDMUQsRUFBRTtJQUNGLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFBO0FBQzVELENBQUMsQ0FBQTtBQUVELGVBQWUsdUJBQXVCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdXNlTW9kZWxDbGFzc0V2ZW50IGZyb20gXCIuL3VzZS1tb2RlbC1jbGFzcy1ldmVudC5qc1wiXG5cbi8qKlxuICogQHBhcmFtIHtGdW5jdGlvbn0gbW9kZWxDbGFzc1xuICogQHBhcmFtIHtGdW5jdGlvbn0gb25DcmVhdGVkXG4gKiBAcGFyYW0ge29iamVjdH0gW2FyZ3NdXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFthcmdzLmFjdGl2ZV1cbiAqIEBwYXJhbSB7bnVtYmVyfSBbYXJncy5kZWJvdW5jZV1cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFthcmdzLm9uQ29ubmVjdGVkXVxuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmNvbnN0IEFwaU1ha2VyVXNlQ3JlYXRlZEV2ZW50ID0gKFxuICBtb2RlbENsYXNzLFxuICBvbkNyZWF0ZWQsXG4gIGFyZ3MgPSB7YWN0aXZlOiB0cnVlLCBkZWJvdW5jZTogMCwgb25Db25uZWN0ZWQ6IHVuZGVmaW5lZH1cbikgPT4ge1xuICB1c2VNb2RlbENsYXNzRXZlbnQobW9kZWxDbGFzcywgXCJjcmVhdGVzXCIsIG9uQ3JlYXRlZCwgYXJncylcbn1cblxuZXhwb3J0IGRlZmF1bHQgQXBpTWFrZXJVc2VDcmVhdGVkRXZlbnRcbiJdfQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export default apiMakerUseDestroyedEvent;
|
|
2
2
|
/**
|
|
3
|
-
* @param {
|
|
3
|
+
* @param {import("./base-model.js").default|import("./base-model.js").default[]} model
|
|
4
4
|
* @param {Function} onDestroyed
|
|
5
5
|
* @param {object} [props]
|
|
6
6
|
* @param {boolean} [props.active]
|
|
@@ -8,9 +8,6 @@ export default apiMakerUseDestroyedEvent;
|
|
|
8
8
|
* @param {Function} [props.onConnected]
|
|
9
9
|
* @returns {void}
|
|
10
10
|
*/
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
debounce?: number;
|
|
14
|
-
onConnected?: Function;
|
|
15
|
-
}): void;
|
|
11
|
+
/** apiMakerUseDestroyedEvent. */
|
|
12
|
+
declare function apiMakerUseDestroyedEvent(model: any, onDestroyed: any, props?: {}): void;
|
|
16
13
|
//# sourceMappingURL=use-destroyed-event.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-destroyed-event.d.ts","sourceRoot":"/src/","sources":["use-destroyed-event.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"use-destroyed-event.d.ts","sourceRoot":"/src/","sources":["use-destroyed-event.js"],"names":[],"mappings":";AAkJA;;;;;;;;GAQG;AACH,iCAAiC;AACjC,2FAQC"}
|