ngx-rs-ant 2.1.8 → 2.2.1
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/data-grid/cell-component-template/cell-component-template.component.d.ts +3 -1
- package/esm2020/data-grid/cell-component-template/cell-component-template.component.mjs +10 -3
- package/esm2020/data-grid/data-grid.component.mjs +7 -5
- package/esm2020/data-grid/data-grid.factory.mjs +4 -1
- package/esm2020/types/component/cell-component-base.mjs +1 -1
- package/esm2020/types/config/cell-config-base.mjs +1 -1
- package/esm2020/util/utils.mjs +32 -1
- package/fesm2015/ngx-rs-ant.mjs +50 -7
- package/fesm2015/ngx-rs-ant.mjs.map +1 -1
- package/fesm2020/ngx-rs-ant.mjs +50 -7
- package/fesm2020/ngx-rs-ant.mjs.map +1 -1
- package/package.json +1 -1
- package/types/component/cell-component-base.d.ts +12 -0
- package/types/config/cell-config-base.d.ts +8 -0
- package/util/utils.d.ts +9 -0
package/esm2020/util/utils.mjs
CHANGED
|
@@ -292,4 +292,35 @@ function evaluateCondition(condition, model) {
|
|
|
292
292
|
return false;
|
|
293
293
|
}
|
|
294
294
|
}
|
|
295
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy91dGlsL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLHNCQUFzQixDQUFDO0FBRTFDLE9BQU8sRUFBQyxjQUFjLEVBQUUsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sZ0JBQWdCLE1BQU0saUNBQWlDLENBQUM7QUFFL0QsTUFBTSxVQUFVLFlBQVksQ0FBQyxPQUFlO0lBQzFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ3JDLENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUFDLE9BQWU7SUFDNUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDcEMsQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsT0FBZTtJQUM1QyxPQUFPLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztBQUNwQyxDQUFDO0FBRUQsU0FBUyxPQUFPLENBQUMsT0FBZSxFQUFFLElBQVksRUFBRSxJQUFzQztJQUNwRixNQUFNLENBQUM7UUFDTCxXQUFXLEVBQUUsSUFBSTtRQUNqQixPQUFPO1FBQ1AsSUFBSSxFQUFFLElBQUk7UUFDVixZQUFZLEVBQUUsS0FBSztRQUNuQixRQUFRLEVBQUUsR0FBRztRQUNiLFFBQVEsRUFBRSxHQUFHO1FBQ2IsV0FBVyxFQUFFLEVBQUMsS0FBSyxFQUFFLHNCQUFzQixFQUFDO0tBQzdDLEVBQUU7UUFDRCxTQUFTLEVBQUUsU0FBUztRQUNwQixRQUFRLEVBQUUsY0FBYztLQUN6QixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUFDLE1BQWMsRUFBRSxNQUFjO0lBQzdELE9BQU8sTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN0QyxDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxJQUFZO0lBQ3pDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNFLFFBQVEsSUFBSSxFQUFFO1FBQ1osS0FBSyxLQUFLLENBQUM7UUFDWCxLQUFLLE1BQU07WUFDVCxPQUFPLE1BQU0sQ0FBQztRQUNoQixLQUFLLEtBQUssQ0FBQztRQUNYLEtBQUssTUFBTSxDQUFDO1FBQ1osS0FBSyxLQUFLO1lBQ1IsT0FBTyxPQUFPLENBQUM7UUFDakIsS0FBSyxLQUFLLENBQUM7UUFDWCxLQUFLLE1BQU07WUFDVCxPQUFPLEtBQUssQ0FBQztRQUNmLEtBQUssS0FBSztZQUNSLE9BQU8sS0FBSyxDQUFDO1FBQ2YsS0FBSyxLQUFLLENBQUM7UUFDWCxLQUFLLEtBQUssQ0FBQztRQUNYLEtBQUssTUFBTSxDQUFDO1FBQ1osS0FBSyxJQUFJO1lBQ1AsT0FBTyxNQUFNLENBQUM7UUFDaEIsS0FBSyxLQUFLLENBQUM7UUFDWCxLQUFLLEtBQUssQ0FBQztRQUNYLEtBQUssTUFBTSxDQUFDO1FBQ1osS0FBSyxLQUFLLENBQUM7UUFDWCxLQUFLLEtBQUs7WUFDUixPQUFPLE9BQU8sQ0FBQztRQUNqQixLQUFLLEtBQUssQ0FBQztRQUNYLEtBQUssS0FBSyxDQUFDO1FBQ1gsS0FBSyxJQUFJLENBQUM7UUFDVixLQUFLLEtBQUs7WUFDUixPQUFPLEtBQUssQ0FBQztRQUNmO1lBQ0UsT0FBTyxTQUFTLENBQUM7S0FDcEI7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLG1CQUFtQjtJQUNqQyxPQUFPLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDbkosQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxJQUFZO0lBQzNDLE1BQU0sTUFBTSxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdkMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDaEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsT0FBTyxDQUFDLEdBQUcsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUU7UUFDaEMsSUFBSSxJQUFJLElBQUksQ0FBQztRQUNiLENBQUMsRUFBRSxDQUFDO0tBQ0w7SUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hELENBQUM7QUFFRCxNQUFNLFVBQVUseUJBQXlCLENBQUMsV0FBbUI7SUFDM0QsTUFBTSxZQUFZLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDL0YsSUFBSSxZQUFZLEVBQUU7UUFDaEIsSUFBSSxHQUFHLEdBQUcsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzlCLEdBQUcsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hCLEdBQUcsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMvQixPQUFPLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQ2hDO1NBQU07UUFDTCxPQUFPLElBQUksQ0FBQztLQUNiO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsSUFBVSxFQUFFLFFBQWdCLEVBQUUsUUFBbUI7SUFDN0UsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkQsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN0QyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QixDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQztJQUN4QyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztJQUM1QixDQUFDLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ3pELENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNWLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxJQUFJLFFBQVEsRUFBRTtZQUNaLFFBQVEsRUFBRSxDQUFDO1NBQ1o7UUFDRCxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDYixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsUUFBUSxDQUFDLFNBQStCO0lBQ3RELE9BQU8sSUFBSSxPQUFPLENBQVUsT0FBTyxDQUFDLEVBQUU7UUFDcEMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNkLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNmO1FBQ0QsTUFBTSxjQUFjLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNyRCxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRTtZQUMzQixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDaEI7UUFDRCxJQUFJLGNBQWMsQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ3ZDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUU7Z0JBQzVDLElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRTtvQkFDbEIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNmO3FCQUFNO29CQUNMLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDaEI7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDZjtJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsd0JBQTZCO0lBQzFELElBQUksQ0FBQyx3QkFBd0IsRUFBRTtRQUM3QixPQUFPLGNBQWMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztLQUNqQztJQUNELE9BQU8sYUFBYSxDQUFDLHdCQUF3QixDQUFDLFFBQVEsRUFBRSx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUE7QUFDekcsQ0FBQztBQUVELE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxJQUFZLEVBQUUsbUJBQTRCO0lBQy9FLE1BQU0sZUFBZSxHQUFHLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5RCxJQUFJLENBQUMsZUFBZSxFQUFFO1FBQ3BCLE9BQU8sY0FBYyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0tBQ2pDO0lBQ0QsT0FBTyxhQUFhLENBQUMsZUFBZSxFQUFFLG1CQUFtQixDQUFDLENBQUM7QUFDN0QsQ0FBQztBQUVELFNBQVMsYUFBYSxDQUFDLGVBQW9CLEVBQUUsbUJBQTRCO0lBQ3ZFLElBQUksVUFBVSxDQUFDO0lBQ2YsTUFBTSxlQUFlLEdBQUcsVUFBVSxDQUFDO0lBQ25DLE1BQU0sY0FBYyxHQUFHLENBQUMsSUFBUyxFQUFFLEVBQUU7UUFDbkMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUNsQixPQUFPLElBQUksRUFBRTtZQUNYLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLEVBQUU7Z0JBQzVDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7aUJBQU07Z0JBQ0wsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7Z0JBQzFCLElBQUksSUFBSSxLQUFLLG1CQUFtQixFQUFFO29CQUNoQyxPQUFPLFVBQVUsQ0FBQztpQkFDbkI7YUFDRjtTQUNGO0lBQ0gsQ0FBQyxDQUFDO0lBQ0YsT0FBTyxJQUFJLE9BQU8sQ0FBVSxPQUFPLENBQUMsRUFBRTtRQUNwQyxNQUFNLGNBQWMsR0FBRyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUU7WUFDM0IsTUFBTSxhQUFhLEdBQUcsQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFTLENBQUEsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbkYsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDLGNBQWMsQ0FBQztnQkFDM0MsS0FBSyxFQUFFLFFBQVE7Z0JBQ2YsTUFBTSxFQUFFLFFBQVE7YUFDakIsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2hCO1FBQ0QsSUFBSSxjQUFjLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUN2QyxjQUFjLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFO2dCQUM1QyxJQUFJLE1BQU0sQ0FBQyxPQUFPLEVBQUU7b0JBQ2xCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDZjtxQkFBTTtvQkFDTCxNQUFNLGFBQWEsR0FBRyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQVMsQ0FBQSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDM0UsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDLGNBQWMsQ0FBQzt3QkFDM0MsS0FBSyxFQUFFLFFBQVE7d0JBQ2YsTUFBTSxFQUFFLFFBQVE7cUJBQ2pCLENBQUMsQ0FBQztvQkFDSCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQ2hCO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjthQUFNO1lBQ0wsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2Y7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUFDLFVBQWtCLEVBQUUsS0FBYyxFQUFFLFlBQWtCLEVBQUUsTUFBWTtJQUNqRyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLFVBQVUsR0FBRyxTQUFTLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztVQUNuRixnQkFBZ0IsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUMsQ0FBQztVQUN6RSxVQUFVLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JFLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFJLEdBQVE7SUFDbkMsaUJBQWlCO0lBQ2pCLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLEdBQUcsS0FBSyxJQUFJLEVBQUU7UUFDM0MsT0FBTyxHQUFHLENBQUM7S0FDWjtJQUNELFlBQVk7SUFDWixNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDO0lBQ3BDLFVBQVU7SUFDVixJQUFJLE1BQVcsQ0FBQztJQUNoQixJQUFJLFdBQVcsS0FBSyxLQUFLLEVBQUU7UUFDekIsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNaLGFBQWE7UUFDYixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNuQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQy9CO0tBQ0Y7U0FBTTtRQUNMLE1BQU0sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQzNCLFdBQVc7UUFDWCxLQUFLLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBRTtZQUNyQixJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQzNCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDbkM7U0FDRjtLQUNGO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsTUFBVyxFQUFFLEtBQVU7SUFDcEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDMUIsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELElBQUksT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxFQUFFO1FBQ2pDLE9BQU8saUJBQWlCLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0tBQ3pDO0lBQ0QsbUJBQW1CO0lBQ25CLElBQUksZUFBZSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM5QyxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDbkIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUN6QyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7S0FDaEQ7SUFDRCxRQUFRLGVBQWUsRUFBRTtRQUN2QixLQUFLLEtBQUs7WUFDUixPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvQyxLQUFLLElBQUk7WUFDUCxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztLQUMvQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELFNBQVMsaUJBQWlCLENBQUMsU0FBYyxFQUFFLEtBQVU7SUFDbkQsTUFBTSxDQUFDLEdBQUcsRUFBRSxhQUFhLEVBQUUsS0FBSyxDQUFDLEdBQUcsU0FBUyxDQUFDO0lBQzlDLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM1QixRQUFRLGFBQWEsRUFBRTtRQUNyQixLQUFLLEdBQUc7WUFDTixJQUFJLEtBQUssSUFBSSxRQUFRLEVBQUU7Z0JBQ3JCLE9BQU8sQ0FBQyxVQUFVLENBQUM7YUFDcEI7WUFDRCxPQUFPLFVBQVUsSUFBSSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUMxRixLQUFLLElBQUk7WUFDUCxJQUFJLEtBQUssSUFBSSxRQUFRLEVBQUU7Z0JBQ3JCLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQzthQUNyQjtZQUNELE9BQU8sVUFBVSxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUM3RixLQUFLLEdBQUc7WUFDTixPQUFPLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDNUIsS0FBSyxHQUFHO1lBQ04sT0FBTyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQzVCLEtBQUssSUFBSTtZQUNQLE9BQU8sVUFBVSxJQUFJLEtBQUssQ0FBQztRQUM3QixLQUFLLElBQUk7WUFDUCxPQUFPLFVBQVUsSUFBSSxLQUFLLENBQUM7UUFDN0IsS0FBSyxVQUFVO1lBQ2IsT0FBTyxPQUFPLFVBQVUsS0FBSyxRQUFRLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkcsS0FBSyxZQUFZO1lBQ2YsT0FBTyxPQUFPLFVBQVUsS0FBSyxRQUFRLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckcsS0FBSyxVQUFVO1lBQ2IsT0FBTyxPQUFPLFVBQVUsS0FBSyxRQUFRLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkcsS0FBSyxJQUFJO1lBQ1AsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUM3QixVQUFVLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzVCO1lBQ0QsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN4QixPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDbkM7aUJBQU07Z0JBQ0wsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQzNFO1FBQ0gsS0FBSyxJQUFJO1lBQ1AsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUM3QixVQUFVLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzVCO1lBQ0QsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN4QixPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUNwQztpQkFBTTtnQkFDTCxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUM1RTtRQUNIO1lBQ0UsT0FBTyxLQUFLLENBQUM7S0FDaEI7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG5vdGlmeSBmcm9tIFwiZGV2ZXh0cmVtZS91aS9ub3RpZnlcIjtcclxuaW1wb3J0IHtEeFZhbGlkYXRvckNvbXBvbmVudH0gZnJvbSBcImRldmV4dHJlbWUtYW5ndWxhclwiO1xyXG5pbXBvcnQge2ZpcnN0VmFsdWVGcm9tLCBvZn0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHZhbGlkYXRpb25FbmdpbmUgZnJvbSBcImRldmV4dHJlbWUvdWkvdmFsaWRhdGlvbl9lbmdpbmVcIjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBub3RpZnlfZXJyb3IobWVzc2FnZTogc3RyaW5nKSB7XHJcbiAgX25vdGlmeShtZXNzYWdlLCAxMjAwMCwgJ3dhcm5pbmcnKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG5vdGlmeV93YXJuaW5nKG1lc3NhZ2U6IHN0cmluZykge1xyXG4gIF9ub3RpZnkobWVzc2FnZSwgODAwMCwgJ3dhcm5pbmcnKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG5vdGlmeV9zdWNjZXNzKG1lc3NhZ2U6IHN0cmluZykge1xyXG4gIF9ub3RpZnkobWVzc2FnZSwgNDAwMCwgJ3N1Y2Nlc3MnKTtcclxufVxyXG5cclxuZnVuY3Rpb24gX25vdGlmeShtZXNzYWdlOiBzdHJpbmcsIHRpbWU6IG51bWJlciwgdHlwZTogJ2RhbmdlcicgfCAnd2FybmluZycgfCAnc3VjY2VzcycpIHtcclxuICBub3RpZnkoe1xyXG4gICAgZGlzcGxheVRpbWU6IHRpbWUsXHJcbiAgICBtZXNzYWdlLFxyXG4gICAgdHlwZTogdHlwZSxcclxuICAgIGNsb3NlT25Td2lwZTogZmFsc2UsXHJcbiAgICBtaW5XaWR0aDogMjAwLFxyXG4gICAgbWF4V2lkdGg6IDUwMCxcclxuICAgIHdyYXBwZXJBdHRyOiB7Y2xhc3M6ICdnbG9iYWwtdG9hc3QtbWVzc2FnZSd9XHJcbiAgfSwge1xyXG4gICAgZGlyZWN0aW9uOiAndXAtcHVzaCcsXHJcbiAgICBwb3NpdGlvbjogJ2JvdHRvbSByaWdodCdcclxuICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvY2FsZVNvcnRNZXRob2QodmFsdWUxOiBzdHJpbmcsIHZhbHVlMjogc3RyaW5nKSB7XHJcbiAgcmV0dXJuIHZhbHVlMS5sb2NhbGVDb21wYXJlKHZhbHVlMik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBmaWxlX3R5cGVfaWNvbihuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gIGNvbnN0IHR5cGUgPSBuYW1lLnN1YnN0cmluZyhuYW1lLmxhc3RJbmRleE9mKCcuJykgKyAxKS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xyXG4gIHN3aXRjaCAodHlwZSkge1xyXG4gICAgY2FzZSAnZG9jJzpcclxuICAgIGNhc2UgJ2RvY3gnOlxyXG4gICAgICByZXR1cm4gJ3dvcmQnO1xyXG4gICAgY2FzZSAneGxzJzpcclxuICAgIGNhc2UgJ3hsc3gnOlxyXG4gICAgY2FzZSAnY3N2JzpcclxuICAgICAgcmV0dXJuICdleGNlbCc7XHJcbiAgICBjYXNlICdwcHQnOlxyXG4gICAgY2FzZSAncHB0eCc6XHJcbiAgICAgIHJldHVybiAncHB0JztcclxuICAgIGNhc2UgJ3BkZic6XHJcbiAgICAgIHJldHVybiAncGRmJztcclxuICAgIGNhc2UgJ3R4dCc6XHJcbiAgICBjYXNlICd4bWwnOlxyXG4gICAgY2FzZSAnanNvbic6XHJcbiAgICBjYXNlICdqcyc6XHJcbiAgICAgIHJldHVybiAndGV4dCc7XHJcbiAgICBjYXNlICdwbmcnOlxyXG4gICAgY2FzZSAnanBnJzpcclxuICAgIGNhc2UgJ2pwZWcnOlxyXG4gICAgY2FzZSAnZ2lmJzpcclxuICAgIGNhc2UgJ2JtcCc6XHJcbiAgICAgIHJldHVybiAnaW1hZ2UnO1xyXG4gICAgY2FzZSAnemlwJzpcclxuICAgIGNhc2UgJ3Jhcic6XHJcbiAgICBjYXNlICc3eic6XHJcbiAgICBjYXNlICdqYXInOlxyXG4gICAgICByZXR1cm4gJ3ppcCc7XHJcbiAgICBkZWZhdWx0OlxyXG4gICAgICByZXR1cm4gJ3Vua25vd24nO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHN1cHBvcnRfcHJldmlld19leHQoKTogc3RyaW5nW10ge1xyXG4gIHJldHVybiBbJ3BkZicsICdwbmcnLCAnanBnJywgJ2pwZWcnLCAnZ2lmJywgJ2JtcCcsICdkb2MnLCAnZG9jeCcsICd0eHQnLCAneG1sJywgJ2pzb24nLCAnanMnLCAneGxzJywgJ3hsc3gnLCAnY3N2JywgJ3BwdCcsICdwcHR4JywgJ21wMycsICdtcDQnXTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdF9maWxlX3NpemUoc2l6ZTogbnVtYmVyKTogc3RyaW5nIHtcclxuICBjb25zdCBsYWJlbHMgPSBbJ2InLCAnS2InLCAnTWInLCAnR2InXTtcclxuICBjb25zdCBjb3VudCA9IGxhYmVscy5sZW5ndGggLSAxO1xyXG4gIGxldCBpID0gMDtcclxuICB3aGlsZSAoaSA8IGNvdW50ICYmIHNpemUgPj0gMTAyNCkge1xyXG4gICAgc2l6ZSAvPSAxMDI0O1xyXG4gICAgaSsrO1xyXG4gIH1cclxuICByZXR1cm4gTWF0aC5yb3VuZChzaXplICogMTAwKSAvIDEwMCArIFwiIFwiICsgbGFiZWxzW2ldO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZmlsZW5hbWVfZnJvbV9kaXNwb3NpdGlvbihkaXNwb3NpdGlvbjogc3RyaW5nKSB7XHJcbiAgY29uc3QgZmlsZW5hbWVQYWlyID0gZGlzcG9zaXRpb24uc3BsaXQoJzsnKS5maWx0ZXIoc3RyID0+IC9eZmlsZW5hbWU9Ly50ZXN0KHN0ci50cmltKCkpKS5wb3AoKTtcclxuICBpZiAoZmlsZW5hbWVQYWlyKSB7XHJcbiAgICBsZXQgc3RyID0gZmlsZW5hbWVQYWlyLnRyaW0oKTtcclxuICAgIHN0ciA9IHN0ci5zcGxpdCgnPScpWzFdO1xyXG4gICAgc3RyID0gc3RyLnJlcGxhY2UoL1snXCJdL2csICcnKTtcclxuICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQoc3RyKTtcclxuICB9IGVsc2Uge1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZG93bmxvYWRfZmlsZShibG9iOiBCbG9iLCBmaWxlbmFtZTogc3RyaW5nLCBjYWxsYmFjaz86IEZ1bmN0aW9uKSB7XHJcbiAgY29uc3QgdXJsID0gd2luZG93LndlYmtpdFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcbiAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpO1xyXG4gIGEuc2V0QXR0cmlidXRlKCdzdHlsZScsICdkaXNwbGF5Om5vbmUnKTtcclxuICBhLnNldEF0dHJpYnV0ZSgnaHJlZicsIHVybCk7XHJcbiAgYS5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgZGVjb2RlVVJJQ29tcG9uZW50KGZpbGVuYW1lKSk7XHJcbiAgYS5jbGljaygpO1xyXG4gIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgaWYgKGNhbGxiYWNrKSB7XHJcbiAgICAgIGNhbGxiYWNrKCk7XHJcbiAgICB9XHJcbiAgICBhLnJlbW92ZSgpO1xyXG4gIH0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGUodmFsaWRhdG9yOiBEeFZhbGlkYXRvckNvbXBvbmVudCk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gIHJldHVybiBuZXcgUHJvbWlzZTxib29sZWFuPihyZXNvbHZlID0+IHtcclxuICAgIGlmICghdmFsaWRhdG9yKSB7XHJcbiAgICAgIHJlc29sdmUodHJ1ZSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCB2YWxpZGF0ZVJlc3VsdCA9IHZhbGlkYXRvci5pbnN0YW5jZS52YWxpZGF0ZSgpO1xyXG4gICAgaWYgKCF2YWxpZGF0ZVJlc3VsdC5pc1ZhbGlkKSB7XHJcbiAgICAgIHJlc29sdmUoZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgaWYgKHZhbGlkYXRlUmVzdWx0LnN0YXR1cyA9PT0gJ3BlbmRpbmcnKSB7XHJcbiAgICAgIHZhbGlkYXRlUmVzdWx0LmNvbXBsZXRlPy50aGVuKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQuaXNWYWxpZCkge1xyXG4gICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVzb2x2ZShmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJlc29sdmUodHJ1ZSk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZV9ncm91cCh2YWxpZGF0aW9uR3JvdXBDb21wb25lbnQ6IGFueSk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gIGlmICghdmFsaWRhdGlvbkdyb3VwQ29tcG9uZW50KSB7XHJcbiAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20ob2YodHJ1ZSkpO1xyXG4gIH1cclxuICByZXR1cm4gdmFsaWRhdGVHcm91cCh2YWxpZGF0aW9uR3JvdXBDb21wb25lbnQuaW5zdGFuY2UsIHZhbGlkYXRpb25Hcm91cENvbXBvbmVudC5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpXHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZV9ncm91cF9ieV9uYW1lKG5hbWU6IHN0cmluZywgYnJva2VuRWxlbWVudFBhcmVudDogRWxlbWVudCk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gIGNvbnN0IHZhbGlkYXRpb25Hcm91cCA9IHZhbGlkYXRpb25FbmdpbmUuZ2V0R3JvdXBDb25maWcobmFtZSk7XHJcbiAgaWYgKCF2YWxpZGF0aW9uR3JvdXApIHtcclxuICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbShvZih0cnVlKSk7XHJcbiAgfVxyXG4gIHJldHVybiB2YWxpZGF0ZUdyb3VwKHZhbGlkYXRpb25Hcm91cCwgYnJva2VuRWxlbWVudFBhcmVudCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHZhbGlkYXRlR3JvdXAodmFsaWRhdGlvbkdyb3VwOiBhbnksIGJyb2tlbkVsZW1lbnRQYXJlbnQ6IEVsZW1lbnQpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICBsZXQgc291cmNlTm9kZTtcclxuICBjb25zdCB0YXJnZXRDbGFzc05hbWUgPSAnZHgtZmllbGQnO1xyXG4gIGNvbnN0IGZpbmRUYXJnZXROb2RlID0gKG5vZGU6IGFueSkgPT4ge1xyXG4gICAgc291cmNlTm9kZSA9IG5vZGU7XHJcbiAgICB3aGlsZSAodHJ1ZSkge1xyXG4gICAgICBpZiAobm9kZS5jbGFzc0xpc3QuY29udGFpbnModGFyZ2V0Q2xhc3NOYW1lKSkge1xyXG4gICAgICAgIHJldHVybiBub2RlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG5vZGUgPSBub2RlLnBhcmVudEVsZW1lbnQ7XHJcbiAgICAgICAgaWYgKG5vZGUgPT09IGJyb2tlbkVsZW1lbnRQYXJlbnQpIHtcclxuICAgICAgICAgIHJldHVybiBzb3VyY2VOb2RlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH07XHJcbiAgcmV0dXJuIG5ldyBQcm9taXNlPGJvb2xlYW4+KHJlc29sdmUgPT4ge1xyXG4gICAgY29uc3QgdmFsaWRhdGVSZXN1bHQgPSB2YWxpZGF0aW9uR3JvdXAudmFsaWRhdGUoKTtcclxuICAgIGlmICghdmFsaWRhdGVSZXN1bHQuaXNWYWxpZCkge1xyXG4gICAgICBjb25zdCBicm9rZW5FbGVtZW50ID0gKHZhbGlkYXRlUmVzdWx0LmJyb2tlblJ1bGVzPy5bMF0gYXMgYW55KS52YWxpZGF0b3IuZWxlbWVudCgpO1xyXG4gICAgICBmaW5kVGFyZ2V0Tm9kZShicm9rZW5FbGVtZW50KS5zY3JvbGxJbnRvVmlldyh7XHJcbiAgICAgICAgYmxvY2s6ICdjZW50ZXInLFxyXG4gICAgICAgIGlubGluZTogJ2NlbnRlcidcclxuICAgICAgfSk7XHJcbiAgICAgIHJlc29sdmUoZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgaWYgKHZhbGlkYXRlUmVzdWx0LnN0YXR1cyA9PT0gJ3BlbmRpbmcnKSB7XHJcbiAgICAgIHZhbGlkYXRlUmVzdWx0LmNvbXBsZXRlPy50aGVuKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQuaXNWYWxpZCkge1xyXG4gICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc3QgYnJva2VuRWxlbWVudCA9IChyZXN1bHQuYnJva2VuUnVsZXM/LlswXSBhcyBhbnkpLnZhbGlkYXRvci5lbGVtZW50KCk7XHJcbiAgICAgICAgICBmaW5kVGFyZ2V0Tm9kZShicm9rZW5FbGVtZW50KS5zY3JvbGxJbnRvVmlldyh7XHJcbiAgICAgICAgICAgIGJsb2NrOiAnY2VudGVyJyxcclxuICAgICAgICAgICAgaW5saW5lOiAnY2VudGVyJ1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICByZXNvbHZlKGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmVzb2x2ZSh0cnVlKTtcclxuICAgIH1cclxuICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG9wZW5Ccm93c2VyVGFiKHBsdWdpbk5hbWU6IHN0cmluZywgdGl0bGU/OiBzdHJpbmcsIHBsdWdpbkNvbmZpZz86IGFueSwgcGFyYW1zPzogYW55KSB7XHJcbiAgcmV0dXJuIHdpbmRvdy5vcGVuKCdjdXN0b20vJyArIHBsdWdpbk5hbWUgKyAnP3RpdGxlPScgKyBlbmNvZGVVUklDb21wb25lbnQodGl0bGUgfHwgJycpXHJcbiAgICArICcmcGx1Z2luQ29uZmlnPScgKyBlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkocGx1Z2luQ29uZmlnIHx8IHt9KSlcclxuICAgICsgJyZwYXJhbXM9JyArIGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShwYXJhbXMgfHwge30pKSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBkZWVwQ2xvbmU8VD4ob2JqOiBhbnkpOiBUIHtcclxuICAvLyDlpoLmnpzmmK/ln7rnoYDmlbDmja7nsbvlnovvvIznm7TmjqXov5Tlm55cclxuICBpZiAodHlwZW9mIG9iaiAhPT0gJ29iamVjdCcgfHwgb2JqID09PSBudWxsKSB7XHJcbiAgICByZXR1cm4gb2JqO1xyXG4gIH1cclxuICAvLyDojrflj5blr7nosaHnmoTmnoTpgKDlh73mlbBcclxuICBjb25zdCBjb25zdHJ1Y3RvciA9IG9iai5jb25zdHJ1Y3RvcjtcclxuICAvLyDlpITnkIbmlbDnu4Tlkozlr7nosaFcclxuICBsZXQgcmVzdWx0OiBhbnk7XHJcbiAgaWYgKGNvbnN0cnVjdG9yID09PSBBcnJheSkge1xyXG4gICAgcmVzdWx0ID0gW107XHJcbiAgICAvLyDpgY3ljobmlbDnu4TvvIzpgJLlvZLmt7Hmi7fotJ1cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb2JqLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHJlc3VsdFtpXSA9IGRlZXBDbG9uZShvYmpbaV0pO1xyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcbiAgICByZXN1bHQgPSBuZXcgY29uc3RydWN0b3IoKTtcclxuICAgIC8vIOmAkuW9kuaLt+i0neWvueixoeWxnuaAp1xyXG4gICAgZm9yIChjb25zdCBrZXkgaW4gb2JqKSB7XHJcbiAgICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICAgIHJlc3VsdFtrZXldID0gZGVlcENsb25lKG9ialtrZXldKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZXZhbHVhdGVGaWx0ZXIoZmlsdGVyOiBhbnksIG1vZGVsOiBhbnkpOiBib29sZWFuIHtcclxuICBpZiAoIUFycmF5LmlzQXJyYXkoZmlsdGVyKSkge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICBpZiAodHlwZW9mIGZpbHRlclswXSA9PT0gJ3N0cmluZycpIHtcclxuICAgIHJldHVybiBldmFsdWF0ZUNvbmRpdGlvbihmaWx0ZXIsIG1vZGVsKTtcclxuICB9XHJcbiAgLy8g5aSN5ZCI5p2h5Lu277yM57qm5a6a57uf5LiA5Li6YW5kL29yXHJcbiAgbGV0IGN1cnJlbnRPcGVyYXRvciA9IGZpbHRlclsxXS50b1VwcGVyQ2FzZSgpO1xyXG4gIGNvbnN0IHJlc3VsdHMgPSBbXTtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbHRlci5sZW5ndGg7IGkgKz0gMikge1xyXG4gICAgY29uc3Qgc3ViRmlsdGVyID0gZmlsdGVyW2ldO1xyXG4gICAgcmVzdWx0cy5wdXNoKGV2YWx1YXRlRmlsdGVyKHN1YkZpbHRlciwgbW9kZWwpKTtcclxuICB9XHJcbiAgc3dpdGNoIChjdXJyZW50T3BlcmF0b3IpIHtcclxuICAgIGNhc2UgJ0FORCc6XHJcbiAgICAgIHJldHVybiByZXN1bHRzLmV2ZXJ5KGJvb2xWYWx1ZSA9PiBib29sVmFsdWUpO1xyXG4gICAgY2FzZSAnT1InOlxyXG4gICAgICByZXR1cm4gcmVzdWx0cy5zb21lKGJvb2xWYWx1ZSA9PiBib29sVmFsdWUpO1xyXG4gIH1cclxuICByZXR1cm4gZmFsc2U7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGV2YWx1YXRlQ29uZGl0aW9uKGNvbmRpdGlvbjogYW55LCBtb2RlbDogYW55KTogYm9vbGVhbiB7XHJcbiAgY29uc3QgW2tleSwgY29uZGl0aW9uVHlwZSwgdmFsdWVdID0gY29uZGl0aW9uO1xyXG4gIGxldCBtb2RlbFZhbHVlID0gbW9kZWxba2V5XTtcclxuICBzd2l0Y2ggKGNvbmRpdGlvblR5cGUpIHtcclxuICAgIGNhc2UgJz0nOlxyXG4gICAgICBpZiAodmFsdWUgPT0gJyRudWxsJCcpIHtcclxuICAgICAgICByZXR1cm4gIW1vZGVsVmFsdWU7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIG1vZGVsVmFsdWUgPT0gdmFsdWUgfHwgKEFycmF5LmlzQXJyYXkobW9kZWxWYWx1ZSkgJiYgbW9kZWxWYWx1ZS5pbmNsdWRlcyh2YWx1ZSkpO1xyXG4gICAgY2FzZSAnPD4nOlxyXG4gICAgICBpZiAodmFsdWUgPT0gJyRudWxsJCcpIHtcclxuICAgICAgICByZXR1cm4gISFtb2RlbFZhbHVlO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBtb2RlbFZhbHVlICE9PSB2YWx1ZSAmJiAoIUFycmF5LmlzQXJyYXkobW9kZWxWYWx1ZSkgfHwgIW1vZGVsVmFsdWUuaW5jbHVkZXModmFsdWUpKTtcclxuICAgIGNhc2UgJz4nOlxyXG4gICAgICByZXR1cm4gbW9kZWxWYWx1ZSA+IHZhbHVlO1xyXG4gICAgY2FzZSAnPCc6XHJcbiAgICAgIHJldHVybiBtb2RlbFZhbHVlIDwgdmFsdWU7XHJcbiAgICBjYXNlICc+PSc6XHJcbiAgICAgIHJldHVybiBtb2RlbFZhbHVlID49IHZhbHVlO1xyXG4gICAgY2FzZSAnPD0nOlxyXG4gICAgICByZXR1cm4gbW9kZWxWYWx1ZSA8PSB2YWx1ZTtcclxuICAgIGNhc2UgJ2NvbnRhaW5zJzpcclxuICAgICAgcmV0dXJuIHR5cGVvZiBtb2RlbFZhbHVlID09PSAnc3RyaW5nJyAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIG1vZGVsVmFsdWUuaW5jbHVkZXModmFsdWUpO1xyXG4gICAgY2FzZSAnc3RhcnRzV2l0aCc6XHJcbiAgICAgIHJldHVybiB0eXBlb2YgbW9kZWxWYWx1ZSA9PT0gJ3N0cmluZycgJiYgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiBtb2RlbFZhbHVlLnN0YXJ0c1dpdGgodmFsdWUpO1xyXG4gICAgY2FzZSAnZW5kc1dpdGgnOlxyXG4gICAgICByZXR1cm4gdHlwZW9mIG1vZGVsVmFsdWUgPT09ICdzdHJpbmcnICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgbW9kZWxWYWx1ZS5lbmRzV2l0aCh2YWx1ZSk7XHJcbiAgICBjYXNlICdpbic6XHJcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KG1vZGVsVmFsdWUpKSB7XHJcbiAgICAgICAgbW9kZWxWYWx1ZSA9IG1vZGVsVmFsdWVbMF07XHJcbiAgICAgIH1cclxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlLmluY2x1ZGVzKG1vZGVsVmFsdWUpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB2YWx1ZS5zcGxpdChcIixcIikubWFwKCh2OiBzdHJpbmcpID0+IHYudHJpbSgpKS5pbmNsdWRlcyhtb2RlbFZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgY2FzZSAnbmknOlxyXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShtb2RlbFZhbHVlKSkge1xyXG4gICAgICAgIG1vZGVsVmFsdWUgPSBtb2RlbFZhbHVlWzBdO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xyXG4gICAgICAgIHJldHVybiAhdmFsdWUuaW5jbHVkZXMobW9kZWxWYWx1ZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuICF2YWx1ZS5zcGxpdChcIixcIikubWFwKCh2OiBzdHJpbmcpID0+IHYudHJpbSgpKS5pbmNsdWRlcyhtb2RlbFZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgZGVmYXVsdDpcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
295
|
+
export function addWatermark(container, watermark) {
|
|
296
|
+
let watermarkDiv = document.getElementById(watermark.id);
|
|
297
|
+
if (watermarkDiv) {
|
|
298
|
+
watermarkDiv.remove();
|
|
299
|
+
}
|
|
300
|
+
const width = 5000 / watermark.density;
|
|
301
|
+
const height = 5000 / watermark.density;
|
|
302
|
+
const canvas = document.createElement('canvas');
|
|
303
|
+
canvas.width = width;
|
|
304
|
+
canvas.height = height;
|
|
305
|
+
const ctx = canvas.getContext('2d');
|
|
306
|
+
ctx.textAlign = 'center';
|
|
307
|
+
ctx.textBaseline = 'middle';
|
|
308
|
+
ctx.font = `${watermark.size}px ${watermark.font}`;
|
|
309
|
+
ctx.fillStyle = watermark.color;
|
|
310
|
+
ctx.translate(width / 2, height / 2);
|
|
311
|
+
ctx.rotate(watermark.rotate * Math.PI / 180);
|
|
312
|
+
ctx.translate(-width / 2, -height / 2);
|
|
313
|
+
ctx.fillText(watermark.text, width / 2, height / 2);
|
|
314
|
+
const base64Url = canvas.toDataURL();
|
|
315
|
+
watermarkDiv = document.createElement('div');
|
|
316
|
+
watermarkDiv.id = watermark.id;
|
|
317
|
+
watermarkDiv.style.position = 'absolute';
|
|
318
|
+
watermarkDiv.style.inset = '0';
|
|
319
|
+
watermarkDiv.style.zIndex = '5000';
|
|
320
|
+
watermarkDiv.style.pointerEvents = 'none';
|
|
321
|
+
watermarkDiv.style.backgroundImage = `url(${base64Url})`;
|
|
322
|
+
watermarkDiv.style.backgroundRepeat = 'repeat';
|
|
323
|
+
container.style.position = 'relative';
|
|
324
|
+
container.insertBefore(watermarkDiv, container.firstChild);
|
|
325
|
+
}
|
|
326
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy91dGlsL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLHNCQUFzQixDQUFDO0FBRTFDLE9BQU8sRUFBQyxjQUFjLEVBQUUsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sZ0JBQWdCLE1BQU0saUNBQWlDLENBQUM7QUFFL0QsTUFBTSxVQUFVLFlBQVksQ0FBQyxPQUFlO0lBQzFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ3JDLENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUFDLE9BQWU7SUFDNUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDcEMsQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsT0FBZTtJQUM1QyxPQUFPLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztBQUNwQyxDQUFDO0FBRUQsU0FBUyxPQUFPLENBQUMsT0FBZSxFQUFFLElBQVksRUFBRSxJQUFzQztJQUNwRixNQUFNLENBQUM7UUFDTCxXQUFXLEVBQUUsSUFBSTtRQUNqQixPQUFPO1FBQ1AsSUFBSSxFQUFFLElBQUk7UUFDVixZQUFZLEVBQUUsS0FBSztRQUNuQixRQUFRLEVBQUUsR0FBRztRQUNiLFFBQVEsRUFBRSxHQUFHO1FBQ2IsV0FBVyxFQUFFLEVBQUMsS0FBSyxFQUFFLHNCQUFzQixFQUFDO0tBQzdDLEVBQUU7UUFDRCxTQUFTLEVBQUUsU0FBUztRQUNwQixRQUFRLEVBQUUsY0FBYztLQUN6QixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUFDLE1BQWMsRUFBRSxNQUFjO0lBQzdELE9BQU8sTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFN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TUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUM3QyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN2QyxHQUFHLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDcEQsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3JDLFlBQVksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdDLFlBQVksQ0FBQyxFQUFFLEdBQUcsU0FBUyxDQUFDLEVBQUUsQ0FBQztJQUMvQixZQUFZLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDekMsWUFBWSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO0lBQy9CLFlBQVksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUNuQyxZQUFZLENBQUMsS0FBSyxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUM7SUFDMUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxlQUFlLEdBQUcsT0FBTyxTQUFTLEdBQUcsQ0FBQztJQUN6RCxZQUFZLENBQUMsS0FBSyxDQUFDLGdCQUFnQixHQUFHLFFBQVEsQ0FBQztJQUMvQyxTQUFTLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDdEMsU0FBUyxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQzdELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbm90aWZ5IGZyb20gXCJkZXZleHRyZW1lL3VpL25vdGlmeVwiO1xyXG5pbXBvcnQge0R4VmFsaWRhdG9yQ29tcG9uZW50fSBmcm9tIFwiZGV2ZXh0cmVtZS1hbmd1bGFyXCI7XHJcbmltcG9ydCB7Zmlyc3RWYWx1ZUZyb20sIG9mfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgdmFsaWRhdGlvbkVuZ2luZSBmcm9tIFwiZGV2ZXh0cmVtZS91aS92YWxpZGF0aW9uX2VuZ2luZVwiO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG5vdGlmeV9lcnJvcihtZXNzYWdlOiBzdHJpbmcpIHtcclxuICBfbm90aWZ5KG1lc3NhZ2UsIDEyMDAwLCAnd2FybmluZycpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbm90aWZ5X3dhcm5pbmcobWVzc2FnZTogc3RyaW5nKSB7XHJcbiAgX25vdGlmeShtZXNzYWdlLCA4MDAwLCAnd2FybmluZycpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbm90aWZ5X3N1Y2Nlc3MobWVzc2FnZTogc3RyaW5nKSB7XHJcbiAgX25vdGlmeShtZXNzYWdlLCA0MDAwLCAnc3VjY2VzcycpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBfbm90aWZ5KG1lc3NhZ2U6IHN0cmluZywgdGltZTogbnVtYmVyLCB0eXBlOiAnZGFuZ2VyJyB8ICd3YXJuaW5nJyB8ICdzdWNjZXNzJykge1xyXG4gIG5vdGlmeSh7XHJcbiAgICBkaXNwbGF5VGltZTogdGltZSxcclxuICAgIG1lc3NhZ2UsXHJcbiAgICB0eXBlOiB0eXBlLFxyXG4gICAgY2xvc2VPblN3aXBlOiBmYWxzZSxcclxuICAgIG1pbldpZHRoOiAyMDAsXHJcbiAgICBtYXhXaWR0aDogNTAwLFxyXG4gICAgd3JhcHBlckF0dHI6IHtjbGFzczogJ2dsb2JhbC10b2FzdC1tZXNzYWdlJ31cclxuICB9LCB7XHJcbiAgICBkaXJlY3Rpb246ICd1cC1wdXNoJyxcclxuICAgIHBvc2l0aW9uOiAnYm90dG9tIHJpZ2h0J1xyXG4gIH0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbG9jYWxlU29ydE1ldGhvZCh2YWx1ZTE6IHN0cmluZywgdmFsdWUyOiBzdHJpbmcpIHtcclxuICByZXR1cm4gdmFsdWUxLmxvY2FsZUNvbXBhcmUodmFsdWUyKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGZpbGVfdHlwZV9pY29uKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgY29uc3QgdHlwZSA9IG5hbWUuc3Vic3RyaW5nKG5hbWUubGFzdEluZGV4T2YoJy4nKSArIDEpLnRvTG9jYWxlTG93ZXJDYXNlKCk7XHJcbiAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICBjYXNlICdkb2MnOlxyXG4gICAgY2FzZSAnZG9jeCc6XHJcbiAgICAgIHJldHVybiAnd29yZCc7XHJcbiAgICBjYXNlICd4bHMnOlxyXG4gICAgY2FzZSAneGxzeCc6XHJcbiAgICBjYXNlICdjc3YnOlxyXG4gICAgICByZXR1cm4gJ2V4Y2VsJztcclxuICAgIGNhc2UgJ3BwdCc6XHJcbiAgICBjYXNlICdwcHR4JzpcclxuICAgICAgcmV0dXJuICdwcHQnO1xyXG4gICAgY2FzZSAncGRmJzpcclxuICAgICAgcmV0dXJuICdwZGYnO1xyXG4gICAgY2FzZSAndHh0JzpcclxuICAgIGNhc2UgJ3htbCc6XHJcbiAgICBjYXNlICdqc29uJzpcclxuICAgIGNhc2UgJ2pzJzpcclxuICAgICAgcmV0dXJuICd0ZXh0JztcclxuICAgIGNhc2UgJ3BuZyc6XHJcbiAgICBjYXNlICdqcGcnOlxyXG4gICAgY2FzZSAnanBlZyc6XHJcbiAgICBjYXNlICdnaWYnOlxyXG4gICAgY2FzZSAnYm1wJzpcclxuICAgICAgcmV0dXJuICdpbWFnZSc7XHJcbiAgICBjYXNlICd6aXAnOlxyXG4gICAgY2FzZSAncmFyJzpcclxuICAgIGNhc2UgJzd6JzpcclxuICAgIGNhc2UgJ2phcic6XHJcbiAgICAgIHJldHVybiAnemlwJztcclxuICAgIGRlZmF1bHQ6XHJcbiAgICAgIHJldHVybiAndW5rbm93bic7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc3VwcG9ydF9wcmV2aWV3X2V4dCgpOiBzdHJpbmdbXSB7XHJcbiAgcmV0dXJuIFsncGRmJywgJ3BuZycsICdqcGcnLCAnanBlZycsICdnaWYnLCAnYm1wJywgJ2RvYycsICdkb2N4JywgJ3R4dCcsICd4bWwnLCAnanNvbicsICdqcycsICd4bHMnLCAneGxzeCcsICdjc3YnLCAncHB0JywgJ3BwdHgnLCAnbXAzJywgJ21wNCddO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0X2ZpbGVfc2l6ZShzaXplOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gIGNvbnN0IGxhYmVscyA9IFsnYicsICdLYicsICdNYicsICdHYiddO1xyXG4gIGNvbnN0IGNvdW50ID0gbGFiZWxzLmxlbmd0aCAtIDE7XHJcbiAgbGV0IGkgPSAwO1xyXG4gIHdoaWxlIChpIDwgY291bnQgJiYgc2l6ZSA+PSAxMDI0KSB7XHJcbiAgICBzaXplIC89IDEwMjQ7XHJcbiAgICBpKys7XHJcbiAgfVxyXG4gIHJldHVybiBNYXRoLnJvdW5kKHNpemUgKiAxMDApIC8gMTAwICsgXCIgXCIgKyBsYWJlbHNbaV07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBmaWxlbmFtZV9mcm9tX2Rpc3Bvc2l0aW9uKGRpc3Bvc2l0aW9uOiBzdHJpbmcpIHtcclxuICBjb25zdCBmaWxlbmFtZVBhaXIgPSBkaXNwb3NpdGlvbi5zcGxpdCgnOycpLmZpbHRlcihzdHIgPT4gL15maWxlbmFtZT0vLnRlc3Qoc3RyLnRyaW0oKSkpLnBvcCgpO1xyXG4gIGlmIChmaWxlbmFtZVBhaXIpIHtcclxuICAgIGxldCBzdHIgPSBmaWxlbmFtZVBhaXIudHJpbSgpO1xyXG4gICAgc3RyID0gc3RyLnNwbGl0KCc9JylbMV07XHJcbiAgICBzdHIgPSBzdHIucmVwbGFjZSgvWydcIl0vZywgJycpO1xyXG4gICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChzdHIpO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBkb3dubG9hZF9maWxlKGJsb2I6IEJsb2IsIGZpbGVuYW1lOiBzdHJpbmcsIGNhbGxiYWNrPzogRnVuY3Rpb24pIHtcclxuICBjb25zdCB1cmwgPSB3aW5kb3cud2Via2l0VVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcclxuICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSk7XHJcbiAgYS5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ2Rpc3BsYXk6bm9uZScpO1xyXG4gIGEuc2V0QXR0cmlidXRlKCdocmVmJywgdXJsKTtcclxuICBhLnNldEF0dHJpYnV0ZSgnZG93bmxvYWQnLCBkZWNvZGVVUklDb21wb25lbnQoZmlsZW5hbWUpKTtcclxuICBhLmNsaWNrKCk7XHJcbiAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICBpZiAoY2FsbGJhY2spIHtcclxuICAgICAgY2FsbGJhY2soKTtcclxuICAgIH1cclxuICAgIGEucmVtb3ZlKCk7XHJcbiAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZSh2YWxpZGF0b3I6IER4VmFsaWRhdG9yQ29tcG9uZW50KTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgcmV0dXJuIG5ldyBQcm9taXNlPGJvb2xlYW4+KHJlc29sdmUgPT4ge1xyXG4gICAgaWYgKCF2YWxpZGF0b3IpIHtcclxuICAgICAgcmVzb2x2ZSh0cnVlKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHZhbGlkYXRlUmVzdWx0ID0gdmFsaWRhdG9yLmluc3RhbmNlLnZhbGlkYXRlKCk7XHJcbiAgICBpZiAoIXZhbGlkYXRlUmVzdWx0LmlzVmFsaWQpIHtcclxuICAgICAgcmVzb2x2ZShmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBpZiAodmFsaWRhdGVSZXN1bHQuc3RhdHVzID09PSAncGVuZGluZycpIHtcclxuICAgICAgdmFsaWRhdGVSZXN1bHQuY29tcGxldGU/LnRoZW4oKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC5pc1ZhbGlkKSB7XHJcbiAgICAgICAgICByZXNvbHZlKHRydWUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXNvbHZlKGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmVzb2x2ZSh0cnVlKTtcclxuICAgIH1cclxuICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlX2dyb3VwKHZhbGlkYXRpb25Hcm91cENvbXBvbmVudDogYW55KTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgaWYgKCF2YWxpZGF0aW9uR3JvdXBDb21wb25lbnQpIHtcclxuICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbShvZih0cnVlKSk7XHJcbiAgfVxyXG4gIHJldHVybiB2YWxpZGF0ZUdyb3VwKHZhbGlkYXRpb25Hcm91cENvbXBvbmVudC5pbnN0YW5jZSwgdmFsaWRhdGlvbkdyb3VwQ29tcG9uZW50LmVsZW1lbnQubmF0aXZlRWxlbWVudClcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlX2dyb3VwX2J5X25hbWUobmFtZTogc3RyaW5nLCBicm9rZW5FbGVtZW50UGFyZW50OiBFbGVtZW50KTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgY29uc3QgdmFsaWRhdGlvbkdyb3VwID0gdmFsaWRhdGlvbkVuZ2luZS5nZXRHcm91cENvbmZpZyhuYW1lKTtcclxuICBpZiAoIXZhbGlkYXRpb25Hcm91cCkge1xyXG4gICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKG9mKHRydWUpKTtcclxuICB9XHJcbiAgcmV0dXJuIHZhbGlkYXRlR3JvdXAodmFsaWRhdGlvbkdyb3VwLCBicm9rZW5FbGVtZW50UGFyZW50KTtcclxufVxyXG5cclxuZnVuY3Rpb24gdmFsaWRhdGVHcm91cCh2YWxpZGF0aW9uR3JvdXA6IGFueSwgYnJva2VuRWxlbWVudFBhcmVudDogRWxlbWVudCk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gIGxldCBzb3VyY2VOb2RlO1xyXG4gIGNvbnN0IHRhcmdldENsYXNzTmFtZSA9ICdkeC1maWVsZCc7XHJcbiAgY29uc3QgZmluZFRhcmdldE5vZGUgPSAobm9kZTogYW55KSA9PiB7XHJcbiAgICBzb3VyY2VOb2RlID0gbm9kZTtcclxuICAgIHdoaWxlICh0cnVlKSB7XHJcbiAgICAgIGlmIChub2RlLmNsYXNzTGlzdC5jb250YWlucyh0YXJnZXRDbGFzc05hbWUpKSB7XHJcbiAgICAgICAgcmV0dXJuIG5vZGU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbm9kZSA9IG5vZGUucGFyZW50RWxlbWVudDtcclxuICAgICAgICBpZiAobm9kZSA9PT0gYnJva2VuRWxlbWVudFBhcmVudCkge1xyXG4gICAgICAgICAgcmV0dXJuIHNvdXJjZU5vZGU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfTtcclxuICByZXR1cm4gbmV3IFByb21pc2U8Ym9vbGVhbj4ocmVzb2x2ZSA9PiB7XHJcbiAgICBjb25zdCB2YWxpZGF0ZVJlc3VsdCA9IHZhbGlkYXRpb25Hcm91cC52YWxpZGF0ZSgpO1xyXG4gICAgaWYgKCF2YWxpZGF0ZVJlc3VsdC5pc1ZhbGlkKSB7XHJcbiAgICAgIGNvbnN0IGJyb2tlbkVsZW1lbnQgPSAodmFsaWRhdGVSZXN1bHQuYnJva2VuUnVsZXM/LlswXSBhcyBhbnkpLnZhbGlkYXRvci5lbGVtZW50KCk7XHJcbiAgICAgIGZpbmRUYXJnZXROb2RlKGJyb2tlbkVsZW1lbnQpLnNjcm9sbEludG9WaWV3KHtcclxuICAgICAgICBibG9jazogJ2NlbnRlcicsXHJcbiAgICAgICAgaW5saW5lOiAnY2VudGVyJ1xyXG4gICAgICB9KTtcclxuICAgICAgcmVzb2x2ZShmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBpZiAodmFsaWRhdGVSZXN1bHQuc3RhdHVzID09PSAncGVuZGluZycpIHtcclxuICAgICAgdmFsaWRhdGVSZXN1bHQuY29tcGxldGU/LnRoZW4oKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC5pc1ZhbGlkKSB7XHJcbiAgICAgICAgICByZXNvbHZlKHRydWUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zdCBicm9rZW5FbGVtZW50ID0gKHJlc3VsdC5icm9rZW5SdWxlcz8uWzBdIGFzIGFueSkudmFsaWRhdG9yLmVsZW1lbnQoKTtcclxuICAgICAgICAgIGZpbmRUYXJnZXROb2RlKGJyb2tlbkVsZW1lbnQpLnNjcm9sbEludG9WaWV3KHtcclxuICAgICAgICAgICAgYmxvY2s6ICdjZW50ZXInLFxyXG4gICAgICAgICAgICBpbmxpbmU6ICdjZW50ZXInXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHJlc29sdmUoZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXNvbHZlKHRydWUpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gb3BlbkJyb3dzZXJUYWIocGx1Z2luTmFtZTogc3RyaW5nLCB0aXRsZT86IHN0cmluZywgcGx1Z2luQ29uZmlnPzogYW55LCBwYXJhbXM/OiBhbnkpIHtcclxuICByZXR1cm4gd2luZG93Lm9wZW4oJ2N1c3RvbS8nICsgcGx1Z2luTmFtZSArICc/dGl0bGU9JyArIGVuY29kZVVSSUNvbXBvbmVudCh0aXRsZSB8fCAnJylcclxuICAgICsgJyZwbHVnaW5Db25maWc9JyArIGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShwbHVnaW5Db25maWcgfHwge30pKVxyXG4gICAgKyAnJnBhcmFtcz0nICsgZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHBhcmFtcyB8fCB7fSkpKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGRlZXBDbG9uZTxUPihvYmo6IGFueSk6IFQge1xyXG4gIC8vIOWmguaenOaYr+WfuuehgOaVsOaNruexu+Wei++8jOebtOaOpei/lOWbnlxyXG4gIGlmICh0eXBlb2Ygb2JqICE9PSAnb2JqZWN0JyB8fCBvYmogPT09IG51bGwpIHtcclxuICAgIHJldHVybiBvYmo7XHJcbiAgfVxyXG4gIC8vIOiOt+WPluWvueixoeeahOaehOmAoOWHveaVsFxyXG4gIGNvbnN0IGNvbnN0cnVjdG9yID0gb2JqLmNvbnN0cnVjdG9yO1xyXG4gIC8vIOWkhOeQhuaVsOe7hOWSjOWvueixoVxyXG4gIGxldCByZXN1bHQ6IGFueTtcclxuICBpZiAoY29uc3RydWN0b3IgPT09IEFycmF5KSB7XHJcbiAgICByZXN1bHQgPSBbXTtcclxuICAgIC8vIOmBjeWOhuaVsOe7hO+8jOmAkuW9kua3seaLt+i0nVxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvYmoubGVuZ3RoOyBpKyspIHtcclxuICAgICAgcmVzdWx0W2ldID0gZGVlcENsb25lKG9ialtpXSk7XHJcbiAgICB9XHJcbiAgfSBlbHNlIHtcclxuICAgIHJlc3VsdCA9IG5ldyBjb25zdHJ1Y3RvcigpO1xyXG4gICAgLy8g6YCS5b2S5ou36LSd5a+56LGh5bGe5oCnXHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBvYmopIHtcclxuICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgICAgcmVzdWx0W2tleV0gPSBkZWVwQ2xvbmUob2JqW2tleV0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBldmFsdWF0ZUZpbHRlcihmaWx0ZXI6IGFueSwgbW9kZWw6IGFueSk6IGJvb2xlYW4ge1xyXG4gIGlmICghQXJyYXkuaXNBcnJheShmaWx0ZXIpKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIGlmICh0eXBlb2YgZmlsdGVyWzBdID09PSAnc3RyaW5nJykge1xyXG4gICAgcmV0dXJuIGV2YWx1YXRlQ29uZGl0aW9uKGZpbHRlciwgbW9kZWwpO1xyXG4gIH1cclxuICAvLyDlpI3lkIjmnaHku7bvvIznuqblrprnu5/kuIDkuLphbmQvb3JcclxuICBsZXQgY3VycmVudE9wZXJhdG9yID0gZmlsdGVyWzFdLnRvVXBwZXJDYXNlKCk7XHJcbiAgY29uc3QgcmVzdWx0cyA9IFtdO1xyXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsdGVyLmxlbmd0aDsgaSArPSAyKSB7XHJcbiAgICBjb25zdCBzdWJGaWx0ZXIgPSBmaWx0ZXJbaV07XHJcbiAgICByZXN1bHRzLnB1c2goZXZhbHVhdGVGaWx0ZXIoc3ViRmlsdGVyLCBtb2RlbCkpO1xyXG4gIH1cclxuICBzd2l0Y2ggKGN1cnJlbnRPcGVyYXRvcikge1xyXG4gICAgY2FzZSAnQU5EJzpcclxuICAgICAgcmV0dXJuIHJlc3VsdHMuZXZlcnkoYm9vbFZhbHVlID0+IGJvb2xWYWx1ZSk7XHJcbiAgICBjYXNlICdPUic6XHJcbiAgICAgIHJldHVybiByZXN1bHRzLnNvbWUoYm9vbFZhbHVlID0+IGJvb2xWYWx1ZSk7XHJcbiAgfVxyXG4gIHJldHVybiBmYWxzZTtcclxufVxyXG5cclxuZnVuY3Rpb24gZXZhbHVhdGVDb25kaXRpb24oY29uZGl0aW9uOiBhbnksIG1vZGVsOiBhbnkpOiBib29sZWFuIHtcclxuICBjb25zdCBba2V5LCBjb25kaXRpb25UeXBlLCB2YWx1ZV0gPSBjb25kaXRpb247XHJcbiAgbGV0IG1vZGVsVmFsdWUgPSBtb2RlbFtrZXldO1xyXG4gIHN3aXRjaCAoY29uZGl0aW9uVHlwZSkge1xyXG4gICAgY2FzZSAnPSc6XHJcbiAgICAgIGlmICh2YWx1ZSA9PSAnJG51bGwkJykge1xyXG4gICAgICAgIHJldHVybiAhbW9kZWxWYWx1ZTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbW9kZWxWYWx1ZSA9PSB2YWx1ZSB8fCAoQXJyYXkuaXNBcnJheShtb2RlbFZhbHVlKSAmJiBtb2RlbFZhbHVlLmluY2x1ZGVzKHZhbHVlKSk7XHJcbiAgICBjYXNlICc8Pic6XHJcbiAgICAgIGlmICh2YWx1ZSA9PSAnJG51bGwkJykge1xyXG4gICAgICAgIHJldHVybiAhIW1vZGVsVmFsdWU7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIG1vZGVsVmFsdWUgIT09IHZhbHVlICYmICghQXJyYXkuaXNBcnJheShtb2RlbFZhbHVlKSB8fCAhbW9kZWxWYWx1ZS5pbmNsdWRlcyh2YWx1ZSkpO1xyXG4gICAgY2FzZSAnPic6XHJcbiAgICAgIHJldHVybiBtb2RlbFZhbHVlID4gdmFsdWU7XHJcbiAgICBjYXNlICc8JzpcclxuICAgICAgcmV0dXJuIG1vZGVsVmFsdWUgPCB2YWx1ZTtcclxuICAgIGNhc2UgJz49JzpcclxuICAgICAgcmV0dXJuIG1vZGVsVmFsdWUgPj0gdmFsdWU7XHJcbiAgICBjYXNlICc8PSc6XHJcbiAgICAgIHJldHVybiBtb2RlbFZhbHVlIDw9IHZhbHVlO1xyXG4gICAgY2FzZSAnY29udGFpbnMnOlxyXG4gICAgICByZXR1cm4gdHlwZW9mIG1vZGVsVmFsdWUgPT09ICdzdHJpbmcnICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgbW9kZWxWYWx1ZS5pbmNsdWRlcyh2YWx1ZSk7XHJcbiAgICBjYXNlICdzdGFydHNXaXRoJzpcclxuICAgICAgcmV0dXJuIHR5cGVvZiBtb2RlbFZhbHVlID09PSAnc3RyaW5nJyAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIG1vZGVsVmFsdWUuc3RhcnRzV2l0aCh2YWx1ZSk7XHJcbiAgICBjYXNlICdlbmRzV2l0aCc6XHJcbiAgICAgIHJldHVybiB0eXBlb2YgbW9kZWxWYWx1ZSA9PT0gJ3N0cmluZycgJiYgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiBtb2RlbFZhbHVlLmVuZHNXaXRoKHZhbHVlKTtcclxuICAgIGNhc2UgJ2luJzpcclxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkobW9kZWxWYWx1ZSkpIHtcclxuICAgICAgICBtb2RlbFZhbHVlID0gbW9kZWxWYWx1ZVswXTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuICAgICAgICByZXR1cm4gdmFsdWUuaW5jbHVkZXMobW9kZWxWYWx1ZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlLnNwbGl0KFwiLFwiKS5tYXAoKHY6IHN0cmluZykgPT4gdi50cmltKCkpLmluY2x1ZGVzKG1vZGVsVmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICBjYXNlICduaSc6XHJcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KG1vZGVsVmFsdWUpKSB7XHJcbiAgICAgICAgbW9kZWxWYWx1ZSA9IG1vZGVsVmFsdWVbMF07XHJcbiAgICAgIH1cclxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XHJcbiAgICAgICAgcmV0dXJuICF2YWx1ZS5pbmNsdWRlcyhtb2RlbFZhbHVlKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gIXZhbHVlLnNwbGl0KFwiLFwiKS5tYXAoKHY6IHN0cmluZykgPT4gdi50cmltKCkpLmluY2x1ZGVzKG1vZGVsVmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICBkZWZhdWx0OlxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYWRkV2F0ZXJtYXJrKGNvbnRhaW5lcjogSFRNTEVsZW1lbnQsIHdhdGVybWFyazoge1xyXG4gIGlkOiBzdHJpbmcsXHJcbiAgdGV4dDogc3RyaW5nLFxyXG4gIGNvbG9yOiBzdHJpbmcsXHJcbiAgZm9udDogc3RyaW5nLFxyXG4gIHNpemU6IG51bWJlcixcclxuICByb3RhdGU6IG51bWJlcixcclxuICBkZW5zaXR5OiBudW1iZXJcclxufSk6IHZvaWQge1xyXG4gIGxldCB3YXRlcm1hcmtEaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh3YXRlcm1hcmsuaWQpO1xyXG4gIGlmICh3YXRlcm1hcmtEaXYpIHtcclxuICAgIHdhdGVybWFya0Rpdi5yZW1vdmUoKTtcclxuICB9XHJcbiAgY29uc3Qgd2lkdGggPSA1MDAwIC8gd2F0ZXJtYXJrLmRlbnNpdHk7XHJcbiAgY29uc3QgaGVpZ2h0ID0gNTAwMCAvIHdhdGVybWFyay5kZW5zaXR5O1xyXG4gIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xyXG4gIGNhbnZhcy53aWR0aCA9IHdpZHRoO1xyXG4gIGNhbnZhcy5oZWlnaHQgPSBoZWlnaHQ7XHJcbiAgY29uc3QgY3R4OiBhbnkgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcclxuICBjdHgudGV4dEFsaWduID0gJ2NlbnRlcic7XHJcbiAgY3R4LnRleHRCYXNlbGluZSA9ICdtaWRkbGUnO1xyXG4gIGN0eC5mb250ID0gYCR7d2F0ZXJtYXJrLnNpemV9cHggJHt3YXRlcm1hcmsuZm9udH1gO1xyXG4gIGN0eC5maWxsU3R5bGUgPSB3YXRlcm1hcmsuY29sb3I7XHJcbiAgY3R4LnRyYW5zbGF0ZSh3aWR0aCAvIDIsIGhlaWdodCAvIDIpO1xyXG4gIGN0eC5yb3RhdGUod2F0ZXJtYXJrLnJvdGF0ZSAqIE1hdGguUEkgLyAxODApO1xyXG4gIGN0eC50cmFuc2xhdGUoLXdpZHRoIC8gMiwgLWhlaWdodCAvIDIpO1xyXG4gIGN0eC5maWxsVGV4dCh3YXRlcm1hcmsudGV4dCwgd2lkdGggLyAyLCBoZWlnaHQgLyAyKTtcclxuICBjb25zdCBiYXNlNjRVcmwgPSBjYW52YXMudG9EYXRhVVJMKCk7XHJcbiAgd2F0ZXJtYXJrRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgd2F0ZXJtYXJrRGl2LmlkID0gd2F0ZXJtYXJrLmlkO1xyXG4gIHdhdGVybWFya0Rpdi5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XHJcbiAgd2F0ZXJtYXJrRGl2LnN0eWxlLmluc2V0ID0gJzAnO1xyXG4gIHdhdGVybWFya0Rpdi5zdHlsZS56SW5kZXggPSAnNTAwMCc7XHJcbiAgd2F0ZXJtYXJrRGl2LnN0eWxlLnBvaW50ZXJFdmVudHMgPSAnbm9uZSc7XHJcbiAgd2F0ZXJtYXJrRGl2LnN0eWxlLmJhY2tncm91bmRJbWFnZSA9IGB1cmwoJHtiYXNlNjRVcmx9KWA7XHJcbiAgd2F0ZXJtYXJrRGl2LnN0eWxlLmJhY2tncm91bmRSZXBlYXQgPSAncmVwZWF0JztcclxuICBjb250YWluZXIuc3R5bGUucG9zaXRpb24gPSAncmVsYXRpdmUnO1xyXG4gIGNvbnRhaW5lci5pbnNlcnRCZWZvcmUod2F0ZXJtYXJrRGl2LCBjb250YWluZXIuZmlyc3RDaGlsZCk7XHJcbn1cclxuIl19
|
package/fesm2015/ngx-rs-ant.mjs
CHANGED
|
@@ -2103,6 +2103,37 @@ function evaluateCondition(condition, model) {
|
|
|
2103
2103
|
default:
|
|
2104
2104
|
return false;
|
|
2105
2105
|
}
|
|
2106
|
+
}
|
|
2107
|
+
function addWatermark(container, watermark) {
|
|
2108
|
+
let watermarkDiv = document.getElementById(watermark.id);
|
|
2109
|
+
if (watermarkDiv) {
|
|
2110
|
+
watermarkDiv.remove();
|
|
2111
|
+
}
|
|
2112
|
+
const width = 5000 / watermark.density;
|
|
2113
|
+
const height = 5000 / watermark.density;
|
|
2114
|
+
const canvas = document.createElement('canvas');
|
|
2115
|
+
canvas.width = width;
|
|
2116
|
+
canvas.height = height;
|
|
2117
|
+
const ctx = canvas.getContext('2d');
|
|
2118
|
+
ctx.textAlign = 'center';
|
|
2119
|
+
ctx.textBaseline = 'middle';
|
|
2120
|
+
ctx.font = `${watermark.size}px ${watermark.font}`;
|
|
2121
|
+
ctx.fillStyle = watermark.color;
|
|
2122
|
+
ctx.translate(width / 2, height / 2);
|
|
2123
|
+
ctx.rotate(watermark.rotate * Math.PI / 180);
|
|
2124
|
+
ctx.translate(-width / 2, -height / 2);
|
|
2125
|
+
ctx.fillText(watermark.text, width / 2, height / 2);
|
|
2126
|
+
const base64Url = canvas.toDataURL();
|
|
2127
|
+
watermarkDiv = document.createElement('div');
|
|
2128
|
+
watermarkDiv.id = watermark.id;
|
|
2129
|
+
watermarkDiv.style.position = 'absolute';
|
|
2130
|
+
watermarkDiv.style.inset = '0';
|
|
2131
|
+
watermarkDiv.style.zIndex = '5000';
|
|
2132
|
+
watermarkDiv.style.pointerEvents = 'none';
|
|
2133
|
+
watermarkDiv.style.backgroundImage = `url(${base64Url})`;
|
|
2134
|
+
watermarkDiv.style.backgroundRepeat = 'repeat';
|
|
2135
|
+
container.style.position = 'relative';
|
|
2136
|
+
container.insertBefore(watermarkDiv, container.firstChild);
|
|
2106
2137
|
}
|
|
2107
2138
|
|
|
2108
2139
|
class CustomTemplateDirective {
|
|
@@ -2182,6 +2213,7 @@ class DataGridFactory {
|
|
|
2182
2213
|
column.cellTemplate = 'cellComponentTemplate';
|
|
2183
2214
|
column.config = field.config;
|
|
2184
2215
|
column.viewConfig = field.viewConfig;
|
|
2216
|
+
column.renderAsync = true;
|
|
2185
2217
|
}
|
|
2186
2218
|
switch (field.type) {
|
|
2187
2219
|
case 'FILE':
|
|
@@ -2247,6 +2279,7 @@ class DataGridFactory {
|
|
|
2247
2279
|
break;
|
|
2248
2280
|
case 'STRING':
|
|
2249
2281
|
column.headerFilter.dataSource = (options) => {
|
|
2282
|
+
// TODO 超过20条会分页添加多次,不分页前端性能差,考虑在构建dataSource时处理,与日期类型存在冲突
|
|
2250
2283
|
options.dataSource.postProcess = (data) => {
|
|
2251
2284
|
data.unshift({
|
|
2252
2285
|
key: '',
|
|
@@ -2427,6 +2460,7 @@ class DataGridFactory {
|
|
|
2427
2460
|
if (loadOptions.dataField) {
|
|
2428
2461
|
// 未重写headerFilter的dataSource时,headerFilter会调用load方法加载筛选树,重写该方法查询该表所有数据
|
|
2429
2462
|
// 该方式存在风险,无法识别DevExtreme一定是通过headerFilter过滤才存在dataField参数
|
|
2463
|
+
// TODO 需要考虑已存在的过滤条件,与带约束的字段存在冲突,此处存在过滤条件,加载列时带约束的字段构建的dataSource获取不到过滤条件
|
|
2430
2464
|
return lastValueFrom(this.service.getColumnDataSource(tenant, className, view, loadOptions.dataField));
|
|
2431
2465
|
}
|
|
2432
2466
|
let params = '?';
|
|
@@ -2904,6 +2938,9 @@ class CellComponentTemplateComponent {
|
|
|
2904
2938
|
const componentRef = this.cellComponentRef.createComponent(plugin.component);
|
|
2905
2939
|
const instance = componentRef.instance;
|
|
2906
2940
|
Object.assign(instance, cellComponentConfig);
|
|
2941
|
+
instance.tenant = this.tenant;
|
|
2942
|
+
instance.className = this.className;
|
|
2943
|
+
instance.oid = this.cellInfo.data.oid;
|
|
2907
2944
|
instance.field = this.cellInfo.column.dataField;
|
|
2908
2945
|
instance.fieldConfig = fieldConfig;
|
|
2909
2946
|
instance.rowData = this.cellInfo.data;
|
|
@@ -2915,11 +2952,15 @@ class CellComponentTemplateComponent {
|
|
|
2915
2952
|
}
|
|
2916
2953
|
}
|
|
2917
2954
|
CellComponentTemplateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CellComponentTemplateComponent, deps: [{ token: DataGridService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2918
|
-
CellComponentTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CellComponentTemplateComponent, selector: "rs-cell-component-template", inputs: { cellInfo: "cellInfo" }, viewQueries: [{ propertyName: "cellComponentRef", first: true, predicate: ["cellComponent"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<ng-container #cellComponent></ng-container>\n", styles: [""] });
|
|
2955
|
+
CellComponentTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CellComponentTemplateComponent, selector: "rs-cell-component-template", inputs: { tenant: "tenant", className: "className", cellInfo: "cellInfo" }, viewQueries: [{ propertyName: "cellComponentRef", first: true, predicate: ["cellComponent"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<ng-container #cellComponent></ng-container>\n", styles: [""] });
|
|
2919
2956
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CellComponentTemplateComponent, decorators: [{
|
|
2920
2957
|
type: Component,
|
|
2921
2958
|
args: [{ selector: 'rs-cell-component-template', template: "<ng-container #cellComponent></ng-container>\n" }]
|
|
2922
|
-
}], ctorParameters: function () { return [{ type: DataGridService }]; }, propDecorators: {
|
|
2959
|
+
}], ctorParameters: function () { return [{ type: DataGridService }]; }, propDecorators: { tenant: [{
|
|
2960
|
+
type: Input
|
|
2961
|
+
}], className: [{
|
|
2962
|
+
type: Input
|
|
2963
|
+
}], cellInfo: [{
|
|
2923
2964
|
type: Input
|
|
2924
2965
|
}], cellComponentRef: [{
|
|
2925
2966
|
type: ViewChild,
|
|
@@ -2978,7 +3019,8 @@ class DataGridComponent {
|
|
|
2978
3019
|
fixed: true,
|
|
2979
3020
|
width: 48,
|
|
2980
3021
|
alignment: 'center',
|
|
2981
|
-
cellTemplate: 'instanceLinkTemplate'
|
|
3022
|
+
cellTemplate: 'instanceLinkTemplate',
|
|
3023
|
+
renderAsync: true
|
|
2982
3024
|
});
|
|
2983
3025
|
}
|
|
2984
3026
|
if (this.showRowNum) {
|
|
@@ -2987,7 +3029,8 @@ class DataGridComponent {
|
|
|
2987
3029
|
fixed: true,
|
|
2988
3030
|
width: 48,
|
|
2989
3031
|
alignment: 'center',
|
|
2990
|
-
cellTemplate: 'rowIndexTemplate'
|
|
3032
|
+
cellTemplate: 'rowIndexTemplate',
|
|
3033
|
+
renderAsync: true
|
|
2991
3034
|
});
|
|
2992
3035
|
}
|
|
2993
3036
|
this.columns = columns;
|
|
@@ -3041,10 +3084,10 @@ class DataGridComponent {
|
|
|
3041
3084
|
}
|
|
3042
3085
|
}
|
|
3043
3086
|
DataGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DataGridComponent, deps: [{ token: DataGridFactory }, { token: DataGridService }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
3044
|
-
DataGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DataGridComponent, selector: "rs-data-grid", inputs: { tenant: "tenant", className: "className", view: "view", filter: "filter", customColumnFn: "customColumnFn", keyExpr: "keyExpr", dataGridName: "dataGridName", height: "height", onlyFrontEnd: "onlyFrontEnd", pageSize: "pageSize", disablePage: "disablePage", dataSource: "dataSource", selectionMode: "selectionMode", selectedRowKeys: "selectedRowKeys", showRowNum: "showRowNum", instanceLinkType: "instanceLinkType", drawerInstanceLinkViewContainerRef: "drawerInstanceLinkViewContainerRef", drawerInstanceLinkSize: "drawerInstanceLinkSize", drawerInstanceLinkShowHeader: "drawerInstanceLinkShowHeader", drawerInstanceLinkFormTemplate: "drawerInstanceLinkFormTemplate" }, outputs: { selectedRowKeysChange: "selectedRowKeysChange", onCellPrepared: "onCellPrepared", onContentReady: "onContentReady", onEditorPreparing: "onEditorPreparing", onRowClick: "onRowClick", onRowDblClick: "onRowDblClick", onSelectionChanged: "onSelectionChanged" }, providers: [DataGridService], queries: [{ propertyName: "rowButtonsTemplate", first: true, predicate: RowButtonsTemplateDirective, descendants: true }, { propertyName: "customTemplate", first: true, predicate: CustomTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "dxDataGrid", first: true, predicate: DxDataGridComponent, descendants: true, static: true }], ngImport: i0, template: "<dx-data-grid [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [showColumnLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [columnAutoWidth]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n columnResizingMode=\"widget\"\r\n dateSerializationFormat=\"yyyy/MM/dd HH:mm:ss\"\r\n [syncLookupFilterValues]=\"false\"\r\n [dataSource]=\"dataSource\"\r\n [columns]=\"columns\"\r\n [height]=\"height\"\r\n [keyExpr]=\"keyExpr\"\r\n [selectedRowKeys]=\"selectedRowKeys\"\r\n (selectedRowKeysChange)=\"selectedRowKeysChange.emit($event)\"\r\n (onCellPrepared)=\"onCellPrepared.emit($event)\"\r\n (onContentReady)=\"onContentReady.emit($event)\"\r\n (onEditorPreparing)=\"onDxDataGridEditorPreparing($event)\"\r\n (onRowClick)=\"onRowClick.emit($event)\"\r\n (onRowDblClick)=\"onRowDblClick.emit($event)\"\r\n (onSelectionChanged)=\"onSelectionChanged.emit($event)\">\r\n <dxo-sorting mode=\"multiple\"></dxo-sorting>\r\n <dxo-selection [mode]=\"selectionMode\" selectAllMode=\"page\" showCheckBoxesMode=\"always\"></dxo-selection>\r\n <dxo-header-filter [visible]=\"!onlyFrontEnd\">\r\n <dxo-search [enabled]=\"true\"></dxo-search>\r\n <dxo-texts [ok]=\"'\u786E\u5B9A'\"></dxo-texts>\r\n </dxo-header-filter>\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-remote-operations [filtering]=\"!onlyFrontEnd\"\r\n [sorting]=\"!onlyFrontEnd\"\r\n [paging]=\"!onlyFrontEnd\">\r\n </dxo-remote-operations>\r\n <dxo-paging [enabled]=\"!disablePage\" [pageSize]=\"pageSize\"></dxo-paging>\r\n <dxo-pager [visible]=\"!disablePage\"\r\n [showInfo]=\"true\"\r\n infoText=\"\u7B2C{0}\u9875\uFF0C\u5171{1}\u9875\uFF08\u5171{2}\u4E2A\u9879\u76EE\uFF09\"\r\n [showPageSizeSelector]=\"true\"\r\n [allowedPageSizes]=\"allowedPageSizes\"\r\n ></dxo-pager>\r\n <dxo-scrolling showScrollbar=\"always\"></dxo-scrolling>\r\n <div *dxTemplate=\"let cellInfo of 'rowIndexTemplate'\">\r\n {{ cellInfo.rowIndex + 1 }}\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'instanceLinkTemplate'\">\r\n <rs-instance-link-template [tenant]=\"tenant\"\r\n [className]=\"className\"\r\n [oid]=\"cellInfo.data.oid\"\r\n [instanceLinkType]=\"instanceLinkType\"\r\n [drawerViewContainerRef]=\"drawerInstanceLinkViewContainerRef\"\r\n [drawerSize]=\"drawerInstanceLinkSize\"\r\n [drawerShowHeader]=\"drawerInstanceLinkShowHeader\"\r\n [drawerFormTemplate]=\"drawerInstanceLinkFormTemplate\">\r\n </rs-instance-link-template>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'cellComponentTemplate'\">\r\n <rs-cell-component-template [cellInfo]=\"cellInfo\"></rs-cell-component-template>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'rowButtonsTemplate'\">\r\n <ng-container [ngTemplateOutlet]=\"rowButtonsTemplate.templateRef\"\r\n [ngTemplateOutletContext]=\"{$implicit: cellInfo, cellTemplateLoaded$: service.cellTemplateLoaded$}\"></ng-container>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'customTemplate'\">\r\n <ng-container [ngTemplateOutlet]=\"customTemplate.templateRef\"\r\n [ngTemplateOutletContext]=\"{$implicit: cellInfo, cellTemplateLoaded$: service.cellTemplateLoaded$}\"></ng-container>\r\n </div>\r\n</dx-data-grid>\r\n", styles: [":host{min-height:120px;display:flex;flex-flow:column nowrap}:host dx-data-grid{flex:auto;height:0}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$2.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i5.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExporting", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i6.DxoSearchComponent, selector: "dxo-search", inputs: ["editorOptions", "enabled", "timeout", "mode", "searchExpr"] }, { kind: "component", type: i6.DxoSelectionComponent, selector: "dxo-selection", inputs: ["allowSelectAll", "recursive", "selectByClick", "deferred", "mode", "selectAllMode", "showCheckBoxesMode"] }, { kind: "component", type: i6.DxoTextsComponent, selector: "dxo-texts", inputs: ["fix", "leftPosition", "rightPosition", "unfix", "addRow", "cancelAllChanges", "cancelRowChanges", "confirmDeleteMessage", "confirmDeleteTitle", "deleteRow", "editRow", "saveAllChanges", "saveRowChanges", "undeleteRow", "validationCancelChanges", "exportAll", "exportSelectedRows", "exportTo", "clearFilter", "createFilter", "filterEnabledHint", "groupByThisColumn", "groupContinuedMessage", "groupContinuesMessage", "ungroup", "ungroupAll", "cancel", "emptyValue", "ok", "avg", "avgOtherColumn", "count", "max", "maxOtherColumn", "min", "minOtherColumn", "sum", "sumOtherColumn", "allFields", "columnFields", "dataFields", "filterFields", "rowFields", "columnFieldArea", "dataFieldArea", "filterFieldArea", "rowFieldArea", "collapseAll", "dataNotAvailable", "expandAll", "exportToExcel", "grandTotal", "noData", "removeAllSorting", "showFieldChooser", "sortColumnBySummary", "sortRowBySummary", "total", "addRowToNode"] }, { kind: "component", type: i6.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "allowSelectAll", "dataSource", "groupInterval", "height", "search", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i6.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i6.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "label", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i6.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i6.DxoRemoteOperationsComponent, selector: "dxo-remote-operations", inputs: ["filtering", "grouping", "groupPaging", "paging", "sorting", "summary"] }, { kind: "component", type: i6.DxoScrollingComponent, selector: "dxo-scrolling", inputs: ["columnRenderingMode", "mode", "preloadEnabled", "renderAsync", "rowRenderingMode", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative"] }, { kind: "component", type: i6.DxoSortingComponent, selector: "dxo-sorting", inputs: ["ascendingText", "clearText", "descendingText", "mode", "showSortIndexes"] }, { kind: "component", type: InstanceLinkTemplateComponent, selector: "rs-instance-link-template", inputs: ["tenant", "className", "oid", "instanceLinkType", "drawerViewContainerRef", "drawerSize", "drawerShowHeader", "drawerFormTemplate"] }, { kind: "component", type: CellComponentTemplateComponent, selector: "rs-cell-component-template", inputs: ["cellInfo"] }] });
|
|
3087
|
+
DataGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DataGridComponent, selector: "rs-data-grid", inputs: { tenant: "tenant", className: "className", view: "view", filter: "filter", customColumnFn: "customColumnFn", keyExpr: "keyExpr", dataGridName: "dataGridName", height: "height", onlyFrontEnd: "onlyFrontEnd", pageSize: "pageSize", disablePage: "disablePage", dataSource: "dataSource", selectionMode: "selectionMode", selectedRowKeys: "selectedRowKeys", showRowNum: "showRowNum", instanceLinkType: "instanceLinkType", drawerInstanceLinkViewContainerRef: "drawerInstanceLinkViewContainerRef", drawerInstanceLinkSize: "drawerInstanceLinkSize", drawerInstanceLinkShowHeader: "drawerInstanceLinkShowHeader", drawerInstanceLinkFormTemplate: "drawerInstanceLinkFormTemplate" }, outputs: { selectedRowKeysChange: "selectedRowKeysChange", onCellPrepared: "onCellPrepared", onContentReady: "onContentReady", onEditorPreparing: "onEditorPreparing", onRowClick: "onRowClick", onRowDblClick: "onRowDblClick", onSelectionChanged: "onSelectionChanged" }, providers: [DataGridService], queries: [{ propertyName: "rowButtonsTemplate", first: true, predicate: RowButtonsTemplateDirective, descendants: true }, { propertyName: "customTemplate", first: true, predicate: CustomTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "dxDataGrid", first: true, predicate: DxDataGridComponent, descendants: true, static: true }], ngImport: i0, template: "<dx-data-grid [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [showColumnLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [columnAutoWidth]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n columnResizingMode=\"widget\"\r\n dateSerializationFormat=\"yyyy/MM/dd HH:mm:ss\"\r\n [syncLookupFilterValues]=\"false\"\r\n [dataSource]=\"dataSource\"\r\n [columns]=\"columns\"\r\n [height]=\"height\"\r\n [keyExpr]=\"keyExpr\"\r\n [selectedRowKeys]=\"selectedRowKeys\"\r\n (selectedRowKeysChange)=\"selectedRowKeysChange.emit($event)\"\r\n (onCellPrepared)=\"onCellPrepared.emit($event)\"\r\n (onContentReady)=\"onContentReady.emit($event)\"\r\n (onEditorPreparing)=\"onDxDataGridEditorPreparing($event)\"\r\n (onRowClick)=\"onRowClick.emit($event)\"\r\n (onRowDblClick)=\"onRowDblClick.emit($event)\"\r\n (onSelectionChanged)=\"onSelectionChanged.emit($event)\">\r\n <dxo-sorting mode=\"multiple\"></dxo-sorting>\r\n <dxo-selection [mode]=\"selectionMode\" selectAllMode=\"page\" showCheckBoxesMode=\"always\"></dxo-selection>\r\n <dxo-header-filter [visible]=\"!onlyFrontEnd\">\r\n <dxo-search [enabled]=\"true\"></dxo-search>\r\n <dxo-texts [ok]=\"'\u786E\u5B9A'\"></dxo-texts>\r\n </dxo-header-filter>\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-remote-operations [filtering]=\"!onlyFrontEnd\"\r\n [sorting]=\"!onlyFrontEnd\"\r\n [paging]=\"!onlyFrontEnd\">\r\n </dxo-remote-operations>\r\n <dxo-paging [enabled]=\"!disablePage\" [pageSize]=\"pageSize\"></dxo-paging>\r\n <dxo-pager [visible]=\"!disablePage\"\r\n [showInfo]=\"true\"\r\n infoText=\"\u7B2C{0}\u9875\uFF0C\u5171{1}\u9875\uFF08\u5171{2}\u4E2A\u9879\u76EE\uFF09\"\r\n [showPageSizeSelector]=\"true\"\r\n [allowedPageSizes]=\"allowedPageSizes\"\r\n ></dxo-pager>\r\n <dxo-scrolling showScrollbar=\"always\"></dxo-scrolling>\r\n <div *dxTemplate=\"let cellInfo of 'rowIndexTemplate'\">\r\n {{ cellInfo.rowIndex + 1 }}\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'instanceLinkTemplate'\">\r\n <rs-instance-link-template [tenant]=\"tenant\"\r\n [className]=\"className\"\r\n [oid]=\"cellInfo.data.oid\"\r\n [instanceLinkType]=\"instanceLinkType\"\r\n [drawerViewContainerRef]=\"drawerInstanceLinkViewContainerRef\"\r\n [drawerSize]=\"drawerInstanceLinkSize\"\r\n [drawerShowHeader]=\"drawerInstanceLinkShowHeader\"\r\n [drawerFormTemplate]=\"drawerInstanceLinkFormTemplate\">\r\n </rs-instance-link-template>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'cellComponentTemplate'\">\r\n <rs-cell-component-template [tenant]=\"tenant\" [className]=\"className\"\r\n [cellInfo]=\"cellInfo\"></rs-cell-component-template>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'rowButtonsTemplate'\">\r\n <ng-container [ngTemplateOutlet]=\"rowButtonsTemplate.templateRef\"\r\n [ngTemplateOutletContext]=\"{$implicit: cellInfo, cellTemplateLoaded$: service.cellTemplateLoaded$}\"></ng-container>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'customTemplate'\">\r\n <ng-container [ngTemplateOutlet]=\"customTemplate.templateRef\"\r\n [ngTemplateOutletContext]=\"{$implicit: cellInfo, cellTemplateLoaded$: service.cellTemplateLoaded$}\"></ng-container>\r\n </div>\r\n</dx-data-grid>\r\n", styles: [":host{min-height:120px;display:flex;flex-flow:column nowrap}:host dx-data-grid{flex:auto;height:0}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$2.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i5.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExporting", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i6.DxoSearchComponent, selector: "dxo-search", inputs: ["editorOptions", "enabled", "timeout", "mode", "searchExpr"] }, { kind: "component", type: i6.DxoSelectionComponent, selector: "dxo-selection", inputs: ["allowSelectAll", "recursive", "selectByClick", "deferred", "mode", "selectAllMode", "showCheckBoxesMode"] }, { kind: "component", type: i6.DxoTextsComponent, selector: "dxo-texts", inputs: ["fix", "leftPosition", "rightPosition", "unfix", "addRow", "cancelAllChanges", "cancelRowChanges", "confirmDeleteMessage", "confirmDeleteTitle", "deleteRow", "editRow", "saveAllChanges", "saveRowChanges", "undeleteRow", "validationCancelChanges", "exportAll", "exportSelectedRows", "exportTo", "clearFilter", "createFilter", "filterEnabledHint", "groupByThisColumn", "groupContinuedMessage", "groupContinuesMessage", "ungroup", "ungroupAll", "cancel", "emptyValue", "ok", "avg", "avgOtherColumn", "count", "max", "maxOtherColumn", "min", "minOtherColumn", "sum", "sumOtherColumn", "allFields", "columnFields", "dataFields", "filterFields", "rowFields", "columnFieldArea", "dataFieldArea", "filterFieldArea", "rowFieldArea", "collapseAll", "dataNotAvailable", "expandAll", "exportToExcel", "grandTotal", "noData", "removeAllSorting", "showFieldChooser", "sortColumnBySummary", "sortRowBySummary", "total", "addRowToNode"] }, { kind: "component", type: i6.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "allowSelectAll", "dataSource", "groupInterval", "height", "search", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i6.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i6.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "label", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i6.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i6.DxoRemoteOperationsComponent, selector: "dxo-remote-operations", inputs: ["filtering", "grouping", "groupPaging", "paging", "sorting", "summary"] }, { kind: "component", type: i6.DxoScrollingComponent, selector: "dxo-scrolling", inputs: ["columnRenderingMode", "mode", "preloadEnabled", "renderAsync", "rowRenderingMode", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative"] }, { kind: "component", type: i6.DxoSortingComponent, selector: "dxo-sorting", inputs: ["ascendingText", "clearText", "descendingText", "mode", "showSortIndexes"] }, { kind: "component", type: InstanceLinkTemplateComponent, selector: "rs-instance-link-template", inputs: ["tenant", "className", "oid", "instanceLinkType", "drawerViewContainerRef", "drawerSize", "drawerShowHeader", "drawerFormTemplate"] }, { kind: "component", type: CellComponentTemplateComponent, selector: "rs-cell-component-template", inputs: ["tenant", "className", "cellInfo"] }] });
|
|
3045
3088
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DataGridComponent, decorators: [{
|
|
3046
3089
|
type: Component,
|
|
3047
|
-
args: [{ selector: 'rs-data-grid', providers: [DataGridService], template: "<dx-data-grid [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [showColumnLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [columnAutoWidth]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n columnResizingMode=\"widget\"\r\n dateSerializationFormat=\"yyyy/MM/dd HH:mm:ss\"\r\n [syncLookupFilterValues]=\"false\"\r\n [dataSource]=\"dataSource\"\r\n [columns]=\"columns\"\r\n [height]=\"height\"\r\n [keyExpr]=\"keyExpr\"\r\n [selectedRowKeys]=\"selectedRowKeys\"\r\n (selectedRowKeysChange)=\"selectedRowKeysChange.emit($event)\"\r\n (onCellPrepared)=\"onCellPrepared.emit($event)\"\r\n (onContentReady)=\"onContentReady.emit($event)\"\r\n (onEditorPreparing)=\"onDxDataGridEditorPreparing($event)\"\r\n (onRowClick)=\"onRowClick.emit($event)\"\r\n (onRowDblClick)=\"onRowDblClick.emit($event)\"\r\n (onSelectionChanged)=\"onSelectionChanged.emit($event)\">\r\n <dxo-sorting mode=\"multiple\"></dxo-sorting>\r\n <dxo-selection [mode]=\"selectionMode\" selectAllMode=\"page\" showCheckBoxesMode=\"always\"></dxo-selection>\r\n <dxo-header-filter [visible]=\"!onlyFrontEnd\">\r\n <dxo-search [enabled]=\"true\"></dxo-search>\r\n <dxo-texts [ok]=\"'\u786E\u5B9A'\"></dxo-texts>\r\n </dxo-header-filter>\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-remote-operations [filtering]=\"!onlyFrontEnd\"\r\n [sorting]=\"!onlyFrontEnd\"\r\n [paging]=\"!onlyFrontEnd\">\r\n </dxo-remote-operations>\r\n <dxo-paging [enabled]=\"!disablePage\" [pageSize]=\"pageSize\"></dxo-paging>\r\n <dxo-pager [visible]=\"!disablePage\"\r\n [showInfo]=\"true\"\r\n infoText=\"\u7B2C{0}\u9875\uFF0C\u5171{1}\u9875\uFF08\u5171{2}\u4E2A\u9879\u76EE\uFF09\"\r\n [showPageSizeSelector]=\"true\"\r\n [allowedPageSizes]=\"allowedPageSizes\"\r\n ></dxo-pager>\r\n <dxo-scrolling showScrollbar=\"always\"></dxo-scrolling>\r\n <div *dxTemplate=\"let cellInfo of 'rowIndexTemplate'\">\r\n {{ cellInfo.rowIndex + 1 }}\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'instanceLinkTemplate'\">\r\n <rs-instance-link-template [tenant]=\"tenant\"\r\n [className]=\"className\"\r\n [oid]=\"cellInfo.data.oid\"\r\n [instanceLinkType]=\"instanceLinkType\"\r\n [drawerViewContainerRef]=\"drawerInstanceLinkViewContainerRef\"\r\n [drawerSize]=\"drawerInstanceLinkSize\"\r\n [drawerShowHeader]=\"drawerInstanceLinkShowHeader\"\r\n [drawerFormTemplate]=\"drawerInstanceLinkFormTemplate\">\r\n </rs-instance-link-template>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'cellComponentTemplate'\">\r\n <rs-cell-component-template [cellInfo]=\"cellInfo\"></rs-cell-component-template>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'rowButtonsTemplate'\">\r\n <ng-container [ngTemplateOutlet]=\"rowButtonsTemplate.templateRef\"\r\n [ngTemplateOutletContext]=\"{$implicit: cellInfo, cellTemplateLoaded$: service.cellTemplateLoaded$}\"></ng-container>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'customTemplate'\">\r\n <ng-container [ngTemplateOutlet]=\"customTemplate.templateRef\"\r\n [ngTemplateOutletContext]=\"{$implicit: cellInfo, cellTemplateLoaded$: service.cellTemplateLoaded$}\"></ng-container>\r\n </div>\r\n</dx-data-grid>\r\n", styles: [":host{min-height:120px;display:flex;flex-flow:column nowrap}:host dx-data-grid{flex:auto;height:0}\n"] }]
|
|
3090
|
+
args: [{ selector: 'rs-data-grid', providers: [DataGridService], template: "<dx-data-grid [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [showColumnLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [columnAutoWidth]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n columnResizingMode=\"widget\"\r\n dateSerializationFormat=\"yyyy/MM/dd HH:mm:ss\"\r\n [syncLookupFilterValues]=\"false\"\r\n [dataSource]=\"dataSource\"\r\n [columns]=\"columns\"\r\n [height]=\"height\"\r\n [keyExpr]=\"keyExpr\"\r\n [selectedRowKeys]=\"selectedRowKeys\"\r\n (selectedRowKeysChange)=\"selectedRowKeysChange.emit($event)\"\r\n (onCellPrepared)=\"onCellPrepared.emit($event)\"\r\n (onContentReady)=\"onContentReady.emit($event)\"\r\n (onEditorPreparing)=\"onDxDataGridEditorPreparing($event)\"\r\n (onRowClick)=\"onRowClick.emit($event)\"\r\n (onRowDblClick)=\"onRowDblClick.emit($event)\"\r\n (onSelectionChanged)=\"onSelectionChanged.emit($event)\">\r\n <dxo-sorting mode=\"multiple\"></dxo-sorting>\r\n <dxo-selection [mode]=\"selectionMode\" selectAllMode=\"page\" showCheckBoxesMode=\"always\"></dxo-selection>\r\n <dxo-header-filter [visible]=\"!onlyFrontEnd\">\r\n <dxo-search [enabled]=\"true\"></dxo-search>\r\n <dxo-texts [ok]=\"'\u786E\u5B9A'\"></dxo-texts>\r\n </dxo-header-filter>\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-remote-operations [filtering]=\"!onlyFrontEnd\"\r\n [sorting]=\"!onlyFrontEnd\"\r\n [paging]=\"!onlyFrontEnd\">\r\n </dxo-remote-operations>\r\n <dxo-paging [enabled]=\"!disablePage\" [pageSize]=\"pageSize\"></dxo-paging>\r\n <dxo-pager [visible]=\"!disablePage\"\r\n [showInfo]=\"true\"\r\n infoText=\"\u7B2C{0}\u9875\uFF0C\u5171{1}\u9875\uFF08\u5171{2}\u4E2A\u9879\u76EE\uFF09\"\r\n [showPageSizeSelector]=\"true\"\r\n [allowedPageSizes]=\"allowedPageSizes\"\r\n ></dxo-pager>\r\n <dxo-scrolling showScrollbar=\"always\"></dxo-scrolling>\r\n <div *dxTemplate=\"let cellInfo of 'rowIndexTemplate'\">\r\n {{ cellInfo.rowIndex + 1 }}\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'instanceLinkTemplate'\">\r\n <rs-instance-link-template [tenant]=\"tenant\"\r\n [className]=\"className\"\r\n [oid]=\"cellInfo.data.oid\"\r\n [instanceLinkType]=\"instanceLinkType\"\r\n [drawerViewContainerRef]=\"drawerInstanceLinkViewContainerRef\"\r\n [drawerSize]=\"drawerInstanceLinkSize\"\r\n [drawerShowHeader]=\"drawerInstanceLinkShowHeader\"\r\n [drawerFormTemplate]=\"drawerInstanceLinkFormTemplate\">\r\n </rs-instance-link-template>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'cellComponentTemplate'\">\r\n <rs-cell-component-template [tenant]=\"tenant\" [className]=\"className\"\r\n [cellInfo]=\"cellInfo\"></rs-cell-component-template>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'rowButtonsTemplate'\">\r\n <ng-container [ngTemplateOutlet]=\"rowButtonsTemplate.templateRef\"\r\n [ngTemplateOutletContext]=\"{$implicit: cellInfo, cellTemplateLoaded$: service.cellTemplateLoaded$}\"></ng-container>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'customTemplate'\">\r\n <ng-container [ngTemplateOutlet]=\"customTemplate.templateRef\"\r\n [ngTemplateOutletContext]=\"{$implicit: cellInfo, cellTemplateLoaded$: service.cellTemplateLoaded$}\"></ng-container>\r\n </div>\r\n</dx-data-grid>\r\n", styles: [":host{min-height:120px;display:flex;flex-flow:column nowrap}:host dx-data-grid{flex:auto;height:0}\n"] }]
|
|
3048
3091
|
}], ctorParameters: function () { return [{ type: DataGridFactory }, { type: DataGridService }, { type: i0.ViewContainerRef }]; }, propDecorators: { tenant: [{
|
|
3049
3092
|
type: Input
|
|
3050
3093
|
}], className: [{
|
|
@@ -4083,5 +4126,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
4083
4126
|
* Generated bundle index. Do not edit.
|
|
4084
4127
|
*/
|
|
4085
4128
|
|
|
4086
|
-
export { BoxContainerComponent, BoxContainerModule, CamundaBpmnEditorComponent, CamundaBpmnEditorModule, CamundaBpmnViewerComponent, CamundaBpmnViewerModule, CellComponentBase, CellConfigBase, ChangeFilter, CodeEditorComponent, CodeEditorModule, CustomTemplateDirective, DataGridComponent, DataGridFactory, DataGridModule, DataGridService, DrawerComponent, DrawerModule, DrawerService, DxNativeElementPipe, DynamicParamsComponent, DynamicParamsModule, FieldSelectorComponent, FormComponent, FormItemComponentBase, FormItemConfigBase, FormModule, FormService, FullscreenDirective, IconSelectorComponent, IconSelectorModule, ItemConfigComponent, ItemStyleComponent, ModalComponent, ModalComponentBase, ModalConfigBase, ModalModule, ModalService, PageItemComponentBase, PageItemConfigBase, PdfViewerComponent, PluginManager, RowButtonsTemplateDirective, TooltipContentTemplateDirective, WebsocketModule, WebsocketService, deepClone, download_file, evaluateFilter, file_type_icon, filename_from_disposition, format_file_size, localeSortMethod, notify_error, notify_success, notify_warning, openBrowserTab, support_preview_ext, validate, validate_group, validate_group_by_name };
|
|
4129
|
+
export { BoxContainerComponent, BoxContainerModule, CamundaBpmnEditorComponent, CamundaBpmnEditorModule, CamundaBpmnViewerComponent, CamundaBpmnViewerModule, CellComponentBase, CellConfigBase, ChangeFilter, CodeEditorComponent, CodeEditorModule, CustomTemplateDirective, DataGridComponent, DataGridFactory, DataGridModule, DataGridService, DrawerComponent, DrawerModule, DrawerService, DxNativeElementPipe, DynamicParamsComponent, DynamicParamsModule, FieldSelectorComponent, FormComponent, FormItemComponentBase, FormItemConfigBase, FormModule, FormService, FullscreenDirective, IconSelectorComponent, IconSelectorModule, ItemConfigComponent, ItemStyleComponent, ModalComponent, ModalComponentBase, ModalConfigBase, ModalModule, ModalService, PageItemComponentBase, PageItemConfigBase, PdfViewerComponent, PluginManager, RowButtonsTemplateDirective, TooltipContentTemplateDirective, WebsocketModule, WebsocketService, addWatermark, deepClone, download_file, evaluateFilter, file_type_icon, filename_from_disposition, format_file_size, localeSortMethod, notify_error, notify_success, notify_warning, openBrowserTab, support_preview_ext, validate, validate_group, validate_group_by_name };
|
|
4087
4130
|
//# sourceMappingURL=ngx-rs-ant.mjs.map
|