@sumaris-net/ngx-components 1.23.43 → 1.23.45
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/sumaris-net.ngx-components.umd.js +26 -84
- package/bundles/sumaris-net.ngx-components.umd.js.map +1 -1
- package/bundles/sumaris-net.ngx-components.umd.min.js +1 -1
- package/bundles/sumaris-net.ngx-components.umd.min.js.map +1 -1
- package/doc/changelog.md +3 -0
- package/esm2015/src/app/core/icon/icon.component.js +2 -2
- package/esm2015/src/app/core/services/model/referential.model.js +8 -3
- package/esm2015/src/app/shared/graph/graph-colors.js +15 -70
- package/fesm2015/sumaris-net.ngx-components.js +24 -73
- package/fesm2015/sumaris-net.ngx-components.js.map +1 -1
- package/package.json +1 -1
- package/src/app/core/services/model/referential.model.d.ts +3 -0
- package/src/app/shared/graph/graph-colors.d.ts +7 -9
- package/sumaris-net.ngx-components.metadata.json +1 -1
package/doc/changelog.md
CHANGED
|
@@ -10,7 +10,7 @@ export class AppIconComponent {
|
|
|
10
10
|
this.icon = value.icon;
|
|
11
11
|
this.matIcon = value.matIcon;
|
|
12
12
|
this.matSvgIcon = value.matSvgIcon;
|
|
13
|
-
this.color = value.color;
|
|
13
|
+
this.color = value.color || this.color; // Keep existing, if not defined in the reference
|
|
14
14
|
}
|
|
15
15
|
;
|
|
16
16
|
}
|
|
@@ -29,4 +29,4 @@ AppIconComponent.propDecorators = {
|
|
|
29
29
|
width: [{ type: Input }],
|
|
30
30
|
ref: [{ type: Input }]
|
|
31
31
|
};
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvaWNvbi9pY29uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU9qRCxNQUFNLE9BQU8sZ0JBQWdCO0lBSjdCO1FBTVcsU0FBSSxHQUFXLElBQUksQ0FBQztRQUNwQixZQUFPLEdBQVcsSUFBSSxDQUFDO1FBQ3ZCLGVBQVUsR0FBVyxJQUFJLENBQUM7UUFDMUIsVUFBSyxHQUFjLElBQUksQ0FBQztJQVVuQyxDQUFDO0lBTkMsSUFBYSxHQUFHLENBQUMsS0FBYztRQUM3QixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQztRQUNuQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLGlEQUFpRDtJQUMzRixDQUFDO0lBQUEsQ0FBQzs7O1lBbEJILFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsVUFBVTtnQkFDcEIsMGhCQUFvQzthQUNyQzs7O21CQUdFLEtBQUs7c0JBQ0wsS0FBSzt5QkFDTCxLQUFLO29CQUNMLEtBQUs7cUJBQ0wsS0FBSztvQkFDTCxLQUFLO2tCQUVMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBcHBDb2xvcnMsIEljb25SZWYgfSBmcm9tICcuLi8uLi9zaGFyZWQvdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtaWNvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9pY29uLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBcHBJY29uQ29tcG9uZW50IHtcblxuICBASW5wdXQoKSBpY29uOiBzdHJpbmcgPSBudWxsO1xuICBASW5wdXQoKSBtYXRJY29uOiBzdHJpbmcgPSBudWxsO1xuICBASW5wdXQoKSBtYXRTdmdJY29uOiBzdHJpbmcgPSBudWxsO1xuICBASW5wdXQoKSBjb2xvcjogQXBwQ29sb3JzID0gbnVsbDtcbiAgQElucHV0KCkgaGVpZ2h0OiBudW1iZXI7XG4gIEBJbnB1dCgpIHdpZHRoOiBudW1iZXI7XG5cbiAgQElucHV0KCkgc2V0IHJlZih2YWx1ZTogSWNvblJlZikge1xuICAgIHRoaXMuaWNvbiA9IHZhbHVlLmljb247XG4gICAgdGhpcy5tYXRJY29uID0gdmFsdWUubWF0SWNvbjtcbiAgICB0aGlzLm1hdFN2Z0ljb24gPSB2YWx1ZS5tYXRTdmdJY29uO1xuICAgIHRoaXMuY29sb3IgPSB2YWx1ZS5jb2xvciB8fCB0aGlzLmNvbG9yOyAvLyBLZWVwIGV4aXN0aW5nLCBpZiBub3QgZGVmaW5lZCBpbiB0aGUgcmVmZXJlbmNlXG4gIH07XG59XG4iXX0=
|
|
@@ -100,7 +100,8 @@ export const MINIFY_ENTITY_FOR_LOCAL_STORAGE = Object.freeze({
|
|
|
100
100
|
minify: true,
|
|
101
101
|
keepTypename: true,
|
|
102
102
|
keepEntityName: true,
|
|
103
|
-
keepLocalId: true
|
|
103
|
+
keepLocalId: true,
|
|
104
|
+
keepIcon: true
|
|
104
105
|
});
|
|
105
106
|
/**
|
|
106
107
|
* Used to send an entity to a pod
|
|
@@ -109,7 +110,8 @@ export const MINIFY_ENTITY_FOR_POD = Object.freeze({
|
|
|
109
110
|
minify: true,
|
|
110
111
|
keepTypename: false,
|
|
111
112
|
keepEntityName: false,
|
|
112
|
-
keepLocalId: false
|
|
113
|
+
keepLocalId: false,
|
|
114
|
+
keepIcon: false
|
|
113
115
|
});
|
|
114
116
|
// @dynamic
|
|
115
117
|
let ReferentialRef = ReferentialRef_1 = class ReferentialRef extends Entity {
|
|
@@ -127,6 +129,8 @@ let ReferentialRef = ReferentialRef_1 = class ReferentialRef extends Entity {
|
|
|
127
129
|
const target = super.asObject(opts);
|
|
128
130
|
if (opts && opts.keepEntityName === false)
|
|
129
131
|
delete target.entityName;
|
|
132
|
+
if (opts && opts.keepIcon === false)
|
|
133
|
+
delete target.icon;
|
|
130
134
|
return target;
|
|
131
135
|
}
|
|
132
136
|
fromObject(source, opts) {
|
|
@@ -137,6 +141,7 @@ let ReferentialRef = ReferentialRef_1 = class ReferentialRef extends Entity {
|
|
|
137
141
|
this.description = source.description;
|
|
138
142
|
this.statusId = source.statusId;
|
|
139
143
|
this.levelId = source.levelId;
|
|
144
|
+
this.icon = source.icon;
|
|
140
145
|
}
|
|
141
146
|
};
|
|
142
147
|
ReferentialRef = ReferentialRef_1 = __decorate([
|
|
@@ -144,4 +149,4 @@ ReferentialRef = ReferentialRef_1 = __decorate([
|
|
|
144
149
|
], ReferentialRef);
|
|
145
150
|
export { ReferentialRef };
|
|
146
151
|
export { ɵ0, ɵ1, ɵ2 };
|
|
147
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmZXJlbnRpYWwubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvbW9kZWwvcmVmZXJlbnRpYWwubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFZLE1BQU0sMkJBQTJCLENBQUM7QUFDcEYsT0FBTyxFQUFDLE1BQU0sRUFBeUIsV0FBVyxFQUFVLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkYsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUN2QyxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsZUFBZSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDekUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRWhELE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxHQUFzQixFQUFFLFVBQXFCO0lBQy9FLE9BQU8sR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksa0JBQWtCLENBQUMsR0FBRyxFQUFFLFVBQVUsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQztBQUNoRyxDQUFDO0FBQ0QsTUFBTSxVQUFVLG9CQUFvQixDQUFDLE1BQXFCLEVBQUUsVUFBcUIsRUFBRSxTQUFrQjtJQUNuRyxPQUFPLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLENBQUM7QUFDN0YsQ0FBQztXQVVPLFNBQVMsQ0FBQyxNQUFNLE9BS2hCLFNBQVMsQ0FBQyxPQUFPLE9BS2pCLFNBQVMsQ0FBQyxTQUFTO0FBWjNCLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBd0IsTUFB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RixDQUFBO0FBN0NZLGNBQWM7SUFEMUIsV0FBVyxDQUFDLEVBQUMsUUFBUSxFQUFFLGVBQWUsRUFBQyxDQUFDO0dBQzVCLGNBQWMsQ0E2QzFCO1NBN0NZLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge01vbWVudH0gZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IGpvaW5Qcm9wZXJ0aWVzUGF0aCwgc3BsaXRCeUlkLCB0b051bWJlciB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9mdW5jdGlvbnMnO1xuaW1wb3J0IHtFbnRpdHksIEVudGl0eUFzT2JqZWN0T3B0aW9ucywgRW50aXR5VXRpbHMsIElFbnRpdHl9IGZyb20gJy4vZW50aXR5Lm1vZGVsJztcbmltcG9ydCB7U3RhdHVzSWRzfSBmcm9tICcuL21vZGVsLmVudW0nO1xuaW1wb3J0IHtmcm9tRGF0ZUlTT1N0cmluZywgdG9EYXRlSVNPU3RyaW5nfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZGF0ZXMnO1xuaW1wb3J0IHtFbnRpdHlDbGFzc30gZnJvbSAnLi9lbnRpdHkuZGVjb3JhdG9ycyc7XG5cbmV4cG9ydCBmdW5jdGlvbiByZWZlcmVudGlhbFRvU3RyaW5nKG9iajogUmVmZXJlbnRpYWwgfCBhbnksIHByb3BlcnRpZXM/OiBzdHJpbmdbXSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBvYmogJiYgb2JqLmlkICYmIGpvaW5Qcm9wZXJ0aWVzUGF0aChvYmosIHByb3BlcnRpZXMgfHwgWydsYWJlbCcsICduYW1lJ10pIHx8IHVuZGVmaW5lZDtcbn1cbmV4cG9ydCBmdW5jdGlvbiByZWZlcmVudGlhbHNUb1N0cmluZyh2YWx1ZXM6IFJlZmVyZW50aWFsW10sIHByb3BlcnRpZXM/OiBzdHJpbmdbXSwgc2VwYXJhdG9yPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuICh2YWx1ZXMgfHwgW10pLm1hcCh2ID0+IHJlZmVyZW50aWFsVG9TdHJpbmcodiwgcHJvcGVydGllcykpLmpvaW4oc2VwYXJhdG9yIHx8ICcsICcpO1xufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSVN0YXR1cyB7XG4gIGlkOiBudW1iZXI7XG4gIGljb24/OiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBTdGF0dXNMaXN0OiBSZWFkb25seTxJU3RhdHVzW10+ID0gT2JqZWN0LmZyZWV6ZShbXG4gIHtcbiAgICBpZDogU3RhdHVzSWRzLkVOQUJMRSxcbiAgICBpY29uOiAnY2hlY2ttYXJrJyxcbiAgICBsYWJlbDogJ1JFRkVSRU5USUFMLlNUQVRVU19FTlVNLkVOQUJMRSdcbiAgfSxcbiAge1xuICAgIGlkOiBTdGF0dXNJZHMuRElTQUJMRSxcbiAgICBpY29uOiAnY2xvc2UnLFxuICAgIGxhYmVsOiAnUkVGRVJFTlRJQUwuU1RBVFVTX0VOVU0uRElTQUJMRSdcbiAgfSxcbiAge1xuICAgIGlkOiBTdGF0dXNJZHMuVEVNUE9SQVJZLFxuICAgIGljb246ICdoZWxwJyxcbiAgICBsYWJlbDogJ1JFRkVSRU5USUFMLlNUQVRVU19FTlVNLlRFTVBPUkFSWSdcbiAgfVxuXSk7XG5cbmV4cG9ydCBjb25zdCBTdGF0dXNCeUlkID0gT2JqZWN0LmZyZWV6ZShzcGxpdEJ5SWQoU3RhdHVzTGlzdCkpO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSVJlZmVyZW50aWFsUmVmPFxuICBUIGV4dGVuZHMgSUVudGl0eTxULCBJRD4gPSBJRW50aXR5PGFueSwgYW55PixcbiAgSUQgPSBudW1iZXJcbiAgPlxuICBleHRlbmRzIElFbnRpdHk8VCwgSUQ+IHtcbiAgbGFiZWw6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgbGV2ZWxJZD86IG51bWJlcjtcbiAgc3RhdHVzSWQ6IG51bWJlcjtcbiAgZW50aXR5TmFtZTogc3RyaW5nO1xufVxuXG4vL0BkeW5hbWljXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZVJlZmVyZW50aWFsPFxuICBUIGV4dGVuZHMgQmFzZVJlZmVyZW50aWFsPFQsIElELCBBTz4sXG4gIElEID0gbnVtYmVyLFxuICBBTyBleHRlbmRzIFJlZmVyZW50aWFsQXNPYmplY3RPcHRpb25zID0gUmVmZXJlbnRpYWxBc09iamVjdE9wdGlvbnMsXG4gIEZPID0gYW55XG4gID5cbiAgZXh0ZW5kcyBFbnRpdHk8VCwgSUQsIEFPLCBGTz5cbiAgaW1wbGVtZW50cyBJUmVmZXJlbnRpYWxSZWY8VCwgSUQ+IHtcblxuICBsYWJlbDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGNvbW1lbnRzOiBzdHJpbmc7XG4gIGNyZWF0aW9uRGF0ZTogRGF0ZSB8IE1vbWVudDtcbiAgc3RhdHVzSWQ6IG51bWJlcjtcbiAgdmFsaWRpdHlTdGF0dXNJZDogbnVtYmVyO1xuICBsZXZlbElkOiBudW1iZXI7XG4gIHBhcmVudElkOiBudW1iZXI7XG4gIGVudGl0eU5hbWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihfX3R5cGVuYW1lPzogc3RyaW5nKSB7XG4gICAgc3VwZXIoX190eXBlbmFtZSk7XG4gIH1cblxuICBhc09iamVjdChvcHRzPzogQU8pOiBhbnkge1xuICAgIGlmIChvcHRzICYmIG9wdHMubWluaWZ5KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpZDogdGhpcy5pZCxcbiAgICAgICAgZW50aXR5TmFtZTogb3B0cy5rZWVwRW50aXR5TmFtZSAmJiB0aGlzLmVudGl0eU5hbWUgfHwgdW5kZWZpbmVkLCAvLyBEb24ndCBrZWVwIGJ5IGRlZmF1bHRcbiAgICAgICAgX190eXBlbmFtZTogb3B0cy5rZWVwVHlwZW5hbWUgJiYgdGhpcy5fX3R5cGVuYW1lIHx8IHVuZGVmaW5lZFxuICAgICAgfTtcbiAgICB9XG4gICAgY29uc3QgdGFyZ2V0OiBhbnkgPSBzdXBlci5hc09iamVjdChvcHRzKTtcbiAgICB0YXJnZXQuY3JlYXRpb25EYXRlID0gdG9EYXRlSVNPU3RyaW5nKHRoaXMuY3JlYXRpb25EYXRlKTtcbiAgICBpZiAob3B0cyAmJiBvcHRzLmtlZXBUeXBlbmFtZSA9PT0gZmFsc2UpIGRlbGV0ZSB0YXJnZXQuZW50aXR5TmFtZTtcbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9XG5cbiAgZnJvbU9iamVjdChzb3VyY2U6IGFueSwgb3B0cz86IEZPKSB7XG4gICAgc3VwZXIuZnJvbU9iamVjdChzb3VyY2UsIG9wdHMpO1xuICAgIHRoaXMubGFiZWwgPSBzb3VyY2UubGFiZWw7XG4gICAgdGhpcy5uYW1lID0gc291cmNlLm5hbWU7XG4gICAgdGhpcy5kZXNjcmlwdGlvbiA9IHNvdXJjZS5kZXNjcmlwdGlvbjtcbiAgICB0aGlzLmNvbW1lbnRzID0gc291cmNlLmNvbW1lbnRzO1xuICAgIHRoaXMuc3RhdHVzSWQgPSBzb3VyY2Uuc3RhdHVzSWQ7XG4gICAgdGhpcy52YWxpZGl0eVN0YXR1c0lkICA9IHNvdXJjZS52YWxpZGl0eVN0YXR1c0lkO1xuICAgIHRoaXMubGV2ZWxJZCA9IHNvdXJjZS5sZXZlbElkICYmIHNvdXJjZS5sZXZlbElkICE9PSAwID8gc291cmNlLmxldmVsSWQgOiB1bmRlZmluZWQ7IC8vIERvIG5vdCBzZXQgYXMgbnVsbCAobmVlZCBmb3IgYWNjb3VudC5kZXBhcnRtZW50LCB3aGVuIHJlZ2lzdGVyKVxuICAgIHRoaXMucGFyZW50SWQgPSBzb3VyY2UucGFyZW50SWQ7XG4gICAgdGhpcy5jcmVhdGlvbkRhdGUgPSBmcm9tRGF0ZUlTT1N0cmluZyhzb3VyY2UuY3JlYXRpb25EYXRlKTtcbiAgICB0aGlzLmVudGl0eU5hbWUgPSBzb3VyY2UuZW50aXR5TmFtZTtcbiAgfVxuXG4gIGVxdWFscyhvdGhlcjogVCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzdXBlci5lcXVhbHMob3RoZXIpICYmIHRoaXMuZW50aXR5TmFtZSA9PT0gb3RoZXIuZW50aXR5TmFtZTtcbiAgfVxufVxuXG4vLyBAZHluYW1pY1xuQEVudGl0eUNsYXNzKHt0eXBlbmFtZTogJ1JlZmVyZW50aWFsVk8nfSlcbmV4cG9ydCBjbGFzcyBSZWZlcmVudGlhbDxcbiAgVCBleHRlbmRzIFJlZmVyZW50aWFsPFQsIGFueT4gPSBSZWZlcmVudGlhbDxhbnk+LFxuICBJRCA9IG51bWJlclxuICA+XG4gIGV4dGVuZHMgQmFzZVJlZmVyZW50aWFsPFQsIElEPiB7XG5cbiAgc3RhdGljIGZyb21PYmplY3Q6IChzb3VyY2U6IGFueSwgb3B0cz86IGFueSkgPT4gUmVmZXJlbnRpYWw7XG59XG5cbmV4cG9ydCBjbGFzcyBSZWZlcmVudGlhbFV0aWxzIHtcbiAgLy8gRklYTUU6IHJlbW92ZSB0aGlzXG4gIHN0YXRpYyBmcm9tT2JqZWN0KHNvdXJjZTogYW55KTogUmVmZXJlbnRpYWwge1xuICAgIGlmICghc291cmNlIHx8IHNvdXJjZSBpbnN0YW5jZW9mIFJlZmVyZW50aWFsKSByZXR1cm4gc291cmNlO1xuICAgIGNvbnN0IHJlcyA9IG5ldyBSZWZlcmVudGlhbCgpO1xuICAgIHJlcy5mcm9tT2JqZWN0KHNvdXJjZSk7XG4gICAgcmV0dXJuIHJlcyBhcyBSZWZlcmVudGlhbDtcbiAgfVxuXG4gIHN0YXRpYyBpc05vdEVtcHR5PFQgZXh0ZW5kcyBJUmVmZXJlbnRpYWxSZWY8VD4+KG9iajogVHxhbnkpOiBib29sZWFuIHtcbiAgICAvLyBBIHJlZmVyZW50aWFsIGVudGl0eSBzaG91bGQgYWx3YXlzIGhhdmUgYSAnaWQnIGZpbGxlZCAoY2FuIGJlIG5lZ2F0aXZlIGlzIGxvY2FsIGFuZCB0ZW1wb3JhcnkpXG4gICAgcmV0dXJuIEVudGl0eVV0aWxzLmlzTm90RW1wdHkob2JqLCAnaWQnKTtcbiAgfVxuXG4gIHN0YXRpYyBpc0VtcHR5PFQgZXh0ZW5kcyBJUmVmZXJlbnRpYWxSZWY8VD4+KG9iajogVHxhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gRW50aXR5VXRpbHMuaXNFbXB0eShvYmosICdpZCcpO1xuICB9XG5cbiAgc3RhdGljIGVxdWFsczxUIGV4dGVuZHMgSVJlZmVyZW50aWFsUmVmPFQ+PihvMTogVHxhbnksIG8yOiBUfGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBFbnRpdHlVdGlscy5lcXVhbHMobzEsIG8yLCAnaWQnKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVmZXJlbnRpYWxBc09iamVjdE9wdGlvbnMgZXh0ZW5kcyBFbnRpdHlBc09iamVjdE9wdGlvbnMge1xuICBrZWVwRW50aXR5TmFtZT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogVXNlZCB0byBzdG9yZSBhbiBlbnRpdHkgbG9jYWxseVxuICovXG5leHBvcnQgY29uc3QgTUlOSUZZX0VOVElUWV9GT1JfTE9DQUxfU1RPUkFHRTogUmVmZXJlbnRpYWxBc09iamVjdE9wdGlvbnMgPSBPYmplY3QuZnJlZXplKHtcbiAgbWluaWZ5OiB0cnVlLFxuICBrZWVwVHlwZW5hbWU6IHRydWUsXG4gIGtlZXBFbnRpdHlOYW1lOiB0cnVlLFxuICBrZWVwTG9jYWxJZDogdHJ1ZVxufSk7XG5cbi8qKlxuICogVXNlZCB0byBzZW5kIGFuIGVudGl0eSB0byBhIHBvZFxuICovXG5leHBvcnQgY29uc3QgTUlOSUZZX0VOVElUWV9GT1JfUE9EOiBSZWZlcmVudGlhbEFzT2JqZWN0T3B0aW9ucyA9IE9iamVjdC5mcmVlemUoe1xuICBtaW5pZnk6IHRydWUsXG4gIGtlZXBUeXBlbmFtZTogZmFsc2UsXG4gIGtlZXBFbnRpdHlOYW1lOiBmYWxzZSxcbiAga2VlcExvY2FsSWQ6IGZhbHNlXG59KTtcblxuLy8gQGR5bmFtaWNcbkBFbnRpdHlDbGFzcyh7dHlwZW5hbWU6ICdSZWZlcmVudGlhbFZPJ30pXG5leHBvcnQgY2xhc3MgUmVmZXJlbnRpYWxSZWY8XG4gIFQgZXh0ZW5kcyBSZWZlcmVudGlhbFJlZjxhbnksIElEPiA9IFJlZmVyZW50aWFsUmVmPGFueSwgYW55PixcbiAgSUQgPSBudW1iZXIsXG4gIE8gZXh0ZW5kcyBSZWZlcmVudGlhbEFzT2JqZWN0T3B0aW9ucyA9IFJlZmVyZW50aWFsQXNPYmplY3RPcHRpb25zLFxuICBGTyA9IGFueVxuICA+XG4gIGV4dGVuZHMgRW50aXR5PFQsIElELCBPLCBGTz5cbiAgaW1wbGVtZW50cyBJUmVmZXJlbnRpYWxSZWY8VCwgSUQ+IHtcblxuICBzdGF0aWMgZnJvbU9iamVjdDogKHNvdXJjZTogYW55LCBvcHRzPzogYW55KSA9PiBSZWZlcmVudGlhbFJlZjtcblxuICBsYWJlbDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHN0YXR1c0lkOiBudW1iZXI7XG4gIGxldmVsSWQ6IG51bWJlcjtcbiAgZW50aXR5TmFtZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKFJlZmVyZW50aWFsUmVmLlRZUEVOQU1FKTtcbiAgfVxuXG4gIGFzT2JqZWN0KG9wdHM/OiBPKTogYW55IHtcbiAgICBpZiAob3B0cyAmJiBvcHRzLm1pbmlmeSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICAgIGVudGl0eU5hbWU6IG9wdHMua2VlcEVudGl0eU5hbWUgJiYgdGhpcy5lbnRpdHlOYW1lIHx8IHVuZGVmaW5lZCwgLy8gRG9uJ3Qga2VlcCBieSBkZWZhdWx0XG4gICAgICAgIF9fdHlwZW5hbWU6IG9wdHMua2VlcFR5cGVuYW1lICYmIHRoaXMuX190eXBlbmFtZSB8fCB1bmRlZmluZWRcbiAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IHRhcmdldDogYW55ID0gc3VwZXIuYXNPYmplY3Qob3B0cyk7XG4gICAgaWYgKG9wdHMgJiYgb3B0cy5rZWVwRW50aXR5TmFtZSA9PT0gZmFsc2UpIGRlbGV0ZSB0YXJnZXQuZW50aXR5TmFtZTtcblxuICAgIHJldHVybiB0YXJnZXQ7XG4gIH1cblxuICBmcm9tT2JqZWN0KHNvdXJjZTogYW55LCBvcHRzPzogRk8pIHtcbiAgICBzdXBlci5mcm9tT2JqZWN0KHNvdXJjZSk7XG4gICAgdGhpcy5lbnRpdHlOYW1lID0gc291cmNlLmVudGl0eU5hbWUgfHwgdGhpcy5lbnRpdHlOYW1lO1xuICAgIHRoaXMubGFiZWwgPSBzb3VyY2UubGFiZWw7XG4gICAgdGhpcy5uYW1lID0gc291cmNlLm5hbWU7XG4gICAgdGhpcy5kZXNjcmlwdGlvbiA9IHNvdXJjZS5kZXNjcmlwdGlvbjtcbiAgICB0aGlzLnN0YXR1c0lkID0gc291cmNlLnN0YXR1c0lkO1xuICAgIHRoaXMubGV2ZWxJZCA9IHNvdXJjZS5sZXZlbElkO1xuICB9XG59XG4iXX0=
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmZXJlbnRpYWwubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvbW9kZWwvcmVmZXJlbnRpYWwubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFZLE1BQU0sMkJBQTJCLENBQUM7QUFDcEYsT0FBTyxFQUFDLE1BQU0sRUFBeUIsV0FBVyxFQUFVLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkYsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUN2QyxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsZUFBZSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDekUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBR2hELE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxHQUFzQixFQUFFLFVBQXFCO0lBQy9FLE9BQU8sR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksa0JBQWtCLENBQUMsR0FBRyxFQUFFLFVBQVUsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQztBQUNoRyxDQUFDO0FBQ0QsTUFBTSxVQUFVLG9CQUFvQixDQUFDLE1BQXFCLEVBQUUsVUFBcUIsRUFBRSxTQUFrQjtJQUNuRyxPQUFPLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLENBQUM7QUFDN0YsQ0FBQztXQVVPLFNBQVMsQ0FBQyxNQUFNLE9BS2hCLFNBQVMsQ0FBQyxPQUFPLE9BS2pCLFNBQVMsQ0FBQyxTQUFTO0FBWjNCLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBd0IsTUFB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LFdBQVcsQ0FBQztRQUN0QyxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDaEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQzlCLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztJQUMxQixDQUFDO0NBQ0YsQ0FBQTtBQWhEWSxjQUFjO0lBRDFCLFdBQVcsQ0FBQyxFQUFDLFFBQVEsRUFBRSxlQUFlLEVBQUMsQ0FBQztHQUM1QixjQUFjLENBZ0QxQjtTQWhEWSxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNb21lbnR9IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBqb2luUHJvcGVydGllc1BhdGgsIHNwbGl0QnlJZCwgdG9OdW1iZXIgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcbmltcG9ydCB7RW50aXR5LCBFbnRpdHlBc09iamVjdE9wdGlvbnMsIEVudGl0eVV0aWxzLCBJRW50aXR5fSBmcm9tICcuL2VudGl0eS5tb2RlbCc7XG5pbXBvcnQge1N0YXR1c0lkc30gZnJvbSAnLi9tb2RlbC5lbnVtJztcbmltcG9ydCB7ZnJvbURhdGVJU09TdHJpbmcsIHRvRGF0ZUlTT1N0cmluZ30gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2RhdGVzJztcbmltcG9ydCB7RW50aXR5Q2xhc3N9IGZyb20gJy4vZW50aXR5LmRlY29yYXRvcnMnO1xuaW1wb3J0IHtJY29uUmVmfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvdHlwZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVmZXJlbnRpYWxUb1N0cmluZyhvYmo6IFJlZmVyZW50aWFsIHwgYW55LCBwcm9wZXJ0aWVzPzogc3RyaW5nW10pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gb2JqICYmIG9iai5pZCAmJiBqb2luUHJvcGVydGllc1BhdGgob2JqLCBwcm9wZXJ0aWVzIHx8IFsnbGFiZWwnLCAnbmFtZSddKSB8fCB1bmRlZmluZWQ7XG59XG5leHBvcnQgZnVuY3Rpb24gcmVmZXJlbnRpYWxzVG9TdHJpbmcodmFsdWVzOiBSZWZlcmVudGlhbFtdLCBwcm9wZXJ0aWVzPzogc3RyaW5nW10sIHNlcGFyYXRvcj86IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiAodmFsdWVzIHx8IFtdKS5tYXAodiA9PiByZWZlcmVudGlhbFRvU3RyaW5nKHYsIHByb3BlcnRpZXMpKS5qb2luKHNlcGFyYXRvciB8fCAnLCAnKTtcbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIElTdGF0dXMge1xuICBpZDogbnVtYmVyO1xuICBpY29uPzogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgU3RhdHVzTGlzdDogUmVhZG9ubHk8SVN0YXR1c1tdPiA9IE9iamVjdC5mcmVlemUoW1xuICB7XG4gICAgaWQ6IFN0YXR1c0lkcy5FTkFCTEUsXG4gICAgaWNvbjogJ2NoZWNrbWFyaycsXG4gICAgbGFiZWw6ICdSRUZFUkVOVElBTC5TVEFUVVNfRU5VTS5FTkFCTEUnXG4gIH0sXG4gIHtcbiAgICBpZDogU3RhdHVzSWRzLkRJU0FCTEUsXG4gICAgaWNvbjogJ2Nsb3NlJyxcbiAgICBsYWJlbDogJ1JFRkVSRU5USUFMLlNUQVRVU19FTlVNLkRJU0FCTEUnXG4gIH0sXG4gIHtcbiAgICBpZDogU3RhdHVzSWRzLlRFTVBPUkFSWSxcbiAgICBpY29uOiAnaGVscCcsXG4gICAgbGFiZWw6ICdSRUZFUkVOVElBTC5TVEFUVVNfRU5VTS5URU1QT1JBUlknXG4gIH1cbl0pO1xuXG5leHBvcnQgY29uc3QgU3RhdHVzQnlJZCA9IE9iamVjdC5mcmVlemUoc3BsaXRCeUlkKFN0YXR1c0xpc3QpKTtcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIElSZWZlcmVudGlhbFJlZjxcbiAgVCBleHRlbmRzIElFbnRpdHk8VCwgSUQ+ID0gSUVudGl0eTxhbnksIGFueT4sXG4gIElEID0gbnVtYmVyXG4gID5cbiAgZXh0ZW5kcyBJRW50aXR5PFQsIElEPiB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGxldmVsSWQ/OiBudW1iZXI7XG4gIHN0YXR1c0lkOiBudW1iZXI7XG4gIGVudGl0eU5hbWU6IHN0cmluZztcbn1cblxuLy9AZHluYW1pY1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VSZWZlcmVudGlhbDxcbiAgVCBleHRlbmRzIEJhc2VSZWZlcmVudGlhbDxULCBJRCwgQU8+LFxuICBJRCA9IG51bWJlcixcbiAgQU8gZXh0ZW5kcyBSZWZlcmVudGlhbEFzT2JqZWN0T3B0aW9ucyA9IFJlZmVyZW50aWFsQXNPYmplY3RPcHRpb25zLFxuICBGTyA9IGFueVxuICA+XG4gIGV4dGVuZHMgRW50aXR5PFQsIElELCBBTywgRk8+XG4gIGltcGxlbWVudHMgSVJlZmVyZW50aWFsUmVmPFQsIElEPiB7XG5cbiAgbGFiZWw6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBjb21tZW50czogc3RyaW5nO1xuICBjcmVhdGlvbkRhdGU6IERhdGUgfCBNb21lbnQ7XG4gIHN0YXR1c0lkOiBudW1iZXI7XG4gIHZhbGlkaXR5U3RhdHVzSWQ6IG51bWJlcjtcbiAgbGV2ZWxJZDogbnVtYmVyO1xuICBwYXJlbnRJZDogbnVtYmVyO1xuICBlbnRpdHlOYW1lOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoX190eXBlbmFtZT86IHN0cmluZykge1xuICAgIHN1cGVyKF9fdHlwZW5hbWUpO1xuICB9XG5cbiAgYXNPYmplY3Qob3B0cz86IEFPKTogYW55IHtcbiAgICBpZiAob3B0cyAmJiBvcHRzLm1pbmlmeSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICAgIGVudGl0eU5hbWU6IG9wdHMua2VlcEVudGl0eU5hbWUgJiYgdGhpcy5lbnRpdHlOYW1lIHx8IHVuZGVmaW5lZCwgLy8gRG9uJ3Qga2VlcCBieSBkZWZhdWx0XG4gICAgICAgIF9fdHlwZW5hbWU6IG9wdHMua2VlcFR5cGVuYW1lICYmIHRoaXMuX190eXBlbmFtZSB8fCB1bmRlZmluZWRcbiAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IHRhcmdldDogYW55ID0gc3VwZXIuYXNPYmplY3Qob3B0cyk7XG4gICAgdGFyZ2V0LmNyZWF0aW9uRGF0ZSA9IHRvRGF0ZUlTT1N0cmluZyh0aGlzLmNyZWF0aW9uRGF0ZSk7XG4gICAgaWYgKG9wdHMgJiYgb3B0cy5rZWVwVHlwZW5hbWUgPT09IGZhbHNlKSBkZWxldGUgdGFyZ2V0LmVudGl0eU5hbWU7XG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfVxuXG4gIGZyb21PYmplY3Qoc291cmNlOiBhbnksIG9wdHM/OiBGTykge1xuICAgIHN1cGVyLmZyb21PYmplY3Qoc291cmNlLCBvcHRzKTtcbiAgICB0aGlzLmxhYmVsID0gc291cmNlLmxhYmVsO1xuICAgIHRoaXMubmFtZSA9IHNvdXJjZS5uYW1lO1xuICAgIHRoaXMuZGVzY3JpcHRpb24gPSBzb3VyY2UuZGVzY3JpcHRpb247XG4gICAgdGhpcy5jb21tZW50cyA9IHNvdXJjZS5jb21tZW50cztcbiAgICB0aGlzLnN0YXR1c0lkID0gc291cmNlLnN0YXR1c0lkO1xuICAgIHRoaXMudmFsaWRpdHlTdGF0dXNJZCAgPSBzb3VyY2UudmFsaWRpdHlTdGF0dXNJZDtcbiAgICB0aGlzLmxldmVsSWQgPSBzb3VyY2UubGV2ZWxJZCAmJiBzb3VyY2UubGV2ZWxJZCAhPT0gMCA/IHNvdXJjZS5sZXZlbElkIDogdW5kZWZpbmVkOyAvLyBEbyBub3Qgc2V0IGFzIG51bGwgKG5lZWQgZm9yIGFjY291bnQuZGVwYXJ0bWVudCwgd2hlbiByZWdpc3RlcilcbiAgICB0aGlzLnBhcmVudElkID0gc291cmNlLnBhcmVudElkO1xuICAgIHRoaXMuY3JlYXRpb25EYXRlID0gZnJvbURhdGVJU09TdHJpbmcoc291cmNlLmNyZWF0aW9uRGF0ZSk7XG4gICAgdGhpcy5lbnRpdHlOYW1lID0gc291cmNlLmVudGl0eU5hbWU7XG4gIH1cblxuICBlcXVhbHMob3RoZXI6IFQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gc3VwZXIuZXF1YWxzKG90aGVyKSAmJiB0aGlzLmVudGl0eU5hbWUgPT09IG90aGVyLmVudGl0eU5hbWU7XG4gIH1cbn1cblxuLy8gQGR5bmFtaWNcbkBFbnRpdHlDbGFzcyh7dHlwZW5hbWU6ICdSZWZlcmVudGlhbFZPJ30pXG5leHBvcnQgY2xhc3MgUmVmZXJlbnRpYWw8XG4gIFQgZXh0ZW5kcyBSZWZlcmVudGlhbDxULCBhbnk+ID0gUmVmZXJlbnRpYWw8YW55PixcbiAgSUQgPSBudW1iZXJcbiAgPlxuICBleHRlbmRzIEJhc2VSZWZlcmVudGlhbDxULCBJRD4ge1xuXG4gIHN0YXRpYyBmcm9tT2JqZWN0OiAoc291cmNlOiBhbnksIG9wdHM/OiBhbnkpID0+IFJlZmVyZW50aWFsO1xufVxuXG5leHBvcnQgY2xhc3MgUmVmZXJlbnRpYWxVdGlscyB7XG4gIC8vIEZJWE1FOiByZW1vdmUgdGhpc1xuICBzdGF0aWMgZnJvbU9iamVjdChzb3VyY2U6IGFueSk6IFJlZmVyZW50aWFsIHtcbiAgICBpZiAoIXNvdXJjZSB8fCBzb3VyY2UgaW5zdGFuY2VvZiBSZWZlcmVudGlhbCkgcmV0dXJuIHNvdXJjZTtcbiAgICBjb25zdCByZXMgPSBuZXcgUmVmZXJlbnRpYWwoKTtcbiAgICByZXMuZnJvbU9iamVjdChzb3VyY2UpO1xuICAgIHJldHVybiByZXMgYXMgUmVmZXJlbnRpYWw7XG4gIH1cblxuICBzdGF0aWMgaXNOb3RFbXB0eTxUIGV4dGVuZHMgSVJlZmVyZW50aWFsUmVmPFQ+PihvYmo6IFR8YW55KTogYm9vbGVhbiB7XG4gICAgLy8gQSByZWZlcmVudGlhbCBlbnRpdHkgc2hvdWxkIGFsd2F5cyBoYXZlIGEgJ2lkJyBmaWxsZWQgKGNhbiBiZSBuZWdhdGl2ZSBpcyBsb2NhbCBhbmQgdGVtcG9yYXJ5KVxuICAgIHJldHVybiBFbnRpdHlVdGlscy5pc05vdEVtcHR5KG9iaiwgJ2lkJyk7XG4gIH1cblxuICBzdGF0aWMgaXNFbXB0eTxUIGV4dGVuZHMgSVJlZmVyZW50aWFsUmVmPFQ+PihvYmo6IFR8YW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEVudGl0eVV0aWxzLmlzRW1wdHkob2JqLCAnaWQnKTtcbiAgfVxuXG4gIHN0YXRpYyBlcXVhbHM8VCBleHRlbmRzIElSZWZlcmVudGlhbFJlZjxUPj4obzE6IFR8YW55LCBvMjogVHxhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gRW50aXR5VXRpbHMuZXF1YWxzKG8xLCBvMiwgJ2lkJyk7XG4gIH1cbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIFJlZmVyZW50aWFsQXNPYmplY3RPcHRpb25zIGV4dGVuZHMgRW50aXR5QXNPYmplY3RPcHRpb25zIHtcbiAga2VlcEVudGl0eU5hbWU/OiBib29sZWFuO1xuICBrZWVwSWNvbj86IGJvb2xlYW47XG59XG5cbi8qKlxuICogVXNlZCB0byBzdG9yZSBhbiBlbnRpdHkgbG9jYWxseVxuICovXG5leHBvcnQgY29uc3QgTUlOSUZZX0VOVElUWV9GT1JfTE9DQUxfU1RPUkFHRTogUmVmZXJlbnRpYWxBc09iamVjdE9wdGlvbnMgPSBPYmplY3QuZnJlZXplKHtcbiAgbWluaWZ5OiB0cnVlLFxuICBrZWVwVHlwZW5hbWU6IHRydWUsXG4gIGtlZXBFbnRpdHlOYW1lOiB0cnVlLFxuICBrZWVwTG9jYWxJZDogdHJ1ZSxcbiAga2VlcEljb246IHRydWVcbn0pO1xuXG4vKipcbiAqIFVzZWQgdG8gc2VuZCBhbiBlbnRpdHkgdG8gYSBwb2RcbiAqL1xuZXhwb3J0IGNvbnN0IE1JTklGWV9FTlRJVFlfRk9SX1BPRDogUmVmZXJlbnRpYWxBc09iamVjdE9wdGlvbnMgPSBPYmplY3QuZnJlZXplKHtcbiAgbWluaWZ5OiB0cnVlLFxuICBrZWVwVHlwZW5hbWU6IGZhbHNlLFxuICBrZWVwRW50aXR5TmFtZTogZmFsc2UsXG4gIGtlZXBMb2NhbElkOiBmYWxzZSxcbiAga2VlcEljb246IGZhbHNlXG59KTtcblxuLy8gQGR5bmFtaWNcbkBFbnRpdHlDbGFzcyh7dHlwZW5hbWU6ICdSZWZlcmVudGlhbFZPJ30pXG5leHBvcnQgY2xhc3MgUmVmZXJlbnRpYWxSZWY8XG4gIFQgZXh0ZW5kcyBSZWZlcmVudGlhbFJlZjxhbnksIElEPiA9IFJlZmVyZW50aWFsUmVmPGFueSwgYW55PixcbiAgSUQgPSBudW1iZXIsXG4gIE8gZXh0ZW5kcyBSZWZlcmVudGlhbEFzT2JqZWN0T3B0aW9ucyA9IFJlZmVyZW50aWFsQXNPYmplY3RPcHRpb25zLFxuICBGTyA9IGFueVxuICA+XG4gIGV4dGVuZHMgRW50aXR5PFQsIElELCBPLCBGTz5cbiAgaW1wbGVtZW50cyBJUmVmZXJlbnRpYWxSZWY8VCwgSUQ+IHtcblxuICBzdGF0aWMgZnJvbU9iamVjdDogKHNvdXJjZTogYW55LCBvcHRzPzogYW55KSA9PiBSZWZlcmVudGlhbFJlZjtcblxuICBsYWJlbDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHN0YXR1c0lkOiBudW1iZXI7XG4gIGxldmVsSWQ6IG51bWJlcjtcbiAgZW50aXR5TmFtZTogc3RyaW5nO1xuICBpY29uOiBJY29uUmVmO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKFJlZmVyZW50aWFsUmVmLlRZUEVOQU1FKTtcbiAgfVxuXG4gIGFzT2JqZWN0KG9wdHM/OiBPKTogYW55IHtcbiAgICBpZiAob3B0cyAmJiBvcHRzLm1pbmlmeSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICAgIGVudGl0eU5hbWU6IG9wdHMua2VlcEVudGl0eU5hbWUgJiYgdGhpcy5lbnRpdHlOYW1lIHx8IHVuZGVmaW5lZCwgLy8gRG9uJ3Qga2VlcCBieSBkZWZhdWx0XG4gICAgICAgIF9fdHlwZW5hbWU6IG9wdHMua2VlcFR5cGVuYW1lICYmIHRoaXMuX190eXBlbmFtZSB8fCB1bmRlZmluZWRcbiAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IHRhcmdldDogYW55ID0gc3VwZXIuYXNPYmplY3Qob3B0cyk7XG4gICAgaWYgKG9wdHMgJiYgb3B0cy5rZWVwRW50aXR5TmFtZSA9PT0gZmFsc2UpIGRlbGV0ZSB0YXJnZXQuZW50aXR5TmFtZTtcbiAgICBpZiAob3B0cyAmJiBvcHRzLmtlZXBJY29uID09PSBmYWxzZSkgZGVsZXRlIHRhcmdldC5pY29uO1xuXG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfVxuXG4gIGZyb21PYmplY3Qoc291cmNlOiBhbnksIG9wdHM/OiBGTykge1xuICAgIHN1cGVyLmZyb21PYmplY3Qoc291cmNlKTtcbiAgICB0aGlzLmVudGl0eU5hbWUgPSBzb3VyY2UuZW50aXR5TmFtZSB8fCB0aGlzLmVudGl0eU5hbWU7XG4gICAgdGhpcy5sYWJlbCA9IHNvdXJjZS5sYWJlbDtcbiAgICB0aGlzLm5hbWUgPSBzb3VyY2UubmFtZTtcbiAgICB0aGlzLmRlc2NyaXB0aW9uID0gc291cmNlLmRlc2NyaXB0aW9uO1xuICAgIHRoaXMuc3RhdHVzSWQgPSBzb3VyY2Uuc3RhdHVzSWQ7XG4gICAgdGhpcy5sZXZlbElkID0gc291cmNlLmxldmVsSWQ7XG4gICAgdGhpcy5pY29uID0gc291cmNlLmljb247XG4gIH1cbn1cbiJdfQ==
|
|
@@ -44,10 +44,6 @@ export class Color {
|
|
|
44
44
|
return null;
|
|
45
45
|
return new Color([+parts[0], +parts[1], +parts[2]], parts.length === 4 && +parts[3] || 1, 'custom');
|
|
46
46
|
}
|
|
47
|
-
static parseHexa(hexColor) {
|
|
48
|
-
const split = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hexColor);
|
|
49
|
-
return new Color(split ? split.slice(1, 4).map(i => parseInt(i, 16)) : [0, 0, 0]);
|
|
50
|
-
}
|
|
51
47
|
get name() {
|
|
52
48
|
return this._name;
|
|
53
49
|
}
|
|
@@ -83,14 +79,13 @@ Color.transparent = function () {
|
|
|
83
79
|
// @dynamic
|
|
84
80
|
export class ColorScale {
|
|
85
81
|
constructor(colorArray, options) {
|
|
86
|
-
this.colorArray = colorArray;
|
|
87
82
|
options = options || {};
|
|
88
83
|
// reserved last colors for value > max
|
|
89
84
|
const nbIntervalBeforeUpper = !options.upperMax ? colorArray.length : (colorArray.length - 1);
|
|
90
85
|
this._min = options.min || 0;
|
|
91
86
|
this._max = options.max || nbIntervalBeforeUpper;
|
|
92
87
|
this._rangeSize = Math.round((this._max - this._min) / nbIntervalBeforeUpper);
|
|
93
|
-
this._legendItems = this.
|
|
88
|
+
this._legendItems = this.computeLegendItems(colorArray);
|
|
94
89
|
}
|
|
95
90
|
static default() {
|
|
96
91
|
return ColorScale.custom(25);
|
|
@@ -113,16 +108,19 @@ export class ColorScale {
|
|
|
113
108
|
items: this._legendItems
|
|
114
109
|
};
|
|
115
110
|
}
|
|
116
|
-
|
|
117
|
-
const index = Math.floor(value * (this.
|
|
118
|
-
return this.
|
|
111
|
+
getLegendForValue(value) {
|
|
112
|
+
const index = Math.floor(value * (this._legendItems.length - 1) / this._max);
|
|
113
|
+
return this._legendItems[index];
|
|
114
|
+
}
|
|
115
|
+
getLegendAtIndex(index) {
|
|
116
|
+
return this._legendItems[index];
|
|
119
117
|
}
|
|
120
|
-
|
|
121
|
-
return
|
|
118
|
+
computeLegendItems(colorArray) {
|
|
119
|
+
return colorArray.map((color, index) => {
|
|
122
120
|
const start = index * this._rangeSize;
|
|
123
121
|
const end = start + this._rangeSize;
|
|
124
122
|
return {
|
|
125
|
-
color,
|
|
123
|
+
color: new Color(color),
|
|
126
124
|
label: (end < this._max) ? `${start.toLocaleString()} - ${end.toLocaleString()}` : ` >= ${start}`
|
|
127
125
|
};
|
|
128
126
|
});
|
|
@@ -131,12 +129,10 @@ export class ColorScale {
|
|
|
131
129
|
ColorScale.custom = (count, options) => {
|
|
132
130
|
options = options || {};
|
|
133
131
|
return new ColorScale(linearColorGradientWithIntermediate(count, {
|
|
134
|
-
opacity: options.opacity,
|
|
135
132
|
startColor: options.startColor || undefined,
|
|
136
133
|
mainColor: options.mainColor || undefined,
|
|
137
134
|
mainColorIndex: isNotNil(options.mainColorIndex) ? options.mainColorIndex : undefined,
|
|
138
|
-
endColor: options.endColor || undefined
|
|
139
|
-
format: options.format
|
|
135
|
+
endColor: options.endColor || undefined
|
|
140
136
|
}), options);
|
|
141
137
|
};
|
|
142
138
|
// Fill colorsMap
|
|
@@ -144,29 +140,6 @@ Object.getOwnPropertyNames(rgbArrayMap)
|
|
|
144
140
|
.forEach((key) => {
|
|
145
141
|
colorsMap[key] = new Color(rgbArrayMap[key], 1, key);
|
|
146
142
|
});
|
|
147
|
-
// Internal function
|
|
148
|
-
function state2side(state) {
|
|
149
|
-
switch (state) {
|
|
150
|
-
case 0:
|
|
151
|
-
return 0;
|
|
152
|
-
case 1:
|
|
153
|
-
return -1;
|
|
154
|
-
case 2:
|
|
155
|
-
return 0;
|
|
156
|
-
case 3:
|
|
157
|
-
return 1;
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
const ɵ0 = (defaultStateSize) => [
|
|
161
|
-
Math.round((rgbArrayMap.red[0] - 50) / defaultStateSize),
|
|
162
|
-
Math.round((255 - rgbArrayMap.red[1]) / defaultStateSize),
|
|
163
|
-
Math.round((255 - rgbArrayMap.red[2]) / defaultStateSize)
|
|
164
|
-
];
|
|
165
|
-
const SCALE_OPTIONS_DEFAULT = {
|
|
166
|
-
startColor: rgbArrayMap.red,
|
|
167
|
-
startStates: [0, 2, 3],
|
|
168
|
-
startStepsFn: ɵ0
|
|
169
|
-
};
|
|
170
143
|
/**
|
|
171
144
|
* Internal function, that create a colors scale, using iteration
|
|
172
145
|
*
|
|
@@ -179,34 +152,26 @@ const SCALE_OPTIONS_DEFAULT = {
|
|
|
179
152
|
function linearColorGradientWithIntermediate(count, options) {
|
|
180
153
|
options = options || {};
|
|
181
154
|
// From [0,1]
|
|
182
|
-
options.opacity = (options.opacity > 0 && options.opacity < 1) ? options.opacity : 1;
|
|
183
155
|
options.startColor = options.startColor || [255, 255, 190]; // default start = creme
|
|
184
156
|
options.mainColorIndex = options.mainColorIndex && options.mainColorIndex < count - 1 ? options.mainColorIndex : count - 1;
|
|
185
157
|
options.endColor = options.endColor || [255, 0, 0]; // default main = red
|
|
186
|
-
options.format = options.format || 'rgb';
|
|
187
158
|
if (!options.mainColor) {
|
|
188
159
|
return linearColorGradient(count, {
|
|
189
|
-
opacity: options.opacity,
|
|
190
160
|
startColor: options.startColor,
|
|
191
|
-
endColor: options.endColor
|
|
192
|
-
format: options.format
|
|
161
|
+
endColor: options.endColor
|
|
193
162
|
});
|
|
194
163
|
}
|
|
195
164
|
else {
|
|
196
165
|
// Step 1: startColor -> mainColor
|
|
197
166
|
const result = linearColorGradient(options.mainColorIndex + 1, {
|
|
198
|
-
opacity: options.opacity,
|
|
199
167
|
startColor: options.startColor,
|
|
200
|
-
endColor: options.mainColor
|
|
201
|
-
format: options.format
|
|
168
|
+
endColor: options.mainColor
|
|
202
169
|
});
|
|
203
170
|
// Step 2: mainColor -> endColor
|
|
204
171
|
if (options.mainColorIndex < count - 1) {
|
|
205
172
|
return result.concat(linearColorGradient(count - options.mainColorIndex, {
|
|
206
|
-
opacity: options.opacity,
|
|
207
173
|
startColor: options.mainColor,
|
|
208
|
-
endColor: options.endColor
|
|
209
|
-
format: options.format
|
|
174
|
+
endColor: options.endColor
|
|
210
175
|
}));
|
|
211
176
|
}
|
|
212
177
|
else {
|
|
@@ -217,10 +182,8 @@ function linearColorGradientWithIntermediate(count, options) {
|
|
|
217
182
|
function linearColorGradient(count, options) {
|
|
218
183
|
options = options || {};
|
|
219
184
|
// From [0,1]
|
|
220
|
-
options.opacity = (options.opacity > 0 && options.opacity < 1) ? options.opacity : 1;
|
|
221
185
|
options.startColor = options.startColor || [255, 255, 255]; // default start = white
|
|
222
186
|
options.endColor = options.endColor || [255, 0, 0]; // default end = red
|
|
223
|
-
options.format = options.format || 'rgb';
|
|
224
187
|
const result = [];
|
|
225
188
|
const color = options.startColor.slice(); // copy the start color
|
|
226
189
|
const delta = [
|
|
@@ -237,24 +200,6 @@ function linearColorGradient(count, options) {
|
|
|
237
200
|
// Force last color = end color
|
|
238
201
|
result.push(options.endColor.slice());
|
|
239
202
|
// Output as array
|
|
240
|
-
if (options.format === 'array') {
|
|
241
|
-
return result;
|
|
242
|
-
}
|
|
243
|
-
// Output as rgb(r,g,b) string
|
|
244
|
-
if (options.format === 'rgb') {
|
|
245
|
-
if (options.opacity >= 1) {
|
|
246
|
-
return result.map(color => 'rgb(' + color.join(',') + ')');
|
|
247
|
-
}
|
|
248
|
-
else {
|
|
249
|
-
return result.map(color => 'rgba(' + color.concat(options.opacity).join(',') + ')');
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
// Output as hex
|
|
253
|
-
// TODO
|
|
254
|
-
// return result.map(color => {
|
|
255
|
-
// return "rgb(" + color.join(',') + ")";
|
|
256
|
-
// });
|
|
257
203
|
return result;
|
|
258
204
|
}
|
|
259
|
-
export { ɵ0 };
|
|
260
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGgtY29sb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvZ3JhcGgvZ3JhcGgtY29sb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxLQUFLLEVBQUUsUUFBUSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBUzdDOztHQUVHO0FBQ0gsTUFBTSxXQUFXLEdBQUc7SUFDbEIsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7SUFDdEIsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUM7SUFDdEIsU0FBUyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7SUFDMUIsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUM7SUFDdkIsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDckIsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7SUFDdEIsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7SUFDdkIsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDbEIsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEIsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDbEIsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUM7Q0FDbEIsQ0FBQztBQUVGLDhCQUE4QjtBQUM5QixNQUFNLFNBQVMsR0FBNkIsRUFBRSxDQUFDO0FBRy9DOztHQUVHO0FBQ0gsV0FBVztBQUNYLE1BQU0sT0FBTyxLQUFLO0lBaUNoQixZQUNVLFNB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RyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1NBQzVEO2FBQU07WUFDTCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1NBQ3JGO0tBQ0Y7SUFFRCxnQkFBZ0I7SUFDaEIsT0FBTztJQUNQLCtCQUErQjtJQUMvQiwyQ0FBMkM7SUFDM0MsTUFBTTtJQUNOLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1ByZWRlZmluZWRDb2xvcnN9IGZyb20gJ0Bpb25pYy9jb3JlJztcbmltcG9ydCB7aXNOaWwsIGlzTm90TmlsfSBmcm9tICcuLi9mdW5jdGlvbnMnO1xuXG5leHBvcnQgZGVjbGFyZSB0eXBlIENvbG9yTmFtZSA9IFByZWRlZmluZWRDb2xvcnMgfFxuICAnd2hpdGUnXG4gIHwgJ3JlZCdcbiAgfCAnZ3JlZW4nXG4gIHwgJ2JsdWUnO1xuXG5cbi8qKlxuICogRGVmaW5lIGhlcmUgdGhlbWUgY29sb3JzXG4gKi9cbmNvbnN0IHJnYkFycmF5TWFwID0ge1xuICB3aGl0ZTogWzI1NSwgMjU1LCAyNTVdLFxuICBwcmltYXJ5OiBbMjAsIDY3LCAxNDVdLCAvLyBva1xuICBzZWNvbmRhcnk6IFsxMTcsIDE5NiwgMjUzXSwgLy8gb2tcbiAgdGVydGlhcnk6IFs5MSwgOTQsIDI0NF0sIC8vIG9rXG4gIGRhbmdlcjogWzI0NSwgNjEsIDYxXSwgLy8gb2tcbiAgbGlnaHQ6IFsyNDQsIDI0NSwgMjQ4XSwgLy8gb2tcbiAgbWVkaXVtOiBbMTUyLCAxNTQsIDE2Ml0sIC8vIG9rXG4gIGRhcms6IFszNCwgMzYsIDQwXSwgLy8gb2tcbiAgcmVkOiBbMjU1LCAwLCAwXSxcbiAgZ3JlZW46IFswLCAyNTUsIDBdLFxuICBibHVlOiBbMCwgMCwgMjU1XVxufTtcblxuLy8gRmlsbCBhIG1hcCBvZiBDb2xvciBvYmplY3RzXG5jb25zdCBjb2xvcnNNYXA6IHsgW2tleTogc3RyaW5nXTogQ29sb3IgfSA9IHt9O1xuXG5cbi8qKlxuICogVXNlZnVsIGNsYXNzIGZvciBjb2xvciBjb252ZXJzaW9uXG4gKi9cbi8vIEBkeW5hbWljXG5leHBvcnQgY2xhc3MgQ29sb3Ige1xuXG4gIC8vIEhlbHBlciBtZXRob2QsIHRvIHJldHJpZXZlIGEgY29sb3JcbiAgc3RhdGljIGdldChuYW1lOiBDb2xvck5hbWUpOiBDb2xvciB7XG4gICAgcmV0dXJuIGNvbG9yc01hcFtuYW1lXSBhcyBDb2xvcjtcbiAgfVxuXG4gIHN0YXRpYyBwYXJzZVJnYmEocmdiYTogc3RyaW5nKTogQ29sb3J8bnVsbHtcbiAgICAgIGlmICghcmdiYSB8fCAoIXJnYmEuc3RhcnRzV2l0aCgncmdiKCcpICYmICFyZ2JhLnN0YXJ0c1dpdGgoJ3JnYmEoJykpKSByZXR1cm4gbnVsbDtcblxuICAgICAgLy8gUGFyc2UgcGFydHNcbiAgICAgIGNvbnN0IHBhcnRzID0gcmdiYVxuICAgICAgICAucmVwbGFjZSgncmdiKCcsICcnKVxuICAgICAgICAucmVwbGFjZSgncmdiYSgnLCAnJylcbiAgICAgICAgLnJlcGxhY2UoJyknLCAnJylcbiAgICAgICAgLnNwbGl0KCcsJyk7XG5cbiAgICAgIGlmIChwYXJ0cy5sZW5ndGggIT09IDMgJiYgcGFydHMubGVuZ3RoICE9PSA0KSByZXR1cm4gbnVsbDtcblxuICAgICAgcmV0dXJuIG5ldyBDb2xvcihbK3BhcnRzWzBdLCArcGFydHNbMV0sICtwYXJ0c1syXV0sXG4gICAgICAgIHBhcnRzLmxlbmd0aCA9PT0gNCAmJiArcGFydHNbM10gfHwgMSxcbiAgICAgICAgJ2N1c3RvbScpO1xuICB9XG5cbiAgc3RhdGljIHBhcnNlSGV4YShoZXhDb2xvcjogc3RyaW5nKTogQ29sb3Ige1xuICAgIGNvbnN0IHNwbGl0ID0gL14jPyhbYS1mXFxkXXsyfSkoW2EtZlxcZF17Mn0pKFthLWZcXGRdezJ9KSQvaS5leGVjKGhleENvbG9yKTtcbiAgICByZXR1cm4gbmV3IENvbG9yKHNwbGl0ID8gc3BsaXQuc2xpY2UoMSwgNCkubWFwKGkgPT4gcGFyc2VJbnQoaSwgMTYpKSA6IFswLCAwLCAwXSk7XG4gIH1cblxuICBzdGF0aWMgdHJhbnNwYXJlbnQgPSBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gbmV3IENvbG9yKFswLDAsMF0sIDAsICd0cmFuc2x1Y2VudCcpO1xuICB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX3JnYkFycmF5OiBudW1iZXJbXSxcbiAgICBwcml2YXRlIF9vcGFjaXR5PzogbnVtYmVyLFxuICAgIHByaXZhdGUgX25hbWU6IHN0cmluZyA9ICdjdXN0b20nXG4gICkge1xuICB9XG4gIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX25hbWU7XG4gIH1cbiAgZ2V0IG9wYWNpdHkoKTogbnVtYmVye1xuICAgIHJldHVybiBpc05vdE5pbCh0aGlzLl9vcGFjaXR5KSA/IHRoaXMuX29wYWNpdHkgOiAxO1xuICB9XG4gIGdldCByZ2IoKTogbnVtYmVyW10ge1xuICAgIHJldHVybiB0aGlzLl9yZ2JBcnJheTtcbiAgfVxuXG4gIGdldCByKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3JnYkFycmF5WzBdO1xuICB9XG5cbiAgZ2V0IGcoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fcmdiQXJyYXlbMV07XG4gIH1cblxuICBnZXQgYigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9yZ2JBcnJheVsyXTtcbiAgfVxuXG4gIHJnYmEob3BhY2l0eT86IG51bWJlcik6IHN0cmluZyB7XG4gICAgb3BhY2l0eSA9IGlzTm90TmlsKG9wYWNpdHkpID8gb3BhY2l0eSA6IHRoaXMuX29wYWNpdHk7XG4gICAgaWYgKGlzTmlsKG9wYWNpdHkpIHx8IG9wYWNpdHkgPCAwIHx8IG9wYWNpdHkgPiAxKSB7XG4gICAgICByZXR1cm4gJ3JnYignICsgdGhpcy5fcmdiQXJyYXkuam9pbignLCcpICsgJyknO1xuICAgIH1cbiAgICByZXR1cm4gJ3JnYmEoJyArIHRoaXMuX3JnYkFycmF5LmpvaW4oJywnKSArICcsJyArIG9wYWNpdHkgKyAnKSc7XG4gIH1cblxufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQ29sb3JHcmFkaWVudE9wdGlvbnMge1xuICBvcGFjaXR5PzogbnVtYmVyO1xuICBzdGFydENvbG9yPzogbnVtYmVyW107XG4gIG1haW5Db2xvcj86IG51bWJlcltdO1xuICBtYWluQ29sb3JJbmRleD86IG51bWJlcjtcbiAgZW5kQ29sb3I/OiBudW1iZXJbXTtcbiAgZm9ybWF0PzogJ3JnYid8J2hleCd8J2FycmF5Jztcbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIENvbG9yU2NhbGVPcHRpb25zIGV4dGVuZHMgQ29sb3JHcmFkaWVudE9wdGlvbnN7XG4gIG1pbj86IG51bWJlcjtcbiAgbWF4PzogbnVtYmVyO1xuICB1cHBlck1heD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBDb2xvclNjYWxlTGVnZW5kSXRlbSB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGNvbG9yOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBDb2xvclNjYWxlTGVnZW5kIHtcbiAgaXRlbXM6IENvbG9yU2NhbGVMZWdlbmRJdGVtW107XG59XG5cbi8qKlxuICogSGVscGVyIGNsYXNzIGZvciBjb2xvcnMgc2NhbGVcbiAqL1xuLy8gQGR5bmFtaWNcbmV4cG9ydCBjbGFzcyBDb2xvclNjYWxlIHtcblxuICBzdGF0aWMgY3VzdG9tID0gKGNvdW50OiBudW1iZXIsIG9wdGlvbnM/OiBDb2xvclNjYWxlT3B0aW9ucykgPT4ge1xuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgIHJldHVybiBuZXcgQ29sb3JTY2FsZShcbiAgICAgIGxpbmVhckNvbG9yR3JhZGllbnRXaXRoSW50ZXJtZWRpYXRlKGNvdW50LCB7XG4gICAgICAgIG9wYWNpdHk6IG9wdGlvbnMub3BhY2l0eSxcbiAgICAgICAgc3RhcnRDb2xvcjogb3B0aW9ucy5zdGFydENvbG9yIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgbWFpbkNvbG9yOiBvcHRpb25zLm1haW5Db2xvciB8fCB1bmRlZmluZWQsXG4gICAgICAgIG1haW5Db2xvckluZGV4OiBpc05vdE5pbChvcHRpb25zLm1haW5Db2xvckluZGV4KSA/IG9wdGlvbnMubWFpbkNvbG9ySW5kZXggOiB1bmRlZmluZWQsXG4gICAgICAgIGVuZENvbG9yOiBvcHRpb25zLmVuZENvbG9yIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgZm9ybWF0OiBvcHRpb25zLmZvcm1hdFxuICAgICAgfSkgYXMgc3RyaW5nW10sXG4gICAgICBvcHRpb25zXG4gICAgKTtcbiAgfTtcblxuICBzdGF0aWMgZGVmYXVsdCgpIHtcbiAgICByZXR1cm4gQ29sb3JTY2FsZS5jdXN0b20oMjUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGFycmF5IHdpdGggdGhlIGdpdmVuIGNvbG9yXG4gICAqKi9cbiAgc3RhdGljIGZpeChsZW5ndGg/OiBudW1iZXIsIGNvbG9yTmFtZT86IENvbG9yTmFtZSk6IGFueVtdIHtcbiAgICByZXR1cm4gQXJyYXkuYXBwbHkobnVsbCwgQXJyYXkobGVuZ3RoIHx8IDI1KSlcbiAgICAgIC5tYXAoU3RyaW5nLnByb3RvdHlwZS52YWx1ZU9mLCBDb2xvci5nZXQoY29sb3JOYW1lIHx8ICdwcmltYXJ5JykucmdiYSgwLjUpKTtcbiAgfVxuXG4gIHByaXZhdGUgX21pbjogbnVtYmVyO1xuICBwcml2YXRlIF9tYXg6IG51bWJlcjtcbiAgcHJpdmF0ZSBfcmFuZ2VTaXplOiBudW1iZXI7XG4gIHByaXZhdGUgX2xlZ2VuZEl0ZW1zOiBDb2xvclNjYWxlTGVnZW5kSXRlbVtdO1xuXG4gIGdldCBtaW4oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbWluO1xuICB9XG4gIGdldCBtYXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbWF4O1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb2xvckFycmF5OiBzdHJpbmdbXSwgb3B0aW9ucz86IENvbG9yU2NhbGVPcHRpb25zKSB7XG4gICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gICAgLy8gcmVzZXJ2ZWQgbGFzdCBjb2xvcnMgZm9yIHZhbHVlID4gbWF4XG4gICAgY29uc3QgbmJJbnRlcnZhbEJlZm9yZVVwcGVyID0gIW9wdGlvbnMudXBwZXJNYXggPyBjb2xvckFycmF5Lmxlbmd0aCA6IChjb2xvckFycmF5Lmxlbmd0aCAtIDEpO1xuICAgIHRoaXMuX21pbiA9IG9wdGlvbnMubWluIHx8IDA7XG4gICAgdGhpcy5fbWF4ID0gb3B0aW9ucy5tYXggfHwgbmJJbnRlcnZhbEJlZm9yZVVwcGVyO1xuICAgIHRoaXMuX3JhbmdlU2l6ZSA9IE1hdGgucm91bmQoKHRoaXMuX21heCAtIHRoaXMuX21pbikgLyBuYkludGVydmFsQmVmb3JlVXBwZXIpO1xuICAgIHRoaXMuX2xlZ2VuZEl0ZW1zID0gdGhpcy5jb21wdXRlTGVnZW5kKCk7XG4gIH1cblxuICBnZXQgbGVnZW5kKCk6IENvbG9yU2NhbGVMZWdlbmQge1xuICAgIHJldHVybiB7XG4gICAgICBpdGVtczogdGhpcy5fbGVnZW5kSXRlbXNcbiAgICB9O1xuICB9XG5cbiAgZ2V0VmFsdWVDb2xvcih2YWx1ZTogbnVtYmVyKTogc3RyaW5nfG51bWJlcltdIHtcbiAgICBjb25zdCBpbmRleCA9IE1hdGguZmxvb3IodmFsdWUgKiAodGhpcy5jb2xvckFycmF5Lmxlbmd0aCAtIDEpIC8gdGhpcy5fbWF4KTtcbiAgICByZXR1cm4gdGhpcy5jb2xvckFycmF5W2luZGV4XTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjb21wdXRlTGVnZW5kKCk6IENvbG9yU2NhbGVMZWdlbmRJdGVtW10ge1xuICAgIHJldHVybiB0aGlzLmNvbG9yQXJyYXkubWFwKChjb2xvciwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IHN0YXJ0ID0gaW5kZXggKiB0aGlzLl9yYW5nZVNpemU7XG4gICAgICBjb25zdCBlbmQgPSBzdGFydCArIHRoaXMuX3JhbmdlU2l6ZTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbG9yLFxuICAgICAgICBsYWJlbDogKGVuZCA8IHRoaXMuX21heCkgPyBgJHtzdGFydC50b0xvY2FsZVN0cmluZygpfSAtICR7ZW5kLnRvTG9jYWxlU3RyaW5nKCl9YCA6IGAgPj0gJHtzdGFydH1gXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG59XG5cblxuLy8gRmlsbCBjb2xvcnNNYXBcbk9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHJnYkFycmF5TWFwKVxuICAuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgY29sb3JzTWFwW2tleV0gPSBuZXcgQ29sb3IocmdiQXJyYXlNYXBba2V5XSwgMSwga2V5KTtcbiAgfSk7XG5cbi8vIEludGVybmFsIGZ1bmN0aW9uXG5mdW5jdGlvbiBzdGF0ZTJzaWRlKHN0YXRlKSB7XG4gIHN3aXRjaCAoc3RhdGUpIHtcbiAgICBjYXNlIDA6XG4gICAgICByZXR1cm4gMDtcbiAgICBjYXNlIDE6XG4gICAgICByZXR1cm4gLTE7XG4gICAgY2FzZSAyOlxuICAgICAgcmV0dXJuIDA7XG4gICAgY2FzZSAzOlxuICAgICAgcmV0dXJuIDE7XG4gIH1cbn1cblxuXG5jb25zdCBTQ0FMRV9PUFRJT05TX0RFRkFVTFQgPSB7XG4gIHN0YXJ0Q29sb3I6IHJnYkFycmF5TWFwLnJlZCxcbiAgc3RhcnRTdGF0ZXM6IFswLCAyLCAzXSwgLy8gUj1rZWVwLCBWPWtlZXAsIEI9aW5jcmVhc2VcbiAgc3RhcnRTdGVwc0ZuOiAoZGVmYXVsdFN0YXRlU2l6ZTogbnVtYmVyKSA9PiBbXG4gICAgICBNYXRoLnJvdW5kKChyZ2JBcnJheU1hcC5yZWRbMF0gLSA1MCkgLyBkZWZhdWx0U3RhdGVTaXplKSxcbiAgICAgIE1hdGgucm91bmQoKDI1NSAtIHJnYkFycmF5TWFwLnJlZFsxXSkgLyBkZWZhdWx0U3RhdGVTaXplKSxcbiAgICAgIE1hdGgucm91bmQoKDI1NSAtIHJnYkFycmF5TWFwLnJlZFsyXSkgLyBkZWZhdWx0U3RhdGVTaXplKVxuICAgIF1cbn07XG5cbi8qKlxuICogSW50ZXJuYWwgZnVuY3Rpb24sIHRoYXQgY3JlYXRlIGEgY29sb3JzIHNjYWxlLCB1c2luZyBpdGVyYXRpb25cbiAqXG4gKiBAcGFyYW0gY291bnRcbiAqIEBwYXJhbSBvcGFjaXR5XG4gKiBAcGFyYW0gc3RhcnRDb2xvclxuICogQHBhcmFtIHN0YXJ0U3RhdGVcbiAqIEByZXR1cm5zXG4gKi9cbmZ1bmN0aW9uIGxpbmVhckNvbG9yR3JhZGllbnRXaXRoSW50ZXJtZWRpYXRlKGNvdW50OiBudW1iZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zPzogQ29sb3JHcmFkaWVudE9wdGlvbnMpOiBhbnlbXSB7XG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuXG4gIC8vIEZyb20gWzAsMV1cbiAgb3B0aW9ucy5vcGFjaXR5ID0gKG9wdGlvbnMub3BhY2l0eSA+IDAgJiYgb3B0aW9ucy5vcGFjaXR5IDwgMSkgPyBvcHRpb25zLm9wYWNpdHkgOiAxO1xuICBvcHRpb25zLnN0YXJ0Q29sb3IgPSBvcHRpb25zLnN0YXJ0Q29sb3IgfHwgWzI1NSwgMjU1LCAxOTBdOyAvLyBkZWZhdWx0IHN0YXJ0ID0gY3JlbWVcbiAgb3B0aW9ucy5tYWluQ29sb3JJbmRleCA9IG9wdGlvbnMubWFpbkNvbG9ySW5kZXggJiYgb3B0aW9ucy5tYWluQ29sb3JJbmRleCA8IGNvdW50IC0gMSA/IG9wdGlvbnMubWFpbkNvbG9ySW5kZXggOiBjb3VudCAtIDE7XG4gIG9wdGlvbnMuZW5kQ29sb3IgPSBvcHRpb25zLmVuZENvbG9yIHx8IFsyNTUsIDAsIDBdOyAvLyBkZWZhdWx0IG1haW4gPSByZWRcbiAgb3B0aW9ucy5mb3JtYXQgPSBvcHRpb25zLmZvcm1hdCB8fCAncmdiJztcblxuICBpZiAoIW9wdGlvbnMubWFpbkNvbG9yKSB7XG4gICAgcmV0dXJuIGxpbmVhckNvbG9yR3JhZGllbnQoY291bnQsIHtcbiAgICAgIG9wYWNpdHk6IG9wdGlvbnMub3BhY2l0eSxcbiAgICAgIHN0YXJ0Q29sb3I6IG9wdGlvbnMuc3RhcnRDb2xvcixcbiAgICAgIGVuZENvbG9yOiBvcHRpb25zLmVuZENvbG9yLFxuICAgICAgZm9ybWF0OiBvcHRpb25zLmZvcm1hdFxuICAgIH0pO1xuICB9XG5cbiAgZWxzZSB7XG4gICAgLy8gU3RlcCAxOiBzdGFydENvbG9yIC0+IG1haW5Db2xvclxuICAgIGNvbnN0IHJlc3VsdCA9IGxpbmVhckNvbG9yR3JhZGllbnQob3B0aW9ucy5tYWluQ29sb3JJbmRleCArIDEsIHtcbiAgICAgIG9wYWNpdHk6IG9wdGlvbnMub3BhY2l0eSxcbiAgICAgIHN0YXJ0Q29sb3I6IG9wdGlvbnMuc3RhcnRDb2xvcixcbiAgICAgIGVuZENvbG9yOiBvcHRpb25zLm1haW5Db2xvcixcbiAgICAgIGZvcm1hdDogb3B0aW9ucy5mb3JtYXRcbiAgICB9KTtcblxuICAgIC8vIFN0ZXAgMjogbWFpbkNvbG9yIC0+IGVuZENvbG9yXG4gICAgaWYgKG9wdGlvbnMubWFpbkNvbG9ySW5kZXggPCBjb3VudCAtIDEpIHtcbiAgICAgIHJldHVybiByZXN1bHQuY29uY2F0KFxuICAgICAgICBsaW5lYXJDb2xvckdyYWRpZW50KGNvdW50IC0gb3B0aW9ucy5tYWluQ29sb3JJbmRleCwge1xuICAgICAgICAgIG9wYWNpdHk6IG9wdGlvbnMub3BhY2l0eSxcbiAgICAgICAgICBzdGFydENvbG9yOiBvcHRpb25zLm1haW5Db2xvcixcbiAgICAgICAgICBlbmRDb2xvcjogb3B0aW9ucy5lbmRDb2xvcixcbiAgICAgICAgICBmb3JtYXQ6IG9wdGlvbnMuZm9ybWF0XG4gICAgICAgIH0pKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBsaW5lYXJDb2xvckdyYWRpZW50KGNvdW50OiBudW1iZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM/OiBDb2xvckdyYWRpZW50T3B0aW9ucyk6IGFueVtdIHtcblxuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuICAvLyBGcm9tIFswLDFdXG4gIG9wdGlvbnMub3BhY2l0eSA9IChvcHRpb25zLm9wYWNpdHkgPiAwICYmIG9wdGlvbnMub3BhY2l0eSA8IDEpID8gb3B0aW9ucy5vcGFjaXR5IDogMTtcbiAgb3B0aW9ucy5zdGFydENvbG9yID0gb3B0aW9ucy5zdGFydENvbG9yIHx8IFsyNTUsIDI1NSwgMjU1XTsgLy8gZGVmYXVsdCBzdGFydCA9IHdoaXRlXG4gIG9wdGlvbnMuZW5kQ29sb3IgPSBvcHRpb25zLmVuZENvbG9yIHx8IFsyNTUsIDAsIDBdOyAvLyBkZWZhdWx0IGVuZCA9IHJlZFxuICBvcHRpb25zLmZvcm1hdCA9IG9wdGlvbnMuZm9ybWF0IHx8ICdyZ2InO1xuXG4gIGNvbnN0IHJlc3VsdDogbnVtYmVyW11bXSA9IFtdO1xuICBjb25zdCBjb2xvciA9IG9wdGlvbnMuc3RhcnRDb2xvci5zbGljZSgpOyAvLyBjb3B5IHRoZSBzdGFydCBjb2xvclxuICBjb25zdCBkZWx0YSA9IFtcbiAgICBNYXRoLnJvdW5kKChvcHRpb25zLmVuZENvbG9yWzBdIC0gb3B0aW9ucy5zdGFydENvbG9yWzBdKSAvIGNvdW50KSxcbiAgICBNYXRoLnJvdW5kKChvcHRpb25zLmVuZENvbG9yWzFdIC0gb3B0aW9ucy5zdGFydENvbG9yWzFdKSAvIGNvdW50KSxcbiAgICBNYXRoLnJvdW5kKChvcHRpb25zLmVuZENvbG9yWzJdIC0gb3B0aW9ucy5zdGFydENvbG9yWzJdKSAvIGNvdW50KVxuICBdO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQgLSAxOyBpKyspIHtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IDM7IGorKykge1xuICAgICAgY29sb3Jbal0gKz0gZGVsdGFbal07XG4gICAgfVxuICAgIHJlc3VsdC5wdXNoKGNvbG9yLnNsaWNlKCkpO1xuICB9XG5cbiAgLy8gRm9yY2UgbGFzdCBjb2xvciA9IGVuZCBjb2xvclxuICByZXN1bHQucHVzaChvcHRpb25zLmVuZENvbG9yLnNsaWNlKCkpO1xuXG4gIC8vIE91dHB1dCBhcyBhcnJheVxuICBpZiAob3B0aW9ucy5mb3JtYXQgPT09ICdhcnJheScpIHtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLy8gT3V0cHV0IGFzIHJnYihyLGcsYikgc3RyaW5nXG4gIGlmIChvcHRpb25zLmZvcm1hdCA9PT0gJ3JnYicpIHtcbiAgICBpZiAob3B0aW9ucy5vcGFjaXR5ID49IDEpIHtcbiAgICAgIHJldHVybiByZXN1bHQubWFwKGNvbG9yID0+ICdyZ2IoJyArIGNvbG9yLmpvaW4oJywnKSArICcpJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiByZXN1bHQubWFwKGNvbG9yID0+ICdyZ2JhKCcgKyBjb2xvci5jb25jYXQob3B0aW9ucy5vcGFjaXR5KS5qb2luKCcsJykgKyAnKScpO1xuICAgIH1cbiAgfVxuXG4gIC8vIE91dHB1dCBhcyBoZXhcbiAgLy8gVE9ET1xuICAvLyByZXR1cm4gcmVzdWx0Lm1hcChjb2xvciA9PiB7XG4gIC8vICAgcmV0dXJuIFwicmdiKFwiICsgY29sb3Iuam9pbignLCcpICsgXCIpXCI7XG4gIC8vIH0pO1xuICByZXR1cm4gcmVzdWx0O1xufVxuIl19
|
|
205
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGgtY29sb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvZ3JhcGgvZ3JhcGgtY29sb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxLQUFLLEVBQUUsUUFBUSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBVTdDOztHQUVHO0FBQ0gsTUFBTSxXQUFXLEdBQUc7SUFDbEIsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7SUFDdEIsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUM7SUFDdEIsU0FBUyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7SUFDMUIsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUM7SUFDdkIsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDckIsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7SUFDdEIsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7SUFDdkIsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDbEIsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEIsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDbEIsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUM7Q0FDbEIsQ0FBQztBQUVGLDhCQUE4QjtBQUM5QixNQUFNLFNBQVMsR0FBNkIsRUFBRSxDQUFDO0FBRy9DOztHQUVHO0FBQ0gsV0FBVztBQUNYLE1BQU0sT0FBTyxLQUFLO0lBNEJoQixZQUNVLFNB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LFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBRXRDLGtCQUFrQjtJQUNsQixPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQcmVkZWZpbmVkQ29sb3JzfSBmcm9tICdAaW9uaWMvY29yZSc7XG5pbXBvcnQge2lzTmlsLCBpc05vdE5pbH0gZnJvbSAnLi4vZnVuY3Rpb25zJztcbmltcG9ydCB7aGV4VG9SZ2IsIGhleFRvUmdiQXJyYXksIHJnYkFycmF5VG9IZXh9IGZyb20gJy4vY29sb3JzLnV0aWxzJztcblxuZXhwb3J0IGRlY2xhcmUgdHlwZSBDb2xvck5hbWUgPSBQcmVkZWZpbmVkQ29sb3JzIHxcbiAgJ3doaXRlJ1xuICB8ICdyZWQnXG4gIHwgJ2dyZWVuJ1xuICB8ICdibHVlJztcblxuXG4vKipcbiAqIERlZmluZSBoZXJlIHRoZW1lIGNvbG9yc1xuICovXG5jb25zdCByZ2JBcnJheU1hcCA9IHtcbiAgd2hpdGU6IFsyNTUsIDI1NSwgMjU1XSxcbiAgcHJpbWFyeTogWzIwLCA2NywgMTQ1XSwgLy8gb2tcbiAgc2Vjb25kYXJ5OiBbMTE3LCAxOTYsIDI1M10sIC8vIG9rXG4gIHRlcnRpYXJ5OiBbOTEsIDk0LCAyNDRdLCAvLyBva1xuICBkYW5nZXI6IFsyNDUsIDYxLCA2MV0sIC8vIG9rXG4gIGxpZ2h0OiBbMjQ0LCAyNDUsIDI0OF0sIC8vIG9rXG4gIG1lZGl1bTogWzE1MiwgMTU0LCAxNjJdLCAvLyBva1xuICBkYXJrOiBbMzQsIDM2LCA0MF0sIC8vIG9rXG4gIHJlZDogWzI1NSwgMCwgMF0sXG4gIGdyZWVuOiBbMCwgMjU1LCAwXSxcbiAgYmx1ZTogWzAsIDAsIDI1NV1cbn07XG5cbi8vIEZpbGwgYSBtYXAgb2YgQ29sb3Igb2JqZWN0c1xuY29uc3QgY29sb3JzTWFwOiB7IFtrZXk6IHN0cmluZ106IENvbG9yIH0gPSB7fTtcblxuXG4vKipcbiAqIFVzZWZ1bCBjbGFzcyBmb3IgY29sb3IgY29udmVyc2lvblxuICovXG4vLyBAZHluYW1pY1xuZXhwb3J0IGNsYXNzIENvbG9yIHtcblxuICAvLyBIZWxwZXIgbWV0aG9kLCB0byByZXRyaWV2ZSBhIGNvbG9yXG4gIHN0YXRpYyBnZXQobmFtZTogQ29sb3JOYW1lKTogQ29sb3Ige1xuICAgIHJldHVybiBjb2xvcnNNYXBbbmFtZV0gYXMgQ29sb3I7XG4gIH1cblxuICBzdGF0aWMgcGFyc2VSZ2JhKHJnYmE6IHN0cmluZyk6IENvbG9yfG51bGx7XG4gICAgICBpZiAoIXJnYmEgfHwgKCFyZ2JhLnN0YXJ0c1dpdGgoJ3JnYignKSAmJiAhcmdiYS5zdGFydHNXaXRoKCdyZ2JhKCcpKSkgcmV0dXJuIG51bGw7XG5cbiAgICAgIC8vIFBhcnNlIHBhcnRzXG4gICAgICBjb25zdCBwYXJ0cyA9IHJnYmFcbiAgICAgICAgLnJlcGxhY2UoJ3JnYignLCAnJylcbiAgICAgICAgLnJlcGxhY2UoJ3JnYmEoJywgJycpXG4gICAgICAgIC5yZXBsYWNlKCcpJywgJycpXG4gICAgICAgIC5zcGxpdCgnLCcpO1xuXG4gICAgICBpZiAocGFydHMubGVuZ3RoICE9PSAzICYmIHBhcnRzLmxlbmd0aCAhPT0gNCkgcmV0dXJuIG51bGw7XG5cbiAgICAgIHJldHVybiBuZXcgQ29sb3IoWytwYXJ0c1swXSwgK3BhcnRzWzFdLCArcGFydHNbMl1dLFxuICAgICAgICBwYXJ0cy5sZW5ndGggPT09IDQgJiYgK3BhcnRzWzNdIHx8IDEsXG4gICAgICAgICdjdXN0b20nKTtcbiAgfVxuXG4gIHN0YXRpYyB0cmFuc3BhcmVudCA9IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBuZXcgQ29sb3IoWzAsMCwwXSwgMCwgJ3RyYW5zbHVjZW50Jyk7XG4gIH07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfcmdiQXJyYXk6IG51bWJlcltdLFxuICAgIHByaXZhdGUgX29wYWNpdHk/OiBudW1iZXIsXG4gICAgcHJpdmF0ZSBfbmFtZTogc3RyaW5nID0gJ2N1c3RvbSdcbiAgKSB7XG4gIH1cbiAgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fbmFtZTtcbiAgfVxuICBnZXQgb3BhY2l0eSgpOiBudW1iZXJ7XG4gICAgcmV0dXJuIGlzTm90TmlsKHRoaXMuX29wYWNpdHkpID8gdGhpcy5fb3BhY2l0eSA6IDE7XG4gIH1cbiAgZ2V0IHJnYigpOiBudW1iZXJbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3JnYkFycmF5O1xuICB9XG5cbiAgZ2V0IHIoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fcmdiQXJyYXlbMF07XG4gIH1cblxuICBnZXQgZygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9yZ2JBcnJheVsxXTtcbiAgfVxuXG4gIGdldCBiKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3JnYkFycmF5WzJdO1xuICB9XG5cbiAgcmdiYShvcGFjaXR5PzogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBvcGFjaXR5ID0gaXNOb3ROaWwob3BhY2l0eSkgPyBvcGFjaXR5IDogdGhpcy5fb3BhY2l0eTtcbiAgICBpZiAoaXNOaWwob3BhY2l0eSkgfHwgb3BhY2l0eSA8IDAgfHwgb3BhY2l0eSA+IDEpIHtcbiAgICAgIHJldHVybiAncmdiKCcgKyB0aGlzLl9yZ2JBcnJheS5qb2luKCcsJykgKyAnKSc7XG4gICAgfVxuICAgIHJldHVybiAncmdiYSgnICsgdGhpcy5fcmdiQXJyYXkuam9pbignLCcpICsgJywnICsgb3BhY2l0eSArICcpJztcbiAgfVxuXG59XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBDb2xvckdyYWRpZW50T3B0aW9ucyB7XG4gIHN0YXJ0Q29sb3I/OiBudW1iZXJbXTtcbiAgbWFpbkNvbG9yPzogbnVtYmVyW107XG4gIG1haW5Db2xvckluZGV4PzogbnVtYmVyO1xuICBlbmRDb2xvcj86IG51bWJlcltdO1xufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQ29sb3JTY2FsZU9wdGlvbnMgZXh0ZW5kcyBDb2xvckdyYWRpZW50T3B0aW9ucyB7XG4gIG9wYWNpdHk/OiBudW1iZXI7XG4gIG1pbj86IG51bWJlcjtcbiAgbWF4PzogbnVtYmVyO1xuICB1cHBlck1heD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBDb2xvclNjYWxlTGVnZW5kSXRlbSB7XG4gIGxhYmVsOiBzdHJpbmd8bnVtYmVyW107XG4gIGNvbG9yOiBDb2xvcjtcbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIENvbG9yU2NhbGVMZWdlbmQge1xuICBpdGVtczogQ29sb3JTY2FsZUxlZ2VuZEl0ZW1bXTtcbn1cblxuLyoqXG4gKiBIZWxwZXIgY2xhc3MgZm9yIGNvbG9ycyBzY2FsZVxuICovXG4vLyBAZHluYW1pY1xuZXhwb3J0IGNsYXNzIENvbG9yU2NhbGUge1xuXG4gIHN0YXRpYyBjdXN0b20gPSAoY291bnQ6IG51bWJlciwgb3B0aW9ucz86IENvbG9yU2NhbGVPcHRpb25zKSA9PiB7XG4gICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gICAgcmV0dXJuIG5ldyBDb2xvclNjYWxlKFxuICAgICAgbGluZWFyQ29sb3JHcmFkaWVudFdpdGhJbnRlcm1lZGlhdGUoY291bnQsIHtcbiAgICAgICAgc3RhcnRDb2xvcjogb3B0aW9ucy5zdGFydENvbG9yIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgbWFpbkNvbG9yOiBvcHRpb25zLm1haW5Db2xvciB8fCB1bmRlZmluZWQsXG4gICAgICAgIG1haW5Db2xvckluZGV4OiBpc05vdE5pbChvcHRpb25zLm1haW5Db2xvckluZGV4KSA/IG9wdGlvbnMubWFpbkNvbG9ySW5kZXggOiB1bmRlZmluZWQsXG4gICAgICAgIGVuZENvbG9yOiBvcHRpb25zLmVuZENvbG9yIHx8IHVuZGVmaW5lZFxuICAgICAgfSksXG4gICAgICBvcHRpb25zXG4gICAgKTtcbiAgfTtcblxuICBzdGF0aWMgZGVmYXVsdCgpIHtcbiAgICByZXR1cm4gQ29sb3JTY2FsZS5jdXN0b20oMjUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGFycmF5IHdpdGggdGhlIGdpdmVuIGNvbG9yXG4gICAqKi9cbiAgc3RhdGljIGZpeChsZW5ndGg/OiBudW1iZXIsIGNvbG9yTmFtZT86IENvbG9yTmFtZSk6IGFueVtdIHtcbiAgICByZXR1cm4gQXJyYXkuYXBwbHkobnVsbCwgQXJyYXkobGVuZ3RoIHx8IDI1KSlcbiAgICAgIC5tYXAoU3RyaW5nLnByb3RvdHlwZS52YWx1ZU9mLCBDb2xvci5nZXQoY29sb3JOYW1lIHx8ICdwcmltYXJ5JykucmdiYSgwLjUpKTtcbiAgfVxuXG4gIHByaXZhdGUgX21pbjogbnVtYmVyO1xuICBwcml2YXRlIF9tYXg6IG51bWJlcjtcbiAgcHJpdmF0ZSBfcmFuZ2VTaXplOiBudW1iZXI7XG4gIHByaXZhdGUgX2xlZ2VuZEl0ZW1zOiBDb2xvclNjYWxlTGVnZW5kSXRlbVtdO1xuXG4gIGdldCBtaW4oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbWluO1xuICB9XG4gIGdldCBtYXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbWF4O1xuICB9XG5cbiAgY29uc3RydWN0b3IoY29sb3JBcnJheTogbnVtYmVyW11bXSwgb3B0aW9ucz86IENvbG9yU2NhbGVPcHRpb25zKSB7XG4gICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gICAgLy8gcmVzZXJ2ZWQgbGFzdCBjb2xvcnMgZm9yIHZhbHVlID4gbWF4XG4gICAgY29uc3QgbmJJbnRlcnZhbEJlZm9yZVVwcGVyID0gIW9wdGlvbnMudXBwZXJNYXggPyBjb2xvckFycmF5Lmxlbmd0aCA6IChjb2xvckFycmF5Lmxlbmd0aCAtIDEpO1xuICAgIHRoaXMuX21pbiA9IG9wdGlvbnMubWluIHx8IDA7XG4gICAgdGhpcy5fbWF4ID0gb3B0aW9ucy5tYXggfHwgbmJJbnRlcnZhbEJlZm9yZVVwcGVyO1xuICAgIHRoaXMuX3JhbmdlU2l6ZSA9IE1hdGgucm91bmQoKHRoaXMuX21heCAtIHRoaXMuX21pbikgLyBuYkludGVydmFsQmVmb3JlVXBwZXIpO1xuICAgIHRoaXMuX2xlZ2VuZEl0ZW1zID0gdGhpcy5jb21wdXRlTGVnZW5kSXRlbXMoY29sb3JBcnJheSk7XG4gIH1cblxuICBnZXQgbGVnZW5kKCk6IENvbG9yU2NhbGVMZWdlbmQge1xuICAgIHJldHVybiB7XG4gICAgICBpdGVtczogdGhpcy5fbGVnZW5kSXRlbXNcbiAgICB9O1xuICB9XG5cbiAgZ2V0TGVnZW5kRm9yVmFsdWUodmFsdWU6IG51bWJlcik6IENvbG9yU2NhbGVMZWdlbmRJdGVtIHtcbiAgICBjb25zdCBpbmRleCA9IE1hdGguZmxvb3IodmFsdWUgKiAodGhpcy5fbGVnZW5kSXRlbXMubGVuZ3RoIC0gMSkgLyB0aGlzLl9tYXgpO1xuICAgIHJldHVybiB0aGlzLl9sZWdlbmRJdGVtc1tpbmRleF07XG4gIH1cblxuICBnZXRMZWdlbmRBdEluZGV4KGluZGV4OiBudW1iZXIpOiBDb2xvclNjYWxlTGVnZW5kSXRlbSB7XG4gICAgcmV0dXJuIHRoaXMuX2xlZ2VuZEl0ZW1zW2luZGV4XTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjb21wdXRlTGVnZW5kSXRlbXMoY29sb3JBcnJheTogbnVtYmVyW11bXSk6IENvbG9yU2NhbGVMZWdlbmRJdGVtW10ge1xuICAgIHJldHVybiBjb2xvckFycmF5Lm1hcCgoY29sb3IsIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCBzdGFydCA9IGluZGV4ICogdGhpcy5fcmFuZ2VTaXplO1xuICAgICAgY29uc3QgZW5kID0gc3RhcnQgKyB0aGlzLl9yYW5nZVNpemU7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb2xvcjogbmV3IENvbG9yKGNvbG9yKSxcbiAgICAgICAgbGFiZWw6IChlbmQgPCB0aGlzLl9tYXgpID8gYCR7c3RhcnQudG9Mb2NhbGVTdHJpbmcoKX0gLSAke2VuZC50b0xvY2FsZVN0cmluZygpfWAgOiBgID49ICR7c3RhcnR9YFxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxufVxuXG5cbi8vIEZpbGwgY29sb3JzTWFwXG5PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhyZ2JBcnJheU1hcClcbiAgLmZvckVhY2goKGtleSkgPT4ge1xuICAgIGNvbG9yc01hcFtrZXldID0gbmV3IENvbG9yKHJnYkFycmF5TWFwW2tleV0sIDEsIGtleSk7XG4gIH0pO1xuXG5cbi8qKlxuICogSW50ZXJuYWwgZnVuY3Rpb24sIHRoYXQgY3JlYXRlIGEgY29sb3JzIHNjYWxlLCB1c2luZyBpdGVyYXRpb25cbiAqXG4gKiBAcGFyYW0gY291bnRcbiAqIEBwYXJhbSBvcGFjaXR5XG4gKiBAcGFyYW0gc3RhcnRDb2xvclxuICogQHBhcmFtIHN0YXJ0U3RhdGVcbiAqIEByZXR1cm5zXG4gKi9cbmZ1bmN0aW9uIGxpbmVhckNvbG9yR3JhZGllbnRXaXRoSW50ZXJtZWRpYXRlKGNvdW50OiBudW1iZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zPzogQ29sb3JHcmFkaWVudE9wdGlvbnMpOiBudW1iZXJbXVtdIHtcbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG5cbiAgLy8gRnJvbSBbMCwxXVxuICBvcHRpb25zLnN0YXJ0Q29sb3IgPSBvcHRpb25zLnN0YXJ0Q29sb3IgfHwgWzI1NSwgMjU1LCAxOTBdOyAvLyBkZWZhdWx0IHN0YXJ0ID0gY3JlbWVcbiAgb3B0aW9ucy5tYWluQ29sb3JJbmRleCA9IG9wdGlvbnMubWFpbkNvbG9ySW5kZXggJiYgb3B0aW9ucy5tYWluQ29sb3JJbmRleCA8IGNvdW50IC0gMSA/IG9wdGlvbnMubWFpbkNvbG9ySW5kZXggOiBjb3VudCAtIDE7XG4gIG9wdGlvbnMuZW5kQ29sb3IgPSBvcHRpb25zLmVuZENvbG9yIHx8IFsyNTUsIDAsIDBdOyAvLyBkZWZhdWx0IG1haW4gPSByZWRcblxuICBpZiAoIW9wdGlvbnMubWFpbkNvbG9yKSB7XG4gICAgcmV0dXJuIGxpbmVhckNvbG9yR3JhZGllbnQoY291bnQsIHtcbiAgICAgIHN0YXJ0Q29sb3I6IG9wdGlvbnMuc3RhcnRDb2xvcixcbiAgICAgIGVuZENvbG9yOiBvcHRpb25zLmVuZENvbG9yXG4gICAgfSk7XG4gIH1cblxuICBlbHNlIHtcbiAgICAvLyBTdGVwIDE6IHN0YXJ0Q29sb3IgLT4gbWFpbkNvbG9yXG4gICAgY29uc3QgcmVzdWx0ID0gbGluZWFyQ29sb3JHcmFkaWVudChvcHRpb25zLm1haW5Db2xvckluZGV4ICsgMSwge1xuICAgICAgc3RhcnRDb2xvcjogb3B0aW9ucy5zdGFydENvbG9yLFxuICAgICAgZW5kQ29sb3I6IG9wdGlvbnMubWFpbkNvbG9yXG4gICAgfSk7XG5cbiAgICAvLyBTdGVwIDI6IG1haW5Db2xvciAtPiBlbmRDb2xvclxuICAgIGlmIChvcHRpb25zLm1haW5Db2xvckluZGV4IDwgY291bnQgLSAxKSB7XG4gICAgICByZXR1cm4gcmVzdWx0LmNvbmNhdChcbiAgICAgICAgbGluZWFyQ29sb3JHcmFkaWVudChjb3VudCAtIG9wdGlvbnMubWFpbkNvbG9ySW5kZXgsIHtcbiAgICAgICAgICBzdGFydENvbG9yOiBvcHRpb25zLm1haW5Db2xvcixcbiAgICAgICAgICBlbmRDb2xvcjogb3B0aW9ucy5lbmRDb2xvclxuICAgICAgICB9KSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gbGluZWFyQ29sb3JHcmFkaWVudChjb3VudDogbnVtYmVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zPzogQ29sb3JHcmFkaWVudE9wdGlvbnMpOiBhbnlbXSB7XG5cbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG5cbiAgLy8gRnJvbSBbMCwxXVxuICBvcHRpb25zLnN0YXJ0Q29sb3IgPSBvcHRpb25zLnN0YXJ0Q29sb3IgfHwgWzI1NSwgMjU1LCAyNTVdOyAvLyBkZWZhdWx0IHN0YXJ0ID0gd2hpdGVcbiAgb3B0aW9ucy5lbmRDb2xvciA9IG9wdGlvbnMuZW5kQ29sb3IgfHwgWzI1NSwgMCwgMF07IC8vIGRlZmF1bHQgZW5kID0gcmVkXG5cbiAgY29uc3QgcmVzdWx0OiBudW1iZXJbXVtdID0gW107XG4gIGNvbnN0IGNvbG9yID0gb3B0aW9ucy5zdGFydENvbG9yLnNsaWNlKCk7IC8vIGNvcHkgdGhlIHN0YXJ0IGNvbG9yXG4gIGNvbnN0IGRlbHRhID0gW1xuICAgIE1hdGgucm91bmQoKG9wdGlvbnMuZW5kQ29sb3JbMF0gLSBvcHRpb25zLnN0YXJ0Q29sb3JbMF0pIC8gY291bnQpLFxuICAgIE1hdGgucm91bmQoKG9wdGlvbnMuZW5kQ29sb3JbMV0gLSBvcHRpb25zLnN0YXJ0Q29sb3JbMV0pIC8gY291bnQpLFxuICAgIE1hdGgucm91bmQoKG9wdGlvbnMuZW5kQ29sb3JbMl0gLSBvcHRpb25zLnN0YXJ0Q29sb3JbMl0pIC8gY291bnQpXG4gIF07XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudCAtIDE7IGkrKykge1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgMzsgaisrKSB7XG4gICAgICBjb2xvcltqXSArPSBkZWx0YVtqXTtcbiAgICB9XG4gICAgcmVzdWx0LnB1c2goY29sb3Iuc2xpY2UoKSk7XG4gIH1cblxuICAvLyBGb3JjZSBsYXN0IGNvbG9yID0gZW5kIGNvbG9yXG4gIHJlc3VsdC5wdXNoKG9wdGlvbnMuZW5kQ29sb3Iuc2xpY2UoKSk7XG5cbiAgLy8gT3V0cHV0IGFzIGFycmF5XG4gIHJldHVybiByZXN1bHQ7XG59XG4iXX0=
|
|
@@ -13272,7 +13272,8 @@ const MINIFY_ENTITY_FOR_LOCAL_STORAGE = Object.freeze({
|
|
|
13272
13272
|
minify: true,
|
|
13273
13273
|
keepTypename: true,
|
|
13274
13274
|
keepEntityName: true,
|
|
13275
|
-
keepLocalId: true
|
|
13275
|
+
keepLocalId: true,
|
|
13276
|
+
keepIcon: true
|
|
13276
13277
|
});
|
|
13277
13278
|
/**
|
|
13278
13279
|
* Used to send an entity to a pod
|
|
@@ -13281,7 +13282,8 @@ const MINIFY_ENTITY_FOR_POD = Object.freeze({
|
|
|
13281
13282
|
minify: true,
|
|
13282
13283
|
keepTypename: false,
|
|
13283
13284
|
keepEntityName: false,
|
|
13284
|
-
keepLocalId: false
|
|
13285
|
+
keepLocalId: false,
|
|
13286
|
+
keepIcon: false
|
|
13285
13287
|
});
|
|
13286
13288
|
// @dynamic
|
|
13287
13289
|
let ReferentialRef = ReferentialRef_1 = class ReferentialRef extends Entity {
|
|
@@ -13299,6 +13301,8 @@ let ReferentialRef = ReferentialRef_1 = class ReferentialRef extends Entity {
|
|
|
13299
13301
|
const target = super.asObject(opts);
|
|
13300
13302
|
if (opts && opts.keepEntityName === false)
|
|
13301
13303
|
delete target.entityName;
|
|
13304
|
+
if (opts && opts.keepIcon === false)
|
|
13305
|
+
delete target.icon;
|
|
13302
13306
|
return target;
|
|
13303
13307
|
}
|
|
13304
13308
|
fromObject(source, opts) {
|
|
@@ -13309,6 +13313,7 @@ let ReferentialRef = ReferentialRef_1 = class ReferentialRef extends Entity {
|
|
|
13309
13313
|
this.description = source.description;
|
|
13310
13314
|
this.statusId = source.statusId;
|
|
13311
13315
|
this.levelId = source.levelId;
|
|
13316
|
+
this.icon = source.icon;
|
|
13312
13317
|
}
|
|
13313
13318
|
};
|
|
13314
13319
|
ReferentialRef = ReferentialRef_1 = __decorate([
|
|
@@ -18883,10 +18888,6 @@ class Color {
|
|
|
18883
18888
|
return null;
|
|
18884
18889
|
return new Color([+parts[0], +parts[1], +parts[2]], parts.length === 4 && +parts[3] || 1, 'custom');
|
|
18885
18890
|
}
|
|
18886
|
-
static parseHexa(hexColor) {
|
|
18887
|
-
const split = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hexColor);
|
|
18888
|
-
return new Color(split ? split.slice(1, 4).map(i => parseInt(i, 16)) : [0, 0, 0]);
|
|
18889
|
-
}
|
|
18890
18891
|
get name() {
|
|
18891
18892
|
return this._name;
|
|
18892
18893
|
}
|
|
@@ -18922,14 +18923,13 @@ Color.transparent = function () {
|
|
|
18922
18923
|
// @dynamic
|
|
18923
18924
|
class ColorScale {
|
|
18924
18925
|
constructor(colorArray, options) {
|
|
18925
|
-
this.colorArray = colorArray;
|
|
18926
18926
|
options = options || {};
|
|
18927
18927
|
// reserved last colors for value > max
|
|
18928
18928
|
const nbIntervalBeforeUpper = !options.upperMax ? colorArray.length : (colorArray.length - 1);
|
|
18929
18929
|
this._min = options.min || 0;
|
|
18930
18930
|
this._max = options.max || nbIntervalBeforeUpper;
|
|
18931
18931
|
this._rangeSize = Math.round((this._max - this._min) / nbIntervalBeforeUpper);
|
|
18932
|
-
this._legendItems = this.
|
|
18932
|
+
this._legendItems = this.computeLegendItems(colorArray);
|
|
18933
18933
|
}
|
|
18934
18934
|
static default() {
|
|
18935
18935
|
return ColorScale.custom(25);
|
|
@@ -18952,16 +18952,19 @@ class ColorScale {
|
|
|
18952
18952
|
items: this._legendItems
|
|
18953
18953
|
};
|
|
18954
18954
|
}
|
|
18955
|
-
|
|
18956
|
-
const index = Math.floor(value * (this.
|
|
18957
|
-
return this.
|
|
18955
|
+
getLegendForValue(value) {
|
|
18956
|
+
const index = Math.floor(value * (this._legendItems.length - 1) / this._max);
|
|
18957
|
+
return this._legendItems[index];
|
|
18958
|
+
}
|
|
18959
|
+
getLegendAtIndex(index) {
|
|
18960
|
+
return this._legendItems[index];
|
|
18958
18961
|
}
|
|
18959
|
-
|
|
18960
|
-
return
|
|
18962
|
+
computeLegendItems(colorArray) {
|
|
18963
|
+
return colorArray.map((color, index) => {
|
|
18961
18964
|
const start = index * this._rangeSize;
|
|
18962
18965
|
const end = start + this._rangeSize;
|
|
18963
18966
|
return {
|
|
18964
|
-
color,
|
|
18967
|
+
color: new Color(color),
|
|
18965
18968
|
label: (end < this._max) ? `${start.toLocaleString()} - ${end.toLocaleString()}` : ` >= ${start}`
|
|
18966
18969
|
};
|
|
18967
18970
|
});
|
|
@@ -18970,12 +18973,10 @@ class ColorScale {
|
|
|
18970
18973
|
ColorScale.custom = (count, options) => {
|
|
18971
18974
|
options = options || {};
|
|
18972
18975
|
return new ColorScale(linearColorGradientWithIntermediate(count, {
|
|
18973
|
-
opacity: options.opacity,
|
|
18974
18976
|
startColor: options.startColor || undefined,
|
|
18975
18977
|
mainColor: options.mainColor || undefined,
|
|
18976
18978
|
mainColorIndex: isNotNil(options.mainColorIndex) ? options.mainColorIndex : undefined,
|
|
18977
|
-
endColor: options.endColor || undefined
|
|
18978
|
-
format: options.format
|
|
18979
|
+
endColor: options.endColor || undefined
|
|
18979
18980
|
}), options);
|
|
18980
18981
|
};
|
|
18981
18982
|
// Fill colorsMap
|
|
@@ -18983,29 +18984,6 @@ Object.getOwnPropertyNames(rgbArrayMap)
|
|
|
18983
18984
|
.forEach((key) => {
|
|
18984
18985
|
colorsMap[key] = new Color(rgbArrayMap[key], 1, key);
|
|
18985
18986
|
});
|
|
18986
|
-
// Internal function
|
|
18987
|
-
function state2side(state) {
|
|
18988
|
-
switch (state) {
|
|
18989
|
-
case 0:
|
|
18990
|
-
return 0;
|
|
18991
|
-
case 1:
|
|
18992
|
-
return -1;
|
|
18993
|
-
case 2:
|
|
18994
|
-
return 0;
|
|
18995
|
-
case 3:
|
|
18996
|
-
return 1;
|
|
18997
|
-
}
|
|
18998
|
-
}
|
|
18999
|
-
const ɵ0$b = (defaultStateSize) => [
|
|
19000
|
-
Math.round((rgbArrayMap.red[0] - 50) / defaultStateSize),
|
|
19001
|
-
Math.round((255 - rgbArrayMap.red[1]) / defaultStateSize),
|
|
19002
|
-
Math.round((255 - rgbArrayMap.red[2]) / defaultStateSize)
|
|
19003
|
-
];
|
|
19004
|
-
const SCALE_OPTIONS_DEFAULT = {
|
|
19005
|
-
startColor: rgbArrayMap.red,
|
|
19006
|
-
startStates: [0, 2, 3],
|
|
19007
|
-
startStepsFn: ɵ0$b
|
|
19008
|
-
};
|
|
19009
18987
|
/**
|
|
19010
18988
|
* Internal function, that create a colors scale, using iteration
|
|
19011
18989
|
*
|
|
@@ -19018,34 +18996,26 @@ const SCALE_OPTIONS_DEFAULT = {
|
|
|
19018
18996
|
function linearColorGradientWithIntermediate(count, options) {
|
|
19019
18997
|
options = options || {};
|
|
19020
18998
|
// From [0,1]
|
|
19021
|
-
options.opacity = (options.opacity > 0 && options.opacity < 1) ? options.opacity : 1;
|
|
19022
18999
|
options.startColor = options.startColor || [255, 255, 190]; // default start = creme
|
|
19023
19000
|
options.mainColorIndex = options.mainColorIndex && options.mainColorIndex < count - 1 ? options.mainColorIndex : count - 1;
|
|
19024
19001
|
options.endColor = options.endColor || [255, 0, 0]; // default main = red
|
|
19025
|
-
options.format = options.format || 'rgb';
|
|
19026
19002
|
if (!options.mainColor) {
|
|
19027
19003
|
return linearColorGradient(count, {
|
|
19028
|
-
opacity: options.opacity,
|
|
19029
19004
|
startColor: options.startColor,
|
|
19030
|
-
endColor: options.endColor
|
|
19031
|
-
format: options.format
|
|
19005
|
+
endColor: options.endColor
|
|
19032
19006
|
});
|
|
19033
19007
|
}
|
|
19034
19008
|
else {
|
|
19035
19009
|
// Step 1: startColor -> mainColor
|
|
19036
19010
|
const result = linearColorGradient(options.mainColorIndex + 1, {
|
|
19037
|
-
opacity: options.opacity,
|
|
19038
19011
|
startColor: options.startColor,
|
|
19039
|
-
endColor: options.mainColor
|
|
19040
|
-
format: options.format
|
|
19012
|
+
endColor: options.mainColor
|
|
19041
19013
|
});
|
|
19042
19014
|
// Step 2: mainColor -> endColor
|
|
19043
19015
|
if (options.mainColorIndex < count - 1) {
|
|
19044
19016
|
return result.concat(linearColorGradient(count - options.mainColorIndex, {
|
|
19045
|
-
opacity: options.opacity,
|
|
19046
19017
|
startColor: options.mainColor,
|
|
19047
|
-
endColor: options.endColor
|
|
19048
|
-
format: options.format
|
|
19018
|
+
endColor: options.endColor
|
|
19049
19019
|
}));
|
|
19050
19020
|
}
|
|
19051
19021
|
else {
|
|
@@ -19056,10 +19026,8 @@ function linearColorGradientWithIntermediate(count, options) {
|
|
|
19056
19026
|
function linearColorGradient(count, options) {
|
|
19057
19027
|
options = options || {};
|
|
19058
19028
|
// From [0,1]
|
|
19059
|
-
options.opacity = (options.opacity > 0 && options.opacity < 1) ? options.opacity : 1;
|
|
19060
19029
|
options.startColor = options.startColor || [255, 255, 255]; // default start = white
|
|
19061
19030
|
options.endColor = options.endColor || [255, 0, 0]; // default end = red
|
|
19062
|
-
options.format = options.format || 'rgb';
|
|
19063
19031
|
const result = [];
|
|
19064
19032
|
const color = options.startColor.slice(); // copy the start color
|
|
19065
19033
|
const delta = [
|
|
@@ -19076,23 +19044,6 @@ function linearColorGradient(count, options) {
|
|
|
19076
19044
|
// Force last color = end color
|
|
19077
19045
|
result.push(options.endColor.slice());
|
|
19078
19046
|
// Output as array
|
|
19079
|
-
if (options.format === 'array') {
|
|
19080
|
-
return result;
|
|
19081
|
-
}
|
|
19082
|
-
// Output as rgb(r,g,b) string
|
|
19083
|
-
if (options.format === 'rgb') {
|
|
19084
|
-
if (options.opacity >= 1) {
|
|
19085
|
-
return result.map(color => 'rgb(' + color.join(',') + ')');
|
|
19086
|
-
}
|
|
19087
|
-
else {
|
|
19088
|
-
return result.map(color => 'rgba(' + color.concat(options.opacity).join(',') + ')');
|
|
19089
|
-
}
|
|
19090
|
-
}
|
|
19091
|
-
// Output as hex
|
|
19092
|
-
// TODO
|
|
19093
|
-
// return result.map(color => {
|
|
19094
|
-
// return "rgb(" + color.join(',') + ")";
|
|
19095
|
-
// });
|
|
19096
19047
|
return result;
|
|
19097
19048
|
}
|
|
19098
19049
|
|
|
@@ -21957,7 +21908,7 @@ class AppIconComponent {
|
|
|
21957
21908
|
this.icon = value.icon;
|
|
21958
21909
|
this.matIcon = value.matIcon;
|
|
21959
21910
|
this.matSvgIcon = value.matSvgIcon;
|
|
21960
|
-
this.color = value.color;
|
|
21911
|
+
this.color = value.color || this.color; // Keep existing, if not defined in the reference
|
|
21961
21912
|
}
|
|
21962
21913
|
;
|
|
21963
21914
|
}
|
|
@@ -28362,7 +28313,7 @@ AdminModule.decorators = [
|
|
|
28362
28313
|
];
|
|
28363
28314
|
AdminModule.ctorParameters = () => [];
|
|
28364
28315
|
|
|
28365
|
-
const ɵ0$
|
|
28316
|
+
const ɵ0$b = {
|
|
28366
28317
|
profile: 'ADMIN'
|
|
28367
28318
|
};
|
|
28368
28319
|
const routes = [
|
|
@@ -28372,7 +28323,7 @@ const routes = [
|
|
|
28372
28323
|
component: UsersPage,
|
|
28373
28324
|
canActivate: [AuthGuardService],
|
|
28374
28325
|
canDeactivate: [ComponentDirtyGuard],
|
|
28375
|
-
data: ɵ0$
|
|
28326
|
+
data: ɵ0$b
|
|
28376
28327
|
}
|
|
28377
28328
|
];
|
|
28378
28329
|
class AdminRoutingModule {
|