@libs-ui/components-table 0.2.179 → 0.2.182
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/esm2022/interfaces/table-config.interface.mjs +1 -1
- package/esm2022/pipes/calculator-column.pipe.mjs +52 -0
- package/esm2022/table.component.mjs +49 -12
- package/esm2022/templates/templates.component.mjs +9 -9
- package/fesm2022/libs-ui-components-table.mjs +106 -20
- package/fesm2022/libs-ui-components-table.mjs.map +1 -1
- package/interfaces/table-config.interface.d.ts +1 -0
- package/package.json +23 -23
- package/pipes/calculator-column.pipe.d.ts +9 -0
- package/table.component.d.ts +14 -6
- package/templates/templates.component.d.ts +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29uZmlnLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy90YWJsZS9zcmMvaW50ZXJmYWNlcy90YWJsZS1jb25maWcuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBUWVBFX1NPUlRfVFlQRSB9IGZyb20gXCJAbGlicy11aS9jb21wb25lbnRzLWJ1dHRvbnMtc29ydFwiO1xuaW1wb3J0IHsgSVBvcG92ZXIsIFRZUEVfUE9QT1ZFUl9UWVBFIH0gZnJvbSBcIkBsaWJzLXVpL2NvbXBvbmVudHMtcG9wb3ZlclwiO1xuaW1wb3J0IHsgVFlQRV9GVU5DVElPTiwgVFlQRV9PQkpFQ1QgfSBmcm9tIFwiQGxpYnMtdWkvaW50ZXJmYWNlcy10eXBlc1wiO1xuaW1wb3J0IHsgSVRhYmxlVGVtcGxhdGVDb25maWcgfSBmcm9tIFwiLi90ZW1wbGF0ZS1jb25maWcuaW50ZXJmYWNlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRhYmxlSGVhZGVyQ29uZmlnIHtcbiAgbmdTdHlsZT86IFRZUEVfT0JKRUNUO1xuICBrZWVwV2lkdGhDb2x1bW5JZlRhYmxlV2lkaHRHcmFuZFRvdGFsQ29sdW1uc0hlYWRlcj86IGJvb2xlYW47XG4gIG5nQ2xhc3M/OiBUWVBFX09CSkVDVDtcbiAgdHlwZT86IFRZUEVfUE9QT1ZFUl9UWVBFO1xuICBsYWJlbD86IHN0cmluZyB8IFRZUEVfT0JKRUNUO1xuICBsYWJlbENvbmZpZz86IElQb3BvdmVyOyAvLyBjb25maWcgZGF0YVZpZXcga2jDtG5nIGPDsyB0w6FjIGThu6VuZywgc+G7rSBk4bulbmcgbGFiZWwgxJHhu4MgY29uZmlnLlxuICBwYXJzZVZhbHVlPzogVFlQRV9GVU5DVElPTjsgLy8gZMO5bmcga2hpIG114buRbiBjdXN0b20gbGFiZWwgaGVhZGVyXG4gIHRvb2x0aXBPdGhlcj86IElQb3BvdmVyOyAvLyBEw7luZyBraGkgaGVhZGVyIHRhYmxlIGPDsyB0b29sdGlwXG4gIGhhc0NoZWNrYm94PzogYm9vbGVhbjsgLy8gRMO5bmcga2hpIGPDsyBjaGVja2JveFxuICBoYXNDaGVja2JveEFsbD86IGJvb2xlYW47IC8vIETDuW5nIGtoaSBjw7MgY2hlY2tib3hcbiAgY2hlY2tib3hBbGlnbkNlbnRlcj86IGJvb2xlYW47XG4gIGNvbnRlbnRIZWFkZXJBbGlnbkNlbnRlcj86IGJvb2xlYW47IC8vIGTDuW5nIMSR4buDIGPEg24gZ2nhu69hIG7hu5lpIGR1bmcga2hpIGPDsyB0aMOqbSB0b29sdGlwT3RoZXJcbiAgY29udGVudEhlYWRlckp1c3RpZnlDb250ZW50RW5kPzogYm9vbGVhbjsgLy8gZMO5bmcgxJHhu4MgY8SDbiBu4buZaSBkdW5nIHZlIGJlbiBwaGFpXG4gIGlnbm9yZUJvcmRlclJpZ2h0PzogYm9vbGVhbjtcbiAgaGFzU29ydD86IGJvb2xlYW47XG4gIG9yZGVyYnk/OiBzdHJpbmc7IC8vIG9yZGVyIGNvdCB0aGVvIHRydW9uZyBuYW8uXG4gIHBhZGRpbmdMZWZ0UmlnaHRIZWFkZXJDb250YWluZXI/OiBzdHJpbmc7IC8vIHBhZGRpbmcgY2hvIGhlYWRlclxuICBpZ25vcmVQeURlZmF1bHQ/OiBib29sZWFuOyAvLyB04bqvdCBwYWRkaW5nIGRlZmF1bHQgaGVhZGVyXG4gIHRlbXBsYXRlQ3NzV3JhcHBlcj86IHN0cmluZztcbiAgdGVtcGxhdGVDc3NXcmFwcGVySG9zdD86IHN0cmluZztcbiAgY29sVGVtcGxhdGVDb25maWc/OiBBcnJheTxJVGFibGVUZW1wbGF0ZUNvbmZpZz47XG4gIHNvcnRJZ25vcmVUb29sdGlwQ29udGVudD86IGJvb2xlYW47XG4gIHNvcnRUb29sdGlwQ29udGVudEFzYz86IHN0cmluZztcbiAgc29ydFRvb2x0aXBDb250ZW50RGVzYz86IHN0cmluZztcbiAgekluZGV4VG9vbHRpcFNvcnQ/OiBudW1iZXI7XG4gIGRlZmF1bHRNb2RlPzogVFlQRV9TT1JUX1RZUEU7XG4gIGxhYmVsRGVzY3JpcHRpb24/OiB7XG4gICAgY29udGVudDogc3RyaW5nO1xuICAgIGNsYXNzSW5jbHVkZT86IHN0cmluZztcbiAgfTtcbiAgcm93c0NvbmZpZz86IHtcbiAgICBjbGFzc0NvbnRhaW5lclJvd3M/OiBzdHJpbmc7XG4gICAgcm93czogQXJyYXk8eyBjbGFzc1Jvdz86IHN0cmluZzsgY29sczogQXJyYXk8SVRhYmxlSGVhZGVyQ29uZmlnQ29sPiB9PjtcbiAgfTtcbiAgY2hlY2tib3hDbGFzc0luY2x1ZGU/OiBzdHJpbmc7XG4gIGNoZWNrQ29uZGl0aW9uQ2hlY2tCb3hIaWRkZW4/OiBUWVBFX0ZVTkNUSU9OPGJvb2xlYW4+OyAvLyBEw7luZyBraGkgY8OzIGNoZWNrYm94IG5oxrBuZyBjw7MgxJFp4buBdSBraeG7h24gYuG7lSBzdW5nIMSR4buDIOG6qW4gxJFpIGNoZWNrYm94IGPhu6dhIDEgdsOgaSBpdGVtXG4gIGNoZWNrYm94QWxsQ2xhc3NJbmNsdWRlPzogc3RyaW5nO1xuICBpc1Nob3dJbmRleE9uUm93PzogYm9vbGVhbjtcbiAgY2xhc3NJbmNsdWRlSW5kZXhPblJvdz86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVGFibGVIZWFkZXJDb25maWdDb2wge1xuICBuZ1N0eWxlPzogVFlQRV9PQkpFQ1Q7XG4gIG5nQ2xhc3M/OiBUWVBFX09CSkVDVDtcbiAgdHlwZT86IFRZUEVfUE9QT1ZFUl9UWVBFO1xuICBsYWJlbD86IHN0cmluZyB8IFRZUEVfT0JKRUNUO1xuICBsYWJlbENvbmZpZz86IElQb3BvdmVyOyAvLyBjb25maWcgZGF0YVZpZXcga2jDtG5nIGPDsyB0w6FjIGThu6VuZywgc+G7rSBk4bulbmcgbGFiZWwgxJHhu4MgY29uZmlnLlxuICBwYXJzZVZhbHVlPzogVFlQRV9GVU5DVElPTjsgLy8gZMO5bmcga2hpIG114buRbiBjdXN0b20gbGFiZWwgaGVhZGVyXG4gIHRvb2x0aXBPdGhlcj86IElQb3BvdmVyOyAvLyBEw7luZyBraGkgaGVhZGVyIHRhYmxlIGPDsyB0b29sdGlwXG4gIGNvbnRlbnRIZWFkZXJBbGlnbkNlbnRlcj86IGJvb2xlYW47IC8vIGTDuW5nIMSR4buDIGPEg24gZ2nhu69hIG7hu5lpIGR1bmcga2hpIGPDsyB0aMOqbSB0b29sdGlwT3RoZXJcbiAgY29udGVudEhlYWRlckp1c3RpZnlDb250ZW50RW5kPzogYm9vbGVhbjsgLy8gZMO5bmcgxJHhu4MgY8SDbiBu4buZaSBkdW5nIHZlIGJlbiBwaGFpXG4gIGhhc1NvcnQ/OiBib29sZWFuO1xuICBvcmRlcmJ5Pzogc3RyaW5nOyAvLyBvcmRlciBjb3QgdGhlbyB0cnVvbmcgbmFvLlxuICBzb3J0SWdub3JlVG9vbHRpcENvbnRlbnQ/OiBib29sZWFuO1xuICBzb3J0VG9vbHRpcENvbnRlbnRBc2M/OiBzdHJpbmc7XG4gIHNvcnRUb29sdGlwQ29udGVudERlc2M/OiBzdHJpbmc7XG4gIGRlZmF1bHRNb2RlPzogVFlQRV9TT1JUX1RZUEU7XG4gIGxhYmVsRGVzY3JpcHRpb24/OiB7XG4gICAgY29udGVudDogc3RyaW5nO1xuICAgIGNsYXNzSW5jbHVkZT86IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ29uZmlnVGVtcGxhdGVJdGVtQ29sbGFwc2VFeHBhbmQge1xuICBmaWVsZEdldERhdGFFeHBhbmQ/OiBzdHJpbmc7XG4gIGNzc1dyYXBwZXI/OiBzdHJpbmc7XG4gIHRlbXBsYXRlQ3NzV3JhcHBlcj86IHN0cmluZztcbiAgY29sVGVtcGxhdGVDb25maWc/OiBBcnJheTxJVGFibGVUZW1wbGF0ZUNvbmZpZz47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRhYmxlRm9vdGVyQ29uZmlnIHtcbiAgaWdub3JlQm9yZGVyUmlnaHQ/OiBib29sZWFuO1xuICBuZ1N0eWxlPzogVFlQRV9PQkpFQ1Q7XG4gIG5nQ2xhc3M/OiBUWVBFX09CSkVDVDtcbiAgdGVtcGxhdGVDc3NXcmFwcGVyPzogc3RyaW5nO1xuICBjb2xUZW1wbGF0ZUNvbmZpZz86IEFycmF5PElUYWJsZVRlbXBsYXRlQ29uZmlnPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ29uZmlnU2VsZWN0TW9yZUl0ZW0ge1xuICBrZXlQZXJQYWdlPzogc3RyaW5nO1xuICBwYWdpbmdOdW1iZXI/OiBib29sZWFuO1xuICBnZXRWYWx1ZTogKGl0ZW06IGFueSkgPT4gc3RyaW5nOyAvLyBsw6AgaMOgbSBnZXQgdmFsdWUgY+G7p2EgbGlzdFZpZXcgdHlwZSB0ZXh0XG4gIGxpc3RPcHRpb246IEFycmF5PHsga2V5OiBzdHJpbmc7IGxhYmVsOiBzdHJpbmc7IH0+O1xufSJdfQ==
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class LibsUiTableCalculatorColumnPipe {
|
|
4
|
+
transform(header, offsetWidth, headerLeftConfig, headerRightConfig) {
|
|
5
|
+
if (!header?.ngStyle) {
|
|
6
|
+
return undefined;
|
|
7
|
+
}
|
|
8
|
+
const getWidthOfStyle = (headerGetWidth) => {
|
|
9
|
+
let { flex, width, maxWidth } = headerGetWidth.ngStyle || {};
|
|
10
|
+
width = parseInt(width || '0');
|
|
11
|
+
maxWidth = parseInt(maxWidth || '0');
|
|
12
|
+
flex = parseInt((flex || '0').split(' ').pop() || '0');
|
|
13
|
+
if (!flex && !width && !maxWidth) {
|
|
14
|
+
return 0;
|
|
15
|
+
}
|
|
16
|
+
const widthMax = Math.max(width, maxWidth, flex);
|
|
17
|
+
if (headerGetWidth.keepWidthColumnIfTableWidhtGrandTotalColumnsHeader) {
|
|
18
|
+
offsetWidth -= widthMax;
|
|
19
|
+
return 0;
|
|
20
|
+
}
|
|
21
|
+
return widthMax;
|
|
22
|
+
};
|
|
23
|
+
let totalWidthHeader = headerLeftConfig?.reduce((acc, curr) => acc + getWidthOfStyle(curr), 0) ?? 0;
|
|
24
|
+
if (headerRightConfig?.length) {
|
|
25
|
+
totalWidthHeader = headerRightConfig?.reduce((acc, curr) => acc + getWidthOfStyle(curr), totalWidthHeader) ?? 0;
|
|
26
|
+
}
|
|
27
|
+
if (header.isShowIndexOnRow) {
|
|
28
|
+
totalWidthHeader += 50;
|
|
29
|
+
}
|
|
30
|
+
if (totalWidthHeader > offsetWidth || header.keepWidthColumnIfTableWidhtGrandTotalColumnsHeader) {
|
|
31
|
+
return header.ngStyle;
|
|
32
|
+
}
|
|
33
|
+
const width = getWidthOfStyle(header);
|
|
34
|
+
const widthCalculator = (width / totalWidthHeader) * offsetWidth;
|
|
35
|
+
return {
|
|
36
|
+
...header.ngStyle,
|
|
37
|
+
flex: `0 0 ${widthCalculator}px`,
|
|
38
|
+
width: `${widthCalculator}px`,
|
|
39
|
+
maxWidth: `${widthCalculator}px`
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiTableCalculatorColumnPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
43
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: LibsUiTableCalculatorColumnPipe, isStandalone: true, name: "LibsUiTableCalculatorColumnPipe" });
|
|
44
|
+
}
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiTableCalculatorColumnPipe, decorators: [{
|
|
46
|
+
type: Pipe,
|
|
47
|
+
args: [{
|
|
48
|
+
name: 'LibsUiTableCalculatorColumnPipe',
|
|
49
|
+
standalone: true
|
|
50
|
+
}]
|
|
51
|
+
}] });
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRvci1jb2x1bW4ucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy90YWJsZS9zcmMvcGlwZXMvY2FsY3VsYXRvci1jb2x1bW4ucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFRcEQsTUFBTSxPQUFPLCtCQUErQjtJQUMxQyxTQUFTLENBQUMsTUFBc0MsRUFBRSxXQUFtQixFQUFFLGdCQUE0QyxFQUFFLGlCQUE2QztRQUNoSyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDO1lBQ3JCLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFFRCxNQUFNLGVBQWUsR0FBRyxDQUFDLGNBQWtDLEVBQVUsRUFBRTtZQUNyRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsR0FBRyxjQUFjLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztZQUM3RCxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssSUFBSSxHQUFHLENBQUMsQ0FBQztZQUMvQixRQUFRLEdBQUcsUUFBUSxDQUFDLFFBQVEsSUFBSSxHQUFHLENBQUMsQ0FBQztZQUNyQyxJQUFJLEdBQUcsUUFBUSxDQUFDLENBQUMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQztZQUN2RCxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2pDLE9BQU8sQ0FBQyxDQUFDO1lBQ1gsQ0FBQztZQUNELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNqRCxJQUFJLGNBQWMsQ0FBQyxrREFBa0QsRUFBRSxDQUFDO2dCQUN0RSxXQUFXLElBQUksUUFBUSxDQUFDO2dCQUN4QixPQUFPLENBQUMsQ0FBQztZQUNYLENBQUM7WUFDRCxPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDLENBQUE7UUFDRCxJQUFJLGdCQUFnQixHQUFHLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXBHLElBQUksaUJBQWlCLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDOUIsZ0JBQWdCLEdBQUcsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsSCxDQUFDO1FBRUQsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUM1QixnQkFBZ0IsSUFBSSxFQUFFLENBQUM7UUFDekIsQ0FBQztRQUVELElBQUksZ0JBQWdCLEdBQUcsV0FBVyxJQUFJLE1BQU0sQ0FBQyxrREFBa0QsRUFBRSxDQUFDO1lBQ2hHLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUN4QixDQUFDO1FBQ0QsTUFBTSxLQUFLLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sZUFBZSxHQUFHLENBQUMsS0FBSyxHQUFHLGdCQUFnQixDQUFDLEdBQUcsV0FBVyxDQUFDO1FBQ2pFLE9BQU87WUFDTCxHQUFHLE1BQU0sQ0FBQyxPQUFPO1lBQ2pCLElBQUksRUFBRSxPQUFPLGVBQWUsSUFBSTtZQUNoQyxLQUFLLEVBQUUsR0FBRyxlQUFlLElBQUk7WUFDN0IsUUFBUSxFQUFFLEdBQUcsZUFBZSxJQUFJO1NBQ2pDLENBQUM7SUFFSixDQUFDO3dHQTNDVSwrQkFBK0I7c0dBQS9CLCtCQUErQjs7NEZBQS9CLCtCQUErQjtrQkFMM0MsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsaUNBQWlDO29CQUN2QyxVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJVGFibGVIZWFkZXJDb25maWcgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3RhYmxlLWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVFlQRV9PQkpFQ1QgfSBmcm9tICdAbGlicy11aS9pbnRlcmZhY2VzLXR5cGVzJztcbkBQaXBlKHtcbiAgbmFtZTogJ0xpYnNVaVRhYmxlQ2FsY3VsYXRvckNvbHVtblBpcGUnLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuXG5leHBvcnQgY2xhc3MgTGlic1VpVGFibGVDYWxjdWxhdG9yQ29sdW1uUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0oaGVhZGVyOiBJVGFibGVIZWFkZXJDb25maWcgfCB1bmRlZmluZWQsIG9mZnNldFdpZHRoOiBudW1iZXIsIGhlYWRlckxlZnRDb25maWc/OiBBcnJheTxJVGFibGVIZWFkZXJDb25maWc+LCBoZWFkZXJSaWdodENvbmZpZz86IEFycmF5PElUYWJsZUhlYWRlckNvbmZpZz4pOiBUWVBFX09CSkVDVCB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCFoZWFkZXI/Lm5nU3R5bGUpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3QgZ2V0V2lkdGhPZlN0eWxlID0gKGhlYWRlckdldFdpZHRoOiBJVGFibGVIZWFkZXJDb25maWcpOiBudW1iZXIgPT4ge1xuICAgICAgbGV0IHsgZmxleCwgd2lkdGgsIG1heFdpZHRoIH0gPSBoZWFkZXJHZXRXaWR0aC5uZ1N0eWxlIHx8IHt9O1xuICAgICAgd2lkdGggPSBwYXJzZUludCh3aWR0aCB8fCAnMCcpO1xuICAgICAgbWF4V2lkdGggPSBwYXJzZUludChtYXhXaWR0aCB8fCAnMCcpO1xuICAgICAgZmxleCA9IHBhcnNlSW50KChmbGV4IHx8ICcwJykuc3BsaXQoJyAnKS5wb3AoKSB8fCAnMCcpO1xuICAgICAgaWYgKCFmbGV4ICYmICF3aWR0aCAmJiAhbWF4V2lkdGgpIHtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgICB9XG4gICAgICBjb25zdCB3aWR0aE1heCA9IE1hdGgubWF4KHdpZHRoLCBtYXhXaWR0aCwgZmxleCk7XG4gICAgICBpZiAoaGVhZGVyR2V0V2lkdGgua2VlcFdpZHRoQ29sdW1uSWZUYWJsZVdpZGh0R3JhbmRUb3RhbENvbHVtbnNIZWFkZXIpIHtcbiAgICAgICAgb2Zmc2V0V2lkdGggLT0gd2lkdGhNYXg7XG4gICAgICAgIHJldHVybiAwO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHdpZHRoTWF4O1xuICAgIH1cbiAgICBsZXQgdG90YWxXaWR0aEhlYWRlciA9IGhlYWRlckxlZnRDb25maWc/LnJlZHVjZSgoYWNjLCBjdXJyKSA9PiBhY2MgKyBnZXRXaWR0aE9mU3R5bGUoY3VyciksIDApID8/IDA7XG5cbiAgICBpZiAoaGVhZGVyUmlnaHRDb25maWc/Lmxlbmd0aCkge1xuICAgICAgdG90YWxXaWR0aEhlYWRlciA9IGhlYWRlclJpZ2h0Q29uZmlnPy5yZWR1Y2UoKGFjYywgY3VycikgPT4gYWNjICsgZ2V0V2lkdGhPZlN0eWxlKGN1cnIpLCB0b3RhbFdpZHRoSGVhZGVyKSA/PyAwO1xuICAgIH1cblxuICAgIGlmIChoZWFkZXIuaXNTaG93SW5kZXhPblJvdykge1xuICAgICAgdG90YWxXaWR0aEhlYWRlciArPSA1MDtcbiAgICB9XG5cbiAgICBpZiAodG90YWxXaWR0aEhlYWRlciA+IG9mZnNldFdpZHRoIHx8IGhlYWRlci5rZWVwV2lkdGhDb2x1bW5JZlRhYmxlV2lkaHRHcmFuZFRvdGFsQ29sdW1uc0hlYWRlcikge1xuICAgICAgcmV0dXJuIGhlYWRlci5uZ1N0eWxlO1xuICAgIH1cbiAgICBjb25zdCB3aWR0aCA9IGdldFdpZHRoT2ZTdHlsZShoZWFkZXIpO1xuICAgIGNvbnN0IHdpZHRoQ2FsY3VsYXRvciA9ICh3aWR0aCAvIHRvdGFsV2lkdGhIZWFkZXIpICogb2Zmc2V0V2lkdGg7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmhlYWRlci5uZ1N0eWxlLFxuICAgICAgZmxleDogYDAgMCAke3dpZHRoQ2FsY3VsYXRvcn1weGAsXG4gICAgICB3aWR0aDogYCR7d2lkdGhDYWxjdWxhdG9yfXB4YCxcbiAgICAgIG1heFdpZHRoOiBgJHt3aWR0aENhbGN1bGF0b3J9cHhgXG4gICAgfTtcblxuICB9XG59XG4iXX0=
|