@kaspernj/api-maker 1.0.2113 → 1.0.2115
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/collection-loader.js +6 -5
- package/build/collection.d.ts +8 -4
- package/build/collection.d.ts.map +1 -1
- package/build/collection.js +5 -3
- package/build/form.d.ts.map +1 -1
- package/build/form.js +5 -3
- package/build/router/route.d.ts.map +1 -1
- package/build/router/route.js +50 -9
- package/build/super-admin/edit-page/edit-attribute-checkbox.js +3 -3
- package/build/super-admin/edit-page/edit-attribute-content.js +3 -3
- package/build/super-admin/edit-page/edit-attribute-input.js +3 -3
- package/build/super-admin/edit-page.js +14 -14
- package/build/super-admin/index.js +47 -24
- package/build/table/table-settings.d.ts.map +1 -1
- package/build/table/table-settings.js +7 -1
- package/build/table/table.js +47 -21
- package/build/table/widths.d.ts +3 -0
- package/build/table/widths.d.ts.map +1 -1
- package/build/table/widths.js +33 -18
- package/build/use-can-can.d.ts.map +1 -1
- package/build/use-can-can.js +18 -2
- package/build/use-collection.d.ts +33 -30
- package/build/use-collection.d.ts.map +1 -1
- package/build/use-collection.js +45 -23
- package/build/use-current-user-context.d.ts.map +1 -1
- package/build/use-current-user-context.js +13 -4
- package/build/use-input.js +2 -2
- package/build/use-model-event.js +2 -2
- package/build/use-model.d.ts.map +1 -1
- package/build/use-model.js +24 -12
- package/build/use-resize-observer.js +2 -2
- package/build/use-router.js +2 -2
- package/build/use-shape.d.ts +2 -0
- package/build/use-shape.d.ts.map +1 -0
- package/build/use-shape.js +2 -0
- package/build/use-updated-event.js +2 -2
- package/build/use-validation-errors.js +2 -2
- package/package.json +2 -2
package/build/table/widths.js
CHANGED
|
@@ -5,34 +5,39 @@ export default class TableWidths {
|
|
|
5
5
|
this.columns = columns;
|
|
6
6
|
this.tableWidth = width;
|
|
7
7
|
this.table = table;
|
|
8
|
+
this.usedFallbackWidth = width === undefined;
|
|
8
9
|
this.setWidths();
|
|
9
10
|
}
|
|
10
11
|
setWidths() {
|
|
11
12
|
this.columnsWidths = {};
|
|
13
|
+
const columnsWithoutWidth = this.columns.filter((column) => !column.tableSettingColumn.hasWidth());
|
|
14
|
+
let amountOfColumns = columnsWithoutWidth.length;
|
|
12
15
|
let widthLeft = this.tableWidth;
|
|
13
16
|
const updateData = [];
|
|
17
|
+
amountOfColumns++; // Actions column
|
|
18
|
+
if (this.table.p.workplace)
|
|
19
|
+
amountOfColumns++;
|
|
20
|
+
if (widthLeft === undefined) {
|
|
21
|
+
// Fall back to minimum per-column widths until RN-web reports the real container width.
|
|
22
|
+
widthLeft = amountOfColumns * 200;
|
|
23
|
+
}
|
|
14
24
|
// Set widths that are defined
|
|
15
25
|
for (const columnIndex in this.columns) {
|
|
16
26
|
const column = this.columns[columnIndex];
|
|
17
27
|
const tableSettingColumn = column.tableSettingColumn;
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
column.animatedPosition = new Animated.ValueXY();
|
|
21
|
-
column.animatedZIndex = new Animated.Value(0);
|
|
28
|
+
column.animatedPosition ||= new Animated.ValueXY();
|
|
29
|
+
column.animatedZIndex ||= new Animated.Value(0);
|
|
22
30
|
if (tableSettingColumn.hasWidth()) {
|
|
23
|
-
if (column.animatedWidth)
|
|
24
|
-
|
|
25
|
-
|
|
31
|
+
if (column.animatedWidth) {
|
|
32
|
+
column.animatedWidth.setValue(tableSettingColumn.width());
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
column.animatedWidth = new Animated.Value(tableSettingColumn.width());
|
|
36
|
+
}
|
|
26
37
|
column.width = tableSettingColumn.width();
|
|
27
38
|
widthLeft -= tableSettingColumn.width();
|
|
28
39
|
}
|
|
29
40
|
}
|
|
30
|
-
// Calculate how many columns are shown
|
|
31
|
-
const columnsWithoutWidth = this.columns.filter((column) => !column.tableSettingColumn.hasWidth());
|
|
32
|
-
let amountOfColumns = columnsWithoutWidth.length;
|
|
33
|
-
amountOfColumns++; // Actions column
|
|
34
|
-
if (this.table.p.workplace)
|
|
35
|
-
amountOfColumns++;
|
|
36
41
|
// Set widths of columns without
|
|
37
42
|
for (const columnIndex in this.columns) {
|
|
38
43
|
const column = this.columns[columnIndex];
|
|
@@ -41,19 +46,29 @@ export default class TableWidths {
|
|
|
41
46
|
let newWidth = widthLeft / amountOfColumns;
|
|
42
47
|
if (newWidth < 200)
|
|
43
48
|
newWidth = 200;
|
|
44
|
-
column.animatedWidth
|
|
49
|
+
if (column.animatedWidth) {
|
|
50
|
+
column.animatedWidth.setValue(newWidth);
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
column.animatedWidth = new Animated.Value(newWidth);
|
|
54
|
+
}
|
|
45
55
|
column.width = newWidth;
|
|
46
|
-
|
|
47
|
-
updateData << {
|
|
56
|
+
updateData.push({
|
|
48
57
|
id: tableSettingColumn.id(),
|
|
49
58
|
width: newWidth
|
|
50
|
-
};
|
|
59
|
+
});
|
|
51
60
|
}
|
|
52
61
|
}
|
|
53
62
|
if (updateData.length > 0) {
|
|
54
63
|
// FIXME: Should update the columns on the backend if anything changed
|
|
55
64
|
}
|
|
56
65
|
}
|
|
66
|
+
/** Apply the measured table width after an initial fallback-width bootstrap. */
|
|
67
|
+
updateTableWidth(width) {
|
|
68
|
+
this.tableWidth = width;
|
|
69
|
+
this.usedFallbackWidth = false;
|
|
70
|
+
this.setWidths();
|
|
71
|
+
}
|
|
57
72
|
getWidthOfColumn(identifier) {
|
|
58
73
|
const column = this.columns.find((column) => column.tableSettingColumn.identifier() == identifier);
|
|
59
74
|
if (!column)
|
|
@@ -68,4 +83,4 @@ export default class TableWidths {
|
|
|
68
83
|
column.animatedWidth.setValue(width);
|
|
69
84
|
}
|
|
70
85
|
}
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkdGhzLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJ0YWJsZS93aWR0aHMuanN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxjQUFjLENBQUE7QUFDckMsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLFdBQVcsQ0FBQTtBQUU5QixNQUFNLENBQUMsT0FBTyxPQUFPLFdBQVc7SUFDOUIsWUFBWSxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFDO1FBQ2pDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFBO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFBO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO1FBQ2xCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLEtBQUssU0FBUyxDQUFBO1FBQzVDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQTtJQUNsQixDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFBO1FBQ3ZCLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7UUFDbEcsSUFBSSxlQUFlLEdBQUcsbUJBQW1CLENBQUMsTUFBTSxDQUFBO1FBQ2hELElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUE7UUFDL0IsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFBO1FBRXJCLGVBQWUsRUFBRSxDQUFBLENBQUMsaUJBQWlCO1FBRW5DLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUztZQUFFLGVBQWUsRUFBRSxDQUFBO1FBRTdDLElBQUksU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzVCLHdGQUF3RjtZQUN4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QkFBbUIsVUFBVSxFQUFFLENBQUMsQ0FBQTtRQUU3RCxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUE7SUFDOUIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQUMsVUFBVSxFQUFFLEtBQUssRUFBQztRQUNsQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxJQUFJLFVBQVUsQ0FBQyxDQUFBO1FBRWxHLElBQUksQ0FBQyxNQUFNO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsVUFBVSxFQUFFLENBQUMsQ0FBQTtRQUU3RCxNQUFNLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtRQUNwQixNQUFNLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUN0QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FuaW1hdGVkfSBmcm9tIFwicmVhY3QtbmF0aXZlXCJcbmltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRhYmxlV2lkdGhzIHtcbiAgY29uc3RydWN0b3Ioe2NvbHVtbnMsIHRhYmxlLCB3aWR0aH0pIHtcbiAgICB0aGlzLmNvbHVtbnMgPSBjb2x1bW5zXG4gICAgdGhpcy50YWJsZVdpZHRoID0gd2lkdGhcbiAgICB0aGlzLnRhYmxlID0gdGFibGVcbiAgICB0aGlzLnVzZWRGYWxsYmFja1dpZHRoID0gd2lkdGggPT09IHVuZGVmaW5lZFxuICAgIHRoaXMuc2V0V2lkdGhzKClcbiAgfVxuXG4gIHNldFdpZHRocygpIHtcbiAgICB0aGlzLmNvbHVtbnNXaWR0aHMgPSB7fVxuICAgIGNvbnN0IGNvbHVtbnNXaXRob3V0V2lkdGggPSB0aGlzLmNvbHVtbnMuZmlsdGVyKChjb2x1bW4pID0+ICFjb2x1bW4udGFibGVTZXR0aW5nQ29sdW1uLmhhc1dpZHRoKCkpXG4gICAgbGV0IGFtb3VudE9mQ29sdW1ucyA9IGNvbHVtbnNXaXRob3V0V2lkdGgubGVuZ3RoXG4gICAgbGV0IHdpZHRoTGVmdCA9IHRoaXMudGFibGVXaWR0aFxuICAgIGNvbnN0IHVwZGF0ZURhdGEgPSBbXVxuXG4gICAgYW1vdW50T2ZDb2x1bW5zKysgLy8gQWN0aW9ucyBjb2x1bW5cblxuICAgIGlmICh0aGlzLnRhYmxlLnAud29ya3BsYWNlKSBhbW91bnRPZkNvbHVtbnMrK1xuXG4gICAgaWYgKHdpZHRoTGVmdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBGYWxsIGJhY2sgdG8gbWluaW11bSBwZXItY29sdW1uIHdpZHRocyB1bnRpbCBSTi13ZWIgcmVwb3J0cyB0aGUgcmVhbCBjb250YWluZXIgd2lkdGguXG4gICAgICB3aWR0aExlZnQgPSBhbW91bnRPZkNvbHVtbnMgKiAyMDBcbiAgICB9XG5cbiAgICAvLyBTZXQgd2lkdGhzIHRoYXQgYXJlIGRlZmluZWRcbiAgICBmb3IgKGNvbnN0IGNvbHVtbkluZGV4IGluIHRoaXMuY29sdW1ucykge1xuICAgICAgY29uc3QgY29sdW1uID0gdGhpcy5jb2x1bW5zW2NvbHVtbkluZGV4XVxuICAgICAgY29uc3QgdGFibGVTZXR0aW5nQ29sdW1uID0gY29sdW1uLnRhYmxlU2V0dGluZ0NvbHVtblxuXG4gICAgICBjb2x1bW4uYW5pbWF0ZWRQb3NpdGlvbiB8fD0gbmV3IEFuaW1hdGVkLlZhbHVlWFkoKVxuICAgICAgY29sdW1uLmFuaW1hdGVkWkluZGV4IHx8PSBuZXcgQW5pbWF0ZWQuVmFsdWUoMClcblxuICAgICAgaWYgKHRhYmxlU2V0dGluZ0NvbHVtbi5oYXNXaWR0aCgpKSB7XG4gICAgICAgIGlmIChjb2x1bW4uYW5pbWF0ZWRXaWR0aCkge1xuICAgICAgICAgIGNvbHVtbi5hbmltYXRlZFdpZHRoLnNldFZhbHVlKHRhYmxlU2V0dGluZ0NvbHVtbi53aWR0aCgpKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbHVtbi5hbmltYXRlZFdpZHRoID0gbmV3IEFuaW1hdGVkLlZhbHVlKHRhYmxlU2V0dGluZ0NvbHVtbi53aWR0aCgpKVxuICAgICAgICB9XG5cbiAgICAgICAgY29sdW1uLndpZHRoID0gdGFibGVTZXR0aW5nQ29sdW1uLndpZHRoKClcblxuICAgICAgICB3aWR0aExlZnQgLT0gdGFibGVTZXR0aW5nQ29sdW1uLndpZHRoKClcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXQgd2lkdGhzIG9mIGNvbHVtbnMgd2l0aG91dFxuICAgIGZvciAoY29uc3QgY29sdW1uSW5kZXggaW4gdGhpcy5jb2x1bW5zKSB7XG4gICAgICBjb25zdCBjb2x1bW4gPSB0aGlzLmNvbHVtbnNbY29sdW1uSW5kZXhdXG4gICAgICBjb25zdCB0YWJsZVNldHRpbmdDb2x1bW4gPSBjb2x1bW4udGFibGVTZXR0aW5nQ29sdW1uXG5cbiAgICAgIGlmICghdGFibGVTZXR0aW5nQ29sdW1uLmhhc1dpZHRoKCkpIHtcbiAgICAgICAgbGV0IG5ld1dpZHRoID0gd2lkdGhMZWZ0IC8gYW1vdW50T2ZDb2x1bW5zXG5cbiAgICAgICAgaWYgKG5ld1dpZHRoIDwgMjAwKSBuZXdXaWR0aCA9IDIwMFxuXG4gICAgICAgIGlmIChjb2x1bW4uYW5pbWF0ZWRXaWR0aCkge1xuICAgICAgICAgIGNvbHVtbi5hbmltYXRlZFdpZHRoLnNldFZhbHVlKG5ld1dpZHRoKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbHVtbi5hbmltYXRlZFdpZHRoID0gbmV3IEFuaW1hdGVkLlZhbHVlKG5ld1dpZHRoKVxuICAgICAgICB9XG5cbiAgICAgICAgY29sdW1uLndpZHRoID0gbmV3V2lkdGhcblxuICAgICAgICB1cGRhdGVEYXRhLnB1c2goe1xuICAgICAgICAgIGlkOiB0YWJsZVNldHRpbmdDb2x1bW4uaWQoKSxcbiAgICAgICAgICB3aWR0aDogbmV3V2lkdGhcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodXBkYXRlRGF0YS5sZW5ndGggPiAwKSB7XG4gICAgICAvLyBGSVhNRTogU2hvdWxkIHVwZGF0ZSB0aGUgY29sdW1ucyBvbiB0aGUgYmFja2VuZCBpZiBhbnl0aGluZyBjaGFuZ2VkXG4gICAgfVxuICB9XG5cbiAgLyoqIEFwcGx5IHRoZSBtZWFzdXJlZCB0YWJsZSB3aWR0aCBhZnRlciBhbiBpbml0aWFsIGZhbGxiYWNrLXdpZHRoIGJvb3RzdHJhcC4gKi9cbiAgdXBkYXRlVGFibGVXaWR0aCh3aWR0aCkge1xuICAgIHRoaXMudGFibGVXaWR0aCA9IHdpZHRoXG4gICAgdGhpcy51c2VkRmFsbGJhY2tXaWR0aCA9IGZhbHNlXG4gICAgdGhpcy5zZXRXaWR0aHMoKVxuICB9XG5cbiAgZ2V0V2lkdGhPZkNvbHVtbihpZGVudGlmaWVyKSB7XG4gICAgY29uc3QgY29sdW1uID0gdGhpcy5jb2x1bW5zLmZpbmQoKGNvbHVtbikgPT4gY29sdW1uLnRhYmxlU2V0dGluZ0NvbHVtbi5pZGVudGlmaWVyKCkgPT0gaWRlbnRpZmllcilcblxuICAgIGlmICghY29sdW1uKSB0aHJvdyBuZXcgRXJyb3IoYE5vIHN1Y2ggY29sdW1uOiAke2lkZW50aWZpZXJ9YClcblxuICAgIHJldHVybiBkaWdnKGNvbHVtbiwgXCJ3aWR0aFwiKVxuICB9XG5cbiAgc2V0V2lkdGhPZkNvbHVtbih7aWRlbnRpZmllciwgd2lkdGh9KSB7XG4gICAgY29uc3QgY29sdW1uID0gdGhpcy5jb2x1bW5zLmZpbmQoKGNvbHVtbikgPT4gY29sdW1uLnRhYmxlU2V0dGluZ0NvbHVtbi5pZGVudGlmaWVyKCkgPT0gaWRlbnRpZmllcilcblxuICAgIGlmICghY29sdW1uKSB0aHJvdyBuZXcgRXJyb3IoYE5vIHN1Y2ggY29sdW1uOiAke2lkZW50aWZpZXJ9YClcblxuICAgIGNvbHVtbi53aWR0aCA9IHdpZHRoXG4gICAgY29sdW1uLmFuaW1hdGVkV2lkdGguc2V0VmFsdWUod2lkdGgpXG4gIH1cbn1cbiJdfQ==
|
|
@@ -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":"AAsJA;;;;;;GAMG;AACH,qDANW,WAAkB,kCAG1B;IAA0B,KAAK,GAAvB,OAAO;CACf,GAAU,MAAM,CAalB;mBAtKkB,cAAc"}
|
package/build/use-can-can.js
CHANGED
|
@@ -8,9 +8,11 @@ class UseCanCanClass extends ShapeHook {
|
|
|
8
8
|
/** Constructor. */
|
|
9
9
|
constructor(props) {
|
|
10
10
|
super(props);
|
|
11
|
+
this.abilitiesRequestId = 0;
|
|
11
12
|
this.canCan = CanCan.current();
|
|
12
13
|
this.debugToken = Symbol("use-can-can-debug");
|
|
13
14
|
this.deviseReloadKey = 0;
|
|
15
|
+
this.isHookMounted = false;
|
|
14
16
|
this.loadedWithCustomDependencies = false;
|
|
15
17
|
this.dependencyKeyMap = new WeakMap();
|
|
16
18
|
this.dependencyKeyNextId = 1;
|
|
@@ -39,6 +41,9 @@ class UseCanCanClass extends ShapeHook {
|
|
|
39
41
|
}
|
|
40
42
|
/** loadAbilities. */
|
|
41
43
|
loadAbilities = async (reloadKey) => {
|
|
44
|
+
// Drop late ability reload completions after dependency changes or unmounts.
|
|
45
|
+
const requestId = this.abilitiesRequestId + 1;
|
|
46
|
+
this.abilitiesRequestId = requestId;
|
|
42
47
|
const abilities = this.p.abilitiesCallback();
|
|
43
48
|
if (reloadKey === undefined) {
|
|
44
49
|
await this.canCan.loadAbilities(abilities);
|
|
@@ -46,6 +51,8 @@ class UseCanCanClass extends ShapeHook {
|
|
|
46
51
|
else {
|
|
47
52
|
await this.canCan.reloadAbilities(abilities, reloadKey);
|
|
48
53
|
}
|
|
54
|
+
if (!this.isHookMounted || requestId != this.abilitiesRequestId)
|
|
55
|
+
return;
|
|
49
56
|
this.setState({ lastUpdate: new Date() });
|
|
50
57
|
};
|
|
51
58
|
/** onDeviseChange. */
|
|
@@ -68,6 +75,8 @@ class UseCanCanClass extends ShapeHook {
|
|
|
68
75
|
if (this.p.debug) {
|
|
69
76
|
console.log("[useCanCan] onAbilitiesLoaded");
|
|
70
77
|
}
|
|
78
|
+
if (!this.isHookMounted)
|
|
79
|
+
return;
|
|
71
80
|
this.setState({ lastUpdate: new Date() });
|
|
72
81
|
};
|
|
73
82
|
/** setup. */
|
|
@@ -80,7 +89,14 @@ class UseCanCanClass extends ShapeHook {
|
|
|
80
89
|
const dependencyKey = useMemo(() => this.dependencyListKey(dependencyList), dependencyList);
|
|
81
90
|
const hasCustomDependencies = dependencies !== undefined;
|
|
82
91
|
useEffect(() => {
|
|
83
|
-
this.
|
|
92
|
+
this.isHookMounted = true;
|
|
93
|
+
return () => {
|
|
94
|
+
this.isHookMounted = false;
|
|
95
|
+
this.abilitiesRequestId += 1;
|
|
96
|
+
};
|
|
97
|
+
}, []);
|
|
98
|
+
useEffect(() => {
|
|
99
|
+
this.canCan.setDebug(this.debugToken, debug);
|
|
84
100
|
return () => {
|
|
85
101
|
this.canCan.setDebug(this.debugToken, false);
|
|
86
102
|
};
|
|
@@ -125,4 +141,4 @@ export default function useCanCan(abilitiesCallback, dependencies = undefined, o
|
|
|
125
141
|
const shapeHook = useShapeHook(UseCanCanClass, { abilitiesCallback, debug, dependencies });
|
|
126
142
|
return shapeHook.canCan;
|
|
127
143
|
}
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWNhbi1jYW4uanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbInVzZS1jYW4tY2FuLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFDLE1BQU0sbUJBQW1CLENBQUE7QUFDekQsT0FBTyxFQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUMsTUFBTSxPQUFPLENBQUE7QUFDeEMsT0FBTyxNQUFNLE1BQU0sY0FBYyxDQUFBO0FBQ2pDLE9BQU8sTUFBTSxNQUFNLGFBQWEsQ0FBQTtBQUNoQyxPQUFPLGVBQWUsTUFBTSxzQkFBc0IsQ0FBQTtBQUVsRCxzQkFBc0I7QUFDdEIsTUFBTSxjQUFlLFNBQVEsU0FBUztJQUNwQyxtQkFBbUI7SUFDbkIsWUFBWSxLQUFLO1FBQ2YsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ1osSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUE7UUFDOUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtRQUM3QyxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQTtRQUN4QixJQUFJLENBQUMsNEJBQTRCLEdBQUcsS0FBSyxDQUFBO1FBQ3pDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFBO1FBQ3JDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxDQUFDLENBQUE7SUFDOUIsQ0FBQztJQUVELHdCQUF3QjtJQUN4QixnQkFBZ0IsQ0FBQyxLQUFLO1FBQ3BCLElBQUksS0FBSyxLQUFLLElBQUk7WUFBRSxPQUFPLE1BQU0sQ0FBQTtRQUNqQyxJQUFJLEtBQUssS0FBSyxTQUFTO1lBQUUsT0FBTyxXQUFXLENBQUE7UUFFM0MsTUFBTSxTQUFTLEdBQUcsT0FBTyxLQUFLLENBQUE7UUFFOUIsSUFBSSxTQUFTLEtBQUssUUFBUSxJQUFJLFNBQVMsS0FBSyxVQUFVLEVBQUUsQ0FBQztZ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QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U2hhcGVIb29rLCB1c2VTaGFwZUhvb2t9IGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZVwiXG5pbXBvcnQge3VzZUVmZmVjdCwgdXNlTWVtb30gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBDYW5DYW4gZnJvbSBcIi4vY2FuLWNhbi5qc1wiXG5pbXBvcnQgRGV2aXNlIGZyb20gXCIuL2RldmlzZS5qc1wiXG5pbXBvcnQgdXNlRXZlbnRFbWl0dGVyIGZyb20gXCJ5YS11c2UtZXZlbnQtZW1pdHRlclwiXG5cbi8qKiBVc2VDYW5DYW5DbGFzcy4gKi9cbmNsYXNzIFVzZUNhbkNhbkNsYXNzIGV4dGVuZHMgU2hhcGVIb29rIHtcbiAgLyoqIENvbnN0cnVjdG9yLiAqL1xuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKVxuICAgIHRoaXMuY2FuQ2FuID0gQ2FuQ2FuLmN1cnJlbnQoKVxuICAgIHRoaXMuZGVidWdUb2tlbiA9IFN5bWJvbChcInVzZS1jYW4tY2FuLWRlYnVnXCIpXG4gICAgdGhpcy5kZXZpc2VSZWxvYWRLZXkgPSAwXG4gICAgdGhpcy5sb2FkZWRXaXRoQ3VzdG9tRGVwZW5kZW5jaWVzID0gZmFsc2VcbiAgICB0aGlzLmRlcGVuZGVuY3lLZXlNYXAgPSBuZXcgV2Vha01hcCgpXG4gICAgdGhpcy5kZXBlbmRlbmN5S2V5TmV4dElkID0gMVxuICB9XG5cbiAgLyoqIGRlcGVuZGVuY3lLZXlGb3IuICovXG4gIGRlcGVuZGVuY3lLZXlGb3IodmFsdWUpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwpIHJldHVybiBcIm51bGxcIlxuICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gXCJ1bmRlZmluZWRcIlxuXG4gICAgY29uc3QgdmFsdWVUeXBlID0gdHlwZW9mIHZhbHVlXG5cbiAgICBpZiAodmFsdWVUeXBlICE9PSBcIm9iamVjdFwiICYmIHZhbHVlVHlwZSAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICByZXR1cm4gYCR7dmFsdWVUeXBlfToke1N0cmluZyh2YWx1ZSl9YFxuICAgIH1cblxuICAgIGlmICghdGhpcy5kZXBlbmRlbmN5S2V5TWFwLmhhcyh2YWx1ZSkpIHtcbiAgICAgIHRoaXMuZGVwZW5kZW5jeUtleU1hcC5zZXQodmFsdWUsIHRoaXMuZGVwZW5kZW5jeUtleU5leHRJZClcbiAgICAgIHRoaXMuZGVwZW5kZW5jeUtleU5leHRJZCArPSAxXG4gICAgfVxuXG4gICAgcmV0dXJuIGAke3ZhbHVlVHlwZX06cmVmOiR7dGhpcy5kZXBlbmRlbmN5S2V5TWFwLmdldCh2YWx1ZSl9YFxuICB9XG5cbiAgLyoqIGRlcGVuZGVuY3lMaXN0S2V5LiAqL1xuICBkZXBlbmRlbmN5TGlzdEtleShsaXN0KSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGxpc3QpKSByZXR1cm4gdGhpcy5kZXBlbmRlbmN5S2V5Rm9yKGxpc3QpXG5cbiAgICByZXR1cm4gbGlzdC5tYXAoKHZhbHVlKSA9PiB0aGlzLmRlcGVuZGVuY3lLZXlGb3IodmFsdWUpKS5qb2luKFwifFwiKVxuICB9XG5cbiAgLyoqIGxvYWRBYmlsaXRpZXMuICovXG4gIGxvYWRBYmlsaXRpZXMgPSBhc3luYyAocmVsb2FkS2V5KSA9PiB7XG4gICAgY29uc3QgYWJpbGl0aWVzID0gdGhpcy5wLmFiaWxpdGllc0NhbGxiYWNrKClcblxuICAgIGlmIChyZWxvYWRLZXkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgYXdhaXQgdGhpcy5jYW5DYW4ubG9hZEFiaWxpdGllcyhhYmlsaXRpZXMpXG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IHRoaXMuY2FuQ2FuLnJlbG9hZEFiaWxpdGllcyhhYmlsaXRpZXMsIHJlbG9hZEtleSlcbiAgICB9XG5cbiAgICB0aGlzLnNldFN0YXRlKHtsYXN0VXBkYXRlOiBuZXcgRGF0ZSgpfSlcbiAgfVxuXG4gIC8qKiBvbkRldmlzZUNoYW5nZS4gKi9cbiAgb25EZXZpc2VDaGFuZ2UgPSAoKSA9PiB7XG4gICAgdGhpcy5kZXZpc2VSZWxvYWRLZXkgKz0gMVxuXG4gICAgaWYgKHRoaXMucC5kZWJ1Zykge1xuICAgICAgY29uc29sZS5sb2coYFt1c2VDYW5DYW5dIGRldmlzZS1jaGFuZ2UgcmVsb2FkS2V5PWRldmlzZToke3RoaXMuZGV2aXNlUmVsb2FkS2V5fWApXG4gICAgfVxuXG4gICAgdGhpcy5sb2FkQWJpbGl0aWVzKGBkZXZpc2U6JHt0aGlzLmRldmlzZVJlbG9hZEtleX1gKVxuICB9XG5cbiAgLyoqIG9uUmVzZXRBYmlsaXRpZXMuICovXG4gIG9uUmVzZXRBYmlsaXRpZXMgPSAoKSA9PiB7XG4gICAgaWYgKHRoaXMucC5kZWJ1Zykge1xuICAgICAgY29uc29sZS5sb2coXCJbdXNlQ2FuQ2FuXSBvblJlc2V0QWJpbGl0aWVzIC0+IGxvYWRBYmlsaXRpZXMoKVwiKVxuICAgIH1cblxuICAgIHRoaXMubG9hZEFiaWxpdGllcygpXG4gIH1cblxuICAvKiogb25BYmlsaXRpZXNMb2FkZWQuICovXG4gIG9uQWJpbGl0aWVzTG9hZGVkID0gKCkgPT4ge1xuICAgIGlmICh0aGlzLnAuZGVidWcpIHtcbiAgICAgIGNvbnNvbGUubG9nKFwiW3VzZUNhbkNhbl0gb25BYmlsaXRpZXNMb2FkZWRcIilcbiAgICB9XG5cbiAgICB0aGlzLnNldFN0YXRlKHtsYXN0VXBkYXRlOiBuZXcgRGF0ZSgpfSlcbiAgfVxuXG4gIC8qKiBzZXR1cC4gKi9cbiAgc2V0dXAoKSB7XG4gICAgdGhpcy51c2VTdGF0ZXMoe1xuICAgICAgbGFzdFVwZGF0ZTogKCkgPT4gbmV3IERhdGUoKVxuICAgIH0pXG5cbiAgICBjb25zdCB7ZGVidWcsIGRlcGVuZGVuY2llc30gPSB0aGlzLnBcbiAgICBjb25zdCBkZXBlbmRlbmN5TGlzdCA9IGRlcGVuZGVuY2llcyA/PyBbXVxuICAgIGNvbnN0IGRlcGVuZGVuY3lLZXkgPSB1c2VNZW1vKCgpID0+IHRoaXMuZGVwZW5kZW5jeUxpc3RLZXkoZGVwZW5kZW5jeUxpc3QpLCBkZXBlbmRlbmN5TGlzdClcbiAgICBjb25zdCBoYXNDdXN0b21EZXBlbmRlbmNpZXMgPSBkZXBlbmRlbmNpZXMgIT09IHVuZGVmaW5lZFxuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIHRoaXMuY2FuQ2FuLnNldERlYnVnKHRoaXMuZGVidWdUb2tlbiwgdHJ1ZSlcblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgdGhpcy5jYW5DYW4uc2V0RGVidWcodGhpcy5kZWJ1Z1Rva2VuLCBmYWxzZSlcbiAgICAgIH1cbiAgICB9LCBbZGVidWddKVxuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChkZWJ1Zykge1xuICAgICAgICBjb25zb2xlLmxvZyhgW3VzZUNhbkNhbl0gZWZmZWN0IGhhc0N1c3RvbURlcGVuZGVuY2llcz0ke1N0cmluZyhoYXNDdXN0b21EZXBlbmRlbmNpZXMpfTsgZGVwZW5kZW5jeUtleT0ke2RlcGVuZGVuY3lLZXl9YClcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0N1c3RvbURlcGVuZGVuY2llcykge1xuICAgICAgICBpZiAodGhpcy5sb2FkZWRXaXRoQ3VzdG9tRGVwZW5kZW5jaWVzKSB7XG4gICAgICAgICAgdGhpcy5sb2FkQWJpbGl0aWVzKGRlcGVuZGVuY3lLZXkpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5sb2FkZWRXaXRoQ3VzdG9tRGVwZW5kZW5jaWVzID0gdHJ1ZVxuICAgICAgICAgIHRoaXMubG9hZEFiaWxpdGllcygpXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubG9hZGVkV2l0aEN1c3RvbURlcGVuZGVuY2llcyA9IGZhbHNlXG4gICAgICAgIHRoaXMubG9hZEFiaWxpdGllcygpXG4gICAgICB9XG4gICAgfSwgW2RlcGVuZGVuY3lLZXksIGhhc0N1c3RvbURlcGVuZGVuY2llc10pXG5cbiAgICB1c2VFdmVudEVtaXR0ZXIoRGV2aXNlLmV2ZW50cygpLCBcIm9uRGV2aXNlU2lnbkluXCIsIHRoaXMub25EZXZpc2VDaGFuZ2UpXG4gICAgdXNlRXZlbnRFbWl0dGVyKERldmlzZS5ldmVudHMoKSwgXCJvbkRldmlzZVNpZ25PdXRcIiwgdGhpcy5vbkRldmlzZUNoYW5nZSlcbiAgICB1c2VFdmVudEVtaXR0ZXIodGhpcy5jYW5DYW4uZXZlbnRzLCBcIm9uQWJpbGl0aWVzTG9hZGVkXCIsIHRoaXMub25BYmlsaXRpZXNMb2FkZWQpXG4gICAgdXNlRXZlbnRFbWl0dGVyKHRoaXMuY2FuQ2FuLmV2ZW50cywgXCJvblJlc2V0QWJpbGl0aWVzXCIsIHRoaXMub25SZXNldEFiaWxpdGllcylcbiAgfVxufVxuXG4vKipcbiAqIEBwYXJhbSB7ZnVuY3Rpb24oKSA6IEFycmF5fSBhYmlsaXRpZXNDYWxsYmFja1xuICogQHBhcmFtIHtBcnJheX0gW2RlcGVuZGVuY2llc11cbiAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9uc11cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuZGVidWddXG4gKiBAcmV0dXJucyB7Q2FuQ2FufVxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VDYW5DYW4oYWJpbGl0aWVzQ2FsbGJhY2ssIGRlcGVuZGVuY2llcyA9IHVuZGVmaW5lZCwgb3B0aW9ucyA9IHt9KSB7XG4gIGNvbnN0IHtkZWJ1ZyA9IGZhbHNlLCAuLi5yZXN0QXJnc30gPSBvcHRpb25zXG4gIGNvbnN0IHJlc3RBcmdzS2V5cyA9IE9iamVjdC5rZXlzKHJlc3RBcmdzKVxuXG4gIGlmIChyZXN0QXJnc0tleXMubGVuZ3RoID4gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBvcHRpb25zIGdpdmVuIHRvIHVzZUNhbkNhbjogJHtyZXN0QXJnc0tleXMuam9pbihcIiwgXCIpfWApXG4gIH1cblxuICBjb25zdCBzaGFwZUhvb2sgPSB1c2VTaGFwZUhvb2soVXNlQ2FuQ2FuQ2xhc3MsIHthYmlsaXRpZXNDYWxsYmFjaywgZGVidWcsIGRlcGVuZGVuY2llc30pXG5cbiAgcmV0dXJuIHNoYXBlSG9vay5jYW5DYW5cbn1cbiJdfQ==
|
|
144
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWNhbi1jYW4uanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbInVzZS1jYW4tY2FuLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFDLE1BQU0sbUJBQW1CLENBQUE7QUFDekQsT0FBTyxFQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUMsTUFBTSxPQUFPLENBQUE7QUFDeEMsT0FBTyxNQUFNLE1BQU0sY0FBYyxDQUFBO0FBQ2pDLE9BQU8sTUFBTSxNQUFNLGFBQWEsQ0FBQTtBQUNoQyxPQUFPLGVBQWUsTUFBTSxzQkFBc0IsQ0FBQTtBQUVsRCxzQkFBc0I7QUFDdEIsTUFBTSxjQUFlLFNBQVEsU0FBUztJQUNwQyxtQkFBbUI7SUFDbkIsWUFBWSxLQUFLO1FBQ2YsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ1osSUFBSSxDQUFDLGtCQUFrQixHQUFHLENBQUMsQ0FBQTtRQUMzQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO1FBQzdDLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFBO1FBQ3hCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFBO1FBQzFCLElBQUksQ0FBQyw0QkFBNEIsR0FBRyxLQUFLLENBQUE7UUFDekMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksT0FBTyxFQUFFLENBQUE7UUFDckMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsQ0FBQTtJQUM5QixDQUFDO0lBRUQsd0JBQXdCO0lBQ3hCLGdCQUFnQixDQUFDLEtBQUs7UUFDcEIsSUFBSSxLQUFLLEtBQUssSUFBSTtZQUFFLE9BQU8sTUFBTSxDQUFBO1FBQ2pDLElBQUksS0FBSyxLQUFLLFNBQVM7WUFBRSxPQUFPLFdBQVcsQ0FBQTtRQUUzQyxNQUFNLFNBQVMsR0FB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aEYsQ0FBQztDQUNGO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE9BQU8sVUFBVSxTQUFTLENBQUMsaUJBQWlCLEVBQUUsWUFBWSxHQUFHLFNBQVMsRUFBRSxPQUFPLEdBQUcsRUFBRTtJQUN6RixNQUFNLEVBQUMsS0FBSyxHQUFHLEtBQUssRUFBRSxHQUFHLFFBQVEsRUFBQyxHQUFHLE9BQU8sQ0FBQTtJQUM1QyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBRTFDLElBQUksWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUNuRixDQUFDO0lBRUQsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLGNBQWMsRUFBRSxFQUFDLGlCQUFpQixFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUMsQ0FBQyxDQUFBO0lBRXhGLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQTtBQUN6QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtTaGFwZUhvb2ssIHVzZVNoYXBlSG9va30gZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlXCJcbmltcG9ydCB7dXNlRWZmZWN0LCB1c2VNZW1vfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IENhbkNhbiBmcm9tIFwiLi9jYW4tY2FuLmpzXCJcbmltcG9ydCBEZXZpc2UgZnJvbSBcIi4vZGV2aXNlLmpzXCJcbmltcG9ydCB1c2VFdmVudEVtaXR0ZXIgZnJvbSBcInlhLXVzZS1ldmVudC1lbWl0dGVyXCJcblxuLyoqIFVzZUNhbkNhbkNsYXNzLiAqL1xuY2xhc3MgVXNlQ2FuQ2FuQ2xhc3MgZXh0ZW5kcyBTaGFwZUhvb2sge1xuICAvKiogQ29uc3RydWN0b3IuICovXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpXG4gICAgdGhpcy5hYmlsaXRpZXNSZXF1ZXN0SWQgPSAwXG4gICAgdGhpcy5jYW5DYW4gPSBDYW5DYW4uY3VycmVudCgpXG4gICAgdGhpcy5kZWJ1Z1Rva2VuID0gU3ltYm9sKFwidXNlLWNhbi1jYW4tZGVidWdcIilcbiAgICB0aGlzLmRldmlzZVJlbG9hZEtleSA9IDBcbiAgICB0aGlzLmlzSG9va01vdW50ZWQgPSBmYWxzZVxuICAgIHRoaXMubG9hZGVkV2l0aEN1c3RvbURlcGVuZGVuY2llcyA9IGZhbHNlXG4gICAgdGhpcy5kZXBlbmRlbmN5S2V5TWFwID0gbmV3IFdlYWtNYXAoKVxuICAgIHRoaXMuZGVwZW5kZW5jeUtleU5leHRJZCA9IDFcbiAgfVxuXG4gIC8qKiBkZXBlbmRlbmN5S2V5Rm9yLiAqL1xuICBkZXBlbmRlbmN5S2V5Rm9yKHZhbHVlKSB7XG4gICAgaWYgKHZhbHVlID09PSBudWxsKSByZXR1cm4gXCJudWxsXCJcbiAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuIFwidW5kZWZpbmVkXCJcblxuICAgIGNvbnN0IHZhbHVlVHlwZSA9IHR5cGVvZiB2YWx1ZVxuXG4gICAgaWYgKHZhbHVlVHlwZSAhPT0gXCJvYmplY3RcIiAmJiB2YWx1ZVR5cGUgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgcmV0dXJuIGAke3ZhbHVlVHlwZX06JHtTdHJpbmcodmFsdWUpfWBcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuZGVwZW5kZW5jeUtleU1hcC5oYXModmFsdWUpKSB7XG4gICAgICB0aGlzLmRlcGVuZGVuY3lLZXlNYXAuc2V0KHZhbHVlLCB0aGlzLmRlcGVuZGVuY3lLZXlOZXh0SWQpXG4gICAgICB0aGlzLmRlcGVuZGVuY3lLZXlOZXh0SWQgKz0gMVxuICAgIH1cblxuICAgIHJldHVybiBgJHt2YWx1ZVR5cGV9OnJlZjoke3RoaXMuZGVwZW5kZW5jeUtleU1hcC5nZXQodmFsdWUpfWBcbiAgfVxuXG4gIC8qKiBkZXBlbmRlbmN5TGlzdEtleS4gKi9cbiAgZGVwZW5kZW5jeUxpc3RLZXkobGlzdCkge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShsaXN0KSkgcmV0dXJuIHRoaXMuZGVwZW5kZW5jeUtleUZvcihsaXN0KVxuXG4gICAgcmV0dXJuIGxpc3QubWFwKCh2YWx1ZSkgPT4gdGhpcy5kZXBlbmRlbmN5S2V5Rm9yKHZhbHVlKSkuam9pbihcInxcIilcbiAgfVxuXG4gIC8qKiBsb2FkQWJpbGl0aWVzLiAqL1xuICBsb2FkQWJpbGl0aWVzID0gYXN5bmMgKHJlbG9hZEtleSkgPT4ge1xuICAgIC8vIERyb3AgbGF0ZSBhYmlsaXR5IHJlbG9hZCBjb21wbGV0aW9ucyBhZnRlciBkZXBlbmRlbmN5IGNoYW5nZXMgb3IgdW5tb3VudHMuXG4gICAgY29uc3QgcmVxdWVzdElkID0gdGhpcy5hYmlsaXRpZXNSZXF1ZXN0SWQgKyAxXG5cbiAgICB0aGlzLmFiaWxpdGllc1JlcXVlc3RJZCA9IHJlcXVlc3RJZFxuICAgIGNvbnN0IGFiaWxpdGllcyA9IHRoaXMucC5hYmlsaXRpZXNDYWxsYmFjaygpXG5cbiAgICBpZiAocmVsb2FkS2V5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGF3YWl0IHRoaXMuY2FuQ2FuLmxvYWRBYmlsaXRpZXMoYWJpbGl0aWVzKVxuICAgIH0gZWxzZSB7XG4gICAgICBhd2FpdCB0aGlzLmNhbkNhbi5yZWxvYWRBYmlsaXRpZXMoYWJpbGl0aWVzLCByZWxvYWRLZXkpXG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmlzSG9va01vdW50ZWQgfHwgcmVxdWVzdElkICE9IHRoaXMuYWJpbGl0aWVzUmVxdWVzdElkKSByZXR1cm5cblxuICAgIHRoaXMuc2V0U3RhdGUoe2xhc3RVcGRhdGU6IG5ldyBEYXRlKCl9KVxuICB9XG5cbiAgLyoqIG9uRGV2aXNlQ2hhbmdlLiAqL1xuICBvbkRldmlzZUNoYW5nZSA9ICgpID0+IHtcbiAgICB0aGlzLmRldmlzZVJlbG9hZEtleSArPSAxXG5cbiAgICBpZiAodGhpcy5wLmRlYnVnKSB7XG4gICAgICBjb25zb2xlLmxvZyhgW3VzZUNhbkNhbl0gZGV2aXNlLWNoYW5nZSByZWxvYWRLZXk9ZGV2aXNlOiR7dGhpcy5kZXZpc2VSZWxvYWRLZXl9YClcbiAgICB9XG5cbiAgICB0aGlzLmxvYWRBYmlsaXRpZXMoYGRldmlzZToke3RoaXMuZGV2aXNlUmVsb2FkS2V5fWApXG4gIH1cblxuICAvKiogb25SZXNldEFiaWxpdGllcy4gKi9cbiAgb25SZXNldEFiaWxpdGllcyA9ICgpID0+IHtcbiAgICBpZiAodGhpcy5wLmRlYnVnKSB7XG4gICAgICBjb25zb2xlLmxvZyhcIlt1c2VDYW5DYW5dIG9uUmVzZXRBYmlsaXRpZXMgLT4gbG9hZEFiaWxpdGllcygpXCIpXG4gICAgfVxuXG4gICAgdGhpcy5sb2FkQWJpbGl0aWVzKClcbiAgfVxuXG4gIC8qKiBvbkFiaWxpdGllc0xvYWRlZC4gKi9cbiAgb25BYmlsaXRpZXNMb2FkZWQgPSAoKSA9PiB7XG4gICAgaWYgKHRoaXMucC5kZWJ1Zykge1xuICAgICAgY29uc29sZS5sb2coXCJbdXNlQ2FuQ2FuXSBvbkFiaWxpdGllc0xvYWRlZFwiKVxuICAgIH1cblxuICAgIGlmICghdGhpcy5pc0hvb2tNb3VudGVkKSByZXR1cm5cblxuICAgIHRoaXMuc2V0U3RhdGUoe2xhc3RVcGRhdGU6IG5ldyBEYXRlKCl9KVxuICB9XG5cbiAgLyoqIHNldHVwLiAqL1xuICBzZXR1cCgpIHtcbiAgICB0aGlzLnVzZVN0YXRlcyh7XG4gICAgICBsYXN0VXBkYXRlOiAoKSA9PiBuZXcgRGF0ZSgpXG4gICAgfSlcblxuICAgIGNvbnN0IHtkZWJ1ZywgZGVwZW5kZW5jaWVzfSA9IHRoaXMucFxuICAgIGNvbnN0IGRlcGVuZGVuY3lMaXN0ID0gZGVwZW5kZW5jaWVzID8/IFtdXG4gICAgY29uc3QgZGVwZW5kZW5jeUtleSA9IHVzZU1lbW8oKCkgPT4gdGhpcy5kZXBlbmRlbmN5TGlzdEtleShkZXBlbmRlbmN5TGlzdCksIGRlcGVuZGVuY3lMaXN0KVxuICAgIGNvbnN0IGhhc0N1c3RvbURlcGVuZGVuY2llcyA9IGRlcGVuZGVuY2llcyAhPT0gdW5kZWZpbmVkXG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgdGhpcy5pc0hvb2tNb3VudGVkID0gdHJ1ZVxuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICB0aGlzLmlzSG9va01vdW50ZWQgPSBmYWxzZVxuICAgICAgICB0aGlzLmFiaWxpdGllc1JlcXVlc3RJZCArPSAxXG4gICAgICB9XG4gICAgfSwgW10pXG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgdGhpcy5jYW5DYW4uc2V0RGVidWcodGhpcy5kZWJ1Z1Rva2VuLCBkZWJ1ZylcblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgdGhpcy5jYW5DYW4uc2V0RGVidWcodGhpcy5kZWJ1Z1Rva2VuLCBmYWxzZSlcbiAgICAgIH1cbiAgICB9LCBbZGVidWddKVxuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChkZWJ1Zykge1xuICAgICAgICBjb25zb2xlLmxvZyhgW3VzZUNhbkNhbl0gZWZmZWN0IGhhc0N1c3RvbURlcGVuZGVuY2llcz0ke1N0cmluZyhoYXNDdXN0b21EZXBlbmRlbmNpZXMpfTsgZGVwZW5kZW5jeUtleT0ke2RlcGVuZGVuY3lLZXl9YClcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc0N1c3RvbURlcGVuZGVuY2llcykge1xuICAgICAgICBpZiAodGhpcy5sb2FkZWRXaXRoQ3VzdG9tRGVwZW5kZW5jaWVzKSB7XG4gICAgICAgICAgdGhpcy5sb2FkQWJpbGl0aWVzKGRlcGVuZGVuY3lLZXkpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5sb2FkZWRXaXRoQ3VzdG9tRGVwZW5kZW5jaWVzID0gdHJ1ZVxuICAgICAgICAgIHRoaXMubG9hZEFiaWxpdGllcygpXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubG9hZGVkV2l0aEN1c3RvbURlcGVuZGVuY2llcyA9IGZhbHNlXG4gICAgICAgIHRoaXMubG9hZEFiaWxpdGllcygpXG4gICAgICB9XG4gICAgfSwgW2RlcGVuZGVuY3lLZXksIGhhc0N1c3RvbURlcGVuZGVuY2llc10pXG5cbiAgICB1c2VFdmVudEVtaXR0ZXIoRGV2aXNlLmV2ZW50cygpLCBcIm9uRGV2aXNlU2lnbkluXCIsIHRoaXMub25EZXZpc2VDaGFuZ2UpXG4gICAgdXNlRXZlbnRFbWl0dGVyKERldmlzZS5ldmVudHMoKSwgXCJvbkRldmlzZVNpZ25PdXRcIiwgdGhpcy5vbkRldmlzZUNoYW5nZSlcbiAgICB1c2VFdmVudEVtaXR0ZXIodGhpcy5jYW5DYW4uZXZlbnRzLCBcIm9uQWJpbGl0aWVzTG9hZGVkXCIsIHRoaXMub25BYmlsaXRpZXNMb2FkZWQpXG4gICAgdXNlRXZlbnRFbWl0dGVyKHRoaXMuY2FuQ2FuLmV2ZW50cywgXCJvblJlc2V0QWJpbGl0aWVzXCIsIHRoaXMub25SZXNldEFiaWxpdGllcylcbiAgfVxufVxuXG4vKipcbiAqIEBwYXJhbSB7ZnVuY3Rpb24oKSA6IEFycmF5fSBhYmlsaXRpZXNDYWxsYmFja1xuICogQHBhcmFtIHtBcnJheX0gW2RlcGVuZGVuY2llc11cbiAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9uc11cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuZGVidWddXG4gKiBAcmV0dXJucyB7Q2FuQ2FufVxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VDYW5DYW4oYWJpbGl0aWVzQ2FsbGJhY2ssIGRlcGVuZGVuY2llcyA9IHVuZGVmaW5lZCwgb3B0aW9ucyA9IHt9KSB7XG4gIGNvbnN0IHtkZWJ1ZyA9IGZhbHNlLCAuLi5yZXN0QXJnc30gPSBvcHRpb25zXG4gIGNvbnN0IHJlc3RBcmdzS2V5cyA9IE9iamVjdC5rZXlzKHJlc3RBcmdzKVxuXG4gIGlmIChyZXN0QXJnc0tleXMubGVuZ3RoID4gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBvcHRpb25zIGdpdmVuIHRvIHVzZUNhbkNhbjogJHtyZXN0QXJnc0tleXMuam9pbihcIiwgXCIpfWApXG4gIH1cblxuICBjb25zdCBzaGFwZUhvb2sgPSB1c2VTaGFwZUhvb2soVXNlQ2FuQ2FuQ2xhc3MsIHthYmlsaXRpZXNDYWxsYmFjaywgZGVidWcsIGRlcGVuZGVuY2llc30pXG5cbiAgcmV0dXJuIHNoYXBlSG9vay5jYW5DYW5cbn1cbiJdfQ==
|
|
@@ -1,4 +1,35 @@
|
|
|
1
1
|
export default useCollection;
|
|
2
|
+
export type UseCollectionResult = {
|
|
3
|
+
models: Array<import("./base-model.js").default>;
|
|
4
|
+
modelIdsCacheString: Array<number | string>;
|
|
5
|
+
overallCount: number;
|
|
6
|
+
query: import("./collection.js").default<any>;
|
|
7
|
+
queryName: string;
|
|
8
|
+
queryPerKey: string;
|
|
9
|
+
queryQName: string;
|
|
10
|
+
querySName: string;
|
|
11
|
+
queryPageName: string;
|
|
12
|
+
result: import("./result.js").default;
|
|
13
|
+
searchParams: string[];
|
|
14
|
+
showNoRecordsAvailableContent: false | import("react").ReactNode;
|
|
15
|
+
showNoRecordsFoundContent: false | import("react").ReactNode;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* @typedef {object} UseCollectionResult
|
|
19
|
+
* @property {Array<import("./base-model.js").default>} models
|
|
20
|
+
* @property {Array<number | string>} modelIdsCacheString
|
|
21
|
+
* @property {number} overallCount
|
|
22
|
+
* @property {import("./collection.js").default} query
|
|
23
|
+
* @property {string} queryName
|
|
24
|
+
* @property {string} queryPerKey
|
|
25
|
+
* @property {string} queryQName
|
|
26
|
+
* @property {string} querySName
|
|
27
|
+
* @property {string} queryPageName
|
|
28
|
+
* @property {import("./result.js").default} result
|
|
29
|
+
* @property {string[]} searchParams
|
|
30
|
+
* @property {false | import("react").ReactNode} showNoRecordsAvailableContent
|
|
31
|
+
* @property {false | import("react").ReactNode} showNoRecordsFoundContent
|
|
32
|
+
*/
|
|
2
33
|
/**
|
|
3
34
|
* @param {object} props
|
|
4
35
|
* @param {Record<string, string[]>} props.abilities
|
|
@@ -19,21 +50,7 @@ export default useCollection;
|
|
|
19
50
|
* @param {Record<string, string[]>} props.select
|
|
20
51
|
* @param {Record<string, string[]>} props.selectColumns
|
|
21
52
|
* @param {any[]} cacheKeys
|
|
22
|
-
* @returns {
|
|
23
|
-
* models: Array<import("./base-model.js").default>,
|
|
24
|
-
* modelIdsCacheString: Array<number|string>,
|
|
25
|
-
* overallCount: number,
|
|
26
|
-
* query: import("./collection.js").default,
|
|
27
|
-
* queryName: string,
|
|
28
|
-
* queryPerKey: string,
|
|
29
|
-
* queryQName: string,
|
|
30
|
-
* querySName: string,
|
|
31
|
-
* queryPageName: string,
|
|
32
|
-
* result: import("./result.js").default,
|
|
33
|
-
* searchParams: string[],
|
|
34
|
-
* showNoRecordsAvailableContent: false | import("react").ReactNode,
|
|
35
|
-
* showNoRecordsFoundContent: false | import("react").ReactNode
|
|
36
|
-
* }}
|
|
53
|
+
* @returns {UseCollectionResult & Record<string, any>}
|
|
37
54
|
*/
|
|
38
55
|
declare function useCollection(props: {
|
|
39
56
|
abilities: Record<string, string[]>;
|
|
@@ -55,19 +72,5 @@ declare function useCollection(props: {
|
|
|
55
72
|
ransack: Record<string, any>;
|
|
56
73
|
select: Record<string, string[]>;
|
|
57
74
|
selectColumns: Record<string, string[]>;
|
|
58
|
-
}, cacheKeys?: any[]):
|
|
59
|
-
models: Array<import("./base-model.js").default>;
|
|
60
|
-
modelIdsCacheString: Array<number | string>;
|
|
61
|
-
overallCount: number;
|
|
62
|
-
query: import("./collection.js").default<any>;
|
|
63
|
-
queryName: string;
|
|
64
|
-
queryPerKey: string;
|
|
65
|
-
queryQName: string;
|
|
66
|
-
querySName: string;
|
|
67
|
-
queryPageName: string;
|
|
68
|
-
result: import("./result.js").default;
|
|
69
|
-
searchParams: string[];
|
|
70
|
-
showNoRecordsAvailableContent: false | import("react").ReactNode;
|
|
71
|
-
showNoRecordsFoundContent: false | import("react").ReactNode;
|
|
72
|
-
};
|
|
75
|
+
}, cacheKeys?: any[]): UseCollectionResult & Record<string, any>;
|
|
73
76
|
//# sourceMappingURL=use-collection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-collection.d.ts","sourceRoot":"/src/","sources":["use-collection.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"use-collection.d.ts","sourceRoot":"/src/","sources":["use-collection.js"],"names":[],"mappings":";;YAYc,KAAK,CAAC,OAAO,iBAAiB,EAAE,OAAO,CAAC;yBACxC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;kBACtB,MAAM;;eAEN,MAAM;iBACN,MAAM;gBACN,MAAM;gBACN,MAAM;mBACN,MAAM;YACN,OAAO,aAAa,EAAE,OAAO;kBAC7B,MAAM,EAAE;mCACR,KAAK,GAAG,OAAO,OAAO,EAAE,SAAS;+BACjC,KAAK,GAAG,OAAO,OAAO,EAAE,SAAS;;AAd/C;;;;;;;;;;;;;;;GAeG;AAEH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,sCApBG;IAAwC,SAAS,EAAzC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IACiB,UAAU,EAAnD,sCAAiC;IACN,aAAa,EAAxC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IACH,OAAO,EAAvB,MAAM,EAAE;IACoB,WAAW,EAAvC,MAAa,OAAO;IACN,KAAK,EAAnB,MAAM;IAC0C,UAAU,EAA1D,cAAc,iBAAiB,EAAE,OAAO;IACM,yBAAyB,EAAvE,MAAa,OAAO,OAAO,EAAE,SAAS;IACQ,qBAAqB,EAAnE,MAAa,OAAO,OAAO,EAAE,SAAS;IACb,cAAc,EAAvC,MAAa,IAAI;IACF,UAAU,EAAzB,OAAO;IACS,QAAQ,EAAxB,MAAM,EAAE;IACwF,WAAW,EAA3G,CAAS,IAA0C,EAA1C;QAAC,KAAK,EAAE,sCAAiC,CAAA;KAAC,KAAI,sCAAiC;IAC1E,SAAS,EAAvB,MAAM;IACqB,OAAO,EAAlC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IACa,MAAM,EAAtC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IACQ,aAAa,EAA7C,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;CAChC,cAAQ,GAAG,EAAE,GACH,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAsSrD"}
|
package/build/use-collection.js
CHANGED
|
@@ -3,10 +3,26 @@ import debounce from "debounce";
|
|
|
3
3
|
import { digg } from "diggerize";
|
|
4
4
|
import * as inflection from "inflection";
|
|
5
5
|
import ModelEvents from "./model-events.js";
|
|
6
|
-
import { useCallback,
|
|
6
|
+
import { useCallback, useEffect, useMemo, useRef } from "react";
|
|
7
7
|
import useCreatedEvent from "./use-created-event.js";
|
|
8
|
-
import useShape from "
|
|
8
|
+
import useShape from "./use-shape.js";
|
|
9
9
|
import useQueryParams from "on-location-changed/build/use-query-params.js";
|
|
10
|
+
/**
|
|
11
|
+
* @typedef {object} UseCollectionResult
|
|
12
|
+
* @property {Array<import("./base-model.js").default>} models
|
|
13
|
+
* @property {Array<number | string>} modelIdsCacheString
|
|
14
|
+
* @property {number} overallCount
|
|
15
|
+
* @property {import("./collection.js").default} query
|
|
16
|
+
* @property {string} queryName
|
|
17
|
+
* @property {string} queryPerKey
|
|
18
|
+
* @property {string} queryQName
|
|
19
|
+
* @property {string} querySName
|
|
20
|
+
* @property {string} queryPageName
|
|
21
|
+
* @property {import("./result.js").default} result
|
|
22
|
+
* @property {string[]} searchParams
|
|
23
|
+
* @property {false | import("react").ReactNode} showNoRecordsAvailableContent
|
|
24
|
+
* @property {false | import("react").ReactNode} showNoRecordsFoundContent
|
|
25
|
+
*/
|
|
10
26
|
/**
|
|
11
27
|
* @param {object} props
|
|
12
28
|
* @param {Record<string, string[]>} props.abilities
|
|
@@ -27,21 +43,7 @@ import useQueryParams from "on-location-changed/build/use-query-params.js";
|
|
|
27
43
|
* @param {Record<string, string[]>} props.select
|
|
28
44
|
* @param {Record<string, string[]>} props.selectColumns
|
|
29
45
|
* @param {any[]} cacheKeys
|
|
30
|
-
* @returns {
|
|
31
|
-
* models: Array<import("./base-model.js").default>,
|
|
32
|
-
* modelIdsCacheString: Array<number|string>,
|
|
33
|
-
* overallCount: number,
|
|
34
|
-
* query: import("./collection.js").default,
|
|
35
|
-
* queryName: string,
|
|
36
|
-
* queryPerKey: string,
|
|
37
|
-
* queryQName: string,
|
|
38
|
-
* querySName: string,
|
|
39
|
-
* queryPageName: string,
|
|
40
|
-
* result: import("./result.js").default,
|
|
41
|
-
* searchParams: string[],
|
|
42
|
-
* showNoRecordsAvailableContent: false | import("react").ReactNode,
|
|
43
|
-
* showNoRecordsFoundContent: false | import("react").ReactNode
|
|
44
|
-
* }}
|
|
46
|
+
* @returns {UseCollectionResult & Record<string, any>}
|
|
45
47
|
*/
|
|
46
48
|
const useCollection = (props, cacheKeys = []) => {
|
|
47
49
|
const { abilities, collection, defaultParams, groupBy, ifCondition, limit, modelClass, noRecordsAvailableContent = undefined, noRecordsFoundContent = undefined, onModelsLoaded, pagination = false, preloads = [], queryMethod, queryName: initialQueryName, ransack, select = {}, selectColumns, ...restProps } = props;
|
|
@@ -50,6 +52,8 @@ const useCollection = (props, cacheKeys = []) => {
|
|
|
50
52
|
}
|
|
51
53
|
const s = useShape(props);
|
|
52
54
|
const queryName = initialQueryName || digg(modelClass.modelClassData(), "collectionKey");
|
|
55
|
+
const loadModelsGenerationRef = useRef(0);
|
|
56
|
+
const loadOverallCountGenerationRef = useRef(0);
|
|
53
57
|
s.meta.queryParams = useQueryParams();
|
|
54
58
|
const hasQParams = useCallback(() => {
|
|
55
59
|
if (s.s.queryQName in s.m.queryParams)
|
|
@@ -89,8 +93,13 @@ const useCollection = (props, cacheKeys = []) => {
|
|
|
89
93
|
modelIdsCacheString = s.s.models.map((model) => model.cacheKey())?.join("---");
|
|
90
94
|
}
|
|
91
95
|
const loadOverallCount = useCallback(async () => {
|
|
96
|
+
// Ignore late overall-count responses once a newer load cycle has started or the hook unmounted.
|
|
97
|
+
const loadOverallCountGeneration = loadOverallCountGenerationRef.current + 1;
|
|
98
|
+
loadOverallCountGenerationRef.current = loadOverallCountGeneration;
|
|
92
99
|
const baseQuery = s.p.collection || s.p.modelClass.all();
|
|
93
100
|
const overallCount = await baseQuery.count();
|
|
101
|
+
if (loadOverallCountGeneration != loadOverallCountGenerationRef.current)
|
|
102
|
+
return;
|
|
94
103
|
s.set({
|
|
95
104
|
overallCount,
|
|
96
105
|
showNoRecordsAvailableContent: showNoRecordsAvailableContent({ overallCount }),
|
|
@@ -112,6 +121,9 @@ const useCollection = (props, cacheKeys = []) => {
|
|
|
112
121
|
});
|
|
113
122
|
}, []);
|
|
114
123
|
const loadModels = useCallback(async () => {
|
|
124
|
+
// Only the newest collection request is allowed to update state after navigation/filter changes.
|
|
125
|
+
const loadModelsGeneration = loadModelsGenerationRef.current + 1;
|
|
126
|
+
loadModelsGenerationRef.current = loadModelsGeneration;
|
|
115
127
|
let query = s.props.collection?.clone() || s.p.modelClass.ransack();
|
|
116
128
|
if (s.props.pagination) {
|
|
117
129
|
const page = s.m.queryParams[s.s.queryPageName] || 1;
|
|
@@ -152,6 +164,8 @@ const useCollection = (props, cacheKeys = []) => {
|
|
|
152
164
|
result = await query.result();
|
|
153
165
|
}
|
|
154
166
|
const models = result.models();
|
|
167
|
+
if (loadModelsGeneration != loadModelsGenerationRef.current)
|
|
168
|
+
return;
|
|
155
169
|
if (s.props.onModelsLoaded) {
|
|
156
170
|
s.p.onModelsLoaded({
|
|
157
171
|
models,
|
|
@@ -224,26 +238,34 @@ const useCollection = (props, cacheKeys = []) => {
|
|
|
224
238
|
const onCreated = useCallback(() => {
|
|
225
239
|
loadModelsDebounce();
|
|
226
240
|
}, []);
|
|
227
|
-
|
|
241
|
+
// Collection loading has to wait until mount so fast responses cannot get stranded in ShapeHook's pre-mount queue.
|
|
242
|
+
useEffect(() => {
|
|
228
243
|
if (!("ifCondition" in s.props) || s.props.ifCondition) {
|
|
229
244
|
loadQParams();
|
|
230
245
|
loadModels();
|
|
231
246
|
}
|
|
232
247
|
}, [
|
|
248
|
+
modelClass,
|
|
233
249
|
s.props.ifCondition,
|
|
250
|
+
s.s.queryName,
|
|
234
251
|
s.m.queryParams[s.s.queryQName],
|
|
235
252
|
s.m.queryParams[s.s.queryPageName],
|
|
236
253
|
s.m.queryParams[s.s.queryPerKey],
|
|
237
254
|
s.m.queryParams[s.s.querySName],
|
|
238
255
|
collection
|
|
239
256
|
].concat(cacheKeys));
|
|
240
|
-
|
|
257
|
+
useEffect(() => {
|
|
241
258
|
if (s.props.noRecordsAvailableContent) {
|
|
242
259
|
loadOverallCount();
|
|
243
260
|
}
|
|
244
|
-
}, []);
|
|
261
|
+
}, [modelClass]);
|
|
245
262
|
useCreatedEvent(s.p.modelClass, onCreated);
|
|
246
|
-
|
|
263
|
+
// Invalidate any in-flight async responses so unmounted hooks cannot write stale state.
|
|
264
|
+
useEffect(() => () => {
|
|
265
|
+
loadModelsGenerationRef.current += 1;
|
|
266
|
+
loadOverallCountGenerationRef.current += 1;
|
|
267
|
+
}, []);
|
|
268
|
+
useEffect(() => {
|
|
247
269
|
const connections = [];
|
|
248
270
|
if (s.s.models) {
|
|
249
271
|
for (const model of s.s.models) {
|
|
@@ -257,11 +279,11 @@ const useCollection = (props, cacheKeys = []) => {
|
|
|
257
279
|
}
|
|
258
280
|
};
|
|
259
281
|
}, [modelIdsCacheString]);
|
|
260
|
-
const result = Object.assign({}, s.state);
|
|
282
|
+
const result = /** @type {UseCollectionResult & Record<string, any>} */ (Object.assign({}, s.state));
|
|
261
283
|
const modelVariableName = inflection.pluralize(inflection.camelize(modelClass.modelClassData().name, true));
|
|
262
284
|
result.modelIdsCacheString = modelIdsCacheString;
|
|
263
285
|
result[modelVariableName] = s.s.models;
|
|
264
286
|
return result;
|
|
265
287
|
};
|
|
266
288
|
export default useCollection;
|
|
267
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWNvbGxlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbInVzZS1jb2xsZWN0aW9uLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDZGQUE2RjtBQUM3RixPQUFPLFFBQVEsTUFBTSxVQUFVLENBQUE7QUFDL0IsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLFdBQVcsQ0FBQTtBQUM5QixPQUFPLEtBQUssVUFBVSxNQUFNLFlBQVksQ0FBQTtBQUN4QyxPQUFPLFdBQVcsTUFBTSxtQkFBbUIsQ0FBQTtBQUMzQyxPQUFPLEVBQUMsV0FBVyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUMsTUFBTSxPQUFPLENBQUE7QUFDM0QsT0FBTyxlQUFlLE1BQU0sd0JBQXdCLENBQUE7QUFDcEQsT0FBTyxRQUFRLE1BQU0sc0NBQXNDLENBQUE7QUFDM0QsT0FBTyxjQUFjLE1BQU0sK0NBQStDLENBQUE7QUFFMUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUNHO0FBQ0gsTUFBTSxhQUFhLEdBQUcsQ0FBQyxLQUFLLEVBQUUsU0FBUyxHQUFHLEVBQUUsRUFBRSxFQUFFO0lBQzlDLE1BQU0sRUFDSixTQUFTLEVBQ1QsVUFBVSxFQUNWLGFBQWEsRUFDYixPQUFPLEVBQ1AsV0FBVyxFQUNYLEtBQUssRUFDTCxVQUFVLEVBQ1YseUJBQXlCLEdBQUcsU0FBUyxFQUNyQyxxQkFBcUIsR0FBRyxTQUFTLEVBQ2pDLGNBQWMsRUFDZCxVQUFVLEdBQUcsS0FBSyxFQUNsQixRQUFRLEdBQUcsRUFBRSxFQUNiLFdBQVcsRUFDWCxTQUFTLEVBQUUsZ0JBQWdCLEVBQzNCLE9BQU8sRUFDUCxNQUFNLEdBQUcsRUFBRSxFQUNYLGFBQWEsRUFDYixHQUFHLFNBQVMsRUFDYixHQUFHLEtBQUssQ0FBQTtJQUVULElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDdEMsTUFB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V0FBVyxFQUFFLENBQUM7Z0JBQ3BDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtZQUMxQixDQUFDO1FBQ0gsQ0FBQyxDQUFBO0lBQ0gsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFBO0lBRXpCLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUN6QyxNQUFNLGlCQUFpQixHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUE7SUFFM0csTUFBTSxDQUFDLG1CQUFtQixHQUFHLG1CQUFtQixDQUFBO0lBQ2hELE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFBO0lBRXRDLE9BQU8sTUFBTSxDQUFBO0FBQ2YsQ0FBQyxDQUFBO0FBRUQsZUFBZSxhQUFhLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycywgbm8tdXNlLWJlZm9yZS1kZWZpbmUsIHByZWZlci1vYmplY3Qtc3ByZWFkLCBzb3J0LWltcG9ydHMgKi9cbmltcG9ydCBkZWJvdW5jZSBmcm9tIFwiZGVib3VuY2VcIlxuaW1wb3J0IHtkaWdnfSBmcm9tIFwiZGlnZ2VyaXplXCJcbmltcG9ydCAqIGFzIGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIlxuaW1wb3J0IE1vZGVsRXZlbnRzIGZyb20gXCIuL21vZGVsLWV2ZW50cy5qc1wiXG5pbXBvcnQge3VzZUNhbGxiYWNrLCB1c2VMYXlvdXRFZmZlY3QsIHVzZU1lbW99IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgdXNlQ3JlYXRlZEV2ZW50IGZyb20gXCIuL3VzZS1jcmVhdGVkLWV2ZW50LmpzXCJcbmltcG9ydCB1c2VTaGFwZSBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvYnVpbGQvdXNlLXNoYXBlLmpzXCJcbmltcG9ydCB1c2VRdWVyeVBhcmFtcyBmcm9tIFwib24tbG9jYXRpb24tY2hhbmdlZC9idWlsZC91c2UtcXVlcnktcGFyYW1zLmpzXCJcblxuLyoqXG4gKiBAcGFyYW0ge29iamVjdH0gcHJvcHNcbiAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgc3RyaW5nW10+fSBwcm9wcy5hYmlsaXRpZXNcbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi9jb2xsZWN0aW9uLmpzXCIpLmRlZmF1bHR9IHByb3BzLmNvbGxlY3Rpb25cbiAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gcHJvcHMuZGVmYXVsdFBhcmFtc1xuICogQHBhcmFtIHtzdHJpbmdbXX0gcHJvcHMuZ3JvdXBCeVxuICogQHBhcmFtIHtmdW5jdGlvbigpIDogYm9vbGVhbn0gcHJvcHMuaWZDb25kaXRpb25cbiAqIEBwYXJhbSB7bnVtYmVyfSBwcm9wcy5saW1pdFxuICogQHBhcmFtIHt0eXBlb2YgaW1wb3J0KFwiLi9iYXNlLW1vZGVsLmpzXCIpLmRlZmF1bHR9IHByb3BzLm1vZGVsQ2xhc3NcbiAqIEBwYXJhbSB7ZnVuY3Rpb24oKSA6IGltcG9ydChcInJlYWN0XCIpLlJlYWN0Tm9kZX0gcHJvcHMubm9SZWNvcmRzQXZhaWxhYmxlQ29udGVudFxuICogQHBhcmFtIHtmdW5jdGlvbigpIDogaW1wb3J0KFwicmVhY3RcIikuUmVhY3ROb2RlfSBwcm9wcy5ub1JlY29yZHNGb3VuZENvbnRlbnRcbiAqIEBwYXJhbSB7ZnVuY3Rpb24oKSA6IHZvaWR9IHByb3BzLm9uTW9kZWxzTG9hZGVkXG4gKiBAcGFyYW0ge2Jvb2xlYW59IHByb3BzLnBhZ2luYXRpb25cbiAqIEBwYXJhbSB7c3RyaW5nW119IHByb3BzLnByZWxvYWRzXG4gKiBAcGFyYW0ge2Z1bmN0aW9uKHtxdWVyeTogaW1wb3J0KFwiLi9jb2xsZWN0aW9uLmpzXCIpLmRlZmF1bHR9KSA6IGltcG9ydChcIi4vY29sbGVjdGlvbi5qc1wiKS5kZWZhdWx0fSBwcm9wcy5xdWVyeU1ldGhvZFxuICogQHBhcmFtIHtzdHJpbmd9IHByb3BzLnF1ZXJ5TmFtZVxuICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBwcm9wcy5yYW5zYWNrXG4gKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIHN0cmluZ1tdPn0gcHJvcHMuc2VsZWN0XG4gKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIHN0cmluZ1tdPn0gcHJvcHMuc2VsZWN0Q29sdW1uc1xuICogQHBhcmFtIHthbnlbXX0gY2FjaGVLZXlzXG4gKiBAcmV0dXJucyB7e1xuICogICBtb2RlbHM6IEFycmF5PGltcG9ydChcIi4vYmFzZS1tb2RlbC5qc1wiKS5kZWZhdWx0PixcbiAqICAgbW9kZWxJZHNDYWNoZVN0cmluZzogQXJyYXk8bnVtYmVyfHN0cmluZz4sXG4gKiAgIG92ZXJhbGxDb3VudDogbnVtYmVyLFxuICogICBxdWVyeTogaW1wb3J0KFwiLi9jb2xsZWN0aW9uLmpzXCIpLmRlZmF1bHQsXG4gKiAgIHF1ZXJ5TmFtZTogc3RyaW5nLFxuICogICBxdWVyeVBlcktleTogc3RyaW5nLFxuICogICBxdWVyeVFOYW1lOiBzdHJpbmcsXG4gKiAgIHF1ZXJ5U05hbWU6IHN0cmluZyxcbiAqICAgcXVlcnlQYWdlTmFtZTogc3RyaW5nLFxuICogICByZXN1bHQ6IGltcG9ydChcIi4vcmVzdWx0LmpzXCIpLmRlZmF1bHQsXG4gKiAgIHNlYXJjaFBhcmFtczogc3RyaW5nW10sXG4gKiAgIHNob3dOb1JlY29yZHNBdmFpbGFibGVDb250ZW50OiBmYWxzZSB8IGltcG9ydChcInJlYWN0XCIpLlJlYWN0Tm9kZSxcbiAqICAgc2hvd05vUmVjb3Jkc0ZvdW5kQ29udGVudDogZmFsc2UgfCBpbXBvcnQoXCJyZWFjdFwiKS5SZWFjdE5vZGVcbiAqIH19XG4gKi9cbmNvbnN0IHVzZUNvbGxlY3Rpb24gPSAocHJvcHMsIGNhY2hlS2V5cyA9IFtdKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBhYmlsaXRpZXMsXG4gICAgY29sbGVjdGlvbixcbiAgICBkZWZhdWx0UGFyYW1zLFxuICAgIGdyb3VwQnksXG4gICAgaWZDb25kaXRpb24sXG4gICAgbGltaXQsXG4gICAgbW9kZWxDbGFzcyxcbiAgICBub1JlY29yZHNBdmFpbGFibGVDb250ZW50ID0gdW5kZWZpbmVkLFxuICAgIG5vUmVjb3Jkc0ZvdW5kQ29udGVudCA9IHVuZGVmaW5lZCxcbiAgICBvbk1vZGVsc0xvYWRlZCxcbiAgICBwYWdpbmF0aW9uID0gZmFsc2UsXG4gICAgcHJlbG9hZHMgPSBbXSxcbiAgICBxdWVyeU1ldGhvZCxcbiAgICBxdWVyeU5hbWU6IGluaXRpYWxRdWVyeU5hbWUsXG4gICAgcmFuc2FjayxcbiAgICBzZWxlY3QgPSB7fSxcbiAgICBzZWxlY3RDb2x1bW5zLFxuICAgIC4uLnJlc3RQcm9wc1xuICB9ID0gcHJvcHNcblxuICBpZiAoT2JqZWN0LmtleXMocmVzdFByb3BzKS5sZW5ndGggPiAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIHByb3BzIGdpdmVuIHRvIHVzZUNvbGxlY3Rpb246ICR7T2JqZWN0LmtleXMocmVzdFByb3BzKS5qb2luKFwiLCBcIil9YClcbiAgfVxuXG4gIGNvbnN0IHMgPSB1c2VTaGFwZShwcm9wcylcbiAgY29uc3QgcXVlcnlOYW1lID0gaW5pdGlhbFF1ZXJ5TmFtZSB8fCBkaWdnKG1vZGVsQ2xhc3MubW9kZWxDbGFzc0RhdGEoKSwgXCJjb2xsZWN0aW9uS2V5XCIpXG5cbiAgcy5tZXRhLnF1ZXJ5UGFyYW1zID0gdXNlUXVlcnlQYXJhbXMoKVxuXG4gIGNvbnN0IGhhc1FQYXJhbXMgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKHMucy5xdWVyeVFOYW1lIGluIHMubS5xdWVyeVBhcmFtcykgcmV0dXJuIHRydWVcblxuICAgIHJldHVybiBmYWxzZVxuICB9LCBbXSlcblxuICBjb25zdCBxUGFyYW1zID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChoYXNRUGFyYW1zKCkpIHJldHVybiBKU09OLnBhcnNlKGRpZ2cocy5tLnF1ZXJ5UGFyYW1zLCBzLnMucXVlcnlRTmFtZSkpXG5cbiAgICByZXR1cm4ge31cbiAgfSwgW10pXG5cbiAgcy51c2VTdGF0ZXMoe1xuICAgIG1vZGVsczogdW5kZWZpbmVkLFxuICAgIG92ZXJhbGxDb3VudDogdW5kZWZpbmVkLFxuICAgIHF1ZXJ5OiB1bmRlZmluZWQsXG4gICAgcXVlcnlOYW1lLFxuICAgIHF1ZXJ5UGVyS2V5OiBgJHtxdWVyeU5hbWV9X3BlcmAsXG4gICAgcXVlcnlRTmFtZTogYCR7cXVlcnlOYW1lfV9xYCxcbiAgICBxdWVyeVNOYW1lOiBgJHtxdWVyeU5hbWV9X3NgLFxuICAgIHF1ZXJ5UGFnZU5hbWU6IGAke3F1ZXJ5TmFtZX1fcGFnZWAsXG4gICAgcmVzdWx0OiB1bmRlZmluZWQsXG4gICAgc2VhcmNoUGFyYW1zOiB1bmRlZmluZWQsXG4gICAgc2hvd05vUmVjb3Jkc0F2YWlsYWJsZUNvbnRlbnQ6IGZhbHNlLFxuICAgIHNob3dOb1JlY29yZHNGb3VuZENvbnRlbnQ6IGZhbHNlXG4gIH0pXG4gIHMudXNlU3RhdGVzKHtcbiAgICBxUGFyYW1zOiAoKSA9PiBxUGFyYW1zKClcbiAgfSlcblxuICBsZXQgbW9kZWxJZHNDYWNoZVN0cmluZ1xuXG4gIGlmIChzLnMubW9kZWxzID09PSB1bmRlZmluZWQpIHtcbiAgICBtb2RlbElkc0NhY2hlU3RyaW5nID0gXCJtb2RlbHMtdW5kZWZpbmVkXCJcbiAgfSBlbHNlIGlmIChzLnMubW9kZWxzLmxlbmd0aCA9PT0gMCkge1xuICAgIG1vZGVsSWRzQ2FjaGVTdHJpbmcgPSBcIm5vLW1vZGVsc1wiXG4gIH0gZWxzZSB7XG4gICAgbW9kZWxJZHNDYWNoZVN0cmluZyA9IHMucy5tb2RlbHMubWFwKChtb2RlbCkgPT4gbW9kZWwuY2FjaGVLZXkoKSk/LmpvaW4oXCItLS1cIilcbiAgfVxuXG4gIGNvbnN0IGxvYWRPdmVyYWxsQ291bnQgPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgYmFzZVF1ZXJ5ID0gcy5wLmNvbGxlY3Rpb24gfHwgcy5wLm1vZGVsQ2xhc3MuYWxsKClcbiAgICBjb25zdCBvdmVyYWxsQ291bnQgPSBhd2FpdCBiYXNlUXVlcnkuY291bnQoKVxuXG4gICAgcy5zZXQoe1xuICAgICAgb3ZlcmFsbENvdW50LFxuICAgICAgc2hvd05vUmVjb3Jkc0F2YWlsYWJsZUNvbnRlbnQ6IHNob3dOb1JlY29yZHNBdmFpbGFibGVDb250ZW50KHtvdmVyYWxsQ291bnR9KSxcbiAgICAgIHNob3dOb1JlY29yZHNGb3VuZENvbnRlbnQ6IHNob3dOb1JlY29yZHNGb3VuZENvbnRlbnQoe292ZXJhbGxDb3VudH0pXG4gICAgfSlcbiAgfSwgW10pXG5cbiAgY29uc3QgbG9hZFFQYXJhbXMgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3QgcVBhcmFtc1RvU2V0ID0gaGFzUVBhcmFtcygpID8gcVBhcmFtcygpIDogT2JqZWN0LmFzc2lnbih7fSwgcy5wcm9wcy5kZWZhdWx0UGFyYW1zKVxuICAgIGNvbnN0IHNlYXJjaFBhcmFtcyA9IFtdXG5cbiAgICBpZiAocy5tLnF1ZXJ5UGFyYW1zW3Mucy5xdWVyeVNOYW1lXSkge1xuICAgICAgZm9yIChjb25zdCByYXdTZWFyY2hQYXJhbSBvZiBzLm0ucXVlcnlQYXJhbXNbcy5zLnF1ZXJ5U05hbWVdKSB7XG4gICAgICAgIGNvbnN0IHBhcnNlZFNlYXJjaFBhcmFtID0gSlNPTi5wYXJzZShyYXdTZWFyY2hQYXJhbSlcblxuICAgICAgICBzZWFyY2hQYXJhbXMucHVzaChwYXJzZWRTZWFyY2hQYXJhbSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzLnNldCh7XG4gICAgICBxUGFyYW1zOiBxUGFyYW1zVG9TZXQsXG4gICAgICBzZWFyY2hQYXJhbXNcbiAgICB9KVxuICB9LCBbXSlcblxuICBjb25zdCBsb2FkTW9kZWxzID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIGxldCBxdWVyeSA9IHMucHJvcHMuY29sbGVjdGlvbj8uY2xvbmUoKSB8fCBzLnAubW9kZWxDbGFzcy5yYW5zYWNrKClcblxuICAgIGlmIChzLnByb3BzLnBhZ2luYXRpb24pIHtcbiAgICAgIGNvbnN0IHBhZ2UgPSBzLm0ucXVlcnlQYXJhbXNbcy5zLnF1ZXJ5UGFnZU5hbWVdIHx8IDFcbiAgICAgIGxldCBwZXIgPSBzLm0ucXVlcnlQYXJhbXNbcy5zLnF1ZXJ5UGVyS2V5XSB8fCAzMFxuXG4gICAgICBpZiAocGVyID09IFwiYWxsXCIpIHtcbiAgICAgICAgcGVyID0gOTk5Xzk5OV85OTlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBlciA9IE51bWJlcihwZXIpXG4gICAgICB9XG5cbiAgICAgIHF1ZXJ5LnBhZ2UocGFnZSkucGVyKHBlcilcbiAgICB9XG5cbiAgICBpZiAocy5wcm9wcy5ncm91cEJ5KSBxdWVyeSA9IHF1ZXJ5Lmdyb3VwQnkoLi4ucy5wLmdyb3VwQnkpXG5cbiAgICBxdWVyeSA9IHF1ZXJ5XG4gICAgICAucmFuc2FjayhzLnMucVBhcmFtcylcbiAgICAgIC5zZWFyY2gocy5zLnNlYXJjaFBhcmFtcylcbiAgICAgIC5zZWFyY2hLZXkocy5zLnF1ZXJ5UU5hbWUpXG4gICAgICAucGFnZUtleShzLnMucXVlcnlQYWdlTmFtZSlcbiAgICAgIC5wZXJLZXkocy5zLnF1ZXJ5UGVyS2V5KVxuXG4gICAgaWYgKHMucHJvcHMuYWJpbGl0aWVzKSBxdWVyeS5hYmlsaXRpZXMocy5wLmFiaWxpdGllcylcbiAgICBpZiAocy5wcm9wcy5saW1pdCAhPT0gdW5kZWZpbmVkKSBxdWVyeS5saW1pdChzLnAubGltaXQpXG4gICAgaWYgKHMucHJvcHMucHJlbG9hZHMpIHF1ZXJ5LnByZWxvYWQocy5wLnByZWxvYWRzKVxuICAgIGlmIChzLnByb3BzLnJhbnNhY2spIHF1ZXJ5LnJhbnNhY2socy5wcm9wcy5yYW5zYWNrKVxuICAgIGlmIChzLnByb3BzLnNlbGVjdCkgcXVlcnkuc2VsZWN0KHMucC5zZWxlY3QpXG4gICAgaWYgKHMucHJvcHMuc2VsZWN0Q29sdW1ucykgcXVlcnkuc2VsZWN0Q29sdW1ucyhzLnAuc2VsZWN0Q29sdW1ucylcblxuICAgIGxldCByZXN1bHRcblxuICAgIGlmIChzLnByb3BzLnF1ZXJ5TWV0aG9kKSB7XG4gICAgICByZXN1bHQgPSBhd2FpdCBzLnAucXVlcnlNZXRob2Qoe3F1ZXJ5fSlcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0ID0gYXdhaXQgcXVlcnkucmVzdWx0KClcbiAgICB9XG5cbiAgICBjb25zdCBtb2RlbHMgPSByZXN1bHQubW9kZWxzKClcblxuICAgIGlmIChzLnByb3BzLm9uTW9kZWxzTG9hZGVkKSB7XG4gICAgICBzLnAub25Nb2RlbHNMb2FkZWQoe1xuICAgICAgICBtb2RlbHMsXG4gICAgICAgIHFQYXJhbXM6IHMucy5xUGFyYW1zLFxuICAgICAgICBxdWVyeSxcbiAgICAgICAgcmVzdWx0XG4gICAgICB9KVxuICAgIH1cblxuICAgIHMuc2V0KHtcbiAgICAgIG1vZGVsczogcmVzdWx0Lm1vZGVscygpLFxuICAgICAgcXVlcnksXG4gICAgICByZXN1bHQsXG4gICAgICBzaG93Tm9SZWNvcmRzQXZhaWxhYmxlQ29udGVudDogc2hvd05vUmVjb3Jkc0F2YWlsYWJsZUNvbnRlbnQoe21vZGVsc30pLFxuICAgICAgc2hvd05vUmVjb3Jkc0ZvdW5kQ29udGVudDogc2hvd05vUmVjb3Jkc0ZvdW5kQ29udGVudCh7bW9kZWxzfSlcbiAgICB9KVxuICB9LCBbXSlcblxuICBjb25zdCBsb2FkTW9kZWxzRGVib3VuY2UgPSB1c2VDYWxsYmFjayhkZWJvdW5jZShsb2FkTW9kZWxzKSwgW10pXG4gIGNvbnN0IG9uTW9kZWxEZXN0cm95ZWQgPSB1c2VDYWxsYmFjaygoYXJncykgPT4ge1xuICAgIHMuc2V0KHtcbiAgICAgIG1vZGVsczogcy5zLm1vZGVscy5maWx0ZXIoKG1vZGVsKSA9PiBtb2RlbC5pZCgpICE9IGFyZ3MubW9kZWwuaWQoKSlcbiAgICB9KVxuICB9LCBbXSlcblxuICBjb25zdCBvbk1vZGVsVXBkYXRlZCA9IHVzZUNhbGxiYWNrKChhcmdzKSA9PiB7XG4gICAgY29uc3QgdXBkYXRlZE1vZGVsID0gZGlnZyhhcmdzLCBcIm1vZGVsXCIpXG4gICAgY29uc3QgZm91bmRNb2RlbCA9IHMucy5tb2RlbHMuZmluZCgobW9kZWwpID0+IG1vZGVsLmlkKCkgPT0gdXBkYXRlZE1vZGVsLmlkKCkpXG5cbiAgICBpZiAoZm91bmRNb2RlbCkgbG9hZE1vZGVsc0RlYm91bmNlKClcbiAgfSwgW10pXG5cbiAgY29uc3Qgc2hvd05vUmVjb3Jkc0F2YWlsYWJsZUNvbnRlbnQgPSB1c2VDYWxsYmFjaygoYXJncykgPT4ge1xuICAgIGxldCBtb2RlbHMsIG92ZXJhbGxDb3VudFxuXG4gICAgaWYgKGFyZ3MubW9kZWxzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG1vZGVscyA9IGFyZ3MubW9kZWxzXG4gICAgfSBlbHNlIGlmIChzLnMubW9kZWxzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG1vZGVscyA9IHMucy5tb2RlbHNcbiAgICB9XG5cbiAgICBpZiAoYXJncy5vdmVyYWxsQ291bnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgb3ZlcmFsbENvdW50ID0gYXJncy5vdmVyYWxsQ291bnRcbiAgICB9IGVsc2UgaWYgKHMucy5vdmVyYWxsQ291bnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgb3ZlcmFsbENvdW50ID0gcy5zLm92ZXJhbGxDb3VudFxuICAgIH1cblxuICAgIGlmIChtb2RlbHMgPT09IHVuZGVmaW5lZCB8fCBvdmVyYWxsQ291bnQgPT09IHVuZGVmaW5lZCB8fCBzLnAubm9SZWNvcmRzQXZhaWxhYmxlQ29udGVudCA9PT0gdW5kZWZpbmVkKSByZXR1cm4gZmFsc2VcbiAgICBpZiAobW9kZWxzLmxlbmd0aCA9PT0gMCAmJiBvdmVyYWxsQ291bnQgPT09IDAgJiYgcy5wLm5vUmVjb3Jkc0F2YWlsYWJsZUNvbnRlbnQpIHJldHVybiB0cnVlXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHNob3dOb1JlY29yZHNGb3VuZENvbnRlbnQgPSB1c2VDYWxsYmFjaygoYXJncykgPT4ge1xuICAgIGxldCBtb2RlbHMsIG92ZXJhbGxDb3VudFxuXG4gICAgaWYgKGFyZ3MubW9kZWxzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG1vZGVscyA9IGFyZ3MubW9kZWxzXG4gICAgfSBlbHNlIGlmIChzLnMubW9kZWxzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG1vZGVscyA9IHMucy5tb2RlbHNcbiAgICB9XG5cbiAgICBpZiAoYXJncy5vdmVyYWxsQ291bnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgb3ZlcmFsbENvdW50ID0gYXJncy5vdmVyYWxsQ291bnRcbiAgICB9IGVsc2UgaWYgKHMucy5vdmVyYWxsQ291bnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgb3ZlcmFsbENvdW50ID0gcy5zLm92ZXJhbGxDb3VudFxuICAgIH1cblxuICAgIGlmIChtb2RlbHMgPT09IHVuZGVmaW5lZCB8fCBzLnByb3BzLm5vUmVjb3Jkc0ZvdW5kQ29udGVudCA9PT0gdW5kZWZpbmVkKSByZXR1cm4gZmFsc2VcblxuICAgIC8vIERvbnQgc2hvdyBub1JlY29yZHNBdmFpbGFibGVDb250ZW50IHRvZ2V0aGVyIHdpdGggbm9SZWNvcmRzQXZhaWxhYmxlQ29udGVudFxuICAgIGlmIChtb2RlbHMubGVuZ3RoID09PSAwICYmIG92ZXJhbGxDb3VudCA9PT0gMCAmJiBzLnByb3BzLm5vUmVjb3Jkc0F2YWlsYWJsZUNvbnRlbnQpIHJldHVybiBmYWxzZVxuICAgIGlmIChtb2RlbHMubGVuZ3RoID09PSAwICYmIHMucHJvcHMubm9SZWNvcmRzRm91bmRDb250ZW50KSByZXR1cm4gdHJ1ZVxuICB9LCBbXSlcblxuICBjb25zdCBvbkNyZWF0ZWQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgbG9hZE1vZGVsc0RlYm91bmNlKClcbiAgfSwgW10pXG5cbiAgdXNlTWVtbyhcbiAgICAoKSA9PiB7XG4gICAgICBpZiAoIShcImlmQ29uZGl0aW9uXCIgaW4gcy5wcm9wcykgfHwgcy5wcm9wcy5pZkNvbmRpdGlvbikge1xuICAgICAgICBsb2FkUVBhcmFtcygpXG4gICAgICAgIGxvYWRNb2RlbHMoKVxuICAgICAgfVxuICAgIH0sXG4gICAgW1xuICAgICAgcy5wcm9wcy5pZkNvbmRpdGlvbixcbiAgICAgIHMubS5xdWVyeVBhcmFtc1tzLnMucXVlcnlRTmFtZV0sXG4gICAgICBzLm0ucXVlcnlQYXJhbXNbcy5zLnF1ZXJ5UGFnZU5hbWVdLFxuICAgICAgcy5tLnF1ZXJ5UGFyYW1zW3Mucy5xdWVyeVBlcktleV0sXG4gICAgICBzLm0ucXVlcnlQYXJhbXNbcy5zLnF1ZXJ5U05hbWVdLFxuICAgICAgY29sbGVjdGlvblxuICAgIF0uY29uY2F0KGNhY2hlS2V5cylcbiAgKVxuXG4gIHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChzLnByb3BzLm5vUmVjb3Jkc0F2YWlsYWJsZUNvbnRlbnQpIHtcbiAgICAgIGxvYWRPdmVyYWxsQ291bnQoKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgdXNlQ3JlYXRlZEV2ZW50KHMucC5tb2RlbENsYXNzLCBvbkNyZWF0ZWQpXG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBjb25uZWN0aW9ucyA9IFtdXG5cbiAgICBpZiAocy5zLm1vZGVscykge1xuICAgICAgZm9yKGNvbnN0IG1vZGVsIG9mIHMucy5tb2RlbHMpIHtcbiAgICAgICAgY29ubmVjdGlvbnMucHVzaChNb2RlbEV2ZW50cy5jb25uZWN0VXBkYXRlZChtb2RlbCwgb25Nb2RlbFVwZGF0ZWQpKVxuICAgICAgICBjb25uZWN0aW9ucy5wdXNoKE1vZGVsRXZlbnRzLmNvbm5lY3REZXN0cm95ZWQobW9kZWwsIG9uTW9kZWxEZXN0cm95ZWQpKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBmb3IoY29uc3QgY29ubmVjdGlvbiBvZiBjb25uZWN0aW9ucykge1xuICAgICAgICBjb25uZWN0aW9uLnVuc3Vic2NyaWJlKClcbiAgICAgIH1cbiAgICB9XG4gIH0sIFttb2RlbElkc0NhY2hlU3RyaW5nXSlcblxuICBjb25zdCByZXN1bHQgPSBPYmplY3QuYXNzaWduKHt9LCBzLnN0YXRlKVxuICBjb25zdCBtb2RlbFZhcmlhYmxlTmFtZSA9IGluZmxlY3Rpb24ucGx1cmFsaXplKGluZmxlY3Rpb24uY2FtZWxpemUobW9kZWxDbGFzcy5tb2RlbENsYXNzRGF0YSgpLm5hbWUsIHRydWUpKVxuXG4gIHJlc3VsdC5tb2RlbElkc0NhY2hlU3RyaW5nID0gbW9kZWxJZHNDYWNoZVN0cmluZ1xuICByZXN1bHRbbW9kZWxWYXJpYWJsZU5hbWVdID0gcy5zLm1vZGVsc1xuXG4gIHJldHVybiByZXN1bHRcbn1cblxuZXhwb3J0IGRlZmF1bHQgdXNlQ29sbGVjdGlvblxuIl19
|
|
289
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWNvbGxlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiL3NyYy8iLCJzb3VyY2VzIjpbInVzZS1jb2xsZWN0aW9uLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDZGQUE2RjtBQUM3RixPQUFPLFFBQVEsTUFBTSxVQUFVLENBQUE7QUFDL0IsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLFdBQVcsQ0FBQTtBQUM5QixPQUFPLEtBQUssVUFBVSxNQUFNLFlBQVksQ0FBQTtBQUN4QyxPQUFPLFdBQVcsTUFBTSxtQkFBbUIsQ0FBQTtBQUMzQyxPQUFPLEVBQUMsV0FBVyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFDLE1BQU0sT0FBTyxDQUFBO0FBQzdELE9BQU8sZUFBZSxNQUFNLHdCQUF3QixDQUFBO0FBQ3BELE9BQU8sUUFBUSxNQUFNLGdCQUFnQixDQUFBO0FBQ3JDLE9BQU8sY0FBYyxNQUFNLCtDQUErQyxDQUFBO0FBRTFFOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVIOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFDSCxNQUFNLGFBQWEsR0FBRyxDQUFDLEtBQUssRUFBRSxTQUFTLEdBQUcsRUFBRSxFQUFFLEVBQUU7SUFDOUMsTUFBTSxFQUNKLFNBQVMsRUFDVCxVQUFVLEVBQ1YsYUFBYSxFQUNiLE9BQU8sRUFDUCxXQUFXLEVBQ1gsS0FBSyxFQUNMLFVBQVUsRUFDVix5QkFBeUIsR0FBRyxTQUFTLEVBQ3JDLHFCQUFxQixHQUFHLFNBQVMsRUFDakMsY0FBYyxFQUNkLFVBQVUsR0FBRyxLQUFLLEVBQ2xCLFFBQVEsR0FBRyxFQUFFLEVBQ2IsV0FBVyxFQUNYLFNBQVMsRUFBRSxnQkFBZ0IsRUFDM0IsT0FBTyxFQUNQLE1BQU0sR0FBRyxFQUFFLEVBQ1gsYUFBYSxFQUNiLEdBQUcsU0FBUyxFQUNiLEdBQUcsS0FBSyxDQUFBO0lBRVQsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFD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LFNBQVMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUUzRyxNQUFNLENBQUMsbUJBQW1CLEdBQUcsbUJBQW1CLENBQUE7SUFDaEQsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUE7SUFFdEMsT0FBTyxNQUFNLENBQUE7QUFDZixDQUFDLENBQUE7QUFFRCxlQUFlLGFBQWEsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzLCBuby11c2UtYmVmb3JlLWRlZmluZSwgcHJlZmVyLW9iamVjdC1zcHJlYWQsIHNvcnQtaW1wb3J0cyAqL1xuaW1wb3J0IGRlYm91bmNlIGZyb20gXCJkZWJvdW5jZVwiXG5pbXBvcnQge2RpZ2d9IGZyb20gXCJkaWdnZXJpemVcIlxuaW1wb3J0ICogYXMgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiXG5pbXBvcnQgTW9kZWxFdmVudHMgZnJvbSBcIi4vbW9kZWwtZXZlbnRzLmpzXCJcbmltcG9ydCB7dXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHVzZUNyZWF0ZWRFdmVudCBmcm9tIFwiLi91c2UtY3JlYXRlZC1ldmVudC5qc1wiXG5pbXBvcnQgdXNlU2hhcGUgZnJvbSBcIi4vdXNlLXNoYXBlLmpzXCJcbmltcG9ydCB1c2VRdWVyeVBhcmFtcyBmcm9tIFwib24tbG9jYXRpb24tY2hhbmdlZC9idWlsZC91c2UtcXVlcnktcGFyYW1zLmpzXCJcblxuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBVc2VDb2xsZWN0aW9uUmVzdWx0XG4gKiBAcHJvcGVydHkge0FycmF5PGltcG9ydChcIi4vYmFzZS1tb2RlbC5qc1wiKS5kZWZhdWx0Pn0gbW9kZWxzXG4gKiBAcHJvcGVydHkge0FycmF5PG51bWJlciB8IHN0cmluZz59IG1vZGVsSWRzQ2FjaGVTdHJpbmdcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBvdmVyYWxsQ291bnRcbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi9jb2xsZWN0aW9uLmpzXCIpLmRlZmF1bHR9IHF1ZXJ5XG4gKiBAcHJvcGVydHkge3N0cmluZ30gcXVlcnlOYW1lXG4gKiBAcHJvcGVydHkge3N0cmluZ30gcXVlcnlQZXJLZXlcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBxdWVyeVFOYW1lXG4gKiBAcHJvcGVydHkge3N0cmluZ30gcXVlcnlTTmFtZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IHF1ZXJ5UGFnZU5hbWVcbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi9yZXN1bHQuanNcIikuZGVmYXVsdH0gcmVzdWx0XG4gKiBAcHJvcGVydHkge3N0cmluZ1tdfSBzZWFyY2hQYXJhbXNcbiAqIEBwcm9wZXJ0eSB7ZmFsc2UgfCBpbXBvcnQoXCJyZWFjdFwiKS5SZWFjdE5vZGV9IHNob3dOb1JlY29yZHNBdmFpbGFibGVDb250ZW50XG4gKiBAcHJvcGVydHkge2ZhbHNlIHwgaW1wb3J0KFwicmVhY3RcIikuUmVhY3ROb2RlfSBzaG93Tm9SZWNvcmRzRm91bmRDb250ZW50XG4gKi9cblxuLyoqXG4gKiBAcGFyYW0ge29iamVjdH0gcHJvcHNcbiAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgc3RyaW5nW10+fSBwcm9wcy5hYmlsaXRpZXNcbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi9jb2xsZWN0aW9uLmpzXCIpLmRlZmF1bHR9IHByb3BzLmNvbGxlY3Rpb25cbiAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gcHJvcHMuZGVmYXVsdFBhcmFtc1xuICogQHBhcmFtIHtzdHJpbmdbXX0gcHJvcHMuZ3JvdXBCeVxuICogQHBhcmFtIHtmdW5jdGlvbigpIDogYm9vbGVhbn0gcHJvcHMuaWZDb25kaXRpb25cbiAqIEBwYXJhbSB7bnVtYmVyfSBwcm9wcy5saW1pdFxuICogQHBhcmFtIHt0eXBlb2YgaW1wb3J0KFwiLi9iYXNlLW1vZGVsLmpzXCIpLmRlZmF1bHR9IHByb3BzLm1vZGVsQ2xhc3NcbiAqIEBwYXJhbSB7ZnVuY3Rpb24oKSA6IGltcG9ydChcInJlYWN0XCIpLlJlYWN0Tm9kZX0gcHJvcHMubm9SZWNvcmRzQXZhaWxhYmxlQ29udGVudFxuICogQHBhcmFtIHtmdW5jdGlvbigpIDogaW1wb3J0KFwicmVhY3RcIikuUmVhY3ROb2RlfSBwcm9wcy5ub1JlY29yZHNGb3VuZENvbnRlbnRcbiAqIEBwYXJhbSB7ZnVuY3Rpb24oKSA6IHZvaWR9IHByb3BzLm9uTW9kZWxzTG9hZGVkXG4gKiBAcGFyYW0ge2Jvb2xlYW59IHByb3BzLnBhZ2luYXRpb25cbiAqIEBwYXJhbSB7c3RyaW5nW119IHByb3BzLnByZWxvYWRzXG4gKiBAcGFyYW0ge2Z1bmN0aW9uKHtxdWVyeTogaW1wb3J0KFwiLi9jb2xsZWN0aW9uLmpzXCIpLmRlZmF1bHR9KSA6IGltcG9ydChcIi4vY29sbGVjdGlvbi5qc1wiKS5kZWZhdWx0fSBwcm9wcy5xdWVyeU1ldGhvZFxuICogQHBhcmFtIHtzdHJpbmd9IHByb3BzLnF1ZXJ5TmFtZVxuICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBwcm9wcy5yYW5zYWNrXG4gKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIHN0cmluZ1tdPn0gcHJvcHMuc2VsZWN0XG4gKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIHN0cmluZ1tdPn0gcHJvcHMuc2VsZWN0Q29sdW1uc1xuICogQHBhcmFtIHthbnlbXX0gY2FjaGVLZXlzXG4gKiBAcmV0dXJucyB7VXNlQ29sbGVjdGlvblJlc3VsdCAmIFJlY29yZDxzdHJpbmcsIGFueT59XG4gKi9cbmNvbnN0IHVzZUNvbGxlY3Rpb24gPSAocHJvcHMsIGNhY2hlS2V5cyA9IFtdKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBhYmlsaXRpZXMsXG4gICAgY29sbGVjdGlvbixcbiAgICBkZWZhdWx0UGFyYW1zLFxuICAgIGdyb3VwQnksXG4gICAgaWZDb25kaXRpb24sXG4gICAgbGltaXQsXG4gICAgbW9kZWxDbGFzcyxcbiAgICBub1JlY29yZHNBdmFpbGFibGVDb250ZW50ID0gdW5kZWZpbmVkLFxuICAgIG5vUmVjb3Jkc0ZvdW5kQ29udGVudCA9IHVuZGVmaW5lZCxcbiAgICBvbk1vZGVsc0xvYWRlZCxcbiAgICBwYWdpbmF0aW9uID0gZmFsc2UsXG4gICAgcHJlbG9hZHMgPSBbXSxcbiAgICBxdWVyeU1ldGhvZCxcbiAgICBxdWVyeU5hbWU6IGluaXRpYWxRdWVyeU5hbWUsXG4gICAgcmFuc2FjayxcbiAgICBzZWxlY3QgPSB7fSxcbiAgICBzZWxlY3RDb2x1bW5zLFxuICAgIC4uLnJlc3RQcm9wc1xuICB9ID0gcHJvcHNcblxuICBpZiAoT2JqZWN0LmtleXMocmVzdFByb3BzKS5sZW5ndGggPiAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIHByb3BzIGdpdmVuIHRvIHVzZUNvbGxlY3Rpb246ICR7T2JqZWN0LmtleXMocmVzdFByb3BzKS5qb2luKFwiLCBcIil9YClcbiAgfVxuXG4gIGNvbnN0IHMgPSB1c2VTaGFwZShwcm9wcylcbiAgY29uc3QgcXVlcnlOYW1lID0gaW5pdGlhbFF1ZXJ5TmFtZSB8fCBkaWdnKG1vZGVsQ2xhc3MubW9kZWxDbGFzc0RhdGEoKSwgXCJjb2xsZWN0aW9uS2V5XCIpXG4gIGNvbnN0IGxvYWRNb2RlbHNHZW5lcmF0aW9uUmVmID0gdXNlUmVmKDApXG4gIGNvbnN0IGxvYWRPdmVyYWxsQ291bnRHZW5lcmF0aW9uUmVmID0gdXNlUmVmKDApXG5cbiAgcy5tZXRhLnF1ZXJ5UGFyYW1zID0gdXNlUXVlcnlQYXJhbXMoKVxuXG4gIGNvbnN0IGhhc1FQYXJhbXMgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKHMucy5xdWVyeVFOYW1lIGluIHMubS5xdWVyeVBhcmFtcykgcmV0dXJuIHRydWVcblxuICAgIHJldHVybiBmYWxzZVxuICB9LCBbXSlcblxuICBjb25zdCBxUGFyYW1zID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChoYXNRUGFyYW1zKCkpIHJldHVybiBKU09OLnBhcnNlKGRpZ2cocy5tLnF1ZXJ5UGFyYW1zLCBzLnMucXVlcnlRTmFtZSkpXG5cbiAgICByZXR1cm4ge31cbiAgfSwgW10pXG5cbiAgcy51c2VTdGF0ZXMoe1xuICAgIG1vZGVsczogdW5kZWZpbmVkLFxuICAgIG92ZXJhbGxDb3VudDogdW5kZWZpbmVkLFxuICAgIHF1ZXJ5OiB1bmRlZmluZWQsXG4gICAgcXVlcnlOYW1lLFxuICAgIHF1ZXJ5UGVyS2V5OiBgJHtxdWVyeU5hbWV9X3BlcmAsXG4gICAgcXVlcnlRTmFtZTogYCR7cXVlcnlOYW1lfV9xYCxcbiAgICBxdWVyeVNOYW1lOiBgJHtxdWVyeU5hbWV9X3NgLFxuICAgIHF1ZXJ5UGFnZU5hbWU6IGAke3F1ZXJ5TmFtZX1fcGFnZWAsXG4gICAgcmVzdWx0OiB1bmRlZmluZWQsXG4gICAgc2VhcmNoUGFyYW1zOiB1bmRlZmluZWQsXG4gICAgc2hvd05vUmVjb3Jkc0F2YWlsYWJsZUNvbnRlbnQ6IGZhbHNlLFxuICAgIHNob3dOb1JlY29yZHNGb3VuZENvbnRlbnQ6IGZhbHNlXG4gIH0pXG4gIHMudXNlU3RhdGVzKHtcbiAgICBxUGFyYW1zOiAoKSA9PiBxUGFyYW1zKClcbiAgfSlcblxuICBsZXQgbW9kZWxJZHNDYWNoZVN0cmluZ1xuXG4gIGlmIChzLnMubW9kZWxzID09PSB1bmRlZmluZWQpIHtcbiAgICBtb2RlbElkc0NhY2hlU3RyaW5nID0gXCJtb2RlbHMtdW5kZWZpbmVkXCJcbiAgfSBlbHNlIGlmIChzLnMubW9kZWxzLmxlbmd0aCA9PT0gMCkge1xuICAgIG1vZGVsSWRzQ2FjaGVTdHJpbmcgPSBcIm5vLW1vZGVsc1wiXG4gIH0gZWxzZSB7XG4gICAgbW9kZWxJZHNDYWNoZVN0cmluZyA9IHMucy5tb2RlbHMubWFwKChtb2RlbCkgPT4gbW9kZWwuY2FjaGVLZXkoKSk/LmpvaW4oXCItLS1cIilcbiAgfVxuXG4gIGNvbnN0IGxvYWRPdmVyYWxsQ291bnQgPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgLy8gSWdub3JlIGxhdGUgb3ZlcmFsbC1jb3VudCByZXNwb25zZXMgb25jZSBhIG5ld2VyIGxvYWQgY3ljbGUgaGFzIHN0YXJ0ZWQgb3IgdGhlIGhvb2sgdW5tb3VudGVkLlxuICAgIGNvbnN0IGxvYWRPdmVyYWxsQ291bnRHZW5lcmF0aW9uID0gbG9hZE92ZXJhbGxDb3VudEdlbmVyYXRpb25SZWYuY3VycmVudCArIDFcblxuICAgIGxvYWRPdmVyYWxsQ291bnRHZW5lcmF0aW9uUmVmLmN1cnJlbnQgPSBsb2FkT3ZlcmFsbENvdW50R2VuZXJhdGlvblxuXG4gICAgY29uc3QgYmFzZVF1ZXJ5ID0gcy5wLmNvbGxlY3Rpb24gfHwgcy5wLm1vZGVsQ2xhc3MuYWxsKClcbiAgICBjb25zdCBvdmVyYWxsQ291bnQgPSBhd2FpdCBiYXNlUXVlcnkuY291bnQoKVxuXG4gICAgaWYgKGxvYWRPdmVyYWxsQ291bnRHZW5lcmF0aW9uICE9IGxvYWRPdmVyYWxsQ291bnRHZW5lcmF0aW9uUmVmLmN1cnJlbnQpIHJldHVyblxuXG4gICAgcy5zZXQoe1xuICAgICAgb3ZlcmFsbENvdW50LFxuICAgICAgc2hvd05vUmVjb3Jkc0F2YWlsYWJsZUNvbnRlbnQ6IHNob3dOb1JlY29yZHNBdmFpbGFibGVDb250ZW50KHtvdmVyYWxsQ291bnR9KSxcbiAgICAgIHNob3dOb1JlY29yZHNGb3VuZENvbnRlbnQ6IHNob3dOb1JlY29yZHNGb3VuZENvbnRlbnQoe292ZXJhbGxDb3VudH0pXG4gICAgfSlcbiAgfSwgW10pXG5cbiAgY29uc3QgbG9hZFFQYXJhbXMgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3QgcVBhcmFtc1RvU2V0ID0gaGFzUVBhcmFtcygpID8gcVBhcmFtcygpIDogT2JqZWN0LmFzc2lnbih7fSwgcy5wcm9wcy5kZWZhdWx0UGFyYW1zKVxuICAgIGNvbnN0IHNlYXJjaFBhcmFtcyA9IFtdXG5cbiAgICBpZiAocy5tLnF1ZXJ5UGFyYW1zW3Mucy5xdWVyeVNOYW1lXSkge1xuICAgICAgZm9yIChjb25zdCByYXdTZWFyY2hQYXJhbSBvZiBzLm0ucXVlcnlQYXJhbXNbcy5zLnF1ZXJ5U05hbWVdKSB7XG4gICAgICAgIGNvbnN0IHBhcnNlZFNlYXJjaFBhcmFtID0gSlNPTi5wYXJzZShyYXdTZWFyY2hQYXJhbSlcblxuICAgICAgICBzZWFyY2hQYXJhbXMucHVzaChwYXJzZWRTZWFyY2hQYXJhbSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzLnNldCh7XG4gICAgICBxUGFyYW1zOiBxUGFyYW1zVG9TZXQsXG4gICAgICBzZWFyY2hQYXJhbXNcbiAgICB9KVxuICB9LCBbXSlcblxuICBjb25zdCBsb2FkTW9kZWxzID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIC8vIE9ubHkgdGhlIG5ld2VzdCBjb2xsZWN0aW9uIHJlcXVlc3QgaXMgYWxsb3dlZCB0byB1cGRhdGUgc3RhdGUgYWZ0ZXIgbmF2aWdhdGlvbi9maWx0ZXIgY2hhbmdlcy5cbiAgICBjb25zdCBsb2FkTW9kZWxzR2VuZXJhdGlvbiA9IGxvYWRNb2RlbHNHZW5lcmF0aW9uUmVmLmN1cnJlbnQgKyAxXG5cbiAgICBsb2FkTW9kZWxzR2VuZXJhdGlvblJlZi5jdXJyZW50ID0gbG9hZE1vZGVsc0dlbmVyYXRpb25cbiAgICBsZXQgcXVlcnkgPSBzLnByb3BzLmNvbGxlY3Rpb24/LmNsb25lKCkgfHwgcy5wLm1vZGVsQ2xhc3MucmFuc2FjaygpXG5cbiAgICBpZiAocy5wcm9wcy5wYWdpbmF0aW9uKSB7XG4gICAgICBjb25zdCBwYWdlID0gcy5tLnF1ZXJ5UGFyYW1zW3Mucy5xdWVyeVBhZ2VOYW1lXSB8fCAxXG4gICAgICBsZXQgcGVyID0gcy5tLnF1ZXJ5UGFyYW1zW3Mucy5xdWVyeVBlcktleV0gfHwgMzBcblxuICAgICAgaWYgKHBlciA9PSBcImFsbFwiKSB7XG4gICAgICAgIHBlciA9IDk5OV85OTlfOTk5XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwZXIgPSBOdW1iZXIocGVyKVxuICAgICAgfVxuXG4gICAgICBxdWVyeS5wYWdlKHBhZ2UpLnBlcihwZXIpXG4gICAgfVxuXG4gICAgaWYgKHMucHJvcHMuZ3JvdXBCeSkgcXVlcnkgPSBxdWVyeS5ncm91cEJ5KC4uLnMucC5ncm91cEJ5KVxuXG4gICAgcXVlcnkgPSBxdWVyeVxuICAgICAgLnJhbnNhY2socy5zLnFQYXJhbXMpXG4gICAgICAuc2VhcmNoKHMucy5zZWFyY2hQYXJhbXMpXG4gICAgICAuc2VhcmNoS2V5KHMucy5xdWVyeVFOYW1lKVxuICAgICAgLnBhZ2VLZXkocy5zLnF1ZXJ5UGFnZU5hbWUpXG4gICAgICAucGVyS2V5KHMucy5xdWVyeVBlcktleSlcblxuICAgIGlmIChzLnByb3BzLmFiaWxpdGllcykgcXVlcnkuYWJpbGl0aWVzKHMucC5hYmlsaXRpZXMpXG4gICAgaWYgKHMucHJvcHMubGltaXQgIT09IHVuZGVmaW5lZCkgcXVlcnkubGltaXQocy5wLmxpbWl0KVxuICAgIGlmIChzLnByb3BzLnByZWxvYWRzKSBxdWVyeS5wcmVsb2FkKHMucC5wcmVsb2FkcylcbiAgICBpZiAocy5wcm9wcy5yYW5zYWNrKSBxdWVyeS5yYW5zYWNrKHMucHJvcHMucmFuc2FjaylcbiAgICBpZiAocy5wcm9wcy5zZWxlY3QpIHF1ZXJ5LnNlbGVjdChzLnAuc2VsZWN0KVxuICAgIGlmIChzLnByb3BzLnNlbGVjdENvbHVtbnMpIHF1ZXJ5LnNlbGVjdENvbHVtbnMocy5wLnNlbGVjdENvbHVtbnMpXG5cbiAgICBsZXQgcmVzdWx0XG5cbiAgICBpZiAocy5wcm9wcy5xdWVyeU1ldGhvZCkge1xuICAgICAgcmVzdWx0ID0gYXdhaXQgcy5wLnF1ZXJ5TWV0aG9kKHtxdWVyeX0pXG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdCA9IGF3YWl0IHF1ZXJ5LnJlc3VsdCgpXG4gICAgfVxuXG4gICAgY29uc3QgbW9kZWxzID0gcmVzdWx0Lm1vZGVscygpXG5cbiAgICBpZiAobG9hZE1vZGVsc0dlbmVyYXRpb24gIT0gbG9hZE1vZGVsc0dlbmVyYXRpb25SZWYuY3VycmVudCkgcmV0dXJuXG5cbiAgICBpZiAocy5wcm9wcy5vbk1vZGVsc0xvYWRlZCkge1xuICAgICAgcy5wLm9uTW9kZWxzTG9hZGVkKHtcbiAgICAgICAgbW9kZWxzLFxuICAgICAgICBxUGFyYW1zOiBzLnMucVBhcmFtcyxcbiAgICAgICAgcXVlcnksXG4gICAgICAgIHJlc3VsdFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBzLnNldCh7XG4gICAgICBtb2RlbHM6IHJlc3VsdC5tb2RlbHMoKSxcbiAgICAgIHF1ZXJ5LFxuICAgICAgcmVzdWx0LFxuICAgICAgc2hvd05vUmVjb3Jkc0F2YWlsYWJsZUNvbnRlbnQ6IHNob3dOb1JlY29yZHNBdmFpbGFibGVDb250ZW50KHttb2RlbHN9KSxcbiAgICAgIHNob3dOb1JlY29yZHNGb3VuZENvbnRlbnQ6IHNob3dOb1JlY29yZHNGb3VuZENvbnRlbnQoe21vZGVsc30pXG4gICAgfSlcbiAgfSwgW10pXG5cbiAgY29uc3QgbG9hZE1vZGVsc0RlYm91bmNlID0gdXNlQ2FsbGJhY2soZGVib3VuY2UobG9hZE1vZGVscyksIFtdKVxuICBjb25zdCBvbk1vZGVsRGVzdHJveWVkID0gdXNlQ2FsbGJhY2soKGFyZ3MpID0+IHtcbiAgICBzLnNldCh7XG4gICAgICBtb2RlbHM6IHMucy5tb2RlbHMuZmlsdGVyKChtb2RlbCkgPT4gbW9kZWwuaWQoKSAhPSBhcmdzLm1vZGVsLmlkKCkpXG4gICAgfSlcbiAgfSwgW10pXG5cbiAgY29uc3Qgb25Nb2RlbFVwZGF0ZWQgPSB1c2VDYWxsYmFjaygoYXJncykgPT4ge1xuICAgIGNvbnN0IHVwZGF0ZWRNb2RlbCA9IGRpZ2coYXJncywgXCJtb2RlbFwiKVxuICAgIGNvbnN0IGZvdW5kTW9kZWwgPSBzLnMubW9kZWxzLmZpbmQoKG1vZGVsKSA9PiBtb2RlbC5pZCgpID09IHVwZGF0ZWRNb2RlbC5pZCgpKVxuXG4gICAgaWYgKGZvdW5kTW9kZWwpIGxvYWRNb2RlbHNEZWJvdW5jZSgpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHNob3dOb1JlY29yZHNBdmFpbGFibGVDb250ZW50ID0gdXNlQ2FsbGJhY2soKGFyZ3MpID0+IHtcbiAgICBsZXQgbW9kZWxzLCBvdmVyYWxsQ291bnRcblxuICAgIGlmIChhcmdzLm1vZGVscyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBtb2RlbHMgPSBhcmdzLm1vZGVsc1xuICAgIH0gZWxzZSBpZiAocy5zLm1vZGVscyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBtb2RlbHMgPSBzLnMubW9kZWxzXG4gICAgfVxuXG4gICAgaWYgKGFyZ3Mub3ZlcmFsbENvdW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG92ZXJhbGxDb3VudCA9IGFyZ3Mub3ZlcmFsbENvdW50XG4gICAgfSBlbHNlIGlmIChzLnMub3ZlcmFsbENvdW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG92ZXJhbGxDb3VudCA9IHMucy5vdmVyYWxsQ291bnRcbiAgICB9XG5cbiAgICBpZiAobW9kZWxzID09PSB1bmRlZmluZWQgfHwgb3ZlcmFsbENvdW50ID09PSB1bmRlZmluZWQgfHwgcy5wLm5vUmVjb3Jkc0F2YWlsYWJsZUNvbnRlbnQgPT09IHVuZGVmaW5lZCkgcmV0dXJuIGZhbHNlXG4gICAgaWYgKG1vZGVscy5sZW5ndGggPT09IDAgJiYgb3ZlcmFsbENvdW50ID09PSAwICYmIHMucC5ub1JlY29yZHNBdmFpbGFibGVDb250ZW50KSByZXR1cm4gdHJ1ZVxuICB9LCBbXSlcblxuICBjb25zdCBzaG93Tm9SZWNvcmRzRm91bmRDb250ZW50ID0gdXNlQ2FsbGJhY2soKGFyZ3MpID0+IHtcbiAgICBsZXQgbW9kZWxzLCBvdmVyYWxsQ291bnRcblxuICAgIGlmIChhcmdzLm1vZGVscyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBtb2RlbHMgPSBhcmdzLm1vZGVsc1xuICAgIH0gZWxzZSBpZiAocy5zLm1vZGVscyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBtb2RlbHMgPSBzLnMubW9kZWxzXG4gICAgfVxuXG4gICAgaWYgKGFyZ3Mub3ZlcmFsbENvdW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG92ZXJhbGxDb3VudCA9IGFyZ3Mub3ZlcmFsbENvdW50XG4gICAgfSBlbHNlIGlmIChzLnMub3ZlcmFsbENvdW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG92ZXJhbGxDb3VudCA9IHMucy5vdmVyYWxsQ291bnRcbiAgICB9XG5cbiAgICBpZiAobW9kZWxzID09PSB1bmRlZmluZWQgfHwgcy5wcm9wcy5ub1JlY29yZHNGb3VuZENvbnRlbnQgPT09IHVuZGVmaW5lZCkgcmV0dXJuIGZhbHNlXG5cbiAgICAvLyBEb250IHNob3cgbm9SZWNvcmRzQXZhaWxhYmxlQ29udGVudCB0b2dldGhlciB3aXRoIG5vUmVjb3Jkc0F2YWlsYWJsZUNvbnRlbnRcbiAgICBpZiAobW9kZWxzLmxlbmd0aCA9PT0gMCAmJiBvdmVyYWxsQ291bnQgPT09IDAgJiYgcy5wcm9wcy5ub1JlY29yZHNBdmFpbGFibGVDb250ZW50KSByZXR1cm4gZmFsc2VcbiAgICBpZiAobW9kZWxzLmxlbmd0aCA9PT0gMCAmJiBzLnByb3BzLm5vUmVjb3Jkc0ZvdW5kQ29udGVudCkgcmV0dXJuIHRydWVcbiAgfSwgW10pXG5cbiAgY29uc3Qgb25DcmVhdGVkID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGxvYWRNb2RlbHNEZWJvdW5jZSgpXG4gIH0sIFtdKVxuXG4gIC8vIENvbGxlY3Rpb24gbG9hZGluZyBoYXMgdG8gd2FpdCB1bnRpbCBtb3VudCBzbyBmYXN0IHJlc3BvbnNlcyBjYW5ub3QgZ2V0IHN0cmFuZGVkIGluIFNoYXBlSG9vaydzIHByZS1tb3VudCBxdWV1ZS5cbiAgdXNlRWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGlmICghKFwiaWZDb25kaXRpb25cIiBpbiBzLnByb3BzKSB8fCBzLnByb3BzLmlmQ29uZGl0aW9uKSB7XG4gICAgICAgIGxvYWRRUGFyYW1zKClcbiAgICAgICAgbG9hZE1vZGVscygpXG4gICAgICB9XG4gICAgfSxcbiAgICBbXG4gICAgICBtb2RlbENsYXNzLFxuICAgICAgcy5wcm9wcy5pZkNvbmRpdGlvbixcbiAgICAgIHMucy5xdWVyeU5hbWUsXG4gICAgICBzLm0ucXVlcnlQYXJhbXNbcy5zLnF1ZXJ5UU5hbWVdLFxuICAgICAgcy5tLnF1ZXJ5UGFyYW1zW3Mucy5xdWVyeVBhZ2VOYW1lXSxcbiAgICAgIHMubS5xdWVyeVBhcmFtc1tzLnMucXVlcnlQZXJLZXldLFxuICAgICAgcy5tLnF1ZXJ5UGFyYW1zW3Mucy5xdWVyeVNOYW1lXSxcbiAgICAgIGNvbGxlY3Rpb25cbiAgICBdLmNvbmNhdChjYWNoZUtleXMpXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChzLnByb3BzLm5vUmVjb3Jkc0F2YWlsYWJsZUNvbnRlbnQpIHtcbiAgICAgIGxvYWRPdmVyYWxsQ291bnQoKVxuICAgIH1cbiAgfSwgW21vZGVsQ2xhc3NdKVxuXG4gIHVzZUNyZWF0ZWRFdmVudChzLnAubW9kZWxDbGFzcywgb25DcmVhdGVkKVxuXG4gIC8vIEludmFsaWRhdGUgYW55IGluLWZsaWdodCBhc3luYyByZXNwb25zZXMgc28gdW5tb3VudGVkIGhvb2tzIGNhbm5vdCB3cml0ZSBzdGFsZSBzdGF0ZS5cbiAgdXNlRWZmZWN0KCgpID0+ICgpID0+IHtcbiAgICBsb2FkTW9kZWxzR2VuZXJhdGlvblJlZi5jdXJyZW50ICs9IDFcbiAgICBsb2FkT3ZlcmFsbENvdW50R2VuZXJhdGlvblJlZi5jdXJyZW50ICs9IDFcbiAgfSwgW10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBjb25uZWN0aW9ucyA9IFtdXG5cbiAgICBpZiAocy5zLm1vZGVscykge1xuICAgICAgZm9yKGNvbnN0IG1vZGVsIG9mIHMucy5tb2RlbHMpIHtcbiAgICAgICAgY29ubmVjdGlvbnMucHVzaChNb2RlbEV2ZW50cy5jb25uZWN0VXBkYXRlZChtb2RlbCwgb25Nb2RlbFVwZGF0ZWQpKVxuICAgICAgICBjb25uZWN0aW9ucy5wdXNoKE1vZGVsRXZlbnRzLmNvbm5lY3REZXN0cm95ZWQobW9kZWwsIG9uTW9kZWxEZXN0cm95ZWQpKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBmb3IoY29uc3QgY29ubmVjdGlvbiBvZiBjb25uZWN0aW9ucykge1xuICAgICAgICBjb25uZWN0aW9uLnVuc3Vic2NyaWJlKClcbiAgICAgIH1cbiAgICB9XG4gIH0sIFttb2RlbElkc0NhY2hlU3RyaW5nXSlcblxuICBjb25zdCByZXN1bHQgPSAvKiogQHR5cGUge1VzZUNvbGxlY3Rpb25SZXN1bHQgJiBSZWNvcmQ8c3RyaW5nLCBhbnk+fSAqLyAoT2JqZWN0LmFzc2lnbih7fSwgcy5zdGF0ZSkpXG4gIGNvbnN0IG1vZGVsVmFyaWFibGVOYW1lID0gaW5mbGVjdGlvbi5wbHVyYWxpemUoaW5mbGVjdGlvbi5jYW1lbGl6ZShtb2RlbENsYXNzLm1vZGVsQ2xhc3NEYXRhKCkubmFtZSwgdHJ1ZSkpXG5cbiAgcmVzdWx0Lm1vZGVsSWRzQ2FjaGVTdHJpbmcgPSBtb2RlbElkc0NhY2hlU3RyaW5nXG4gIHJlc3VsdFttb2RlbFZhcmlhYmxlTmFtZV0gPSBzLnMubW9kZWxzXG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG5leHBvcnQgZGVmYXVsdCB1c2VDb2xsZWN0aW9uXG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-current-user-context.d.ts","sourceRoot":"/src/","sources":["use-current-user-context.jsx"],"names":[],"mappings":";AAeA;;;;;GAKG;AACH,8CAJG;IAAwB,QAAQ;IACT,KAAK,GAApB,MAAM;CACd,GAAU,OAAO,OAAO,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"use-current-user-context.d.ts","sourceRoot":"/src/","sources":["use-current-user-context.jsx"],"names":[],"mappings":";AAeA;;;;;GAKG;AACH,8CAJG;IAAwB,QAAQ;IACT,KAAK,GAApB,MAAM;CACd,GAAU,OAAO,OAAO,EAAE,SAAS,CA6GrC"}
|