@ai-table/grid 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- package/components/cell-editors/cell-editor.scss +20 -0
- package/components/cell-editors/number/number-editor.component.d.ts.map +1 -1
- package/components/cell-editors/progress/progress-editor.component.d.ts +22 -0
- package/components/cell-editors/progress/progress-editor.component.d.ts.map +1 -0
- package/components/cell-editors/progress/progress-editor.component.scss +21 -0
- package/components/cell-editors/rating/rating-editor.component.d.ts.map +1 -1
- package/components/cell-editors/text/text-editor.component.d.ts +9 -1
- package/components/cell-editors/text/text-editor.component.d.ts.map +1 -1
- package/components/field-property-editor/field-property-editor.component.d.ts.map +1 -1
- package/components/index.d.ts +6 -0
- package/components/index.d.ts.map +1 -1
- package/constants/editor.d.ts.map +1 -1
- package/constants/field.d.ts +3 -3
- package/constants/grid.d.ts +1 -0
- package/constants/grid.d.ts.map +1 -1
- package/core/constants/field.d.ts.map +1 -1
- package/core/types/core.d.ts +14 -8
- package/core/types/core.d.ts.map +1 -1
- package/core/utils/field.d.ts +1 -1
- package/esm2022/components/cell-editors/abstract-cell-editor.component.mjs +2 -2
- package/esm2022/components/cell-editors/number/number-editor.component.mjs +7 -6
- package/esm2022/components/cell-editors/progress/progress-editor.component.mjs +75 -0
- package/esm2022/components/cell-editors/rating/rating-editor.component.mjs +7 -6
- package/esm2022/components/cell-editors/select/select-editor.component.mjs +3 -3
- package/esm2022/components/cell-editors/text/text-editor.component.mjs +54 -21
- package/esm2022/components/field-menu/field-menu.component.mjs +3 -3
- package/esm2022/components/field-property-editor/field-property-editor.component.mjs +5 -5
- package/esm2022/components/index.mjs +7 -1
- package/esm2022/constants/editor.mjs +6 -8
- package/esm2022/constants/field.mjs +4 -4
- package/esm2022/constants/grid.mjs +4 -2
- package/esm2022/core/action/general.mjs +4 -4
- package/esm2022/core/constants/field.mjs +43 -3
- package/esm2022/core/types/core.mjs +6 -2
- package/esm2022/core/utils/field.mjs +2 -2
- package/esm2022/core/utils/queries.mjs +2 -2
- package/esm2022/core/utils/record.mjs +3 -3
- package/esm2022/grid.component.mjs +94 -50
- package/esm2022/pipes/grid.pipe.mjs +31 -0
- package/esm2022/pipes/index.mjs +2 -2
- package/esm2022/services/event.service.mjs +37 -24
- package/esm2022/services/selection.service.mjs +72 -0
- package/esm2022/types/field.mjs +1 -1
- package/esm2022/types/grid.mjs +2 -8
- package/esm2022/utils/build.mjs +40 -13
- package/esm2022/utils/cell.mjs +3 -3
- package/fesm2022/ai-table-grid.mjs +650 -396
- package/fesm2022/ai-table-grid.mjs.map +1 -1
- package/grid.component.d.ts +19 -16
- package/grid.component.d.ts.map +1 -1
- package/package.json +1 -1
- package/pipes/grid.pipe.d.ts +15 -0
- package/pipes/grid.pipe.d.ts.map +1 -0
- package/pipes/index.d.ts +1 -1
- package/pipes/index.d.ts.map +1 -1
- package/services/event.service.d.ts +7 -6
- package/services/event.service.d.ts.map +1 -1
- package/services/{selection.servive.d.ts → selection.service.d.ts} +1 -1
- package/services/{selection.servive.d.ts.map → selection.service.d.ts.map} +1 -1
- package/styles/styles.scss +6 -10
- package/types/field.d.ts +1 -1
- package/types/field.d.ts.map +1 -1
- package/types/grid.d.ts +8 -6
- package/types/grid.d.ts.map +1 -1
- package/utils/build.d.ts +3 -2
- package/utils/build.d.ts.map +1 -1
- package/utils/cell.d.ts +1 -1
- package/utils/cell.d.ts.map +1 -1
- package/esm2022/pipes/grid.mjs +0 -17
- package/esm2022/services/selection.servive.mjs +0 -64
- package/pipes/grid.d.ts +0 -9
- package/pipes/grid.d.ts.map +0 -1
@@ -6,10 +6,14 @@ export var AITableFieldType;
|
|
6
6
|
AITableFieldType["number"] = "number";
|
7
7
|
AITableFieldType["date"] = "date";
|
8
8
|
AITableFieldType["member"] = "member";
|
9
|
-
// cascadeSelect =
|
9
|
+
// cascadeSelect = 'cascade_select', // 包含单选和多选,参数复杂后续再进行设计
|
10
10
|
AITableFieldType["progress"] = "progress";
|
11
11
|
AITableFieldType["rate"] = "rate";
|
12
12
|
AITableFieldType["link"] = "link";
|
13
|
+
AITableFieldType["createdAt"] = "created_at";
|
14
|
+
AITableFieldType["updatedAt"] = "updated_at";
|
15
|
+
AITableFieldType["createdBy"] = "created_by";
|
16
|
+
AITableFieldType["updatedBy"] = "updated_by";
|
13
17
|
})(AITableFieldType || (AITableFieldType = {}));
|
14
18
|
export var AITableStatType;
|
15
19
|
(function (AITableStatType) {
|
@@ -32,4 +36,4 @@ export var AITableStatType;
|
|
32
36
|
AITableStatType[AITableStatType["PercentChecked"] = 16] = "PercentChecked";
|
33
37
|
AITableStatType[AITableStatType["PercentUnChecked"] = 17] = "PercentUnChecked";
|
34
38
|
})(AITableStatType || (AITableStatType = {}));
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL2NvcmUvdHlwZXMvY29yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxNQUFNLENBQU4sSUFBWSxnQkFlWDtBQWZELFdBQVksZ0JBQWdCO0lBQ3hCLGlDQUFhLENBQUE7SUFDYiwwQ0FBc0IsQ0FBQTtJQUN0QixxQ0FBaUIsQ0FBQTtJQUNqQixxQ0FBaUIsQ0FBQTtJQUNqQixpQ0FBYSxDQUFBO0lBQ2IscUNBQWlCLENBQUE7SUFDakIsMkRBQTJEO0lBQzNELHlDQUFxQixDQUFBO0lBQ3JCLGlDQUFhLENBQUE7SUFDYixpQ0FBYSxDQUFBO0lBQ2IsNENBQXdCLENBQUE7SUFDeEIsNENBQXdCLENBQUE7SUFDeEIsNENBQXdCLENBQUE7SUFDeEIsNENBQXdCLENBQUE7QUFDNUIsQ0FBQyxFQWZXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFlM0I7QUFFRCxNQUFNLENBQU4sSUFBWSxlQW1CWDtBQW5CRCxXQUFZLGVBQWU7SUFDdkIscURBQVEsQ0FBQTtJQUNSLDZEQUFZLENBQUE7SUFDWix1REFBUyxDQUFBO0lBQ1QseURBQVUsQ0FBQTtJQUNWLHlEQUFVLENBQUE7SUFDVixxRUFBZ0IsQ0FBQTtJQUNoQix1RUFBaUIsQ0FBQTtJQUNqQix1RUFBaUIsQ0FBQTtJQUNqQixtREFBTyxDQUFBO0lBQ1AsMkRBQVcsQ0FBQTtJQUNYLG9EQUFRLENBQUE7SUFDUixvREFBUSxDQUFBO0lBQ1IsNEVBQW9CLENBQUE7SUFDcEIsZ0ZBQXNCLENBQUE7SUFDdEIsNERBQVksQ0FBQTtJQUNaLGdFQUFjLENBQUE7SUFDZCwwRUFBbUIsQ0FBQTtJQUNuQiw4RUFBcUIsQ0FBQTtBQUN6QixDQUFDLEVBbkJXLGVBQWUsS0FBZixlQUFlLFFBbUIxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFdyaXRhYmxlU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJZCB9IGZyb20gJ25neC10ZXRoeXMvdHlwZXMnO1xuaW1wb3J0IHsgQUlUYWJsZVNlbGVjdGlvbiB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IEFJVGFibGVBY3Rpb24gfSBmcm9tICcuL2FjdGlvbic7XG5cbmV4cG9ydCBlbnVtIEFJVGFibGVGaWVsZFR5cGUge1xuICAgIHRleHQgPSAndGV4dCcsIC8vIOWMheWQq+WkmuihjOaWh+acrFxuICAgIHJpY2hUZXh0ID0gJ3JpY2hfdGV4dCcsIC8vIOWMheWQq+WkmuihjOaWh+acrFxuICAgIHNlbGVjdCA9ICdzZWxlY3QnLCAvLyDljIXlkKvljZXpgInlkozlpJrpgIlcbiAgICBudW1iZXIgPSAnbnVtYmVyJyxcbiAgICBkYXRlID0gJ2RhdGUnLFxuICAgIG1lbWJlciA9ICdtZW1iZXInLCAvLyDljIXlkKvljZXkuKrlkozlpJrkuKpcbiAgICAvLyBjYXNjYWRlU2VsZWN0ID0gJ2Nhc2NhZGVfc2VsZWN0JywgLy8g5YyF5ZCr5Y2V6YCJ5ZKM5aSa6YCJ77yM5Y+C5pWw5aSN5p2C5ZCO57ut5YaN6L+b6KGM6K6+6K6hXG4gICAgcHJvZ3Jlc3MgPSAncHJvZ3Jlc3MnLFxuICAgIHJhdGUgPSAncmF0ZScsXG4gICAgbGluayA9ICdsaW5rJyxcbiAgICBjcmVhdGVkQXQgPSAnY3JlYXRlZF9hdCcsXG4gICAgdXBkYXRlZEF0ID0gJ3VwZGF0ZWRfYXQnLFxuICAgIGNyZWF0ZWRCeSA9ICdjcmVhdGVkX2J5JyxcbiAgICB1cGRhdGVkQnkgPSAndXBkYXRlZF9ieSdcbn1cblxuZXhwb3J0IGVudW0gQUlUYWJsZVN0YXRUeXBlIHtcbiAgICBOb25lID0gMCxcbiAgICBDb3VudEFsbCA9IDEsXG4gICAgRW1wdHkgPSAyLFxuICAgIEZpbGxlZCA9IDMsXG4gICAgVW5pcXVlID0gNCxcbiAgICBQZXJjZW50RW1wdHkgPSA1LFxuICAgIFBlcmNlbnRGaWxsZWQgPSA2LFxuICAgIFBlcmNlbnRVbmlxdWUgPSA3LFxuICAgIFN1bSA9IDgsXG4gICAgQXZlcmFnZSA9IDksXG4gICAgTWF4ID0gMTAsXG4gICAgTWluID0gMTEsXG4gICAgRGF0ZVJhbmdlT2ZEYXlzID0gMTIsXG4gICAgRGF0ZVJhbmdlT2ZNb250aHMgPSAxMyxcbiAgICBDaGVja2VkID0gMTQsXG4gICAgVW5DaGVja2VkID0gMTUsXG4gICAgUGVyY2VudENoZWNrZWQgPSAxNixcbiAgICBQZXJjZW50VW5DaGVja2VkID0gMTdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBSVRhYmxlU2VsZWN0T3B0aW9uIHtcbiAgICBfaWQ6IHN0cmluZztcbiAgICB0ZXh0OiBzdHJpbmc7XG4gICAgY29sb3I/OiBzdHJpbmc7XG4gICAgYmdfY29sb3I/OiBzdHJpbmc7XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFJVGFibGVGaWVsZDxUID0gdW5rbm93bj4ge1xuICAgIF9pZDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB0eXBlOiBBSVRhYmxlRmllbGRUeXBlO1xuICAgIGljb24/OiBzdHJpbmc7XG4gICAgd2lkdGg/OiBudW1iZXI7XG4gICAgaGlkZGVuPzogYm9vbGVhbjtcbiAgICBmcm96ZW4/OiBib29sZWFuO1xuICAgIHN0YXRUeXBlPzogQUlUYWJsZVN0YXRUeXBlO1xuICAgIHJlYWRvbmx5PzogYm9vbGVhbjtcbiAgICBpc011bHRpcGxlPzogYm9vbGVhbjtcbiAgICBba2V5OiBzdHJpbmddOiBUIHwgYW55O1xufVxuXG5leHBvcnQgdHlwZSBUZXh0RmllbGRWYWx1ZSA9IHN0cmluZztcblxuZXhwb3J0IHR5cGUgU2VsZWN0RmllbGRWYWx1ZSA9IElkW107IC8vIOaVsOWtl1xuXG5leHBvcnQgdHlwZSBOdW1iZXJGaWVsZFZhbHVlID0gbnVtYmVyO1xuXG5leHBvcnQgdHlwZSBEYXRlRmllbGRWYWx1ZSA9IHsgdGltZXN0YW1wOiBudW1iZXIgfTsgLy8g5pe26Ze05oizXG5cbmV4cG9ydCB0eXBlIE1lbWJlckZpZWxkVmFsdWUgPSBJZFtdO1xuXG5leHBvcnQgdHlwZSBQcm9ncmVzc0ZpZWxkVmFsdWUgPSBudW1iZXI7IC8vIFswLDFdXG5cbmV4cG9ydCB0eXBlIFJhdGVGaWVsZFZhbHVlID0gMSB8IDIgfCAzIHwgNCB8IDU7XG5cbmV4cG9ydCB0eXBlIEZpZWxkVmFsdWUgPVxuICAgIHwgVGV4dEZpZWxkVmFsdWVcbiAgICB8IFNlbGVjdEZpZWxkVmFsdWVcbiAgICB8IE51bWJlckZpZWxkVmFsdWVcbiAgICB8IERhdGVGaWVsZFZhbHVlXG4gICAgfCBNZW1iZXJGaWVsZFZhbHVlXG4gICAgfCBQcm9ncmVzc0ZpZWxkVmFsdWVcbiAgICB8IFJhdGVGaWVsZFZhbHVlXG4gICAgfCBhbnk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQUlUYWJsZVJlY29yZCB7XG4gICAgX2lkOiBzdHJpbmc7XG4gICAgdmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCBGaWVsZFZhbHVlPjtcbn1cblxuZXhwb3J0IHR5cGUgQUlUYWJsZVJlY29yZHMgPSBBSVRhYmxlUmVjb3JkW107XG5cbmV4cG9ydCB0eXBlIEFJVGFibGVGaWVsZHMgPSBBSVRhYmxlRmllbGRbXTtcblxuZXhwb3J0IGludGVyZmFjZSBBSVRhYmxlVmFsdWUge1xuICAgIHJlY29yZHM6IEFJVGFibGVSZWNvcmRzO1xuICAgIGZpZWxkczogQUlUYWJsZUZpZWxkcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBSVRhYmxlIHtcbiAgICByZWNvcmRzOiBXcml0YWJsZVNpZ25hbDxBSVRhYmxlUmVjb3Jkcz47XG4gICAgZmllbGRzOiBXcml0YWJsZVNpZ25hbDxBSVRhYmxlRmllbGRzPjtcbiAgICBhY3Rpb25zOiBBSVRhYmxlQWN0aW9uW107XG4gICAgc2VsZWN0aW9uOiBXcml0YWJsZVNpZ25hbDxBSVRhYmxlU2VsZWN0aW9uPjtcbiAgICBvbkNoYW5nZTogKCkgPT4gdm9pZDtcbiAgICBhcHBseTogKGFjdGlvbjogQUlUYWJsZUFjdGlvbikgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBSVRhYmxlQ2hhbmdlT3B0aW9ucyB7XG4gICAgcmVjb3JkczogQUlUYWJsZVJlY29yZFtdO1xuICAgIGZpZWxkczogQUlUYWJsZUZpZWxkW107XG4gICAgYWN0aW9uczogQUlUYWJsZUFjdGlvbltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFJVGFibGVGaWVsZEluZm8ge1xuICAgIHR5cGU6IEFJVGFibGVGaWVsZFR5cGU7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGljb246IHN0cmluZztcbiAgICB3aWR0aDogbnVtYmVyO1xufVxuXG5leHBvcnQgdHlwZSBBSVBsdWdpbiA9IChhaVRhYmxlOiBBSVRhYmxlKSA9PiBBSVRhYmxlO1xuIl19
|
@@ -10,6 +10,6 @@ export function createDefaultFieldName(aiTable, type = AITableFieldType.text) {
|
|
10
10
|
return count === 0 ? FieldsMap[type].name : FieldsMap[type].name + count;
|
11
11
|
}
|
12
12
|
export function createDefaultField(aiTable, type = AITableFieldType.text) {
|
13
|
-
return {
|
13
|
+
return { _id: idCreator(), type, name: createDefaultFieldName(aiTable, type) };
|
14
14
|
}
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9jb3JlL3V0aWxzL2ZpZWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvQyxPQUFPLEVBQVcsZ0JBQWdCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDckQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV6QyxNQUFNLFVBQVUsb0JBQW9CLENBQUMsSUFBc0I7SUFDdkQsT0FBTyxFQUFFLENBQUM7QUFDZCxDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUFDLE9BQWdCLEVBQUUsT0FBeUIsZ0JBQWdCLENBQUMsSUFBSTtJQUNuRyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDakUsT0FBTyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztBQUM3RSxDQUFDO0FBRUQsTUFBTSxVQUFVLGtCQUFrQixDQUFDLE9BQWdCLEVBQUUsT0FBeUIsZ0JBQWdCLENBQUMsSUFBSTtJQUMvRixPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsc0JBQXNCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUM7QUFDbkYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpZWxkc01hcCB9IGZyb20gJy4uL2NvbnN0YW50cy9maWVsZCc7XG5pbXBvcnQgeyBBSVRhYmxlLCBBSVRhYmxlRmllbGRUeXBlIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgaWRDcmVhdG9yIH0gZnJvbSAnLi9pZC1jcmVhdG9yJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRGaWVsZFZhbHVlKHR5cGU6IEFJVGFibGVGaWVsZFR5cGUpIHtcbiAgICByZXR1cm4gJyc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEZWZhdWx0RmllbGROYW1lKGFpVGFibGU6IEFJVGFibGUsIHR5cGU6IEFJVGFibGVGaWVsZFR5cGUgPSBBSVRhYmxlRmllbGRUeXBlLnRleHQpIHtcbiAgICBjb25zdCBmaWVsZHMgPSBhaVRhYmxlLmZpZWxkcygpO1xuICAgIGNvbnN0IGNvdW50ID0gZmllbGRzLmZpbHRlcigoaXRlbSkgPT4gaXRlbS50eXBlID09PSB0eXBlKS5sZW5ndGg7XG4gICAgcmV0dXJuIGNvdW50ID09PSAwID8gRmllbGRzTWFwW3R5cGVdLm5hbWUgOiBGaWVsZHNNYXBbdHlwZV0ubmFtZSArIGNvdW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRGVmYXVsdEZpZWxkKGFpVGFibGU6IEFJVGFibGUsIHR5cGU6IEFJVGFibGVGaWVsZFR5cGUgPSBBSVRhYmxlRmllbGRUeXBlLnRleHQpIHtcbiAgICByZXR1cm4geyBfaWQ6IGlkQ3JlYXRvcigpLCB0eXBlLCBuYW1lOiBjcmVhdGVEZWZhdWx0RmllbGROYW1lKGFpVGFibGUsIHR5cGUpIH07XG59XG4iXX0=
|
@@ -31,7 +31,7 @@ export const AITableQueries = {
|
|
31
31
|
if (!field) {
|
32
32
|
throw new Error(`can not find field at path [${path}]`);
|
33
33
|
}
|
34
|
-
return aiTable.records()[path[0]].values[field.
|
34
|
+
return aiTable.records()[path[0]].values[field._id];
|
35
35
|
},
|
36
36
|
getField(aiTable, path) {
|
37
37
|
if (!aiTable) {
|
@@ -52,4 +52,4 @@ export const AITableQueries = {
|
|
52
52
|
return aiTable.records()[path[0]];
|
53
53
|
}
|
54
54
|
};
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcmllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL2NvcmUvdXRpbHMvcXVlcmllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUdwRCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUc7SUFDMUIsUUFBUSxDQUFDLE9BQWdCLEVBQUUsS0FBb0IsRUFBRSxNQUFzQjtRQUNuRSxNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoRSxNQUFNLFVBQVUsR0FBRyxLQUFLLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLElBQUksV0FBVyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDM0csT0FBTyxDQUFDLFdBQVksRUFBRSxVQUFXLENBQXFCLENBQUM7UUFDM0QsQ0FBQztRQUNELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN0RCxPQUFPLENBQUMsV0FBVyxDQUFpQixDQUFDO1FBQ3pDLENBQUM7UUFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDcEQsT0FBTyxDQUFDLFVBQVUsQ0FBZ0IsQ0FBQztRQUN2QyxDQUFDO1FBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pHLENBQUM7SUFDRCxhQUFhLENBQUMsT0FBZ0IsRUFBRSxJQUFzQjtRQUNsRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDWCxNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNSLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLElBQUksR0FBRyxDQUFDLENBQUM7UUFDN0QsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDVCxNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQzVELENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxRQUFRLENBQUMsT0FBZ0IsRUFBRSxJQUFpQjtRQUN4QyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDWCxNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNSLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLElBQUksR0FBRyxDQUFDLENBQUM7UUFDN0QsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxTQUFTLENBQUMsT0FBZ0IsRUFBRSxJQUFrQjtRQUMxQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDWCxNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNSLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLElBQUksR0FBRyxDQUFDLENBQUM7UUFDN0QsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNVbmRlZmluZWRPck51bGwgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuaW1wb3J0IHsgUGF0aCwgQUlUYWJsZSwgQUlUYWJsZUZpZWxkLCBBSVRhYmxlUmVjb3JkLCBBSUZpZWxkVmFsdWVQYXRoLCBBSVJlY29yZFBhdGgsIEFJRmllbGRQYXRoIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgQUlUYWJsZVF1ZXJpZXMgPSB7XG4gICAgZmluZFBhdGgoYWlUYWJsZTogQUlUYWJsZSwgZmllbGQ/OiBBSVRhYmxlRmllbGQsIHJlY29yZD86IEFJVGFibGVSZWNvcmQpOiBQYXRoIHtcbiAgICAgICAgY29uc3QgcmVjb3JkSW5kZXggPSByZWNvcmQgJiYgYWlUYWJsZS5yZWNvcmRzKCkuaW5kZXhPZihyZWNvcmQpO1xuICAgICAgICBjb25zdCBmaWVsZEluZGV4ID0gZmllbGQgJiYgYWlUYWJsZS5maWVsZHMoKS5pbmRleE9mKGZpZWxkKTtcbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZE9yTnVsbChyZWNvcmRJbmRleCkgJiYgcmVjb3JkSW5kZXggPiAtMSAmJiAhaXNVbmRlZmluZWRPck51bGwoZmllbGRJbmRleCkgJiYgZmllbGRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICByZXR1cm4gW3JlY29yZEluZGV4ISwgZmllbGRJbmRleCFdIGFzIEFJRmllbGRWYWx1ZVBhdGg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZE9yTnVsbChyZWNvcmRJbmRleCkgJiYgcmVjb3JkSW5kZXggPiAtMSkge1xuICAgICAgICAgICAgcmV0dXJuIFtyZWNvcmRJbmRleF0gYXMgQUlSZWNvcmRQYXRoO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNVbmRlZmluZWRPck51bGwoZmllbGRJbmRleCkgJiYgZmllbGRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICByZXR1cm4gW2ZpZWxkSW5kZXhdIGFzIEFJRmllbGRQYXRoO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgY2FuIG5vdCBmaW5kIHRoZSBwYXRoOiAke0pTT04uc3RyaW5naWZ5KHsgLi4uKGZpZWxkIHx8IHt9KSwgLi4uKHJlY29yZCB8fCB7fSkgfSl9YCk7XG4gICAgfSxcbiAgICBnZXRGaWVsZFZhbHVlKGFpVGFibGU6IEFJVGFibGUsIHBhdGg6IFtudW1iZXIsIG51bWJlcl0pOiBhbnkge1xuICAgICAgICBpZiAoIWFpVGFibGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgYWlUYWJsZSBkb2VzIG5vdCBleGlzdGApO1xuICAgICAgICB9XG4gICAgICAgIGlmICghYWlUYWJsZS5yZWNvcmRzKCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgYWlUYWJsZSBoYXMgbm8gcmVjb3Jkc2ApO1xuICAgICAgICB9XG4gICAgICAgIGlmICghYWlUYWJsZS5maWVsZHMoKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBhaVRhYmxlIGhhcyBubyBmaWVsZHNgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXBhdGgpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgcGF0aCBkb2VzIG5vdCBleGlzdCBhcyBwYXRoIFske3BhdGh9XWApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmllbGQgPSBhaVRhYmxlLmZpZWxkcygpW3BhdGhbMV1dO1xuICAgICAgICBpZiAoIWZpZWxkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGNhbiBub3QgZmluZCBmaWVsZCBhdCBwYXRoIFske3BhdGh9XWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhaVRhYmxlLnJlY29yZHMoKVtwYXRoWzBdXS52YWx1ZXNbZmllbGQuX2lkXTtcbiAgICB9LFxuXG4gICAgZ2V0RmllbGQoYWlUYWJsZTogQUlUYWJsZSwgcGF0aDogQUlGaWVsZFBhdGgpOiBBSVRhYmxlRmllbGQge1xuICAgICAgICBpZiAoIWFpVGFibGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgYWlUYWJsZSBkb2VzIG5vdCBleGlzdGApO1xuICAgICAgICB9XG4gICAgICAgIGlmICghcGF0aCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBwYXRoIGRvZXMgbm90IGV4aXN0IGFzIHBhdGggWyR7cGF0aH1dYCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFpVGFibGUuZmllbGRzKClbcGF0aFswXV07XG4gICAgfSxcblxuICAgIGdldFJlY29yZChhaVRhYmxlOiBBSVRhYmxlLCBwYXRoOiBBSVJlY29yZFBhdGgpOiBBSVRhYmxlUmVjb3JkIHtcbiAgICAgICAgaWYgKCFhaVRhYmxlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGFpVGFibGUgZG9lcyBub3QgZXhpc3RgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXBhdGgpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgcGF0aCBkb2VzIG5vdCBleGlzdCBhcyBwYXRoIFske3BhdGh9XWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhaVRhYmxlLnJlY29yZHMoKVtwYXRoWzBdXTtcbiAgICB9XG59O1xuIl19
|
@@ -2,12 +2,12 @@ import { getDefaultFieldValue } from './field';
|
|
2
2
|
import { idCreator } from './id-creator';
|
3
3
|
export function getDefaultRecord(fields) {
|
4
4
|
const newRow = {
|
5
|
-
|
5
|
+
_id: idCreator(),
|
6
6
|
values: {}
|
7
7
|
};
|
8
8
|
fields.map((item) => {
|
9
|
-
newRow.values[item.
|
9
|
+
newRow.values[item._id] = getDefaultFieldValue(item.type);
|
10
10
|
});
|
11
11
|
return newRow;
|
12
12
|
}
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ3JpZC9zcmMvY29yZS91dGlscy9yZWNvcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFekMsTUFBTSxVQUFVLGdCQUFnQixDQUFDLE1BQXFCO0lBQ2xELE1BQU0sTUFBTSxHQUFrQjtRQUMxQixHQUFHLEVBQUUsU0FBUyxFQUFFO1FBQ2hCLE1BQU0sRUFBRSxFQUFFO0tBQ2IsQ0FBQztJQUNGLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUNoQixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUQsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUlUYWJsZUZpZWxkcywgQUlUYWJsZVJlY29yZCB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGdldERlZmF1bHRGaWVsZFZhbHVlIH0gZnJvbSAnLi9maWVsZCc7XG5pbXBvcnQgeyBpZENyZWF0b3IgfSBmcm9tICcuL2lkLWNyZWF0b3InO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVmYXVsdFJlY29yZChmaWVsZHM6IEFJVGFibGVGaWVsZHMpIHtcbiAgICBjb25zdCBuZXdSb3c6IEFJVGFibGVSZWNvcmQgPSB7XG4gICAgICAgIF9pZDogaWRDcmVhdG9yKCksXG4gICAgICAgIHZhbHVlczoge31cbiAgICB9O1xuICAgIGZpZWxkcy5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgbmV3Um93LnZhbHVlc1tpdGVtLl9pZF0gPSBnZXREZWZhdWx0RmllbGRWYWx1ZShpdGVtLnR5cGUpO1xuICAgIH0pO1xuICAgIHJldHVybiBuZXdSb3c7XG59XG4iXX0=
|
@@ -1,69 +1,64 @@
|
|
1
|
-
import {
|
2
|
-
import {
|
3
|
-
import { SelectOptionPipe } from './pipes/grid';
|
4
|
-
import { ThyTag } from 'ngx-tethys/tag';
|
5
|
-
import { ThyPopoverModule } from 'ngx-tethys/popover';
|
1
|
+
import { CommonModule, NgClass, NgComponentOutlet, NgForOf, NgTemplateOutlet } from '@angular/common';
|
2
|
+
import { ChangeDetectionStrategy, Component, computed, DestroyRef, ElementRef, inject, input, model, NgZone, output, signal } from '@angular/core';
|
6
3
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
7
|
-
import { buildGridData } from './utils';
|
8
|
-
import { Actions, createAITable, getDefaultRecord, AITableFieldType, createDefaultField } from './core';
|
9
|
-
import { ThyIcon } from 'ngx-tethys/icon';
|
10
|
-
import { AITableGridEventService } from './services/event.service';
|
11
|
-
import { AITableFieldPropertyEditor } from './components/field-property-editor/field-property-editor.component';
|
12
|
-
import { ThyDatePickerFormatPipe } from 'ngx-tethys/date-picker';
|
13
|
-
import { ThyRate } from 'ngx-tethys/rate';
|
14
4
|
import { FormsModule } from '@angular/forms';
|
15
|
-
import {
|
16
|
-
import { ThyTooltipModule, ThyTooltipService } from 'ngx-tethys/tooltip';
|
5
|
+
import { ThyAction } from 'ngx-tethys/action';
|
17
6
|
import { ThyCheckboxModule } from 'ngx-tethys/checkbox';
|
7
|
+
import { ThyDatePickerFormatPipe } from 'ngx-tethys/date-picker';
|
8
|
+
import { ThyDropdownDirective, ThyDropdownMenuComponent } from 'ngx-tethys/dropdown';
|
9
|
+
import { ThyFlexibleText } from 'ngx-tethys/flexible-text';
|
10
|
+
import { ThyIcon } from 'ngx-tethys/icon';
|
11
|
+
import { ThyPopoverModule } from 'ngx-tethys/popover';
|
12
|
+
import { ThyProgress } from 'ngx-tethys/progress';
|
13
|
+
import { ThyRate } from 'ngx-tethys/rate';
|
18
14
|
import { ThyStopPropagationDirective } from 'ngx-tethys/shared';
|
15
|
+
import { ThyTag } from 'ngx-tethys/tag';
|
16
|
+
import { mergeWith } from 'rxjs/operators';
|
17
|
+
import { ProgressEditorComponent } from './components';
|
19
18
|
import { FieldMenu } from './components/field-menu/field-menu.component';
|
20
|
-
import {
|
21
|
-
import {
|
22
|
-
import {
|
19
|
+
import { AITableFieldPropertyEditor } from './components/field-property-editor/field-property-editor.component';
|
20
|
+
import { DBL_CLICK_EDIT_TYPE, DefaultFieldMenus, MOUSEOVER_EDIT_TYPE } from './constants';
|
21
|
+
import { Actions, AITableFieldType, createAITable, createDefaultField, getDefaultRecord } from './core';
|
22
|
+
import { IsSelectRecordPipe, SelectOptionPipe } from './pipes/grid.pipe';
|
23
|
+
import { AITableGridEventService } from './services/event.service';
|
23
24
|
import { AI_TABLE_GRID_FIELD_SERVICE_MAP, AITableGridFieldService } from './services/field.service';
|
24
|
-
import { AITableGridSelectionService } from './services/selection.
|
25
|
+
import { AITableGridSelectionService } from './services/selection.service';
|
26
|
+
import { buildGridData } from './utils';
|
27
|
+
import { ThyAvatarModule } from 'ngx-tethys/avatar';
|
25
28
|
import * as i0 from "@angular/core";
|
26
|
-
import * as i1 from "
|
27
|
-
import * as i2 from "
|
28
|
-
import * as i3 from "
|
29
|
-
import * as i4 from "
|
30
|
-
import * as i5 from "@angular/forms";
|
31
|
-
import * as i6 from "ngx-tethys/checkbox";
|
29
|
+
import * as i1 from "@angular/common";
|
30
|
+
import * as i2 from "@angular/forms";
|
31
|
+
import * as i3 from "ngx-tethys/checkbox";
|
32
|
+
import * as i4 from "ngx-tethys/avatar";
|
32
33
|
export class AITableGrid {
|
33
|
-
|
34
|
-
return this.aiTable.selection().selectedRecords.size === this.aiRecords().length;
|
35
|
-
}
|
36
|
-
constructor(elementRef, aiTableGridEventService, aiTableGridSelectionService, aiTableGridFieldService, ngZone) {
|
37
|
-
this.elementRef = elementRef;
|
38
|
-
this.aiTableGridEventService = aiTableGridEventService;
|
39
|
-
this.aiTableGridSelectionService = aiTableGridSelectionService;
|
40
|
-
this.aiTableGridFieldService = aiTableGridFieldService;
|
41
|
-
this.ngZone = ngZone;
|
34
|
+
constructor() {
|
42
35
|
this.aiRecords = model.required();
|
43
36
|
this.aiFields = model.required();
|
44
|
-
this.aiRowHeight = input();
|
45
37
|
this.aiFieldConfig = input();
|
46
38
|
this.aiReadonly = input();
|
47
39
|
this.aiPlugins = input();
|
40
|
+
this.aiReferences = input();
|
48
41
|
this.AITableFieldType = AITableFieldType;
|
49
|
-
this.
|
42
|
+
this.isSelectedAll = computed(() => {
|
43
|
+
return this.aiTable.selection().selectedRecords.size === this.aiRecords().length;
|
44
|
+
});
|
50
45
|
this.onChange = output();
|
51
46
|
this.aiTableInitialized = output();
|
52
47
|
this.gridData = computed(() => {
|
53
|
-
return buildGridData(this.aiRecords(), this.aiFields(), this.
|
48
|
+
return buildGridData(this.aiRecords(), this.aiFields(), this.aiReferences());
|
54
49
|
});
|
50
|
+
this.ngZone = inject(NgZone);
|
51
|
+
this.elementRef = inject(ElementRef);
|
52
|
+
this.destroyRef = inject(DestroyRef);
|
53
|
+
this.aiTableGridFieldService = inject(AITableGridFieldService);
|
54
|
+
this.aiTableGridEventService = inject(AITableGridEventService);
|
55
|
+
this.aiTableGridSelectionService = inject(AITableGridSelectionService);
|
55
56
|
}
|
56
57
|
ngOnInit() {
|
57
58
|
this.initAITable();
|
58
59
|
this.initService();
|
59
60
|
this.buildFieldMenus();
|
60
|
-
this.
|
61
|
-
this.aiTableGridEventService.mousedownEvent$.pipe(this.takeUntilDestroyed).subscribe((event) => {
|
62
|
-
if (event?.target) {
|
63
|
-
this.aiTableGridSelectionService.updateSelect(event);
|
64
|
-
}
|
65
|
-
});
|
66
|
-
});
|
61
|
+
this.subscribeEvents();
|
67
62
|
}
|
68
63
|
initAITable() {
|
69
64
|
this.aiTable = createAITable(this.aiRecords, this.aiFields);
|
@@ -102,8 +97,53 @@ export class AITableGrid {
|
|
102
97
|
const field = signal(createDefaultField(this.aiTable, AITableFieldType.text));
|
103
98
|
this.aiTableGridFieldService.editFieldProperty(gridColumnBlank, this.aiTable, field, false);
|
104
99
|
}
|
105
|
-
|
106
|
-
|
100
|
+
subscribeEvents() {
|
101
|
+
this.ngZone.runOutsideAngular(() => {
|
102
|
+
this.aiTableGridEventService.dblClickEvent$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((event) => {
|
103
|
+
this.dblClick(event);
|
104
|
+
});
|
105
|
+
this.aiTableGridEventService.mousedownEvent$
|
106
|
+
.pipe(mergeWith(this.aiTableGridEventService.globalMousedownEvent$), takeUntilDestroyed(this.destroyRef))
|
107
|
+
.subscribe((event) => {
|
108
|
+
this.aiTableGridSelectionService.updateSelect(event);
|
109
|
+
});
|
110
|
+
this.aiTableGridEventService.mouseoverEvent$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((event) => {
|
111
|
+
this.mouseoverHandle(event);
|
112
|
+
});
|
113
|
+
this.aiTableGridEventService.globalMouseoverEvent$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((event) => {
|
114
|
+
this.closeHoverCellEditor(event);
|
115
|
+
});
|
116
|
+
});
|
117
|
+
}
|
118
|
+
dblClick(event) {
|
119
|
+
const cellDom = event.target.closest('.grid-cell');
|
120
|
+
const type = cellDom && cellDom.getAttribute('type');
|
121
|
+
const readonly = cellDom && cellDom.getAttribute('readonly');
|
122
|
+
if (type && !readonly && DBL_CLICK_EDIT_TYPE.includes(type)) {
|
123
|
+
this.aiTableGridEventService.openEdit(cellDom);
|
124
|
+
}
|
125
|
+
}
|
126
|
+
mouseoverHandle(event) {
|
127
|
+
if (this.mouseoverRef) {
|
128
|
+
this.mouseoverRef?.close();
|
129
|
+
}
|
130
|
+
const cellDom = event.target.closest('.grid-cell');
|
131
|
+
const type = cellDom && cellDom.getAttribute('type');
|
132
|
+
if (type && MOUSEOVER_EDIT_TYPE.includes(type)) {
|
133
|
+
this.mouseoverRef = this.aiTableGridEventService.openEdit(cellDom);
|
134
|
+
}
|
135
|
+
}
|
136
|
+
closeHoverCellEditor(e) {
|
137
|
+
if (this.mouseoverRef) {
|
138
|
+
const hasGrid = e.target && e.target.closest('.ai-table-grid');
|
139
|
+
const hasCellEditor = e.target && e.target.closest('.grid-cell-editor');
|
140
|
+
if (!hasGrid && !hasCellEditor) {
|
141
|
+
this.mouseoverRef.close();
|
142
|
+
}
|
143
|
+
}
|
144
|
+
}
|
145
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AITableGrid, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
146
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AITableGrid, isStandalone: true, selector: "ai-table-grid", inputs: { aiRecords: { classPropertyName: "aiRecords", publicName: "aiRecords", isSignal: true, isRequired: true, transformFunction: null }, aiFields: { classPropertyName: "aiFields", publicName: "aiFields", isSignal: true, isRequired: true, transformFunction: null }, aiFieldConfig: { classPropertyName: "aiFieldConfig", publicName: "aiFieldConfig", isSignal: true, isRequired: false, transformFunction: null }, aiReadonly: { classPropertyName: "aiReadonly", publicName: "aiReadonly", isSignal: true, isRequired: false, transformFunction: null }, aiPlugins: { classPropertyName: "aiPlugins", publicName: "aiPlugins", isSignal: true, isRequired: false, transformFunction: null }, aiReferences: { classPropertyName: "aiReferences", publicName: "aiReferences", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { aiRecords: "aiRecordsChange", aiFields: "aiFieldsChange", onChange: "onChange", aiTableInitialized: "aiTableInitialized" }, host: { classAttribute: "ai-table-grid" }, providers: [AITableGridEventService, AITableGridFieldService, AITableGridSelectionService], ngImport: i0, template: "<div class=\"grid-header d-flex\">\n <div class=\"grid-column-checkbox grid-cell grid-checkbox\">\n <label thyCheckbox thyLabelText=\"\" [ngModel]=\"isSelectedAll()\" (ngModelChange)=\"toggleSelectAll($event)\"></label>\n </div>\n @for (field of gridData().fields; track field._id) {\n <div\n class=\"grid-cell grid-field\"\n #fieldAction\n [attr.fieldId]=\"field._id\"\n [ngClass]=\"{ highlight: aiTable.selection().selectedFields.has(field._id) }\"\n [ngStyle]=\"{ width: field.width + 'px' }\"\n >\n <span class=\"text-truncate\">\n <thy-icon [thyIconName]=\"field.icon!\" class=\"mr-2 text-muted\"></thy-icon>\n <span>{{ field.name }}</span>\n </span>\n <a\n class=\"grid-field-action\"\n thyAction\n thyActiveClass=\"active\"\n thyIcon=\"more-vertical\"\n [thyDropdown]=\"fieldMenu\"\n href=\"javascript:;\"\n >\n <thy-dropdown-menu #fieldMenu>\n <field-menu [origin]=\"fieldAction\" [fieldId]=\"field._id\" [aiTable]=\"aiTable\" [fieldMenus]=\"fieldMenus\"></field-menu>\n </thy-dropdown-menu>\n </a>\n </div>\n }\n <div class=\"grid-column-blank cursor-pointer\" #gridColumnBlank (click)=\"addField(gridColumnBlank)\">\n <thy-icon thyIconName=\"plus\"></thy-icon>\n </div>\n</div>\n<div class=\"grid-body d-flex\">\n @for (record of gridData().records; track record._id; let index = $index) {\n <div class=\"grid-row d-flex\" [ngClass]=\"{ highlight: (record._id | isSelectRecord: aiTable.selection()) }\">\n <div class=\"grid-row-index grid-checkbox\">\n <label\n [ngClass]=\"(record._id | isSelectRecord: aiTable.selection()) ? 'checked-box' : 'unchecked-box'\"\n thyCheckbox\n thyLabelText=\"\"\n [ngModel]=\"record._id | isSelectRecord: aiTable.selection()\"\n (ngModelChange)=\"selectRecord(record._id)\"\n ></label>\n <span [ngClass]=\"(record._id | isSelectRecord: aiTable.selection()) ? 'grid-row-no-number' : 'grid-row-number'\">\n {{ index + 1 }}\n </span>\n </div>\n @for (field of gridData().fields; track field._id) {\n <div\n #cell\n class=\"grid-cell\"\n [ngClass]=\"{\n highlight: aiTable.selection().selectedCells.has(record._id) || aiTable.selection().selectedFields.has(field._id),\n selected: aiTable.selection().selectedCells.get(record._id)?.hasOwnProperty(field._id)\n }\"\n [attr.type]=\"[field.type]\"\n [attr.fieldId]=\"[field._id]\"\n [attr.readonly]=\"[field?.readonly]\"\n [attr.recordId]=\"[record._id]\"\n [ngStyle]=\"{ width: field.width + 'px' }\"\n >\n @switch (field.type) {\n @case (AITableFieldType.select) {\n @if (!field.isMultiple && record.values[field._id] | selectOption: field['options']; as selectedOption) {\n <thy-tag [thyColor]=\"selectedOption!.color!\">{{ selectedOption.text }}</thy-tag>\n }\n }\n @case (AITableFieldType.date) {\n {{ record.values[field._id] | thyDatePickerFormat }}\n }\n @case (AITableFieldType.updatedAt) {\n <div class=\"d-block user-select-none\">\n <span class=\"text-truncate\">\n {{ record.values[field._id] | thyDatePickerFormat: 'yyyy-MM-dd HH:mm' }}\n </span>\n </div>\n }\n @case (AITableFieldType.createdAt) {\n <div class=\"d-block user-select-none\">\n <span class=\"text-truncate\">\n {{ record.values[field._id] | thyDatePickerFormat: 'yyyy-MM-dd HH:mm' }}\n </span>\n </div>\n }\n @case (AITableFieldType.rate) {\n <thy-rate [ngModel]=\"record.values[field._id]\"></thy-rate>\n }\n @case (AITableFieldType.link) {\n <a\n class=\"d-block\"\n target=\"_blank\"\n [href]=\"record.values[field._id]?.url\"\n thyStopPropagation\n thyFlexibleText\n [thyTooltipContent]=\"record.values[field._id]?.text\"\n >\n {{ record.values[field._id]?.text }}\n </a>\n }\n @case (AITableFieldType.progress) {\n <thy-progress\n class=\"w-100\"\n [thyValue]=\"record.values[field._id]\"\n [thySize]=\"record.values[field._id]?.config?.size || 'md'\"\n [thyMax]=\"record.values[field._id]?.config?.max || 100\"\n [thyType]=\"record.values[field._id]?.config?.progressType || 'success'\"\n >\n <span> {{ record.values[field._id] }}{{ record.values[field._id]?.config?.suffix || '%' }} </span>\n </thy-progress>\n }\n @case (AITableFieldType.member) {\n @if (!field.isMultiple) {\n <thy-avatar\n [thyName]=\"record.values[field._id].display_name\"\n [thySrc]=\"record.values[field._id].avatar\"\n thySize=\"xs\"\n thyShowName=\"true\"\n ></thy-avatar>\n } @else {\n <thy-avatar-list thyAvatarSize=\"xs\">\n @for (item of record.values[field._id]; track $index) {\n <thy-avatar [thyName]=\"item.display_name\" [thySrc]=\"item.avatar\"></thy-avatar>\n }\n </thy-avatar-list>\n }\n }\n @case (AITableFieldType.createdBy) {\n <thy-avatar\n [thyName]=\"record.values[field._id].display_name\"\n [thySrc]=\"record.values[field._id].avatar\"\n thySize=\"xs\"\n thyShowName=\"true\"\n ></thy-avatar>\n }\n @case (AITableFieldType.updatedBy) {\n <thy-avatar\n [thyName]=\"record.values[field._id].display_name\"\n [thySrc]=\"record.values[field._id].avatar\"\n thySize=\"xs\"\n thyShowName=\"true\"\n ></thy-avatar>\n }\n @default {\n <span class=\"text-truncate\"> {{ record.values[field._id] }}</span>\n }\n }\n <div class=\"autofill-container\"></div>\n </div>\n }\n <div class=\"grid-column-blank\"></div>\n </div>\n }\n <div class=\"grid-row-insert grid-row cursor-pointer\" (click)=\"addRecord()\">\n <thy-icon thyIconName=\"plus\"></thy-icon>\n </div>\n</div>\n\n<div #activeBorder class=\"active-border\"></div>", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: SelectOptionPipe, name: "selectOption" }, { kind: "component", type: ThyTag, selector: "thy-tag,[thyTag]", inputs: ["thyTag", "thyShape", "thyColor", "thyTheme", "thySize", "thyHoverable"] }, { kind: "ngmodule", type: ThyPopoverModule }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "component", type: ThyRate, selector: "thy-rate", inputs: ["thyCount", "thyDisabled", "thyAllowHalf", "thyAllowClear", "thyTooltips", "thyIconTemplate"], outputs: ["thyItemHoverChange"] }, { kind: "component", type: ThyProgress, selector: "thy-progress", inputs: ["thyType", "thySize", "thyValue", "thyMax", "thyTips", "thyShape", "thyGapDegree", "thyGapPosition", "thyStrokeWidth"] }, { kind: "pipe", type: ThyDatePickerFormatPipe, name: "thyDatePickerFormat" }, { kind: "component", type: ThyFlexibleText, selector: "thy-flexible-text,[thyFlexibleText]", inputs: ["thyTooltipTrigger", "thyContainerClass", "thyTooltipContent", "thyTooltipPlacement", "thyTooltipOffset"], exportAs: ["thyFlexibleText"] }, { kind: "directive", type: ThyStopPropagationDirective, selector: "[thyStopPropagation]", inputs: ["thyStopPropagation"] }, { kind: "component", type: FieldMenu, selector: "field-menu", inputs: ["fieldId", "aiTable", "fieldMenus", "origin"] }, { kind: "component", type: ThyAction, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "directive", type: ThyDropdownDirective, selector: "[thyDropdown]", inputs: ["thyDropdownMenu", "thyDropdown", "thyTrigger", "thyShowDelay", "thyHideDelay", "thyActiveClass", "thyPopoverOptions", "thyPlacement", "thyMenuInsideClosable", "thyPanelClass"], outputs: ["thyActiveChange"] }, { kind: "component", type: ThyDropdownMenuComponent, selector: "thy-dropdown-menu", inputs: ["thyWidth", "thyImmediateRender"] }, { kind: "ngmodule", type: ThyCheckboxModule }, { kind: "component", type: i3.ThyCheckbox, selector: "thy-checkbox,[thy-checkbox],[thyCheckbox]", inputs: ["thyIndeterminate"] }, { kind: "ngmodule", type: ThyAvatarModule }, { kind: "component", type: i4.ThyAvatar, selector: "thy-avatar", inputs: ["thyShowName", "thySrc", "thyName", "thySize", "thyShowRemove", "thyRemovable", "thyImgClass", "thyDisabled", "thyLoading", "thyFetchPriority"], outputs: ["thyOnRemove", "thyRemove", "thyError"] }, { kind: "component", type: i4.ThyAvatarList, selector: "thy-avatar-list", inputs: ["thyMode", "thyAvatarSize"] }, { kind: "pipe", type: IsSelectRecordPipe, name: "isSelectRecord" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
107
147
|
}
|
108
148
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AITableGrid, decorators: [{
|
109
149
|
type: Component,
|
@@ -120,16 +160,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
|
|
120
160
|
ThyPopoverModule,
|
121
161
|
ThyIcon,
|
122
162
|
ThyRate,
|
163
|
+
ThyProgress,
|
123
164
|
AITableFieldPropertyEditor,
|
124
165
|
ThyDatePickerFormatPipe,
|
125
|
-
ThyTooltipModule,
|
126
166
|
ThyFlexibleText,
|
127
167
|
ThyStopPropagationDirective,
|
128
168
|
FieldMenu,
|
129
169
|
ThyAction,
|
130
170
|
ThyDropdownDirective,
|
131
171
|
ThyDropdownMenuComponent,
|
132
|
-
ThyCheckboxModule
|
133
|
-
|
134
|
-
|
135
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9ncmlkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL2dyaWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQWMsS0FBSyxFQUFFLEtBQUssRUFBa0IsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2SSxPQUFPLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFeEMsT0FBTyxFQUNILE9BQU8sRUFDUCxhQUFhLEVBQ2IsZ0JBQWdCLEVBSWhCLGdCQUFnQixFQUVoQixrQkFBa0IsRUFFckIsTUFBTSxRQUFRLENBQUM7QUFDaEIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ25FLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG9FQUFvRSxDQUFDO0FBQ2hILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxP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REFDdkIsZ0JBQWdCLCtCQUNoQixlQUFlLG1PQUNmLDJCQUEyQixpR0FDM0IsU0FBUywrR0FDVCxTQUFTLGdNQUNULG9CQUFvQixtUkFDcEIsd0JBQXdCLHlHQUN4QixpQkFBaUI7OzJGQUlaLFdBQVc7a0JBaEN2QixTQUFTOytCQUNJLGVBQWUsY0FFYixJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0YsS0FBSyxFQUFFLGVBQWU7cUJBQ3pCLFdBQ1E7d0JBQ0wsT0FBTzt3QkFDUCxPQUFPO3dCQUNQLGlCQUFpQjt3QkFDakIsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGdCQUFnQjt3QkFDaEIsTUFBTTt3QkFDTixnQkFBZ0I7d0JBQ2hCLE9BQU87d0JBQ1AsT0FBTzt3QkFDUCwwQkFBMEI7d0JBQzFCLHVCQUF1Qjt3QkFDdkIsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLDJCQUEyQjt3QkFDM0IsU0FBUzt3QkFDVCxTQUFTO3dCQUNULG9CQUFvQjt3QkFDcEIsd0JBQXdCO3dCQUN4QixpQkFBaUI7cUJBQ3BCLGFBQ1UsQ0FBQyxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSx1QkFBdUIsRUFBRSwyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBFbGVtZW50UmVmLCBpbnB1dCwgbW9kZWwsIE5nWm9uZSwgT25Jbml0LCBvdXRwdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBOZ0NsYXNzLCBOZ0NvbXBvbmVudE91dGxldCwgTmdGb3JPZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTZWxlY3RPcHRpb25QaXBlIH0gZnJvbSAnLi9waXBlcy9ncmlkJztcbmltcG9ydCB7IFRoeVRhZyB9IGZyb20gJ25neC10ZXRoeXMvdGFnJztcbmltcG9ydCB7IFRoeVBvcG92ZXJNb2R1bGUgfSBmcm9tICduZ3gtdGV0aHlzL3BvcG92ZXInO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgYnVpbGRHcmlkRGF0YSB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgQUlGaWVsZENvbmZpZywgQUlUYWJsZUZpZWxkTWVudUl0ZW0sIEFJVGFibGVSb3dIZWlnaHQgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7XG4gICAgQWN0aW9ucyxcbiAgICBjcmVhdGVBSVRhYmxlLFxuICAgIGdldERlZmF1bHRSZWNvcmQsXG4gICAgQUlUYWJsZSxcbiAgICBBSVRhYmxlQ2hhbmdlT3B0aW9ucyxcbiAgICBBSVRhYmxlRmllbGRzLFxuICAgIEFJVGFibGVGaWVsZFR5cGUsXG4gICAgQUlUYWJsZVJlY29yZHMsXG4gICAgY3JlYXRlRGVmYXVsdEZpZWxkLFxuICAgIEFJUGx1Z2luXG59IGZyb20gJy4vY29yZSc7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IEFJVGFibGVHcmlkRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEFJVGFibGVGaWVsZFByb3BlcnR5RWRpdG9yIH0gZnJvbSAnLi9jb21wb25lbnRzL2ZpZWxkLXByb3BlcnR5LWVkaXRvci9maWVsZC1wcm9wZXJ0eS1lZGl0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFRoeURhdGVQaWNrZXJGb3JtYXRQaXBlIH0gZnJvbSAnbmd4LXRldGh5cy9kYXRlLXBpY2tlcic7XG5pbXBvcnQgeyBUaHlSYXRlIH0gZnJvbSAnbmd4LXRldGh5cy9yYXRlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVGh5RmxleGlibGVUZXh0IH0gZnJvbSAnbmd4LXRldGh5cy9mbGV4aWJsZS10ZXh0JztcbmltcG9ydCB7IFRoeVRvb2x0aXBNb2R1bGUsIFRoeVRvb2x0aXBTZXJ2aWNlIH0gZnJvbSAnbmd4LXRldGh5cy90b29sdGlwJztcbmltcG9ydCB7IFRoeUNoZWNrYm94TW9kdWxlIH0gZnJvbSAnbmd4LXRldGh5cy9jaGVja2JveCc7XG5pbXBvcnQgeyBUaHlTdG9wUHJvcGFnYXRpb25EaXJlY3RpdmUgfSBmcm9tICduZ3gtdGV0aHlzL3NoYXJlZCc7XG5pbXBvcnQgeyBGaWVsZE1lbnUgfSBmcm9tICcuL2NvbXBvbmVudHMvZmllbGQtbWVudS9maWVsZC1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaHlBY3Rpb24gfSBmcm9tICduZ3gtdGV0aHlzL2FjdGlvbic7XG5pbXBvcnQgeyBUaHlEcm9wZG93bkRpcmVjdGl2ZSwgVGh5RHJvcGRvd25NZW51Q29tcG9uZW50IH0gZnJvbSAnbmd4LXRldGh5cy9kcm9wZG93bic7XG5pbXBvcnQgeyBEZWZhdWx0RmllbGRNZW51cyB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IEFJX1RBQkxFX0dSSURfRklFTERfU0VSVklDRV9NQVAsIEFJVGFibGVHcmlkRmllbGRTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9maWVsZC5zZXJ2aWNlJztcbmltcG9ydCB7IEFJVGFibGVHcmlkU2VsZWN0aW9uU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvc2VsZWN0aW9uLnNlcnZpdmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FpLXRhYmxlLWdyaWQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ncmlkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdhaS10YWJsZS1ncmlkJ1xuICAgIH0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBOZ0Zvck9mLFxuICAgICAgICBOZ0NsYXNzLFxuICAgICAgICBOZ0NvbXBvbmVudE91dGxldCxcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgU2VsZWN0T3B0aW9uUGlwZSxcbiAgICAgICAgVGh5VGFnLFxuICAgICAgICBUaHlQb3BvdmVyTW9kdWxlLFxuICAgICAgICBUaHlJY29uLFxuICAgICAgICBUaHlSYXRlLFxuICAgICAgICBBSVRhYmxlRmllbGRQcm9wZXJ0eUVkaXRvcixcbiAgICAgICAgVGh5RGF0ZVBpY2tlckZvcm1hdFBpcGUsXG4gICAgICAgIFRoeVRvb2x0aXBNb2R1bGUsXG4gICAgICAgIFRoeUZsZXhpYmxlVGV4dCxcbiAgICAgICAgVGh5U3RvcFByb3BhZ2F0aW9uRGlyZWN0aXZlLFxuICAgICAgICBGaWVsZE1lbnUsXG4gICAgICAgIFRoeUFjdGlvbixcbiAgICAgICAgVGh5RHJvcGRvd25EaXJlY3RpdmUsXG4gICAgICAgIFRoeURyb3Bkb3duTWVudUNvbXBvbmVudCxcbiAgICAgICAgVGh5Q2hlY2tib3hNb2R1bGVcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW1RoeVRvb2x0aXBTZXJ2aWNlLCBBSVRhYmxlR3JpZEV2ZW50U2VydmljZSwgQUlUYWJsZUdyaWRGaWVsZFNlcnZpY2UsIEFJVGFibGVHcmlkU2VsZWN0aW9uU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgQUlUYWJsZUdyaWQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIGFpUmVjb3JkcyA9IG1vZGVsLnJlcXVpcmVkPEFJVGFibGVSZWNvcmRzPigpO1xuXG4gICAgYWlGaWVsZHMgPSBtb2RlbC5yZXF1aXJlZDxBSVRhYmxlRmllbGRzPigpO1xuXG4gICAgYWlSb3dIZWlnaHQgPSBpbnB1dDxBSVRhYmxlUm93SGVpZ2h0PigpO1xuXG4gICAgYWlGaWVsZENvbmZpZyA9IGlucHV0PEFJRmllbGRDb25maWc+KCk7XG5cbiAgICBhaVJlYWRvbmx5ID0gaW5wdXQ8Ym9vbGVhbj4oKTtcblxuICAgIGFpUGx1Z2lucyA9IGlucHV0PEFJUGx1Z2luW10+KCk7XG5cbiAgICBBSVRhYmxlRmllbGRUeXBlID0gQUlUYWJsZUZpZWxkVHlwZTtcblxuICAgIHRha2VVbnRpbERlc3Ryb3llZCA9IHRha2VVbnRpbERlc3Ryb3llZCgpO1xuXG4gICAgYWlUYWJsZSE6IEFJVGFibGU7XG5cbiAgICBnZXQgaXNTZWxlY3RlZEFsbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWlUYWJsZS5zZWxlY3Rpb24oKS5zZWxlY3RlZFJlY29yZHMuc2l6ZSA9PT0gdGhpcy5haVJlY29yZHMoKS5sZW5ndGg7XG4gICAgfVxuXG4gICAgb25DaGFuZ2UgPSBvdXRwdXQ8QUlUYWJsZUNoYW5nZU9wdGlvbnM+KCk7XG5cbiAgICBhaVRhYmxlSW5pdGlhbGl6ZWQgPSBvdXRwdXQ8QUlUYWJsZT4oKTtcblxuICAgIGZpZWxkTWVudXMhOiBBSVRhYmxlRmllbGRNZW51SXRlbVtdO1xuXG4gICAgZ3JpZERhdGEgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIHJldHVybiBidWlsZEdyaWREYXRhKHRoaXMuYWlSZWNvcmRzKCksIHRoaXMuYWlGaWVsZHMoKSwgdGhpcy5haVRhYmxlLnNlbGVjdGlvbigpKTtcbiAgICB9KTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgYWlUYWJsZUdyaWRFdmVudFNlcnZpY2U6IEFJVGFibGVHcmlkRXZlbnRTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgYWlUYWJsZUdyaWRTZWxlY3Rpb25TZXJ2aWNlOiBBSVRhYmxlR3JpZFNlbGVjdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgYWlUYWJsZUdyaWRGaWVsZFNlcnZpY2U6IEFJVGFibGVHcmlkRmllbGRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIG5nWm9uZTogTmdab25lXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5pdEFJVGFibGUoKTtcbiAgICAgICAgdGhpcy5pbml0U2VydmljZSgpO1xuICAgICAgICB0aGlzLmJ1aWxkRmllbGRNZW51cygpO1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFpVGFibGVHcmlkRXZlbnRTZXJ2aWNlLm1vdXNlZG93bkV2ZW50JC5waXBlKHRoaXMudGFrZVVudGlsRGVzdHJveWVkKS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKChldmVudCBhcyBNb3VzZUV2ZW50KT8udGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWlUYWJsZUdyaWRTZWxlY3Rpb25TZXJ2aWNlLnVwZGF0ZVNlbGVjdChldmVudCBhcyBNb3VzZUV2ZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgaW5pdEFJVGFibGUoKSB7XG4gICAgICAgIHRoaXMuYWlUYWJsZSA9IGNyZWF0ZUFJVGFibGUodGhpcy5haVJlY29yZHMsIHRoaXMuYWlGaWVsZHMpO1xuICAgICAgICB0aGlzLmFpUGx1Z2lucygpPy5mb3JFYWNoKChwbHVnaW4pID0+IHtcbiAgICAgICAgICAgIHRoaXMuYWlUYWJsZSA9IHBsdWdpbih0aGlzLmFpVGFibGUpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5haVRhYmxlSW5pdGlhbGl6ZWQuZW1pdCh0aGlzLmFpVGFibGUpO1xuICAgICAgICB0aGlzLmFpVGFibGUub25DaGFuZ2UgPSAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoe1xuICAgICAgICAgICAgICAgIHJlY29yZHM6IHRoaXMuYWlSZWNvcmRzKCksXG4gICAgICAgICAgICAgICAgZmllbGRzOiB0aGlzLmFpRmllbGRzKCksXG4gICAgICAgICAgICAgICAgYWN0aW9uczogdGhpcy5haVRhYmxlLmFjdGlvbnNcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIGluaXRTZXJ2aWNlKCkge1xuICAgICAgICB0aGlzLmFpVGFibGVHcmlkRXZlbnRTZXJ2aWNlLmluaXRpYWxpemUodGhpcy5haVRhYmxlLCB0aGlzLmFpRmllbGRDb25maWcoKT8uZmllbGRQcm9wZXJ0eUVkaXRvcik7XG4gICAgICAgIHRoaXMuYWlUYWJsZUdyaWRTZWxlY3Rpb25TZXJ2aWNlLmluaXRpYWxpemUodGhpcy5haVRhYmxlKTtcbiAgICAgICAgdGhpcy5haVRhYmxlR3JpZEV2ZW50U2VydmljZS5yZWdpc3RlckV2ZW50cyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIHRoaXMuYWlUYWJsZUdyaWRGaWVsZFNlcnZpY2UuaW5pdEFJRmllbGRDb25maWcodGhpcy5haUZpZWxkQ29uZmlnKCkpO1xuICAgICAgICBBSV9UQUJMRV9HUklEX0ZJRUxEX1NFUlZJQ0VfTUFQLnNldCh0aGlzLmFpVGFibGUsIHRoaXMuYWlUYWJsZUdyaWRGaWVsZFNlcnZpY2UpO1xuICAgIH1cblxuICAgIGJ1aWxkRmllbGRNZW51cygpIHtcbiAgICAgICAgdGhpcy5maWVsZE1lbnVzID0gdGhpcy5haUZpZWxkQ29uZmlnKCk/LmZpZWxkTWVudXMgPz8gRGVmYXVsdEZpZWxkTWVudXM7XG4gICAgfVxuXG4gICAgYWRkUmVjb3JkKCkge1xuICAgICAgICBBY3Rpb25zLmFkZFJlY29yZCh0aGlzLmFpVGFibGUsIGdldERlZmF1bHRSZWNvcmQodGhpcy5haUZpZWxkcygpKSwgW3RoaXMuYWlSZWNvcmRzKCkubGVuZ3RoXSk7XG4gICAgfVxuXG4gICAgc2VsZWN0UmVjb3JkKHJlY29yZElkOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5haVRhYmxlR3JpZFNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0UmVjb3JkKHJlY29yZElkKTtcbiAgICB9XG5cbiAgICB0b2dnbGVTZWxlY3RBbGwoY2hlY2tlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmFpVGFibGVHcmlkU2VsZWN0aW9uU2VydmljZS50b2dnbGVTZWxlY3RBbGwoY2hlY2tlZCk7XG4gICAgfVxuXG4gICAgYWRkRmllbGQoZ3JpZENvbHVtbkJsYW5rOiBIVE1MRWxlbWVudCkge1xuICAgICAgICBjb25zdCBmaWVsZCA9IHNpZ25hbChjcmVhdGVEZWZhdWx0RmllbGQodGhpcy5haVRhYmxlLCBBSVRhYmxlRmllbGRUeXBlLnRleHQpKTtcbiAgICAgICAgdGhpcy5haVRhYmxlR3JpZEZpZWxkU2VydmljZS5lZGl0RmllbGRQcm9wZXJ0eShncmlkQ29sdW1uQmxhbmssIHRoaXMuYWlUYWJsZSwgZmllbGQsIGZhbHNlKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZ3JpZC1oZWFkZXIgZC1mbGV4XCI+XG4gICAgPGRpdiBjbGFzcz1cImdyaWQtY29sdW1uLWNoZWNrYm94IGdyaWQtY2VsbFwiPlxuICAgICAgICA8bGFiZWwgdGh5Q2hlY2tib3ggdGh5TGFiZWxUZXh0PVwiXCIgW25nTW9kZWxdPVwiaXNTZWxlY3RlZEFsbFwiIChuZ01vZGVsQ2hhbmdlKT1cInRvZ2dsZVNlbGVjdEFsbCgkZXZlbnQpXCI+PC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgICBAZm9yIChmaWVsZCBvZiBncmlkRGF0YSgpLmZpZWxkczsgdHJhY2sgZmllbGQuaWQpIHtcbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJncmlkLWNlbGwgZ3JpZC1maWVsZFwiXG4gICAgICAgICAgICAjZmllbGRBY3Rpb25cbiAgICAgICAgICAgIFthdHRyLmZpZWxkSWRdPVwiZmllbGQuaWRcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyBoaWdobGlnaHQ6IGFpVGFibGUuc2VsZWN0aW9uKCkuc2VsZWN0ZWRGaWVsZHMuaGFzKGZpZWxkLmlkKSB9XCJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgd2lkdGg6IGZpZWxkLndpZHRoICsgJ3B4JyB9XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXRydW5jYXRlXCI+XG4gICAgICAgICAgICAgICAgPHRoeS1pY29uIFt0aHlJY29uTmFtZV09XCJmaWVsZC5pY29uIVwiIGNsYXNzPVwibXItMiB0ZXh0LW11dGVkXCI+PC90aHktaWNvbj5cbiAgICAgICAgICAgICAgICA8c3Bhbj57eyBmaWVsZC5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICBjbGFzcz1cImdyaWQtZmllbGQtYWN0aW9uXCJcbiAgICAgICAgICAgICAgICB0aHlBY3Rpb25cbiAgICAgICAgICAgICAgICB0aHlBY3RpdmVDbGFzcz1cImFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgdGh5SWNvbj1cIm1vcmUtdmVydGljYWxcIlxuICAgICAgICAgICAgICAgIFt0aHlEcm9wZG93bl09XCJmaWVsZE1lbnVcIlxuICAgICAgICAgICAgICAgIGhyZWY9XCJqYXZhc2NyaXB0OjtcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDx0aHktZHJvcGRvd24tbWVudSAjZmllbGRNZW51PlxuICAgICAgICAgICAgICAgICAgICA8ZmllbGQtbWVudSBbb3JpZ2luXT1cImZpZWxkQWN0aW9uXCIgW2ZpZWxkSWRdPVwiZmllbGQuaWRcIiBbYWlUYWJsZV09XCJhaVRhYmxlXCIgW2ZpZWxkTWVudXNdPVwiZmllbGRNZW51c1wiPjwvZmllbGQtbWVudT5cbiAgICAgICAgICAgICAgICA8L3RoeS1kcm9wZG93bi1tZW51PlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG4gICAgPGRpdiBjbGFzcz1cImdyaWQtY29sdW1uLWJsYW5rIGN1cnNvci1wb2ludGVyXCIgI2dyaWRDb2x1bW5CbGFuayAoY2xpY2spPVwiYWRkRmllbGQoZ3JpZENvbHVtbkJsYW5rKVwiPlxuICAgICAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJwbHVzXCI+PC90aHktaWNvbj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImdyaWQtYm9keSBkLWZsZXhcIj5cbiAgICBAZm9yIChyZWNvcmQgb2YgZ3JpZERhdGEoKS5yZWNvcmRzOyB0cmFjayByZWNvcmQuaWQ7IGxldCBpbmRleCA9ICRpbmRleCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZC1yb3cgZC1mbGV4XCIgW25nQ2xhc3NdPVwieyBoaWdobGlnaHQ6IGFpVGFibGUuc2VsZWN0aW9uKCkuc2VsZWN0ZWRSZWNvcmRzLmhhcyhyZWNvcmQuaWQpIH1cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkLXJvdy1pbmRleFwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJyZWNvcmQuY2hlY2tlZCA/ICdjaGVja2VkLWJveCcgOiAndW5jaGVja2VkLWJveCdcIlxuICAgICAgICAgICAgICAgICAgICB0aHlDaGVja2JveFxuICAgICAgICAgICAgICAgICAgICB0aHlMYWJlbFRleHQ9XCJcIlxuICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJyZWNvcmQuY2hlY2tlZFwiXG4gICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNlbGVjdFJlY29yZChyZWNvcmQuaWQpXCJcbiAgICAgICAgICAgICAgICA+PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8c3BhbiBbbmdDbGFzc109XCJyZWNvcmQuY2hlY2tlZCA/ICdncmlkLXJvdy1uby1udW1iZXInIDogJ2dyaWQtcm93LW51bWJlcidcIj4ge3sgaW5kZXggKyAxIH19IDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgQGZvciAoZmllbGQgb2YgZ3JpZERhdGEoKS5maWVsZHM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJncmlkLWNlbGxcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICBoaWdobGlnaHQ6IGFpVGFibGUuc2VsZWN0aW9uKCkuc2VsZWN0ZWRDZWxscy5oYXMocmVjb3JkLmlkKSB8fCBhaVRhYmxlLnNlbGVjdGlvbigpLnNlbGVjdGVkRmllbGRzLmhhcyhmaWVsZC5pZCksXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZDogYWlUYWJsZS5zZWxlY3Rpb24oKS5zZWxlY3RlZENlbGxzLmdldChyZWNvcmQuaWQpPy5oYXNPd25Qcm9wZXJ0eShmaWVsZC5pZClcbiAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLnR5cGVdPVwiW2ZpZWxkLnR5cGVdXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuZmllbGRJZF09XCJbZmllbGQuaWRdXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIucmVjb3JkSWRdPVwiW3JlY29yZC5pZF1cIlxuICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7IHdpZHRoOiBmaWVsZC53aWR0aCArICdweCcgfVwiXG4gICAgICAgICAgICAgICAgICAgICNjZWxsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICBAc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAY2FzZSAoQUlUYWJsZUZpZWxkVHlwZS5zZWxlY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKCFmaWVsZC5pc011bHRpcGxlICYmIHJlY29yZC52YWx1ZXNbZmllbGQuaWRdIHwgc2VsZWN0T3B0aW9uOiBmaWVsZFsnb3B0aW9ucyddOyBhcyBzZWxlY3RlZE9wdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGh5LXRhZyBbdGh5Q29sb3JdPVwic2VsZWN0ZWRPcHRpb24hLmNvbG9yIVwiPnt7IHNlbGVjdGVkT3B0aW9uLm5hbWUgfX08L3RoeS10YWc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKEFJVGFibGVGaWVsZFR5cGUuZGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHJlY29yZC52YWx1ZXNbZmllbGQuaWRdIHwgdGh5RGF0ZVBpY2tlckZvcm1hdCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKEFJVGFibGVGaWVsZFR5cGUucmF0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aHktcmF0ZSBbKG5nTW9kZWwpXT1cInJlY29yZC52YWx1ZXNbZmllbGQuaWRdXCI+PC90aHktcmF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlIChBSVRhYmxlRmllbGRUeXBlLmxpbmspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtYmxvY2tcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHlTdG9wUHJvcGFnYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGh5RmxleGlibGVUZXh0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0aHlUb29sdGlwQ29udGVudF09XCJyZWNvcmQudmFsdWVzW2ZpZWxkLmlkXT8udGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cInJlY29yZC52YWx1ZXNbZmllbGQuaWRdPy51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+e3sgcmVjb3JkLnZhbHVlc1tmaWVsZC5pZF0/LnRleHQgfX08L2FcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBAZGVmYXVsdCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXRydW5jYXRlXCI+IHt7IHJlY29yZC52YWx1ZXNbZmllbGQuaWRdIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdXRvZmlsbC1jb250YWluZXJcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkLWNvbHVtbi1ibGFua1wiPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG4gICAgPGRpdiBjbGFzcz1cImdyaWQtcm93LWluc2VydCBncmlkLXJvdyBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJhZGRSZWNvcmQoKVwiPlxuICAgICAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJwbHVzXCI+PC90aHktaWNvbj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2ICNhY3RpdmVCb3JkZXIgY2xhc3M9XCJhY3RpdmUtYm9yZGVyXCI+PC9kaXY+XG4iXX0=
|
172
|
+
ThyCheckboxModule,
|
173
|
+
ProgressEditorComponent,
|
174
|
+
ThyAvatarModule,
|
175
|
+
NgTemplateOutlet,
|
176
|
+
IsSelectRecordPipe
|
177
|
+
], providers: [AITableGridEventService, AITableGridFieldService, AITableGridSelectionService], template: "<div class=\"grid-header d-flex\">\n <div class=\"grid-column-checkbox grid-cell grid-checkbox\">\n <label thyCheckbox thyLabelText=\"\" [ngModel]=\"isSelectedAll()\" (ngModelChange)=\"toggleSelectAll($event)\"></label>\n </div>\n @for (field of gridData().fields; track field._id) {\n <div\n class=\"grid-cell grid-field\"\n #fieldAction\n [attr.fieldId]=\"field._id\"\n [ngClass]=\"{ highlight: aiTable.selection().selectedFields.has(field._id) }\"\n [ngStyle]=\"{ width: field.width + 'px' }\"\n >\n <span class=\"text-truncate\">\n <thy-icon [thyIconName]=\"field.icon!\" class=\"mr-2 text-muted\"></thy-icon>\n <span>{{ field.name }}</span>\n </span>\n <a\n class=\"grid-field-action\"\n thyAction\n thyActiveClass=\"active\"\n thyIcon=\"more-vertical\"\n [thyDropdown]=\"fieldMenu\"\n href=\"javascript:;\"\n >\n <thy-dropdown-menu #fieldMenu>\n <field-menu [origin]=\"fieldAction\" [fieldId]=\"field._id\" [aiTable]=\"aiTable\" [fieldMenus]=\"fieldMenus\"></field-menu>\n </thy-dropdown-menu>\n </a>\n </div>\n }\n <div class=\"grid-column-blank cursor-pointer\" #gridColumnBlank (click)=\"addField(gridColumnBlank)\">\n <thy-icon thyIconName=\"plus\"></thy-icon>\n </div>\n</div>\n<div class=\"grid-body d-flex\">\n @for (record of gridData().records; track record._id; let index = $index) {\n <div class=\"grid-row d-flex\" [ngClass]=\"{ highlight: (record._id | isSelectRecord: aiTable.selection()) }\">\n <div class=\"grid-row-index grid-checkbox\">\n <label\n [ngClass]=\"(record._id | isSelectRecord: aiTable.selection()) ? 'checked-box' : 'unchecked-box'\"\n thyCheckbox\n thyLabelText=\"\"\n [ngModel]=\"record._id | isSelectRecord: aiTable.selection()\"\n (ngModelChange)=\"selectRecord(record._id)\"\n ></label>\n <span [ngClass]=\"(record._id | isSelectRecord: aiTable.selection()) ? 'grid-row-no-number' : 'grid-row-number'\">\n {{ index + 1 }}\n </span>\n </div>\n @for (field of gridData().fields; track field._id) {\n <div\n #cell\n class=\"grid-cell\"\n [ngClass]=\"{\n highlight: aiTable.selection().selectedCells.has(record._id) || aiTable.selection().selectedFields.has(field._id),\n selected: aiTable.selection().selectedCells.get(record._id)?.hasOwnProperty(field._id)\n }\"\n [attr.type]=\"[field.type]\"\n [attr.fieldId]=\"[field._id]\"\n [attr.readonly]=\"[field?.readonly]\"\n [attr.recordId]=\"[record._id]\"\n [ngStyle]=\"{ width: field.width + 'px' }\"\n >\n @switch (field.type) {\n @case (AITableFieldType.select) {\n @if (!field.isMultiple && record.values[field._id] | selectOption: field['options']; as selectedOption) {\n <thy-tag [thyColor]=\"selectedOption!.color!\">{{ selectedOption.text }}</thy-tag>\n }\n }\n @case (AITableFieldType.date) {\n {{ record.values[field._id] | thyDatePickerFormat }}\n }\n @case (AITableFieldType.updatedAt) {\n <div class=\"d-block user-select-none\">\n <span class=\"text-truncate\">\n {{ record.values[field._id] | thyDatePickerFormat: 'yyyy-MM-dd HH:mm' }}\n </span>\n </div>\n }\n @case (AITableFieldType.createdAt) {\n <div class=\"d-block user-select-none\">\n <span class=\"text-truncate\">\n {{ record.values[field._id] | thyDatePickerFormat: 'yyyy-MM-dd HH:mm' }}\n </span>\n </div>\n }\n @case (AITableFieldType.rate) {\n <thy-rate [ngModel]=\"record.values[field._id]\"></thy-rate>\n }\n @case (AITableFieldType.link) {\n <a\n class=\"d-block\"\n target=\"_blank\"\n [href]=\"record.values[field._id]?.url\"\n thyStopPropagation\n thyFlexibleText\n [thyTooltipContent]=\"record.values[field._id]?.text\"\n >\n {{ record.values[field._id]?.text }}\n </a>\n }\n @case (AITableFieldType.progress) {\n <thy-progress\n class=\"w-100\"\n [thyValue]=\"record.values[field._id]\"\n [thySize]=\"record.values[field._id]?.config?.size || 'md'\"\n [thyMax]=\"record.values[field._id]?.config?.max || 100\"\n [thyType]=\"record.values[field._id]?.config?.progressType || 'success'\"\n >\n <span> {{ record.values[field._id] }}{{ record.values[field._id]?.config?.suffix || '%' }} </span>\n </thy-progress>\n }\n @case (AITableFieldType.member) {\n @if (!field.isMultiple) {\n <thy-avatar\n [thyName]=\"record.values[field._id].display_name\"\n [thySrc]=\"record.values[field._id].avatar\"\n thySize=\"xs\"\n thyShowName=\"true\"\n ></thy-avatar>\n } @else {\n <thy-avatar-list thyAvatarSize=\"xs\">\n @for (item of record.values[field._id]; track $index) {\n <thy-avatar [thyName]=\"item.display_name\" [thySrc]=\"item.avatar\"></thy-avatar>\n }\n </thy-avatar-list>\n }\n }\n @case (AITableFieldType.createdBy) {\n <thy-avatar\n [thyName]=\"record.values[field._id].display_name\"\n [thySrc]=\"record.values[field._id].avatar\"\n thySize=\"xs\"\n thyShowName=\"true\"\n ></thy-avatar>\n }\n @case (AITableFieldType.updatedBy) {\n <thy-avatar\n [thyName]=\"record.values[field._id].display_name\"\n [thySrc]=\"record.values[field._id].avatar\"\n thySize=\"xs\"\n thyShowName=\"true\"\n ></thy-avatar>\n }\n @default {\n <span class=\"text-truncate\"> {{ record.values[field._id] }}</span>\n }\n }\n <div class=\"autofill-container\"></div>\n </div>\n }\n <div class=\"grid-column-blank\"></div>\n </div>\n }\n <div class=\"grid-row-insert grid-row cursor-pointer\" (click)=\"addRecord()\">\n <thy-icon thyIconName=\"plus\"></thy-icon>\n </div>\n</div>\n\n<div #activeBorder class=\"active-border\"></div>" }]
|
178
|
+
}] });
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9ncmlkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL2dyaWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEcsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLFVBQVUsRUFDVixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxLQUFLLEVBQ0wsTUFBTSxFQUVOLE1BQU0sRUFDTixNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBaUIsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQztBQUNoSCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUYsT0FBTyxFQUNILE9BQU8sRUFLUCxnQkFBZ0IsRUFFaEIsYUFBYSxFQUNiLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDbkIsTUFBTSxRQUFRLENBQUM7QUFDaEIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDekUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbkUsT0FBTyxFQUFFLCtCQUErQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFM0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN4QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7OztBQXNDcEQsTUFBTSxPQUFPLFdBQVc7SUFwQ3hCO1FBcUNJLGNBQVMsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFrQixDQUFDO1FBRTdDLGFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFpQixDQUFDO1FBRTNDLGtCQUFhLEdBQUcsS0FBSyxFQUFpQixDQUFDO1FBRXZDLGVBQVUsR0FBRyxLQUFLLEVBQVcsQ0FBQztRQUU5QixjQUFTLEdBQUcsS0FBSyxFQUFjLENBQUM7UUFFaEMsaUJBQVksR0FBRyxLQUFLLEVBQXFCLENBQUM7UUFFMUMscUJBQWdCLEdBQUcsZ0JBQWdCLENBQUM7UUFJcEMsa0JBQWEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzFCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxlQUFlLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxNQUFNLENBQUM7UUFDckYsQ0FBQyxDQUFDLENBQUM7UUFFSCxhQUFRLEdBQUcsTUFBTSxFQUF3QixDQUFDO1FBRTFDLHVCQUFrQixHQUFHLE1BQU0sRUFBVyxDQUFDO1FBTXZDLGFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3JCLE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDakYsQ0FBQyxDQUFDLENBQUM7UUFFSyxXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hCLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEMsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoQyw0QkFBdUIsR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUMxRCw0QkFBdUIsR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUMzRCxnQ0FBMkIsR0FBRyxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQztLQXNHNUU7SUFwR0csUUFBUTtRQUNKLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxPQUFPLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNqQyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEMsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsR0FBRyxHQUFHLEVBQUU7WUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7Z0JBQ2YsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUU7Z0JBQ3pCLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUN2QixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPO2FBQ2hDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1FBQ2pHLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7UUFDckUsK0JBQStCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxVQUFVLElBQUksaUJBQWlCLENBQUM7SUFDNUUsQ0FBQztJQUVELFNBQVM7UUFDTCxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNsRyxDQUFDO0lBRUQsWUFBWSxDQUFDLFFBQWdCO1FBQ3pCLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUFnQjtRQUM1QixJQUFJLENBQUMsMkJBQTJCLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxRQUFRLENBQUMsZUFBNEI7UUFDakMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM5RSxJQUFJLENBQUMsdUJBQXVCLENBQUMsaUJBQWlCLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFFTyxlQUFlO1FBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO1lBQy9CLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUN0RyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3pCLENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGVBQWU7aUJBQ3ZDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLHFCQUFxQixDQUFDLEVBQUUsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2lCQUN4RyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxDQUFDLDJCQUEyQixDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN6RCxDQUFDLENBQUMsQ0FBQztZQUVQLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUN2RyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hDLENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLHVCQUF1QixDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDN0csSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sUUFBUSxDQUFDLEtBQWlCO1FBQzlCLE1BQU0sT0FBTyxHQUFJLEtBQUssQ0FBQyxNQUFzQixDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQWdCLENBQUM7UUFDbkYsTUFBTSxJQUFJLEdBQUcsT0FBTyxJQUFLLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUF1QixDQUFDO1FBQzVFLE1BQU0sUUFBUSxHQUFHLE9BQU8sSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBRSxDQUFDO1FBQzlELElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzFELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkQsQ0FBQztJQUNMLENBQUM7SUFFTyxlQUFlLENBQUMsS0FBaUI7UUFDckMsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUMvQixDQUFDO1FBQ0QsTUFBTSxPQUFPLEdBQUksS0FBSyxDQUFDLE1BQXNCLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBZ0IsQ0FBQztRQUNuRixNQUFNLElBQUksR0FBRyxPQUFPLElBQUssT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQXVCLENBQUM7UUFDNUUsSUFBSSxJQUFJLElBQUksbUJBQW1CLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDN0MsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7SUFDTCxDQUFDO0lBRU8sb0JBQW9CLENBQUMsQ0FBYTtRQUN0QyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNwQixNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsTUFBTSxJQUFLLENBQUMsQ0FBQyxNQUFzQixDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ2hGLE1BQU0sYUFBYSxHQUFHLENBQUMsQ0FBQyxNQUFNLElBQUssQ0FBQyxDQUFDLE1BQXNCLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDekYsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUM3QixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzlCLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQzs4R0EzSVEsV0FBVztrR0FBWCxXQUFXLHFpQ0FGVCxDQUFDLHVCQUF1QixFQUFFLHVCQUF1QixFQUFFLDJCQUEyQixDQUFDLDBCQ3ZGOUYsZzJRQStKK0MsNENEaEd2QyxPQUFPLG1GQUVQLFlBQVksbUhBQ1osV0FBVywwVkFDWCxnQkFBZ0IscURBQ2hCLE1BQU0sK0lBQ04sZ0JBQWdCLCtCQUNoQixPQUFPLHNNQUNQLE9BQU8sOExBQ1AsV0FBVyxxTEFFWCx1QkFBdUIsNERBQ3ZCLGVBQWUsbU9BQ2YsMkJBQTJCLGlHQUMzQixTQUFTLCtHQUNULFNBQVMsZ01BQ1Qsb0JBQW9CLG1SQUNwQix3QkFBd0IseUdBQ3hCLGlCQUFpQixnS0FFakIsZUFBZSw0WkFFZixrQkFBa0I7OzJGQUliLFdBQVc7a0JBcEN2QixTQUFTOytCQUNJLGVBQWUsY0FFYixJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0YsS0FBSyxFQUFFLGVBQWU7cUJBQ3pCLFdBQ1E7d0JBQ0wsT0FBTzt3QkFDUCxPQUFPO3dCQUNQLGlCQUFpQjt3QkFDakIsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGdCQUFnQjt3QkFDaEIsTUFBTTt3QkFDTixnQkFBZ0I7d0JBQ2hCLE9BQU87d0JBQ1AsT0FBTzt3QkFDUCxXQUFXO3dCQUNYLDBCQUEwQjt3QkFDMUIsdUJBQXVCO3dCQUN2QixlQUFlO3dCQUNmLDJCQUEyQjt3QkFDM0IsU0FBUzt3QkFDVCxTQUFTO3dCQUNULG9CQUFvQjt3QkFDcEIsd0JBQXdCO3dCQUN4QixpQkFBaUI7d0JBQ2pCLHVCQUF1Qjt3QkFDdkIsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjtxQkFDckIsYUFDVSxDQUFDLHVCQUF1QixFQUFFLHVCQUF1QixFQUFFLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBOZ0NsYXNzLCBOZ0NvbXBvbmVudE91dGxldCwgTmdGb3JPZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBjb21wdXRlZCxcbiAgICBEZXN0cm95UmVmLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgaW5qZWN0LFxuICAgIGlucHV0LFxuICAgIG1vZGVsLFxuICAgIE5nWm9uZSxcbiAgICBPbkluaXQsXG4gICAgb3V0cHV0LFxuICAgIHNpZ25hbFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVGh5QWN0aW9uIH0gZnJvbSAnbmd4LXRldGh5cy9hY3Rpb24nO1xuaW1wb3J0IHsgVGh5Q2hlY2tib3hNb2R1bGUgfSBmcm9tICduZ3gtdGV0aHlzL2NoZWNrYm94JztcbmltcG9ydCB7IFRoeURhdGVQaWNrZXJGb3JtYXRQaXBlIH0gZnJvbSAnbmd4LXRldGh5cy9kYXRlLXBpY2tlcic7XG5pbXBvcnQgeyBUaHlEcm9wZG93bkRpcmVjdGl2ZSwgVGh5RHJvcGRvd25NZW51Q29tcG9uZW50IH0gZnJvbSAnbmd4LXRldGh5cy9kcm9wZG93bic7XG5pbXBvcnQgeyBUaHlGbGV4aWJsZVRleHQgfSBmcm9tICduZ3gtdGV0aHlzL2ZsZXhpYmxlLXRleHQnO1xuaW1wb3J0IHsgVGh5SWNvbiB9IGZyb20gJ25neC10ZXRoeXMvaWNvbic7XG5pbXBvcnQgeyBUaHlQb3BvdmVyTW9kdWxlLCBUaHlQb3BvdmVyUmVmIH0gZnJvbSAnbmd4LXRldGh5cy9wb3BvdmVyJztcbmltcG9ydCB7IFRoeVByb2dyZXNzIH0gZnJvbSAnbmd4LXRldGh5cy9wcm9ncmVzcyc7XG5pbXBvcnQgeyBUaHlSYXRlIH0gZnJvbSAnbmd4LXRldGh5cy9yYXRlJztcbmltcG9ydCB7IFRoeVN0b3BQcm9wYWdhdGlvbkRpcmVjdGl2ZSB9IGZyb20gJ25neC10ZXRoeXMvc2hhcmVkJztcbmltcG9ydCB7IFRoeVRhZyB9IGZyb20gJ25neC10ZXRoeXMvdGFnJztcbmltcG9ydCB7IG1lcmdlV2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFByb2dyZXNzRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzJztcbmltcG9ydCB7IEZpZWxkTWVudSB9IGZyb20gJy4vY29tcG9uZW50cy9maWVsZC1tZW51L2ZpZWxkLW1lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IEFJVGFibGVGaWVsZFByb3BlcnR5RWRpdG9yIH0gZnJvbSAnLi9jb21wb25lbnRzL2ZpZWxkLXByb3BlcnR5LWVkaXRvci9maWVsZC1wcm9wZXJ0eS1lZGl0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IERCTF9DTElDS19FRElUX1RZUEUsIERlZmF1bHRGaWVsZE1lbnVzLCBNT1VTRU9WRVJfRURJVF9UWVBFIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHtcbiAgICBBY3Rpb25zLFxuICAgIEFJUGx1Z2luLFxuICAgIEFJVGFibGUsXG4gICAgQUlUYWJsZUNoYW5nZU9wdGlvbnMsXG4gICAgQUlUYWJsZUZpZWxkcyxcbiAgICBBSVRhYmxlRmllbGRUeXBlLFxuICAgIEFJVGFibGVSZWNvcmRzLFxuICAgIGNyZWF0ZUFJVGFibGUsXG4gICAgY3JlYXRlRGVmYXVsdEZpZWxkLFxuICAgIGdldERlZmF1bHRSZWNvcmRcbn0gZnJvbSAnLi9jb3JlJztcbmltcG9ydCB7IElzU2VsZWN0UmVjb3JkUGlwZSwgU2VsZWN0T3B0aW9uUGlwZSB9IGZyb20gJy4vcGlwZXMvZ3JpZC5waXBlJztcbmltcG9ydCB7IEFJVGFibGVHcmlkRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEFJX1RBQkxFX0dSSURfRklFTERfU0VSVklDRV9NQVAsIEFJVGFibGVHcmlkRmllbGRTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9maWVsZC5zZXJ2aWNlJztcbmltcG9ydCB7IEFJVGFibGVHcmlkU2VsZWN0aW9uU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvc2VsZWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgQUlGaWVsZENvbmZpZywgQUlUYWJsZUZpZWxkTWVudUl0ZW0sIEFJVGFibGVSZWZlcmVuY2VzIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBidWlsZEdyaWREYXRhIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBUaHlBdmF0YXJNb2R1bGUgfSBmcm9tICduZ3gtdGV0aHlzL2F2YXRhcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWktdGFibGUtZ3JpZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2dyaWQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2FpLXRhYmxlLWdyaWQnXG4gICAgfSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE5nRm9yT2YsXG4gICAgICAgIE5nQ2xhc3MsXG4gICAgICAgIE5nQ29tcG9uZW50T3V0bGV0LFxuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBTZWxlY3RPcHRpb25QaXBlLFxuICAgICAgICBUaHlUYWcsXG4gICAgICAgIFRoeVBvcG92ZXJNb2R1bGUsXG4gICAgICAgIFRoeUljb24sXG4gICAgICAgIFRoeVJhdGUsXG4gICAgICAgIFRoeVByb2dyZXNzLFxuICAgICAgICBBSVRhYmxlRmllbGRQcm9wZXJ0eUVkaXRvcixcbiAgICAgICAgVGh5RGF0ZVBpY2tlckZvcm1hdFBpcGUsXG4gICAgICAgIFRoeUZsZXhpYmxlVGV4dCxcbiAgICAgICAgVGh5U3RvcFByb3BhZ2F0aW9uRGlyZWN0aXZlLFxuICAgICAgICBGaWVsZE1lbnUsXG4gICAgICAgIFRoeUFjdGlvbixcbiAgICAgICAgVGh5RHJvcGRvd25EaXJlY3RpdmUsXG4gICAgICAgIFRoeURyb3Bkb3duTWVudUNvbXBvbmVudCxcbiAgICAgICAgVGh5Q2hlY2tib3hNb2R1bGUsXG4gICAgICAgIFByb2dyZXNzRWRpdG9yQ29tcG9uZW50LFxuICAgICAgICBUaHlBdmF0YXJNb2R1bGUsXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgICAgIElzU2VsZWN0UmVjb3JkUGlwZVxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbQUlUYWJsZUdyaWRFdmVudFNlcnZpY2UsIEFJVGFibGVHcmlkRmllbGRTZXJ2aWNlLCBBSVRhYmxlR3JpZFNlbGVjdGlvblNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIEFJVGFibGVHcmlkIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBhaVJlY29yZHMgPSBtb2RlbC5yZXF1aXJlZDxBSVRhYmxlUmVjb3Jkcz4oKTtcblxuICAgIGFpRmllbGRzID0gbW9kZWwucmVxdWlyZWQ8QUlUYWJsZUZpZWxkcz4oKTtcblxuICAgIGFpRmllbGRDb25maWcgPSBpbnB1dDxBSUZpZWxkQ29uZmlnPigpO1xuXG4gICAgYWlSZWFkb25seSA9IGlucHV0PGJvb2xlYW4+KCk7XG5cbiAgICBhaVBsdWdpbnMgPSBpbnB1dDxBSVBsdWdpbltdPigpO1xuXG4gICAgYWlSZWZlcmVuY2VzID0gaW5wdXQ8QUlUYWJsZVJlZmVyZW5jZXM+KCk7XG5cbiAgICBBSVRhYmxlRmllbGRUeXBlID0gQUlUYWJsZUZpZWxkVHlwZTtcblxuICAgIGFpVGFibGUhOiBBSVRhYmxlO1xuXG4gICAgaXNTZWxlY3RlZEFsbCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWlUYWJsZS5zZWxlY3Rpb24oKS5zZWxlY3RlZFJlY29yZHMuc2l6ZSA9PT0gdGhpcy5haVJlY29yZHMoKS5sZW5ndGg7XG4gICAgfSk7XG5cbiAgICBvbkNoYW5nZSA9IG91dHB1dDxBSVRhYmxlQ2hhbmdlT3B0aW9ucz4oKTtcblxuICAgIGFpVGFibGVJbml0aWFsaXplZCA9IG91dHB1dDxBSVRhYmxlPigpO1xuXG4gICAgZmllbGRNZW51cyE6IEFJVGFibGVGaWVsZE1lbnVJdGVtW107XG5cbiAgICBtb3VzZW92ZXJSZWYhOiBUaHlQb3BvdmVyUmVmPGFueT47XG5cbiAgICBncmlkRGF0YSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIGJ1aWxkR3JpZERhdGEodGhpcy5haVJlY29yZHMoKSwgdGhpcy5haUZpZWxkcygpLCB0aGlzLmFpUmVmZXJlbmNlcygpKTtcbiAgICB9KTtcblxuICAgIHByaXZhdGUgbmdab25lID0gaW5qZWN0KE5nWm9uZSk7XG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICAgIHByaXZhdGUgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgICBwcml2YXRlIGFpVGFibGVHcmlkRmllbGRTZXJ2aWNlID0gaW5qZWN0KEFJVGFibGVHcmlkRmllbGRTZXJ2aWNlKTtcbiAgICBwcml2YXRlIGFpVGFibGVHcmlkRXZlbnRTZXJ2aWNlID0gaW5qZWN0KEFJVGFibGVHcmlkRXZlbnRTZXJ2aWNlKTtcbiAgICBwdWJsaWMgYWlUYWJsZUdyaWRTZWxlY3Rpb25TZXJ2aWNlID0gaW5qZWN0KEFJVGFibGVHcmlkU2VsZWN0aW9uU2VydmljZSk7XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbml0QUlUYWJsZSgpO1xuICAgICAgICB0aGlzLmluaXRTZXJ2aWNlKCk7XG4gICAgICAgIHRoaXMuYnVpbGRGaWVsZE1lbnVzKCk7XG4gICAgICAgIHRoaXMuc3Vic2NyaWJlRXZlbnRzKCk7XG4gICAgfVxuXG4gICAgaW5pdEFJVGFibGUoKSB7XG4gICAgICAgIHRoaXMuYWlUYWJsZSA9IGNyZWF0ZUFJVGFibGUodGhpcy5haVJlY29yZHMsIHRoaXMuYWlGaWVsZHMpO1xuICAgICAgICB0aGlzLmFpUGx1Z2lucygpPy5mb3JFYWNoKChwbHVnaW4pID0+IHtcbiAgICAgICAgICAgIHRoaXMuYWlUYWJsZSA9IHBsdWdpbih0aGlzLmFpVGFibGUpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5haVRhYmxlSW5pdGlhbGl6ZWQuZW1pdCh0aGlzLmFpVGFibGUpO1xuICAgICAgICB0aGlzLmFpVGFibGUub25DaGFuZ2UgPSAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoe1xuICAgICAgICAgICAgICAgIHJlY29yZHM6IHRoaXMuYWlSZWNvcmRzKCksXG4gICAgICAgICAgICAgICAgZmllbGRzOiB0aGlzLmFpRmllbGRzKCksXG4gICAgICAgICAgICAgICAgYWN0aW9uczogdGhpcy5haVRhYmxlLmFjdGlvbnNcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIGluaXRTZXJ2aWNlKCkge1xuICAgICAgICB0aGlzLmFpVGFibGVHcmlkRXZlbnRTZXJ2aWNlLmluaXRpYWxpemUodGhpcy5haVRhYmxlLCB0aGlzLmFpRmllbGRDb25maWcoKT8uZmllbGRQcm9wZXJ0eUVkaXRvcik7XG4gICAgICAgIHRoaXMuYWlUYWJsZUdyaWRTZWxlY3Rpb25TZXJ2aWNlLmluaXRpYWxpemUodGhpcy5haVRhYmxlKTtcbiAgICAgICAgdGhpcy5haVRhYmxlR3JpZEV2ZW50U2VydmljZS5yZWdpc3RlckV2ZW50cyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIHRoaXMuYWlUYWJsZUdyaWRGaWVsZFNlcnZpY2UuaW5pdEFJRmllbGRDb25maWcodGhpcy5haUZpZWxkQ29uZmlnKCkpO1xuICAgICAgICBBSV9UQUJMRV9HUklEX0ZJRUxEX1NFUlZJQ0VfTUFQLnNldCh0aGlzLmFpVGFibGUsIHRoaXMuYWlUYWJsZUdyaWRGaWVsZFNlcnZpY2UpO1xuICAgIH1cblxuICAgIGJ1aWxkRmllbGRNZW51cygpIHtcbiAgICAgICAgdGhpcy5maWVsZE1lbnVzID0gdGhpcy5haUZpZWxkQ29uZmlnKCk/LmZpZWxkTWVudXMgPz8gRGVmYXVsdEZpZWxkTWVudXM7XG4gICAgfVxuXG4gICAgYWRkUmVjb3JkKCkge1xuICAgICAgICBBY3Rpb25zLmFkZFJlY29yZCh0aGlzLmFpVGFibGUsIGdldERlZmF1bHRSZWNvcmQodGhpcy5haUZpZWxkcygpKSwgW3RoaXMuYWlSZWNvcmRzKCkubGVuZ3RoXSk7XG4gICAgfVxuXG4gICAgc2VsZWN0UmVjb3JkKHJlY29yZElkOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5haVRhYmxlR3JpZFNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0UmVjb3JkKHJlY29yZElkKTtcbiAgICB9XG5cbiAgICB0b2dnbGVTZWxlY3RBbGwoY2hlY2tlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmFpVGFibGVHcmlkU2VsZWN0aW9uU2VydmljZS50b2dnbGVTZWxlY3RBbGwoY2hlY2tlZCk7XG4gICAgfVxuXG4gICAgYWRkRmllbGQoZ3JpZENvbHVtbkJsYW5rOiBIVE1MRWxlbWVudCkge1xuICAgICAgICBjb25zdCBmaWVsZCA9IHNpZ25hbChjcmVhdGVEZWZhdWx0RmllbGQodGhpcy5haVRhYmxlLCBBSVRhYmxlRmllbGRUeXBlLnRleHQpKTtcbiAgICAgICAgdGhpcy5haVRhYmxlR3JpZEZpZWxkU2VydmljZS5lZGl0RmllbGRQcm9wZXJ0eShncmlkQ29sdW1uQmxhbmssIHRoaXMuYWlUYWJsZSwgZmllbGQsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN1YnNjcmliZUV2ZW50cygpIHtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5haVRhYmxlR3JpZEV2ZW50U2VydmljZS5kYmxDbGlja0V2ZW50JC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5kYmxDbGljayhldmVudCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuYWlUYWJsZUdyaWRFdmVudFNlcnZpY2UubW91c2Vkb3duRXZlbnQkXG4gICAgICAgICAgICAgICAgLnBpcGUobWVyZ2VXaXRoKHRoaXMuYWlUYWJsZUdyaWRFdmVudFNlcnZpY2UuZ2xvYmFsTW91c2Vkb3duRXZlbnQkKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5haVRhYmxlR3JpZFNlbGVjdGlvblNlcnZpY2UudXBkYXRlU2VsZWN0KGV2ZW50KTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5haVRhYmxlR3JpZEV2ZW50U2VydmljZS5tb3VzZW92ZXJFdmVudCQucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubW91c2VvdmVySGFuZGxlKGV2ZW50KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5haVRhYmxlR3JpZEV2ZW50U2VydmljZS5nbG9iYWxNb3VzZW92ZXJFdmVudCQucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VIb3ZlckNlbGxFZGl0b3IoZXZlbnQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGJsQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgY29uc3QgY2VsbERvbSA9IChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsb3Nlc3QoJy5ncmlkLWNlbGwnKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgY29uc3QgdHlwZSA9IGNlbGxEb20gJiYgKGNlbGxEb20uZ2V0QXR0cmlidXRlKCd0eXBlJykhIGFzIEFJVGFibGVGaWVsZFR5cGUpO1xuICAgICAgICBjb25zdCByZWFkb25seSA9IGNlbGxEb20gJiYgY2VsbERvbS5nZXRBdHRyaWJ1dGUoJ3JlYWRvbmx5JykhO1xuICAgICAgICBpZiAodHlwZSAmJiAhcmVhZG9ubHkgJiYgREJMX0NMSUNLX0VESVRfVFlQRS5pbmNsdWRlcyh0eXBlKSkge1xuICAgICAgICAgICAgdGhpcy5haVRhYmxlR3JpZEV2ZW50U2VydmljZS5vcGVuRWRpdChjZWxsRG9tKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgbW91c2VvdmVySGFuZGxlKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLm1vdXNlb3ZlclJlZikge1xuICAgICAgICAgICAgdGhpcy5tb3VzZW92ZXJSZWY/LmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2VsbERvbSA9IChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsb3Nlc3QoJy5ncmlkLWNlbGwnKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgY29uc3QgdHlwZSA9IGNlbGxEb20gJiYgKGNlbGxEb20uZ2V0QXR0cmlidXRlKCd0eXBlJykhIGFzIEFJVGFibGVGaWVsZFR5cGUpO1xuICAgICAgICBpZiAodHlwZSAmJiBNT1VTRU9WRVJfRURJVF9UWVBFLmluY2x1ZGVzKHR5cGUpKSB7XG4gICAgICAgICAgICB0aGlzLm1vdXNlb3ZlclJlZiA9IHRoaXMuYWlUYWJsZUdyaWRFdmVudFNlcnZpY2Uub3BlbkVkaXQoY2VsbERvbSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNsb3NlSG92ZXJDZWxsRWRpdG9yKGU6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMubW91c2VvdmVyUmVmKSB7XG4gICAgICAgICAgICBjb25zdCBoYXNHcmlkID0gZS50YXJnZXQgJiYgKGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5jbG9zZXN0KCcuYWktdGFibGUtZ3JpZCcpO1xuICAgICAgICAgICAgY29uc3QgaGFzQ2VsbEVkaXRvciA9IGUudGFyZ2V0ICYmIChlLnRhcmdldCBhcyBIVE1MRWxlbWVudCkuY2xvc2VzdCgnLmdyaWQtY2VsbC1lZGl0b3InKTtcbiAgICAgICAgICAgIGlmICghaGFzR3JpZCAmJiAhaGFzQ2VsbEVkaXRvcikge1xuICAgICAgICAgICAgICAgIHRoaXMubW91c2VvdmVyUmVmLmNsb3NlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZ3JpZC1oZWFkZXIgZC1mbGV4XCI+XG4gICAgPGRpdiBjbGFzcz1cImdyaWQtY29sdW1uLWNoZWNrYm94IGdyaWQtY2VsbCBncmlkLWNoZWNrYm94XCI+XG4gICAgICAgIDxsYWJlbCB0aHlDaGVja2JveCB0aHlMYWJlbFRleHQ9XCJcIiBbbmdNb2RlbF09XCJpc1NlbGVjdGVkQWxsKClcIiAobmdNb2RlbENoYW5nZSk9XCJ0b2dnbGVTZWxlY3RBbGwoJGV2ZW50KVwiPjwvbGFiZWw+XG4gICAgPC9kaXY+XG4gICAgQGZvciAoZmllbGQgb2YgZ3JpZERhdGEoKS5maWVsZHM7IHRyYWNrIGZpZWxkLl9pZCkge1xuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImdyaWQtY2VsbCBncmlkLWZpZWxkXCJcbiAgICAgICAgICAgICNmaWVsZEFjdGlvblxuICAgICAgICAgICAgW2F0dHIuZmllbGRJZF09XCJmaWVsZC5faWRcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyBoaWdobGlnaHQ6IGFpVGFibGUuc2VsZWN0aW9uKCkuc2VsZWN0ZWRGaWVsZHMuaGFzKGZpZWxkLl9pZCkgfVwiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJ7IHdpZHRoOiBmaWVsZC53aWR0aCArICdweCcgfVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC10cnVuY2F0ZVwiPlxuICAgICAgICAgICAgICAgIDx0aHktaWNvbiBbdGh5SWNvbk5hbWVdPVwiZmllbGQuaWNvbiFcIiBjbGFzcz1cIm1yLTIgdGV4dC1tdXRlZFwiPjwvdGh5LWljb24+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgZmllbGQubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJncmlkLWZpZWxkLWFjdGlvblwiXG4gICAgICAgICAgICAgICAgdGh5QWN0aW9uXG4gICAgICAgICAgICAgICAgdGh5QWN0aXZlQ2xhc3M9XCJhY3RpdmVcIlxuICAgICAgICAgICAgICAgIHRoeUljb249XCJtb3JlLXZlcnRpY2FsXCJcbiAgICAgICAgICAgICAgICBbdGh5RHJvcGRvd25dPVwiZmllbGRNZW51XCJcbiAgICAgICAgICAgICAgICBocmVmPVwiamF2YXNjcmlwdDo7XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8dGh5LWRyb3Bkb3duLW1lbnUgI2ZpZWxkTWVudT5cbiAgICAgICAgICAgICAgICAgICAgPGZpZWxkLW1lbnUgW29yaWdpbl09XCJmaWVsZEFjdGlvblwiIFtmaWVsZElkXT1cImZpZWxkLl9pZFwiIFthaVRhYmxlXT1cImFpVGFibGVcIiBbZmllbGRNZW51c109XCJmaWVsZE1lbnVzXCI+PC9maWVsZC1tZW51PlxuICAgICAgICAgICAgICAgIDwvdGh5LWRyb3Bkb3duLW1lbnU+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIDwvZGl2PlxuICAgIH1cbiAgICA8ZGl2IGNsYXNzPVwiZ3JpZC1jb2x1bW4tYmxhbmsgY3Vyc29yLXBvaW50ZXJcIiAjZ3JpZENvbHVtbkJsYW5rIChjbGljayk9XCJhZGRGaWVsZChncmlkQ29sdW1uQmxhbmspXCI+XG4gICAgICAgIDx0aHktaWNvbiB0aHlJY29uTmFtZT1cInBsdXNcIj48L3RoeS1pY29uPlxuICAgIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiZ3JpZC1ib2R5IGQtZmxleFwiPlxuICAgIEBmb3IgKHJlY29yZCBvZiBncmlkRGF0YSgpLnJlY29yZHM7IHRyYWNrIHJlY29yZC5faWQ7IGxldCBpbmRleCA9ICRpbmRleCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZC1yb3cgZC1mbGV4XCIgW25nQ2xhc3NdPVwieyBoaWdobGlnaHQ6IChyZWNvcmQuX2lkIHwgaXNTZWxlY3RSZWNvcmQ6IGFpVGFibGUuc2VsZWN0aW9uKCkpIH1cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkLXJvdy1pbmRleCBncmlkLWNoZWNrYm94XCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIihyZWNvcmQuX2lkIHwgaXNTZWxlY3RSZWNvcmQ6IGFpVGFibGUuc2VsZWN0aW9uKCkpID8gJ2NoZWNrZWQtYm94JyA6ICd1bmNoZWNrZWQtYm94J1wiXG4gICAgICAgICAgICAgICAgICAgIHRoeUNoZWNrYm94XG4gICAgICAgICAgICAgICAgICAgIHRoeUxhYmVsVGV4dD1cIlwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cInJlY29yZC5faWQgfCBpc1NlbGVjdFJlY29yZDogYWlUYWJsZS5zZWxlY3Rpb24oKVwiXG4gICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNlbGVjdFJlY29yZChyZWNvcmQuX2lkKVwiXG4gICAgICAgICAgICAgICAgPjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPHNwYW4gW25nQ2xhc3NdPVwiKHJlY29yZC5faWQgfCBpc1NlbGVjdFJlY29yZDogYWlUYWJsZS5zZWxlY3Rpb24oKSkgPyAnZ3JpZC1yb3ctbm8tbnVtYmVyJyA6ICdncmlkLXJvdy1udW1iZXInXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGluZGV4ICsgMSB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgQGZvciAoZmllbGQgb2YgZ3JpZERhdGEoKS5maWVsZHM7IHRyYWNrIGZpZWxkLl9pZCkge1xuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgI2NlbGxcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJncmlkLWNlbGxcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICBoaWdobGlnaHQ6IGFpVGFibGUuc2VsZWN0aW9uKCkuc2VsZWN0ZWRDZWxscy5oYXMocmVjb3JkLl9pZCkgfHwgYWlUYWJsZS5zZWxlY3Rpb24oKS5zZWxlY3RlZEZpZWxkcy5oYXMoZmllbGQuX2lkKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkOiBhaVRhYmxlLnNlbGVjdGlvbigpLnNlbGVjdGVkQ2VsbHMuZ2V0KHJlY29yZC5faWQpPy5oYXNPd25Qcm9wZXJ0eShmaWVsZC5faWQpXG4gICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci50eXBlXT1cIltmaWVsZC50eXBlXVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmZpZWxkSWRdPVwiW2ZpZWxkLl9pZF1cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5yZWFkb25seV09XCJbZmllbGQ/LnJlYWRvbmx5XVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLnJlY29yZElkXT1cIltyZWNvcmQuX2lkXVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgd2lkdGg6IGZpZWxkLndpZHRoICsgJ3B4JyB9XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIEBzd2l0Y2ggKGZpZWxkLnR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlIChBSVRhYmxlRmllbGRUeXBlLnNlbGVjdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoIWZpZWxkLmlzTXVsdGlwbGUgJiYgcmVjb3JkLnZhbHVlc1tmaWVsZC5faWRdIHwgc2VsZWN0T3B0aW9uOiBmaWVsZFsnb3B0aW9ucyddOyBhcyBzZWxlY3RlZE9wdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGh5LXRhZyBbdGh5Q29sb3JdPVwic2VsZWN0ZWRPcHRpb24hLmNvbG9yIVwiPnt7IHNlbGVjdGVkT3B0aW9uLnRleHQgfX08L3RoeS10YWc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKEFJVGFibGVGaWVsZFR5cGUuZGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHJlY29yZC52YWx1ZXNbZmllbGQuX2lkXSB8IHRoeURhdGVQaWNrZXJGb3JtYXQgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlIChBSVRhYmxlRmllbGRUeXBlLnVwZGF0ZWRBdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWJsb2NrIHVzZXItc2VsZWN0LW5vbmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXRydW5jYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyByZWNvcmQudmFsdWVzW2ZpZWxkLl9pZF0gfCB0aHlEYXRlUGlja2VyRm9ybWF0OiAneXl5eS1NTS1kZCBISDptbScgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKEFJVGFibGVGaWVsZFR5cGUuY3JlYXRlZEF0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtYmxvY2sgdXNlci1zZWxlY3Qtbm9uZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtdHJ1bmNhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHJlY29yZC52YWx1ZXNbZmllbGQuX2lkXSB8IHRoeURhdGVQaWNrZXJGb3JtYXQ6ICd5eXl5LU1NLWRkIEhIOm1tJyB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBAY2FzZSAoQUlUYWJsZUZpZWxkVHlwZS5yYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoeS1yYXRlIFtuZ01vZGVsXT1cInJlY29yZC52YWx1ZXNbZmllbGQuX2lkXVwiPjwvdGh5LXJhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBAY2FzZSAoQUlUYWJsZUZpZWxkVHlwZS5saW5rKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWJsb2NrXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwicmVjb3JkLnZhbHVlc1tmaWVsZC5faWRdPy51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHlTdG9wUHJvcGFnYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGh5RmxleGlibGVUZXh0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0aHlUb29sdGlwQ29udGVudF09XCJyZWNvcmQudmFsdWVzW2ZpZWxkLl9pZF0/LnRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgcmVjb3JkLnZhbHVlc1tmaWVsZC5faWRdPy50ZXh0IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKEFJVGFibGVGaWVsZFR5cGUucHJvZ3Jlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGh5LXByb2dyZXNzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy0xMDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGh5VmFsdWVdPVwicmVjb3JkLnZhbHVlc1tmaWVsZC5faWRdXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RoeVNpemVdPVwicmVjb3JkLnZhbHVlc1tmaWVsZC5faWRdPy5jb25maWc/LnNpemUgfHwgJ21kJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0aHlNYXhdPVwicmVjb3JkLnZhbHVlc1tmaWVsZC5faWRdPy5jb25maWc/Lm1heCB8fCAxMDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGh5VHlwZV09XCJyZWNvcmQudmFsdWVzW2ZpZWxkLl9pZF0/LmNvbmZpZz8ucHJvZ3Jlc3NUeXBlIHx8ICdzdWNjZXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4ge3sgcmVjb3JkLnZhbHVlc1tmaWVsZC5faWRdIH19e3sgcmVjb3JkLnZhbHVlc1tmaWVsZC5faWRdPy5jb25maWc/LnN1ZmZpeCB8fCAnJScgfX0gPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGh5LXByb2dyZXNzPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKEFJVGFibGVGaWVsZFR5cGUubWVtYmVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmICghZmllbGQuaXNNdWx0aXBsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGh5LWF2YXRhclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RoeU5hbWVdPVwicmVjb3JkLnZhbHVlc1tmaWVsZC5faWRdLmRpc3BsYXlfbmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGh5U3JjXT1cInJlY29yZC52YWx1ZXNbZmllbGQuX2lkXS5hdmF0YXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGh5U2l6ZT1cInhzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoeVNob3dOYW1lPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3RoeS1hdmF0YXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aHktYXZhdGFyLWxpc3QgdGh5QXZhdGFyU2l6ZT1cInhzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIHJlY29yZC52YWx1ZXNbZmllbGQuX2lkXTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoeS1hdmF0YXIgW3RoeU5hbWVdPVwiaXRlbS5kaXNwbGF5X25hbWVcIiBbdGh5U3JjXT1cIml0ZW0uYXZhdGFyXCI+PC90aHktYXZhdGFyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoeS1hdmF0YXItbGlzdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBAY2FzZSAoQUlUYWJsZUZpZWxkVHlwZS5jcmVhdGVkQnkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGh5LWF2YXRhclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGh5TmFtZV09XCJyZWNvcmQudmFsdWVzW2ZpZWxkLl9pZF0uZGlzcGxheV9uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RoeVNyY109XCJyZWNvcmQudmFsdWVzW2ZpZWxkLl9pZF0uYXZhdGFyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGh5U2l6ZT1cInhzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGh5U2hvd05hbWU9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC90aHktYXZhdGFyPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKEFJVGFibGVGaWVsZFR5cGUudXBkYXRlZEJ5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoeS1hdmF0YXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RoeU5hbWVdPVwicmVjb3JkLnZhbHVlc1tmaWVsZC5faWRdLmRpc3BsYXlfbmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0aHlTcmNdPVwicmVjb3JkLnZhbHVlc1tmaWVsZC5faWRdLmF2YXRhclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoeVNpemU9XCJ4c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoeVNob3dOYW1lPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvdGh5LWF2YXRhcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIEBkZWZhdWx0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtdHJ1bmNhdGVcIj4ge3sgcmVjb3JkLnZhbHVlc1tmaWVsZC5faWRdIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdXRvZmlsbC1jb250YWluZXJcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkLWNvbHVtbi1ibGFua1wiPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG4gICAgPGRpdiBjbGFzcz1cImdyaWQtcm93LWluc2VydCBncmlkLXJvdyBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJhZGRSZWNvcmQoKVwiPlxuICAgICAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJwbHVzXCI+PC90aHktaWNvbj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2ICNhY3RpdmVCb3JkZXIgY2xhc3M9XCJhY3RpdmUtYm9yZGVyXCI+PC9kaXY+Il19
|
@@ -0,0 +1,31 @@
|
|
1
|
+
import { Pipe } from '@angular/core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
export class SelectOptionPipe {
|
4
|
+
transform(_id, options) {
|
5
|
+
return options.find((item) => item._id === _id);
|
6
|
+
}
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: SelectOptionPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
8
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.2", ngImport: i0, type: SelectOptionPipe, isStandalone: true, name: "selectOption" }); }
|
9
|
+
}
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: SelectOptionPipe, decorators: [{
|
11
|
+
type: Pipe,
|
12
|
+
args: [{
|
13
|
+
name: 'selectOption',
|
14
|
+
standalone: true
|
15
|
+
}]
|
16
|
+
}] });
|
17
|
+
export class IsSelectRecordPipe {
|
18
|
+
transform(recordId, selection) {
|
19
|
+
return selection.selectedRecords.has(recordId);
|
20
|
+
}
|
21
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: IsSelectRecordPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
22
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.2", ngImport: i0, type: IsSelectRecordPipe, isStandalone: true, name: "isSelectRecord" }); }
|
23
|
+
}
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: IsSelectRecordPipe, decorators: [{
|
25
|
+
type: Pipe,
|
26
|
+
args: [{
|
27
|
+
name: 'isSelectRecord',
|
28
|
+
standalone: true
|
29
|
+
}]
|
30
|
+
}] });
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvZ3JpZC9zcmMvcGlwZXMvZ3JpZC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQVFwRCxNQUFNLE9BQU8sZ0JBQWdCO0lBQ3pCLFNBQVMsQ0FBQyxHQUFXLEVBQUUsT0FBOEI7UUFDakQsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQ3BELENBQUM7OEdBSFEsZ0JBQWdCOzRHQUFoQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBSjVCLElBQUk7bUJBQUM7b0JBQ0YsSUFBSSxFQUFFLGNBQWM7b0JBQ3BCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs7QUFXRCxNQUFNLE9BQU8sa0JBQWtCO0lBQzNCLFNBQVMsQ0FBQyxRQUFnQixFQUFFLFNBQTJCO1FBQ25ELE9BQU8sU0FBUyxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbkQsQ0FBQzs4R0FIUSxrQkFBa0I7NEdBQWxCLGtCQUFrQjs7MkZBQWxCLGtCQUFrQjtrQkFKOUIsSUFBSTttQkFBQztvQkFDRixJQUFJLEVBQUUsZ0JBQWdCO29CQUN0QixVQUFVLEVBQUUsSUFBSTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBSVRhYmxlU2VsZWN0T3B0aW9uIH0gZnJvbSAnLi4vY29yZSc7XG5pbXBvcnQgeyBBSVRhYmxlU2VsZWN0aW9uIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5AUGlwZSh7XG4gICAgbmFtZTogJ3NlbGVjdE9wdGlvbicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RPcHRpb25QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKF9pZDogc3RyaW5nLCBvcHRpb25zOiBBSVRhYmxlU2VsZWN0T3B0aW9uW10pIHtcbiAgICAgICAgcmV0dXJuIG9wdGlvbnMuZmluZCgoaXRlbSkgPT4gaXRlbS5faWQgPT09IF9pZCk7XG4gICAgfVxufVxuXG5AUGlwZSh7XG4gICAgbmFtZTogJ2lzU2VsZWN0UmVjb3JkJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIElzU2VsZWN0UmVjb3JkUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHRyYW5zZm9ybShyZWNvcmRJZDogc3RyaW5nLCBzZWxlY3Rpb246IEFJVGFibGVTZWxlY3Rpb24pIHtcbiAgICAgICAgcmV0dXJuIHNlbGVjdGlvbi5zZWxlY3RlZFJlY29yZHMuaGFzKHJlY29yZElkKTtcbiAgICB9XG59XG4iXX0=
|
package/esm2022/pipes/index.mjs
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
export * from './grid';
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
1
|
+
export * from './grid.pipe';
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9waXBlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZ3JpZC5waXBlJztcbiJdfQ==
|