@energinet/watt 4.0.3 → 4.0.5
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.
|
@@ -89,7 +89,9 @@ export class WattDataTableComponent {
|
|
|
89
89
|
<vater-flex [autoSize]="autoSize()" fill="vertical">
|
|
90
90
|
<ng-content select="watt-table" />
|
|
91
91
|
@if (
|
|
92
|
-
enableEmptyState() &&
|
|
92
|
+
enableEmptyState() &&
|
|
93
|
+
!table().loading() &&
|
|
94
|
+
table().dataSource().filteredData.length === 0
|
|
93
95
|
) {
|
|
94
96
|
<vater-flex [autoSize]="autoSize()" fill="vertical">
|
|
95
97
|
<vater-stack scrollable justify="center">
|
|
@@ -167,7 +169,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImpor
|
|
|
167
169
|
<vater-flex [autoSize]="autoSize()" fill="vertical">
|
|
168
170
|
<ng-content select="watt-table" />
|
|
169
171
|
@if (
|
|
170
|
-
enableEmptyState() &&
|
|
172
|
+
enableEmptyState() &&
|
|
173
|
+
!table().loading() &&
|
|
174
|
+
table().dataSource().filteredData.length === 0
|
|
171
175
|
) {
|
|
172
176
|
<vater-flex [autoSize]="autoSize()" fill="vertical">
|
|
173
177
|
<vater-stack scrollable justify="center">
|
|
@@ -199,4 +203,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImpor
|
|
|
199
203
|
</watt-card>
|
|
200
204
|
`, styles: ["watt-data-table h3,watt-data-table h4{line-height:44px;min-height:44px;margin:0}watt-data-table watt-paginator{display:block;margin:calc(-1 * var(--watt-space-m)) -24px -24px}watt-data-table watt-table .mat-mdc-table tr.mdc-data-table__row:last-child .mat-mdc-cell{border-bottom:none}watt-data-table watt-empty-state{margin:var(--watt-space-xl) 0}\n"] }]
|
|
201
205
|
}] });
|
|
202
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0dC1kYXRhLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvd2F0dC9wYWNrYWdlL2RhdGEvd2F0dC1kYXRhLXRhYmxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUI7QUFDakI7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsWUFBWTtBQUNaLE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixvQkFBb0IsRUFDcEIsbUJBQW1CLEVBQ25CLHFCQUFxQixHQUN0QixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBcUIsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUczRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUF5Ry9ELE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBRW5DLEtBQUssR0FBRyxLQUFLLDJEQUFXLENBQUM7SUFDekIsS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLGlEQUFDLENBQUM7SUFDcEIsWUFBWSxHQUFHLEtBQUssQ0FBQyxJQUFJLHdEQUFDLENBQUM7SUFDM0IsVUFBVSxHQUFHLEtBQUssQ0FBQyxJQUFJLHNEQUFDLENBQUM7SUFDekIsTUFBTSxHQUFHLEtBQUssQ0FBQyxJQUFJLGtEQUFDLENBQUM7SUFDckIsV0FBVyxHQUFHLEtBQUssQ0FBQyxLQUFLLHVEQUFDLENBQUM7SUFDM0IsV0FBVyxHQUFHLEtBQUssQ0FBQyxJQUFJLHVEQUFDLENBQUM7SUFDMUIsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLElBQUksNERBQUMsQ0FBQztJQUMvQixTQUFTLEdBQUcsS0FBSywrREFBVSxDQUFDO0lBQzVCLFdBQVcsR0FBRyxLQUFLLGlFQUFVLENBQUM7SUFDOUIsZUFBZSxHQUFHLEtBQUssQ0FBQyxJQUFJLDJEQUFDLENBQUM7SUFDOUIsS0FBSyxHQUFHLEtBQUssMkRBQVUsQ0FBQztJQUN4QixRQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssb0RBQUMsQ0FBQztJQUN4QixPQUFPLEdBQUcsS0FBSyxDQUFvQixXQUFXLG1EQUFDLENBQUM7SUFDaEQsY0FBYyxHQUFHLEtBQUssQ0FDcEIsUUFBUSwwREFDVCxDQUFDO0lBRUYsS0FBSyxHQUFHLE1BQU0sRUFBRSxDQUFDO0lBQ2pCLFdBQVcsR0FBRyxNQUFNLEVBQWEsQ0FBQztJQUNsQyxLQUFLLEdBQUcsTUFBTSxFQUFFLENBQUM7SUFFakIsS0FBSyxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQSxrQkFBMkIsQ0FBQSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFFbEYsTUFBTSxHQUFHLFNBQVMsQ0FBQyxtQkFBbUIsa0RBQUMsQ0FBQztJQUN4QyxLQUFLLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBRXJDLFFBQVEsQ0FBQyxLQUFhO1FBQ3BCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxLQUFLO1lBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNoQyxDQUFDO3VHQWpDVSxzQkFBc0I7MkZBQXRCLHNCQUFzQiw2cEVBeUJILENBQUEsa0JBQTJCLENBQUEsd0dBRXRDLG1CQUFtQixnRUE3RjVCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ0VULHVhQWxHQyxrQkFBa0IsMkZBQ2xCLG9CQUFvQix5RUFDcEIsbUJBQW1CLHVFQUNuQixxQkFBcUIsdUdBQ3JCLGlCQUFpQixzRkFDakIsdUJBQXVCLHNIQUN2QixzQkFBc0Isd0pBQ3RCLG1CQUFtQixnSUFDbkIsbUJBQW1COzsyRkE0RlYsc0JBQXNCO2tCQXZHbEMsU0FBUzsrQkFDRSxpQkFBaUIsV0FDbEI7d0JBQ1Asa0JBQWtCO3dCQUNsQixvQkFBb0I7d0JBQ3BCLG1CQUFtQjt3QkFDbkIscUJBQXFCO3dCQUNyQixpQkFBaUI7d0JBQ2pCLHVCQUF1Qjt3QkFDdkIsc0JBQXNCO3dCQUN0QixtQkFBbUI7d0JBQ25CLG1CQUFtQjtxQkFDcEIsaUJBQ2MsaUJBQWlCLENBQUMsSUFBSSxZQXdCM0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnRVQiLCJzb3VyY2VzQ29udGVudCI6WyIvLyNyZWdpb24gTGljZW5zZVxuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMjAgRW5lcmdpbmV0IERhdGFIdWIgQS9TXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZTJcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLy8jZW5kcmVnaW9uXG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBjb250ZW50Q2hpbGQsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIG91dHB1dCxcbiAgdmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBhZ2VFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XG5cbmltcG9ydCB7XG4gIFZhdGVyRmxleENvbXBvbmVudCxcbiAgVmF0ZXJTcGFjZXJDb21wb25lbnQsXG4gIFZhdGVyU3RhY2tDb21wb25lbnQsXG4gIFZhdGVyVXRpbGl0eURpcmVjdGl2ZSxcbn0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L3ZhdGVyJztcbmltcG9ydCB7IFdBVFRfQ0FSRF9WQVJJQU5ULCBXYXR0Q2FyZENvbXBvbmVudCB9IGZyb20gJ0BlbmVyZ2luZXQvd2F0dC9jYXJkJztcbmltcG9ydCB7IFdhdHRCdXR0b25Db21wb25lbnQgfSBmcm9tICdAZW5lcmdpbmV0L3dhdHQvYnV0dG9uJztcbmltcG9ydCB7IFdhdHRFbXB0eVN0YXRlQ29tcG9uZW50IH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L2VtcHR5LXN0YXRlJztcbmltcG9ydCB7IFdhdHRQYWdpbmF0b3JDb21wb25lbnQgfSBmcm9tICdAZW5lcmdpbmV0L3dhdHQvcGFnaW5hdG9yJztcbmltcG9ydCB7IFdhdHRTZWFyY2hDb21wb25lbnQgfSBmcm9tICdAZW5lcmdpbmV0L3dhdHQvc2VhcmNoJztcbmltcG9ydCB7IFdhdHRUYWJsZUNvbXBvbmVudCB9IGZyb20gJ0BlbmVyZ2luZXQvd2F0dC90YWJsZSc7XG5pbXBvcnQgeyBXYXR0SWNvbiB9IGZyb20gJ0BlbmVyZ2luZXQvd2F0dC9pY29uJztcblxuaW1wb3J0IHsgV2F0dERhdGFJbnRsU2VydmljZSB9IGZyb20gJy4vd2F0dC1kYXRhLWludGwuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dhdHQtZGF0YS10YWJsZScsXG4gIGltcG9ydHM6IFtcbiAgICBWYXRlckZsZXhDb21wb25lbnQsXG4gICAgVmF0ZXJTcGFjZXJDb21wb25lbnQsXG4gICAgVmF0ZXJTdGFja0NvbXBvbmVudCxcbiAgICBWYXRlclV0aWxpdHlEaXJlY3RpdmUsXG4gICAgV2F0dENhcmRDb21wb25lbnQsXG4gICAgV2F0dEVtcHR5U3RhdGVDb21wb25lbnQsXG4gICAgV2F0dFBhZ2luYXRvckNvbXBvbmVudCxcbiAgICBXYXR0U2VhcmNoQ29tcG9uZW50LFxuICAgIFdhdHRCdXR0b25Db21wb25lbnQsXG4gIF0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIHdhdHQtZGF0YS10YWJsZSBoMyxcbiAgICAgIHdhdHQtZGF0YS10YWJsZSBoNCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiA0NHB4O1xuICAgICAgICBtaW4taGVpZ2h0OiA0NHB4O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG5cbiAgICAgIHdhdHQtZGF0YS10YWJsZSB3YXR0LXBhZ2luYXRvciB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW46IGNhbGMoLTEgKiB2YXIoLS13YXR0LXNwYWNlLW0pKSAtMjRweCAtMjRweDtcbiAgICAgIH1cblxuICAgICAgd2F0dC1kYXRhLXRhYmxlIHdhdHQtdGFibGUgLm1hdC1tZGMtdGFibGUgdHIubWRjLWRhdGEtdGFibGVfX3JvdzpsYXN0LWNoaWxkIC5tYXQtbWRjLWNlbGwge1xuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgfVxuXG4gICAgICB3YXR0LWRhdGEtdGFibGUgd2F0dC1lbXB0eS1zdGF0ZSB7XG4gICAgICAgIG1hcmdpbjogdmFyKC0td2F0dC1zcGFjZS14bCkgMDtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDx3YXR0LWNhcmQgdmF0ZXIgZmlsbD1cInZlcnRpY2FsXCIgW3ZhcmlhbnRdPVwidmFyaWFudCgpXCI+XG4gICAgICA8dmF0ZXItZmxleCBhdXRvU2l6ZSBmaWxsPVwidmVydGljYWxcIiBnYXA9XCJtXCI+XG4gICAgICAgIEBpZiAoaGVhZGVyKCkpIHtcbiAgICAgICAgICA8dmF0ZXItc3RhY2sgZGlyZWN0aW9uPVwicm93XCIgZ2FwPVwibVwiPlxuICAgICAgICAgICAgPHZhdGVyLXN0YWNrIGRpcmVjdGlvbj1cInJvd1wiIGdhcD1cInNcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiaDNcIiAvPlxuICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJoNFwiIC8+XG4gICAgICAgICAgICAgIEBpZiAoZW5hYmxlQ291bnQoKSkge1xuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwid2F0dC1jaGlwLWxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICB7eyBjb3VudCgpID8/IHRhYmxlKCkuZGF0YVNvdXJjZSgpLnRvdGFsQ291bnQgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgQGlmIChxdWVyeVRpbWUoKSkge1xuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwid2F0dC1sYWJlbFwiPmluIHt7IHF1ZXJ5VGltZSgpIH19IG1zPC9zcGFuPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3ZhdGVyLXN0YWNrPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgICAgICAgIDx2YXRlci1zcGFjZXIgLz5cbiAgICAgICAgICAgIEBpZiAoZW5hYmxlU2VhcmNoKCkpIHtcbiAgICAgICAgICAgICAgPHdhdHQtc2VhcmNoXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cInNlYXJjaExhYmVsKCkgPz8gaW50bC5zZWFyY2hcIlxuICAgICAgICAgICAgICAgIFt0cmltXT1cInRyaW1TZWFyY2goKVwiXG4gICAgICAgICAgICAgICAgKHNlYXJjaCk9XCJvblNlYXJjaCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIndhdHQtZGF0YS1hY3Rpb25zXCIgLz5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIndhdHQtYnV0dG9uXCIgLz5cbiAgICAgICAgICA8L3ZhdGVyLXN0YWNrPlxuICAgICAgICB9XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIndhdHQtZGF0YS1maWx0ZXJzXCIgLz5cbiAgICAgICAgPHZhdGVyLWZsZXggW2F1dG9TaXplXT1cImF1dG9TaXplKClcIiBmaWxsPVwidmVydGljYWxcIj5cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJ3YXR0LXRhYmxlXCIgLz5cbiAgICAgICAgICBAaWYgKFxuICAgICAgICAgICAgZW5hYmxlRW1wdHlTdGF0ZSgpICYmICF0YWJsZSgpLmxvYWRpbmcgJiYgdGFibGUoKS5kYXRhU291cmNlKCkuZmlsdGVyZWREYXRhLmxlbmd0aCA9PT0gMFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgPHZhdGVyLWZsZXggW2F1dG9TaXplXT1cImF1dG9TaXplKClcIiBmaWxsPVwidmVydGljYWxcIj5cbiAgICAgICAgICAgICAgPHZhdGVyLXN0YWNrIHNjcm9sbGFibGUganVzdGlmeT1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDx3YXR0LWVtcHR5LXN0YXRlXG4gICAgICAgICAgICAgICAgICBbaWNvbl09XCJlcnJvcigpID8gJ2N1c3RvbS1wb3dlcicgOiByZWFkeSgpID8gZW1wdHlTdGF0ZUljb24oKSA6ICdjdXN0b20tZXhwbG9yZSdcIlxuICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIlxuICAgICAgICAgICAgICAgICAgICBlcnJvcigpID8gaW50bC5lcnJvclRpdGxlIDogcmVhZHkoKSA/IGludGwuZW1wdHlUaXRsZSA6IGludGwuZGVmYXVsdFRpdGxlXG4gICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgW21lc3NhZ2VdPVwiZXJyb3IoKSA/IGludGwuZXJyb3JUZXh0IDogcmVhZHkoKSA/IGludGwuZW1wdHlUZXh0IDogaW50bC5kZWZhdWx0VGV4dFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgQGlmIChlbmFibGVSZXRyeSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIDx3YXR0LWJ1dHRvbiB2YXJpYW50PVwic2Vjb25kYXJ5XCIgKGNsaWNrKT1cInJldHJ5LmVtaXQoKVwiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgaW50bC5lbXB0eVJldHJ5XG4gICAgICAgICAgICAgICAgICAgIH19PC93YXR0LWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L3dhdHQtZW1wdHktc3RhdGU+XG4gICAgICAgICAgICAgIDwvdmF0ZXItc3RhY2s+XG4gICAgICAgICAgICA8L3ZhdGVyLWZsZXg+XG4gICAgICAgICAgfVxuICAgICAgICA8L3ZhdGVyLWZsZXg+XG4gICAgICAgIEBpZiAoZW5hYmxlUGFnaW5hdG9yKCkpIHtcbiAgICAgICAgICA8d2F0dC1wYWdpbmF0b3JcbiAgICAgICAgICAgIFtmb3JdPVwidGFibGUoKS5kYXRhU291cmNlKClcIlxuICAgICAgICAgICAgW2xlbmd0aF09XCJjb3VudCgpID8/IDBcIlxuICAgICAgICAgICAgKGNoYW5nZWQpPVwicGFnZUNoYW5nZWQuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICA8L3ZhdGVyLWZsZXg+XG4gICAgPC93YXR0LWNhcmQ+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIFdhdHREYXRhVGFibGVDb21wb25lbnQge1xuICBpbnRsID0gaW5qZWN0KFdhdHREYXRhSW50bFNlcnZpY2UpO1xuXG4gIGVycm9yID0gaW5wdXQ8dW5rbm93bj4oKTtcbiAgcmVhZHkgPSBpbnB1dCh0cnVlKTtcbiAgZW5hYmxlU2VhcmNoID0gaW5wdXQodHJ1ZSk7XG4gIHRyaW1TZWFyY2ggPSBpbnB1dCh0cnVlKTtcbiAgaGVhZGVyID0gaW5wdXQodHJ1ZSk7XG4gIGVuYWJsZVJldHJ5ID0gaW5wdXQoZmFsc2UpO1xuICBlbmFibGVDb3VudCA9IGlucHV0KHRydWUpO1xuICBlbmFibGVFbXB0eVN0YXRlID0gaW5wdXQodHJ1ZSk7XG4gIHF1ZXJ5VGltZSA9IGlucHV0PG51bWJlcj4oKTtcbiAgc2VhcmNoTGFiZWwgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIGVuYWJsZVBhZ2luYXRvciA9IGlucHV0KHRydWUpO1xuICBjb3VudCA9IGlucHV0PG51bWJlcj4oKTtcbiAgYXV0b1NpemUgPSBpbnB1dChmYWxzZSk7XG4gIHZhcmlhbnQgPSBpbnB1dDxXQVRUX0NBUkRfVkFSSUFOVD4oJ2VsZXZhdGlvbicpO1xuICBlbXB0eVN0YXRlSWNvbiA9IGlucHV0PFdhdHRJY29uIHwgJ2N1c3RvbS1wb3dlcicgfCAnY3VzdG9tLWV4cGxvcmUnIHwgJ2N1c3RvbS1uby1yZXN1bHRzJz4oXG4gICAgJ2NhbmNlbCdcbiAgKTtcblxuICBjbGVhciA9IG91dHB1dCgpO1xuICBwYWdlQ2hhbmdlZCA9IG91dHB1dDxQYWdlRXZlbnQ+KCk7XG4gIHJldHJ5ID0gb3V0cHV0KCk7XG5cbiAgdGFibGUgPSBjb250ZW50Q2hpbGQucmVxdWlyZWQoV2F0dFRhYmxlQ29tcG9uZW50PHVua25vd24+LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pO1xuXG4gIHNlYXJjaCA9IHZpZXdDaGlsZChXYXR0U2VhcmNoQ29tcG9uZW50KTtcbiAgcmVzZXQgPSAoKSA9PiB0aGlzLnNlYXJjaCgpPy5jbGVhcigpO1xuXG4gIG9uU2VhcmNoKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnRhYmxlKCkuZGF0YVNvdXJjZSgpLmZpbHRlciA9IHZhbHVlO1xuICAgIGlmICghdmFsdWUpIHRoaXMuY2xlYXIuZW1pdCgpO1xuICB9XG59XG4iXX0=
|
|
206
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0dC1kYXRhLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvd2F0dC9wYWNrYWdlL2RhdGEvd2F0dC1kYXRhLXRhYmxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUI7QUFDakI7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsWUFBWTtBQUNaLE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixvQkFBb0IsRUFDcEIsbUJBQW1CLEVBQ25CLHFCQUFxQixHQUN0QixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBcUIsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUczRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUEyRy9ELE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBRW5DLEtBQUssR0FBRyxLQUFLLDJEQUFXLENBQUM7SUFDekIsS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLGlEQUFDLENBQUM7SUFDcEIsWUFBWSxHQUFHLEtBQUssQ0FBQyxJQUFJLHdEQUFDLENBQUM7SUFDM0IsVUFBVSxHQUFHLEtBQUssQ0FBQyxJQUFJLHNEQUFDLENBQUM7SUFDekIsTUFBTSxHQUFHLEtBQUssQ0FBQyxJQUFJLGtEQUFDLENBQUM7SUFDckIsV0FBVyxHQUFHLEtBQUssQ0FBQyxLQUFLLHVEQUFDLENBQUM7SUFDM0IsV0FBVyxHQUFHLEtBQUssQ0FBQyxJQUFJLHVEQUFDLENBQUM7SUFDMUIsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLElBQUksNERBQUMsQ0FBQztJQUMvQixTQUFTLEdBQUcsS0FBSywrREFBVSxDQUFDO0lBQzVCLFdBQVcsR0FBRyxLQUFLLGlFQUFVLENBQUM7SUFDOUIsZUFBZSxHQUFHLEtBQUssQ0FBQyxJQUFJLDJEQUFDLENBQUM7SUFDOUIsS0FBSyxHQUFHLEtBQUssMkRBQVUsQ0FBQztJQUN4QixRQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssb0RBQUMsQ0FBQztJQUN4QixPQUFPLEdBQUcsS0FBSyxDQUFvQixXQUFXLG1EQUFDLENBQUM7SUFDaEQsY0FBYyxHQUFHLEtBQUssQ0FDcEIsUUFBUSwwREFDVCxDQUFDO0lBRUYsS0FBSyxHQUFHLE1BQU0sRUFBRSxDQUFDO0lBQ2pCLFdBQVcsR0FBRyxNQUFNLEVBQWEsQ0FBQztJQUNsQyxLQUFLLEdBQUcsTUFBTSxFQUFFLENBQUM7SUFFakIsS0FBSyxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQSxrQkFBMkIsQ0FBQSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFFbEYsTUFBTSxHQUFHLFNBQVMsQ0FBQyxtQkFBbUIsa0RBQUMsQ0FBQztJQUN4QyxLQUFLLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBRXJDLFFBQVEsQ0FBQyxLQUFhO1FBQ3BCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxLQUFLO1lBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNoQyxDQUFDO3VHQWpDVSxzQkFBc0I7MkZBQXRCLHNCQUFzQiw2cEVBeUJILENBQUEsa0JBQTJCLENBQUEsd0dBRXRDLG1CQUFtQixnRUEvRjVCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrRVQsdWFBcEdDLGtCQUFrQiwyRkFDbEIsb0JBQW9CLHlFQUNwQixtQkFBbUIsdUVBQ25CLHFCQUFxQix1R0FDckIsaUJBQWlCLHNGQUNqQix1QkFBdUIsc0hBQ3ZCLHNCQUFzQix3SkFDdEIsbUJBQW1CLGdJQUNuQixtQkFBbUI7OzJGQThGVixzQkFBc0I7a0JBekdsQyxTQUFTOytCQUNFLGlCQUFpQixXQUNsQjt3QkFDUCxrQkFBa0I7d0JBQ2xCLG9CQUFvQjt3QkFDcEIsbUJBQW1CO3dCQUNuQixxQkFBcUI7d0JBQ3JCLGlCQUFpQjt3QkFDakIsdUJBQXVCO3dCQUN2QixzQkFBc0I7d0JBQ3RCLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3FCQUNwQixpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJLFlBd0IzQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0VUIiwic291cmNlc0NvbnRlbnQiOlsiLy8jcmVnaW9uIExpY2Vuc2Vcbi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDIwIEVuZXJnaW5ldCBEYXRhSHViIEEvU1xuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2UyXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8vI2VuZHJlZ2lvblxuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgY29udGVudENoaWxkLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBvdXRwdXQsXG4gIHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQYWdlRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xuXG5pbXBvcnQge1xuICBWYXRlckZsZXhDb21wb25lbnQsXG4gIFZhdGVyU3BhY2VyQ29tcG9uZW50LFxuICBWYXRlclN0YWNrQ29tcG9uZW50LFxuICBWYXRlclV0aWxpdHlEaXJlY3RpdmUsXG59IGZyb20gJ0BlbmVyZ2luZXQvd2F0dC92YXRlcic7XG5pbXBvcnQgeyBXQVRUX0NBUkRfVkFSSUFOVCwgV2F0dENhcmRDb21wb25lbnQgfSBmcm9tICdAZW5lcmdpbmV0L3dhdHQvY2FyZCc7XG5pbXBvcnQgeyBXYXR0QnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L2J1dHRvbic7XG5pbXBvcnQgeyBXYXR0RW1wdHlTdGF0ZUNvbXBvbmVudCB9IGZyb20gJ0BlbmVyZ2luZXQvd2F0dC9lbXB0eS1zdGF0ZSc7XG5pbXBvcnQgeyBXYXR0UGFnaW5hdG9yQ29tcG9uZW50IH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L3BhZ2luYXRvcic7XG5pbXBvcnQgeyBXYXR0U2VhcmNoQ29tcG9uZW50IH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L3NlYXJjaCc7XG5pbXBvcnQgeyBXYXR0VGFibGVDb21wb25lbnQgfSBmcm9tICdAZW5lcmdpbmV0L3dhdHQvdGFibGUnO1xuaW1wb3J0IHsgV2F0dEljb24gfSBmcm9tICdAZW5lcmdpbmV0L3dhdHQvaWNvbic7XG5cbmltcG9ydCB7IFdhdHREYXRhSW50bFNlcnZpY2UgfSBmcm9tICcuL3dhdHQtZGF0YS1pbnRsLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3YXR0LWRhdGEtdGFibGUnLFxuICBpbXBvcnRzOiBbXG4gICAgVmF0ZXJGbGV4Q29tcG9uZW50LFxuICAgIFZhdGVyU3BhY2VyQ29tcG9uZW50LFxuICAgIFZhdGVyU3RhY2tDb21wb25lbnQsXG4gICAgVmF0ZXJVdGlsaXR5RGlyZWN0aXZlLFxuICAgIFdhdHRDYXJkQ29tcG9uZW50LFxuICAgIFdhdHRFbXB0eVN0YXRlQ29tcG9uZW50LFxuICAgIFdhdHRQYWdpbmF0b3JDb21wb25lbnQsXG4gICAgV2F0dFNlYXJjaENvbXBvbmVudCxcbiAgICBXYXR0QnV0dG9uQ29tcG9uZW50LFxuICBdLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICB3YXR0LWRhdGEtdGFibGUgaDMsXG4gICAgICB3YXR0LWRhdGEtdGFibGUgaDQge1xuICAgICAgICBsaW5lLWhlaWdodDogNDRweDtcbiAgICAgICAgbWluLWhlaWdodDogNDRweDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuXG4gICAgICB3YXR0LWRhdGEtdGFibGUgd2F0dC1wYWdpbmF0b3Ige1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luOiBjYWxjKC0xICogdmFyKC0td2F0dC1zcGFjZS1tKSkgLTI0cHggLTI0cHg7XG4gICAgICB9XG5cbiAgICAgIHdhdHQtZGF0YS10YWJsZSB3YXR0LXRhYmxlIC5tYXQtbWRjLXRhYmxlIHRyLm1kYy1kYXRhLXRhYmxlX19yb3c6bGFzdC1jaGlsZCAubWF0LW1kYy1jZWxsIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgd2F0dC1kYXRhLXRhYmxlIHdhdHQtZW1wdHktc3RhdGUge1xuICAgICAgICBtYXJnaW46IHZhcigtLXdhdHQtc3BhY2UteGwpIDA7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8d2F0dC1jYXJkIHZhdGVyIGZpbGw9XCJ2ZXJ0aWNhbFwiIFt2YXJpYW50XT1cInZhcmlhbnQoKVwiPlxuICAgICAgPHZhdGVyLWZsZXggYXV0b1NpemUgZmlsbD1cInZlcnRpY2FsXCIgZ2FwPVwibVwiPlxuICAgICAgICBAaWYgKGhlYWRlcigpKSB7XG4gICAgICAgICAgPHZhdGVyLXN0YWNrIGRpcmVjdGlvbj1cInJvd1wiIGdhcD1cIm1cIj5cbiAgICAgICAgICAgIDx2YXRlci1zdGFjayBkaXJlY3Rpb249XCJyb3dcIiBnYXA9XCJzXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImgzXCIgLz5cbiAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiaDRcIiAvPlxuICAgICAgICAgICAgICBAaWYgKGVuYWJsZUNvdW50KCkpIHtcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIndhdHQtY2hpcC1sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAge3sgY291bnQoKSA/PyB0YWJsZSgpLmRhdGFTb3VyY2UoKS50b3RhbENvdW50IH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIEBpZiAocXVlcnlUaW1lKCkpIHtcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIndhdHQtbGFiZWxcIj5pbiB7eyBxdWVyeVRpbWUoKSB9fSBtczwvc3Bhbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC92YXRlci1zdGFjaz5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgICAgICAgICA8dmF0ZXItc3BhY2VyIC8+XG4gICAgICAgICAgICBAaWYgKGVuYWJsZVNlYXJjaCgpKSB7XG4gICAgICAgICAgICAgIDx3YXR0LXNlYXJjaFxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJzZWFyY2hMYWJlbCgpID8/IGludGwuc2VhcmNoXCJcbiAgICAgICAgICAgICAgICBbdHJpbV09XCJ0cmltU2VhcmNoKClcIlxuICAgICAgICAgICAgICAgIChzZWFyY2gpPVwib25TZWFyY2goJGV2ZW50KVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJ3YXR0LWRhdGEtYWN0aW9uc1wiIC8+XG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJ3YXR0LWJ1dHRvblwiIC8+XG4gICAgICAgICAgPC92YXRlci1zdGFjaz5cbiAgICAgICAgfVxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJ3YXR0LWRhdGEtZmlsdGVyc1wiIC8+XG4gICAgICAgIDx2YXRlci1mbGV4IFthdXRvU2l6ZV09XCJhdXRvU2l6ZSgpXCIgZmlsbD1cInZlcnRpY2FsXCI+XG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwid2F0dC10YWJsZVwiIC8+XG4gICAgICAgICAgQGlmIChcbiAgICAgICAgICAgIGVuYWJsZUVtcHR5U3RhdGUoKSAmJlxuICAgICAgICAgICAgIXRhYmxlKCkubG9hZGluZygpICYmXG4gICAgICAgICAgICB0YWJsZSgpLmRhdGFTb3VyY2UoKS5maWx0ZXJlZERhdGEubGVuZ3RoID09PSAwXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICA8dmF0ZXItZmxleCBbYXV0b1NpemVdPVwiYXV0b1NpemUoKVwiIGZpbGw9XCJ2ZXJ0aWNhbFwiPlxuICAgICAgICAgICAgICA8dmF0ZXItc3RhY2sgc2Nyb2xsYWJsZSBqdXN0aWZ5PVwiY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgPHdhdHQtZW1wdHktc3RhdGVcbiAgICAgICAgICAgICAgICAgIFtpY29uXT1cImVycm9yKCkgPyAnY3VzdG9tLXBvd2VyJyA6IHJlYWR5KCkgPyBlbXB0eVN0YXRlSWNvbigpIDogJ2N1c3RvbS1leHBsb3JlJ1wiXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiXG4gICAgICAgICAgICAgICAgICAgIGVycm9yKCkgPyBpbnRsLmVycm9yVGl0bGUgOiByZWFkeSgpID8gaW50bC5lbXB0eVRpdGxlIDogaW50bC5kZWZhdWx0VGl0bGVcbiAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICBbbWVzc2FnZV09XCJlcnJvcigpID8gaW50bC5lcnJvclRleHQgOiByZWFkeSgpID8gaW50bC5lbXB0eVRleHQgOiBpbnRsLmRlZmF1bHRUZXh0XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICBAaWYgKGVuYWJsZVJldHJ5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgPHdhdHQtYnV0dG9uIHZhcmlhbnQ9XCJzZWNvbmRhcnlcIiAoY2xpY2spPVwicmV0cnkuZW1pdCgpXCI+e3tcbiAgICAgICAgICAgICAgICAgICAgICBpbnRsLmVtcHR5UmV0cnlcbiAgICAgICAgICAgICAgICAgICAgfX08L3dhdHQtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvd2F0dC1lbXB0eS1zdGF0ZT5cbiAgICAgICAgICAgICAgPC92YXRlci1zdGFjaz5cbiAgICAgICAgICAgIDwvdmF0ZXItZmxleD5cbiAgICAgICAgICB9XG4gICAgICAgIDwvdmF0ZXItZmxleD5cbiAgICAgICAgQGlmIChlbmFibGVQYWdpbmF0b3IoKSkge1xuICAgICAgICAgIDx3YXR0LXBhZ2luYXRvclxuICAgICAgICAgICAgW2Zvcl09XCJ0YWJsZSgpLmRhdGFTb3VyY2UoKVwiXG4gICAgICAgICAgICBbbGVuZ3RoXT1cImNvdW50KCkgPz8gMFwiXG4gICAgICAgICAgICAoY2hhbmdlZCk9XCJwYWdlQ2hhbmdlZC5lbWl0KCRldmVudClcIlxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvdmF0ZXItZmxleD5cbiAgICA8L3dhdHQtY2FyZD5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgV2F0dERhdGFUYWJsZUNvbXBvbmVudCB7XG4gIGludGwgPSBpbmplY3QoV2F0dERhdGFJbnRsU2VydmljZSk7XG5cbiAgZXJyb3IgPSBpbnB1dDx1bmtub3duPigpO1xuICByZWFkeSA9IGlucHV0KHRydWUpO1xuICBlbmFibGVTZWFyY2ggPSBpbnB1dCh0cnVlKTtcbiAgdHJpbVNlYXJjaCA9IGlucHV0KHRydWUpO1xuICBoZWFkZXIgPSBpbnB1dCh0cnVlKTtcbiAgZW5hYmxlUmV0cnkgPSBpbnB1dChmYWxzZSk7XG4gIGVuYWJsZUNvdW50ID0gaW5wdXQodHJ1ZSk7XG4gIGVuYWJsZUVtcHR5U3RhdGUgPSBpbnB1dCh0cnVlKTtcbiAgcXVlcnlUaW1lID0gaW5wdXQ8bnVtYmVyPigpO1xuICBzZWFyY2hMYWJlbCA9IGlucHV0PHN0cmluZz4oKTtcbiAgZW5hYmxlUGFnaW5hdG9yID0gaW5wdXQodHJ1ZSk7XG4gIGNvdW50ID0gaW5wdXQ8bnVtYmVyPigpO1xuICBhdXRvU2l6ZSA9IGlucHV0KGZhbHNlKTtcbiAgdmFyaWFudCA9IGlucHV0PFdBVFRfQ0FSRF9WQVJJQU5UPignZWxldmF0aW9uJyk7XG4gIGVtcHR5U3RhdGVJY29uID0gaW5wdXQ8V2F0dEljb24gfCAnY3VzdG9tLXBvd2VyJyB8ICdjdXN0b20tZXhwbG9yZScgfCAnY3VzdG9tLW5vLXJlc3VsdHMnPihcbiAgICAnY2FuY2VsJ1xuICApO1xuXG4gIGNsZWFyID0gb3V0cHV0KCk7XG4gIHBhZ2VDaGFuZ2VkID0gb3V0cHV0PFBhZ2VFdmVudD4oKTtcbiAgcmV0cnkgPSBvdXRwdXQoKTtcblxuICB0YWJsZSA9IGNvbnRlbnRDaGlsZC5yZXF1aXJlZChXYXR0VGFibGVDb21wb25lbnQ8dW5rbm93bj4sIHsgZGVzY2VuZGFudHM6IHRydWUgfSk7XG5cbiAgc2VhcmNoID0gdmlld0NoaWxkKFdhdHRTZWFyY2hDb21wb25lbnQpO1xuICByZXNldCA9ICgpID0+IHRoaXMuc2VhcmNoKCk/LmNsZWFyKCk7XG5cbiAgb25TZWFyY2godmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudGFibGUoKS5kYXRhU291cmNlKCkuZmlsdGVyID0gdmFsdWU7XG4gICAgaWYgKCF2YWx1ZSkgdGhpcy5jbGVhci5lbWl0KCk7XG4gIH1cbn1cbiJdfQ==
|
package/esm2022/table/index.js
CHANGED
|
@@ -17,5 +17,5 @@
|
|
|
17
17
|
*/
|
|
18
18
|
//#endregion
|
|
19
19
|
export { WattTableDataSource } from './watt-table-data-source';
|
|
20
|
-
export { WattTableComponent, WattTableCellDirective, WattTableToolbarDirective,
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
export { WattTableComponent, WattTableCellDirective, WattTableToolbarDirective, WATT_TABLE, } from './watt-table.component';
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3dhdHQvcGFja2FnZS90YWJsZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUI7QUFDakI7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsWUFBWTtBQUNaLE9BQU8sRUFBd0IsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRixPQUFPLEVBR0wsa0JBQWtCLEVBQ2xCLHNCQUFzQixFQUN0Qix5QkFBeUIsRUFDekIsVUFBVSxHQUNYLE1BQU0sd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyNyZWdpb24gTGljZW5zZVxuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMjAgRW5lcmdpbmV0IERhdGFIdWIgQS9TXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZTJcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLy8jZW5kcmVnaW9uXG5leHBvcnQgeyBJV2F0dFRhYmxlRGF0YVNvdXJjZSwgV2F0dFRhYmxlRGF0YVNvdXJjZSB9IGZyb20gJy4vd2F0dC10YWJsZS1kYXRhLXNvdXJjZSc7XG5leHBvcnQge1xuICB0eXBlIFdhdHRUYWJsZUNvbHVtbixcbiAgdHlwZSBXYXR0VGFibGVDb2x1bW5EZWYsXG4gIFdhdHRUYWJsZUNvbXBvbmVudCxcbiAgV2F0dFRhYmxlQ2VsbERpcmVjdGl2ZSxcbiAgV2F0dFRhYmxlVG9vbGJhckRpcmVjdGl2ZSxcbiAgV0FUVF9UQUJMRSxcbn0gZnJvbSAnLi93YXR0LXRhYmxlLmNvbXBvbmVudCc7XG4iXX0=
|
|
@@ -17,14 +17,14 @@
|
|
|
17
17
|
*/
|
|
18
18
|
//#endregion
|
|
19
19
|
import { KeyValuePipe, NgClass, NgTemplateOutlet } from '@angular/common';
|
|
20
|
-
import { Component, contentChild, contentChildren, Directive,
|
|
20
|
+
import { Component, computed, contentChild, contentChildren, Directive, effect, inject, input, model, output, TemplateRef, viewChild, viewChildren, ViewEncapsulation, } from '@angular/core';
|
|
21
21
|
import { outputFromObservable } from '@angular/core/rxjs-interop';
|
|
22
22
|
import { FormsModule } from '@angular/forms';
|
|
23
23
|
import { MatSort, MatSortModule } from '@angular/material/sort';
|
|
24
24
|
import { MatTableModule } from '@angular/material/table';
|
|
25
25
|
import { Subject } from 'rxjs';
|
|
26
26
|
import { WattCheckboxComponent } from '@energinet/watt/checkbox';
|
|
27
|
-
import {
|
|
27
|
+
import { wattFormatDate } from '@energinet/watt/core/date';
|
|
28
28
|
import { WattIconComponent } from '@energinet/watt/icon';
|
|
29
29
|
import { WattTableDataSource } from './watt-table-data-source';
|
|
30
30
|
import { animateExpandableCells } from './watt-table-expand-animation';
|
|
@@ -174,11 +174,11 @@ export class WattTableComponent {
|
|
|
174
174
|
* clickable or not. This is available on `EventEmitter`, but not on `output`,
|
|
175
175
|
* which is why this workaround is used.
|
|
176
176
|
*/
|
|
177
|
-
|
|
177
|
+
rowClick$ = new Subject();
|
|
178
178
|
/**
|
|
179
179
|
* Emits whenever a row is clicked.
|
|
180
180
|
*/
|
|
181
|
-
rowClick = outputFromObservable(this.
|
|
181
|
+
rowClick = outputFromObservable(this.rowClick$);
|
|
182
182
|
/**
|
|
183
183
|
* Event emitted when the user changes the active sort or sort direction.
|
|
184
184
|
*/
|
|
@@ -187,9 +187,9 @@ export class WattTableComponent {
|
|
|
187
187
|
cells = contentChildren((WattTableCellDirective), ...(ngDevMode ? [{ debugName: "cells" }] : []));
|
|
188
188
|
toolbar = contentChild((WattTableToolbarDirective), ...(ngDevMode ? [{ debugName: "toolbar" }] : []));
|
|
189
189
|
sort = viewChild(MatSort, ...(ngDevMode ? [{ debugName: "sort" }] : []));
|
|
190
|
+
// Enables animation for expanding/collapsing cells
|
|
190
191
|
tableCellElements = viewChildren('td', ...(ngDevMode ? [{ debugName: "tableCellElements" }] : []));
|
|
191
|
-
|
|
192
|
-
_animationEffect = animateExpandableCells(this.tableCellElements, this.expanded);
|
|
192
|
+
animationEffect = animateExpandableCells(this.tableCellElements, this.expanded);
|
|
193
193
|
// Selectable
|
|
194
194
|
filterSelectionBy = (rows) => rows.filter((row) => this.selection().includes(row));
|
|
195
195
|
getSelectionState = () => {
|
|
@@ -199,122 +199,61 @@ export class WattTableComponent {
|
|
|
199
199
|
return false;
|
|
200
200
|
return filteredSelection.length === this.dataSource().filteredData.length ? true : null;
|
|
201
201
|
};
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
/** @ignore */
|
|
209
|
-
_datePipe = inject(WattDatePipe);
|
|
210
|
-
/** @ignore */
|
|
211
|
-
_hasFooter = signal(false, ...(ngDevMode ? [{ debugName: "_hasFooter" }] : []));
|
|
212
|
-
/** @ignore */
|
|
213
|
-
formatCellData(cell) {
|
|
214
|
-
if (!cell)
|
|
215
|
-
return '—';
|
|
216
|
-
if (cell instanceof Date)
|
|
217
|
-
return this._datePipe.transform(cell);
|
|
218
|
-
return cell;
|
|
219
|
-
}
|
|
220
|
-
/** @ignore */
|
|
221
|
-
getCellData(row, column) {
|
|
222
|
-
if (!column?.accessor)
|
|
223
|
-
return null;
|
|
224
|
-
const { accessor } = column;
|
|
225
|
-
const cell = typeof accessor === 'function' ? accessor(row) : row[accessor];
|
|
226
|
-
return this.formatCellData(cell);
|
|
227
|
-
}
|
|
228
|
-
/** @ignore */
|
|
229
|
-
checkHasFooter() {
|
|
230
|
-
this._hasFooter.set(Object.values(this.columns()).some((column) => !!column.footer));
|
|
231
|
-
}
|
|
232
|
-
ngAfterViewInit() {
|
|
233
|
-
const dataSource = this.dataSource();
|
|
234
|
-
if (dataSource === undefined)
|
|
235
|
-
return;
|
|
236
|
-
this.checkHasFooter();
|
|
237
|
-
dataSource.sort = this.sort();
|
|
238
|
-
if (dataSource instanceof WattTableDataSource === false)
|
|
239
|
-
return;
|
|
240
|
-
dataSource.sortingDataAccessor = (row, sortHeaderId) => {
|
|
241
|
-
const sortColumn = this.columns()[sortHeaderId];
|
|
242
|
-
if (!sortColumn?.accessor)
|
|
243
|
-
return '';
|
|
244
|
-
// Access raw value for sorting, instead of applying default formatting.
|
|
245
|
-
const { accessor } = sortColumn;
|
|
246
|
-
const cell = typeof accessor === 'function' ? accessor(row) : row[accessor];
|
|
247
|
-
// Make sorting by text case insensitive.
|
|
248
|
-
if (typeof cell === 'string')
|
|
249
|
-
return cell.toLowerCase();
|
|
250
|
-
if (cell instanceof Date)
|
|
251
|
-
return cell.getTime();
|
|
252
|
-
return cell;
|
|
253
|
-
};
|
|
254
|
-
}
|
|
255
|
-
ngOnChanges(changes) {
|
|
256
|
-
if (changes['columns'] || changes['displayedColumns'] || changes['selectable']) {
|
|
257
|
-
const displayedColumns = this.displayedColumns();
|
|
258
|
-
const sizing = Object.keys(this.columns())
|
|
259
|
-
.filter((key) => !displayedColumns || displayedColumns.includes(key))
|
|
260
|
-
.map((key) => this.columns()[key])
|
|
261
|
-
.filter((column) => !column.expandable)
|
|
262
|
-
.map((column) => column.size ?? 'auto');
|
|
263
|
-
if (this.selectable()) {
|
|
264
|
-
// Add space for extra checkbox column
|
|
265
|
-
sizing.unshift('var(--watt-space-xl)');
|
|
266
|
-
}
|
|
267
|
-
if (this._isExpandable()) {
|
|
268
|
-
// Add space for extra expandable column
|
|
269
|
-
sizing.push('min-content');
|
|
270
|
-
}
|
|
271
|
-
this._element.nativeElement.style.setProperty('--watt-table-grid-template-columns', sizing.join(' '));
|
|
272
|
-
this.checkHasFooter();
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
/**
|
|
276
|
-
* Clears the selection.
|
|
277
|
-
*/
|
|
278
|
-
clearSelection = () => this.selection.set([]);
|
|
279
|
-
/**
|
|
280
|
-
* Toggles the selection of a row.
|
|
281
|
-
*/
|
|
282
|
-
toggleSelection = (row) => this.selection.update((s) => (s.includes(row) ? s.filter((r) => r !== row) : s.concat(row)));
|
|
283
|
-
/** @ignore */
|
|
284
|
-
_getColumns() {
|
|
202
|
+
// Unique names for special columns
|
|
203
|
+
checkboxColumn = '__checkboxColumn__';
|
|
204
|
+
expandableColumn = '__expandableColumn__';
|
|
205
|
+
hasFooter = computed(() => Object.values(this.columns()).some((c) => c.footer), ...(ngDevMode ? [{ debugName: "hasFooter" }] : []));
|
|
206
|
+
isExpandable = computed(() => Object.values(this.columns()).some((c) => c.expandable), ...(ngDevMode ? [{ debugName: "isExpandable" }] : []));
|
|
207
|
+
renderedColumns = computed(() => {
|
|
285
208
|
const columns = this.displayedColumns() ?? Object.keys(this.columns());
|
|
286
209
|
return [
|
|
287
|
-
...(this.selectable() ? [this.
|
|
210
|
+
...(this.selectable() ? [this.checkboxColumn] : []),
|
|
288
211
|
...columns.filter((key) => !this.columns()[key].expandable),
|
|
289
|
-
...(this.
|
|
212
|
+
...(this.isExpandable() ? [this.expandableColumn] : []),
|
|
290
213
|
...columns.filter((key) => this.columns()[key].expandable),
|
|
291
214
|
];
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
return this.
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
215
|
+
}, ...(ngDevMode ? [{ debugName: "renderedColumns" }] : []));
|
|
216
|
+
sizing = computed(() => {
|
|
217
|
+
const columns = this.columns();
|
|
218
|
+
return this.renderedColumns()
|
|
219
|
+
.filter((key) => !columns[key]?.expandable)
|
|
220
|
+
.map((key) => {
|
|
221
|
+
switch (key) {
|
|
222
|
+
case this.checkboxColumn:
|
|
223
|
+
return 'var(--watt-space-xl)';
|
|
224
|
+
case this.expandableColumn:
|
|
225
|
+
return 'min-content';
|
|
226
|
+
default:
|
|
227
|
+
return columns[key]?.size ?? 'auto';
|
|
228
|
+
}
|
|
229
|
+
});
|
|
230
|
+
}, ...(ngDevMode ? [{ debugName: "sizing" }] : []));
|
|
231
|
+
/** Try to get cell data for a specific `column` and `row`. */
|
|
232
|
+
getCellData = (column, row) => {
|
|
233
|
+
if (column.cell)
|
|
234
|
+
return column.cell(row);
|
|
235
|
+
return !column.accessor
|
|
236
|
+
? ''
|
|
237
|
+
: typeof column.accessor === 'function'
|
|
238
|
+
? column.accessor(row)
|
|
239
|
+
: row[column.accessor];
|
|
240
|
+
};
|
|
241
|
+
getColumnTemplate = (column) => this.cells().find((item) => item.column() === column)?.templateRef;
|
|
242
|
+
getColumnHeader = (column) => {
|
|
299
243
|
if (typeof column.value.header === 'string')
|
|
300
244
|
return column.value.header;
|
|
301
245
|
const cell = this.cells().find((item) => item.column() === column.value);
|
|
302
246
|
return cell?.header() ?? this.resolveHeader()?.(column.key) ?? column.key;
|
|
303
|
-
}
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
return
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
_getColumnCell(column, row) {
|
|
314
|
-
return column.value.cell?.(row) ?? this.getCellData(row, column.value);
|
|
315
|
-
}
|
|
316
|
-
/** @ignore */
|
|
317
|
-
_getRowKey = (index, row) => {
|
|
247
|
+
};
|
|
248
|
+
getColumnCell = (column, row) => {
|
|
249
|
+
const cell = this.getCellData(column, row);
|
|
250
|
+
if (cell === undefined || cell === null)
|
|
251
|
+
return '—';
|
|
252
|
+
if (cell instanceof Date)
|
|
253
|
+
return wattFormatDate(cell);
|
|
254
|
+
return cell;
|
|
255
|
+
};
|
|
256
|
+
getRowKey = (index, row) => {
|
|
318
257
|
const trackBy = this.trackBy();
|
|
319
258
|
if (typeof trackBy === 'string')
|
|
320
259
|
return row[trackBy];
|
|
@@ -322,29 +261,48 @@ export class WattTableComponent {
|
|
|
322
261
|
return trackBy(index, row);
|
|
323
262
|
return this.dataSource().data.indexOf(row);
|
|
324
263
|
};
|
|
325
|
-
|
|
326
|
-
_isActiveRow(row) {
|
|
264
|
+
isActiveRow = (row) => {
|
|
327
265
|
const activeRow = this.activeRow();
|
|
328
266
|
const activeRowComparator = this.activeRowComparator();
|
|
329
267
|
if (!activeRow)
|
|
330
268
|
return false;
|
|
331
269
|
return activeRowComparator ? activeRowComparator(row, activeRow) : row === activeRow;
|
|
332
|
-
}
|
|
333
|
-
|
|
334
|
-
_isExpandable() {
|
|
335
|
-
return Object.values(this.columns()).some((column) => column.expandable);
|
|
336
|
-
}
|
|
337
|
-
/** @ignore */
|
|
338
|
-
_onRowClick(row) {
|
|
270
|
+
};
|
|
271
|
+
onRowClick = (row) => {
|
|
339
272
|
if (this.disabled() || window.getSelection()?.toString() !== '')
|
|
340
273
|
return;
|
|
341
|
-
if (this.
|
|
274
|
+
if (this.isExpandable()) {
|
|
342
275
|
this.expanded.update((rows) => rows.includes(row) ? rows.filter((r) => r != row) : [...rows, row]);
|
|
343
276
|
}
|
|
344
|
-
this.
|
|
277
|
+
this.rowClick$.next(row);
|
|
278
|
+
};
|
|
279
|
+
constructor() {
|
|
280
|
+
effect(() => {
|
|
281
|
+
const dataSource = this.dataSource();
|
|
282
|
+
dataSource.sort = this.sort();
|
|
283
|
+
if (!(dataSource instanceof WattTableDataSource))
|
|
284
|
+
return;
|
|
285
|
+
dataSource.sortingDataAccessor = (row, sortHeaderId) => {
|
|
286
|
+
const column = this.columns()[sortHeaderId];
|
|
287
|
+
const value = this.getCellData(column, row);
|
|
288
|
+
if (typeof value === 'string')
|
|
289
|
+
return value.toLowerCase(); // case insensitive sorting
|
|
290
|
+
if (value instanceof Date)
|
|
291
|
+
return value.getTime();
|
|
292
|
+
return value;
|
|
293
|
+
};
|
|
294
|
+
});
|
|
345
295
|
}
|
|
296
|
+
/**
|
|
297
|
+
* Clears the selection.
|
|
298
|
+
*/
|
|
299
|
+
clearSelection = () => this.selection.set([]);
|
|
300
|
+
/**
|
|
301
|
+
* Toggles the selection of a row.
|
|
302
|
+
*/
|
|
303
|
+
toggleSelection = (row) => this.selection.update((s) => (s.includes(row) ? s.filter((r) => r !== row) : s.concat(row)));
|
|
346
304
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
347
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: WattTableComponent, isStandalone: true, selector: "watt-table", inputs: { dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: true, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, displayedColumns: { classPropertyName: "displayedColumns", publicName: "displayedColumns", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, stickyFooter: { classPropertyName: "stickyFooter", publicName: "stickyFooter", isSignal: true, isRequired: false, transformFunction: null }, resolveHeader: { classPropertyName: "resolveHeader", publicName: "resolveHeader", isSignal: true, isRequired: false, transformFunction: null }, sortBy: { classPropertyName: "sortBy", publicName: "sortBy", isSignal: true, isRequired: false, transformFunction: null }, sortDirection: { classPropertyName: "sortDirection", publicName: "sortDirection", isSignal: true, isRequired: false, transformFunction: null }, sortClear: { classPropertyName: "sortClear", publicName: "sortClear", isSignal: true, isRequired: false, transformFunction: null }, selectable: { classPropertyName: "selectable", publicName: "selectable", isSignal: true, isRequired: false, transformFunction: null }, selection: { classPropertyName: "selection", publicName: "selection", isSignal: true, isRequired: false, transformFunction: null }, suppressRowHoverHighlight: { classPropertyName: "suppressRowHoverHighlight", publicName: "suppressRowHoverHighlight", isSignal: true, isRequired: false, transformFunction: null }, activeRow: { classPropertyName: "activeRow", publicName: "activeRow", isSignal: true, isRequired: false, transformFunction: null }, activeRowComparator: { classPropertyName: "activeRowComparator", publicName: "activeRowComparator", isSignal: true, isRequired: false, transformFunction: null }, hideColumnHeaders: { classPropertyName: "hideColumnHeaders", publicName: "hideColumnHeaders", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, expanded: { classPropertyName: "expanded", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null }, trackBy: { classPropertyName: "trackBy", publicName: "trackBy", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selection: "selectionChange", expanded: "expandedChange", rowClick: "rowClick", sortChange: "sortChange" }, host: { properties: { "class.watt-table-variant-zebra": "variant() === \"zebra\"" } }, providers: [WattDatePipe], queries: [{ propertyName: "cells", predicate: (WattTableCellDirective), isSignal: true }, { propertyName: "toolbar", first: true, predicate: (WattTableToolbarDirective), descendants: true, isSignal: true }], viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true, isSignal: true }, { propertyName: "tableCellElements", predicate: ["td"], descendants: true, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "<!--\n@license\nCopyright 2020 Energinet DataHub A/S\n\nLicensed under the Apache License, Version 2.0 (the \"License2\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n-->\n<table\n mat-table\n matSort\n role=\"treegrid\"\n [ngClass]=\"{ 'watt-table-has-selection': getSelectionState() !== false }\"\n [matSortActive]=\"sortBy()\"\n [matSortDirection]=\"sortDirection()\"\n [matSortDisableClear]=\"!sortClear()\"\n [dataSource]=\"dataSource()\"\n [attr.aria-label]=\"description()\"\n (matSortChange)=\"sortChange.emit($event)\"\n>\n @if (selectable()) {\n <ng-container [matColumnDef]=\"_checkboxColumn\" [sticky]=\"true\">\n <th mat-header-cell *matHeaderCellDef class=\"watt-table-checkbox-cell\">\n <watt-checkbox\n [ngModel]=\"getSelectionState()\"\n (ngModelChange)=\"$event ? selection.set(dataSource().filteredData) : clearSelection()\"\n />\n </th>\n <td mat-cell *matCellDef=\"let row\" class=\"watt-table-checkbox-cell\">\n <watt-checkbox\n [ngModel]=\"selection().includes(row)\"\n (ngModelChange)=\"toggleSelection(row)\"\n (click)=\"$event.stopPropagation()\"\n />\n </td>\n </ng-container>\n }\n\n <ng-container [matColumnDef]=\"_expandableColumn\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td\n #td\n mat-cell\n *matCellDef=\"let row; let index = index\"\n [attr.data-key]=\"_getRowKey(index, row)\"\n [attr.data-row-index]=\"index\"\n (click)=\"_onRowClick(row)\"\n [class.watt-table-cell--expanded]=\"expanded().includes(row)\"\n >\n <watt-icon name=\"right\" size=\"xs\" />\n </td>\n </ng-container>\n\n @for (column of columns() | keyvalue; track column.key) {\n <ng-container [matColumnDef]=\"column.key\" [stickyEnd]=\"column.value.stickyEnd?.()\">\n <th\n mat-header-cell\n *matHeaderCellDef\n [class.watt-table-cell--expandable]=\"column.value.expandable\"\n class=\"watt-table-align-{{ column.value.align ?? 'left' }} {{\n column.value.headerCellClass\n }}\"\n >\n @if (_getColumnHelperAction(column); as action) {\n <watt-icon name=\"help\" (click)=\"action()\" />\n }\n\n <div\n class=\"watt-table-header-cell\"\n mat-sort-header\n [arrowPosition]=\"column.value.align === 'right' ? 'before' : 'after'\"\n [disabled]=\"!column.value.accessor || column.value.sort === false\"\n >\n {{ _getColumnHeader(column) }}\n </div>\n @if (_getColumnHeaderTooltip(column); as tooltip) {\n <watt-icon [title]=\"tooltip\" name=\"info\" />\n }\n </th>\n\n <td\n #td\n mat-cell\n *matCellDef=\"let row; let index = index\"\n [attr.data-key]=\"_getRowKey(index, row)\"\n [attr.data-row-index]=\"index\"\n [class.watt-table-cell--expanded]=\"expanded().includes(row)\"\n [class.watt-table-cell--expandable]=\"column.value.expandable\"\n class=\"watt-table-align-{{ column.value.align ?? 'left' }} {{ column.value.dataCellClass }}\"\n (click)=\"!column.value.expandable && _onRowClick(row)\"\n >\n @if (_isExpandable()) {\n @defer (when !column.value.expandable || expanded().includes(row)) {\n @if (_getColumnTemplate(column.value); as template) {\n <div class=\"watt-table-cell-wrapper\">\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: row }\" />\n </div>\n } @else {\n {{ _getColumnCell(column, row) }}\n }\n }\n } @else {\n @if (_getColumnTemplate(column.value); as template) {\n <div class=\"watt-table-cell-wrapper\">\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: row }\" />\n </div>\n } @else {\n {{ _getColumnCell(column, row) }}\n }\n }\n </td>\n\n @if (_hasFooter()) {\n <td\n mat-footer-cell\n *matFooterCellDef\n class=\"{{ column.value.footer?.class }} watt-table-align-{{\n column.value.align ?? 'left'\n }} \"\n >\n {{ column.value.footer?.value?.() }}\n </td>\n }\n </ng-container>\n }\n\n <ng-container matColumnDef=\"spacer\">\n <td class=\"watt-table-footer-spacer\" mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n @if (!hideColumnHeaders()) {\n <tr mat-header-row *matHeaderRowDef=\"_getColumns()\"></tr>\n }\n <tr\n mat-row\n *matRowDef=\"let row; columns: _getColumns()\"\n [attr.aria-selected]=\"row === activeRow()\"\n [ngClass]=\"{\n 'watt-table-highlight-row': !disabled() && !suppressRowHoverHighlight(),\n 'watt-table-clickable-row': !disabled() && _rowClick$.observed,\n 'watt-table-active-row': _isActiveRow(row),\n 'watt-table-no-end-divider': hideColumnHeaders(),\n }\"\n ></tr>\n\n @if (toolbar()) {\n <tr mat-footer-row *matFooterRowDef=\"['spacer']\"></tr>\n }\n\n @if (_hasFooter()) {\n <tr\n mat-footer-row\n [class.watt-table-hide-footer]=\"loading() || dataSource().filteredData.length === 0\"\n *matFooterRowDef=\"_getColumns(); sticky: stickyFooter()\"\n ></tr>\n }\n\n <ng-container *matNoDataRow>\n @if (loading()) {\n @for (i of [1, 2, 3]; track i) {\n <tr class=\"mat-mdc-row\">\n @for (_ of _getColumns(); track _; let i = $index) {\n <td class=\"mat-mdc-cell\" [class.watt-table-loading-cell]=\"i > 0 || !selectable()\"></td>\n }\n </tr>\n }\n }\n </ng-container>\n</table>\n\n@if (toolbar(); as toolbar) {\n <div class=\"watt-table-toolbar\" role=\"toolbar\">\n <ng-container\n *ngTemplateOutlet=\"\n toolbar.templateRef;\n context: { $implicit: filterSelectionBy(dataSource().filteredData) }\n \"\n />\n </div>\n}\n", styles: ["watt-table{--mat-table-row-item-label-text-font: $primary-font-family;--mat-table-row-item-outline-color: var(--watt-color-neutral-grey-300);--mat-table-header-headline-font: $primary-font-family}watt-table,watt-table .mat-mdc-table{display:grid;position:relative;overflow:auto;min-height:44px}watt-table .mat-mdc-table{grid-template-columns:var(--watt-table-grid-template-columns);grid-auto-rows:max-content;max-height:100%;z-index:1}watt-table .mat-mdc-table thead,watt-table .mat-mdc-table tbody,watt-table .mat-mdc-table tfoot,watt-table .mat-mdc-table tr.mat-mdc-row,watt-table .mat-mdc-table tr.mat-mdc-header-row,watt-table .mat-mdc-table tr.mat-mdc-footer-row{display:contents}watt-table .mat-mdc-table tr.watt-table-hide-footer{display:none}watt-table .mat-mdc-table tr.mat-mdc-header-row{flex:0 0 auto}watt-table .mat-mdc-table th.mat-mdc-header-cell{color:var(--watt-typography-label-color);font-size:.875rem;line-height:1.25rem;font-weight:600;text-transform:uppercase;box-sizing:border-box;display:flex;position:sticky;top:0;padding:0 var(--watt-space-s);height:auto;background:var(--watt-color-primary-ultralight);box-shadow:0 -1px #0000001f inset;border:0;z-index:2!important;white-space:nowrap;-webkit-user-select:none;user-select:none}watt-table .mat-mdc-table td.mat-mdc-footer-cell,watt-table .mat-mdc-table td.mat-mdc-cell{display:flex;align-items:center;min-height:56px;padding:var(--watt-space-s) var(--watt-space-m)}watt-table .mat-mdc-table td.mat-mdc-cell.watt-table-cell--expandable{padding:0}watt-table .mat-mdc-table td.mat-mdc-footer-cell:not(.watt-table-footer-spacer),watt-table .mat-mdc-table tr.mdc-data-table__row:last-child .mat-mdc-cell{border-bottom:1px solid var(--watt-color-neutral-grey-300)}watt-table .mat-mdc-table td.mat-mdc-footer-cell:not(.watt-table-footer-spacer){font-size:.875rem;line-height:1.25rem;font-weight:600;text-transform:none;letter-spacing:0;border-top:2px solid var(--watt-color-neutral-grey-300);background-color:var(--watt-color-neutral-grey-100)}watt-table .mat-mdc-table .watt-table-no-end-divider:last-child .mat-mdc-cell{border-bottom:0px solid var(--watt-color-neutral-grey-300)!important}watt-table .mat-mdc-table .watt-table-clickable-row>td:not(.watt-table-cell--expandable),watt-table .mat-mdc-table tr:has(>.watt-table-cell--expandable)>td:not(.watt-table-cell--expandable){cursor:pointer;-webkit-user-select:text;user-select:text}watt-table .mat-mdc-table .watt-table-highlight-row:hover:not(.watt-table-active-row,:has(>.watt-table-cell--expandable:hover))>td{background:var(--watt-color-neutral-grey-100)}watt-table .mat-mdc-table .watt-table-active-row>td{background:var(--watt-color-secondary-ultralight)}watt-table .mat-mdc-table .mat-column-__expandableColumn__>watt-icon{transition:transform .2s}watt-table .mat-mdc-table .mat-column-__expandableColumn__.watt-table-cell--expanded>watt-icon{transform:rotate(90deg)}watt-table .mat-mdc-table .mat-sort-header-arrow{margin:0}watt-table .mat-mdc-table .watt-table-align-right .mat-sort-header-arrow{margin-right:var(--watt-space-s)}watt-table .mat-mdc-table .watt-table-align-center .mat-sort-header-arrow,watt-table .mat-mdc-table .watt-table-align-left .mat-sort-header-arrow{margin-left:var(--watt-space-s)}watt-table .mat-mdc-table .watt-table-header-cell{padding:.75rem var(--watt-space-s)}watt-table .mat-mdc-table .watt-table-checkbox-cell{justify-content:center}watt-table .mat-mdc-table th.watt-table-checkbox-cell{display:flex;align-items:center}watt-table .mat-mdc-table .watt-table-align-center,watt-table .mat-mdc-table .watt-table-align-center .mat-sort-header-container{justify-content:center}watt-table .mat-mdc-table .watt-table-align-right,watt-table .mat-mdc-table .watt-table-align-right .mat-sort-header-container{justify-content:right}.watt-table-variant-zebra>table>tbody>tr:nth-child(2n)>td{background-color:var(--watt-color-neutral-grey-50)}watt-table .mat-mdc-table th.watt-table-cell--expandable{display:none}watt-table .mat-mdc-table tr.mat-mdc-row td.mat-mdc-cell.watt-table-cell--expandable{position:relative;min-height:0;max-height:0;border-bottom-width:0;overflow:hidden;pointer-events:none;grid-column:1/-1;background:transparent;flex:1 1 auto;opacity:0;will-change:opacity;transition:opacity .2s cubic-bezier(.4,0,.2,1),overflow 0s .3s allow-discrete}watt-table .mat-mdc-table tr.mat-mdc-row td.mat-mdc-cell.watt-table-cell--expandable>.watt-table-cell-wrapper{position:absolute;top:0;width:100%}watt-table .mat-mdc-table tr.mat-mdc-row td.watt-table-cell--expandable.watt-table-cell--expanded{height:auto;max-height:initial;opacity:1;border-bottom-width:1px;pointer-events:all;overflow:visible}watt-table .mat-mdc-table tr.mat-mdc-row td.watt-table-cell--expandable.watt-table-cell--expanded>.watt-table-cell-wrapper{position:relative}.watt-table-footer-spacer{display:none;height:76px;border:0}.watt-table-has-selection .watt-table-footer-spacer{display:block}.watt-table-has-selection+.watt-table-toolbar{opacity:1;visibility:visible;transition:opacity .3s cubic-bezier(0,0,.2,1),visibility .5s}.watt-table-toolbar{position:absolute;bottom:var(--watt-space-m);left:50%;transform:translate(-50%);display:flex;align-items:center;padding:0 var(--watt-space-m);min-height:44px;border-radius:22px;color:var(--watt-color-primary-contrast);background-color:var(--watt-color-primary);z-index:1;opacity:0;visibility:hidden;transition:none}.watt-table-toolbar .watt-button--disabled{opacity:.4;--watt-button-primary-disabled-color: #fff}.watt-table-loading-cell:before{content:\"\";flex:1;display:block;max-width:200px;height:var(--watt-space-m);border-radius:var(--watt-space-m);opacity:.75;animation:shine 2s infinite linear;background-color:var(--watt-color-neutral-grey-200);background-size:300px;background-position:-100px;background-image:linear-gradient(90deg,var(--watt-color-neutral-grey-300) 0px,var(--watt-color-neutral-grey-200) 40px,var(--watt-color-neutral-grey-300) 80px)}@keyframes shine{40%,to{background-position:200px}}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatSortModule }, { kind: "directive", type: i2.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i2.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i3.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i3.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i3.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i3.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i3.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i3.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i3.MatFooterCellDef, selector: "[matFooterCellDef]" }, { kind: "directive", type: i3.MatFooterRowDef, selector: "[matFooterRowDef]", inputs: ["matFooterRowDef", "matFooterRowDefSticky"] }, { kind: "directive", type: i3.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i3.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "directive", type: i3.MatFooterCell, selector: "mat-footer-cell, td[mat-footer-cell]" }, { kind: "component", type: i3.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i3.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i3.MatFooterRow, selector: "mat-footer-row, tr[mat-footer-row]", exportAs: ["matFooterRow"] }, { kind: "directive", type: i3.MatNoDataRow, selector: "ng-template[matNoDataRow]" }, { kind: "component", type: WattIconComponent, selector: "watt-icon", inputs: ["name", "label", "size", "state"] }, { kind: "component", type: WattCheckboxComponent, selector: "watt-checkbox", inputs: ["required"] }, { kind: "pipe", type: KeyValuePipe, name: "keyvalue" }], encapsulation: i0.ViewEncapsulation.None, deferBlockDependencies: [() => [NgTemplateOutlet]] });
|
|
305
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: WattTableComponent, isStandalone: true, selector: "watt-table", inputs: { dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: true, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, displayedColumns: { classPropertyName: "displayedColumns", publicName: "displayedColumns", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, stickyFooter: { classPropertyName: "stickyFooter", publicName: "stickyFooter", isSignal: true, isRequired: false, transformFunction: null }, resolveHeader: { classPropertyName: "resolveHeader", publicName: "resolveHeader", isSignal: true, isRequired: false, transformFunction: null }, sortBy: { classPropertyName: "sortBy", publicName: "sortBy", isSignal: true, isRequired: false, transformFunction: null }, sortDirection: { classPropertyName: "sortDirection", publicName: "sortDirection", isSignal: true, isRequired: false, transformFunction: null }, sortClear: { classPropertyName: "sortClear", publicName: "sortClear", isSignal: true, isRequired: false, transformFunction: null }, selectable: { classPropertyName: "selectable", publicName: "selectable", isSignal: true, isRequired: false, transformFunction: null }, selection: { classPropertyName: "selection", publicName: "selection", isSignal: true, isRequired: false, transformFunction: null }, suppressRowHoverHighlight: { classPropertyName: "suppressRowHoverHighlight", publicName: "suppressRowHoverHighlight", isSignal: true, isRequired: false, transformFunction: null }, activeRow: { classPropertyName: "activeRow", publicName: "activeRow", isSignal: true, isRequired: false, transformFunction: null }, activeRowComparator: { classPropertyName: "activeRowComparator", publicName: "activeRowComparator", isSignal: true, isRequired: false, transformFunction: null }, hideColumnHeaders: { classPropertyName: "hideColumnHeaders", publicName: "hideColumnHeaders", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, expanded: { classPropertyName: "expanded", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null }, trackBy: { classPropertyName: "trackBy", publicName: "trackBy", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selection: "selectionChange", expanded: "expandedChange", rowClick: "rowClick", sortChange: "sortChange" }, host: { properties: { "class.watt-table-variant-zebra": "variant() === \"zebra\"", "style.--watt-table-grid-template-columns": "sizing().join(\" \")" } }, queries: [{ propertyName: "cells", predicate: (WattTableCellDirective), isSignal: true }, { propertyName: "toolbar", first: true, predicate: (WattTableToolbarDirective), descendants: true, isSignal: true }], viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true, isSignal: true }, { propertyName: "tableCellElements", predicate: ["td"], descendants: true, isSignal: true }], ngImport: i0, template: "<!--\n@license\nCopyright 2020 Energinet DataHub A/S\n\nLicensed under the Apache License, Version 2.0 (the \"License2\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n-->\n<table\n mat-table\n matSort\n role=\"treegrid\"\n [ngClass]=\"{ 'watt-table-has-selection': getSelectionState() !== false }\"\n [matSortActive]=\"sortBy()\"\n [matSortDirection]=\"sortDirection()\"\n [matSortDisableClear]=\"!sortClear()\"\n [dataSource]=\"dataSource()\"\n [attr.aria-label]=\"description()\"\n (matSortChange)=\"sortChange.emit($event)\"\n>\n @if (selectable()) {\n <ng-container [matColumnDef]=\"checkboxColumn\" [sticky]=\"true\">\n <th mat-header-cell *matHeaderCellDef class=\"watt-table-checkbox-cell\">\n <watt-checkbox\n [ngModel]=\"getSelectionState()\"\n (ngModelChange)=\"$event ? selection.set(dataSource().filteredData) : clearSelection()\"\n />\n </th>\n <td mat-cell *matCellDef=\"let row\" class=\"watt-table-checkbox-cell\">\n <watt-checkbox\n [ngModel]=\"selection().includes(row)\"\n (ngModelChange)=\"toggleSelection(row)\"\n (click)=\"$event.stopPropagation()\"\n />\n </td>\n </ng-container>\n }\n\n <ng-container [matColumnDef]=\"expandableColumn\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td\n #td\n mat-cell\n *matCellDef=\"let row; let index = index\"\n [attr.data-key]=\"getRowKey(index, row)\"\n [attr.data-row-index]=\"index\"\n (click)=\"onRowClick(row)\"\n [class.watt-table-cell--expanded]=\"expanded().includes(row)\"\n >\n <watt-icon name=\"right\" size=\"xs\" />\n </td>\n </ng-container>\n\n @for (column of columns() | keyvalue; track column.key) {\n <ng-container [matColumnDef]=\"column.key\" [stickyEnd]=\"column.value.stickyEnd?.()\">\n <th\n mat-header-cell\n *matHeaderCellDef\n [class.watt-table-cell--expandable]=\"column.value.expandable\"\n class=\"watt-table-align-{{ column.value.align ?? 'left' }} {{\n column.value.headerCellClass\n }}\"\n >\n @if (column.value.helperAction; as action) {\n <watt-icon name=\"help\" (click)=\"action()\" />\n }\n\n <div\n class=\"watt-table-header-cell\"\n mat-sort-header\n [arrowPosition]=\"column.value.align === 'right' ? 'before' : 'after'\"\n [disabled]=\"!column.value.accessor || column.value.sort === false\"\n >\n {{ getColumnHeader(column) }}\n </div>\n @if (column.value.tooltip; as tooltip) {\n <watt-icon [title]=\"tooltip\" name=\"info\" />\n }\n </th>\n\n <td\n #td\n mat-cell\n *matCellDef=\"let row; let index = index\"\n [attr.data-key]=\"getRowKey(index, row)\"\n [attr.data-row-index]=\"index\"\n [class.watt-table-cell--expanded]=\"expanded().includes(row)\"\n [class.watt-table-cell--expandable]=\"column.value.expandable\"\n class=\"watt-table-align-{{ column.value.align ?? 'left' }} {{ column.value.dataCellClass }}\"\n (click)=\"!column.value.expandable && onRowClick(row)\"\n >\n @if (isExpandable()) {\n @defer (when !column.value.expandable || expanded().includes(row)) {\n @if (getColumnTemplate(column.value); as template) {\n <div class=\"watt-table-cell-wrapper\">\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: row }\" />\n </div>\n } @else {\n {{ getColumnCell(column.value, row) }}\n }\n }\n } @else {\n @if (getColumnTemplate(column.value); as template) {\n <div class=\"watt-table-cell-wrapper\">\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: row }\" />\n </div>\n } @else {\n {{ getColumnCell(column.value, row) }}\n }\n }\n </td>\n\n @if (hasFooter()) {\n <td\n mat-footer-cell\n *matFooterCellDef\n class=\"{{ column.value.footer?.class }} watt-table-align-{{\n column.value.align ?? 'left'\n }} \"\n >\n {{ column.value.footer?.value?.() }}\n </td>\n }\n </ng-container>\n }\n\n <ng-container matColumnDef=\"spacer\">\n <td class=\"watt-table-footer-spacer\" mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n @if (!hideColumnHeaders()) {\n <tr mat-header-row *matHeaderRowDef=\"renderedColumns()\"></tr>\n }\n <tr\n mat-row\n *matRowDef=\"let row; columns: renderedColumns()\"\n [attr.aria-selected]=\"row === activeRow()\"\n [ngClass]=\"{\n 'watt-table-highlight-row': !disabled() && !suppressRowHoverHighlight(),\n 'watt-table-clickable-row': !disabled() && rowClick$.observed,\n 'watt-table-active-row': isActiveRow(row),\n 'watt-table-no-end-divider': hideColumnHeaders(),\n }\"\n ></tr>\n\n @if (toolbar()) {\n <tr mat-footer-row *matFooterRowDef=\"['spacer']\"></tr>\n }\n\n @if (hasFooter()) {\n <tr\n mat-footer-row\n [class.watt-table-hide-footer]=\"loading() || dataSource().filteredData.length === 0\"\n *matFooterRowDef=\"renderedColumns(); sticky: stickyFooter()\"\n ></tr>\n }\n\n <ng-container *matNoDataRow>\n @if (loading()) {\n @for (i of [1, 2, 3]; track i) {\n <tr class=\"mat-mdc-row\">\n @for (_ of renderedColumns(); track _; let i = $index) {\n <td class=\"mat-mdc-cell\" [class.watt-table-loading-cell]=\"i > 0 || !selectable()\"></td>\n }\n </tr>\n }\n }\n </ng-container>\n</table>\n\n@if (toolbar(); as toolbar) {\n <div class=\"watt-table-toolbar\" role=\"toolbar\">\n <ng-container\n *ngTemplateOutlet=\"\n toolbar.templateRef;\n context: { $implicit: filterSelectionBy(dataSource().filteredData) }\n \"\n />\n </div>\n}\n", styles: ["watt-table{--mat-table-row-item-label-text-font: $primary-font-family;--mat-table-row-item-outline-color: var(--watt-color-neutral-grey-300);--mat-table-header-headline-font: $primary-font-family}watt-table,watt-table .mat-mdc-table{display:grid;position:relative;overflow:auto;min-height:44px}watt-table .mat-mdc-table{grid-template-columns:var(--watt-table-grid-template-columns);grid-auto-rows:max-content;max-height:100%;z-index:1}watt-table .mat-mdc-table thead,watt-table .mat-mdc-table tbody,watt-table .mat-mdc-table tfoot,watt-table .mat-mdc-table tr.mat-mdc-row,watt-table .mat-mdc-table tr.mat-mdc-header-row,watt-table .mat-mdc-table tr.mat-mdc-footer-row{display:contents}watt-table .mat-mdc-table tr.watt-table-hide-footer{display:none}watt-table .mat-mdc-table tr.mat-mdc-header-row{flex:0 0 auto}watt-table .mat-mdc-table th.mat-mdc-header-cell{color:var(--watt-typography-label-color);font-size:.875rem;line-height:1.25rem;font-weight:600;text-transform:uppercase;box-sizing:border-box;display:flex;position:sticky;top:0;padding:0 var(--watt-space-s);height:auto;background:var(--watt-color-primary-ultralight);box-shadow:0 -1px #0000001f inset;border:0;z-index:2!important;white-space:nowrap;-webkit-user-select:none;user-select:none}watt-table .mat-mdc-table td.mat-mdc-footer-cell,watt-table .mat-mdc-table td.mat-mdc-cell{display:flex;align-items:center;min-height:56px;padding:var(--watt-space-s) var(--watt-space-m)}watt-table .mat-mdc-table td.mat-mdc-cell.watt-table-cell--expandable{padding:0}watt-table .mat-mdc-table td.mat-mdc-footer-cell:not(.watt-table-footer-spacer),watt-table .mat-mdc-table tr.mdc-data-table__row:last-child .mat-mdc-cell{border-bottom:1px solid var(--watt-color-neutral-grey-300)}watt-table .mat-mdc-table td.mat-mdc-footer-cell:not(.watt-table-footer-spacer){font-size:.875rem;line-height:1.25rem;font-weight:600;text-transform:none;letter-spacing:0;border-top:2px solid var(--watt-color-neutral-grey-300);background-color:var(--watt-color-neutral-grey-100)}watt-table .mat-mdc-table .watt-table-no-end-divider:last-child .mat-mdc-cell{border-bottom:0px solid var(--watt-color-neutral-grey-300)!important}watt-table .mat-mdc-table .watt-table-clickable-row>td:not(.watt-table-cell--expandable),watt-table .mat-mdc-table tr:has(>.watt-table-cell--expandable)>td:not(.watt-table-cell--expandable){cursor:pointer;-webkit-user-select:text;user-select:text}watt-table .mat-mdc-table .watt-table-highlight-row:hover:not(.watt-table-active-row,:has(>.watt-table-cell--expandable:hover))>td{background:var(--watt-color-neutral-grey-100)}watt-table .mat-mdc-table .watt-table-active-row>td{background:var(--watt-color-secondary-ultralight)}watt-table .mat-mdc-table .mat-column-__expandableColumn__>watt-icon{transition:transform .2s}watt-table .mat-mdc-table .mat-column-__expandableColumn__.watt-table-cell--expanded>watt-icon{transform:rotate(90deg)}watt-table .mat-mdc-table .mat-sort-header-arrow{margin:0}watt-table .mat-mdc-table .watt-table-align-right .mat-sort-header-arrow{margin-right:var(--watt-space-s)}watt-table .mat-mdc-table .watt-table-align-center .mat-sort-header-arrow,watt-table .mat-mdc-table .watt-table-align-left .mat-sort-header-arrow{margin-left:var(--watt-space-s)}watt-table .mat-mdc-table .watt-table-header-cell{padding:.75rem var(--watt-space-s)}watt-table .mat-mdc-table .watt-table-checkbox-cell{justify-content:center}watt-table .mat-mdc-table th.watt-table-checkbox-cell{display:flex;align-items:center}watt-table .mat-mdc-table .watt-table-align-center,watt-table .mat-mdc-table .watt-table-align-center .mat-sort-header-container{justify-content:center}watt-table .mat-mdc-table .watt-table-align-right,watt-table .mat-mdc-table .watt-table-align-right .mat-sort-header-container{justify-content:right}.watt-table-variant-zebra>table>tbody>tr:nth-child(2n)>td{background-color:var(--watt-color-neutral-grey-50)}watt-table .mat-mdc-table th.watt-table-cell--expandable{display:none}watt-table .mat-mdc-table tr.mat-mdc-row td.mat-mdc-cell.watt-table-cell--expandable{position:relative;min-height:0;max-height:0;border-bottom-width:0;overflow:hidden;pointer-events:none;grid-column:1/-1;background:transparent;flex:1 1 auto;opacity:0;will-change:opacity;transition:opacity .2s cubic-bezier(.4,0,.2,1),overflow 0s .3s allow-discrete}watt-table .mat-mdc-table tr.mat-mdc-row td.mat-mdc-cell.watt-table-cell--expandable>.watt-table-cell-wrapper{position:absolute;top:0;width:100%}watt-table .mat-mdc-table tr.mat-mdc-row td.watt-table-cell--expandable.watt-table-cell--expanded{height:auto;max-height:initial;opacity:1;border-bottom-width:1px;pointer-events:all;overflow:visible}watt-table .mat-mdc-table tr.mat-mdc-row td.watt-table-cell--expandable.watt-table-cell--expanded>.watt-table-cell-wrapper{position:relative}.watt-table-footer-spacer{display:none;height:76px;border:0}.watt-table-has-selection .watt-table-footer-spacer{display:block}.watt-table-has-selection+.watt-table-toolbar{opacity:1;visibility:visible;transition:opacity .3s cubic-bezier(0,0,.2,1),visibility .5s}.watt-table-toolbar{position:absolute;bottom:var(--watt-space-m);left:50%;transform:translate(-50%);display:flex;align-items:center;padding:0 var(--watt-space-m);min-height:44px;border-radius:22px;color:var(--watt-color-primary-contrast);background-color:var(--watt-color-primary);z-index:1;opacity:0;visibility:hidden;transition:none}.watt-table-toolbar .watt-button--disabled{opacity:.4;--watt-button-primary-disabled-color: #fff}.watt-table-loading-cell:before{content:\"\";flex:1;display:block;max-width:200px;height:var(--watt-space-m);border-radius:var(--watt-space-m);opacity:.75;animation:shine 2s infinite linear;background-color:var(--watt-color-neutral-grey-200);background-size:300px;background-position:-100px;background-image:linear-gradient(90deg,var(--watt-color-neutral-grey-300) 0px,var(--watt-color-neutral-grey-200) 40px,var(--watt-color-neutral-grey-300) 80px)}@keyframes shine{40%,to{background-position:200px}}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatSortModule }, { kind: "directive", type: i2.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i2.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i3.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i3.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i3.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i3.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i3.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i3.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i3.MatFooterCellDef, selector: "[matFooterCellDef]" }, { kind: "directive", type: i3.MatFooterRowDef, selector: "[matFooterRowDef]", inputs: ["matFooterRowDef", "matFooterRowDefSticky"] }, { kind: "directive", type: i3.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i3.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "directive", type: i3.MatFooterCell, selector: "mat-footer-cell, td[mat-footer-cell]" }, { kind: "component", type: i3.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i3.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i3.MatFooterRow, selector: "mat-footer-row, tr[mat-footer-row]", exportAs: ["matFooterRow"] }, { kind: "directive", type: i3.MatNoDataRow, selector: "ng-template[matNoDataRow]" }, { kind: "component", type: WattIconComponent, selector: "watt-icon", inputs: ["name", "label", "size", "state"] }, { kind: "component", type: WattCheckboxComponent, selector: "watt-checkbox", inputs: ["required"] }, { kind: "pipe", type: KeyValuePipe, name: "keyvalue" }], encapsulation: i0.ViewEncapsulation.None, deferBlockDependencies: [() => [NgTemplateOutlet]] });
|
|
348
306
|
}
|
|
349
307
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattTableComponent, decorators: [{
|
|
350
308
|
type: Component,
|
|
@@ -357,22 +315,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImpor
|
|
|
357
315
|
MatTableModule,
|
|
358
316
|
WattIconComponent,
|
|
359
317
|
WattCheckboxComponent,
|
|
360
|
-
],
|
|
318
|
+
], encapsulation: ViewEncapsulation.None, selector: 'watt-table', host: {
|
|
361
319
|
'[class.watt-table-variant-zebra]': 'variant() === "zebra"',
|
|
362
|
-
}, template: "<!--\n@license\nCopyright 2020 Energinet DataHub A/S\n\nLicensed under the Apache License, Version 2.0 (the \"License2\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n-->\n<table\n mat-table\n matSort\n role=\"treegrid\"\n [ngClass]=\"{ 'watt-table-has-selection': getSelectionState() !== false }\"\n [matSortActive]=\"sortBy()\"\n [matSortDirection]=\"sortDirection()\"\n [matSortDisableClear]=\"!sortClear()\"\n [dataSource]=\"dataSource()\"\n [attr.aria-label]=\"description()\"\n (matSortChange)=\"sortChange.emit($event)\"\n>\n @if (selectable()) {\n <ng-container [matColumnDef]=\"_checkboxColumn\" [sticky]=\"true\">\n <th mat-header-cell *matHeaderCellDef class=\"watt-table-checkbox-cell\">\n <watt-checkbox\n [ngModel]=\"getSelectionState()\"\n (ngModelChange)=\"$event ? selection.set(dataSource().filteredData) : clearSelection()\"\n />\n </th>\n <td mat-cell *matCellDef=\"let row\" class=\"watt-table-checkbox-cell\">\n <watt-checkbox\n [ngModel]=\"selection().includes(row)\"\n (ngModelChange)=\"toggleSelection(row)\"\n (click)=\"$event.stopPropagation()\"\n />\n </td>\n </ng-container>\n }\n\n <ng-container [matColumnDef]=\"_expandableColumn\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td\n #td\n mat-cell\n *matCellDef=\"let row; let index = index\"\n [attr.data-key]=\"_getRowKey(index, row)\"\n [attr.data-row-index]=\"index\"\n (click)=\"_onRowClick(row)\"\n [class.watt-table-cell--expanded]=\"expanded().includes(row)\"\n >\n <watt-icon name=\"right\" size=\"xs\" />\n </td>\n </ng-container>\n\n @for (column of columns() | keyvalue; track column.key) {\n <ng-container [matColumnDef]=\"column.key\" [stickyEnd]=\"column.value.stickyEnd?.()\">\n <th\n mat-header-cell\n *matHeaderCellDef\n [class.watt-table-cell--expandable]=\"column.value.expandable\"\n class=\"watt-table-align-{{ column.value.align ?? 'left' }} {{\n column.value.headerCellClass\n }}\"\n >\n @if (_getColumnHelperAction(column); as action) {\n <watt-icon name=\"help\" (click)=\"action()\" />\n }\n\n <div\n class=\"watt-table-header-cell\"\n mat-sort-header\n [arrowPosition]=\"column.value.align === 'right' ? 'before' : 'after'\"\n [disabled]=\"!column.value.accessor || column.value.sort === false\"\n >\n {{ _getColumnHeader(column) }}\n </div>\n @if (_getColumnHeaderTooltip(column); as tooltip) {\n <watt-icon [title]=\"tooltip\" name=\"info\" />\n }\n </th>\n\n <td\n #td\n mat-cell\n *matCellDef=\"let row; let index = index\"\n [attr.data-key]=\"_getRowKey(index, row)\"\n [attr.data-row-index]=\"index\"\n [class.watt-table-cell--expanded]=\"expanded().includes(row)\"\n [class.watt-table-cell--expandable]=\"column.value.expandable\"\n class=\"watt-table-align-{{ column.value.align ?? 'left' }} {{ column.value.dataCellClass }}\"\n (click)=\"!column.value.expandable && _onRowClick(row)\"\n >\n @if (_isExpandable()) {\n @defer (when !column.value.expandable || expanded().includes(row)) {\n @if (_getColumnTemplate(column.value); as template) {\n <div class=\"watt-table-cell-wrapper\">\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: row }\" />\n </div>\n } @else {\n {{ _getColumnCell(column, row) }}\n }\n }\n } @else {\n @if (_getColumnTemplate(column.value); as template) {\n <div class=\"watt-table-cell-wrapper\">\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: row }\" />\n </div>\n } @else {\n {{ _getColumnCell(column, row) }}\n }\n }\n </td>\n\n @if (_hasFooter()) {\n <td\n mat-footer-cell\n *matFooterCellDef\n class=\"{{ column.value.footer?.class }} watt-table-align-{{\n column.value.align ?? 'left'\n }} \"\n >\n {{ column.value.footer?.value?.() }}\n </td>\n }\n </ng-container>\n }\n\n <ng-container matColumnDef=\"spacer\">\n <td class=\"watt-table-footer-spacer\" mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n @if (!hideColumnHeaders()) {\n <tr mat-header-row *matHeaderRowDef=\"_getColumns()\"></tr>\n }\n <tr\n mat-row\n *matRowDef=\"let row; columns: _getColumns()\"\n [attr.aria-selected]=\"row === activeRow()\"\n [ngClass]=\"{\n 'watt-table-highlight-row': !disabled() && !suppressRowHoverHighlight(),\n 'watt-table-clickable-row': !disabled() && _rowClick$.observed,\n 'watt-table-active-row': _isActiveRow(row),\n 'watt-table-no-end-divider': hideColumnHeaders(),\n }\"\n ></tr>\n\n @if (toolbar()) {\n <tr mat-footer-row *matFooterRowDef=\"['spacer']\"></tr>\n }\n\n @if (_hasFooter()) {\n <tr\n mat-footer-row\n [class.watt-table-hide-footer]=\"loading() || dataSource().filteredData.length === 0\"\n *matFooterRowDef=\"_getColumns(); sticky: stickyFooter()\"\n ></tr>\n }\n\n <ng-container *matNoDataRow>\n @if (loading()) {\n @for (i of [1, 2, 3]; track i) {\n <tr class=\"mat-mdc-row\">\n @for (_ of _getColumns(); track _; let i = $index) {\n <td class=\"mat-mdc-cell\" [class.watt-table-loading-cell]=\"i > 0 || !selectable()\"></td>\n }\n </tr>\n }\n }\n </ng-container>\n</table>\n\n@if (toolbar(); as toolbar) {\n <div class=\"watt-table-toolbar\" role=\"toolbar\">\n <ng-container\n *ngTemplateOutlet=\"\n toolbar.templateRef;\n context: { $implicit: filterSelectionBy(dataSource().filteredData) }\n \"\n />\n </div>\n}\n", styles: ["watt-table{--mat-table-row-item-label-text-font: $primary-font-family;--mat-table-row-item-outline-color: var(--watt-color-neutral-grey-300);--mat-table-header-headline-font: $primary-font-family}watt-table,watt-table .mat-mdc-table{display:grid;position:relative;overflow:auto;min-height:44px}watt-table .mat-mdc-table{grid-template-columns:var(--watt-table-grid-template-columns);grid-auto-rows:max-content;max-height:100%;z-index:1}watt-table .mat-mdc-table thead,watt-table .mat-mdc-table tbody,watt-table .mat-mdc-table tfoot,watt-table .mat-mdc-table tr.mat-mdc-row,watt-table .mat-mdc-table tr.mat-mdc-header-row,watt-table .mat-mdc-table tr.mat-mdc-footer-row{display:contents}watt-table .mat-mdc-table tr.watt-table-hide-footer{display:none}watt-table .mat-mdc-table tr.mat-mdc-header-row{flex:0 0 auto}watt-table .mat-mdc-table th.mat-mdc-header-cell{color:var(--watt-typography-label-color);font-size:.875rem;line-height:1.25rem;font-weight:600;text-transform:uppercase;box-sizing:border-box;display:flex;position:sticky;top:0;padding:0 var(--watt-space-s);height:auto;background:var(--watt-color-primary-ultralight);box-shadow:0 -1px #0000001f inset;border:0;z-index:2!important;white-space:nowrap;-webkit-user-select:none;user-select:none}watt-table .mat-mdc-table td.mat-mdc-footer-cell,watt-table .mat-mdc-table td.mat-mdc-cell{display:flex;align-items:center;min-height:56px;padding:var(--watt-space-s) var(--watt-space-m)}watt-table .mat-mdc-table td.mat-mdc-cell.watt-table-cell--expandable{padding:0}watt-table .mat-mdc-table td.mat-mdc-footer-cell:not(.watt-table-footer-spacer),watt-table .mat-mdc-table tr.mdc-data-table__row:last-child .mat-mdc-cell{border-bottom:1px solid var(--watt-color-neutral-grey-300)}watt-table .mat-mdc-table td.mat-mdc-footer-cell:not(.watt-table-footer-spacer){font-size:.875rem;line-height:1.25rem;font-weight:600;text-transform:none;letter-spacing:0;border-top:2px solid var(--watt-color-neutral-grey-300);background-color:var(--watt-color-neutral-grey-100)}watt-table .mat-mdc-table .watt-table-no-end-divider:last-child .mat-mdc-cell{border-bottom:0px solid var(--watt-color-neutral-grey-300)!important}watt-table .mat-mdc-table .watt-table-clickable-row>td:not(.watt-table-cell--expandable),watt-table .mat-mdc-table tr:has(>.watt-table-cell--expandable)>td:not(.watt-table-cell--expandable){cursor:pointer;-webkit-user-select:text;user-select:text}watt-table .mat-mdc-table .watt-table-highlight-row:hover:not(.watt-table-active-row,:has(>.watt-table-cell--expandable:hover))>td{background:var(--watt-color-neutral-grey-100)}watt-table .mat-mdc-table .watt-table-active-row>td{background:var(--watt-color-secondary-ultralight)}watt-table .mat-mdc-table .mat-column-__expandableColumn__>watt-icon{transition:transform .2s}watt-table .mat-mdc-table .mat-column-__expandableColumn__.watt-table-cell--expanded>watt-icon{transform:rotate(90deg)}watt-table .mat-mdc-table .mat-sort-header-arrow{margin:0}watt-table .mat-mdc-table .watt-table-align-right .mat-sort-header-arrow{margin-right:var(--watt-space-s)}watt-table .mat-mdc-table .watt-table-align-center .mat-sort-header-arrow,watt-table .mat-mdc-table .watt-table-align-left .mat-sort-header-arrow{margin-left:var(--watt-space-s)}watt-table .mat-mdc-table .watt-table-header-cell{padding:.75rem var(--watt-space-s)}watt-table .mat-mdc-table .watt-table-checkbox-cell{justify-content:center}watt-table .mat-mdc-table th.watt-table-checkbox-cell{display:flex;align-items:center}watt-table .mat-mdc-table .watt-table-align-center,watt-table .mat-mdc-table .watt-table-align-center .mat-sort-header-container{justify-content:center}watt-table .mat-mdc-table .watt-table-align-right,watt-table .mat-mdc-table .watt-table-align-right .mat-sort-header-container{justify-content:right}.watt-table-variant-zebra>table>tbody>tr:nth-child(2n)>td{background-color:var(--watt-color-neutral-grey-50)}watt-table .mat-mdc-table th.watt-table-cell--expandable{display:none}watt-table .mat-mdc-table tr.mat-mdc-row td.mat-mdc-cell.watt-table-cell--expandable{position:relative;min-height:0;max-height:0;border-bottom-width:0;overflow:hidden;pointer-events:none;grid-column:1/-1;background:transparent;flex:1 1 auto;opacity:0;will-change:opacity;transition:opacity .2s cubic-bezier(.4,0,.2,1),overflow 0s .3s allow-discrete}watt-table .mat-mdc-table tr.mat-mdc-row td.mat-mdc-cell.watt-table-cell--expandable>.watt-table-cell-wrapper{position:absolute;top:0;width:100%}watt-table .mat-mdc-table tr.mat-mdc-row td.watt-table-cell--expandable.watt-table-cell--expanded{height:auto;max-height:initial;opacity:1;border-bottom-width:1px;pointer-events:all;overflow:visible}watt-table .mat-mdc-table tr.mat-mdc-row td.watt-table-cell--expandable.watt-table-cell--expanded>.watt-table-cell-wrapper{position:relative}.watt-table-footer-spacer{display:none;height:76px;border:0}.watt-table-has-selection .watt-table-footer-spacer{display:block}.watt-table-has-selection+.watt-table-toolbar{opacity:1;visibility:visible;transition:opacity .3s cubic-bezier(0,0,.2,1),visibility .5s}.watt-table-toolbar{position:absolute;bottom:var(--watt-space-m);left:50%;transform:translate(-50%);display:flex;align-items:center;padding:0 var(--watt-space-m);min-height:44px;border-radius:22px;color:var(--watt-color-primary-contrast);background-color:var(--watt-color-primary);z-index:1;opacity:0;visibility:hidden;transition:none}.watt-table-toolbar .watt-button--disabled{opacity:.4;--watt-button-primary-disabled-color: #fff}.watt-table-loading-cell:before{content:\"\";flex:1;display:block;max-width:200px;height:var(--watt-space-m);border-radius:var(--watt-space-m);opacity:.75;animation:shine 2s infinite linear;background-color:var(--watt-color-neutral-grey-200);background-size:300px;background-position:-100px;background-image:linear-gradient(90deg,var(--watt-color-neutral-grey-300) 0px,var(--watt-color-neutral-grey-200) 40px,var(--watt-color-neutral-grey-300) 80px)}@keyframes shine{40%,to{background-position:200px}}\n"] }]
|
|
363
|
-
}] });
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.3", type: WattTableToolbarSpacerComponent, isStandalone: true, selector: "watt-table-toolbar-spacer", ngImport: i0, template: '', isInline: true, styles: [":host{width:var(--watt-space-xl)}\n"] });
|
|
367
|
-
}
|
|
368
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattTableToolbarSpacerComponent, decorators: [{
|
|
369
|
-
type: Component,
|
|
370
|
-
args: [{ selector: 'watt-table-toolbar-spacer', template: '', styles: [":host{width:var(--watt-space-xl)}\n"] }]
|
|
371
|
-
}] });
|
|
372
|
-
export const WATT_TABLE = [
|
|
373
|
-
WattTableComponent,
|
|
374
|
-
WattTableCellDirective,
|
|
375
|
-
WattTableToolbarDirective,
|
|
376
|
-
WattTableToolbarSpacerComponent,
|
|
377
|
-
];
|
|
378
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0dC10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3dhdHQvcGFja2FnZS90YWJsZS93YXR0LXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2xpYnMvd2F0dC9wYWNrYWdlL3RhYmxlL3dhdHQtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FBQ2pCOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILFlBQVk7QUFDWixPQUFPLEVBQVksWUFBWSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BGLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsS0FBSyxFQUVMLE1BQU0sRUFDTixNQUFNLEVBRU4sV0FBVyxFQUNYLFNBQVMsRUFDVCxZQUFZLEVBQ1osaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBdUIsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUF3QixtQkFBbUIsRUFBRSxNQUFN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QkFYM0MsU0FBUzsrQkFDRSwyQkFBMkIsWUFDM0IsRUFBRTs7QUFXZCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7SUFDeEIsa0JBQWtCO0lBQ2xCLHNCQUFzQjtJQUN0Qix5QkFBeUI7SUFDekIsK0JBQStCO0NBQ2hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyNyZWdpb24gTGljZW5zZVxuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMjAgRW5lcmdpbmV0IERhdGFIdWIgQS9TXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZTJcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLy8jZW5kcmVnaW9uXG5pbXBvcnQgeyBLZXlWYWx1ZSwgS2V5VmFsdWVQaXBlLCBOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgY29udGVudENoaWxkLFxuICBjb250ZW50Q2hpbGRyZW4sXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgbW9kZWwsXG4gIE9uQ2hhbmdlcyxcbiAgb3V0cHV0LFxuICBzaWduYWwsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICB2aWV3Q2hpbGQsXG4gIHZpZXdDaGlsZHJlbixcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBTaWduYWwsIFRyYWNrQnlGdW5jdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgb3V0cHV0RnJvbU9ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdFNvcnQsIE1hdFNvcnRNb2R1bGUsIFNvcnQsIFNvcnREaXJlY3Rpb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcbmltcG9ydCB7IE1hdFRhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBXYXR0Q2hlY2tib3hDb21wb25lbnQgfSBmcm9tICdAZW5lcmdpbmV0L3dhdHQvY2hlY2tib3gnO1xuaW1wb3J0IHsgV2F0dERhdGVQaXBlIH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L2NvcmUvZGF0ZSc7XG5pbXBvcnQgeyBXYXR0SWNvbkNvbXBvbmVudCB9IGZyb20gJ0BlbmVyZ2luZXQvd2F0dC9pY29uJztcbmltcG9ydCB7IElXYXR0VGFibGVEYXRhU291cmNlLCBXYXR0VGFibGVEYXRhU291cmNlIH0gZnJvbSAnLi93YXR0LXRhYmxlLWRhdGEtc291cmNlJztcbmltcG9ydCB7IGFuaW1hdGVFeHBhbmRhYmxlQ2VsbHMgfSBmcm9tICcuL3dhdHQtdGFibGUtZXhwYW5kLWFuaW1hdGlvbic7XG5cbi8qKiBDbGFzcyBuYW1lIGZvciBleHBhbmRhYmxlIGNlbGxzLiAqL1xuZXhwb3J0IGNvbnN0IEVYUEFOREFCTEVfQ0xBU1MgPSAnd2F0dC10YWJsZS1jZWxsLS1leHBhbmRhYmxlJztcblxuZXhwb3J0IGludGVyZmFjZSBXYXR0VGFibGVDb2x1bW48VD4ge1xuICAvKipcbiAgICogVGhlIGRhdGEgdGhhdCB0aGlzIGNvbHVtbiBzaG91bGQgYmUgYm91bmQgdG8sIGVpdGhlciBhcyBhIHByb3BlcnR5IG9mIGBUYFxuICAgKiBvciBkZXJpdmVkIGZyb20gZWFjaCByb3cgb2YgYFRgIHVzaW5nIGFuIGFjY2Vzc29yIGZ1bmN0aW9uLiAgVXNlIGBudWxsYFxuICAgKiBmb3IgY29sdW1ucyB0aGF0IHNob3VsZCBub3QgYmUgYXNzb2NpYXRlZCB3aXRoIGRhdGEsIGJ1dCBub3RlIHRoYXQgdGhpc1xuICAgKiB3aWxsIGRpc2FibGUgc29ydGluZyBhbmQgYXV0b21hdGljIGNlbGwgcG9wdWxhdGlvbi5cbiAgICovXG4gIGFjY2Vzc29yOiBrZXlvZiBUIHwgKChyb3c6IFQpID0+IHVua25vd24pIHwgbnVsbDtcblxuICAvKipcbiAgICogUmVzb2x2ZSB0aGUgaGVhZGVyIHRleHQgdG8gYSBzdGF0aWMgZGlzcGxheSB2YWx1ZS4gVGhpcyB3aWxsIHByZXZlbnRcbiAgICogdGhlIGByZXNvbHZlSGVhZGVyYCBpbnB1dCBmdW5jdGlvbiBmcm9tIGJlaW5nIGNhbGxlZCBmb3IgdGhpcyBjb2x1bW4uXG4gICAqL1xuICBoZWFkZXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIGZvciBkZXRlcm1pbmluZyBjZWxsIGNvbnRlbnQgd2hlbiBub3QgdXNpbmcgdGVtcGxhdGUuIEJ5IGRlZmF1bHQsXG4gICAqIGNlbGwgY29udGVudCBpcyBmb3VuZCB1c2luZyB0aGUgYGFjY2Vzc29yYCAodW5sZXNzIGl0IGlzIGBudWxsYCkuXG4gICAqL1xuICBjZWxsPzogKHJvdzogVCkgPT4gc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgb3IgZGlzYWJsZSBzb3J0aW5nIGZvciB0aGlzIGNvbHVtbi4gRGVmYXVsdHMgdG8gYHRydWVgXG4gICAqIHVubGVzcyBgYWNjZXNzb3JgIGlzIGBudWxsYC5cbiAgICovXG4gIHNvcnQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGNvbHVtbiBzaXplIHVzaW5nIGdyaWQgc2l6aW5nIHZhbHVlcy4gRGVmYXVsdHMgdG8gYFwiYXV0b1wiYC5cbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogQWNjZXB0cyBhbGwgb2YgdGhlIENTUyBncmlkIHRyYWNrIHNpemUga2V5d29yZHMgKHN1Y2ggYXMgYG1pbi1jb250ZW50YCxcbiAgICogYG1heC1jb250ZW50YCwgYG1pbm1heCgpYCkgYXMgd2VsbCBhcyBmcmFjdGlvbmFsIChgZnJgKSwgcGVyY2VudGFnZSAoYCVgKVxuICAgKiBhbmQgbGVuZ3RoIChgcHhgLCBgZW1gLCBldGMpIHVuaXRzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtZ3JpZC8jdHJhY2stc2l6ZXNcbiAgICovXG4gIHNpemU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEhvcml6b250YWxseSBhbGlnbiB0aGUgY29udGVudHMgb2YgdGhlIGNvbHVtbi4gRGVmYXVsdHMgdG8gYFwibGVmdFwiYC5cbiAgICovXG4gIGFsaWduPzogJ2xlZnQnIHwgJ3JpZ2h0JyB8ICdjZW50ZXInO1xuXG4gIC8qKlxuICAgKiBIZWxwZXIgaWNvbiB3aWxsIGJlIHNob3duIGluIHRoZSBoZWFkZXIgY2VsbCwgd2l0aCBhbiBjbGljayBldmVudC5cbiAgICovXG4gIGhlbHBlckFjdGlvbj86ICgpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIENTUyBjbGFzcyB0byBhcHBseSB0byB0aGUgaGVhZGVyIGNlbGwgZWxlbWVudC5cbiAgICovXG4gIGhlYWRlckNlbGxDbGFzcz86IHN0cmluZztcblxuICAvKipcbiAgICogQ1NTIGNsYXNzIHRvIGFwcGx5IHRvIHRoZSBkYXRhIGNlbGwgZWxlbWVudC5cbiAgICovXG4gIGRhdGFDZWxsQ2xhc3M/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEZvb3RlciBjb25maWd1cmF0aW9uIGZvciB0aGUgY29sdW1uLlxuICAgKi9cbiAgZm9vdGVyPzogV2F0dFRhYmxlQ29sdW1uRm9vdGVyO1xuXG4gIC8qKlxuICAgKiBXaGVuIHNldCB0byBgdHJ1ZWAsIHRoZSBjb2x1bW4gcmVtYWlucyB2aXNpYmxlIHdoZW4gaG9yaXpvbnRhbGx5IHNjcm9sbGluZy5cbiAgICovXG4gIHN0aWNreUVuZD86IFNpZ25hbDxib29sZWFuPjtcblxuICAvKipcbiAgICogV2hlbiBgdHJ1ZWAsIHRoZSBjZWxsIGlzIHJlcGxhY2VkIHdpdGggYW4gZXhwYW5kYWJsZSBhcnJvdyBhbmQgdGhlIGNvbnRlbnQgaXMgZGVmZXJyZWQuXG4gICAqIENsaWNraW5nIG9uIHRoZSBhcnJvdyByZXZlYWxzIHRoZSBjb250ZW50IGJlbG93IHRoZSBjdXJyZW50IHJvdy5cbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogSXQgaXMgcmVjb21tZW5kZWQgdG8gcHJvdmlkZSBhIGN1c3RvbSBgdHJhY2tCeWAgZnVuY3Rpb24gd2hlbiB1c2luZyBgZXhwYW5kYWJsZWAsXG4gICAqIG90aGVyd2lzZSBhbmltYXRpb25zIGNhbiBiZSBpbmFjY3VyYXRlIHdoZW4gZGF0YSBpcyBjaGFuZ2VkLlxuICAgKi9cbiAgZXhwYW5kYWJsZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRvb2x0aXAgdGV4dCB0byBzaG93IG9uIGhvdmVyIG9mIHRoZSBoZWFkZXIgY2VsbC5cbiAgICovXG4gIHRvb2x0aXA/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgdGhlIGZvb3RlciBjZWxsIG9mIGEgY29sdW1uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdhdHRUYWJsZUNvbHVtbkZvb3RlciB7XG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgdGhhdCB3aWxsIGJlIGRpc3BsYXllZCBpbiB0aGUgZm9vdGVyIGNlbGwuXG4gICAqL1xuICB2YWx1ZT86IFNpZ25hbDxzdHJpbmcgfCBudW1iZXI+O1xuXG4gIC8qKlxuICAgKiBDU1MgY2xhc3MgdG8gYXBwbHkgdG8gdGhlIGZvb3RlciBjZWxsLlxuICAgKi9cbiAgY2xhc3M/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVjb3JkIGZvciBkZWZpbmluZyBjb2x1bW5zIHdpdGgga2V5cyB1c2VkIGFzIGNvbHVtbiBpZGVudGlmaWVycy5cbiAqL1xuZXhwb3J0IHR5cGUgV2F0dFRhYmxlQ29sdW1uRGVmPFQ+ID0gUmVjb3JkPHN0cmluZywgV2F0dFRhYmxlQ29sdW1uPFQ+PjtcblxuLy8gVXNlZCBmb3Igc3Ryb25nbHkgdHlwaW5nIHRoZSBzdHJ1Y3R1cmFsIGRpcmVjdGl2ZVxuaW50ZXJmYWNlIFdhdHRUYWJsZUNlbGxDb250ZXh0PFQ+IHtcbiAgJGltcGxpY2l0OiBUO1xufVxuXG5pbnRlcmZhY2UgV2F0dFRhYmxlVG9vbGJhckNvbnRleHQ8VD4ge1xuICAkaW1wbGljaXQ6IFQ7XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t3YXR0VGFibGVDZWxsXScsXG59KVxuZXhwb3J0IGNsYXNzIFdhdHRUYWJsZUNlbGxEaXJlY3RpdmU8VD4ge1xuICB0ZW1wbGF0ZVJlZiA9IGluamVjdChUZW1wbGF0ZVJlZjxXYXR0VGFibGVDZWxsQ29udGV4dDxUPj4pO1xuXG4gIC8qKlxuICAgKiBUaGUgV2F0dFRhYmxlQ29sdW1uIHRoaXMgdGVtcGxhdGUgYXBwbGllcyB0by5cbiAgICovXG4gIGNvbHVtbiA9IGlucHV0LnJlcXVpcmVkPFdhdHRUYWJsZUNvbHVtbjxUPj4oeyBhbGlhczogJ3dhdHRUYWJsZUNlbGwnIH0pO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBoZWFkZXIgdGV4dCBmb3IgdGhlIGNvbHVtbi5cbiAgICovXG4gIGhlYWRlciA9IGlucHV0PHN0cmluZz4odW5kZWZpbmVkLCB7IGFsaWFzOiAnd2F0dFRhYmxlQ2VsbEhlYWRlcicgfSk7XG5cbiAgc3RhdGljIG5nVGVtcGxhdGVDb250ZXh0R3VhcmQ8VD4oXG4gICAgX2RpcmVjdGl2ZTogV2F0dFRhYmxlQ2VsbERpcmVjdGl2ZTxUPixcbiAgICBjb250ZXh0OiB1bmtub3duXG4gICk6IGNvbnRleHQgaXMgV2F0dFRhYmxlQ2VsbENvbnRleHQ8VD4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t3YXR0VGFibGVUb29sYmFyXScsXG59KVxuZXhwb3J0IGNsYXNzIFdhdHRUYWJsZVRvb2xiYXJEaXJlY3RpdmU8VD4ge1xuICB0ZW1wbGF0ZVJlZiA9IGluamVjdChUZW1wbGF0ZVJlZjxXYXR0VGFibGVUb29sYmFyQ29udGV4dDxUW10+Pik7XG4gIHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkPFQ+KFxuICAgIF9kaXJlY3RpdmU6IFdhdHRUYWJsZVRvb2xiYXJEaXJlY3RpdmU8VD4sXG4gICAgY29udGV4dDogdW5rbm93blxuICApOiBjb250ZXh0IGlzIFdhdHRUYWJsZVRvb2xiYXJDb250ZXh0PFRbXT4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cbi8qKlxuICogVXNhZ2U6XG4gKiBgaW1wb3J0IHsgV0FUVF9UQUJMRSB9IGZyb20gJ0BlbmVyZ2luZXQtZGF0YWh1Yi93YXR0L3RhYmxlJztgXG4gKi9cbkBDb21wb25lbnQoe1xuICBpbXBvcnRzOiBbXG4gICAgTmdDbGFzcyxcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIEtleVZhbHVlUGlwZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBNYXRTb3J0TW9kdWxlLFxuICAgIE1hdFRhYmxlTW9kdWxlLFxuICAgIFdhdHRJY29uQ29tcG9uZW50LFxuICAgIFdhdHRDaGVja2JveENvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbV2F0dERhdGVQaXBlXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgc2VsZWN0b3I6ICd3YXR0LXRhYmxlJyxcbiAgc3R5bGVVcmxzOiBbJy4vd2F0dC10YWJsZS5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZVVybDogJy4vd2F0dC10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLndhdHQtdGFibGUtdmFyaWFudC16ZWJyYV0nOiAndmFyaWFudCgpID09PSBcInplYnJhXCInLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBXYXR0VGFibGVDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQge1xuICAvKipcbiAgICogVGhlIHRhYmxlJ3Mgc291cmNlIG9mIGRhdGEuIFByb3BlcnR5IHNob3VsZCBub3QgYmUgY2hhbmdlZCBhZnRlclxuICAgKiBpbml0aWFsaXphdGlvbiwgaW5zdGVhZCB1cGRhdGUgdGhlIGRhdGEgb24gdGhlIGluc3RhbmNlIGl0c2VsZi5cbiAgICovXG4gIGRhdGFTb3VyY2UgPSBpbnB1dC5yZXF1aXJlZDxJV2F0dFRhYmxlRGF0YVNvdXJjZTxUPj4oKTtcblxuICAvKipcbiAgICogQ29sdW1uIGRlZmluaXRpb24gcmVjb3JkIHdpdGgga2V5cyByZXByZXNlbnRpbmcgdGhlIGNvbHVtbiBpZGVudGlmaWVyc1xuICAgKiBhbmQgdmFsdWVzIGJlaW5nIHRoZSBjb2x1bW4gY29uZmlndXJhdGlvbi4gVGhlIG9yZGVyIG9mIHRoZSBjb2x1bW5zXG4gICAqIGlzIGRldGVybWluZWQgYnkgdGhlIHByb3BlcnR5IG9yZGVyLCBidXQgY2FuIGJlIG92ZXJydWxlZCBieSB0aGVcbiAgICogYGRpc3BsYXllZENvbHVtbnNgIGlucHV0LlxuICAgKi9cbiAgY29sdW1ucyA9IGlucHV0PFdhdHRUYWJsZUNvbHVtbkRlZjxUPj4oe30pO1xuXG4gIC8qKlxuICAgKiBVc2VkIGZvciBoaWRpbmcgb3IgcmVvcmRlcmluZyBjb2x1bW5zIGRlZmluZWQgaW4gdGhlIGBjb2x1bW5zYCBpbnB1dC5cbiAgICovXG4gIGRpc3BsYXllZENvbHVtbnMgPSBpbnB1dDxzdHJpbmdbXT4oKTtcblxuICAvKipcbiAgICogVXNlZCBmb3IgZGlzYWJsaW5nIHRoZSB0YWJsZS4gVGhpcyB3aWxsIGRpc2FibGUgYWxsIHVzZXIgaW50ZXJhY3Rpb25cbiAgICovXG4gIGRpc2FibGVkID0gaW5wdXQoZmFsc2UpO1xuXG4gIC8qKlxuICAgKiBQcm92aWRlIGEgZGVzY3JpcHRpb24gb2YgdGhlIHRhYmxlIGZvciB2aXN1YWxseSBpbXBhaXJlZCB1c2Vycy5cbiAgICovXG4gIGRlc2NyaXB0aW9uID0gaW5wdXQoJycpO1xuXG4gIC8qKlxuICAgKiBJZiBzZXQgdG8gYHRydWVgLCB0aGUgdGFibGUgd2lsbCBzaG93IGEgbG9hZGluZyBpbmRpY2F0b3JcbiAgICogd2hlbiB0aGVyZSBpcyBubyBkYXRhLlxuICAgKi9cbiAgbG9hZGluZyA9IGlucHV0KGZhbHNlKTtcblxuICAvKipcbiAgICogSWYgdHJ1ZSB0aGUgZm9vdGVyIHdpbGwgYmUgc3RpY2t5XG4gICAqL1xuICBzdGlja3lGb290ZXIgPSBpbnB1dChmYWxzZSk7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGNhbGxiYWNrIGZvciBkZXRlcm1pbmluZyBoZWFkZXIgdGV4dCBmb3IgY29sdW1ucyB0aGF0XG4gICAqIGRvIG5vdCBoYXZlIGEgc3RhdGljIGhlYWRlciB0ZXh0IHNldCBpbiB0aGUgY29sdW1uIGRlZmluaXRpb24uXG4gICAqIFVzZWZ1bCBmb3IgcHJvdmlkaW5nIHRyYW5zbGF0aW9ucyBvZiBjb2x1bW4gaGVhZGVycy5cbiAgICovXG4gIHJlc29sdmVIZWFkZXIgPSBpbnB1dDwoa2V5OiBzdHJpbmcpID0+IHN0cmluZz4oKTtcblxuICAvKipcbiAgICogSWRlbnRpZmllciBmb3IgY29sdW1uIHRoYXQgc2hvdWxkIGJlIHNvcnRlZCBpbml0aWFsbHkuXG4gICAqL1xuICBzb3J0QnkgPSBpbnB1dCgnJyk7XG5cbiAgLyoqXG4gICAqIFRoZSBzb3J0IGRpcmVjdGlvbiBvZiB0aGUgaW5pdGlhbGx5IHNvcnRlZCBjb2x1bW4uXG4gICAqL1xuICBzb3J0RGlyZWN0aW9uID0gaW5wdXQ8U29ydERpcmVjdGlvbj4oJycpO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGFsbG93IHRoZSB1c2VyIHRvIGNsZWFyIHRoZSBzb3J0LiBEZWZhdWx0cyB0byBgdHJ1ZWAuXG4gICAqL1xuICBzb3J0Q2xlYXIgPSBpbnB1dCh0cnVlKTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgdGFibGUgc2hvdWxkIGluY2x1ZGUgYSBjaGVja2JveCBjb2x1bW4gZm9yIHJvdyBzZWxlY3Rpb24uXG4gICAqL1xuICBzZWxlY3RhYmxlID0gaW5wdXQoZmFsc2UpO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBzZWxlY3RlZCByb3dzLiBPbmx5IGFwcGxpY2FibGUgd2hlbiBzZWxlY3RhYmxlIGlzIGB0cnVlYC5cbiAgICovXG4gIHNlbGVjdGlvbiA9IG1vZGVsPFRbXT4oW10pO1xuXG4gIC8qKlxuICAgKiBTZXQgdG8gdHJ1ZSB0byBkaXNhYmxlIHJvdyBob3ZlciBoaWdobGlnaHQuXG4gICAqL1xuICBzdXBwcmVzc1Jvd0hvdmVySGlnaGxpZ2h0ID0gaW5wdXQoZmFsc2UpO1xuXG4gIC8qKlxuICAgKiBIaWdobGlnaHRzIHRoZSBjdXJyZW50bHkgYWN0aXZlIHJvdy5cbiAgICovXG4gIGFjdGl2ZVJvdyA9IGlucHV0PFQ+KCk7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBjb21wYXJhdG9yIGZ1bmN0aW9uIHRvIGRldGVybWluZSBpZiB0d28gcm93cyBhcmUgZXF1YWwuXG4gICAqXG4gICAqIEByZW1hcmtzXG4gICAqIFRoZSBkZWZhdWx0IGJlaGF2aW9yIGZvciBkZXRlcm1pbmluZyB0aGUgYWN0aXZlIHJvdyBpcyB0byBjb21wYXJlXG4gICAqIHRoZSB0d28gcm93IG9iamVjdHMgdXNpbmcgc3RyaWN0IGVxdWFsaXR5IGNoZWNrLiBUaGlzIGlzIHN1ZmZpY2llbnRcbiAgICogYXMgbG9uZyBhcyB0aGUgaW5zdGFuY2VzIHJlbWFpbiB0aGUgc2FtZSwgd2hpY2ggbWF5IG5vdCBiZSB0aGUgY2FzZVxuICAgKiBpZiByb3cgZGF0YSBpcyByZWNyZWF0ZWQgb3IgcmVidWlsdCBmcm9tIHNlcmlhbGl6YXRpb24uXG4gICAqL1xuICBhY3RpdmVSb3dDb21wYXJhdG9yID0gaW5wdXQ8KGN1cnJlbnRSb3c6IFQsIGFjdGl2ZVJvdzogVCkgPT4gYm9vbGVhbj4oKTtcblxuICAvKipcbiAgICogSWYgc2V0IHRvIGB0cnVlYCwgdGhlIGNvbHVtbiBoZWFkZXJzIHdpbGwgbm90IGJlIHNob3duLiBEZWZhdWx0IGlzIGBmYWxzZWAuXG4gICAqL1xuICBoaWRlQ29sdW1uSGVhZGVycyA9IGlucHV0KGZhbHNlKTtcblxuICAvKipcbiAgICogQ2hvb3NlIGZyb20gYSBwcmVkZWZpbmVkIHNldCBvZiBkaXNwbGF5IHZhcmlhbnRzLlxuICAgKi9cbiAgdmFyaWFudCA9IGlucHV0PCd6ZWJyYSc+KCk7XG5cbiAgLyoqXG4gICAqIEFycmF5IG9mIHJvd3MgdGhhdCBhcmUgY3VycmVudGx5IGV4cGFuZGVkLlxuICAgKi9cbiAgZXhwYW5kZWQgPSBtb2RlbDxUW10+KFtdKTtcblxuICAvKipcbiAgICogT3B0aW9uYWwgZnVuY3Rpb24gZm9yIHVuaXF1ZWx5IGlkZW50aWZ5aW5nIHJvd3MuXG4gICAqL1xuICB0cmFja0J5ID0gaW5wdXQ8VHJhY2tCeUZ1bmN0aW9uPFQ+IHwga2V5b2YgVD4oKTtcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKiBUaGUgYG9ic2VydmVkYCBib29sZWFuIGZyb20gdGhlIGBTdWJqZWN0YCBpcyB1c2VkIHRvIGRldGVybWluZSBpZiBhIHJvdyBpc1xuICAgKiBjbGlja2FibGUgb3Igbm90LiBUaGlzIGlzIGF2YWlsYWJsZSBvbiBgRXZlbnRFbWl0dGVyYCwgYnV0IG5vdCBvbiBgb3V0cHV0YCxcbiAgICogd2hpY2ggaXMgd2h5IHRoaXMgd29ya2Fyb3VuZCBpcyB1c2VkLlxuICAgKi9cbiAgcHJvdGVjdGVkIF9yb3dDbGljayQgPSBuZXcgU3ViamVjdDxUPigpO1xuXG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuZXZlciBhIHJvdyBpcyBjbGlja2VkLlxuICAgKi9cbiAgcm93Q2xpY2sgPSBvdXRwdXRGcm9tT2JzZXJ2YWJsZSh0aGlzLl9yb3dDbGljayQpO1xuXG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHVzZXIgY2hhbmdlcyB0aGUgYWN0aXZlIHNvcnQgb3Igc29ydCBkaXJlY3Rpb24uXG4gICAqL1xuICBzb3J0Q2hhbmdlID0gb3V0cHV0PFNvcnQ+KCk7XG5cbiAgLy8gUXVlcmllc1xuICBwcm90ZWN0ZWQgY2VsbHMgPSBjb250ZW50Q2hpbGRyZW4oV2F0dFRhYmxlQ2VsbERpcmVjdGl2ZTxUPik7XG4gIHByb3RlY3RlZCB0b29sYmFyID0gY29udGVudENoaWxkKFdhdHRUYWJsZVRvb2xiYXJEaXJlY3RpdmU8VD4pO1xuICBwcm90ZWN0ZWQgc29ydCA9IHZpZXdDaGlsZChNYXRTb3J0KTtcbiAgcHJvdGVjdGVkIHRhYmxlQ2VsbEVsZW1lbnRzID0gdmlld0NoaWxkcmVuPEVsZW1lbnRSZWY8SFRNTFRhYmxlQ2VsbEVsZW1lbnQ+PigndGQnKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBfYW5pbWF0aW9uRWZmZWN0ID0gYW5pbWF0ZUV4cGFuZGFibGVDZWxscyh0aGlzLnRhYmxlQ2VsbEVsZW1lbnRzLCB0aGlzLmV4cGFuZGVkKTtcblxuICAvLyBTZWxlY3RhYmxlXG4gIHByb3RlY3RlZCBmaWx0ZXJTZWxlY3Rpb25CeSA9IChyb3dzOiBUW10pID0+IHJvd3MuZmlsdGVyKChyb3cpID0+IHRoaXMuc2VsZWN0aW9uKCkuaW5jbHVkZXMocm93KSk7XG4gIHByb3RlY3RlZCBnZXRTZWxlY3Rpb25TdGF0ZSA9ICgpID0+IHtcbiAgICBjb25zdCBmaWx0ZXJlZERhdGEgPSB0aGlzLmRhdGFTb3VyY2UoKS5maWx0ZXJlZERhdGE7XG4gICAgY29uc3QgZmlsdGVyZWRTZWxlY3Rpb24gPSB0aGlzLmZpbHRlclNlbGVjdGlvbkJ5KGZpbHRlcmVkRGF0YSk7XG4gICAgaWYgKCFmaWx0ZXJlZFNlbGVjdGlvbi5sZW5ndGgpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gZmlsdGVyZWRTZWxlY3Rpb24ubGVuZ3RoID09PSB0aGlzLmRhdGFTb3VyY2UoKS5maWx0ZXJlZERhdGEubGVuZ3RoID8gdHJ1ZSA6IG51bGw7XG4gIH07XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgX2NoZWNrYm94Q29sdW1uID0gJ19fY2hlY2tib3hDb2x1bW5fXyc7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgX2V4cGFuZGFibGVDb2x1bW4gPSAnX19leHBhbmRhYmxlQ29sdW1uX18nO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIF9lbGVtZW50ID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBfZGF0ZVBpcGUgPSBpbmplY3QoV2F0dERhdGVQaXBlKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBfaGFzRm9vdGVyID0gc2lnbmFsKGZhbHNlKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIGZvcm1hdENlbGxEYXRhKGNlbGw6IHVua25vd24pIHtcbiAgICBpZiAoIWNlbGwpIHJldHVybiAn4oCUJztcbiAgICBpZiAoY2VsbCBpbnN0YW5jZW9mIERhdGUpIHJldHVybiB0aGlzLl9kYXRlUGlwZS50cmFuc2Zvcm0oY2VsbCk7XG4gICAgcmV0dXJuIGNlbGw7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIGdldENlbGxEYXRhKHJvdzogVCwgY29sdW1uPzogV2F0dFRhYmxlQ29sdW1uPFQ+KSB7XG4gICAgaWYgKCFjb2x1bW4/LmFjY2Vzc29yKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCB7IGFjY2Vzc29yIH0gPSBjb2x1bW47XG4gICAgY29uc3QgY2VsbCA9IHR5cGVvZiBhY2Nlc3NvciA9PT0gJ2Z1bmN0aW9uJyA/IGFjY2Vzc29yKHJvdykgOiByb3dbYWNjZXNzb3JdO1xuICAgIHJldHVybiB0aGlzLmZvcm1hdENlbGxEYXRhKGNlbGwpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBjaGVja0hhc0Zvb3RlcigpOiB2b2lkIHtcbiAgICB0aGlzLl9oYXNGb290ZXIuc2V0KE9iamVjdC52YWx1ZXModGhpcy5jb2x1bW5zKCkpLnNvbWUoKGNvbHVtbikgPT4gISFjb2x1bW4uZm9vdGVyKSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgY29uc3QgZGF0YVNvdXJjZSA9IHRoaXMuZGF0YVNvdXJjZSgpO1xuICAgIGlmIChkYXRhU291cmNlID09PSB1bmRlZmluZWQpIHJldHVybjtcblxuICAgIHRoaXMuY2hlY2tIYXNGb290ZXIoKTtcbiAgICBkYXRhU291cmNlLnNvcnQgPSB0aGlzLnNvcnQoKTtcbiAgICBpZiAoZGF0YVNvdXJjZSBpbnN0YW5jZW9mIFdhdHRUYWJsZURhdGFTb3VyY2UgPT09IGZhbHNlKSByZXR1cm47XG4gICAgZGF0YVNvdXJjZS5zb3J0aW5nRGF0YUFjY2Vzc29yID0gKHJvdzogVCwgc29ydEhlYWRlcklkOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IHNvcnRDb2x1bW4gPSB0aGlzLmNvbHVtbnMoKVtzb3J0SGVhZGVySWRdO1xuICAgICAgaWYgKCFzb3J0Q29sdW1uPy5hY2Nlc3NvcikgcmV0dXJuICcnO1xuXG4gICAgICAvLyBBY2Nlc3MgcmF3IHZhbHVlIGZvciBzb3J0aW5nLCBpbnN0ZWFkIG9mIGFwcGx5aW5nIGRlZmF1bHQgZm9ybWF0dGluZy5cbiAgICAgIGNvbnN0IHsgYWNjZXNzb3IgfSA9IHNvcnRDb2x1bW47XG4gICAgICBjb25zdCBjZWxsID0gdHlwZW9mIGFjY2Vzc29yID09PSAnZnVuY3Rpb24nID8gYWNjZXNzb3Iocm93KSA6IHJvd1thY2Nlc3Nvcl07XG5cbiAgICAgIC8vIE1ha2Ugc29ydGluZyBieSB0ZXh0IGNhc2UgaW5zZW5zaXRpdmUuXG4gICAgICBpZiAodHlwZW9mIGNlbGwgPT09ICdzdHJpbmcnKSByZXR1cm4gY2VsbC50b0xvd2VyQ2FzZSgpO1xuICAgICAgaWYgKGNlbGwgaW5zdGFuY2VvZiBEYXRlKSByZXR1cm4gY2VsbC5nZXRUaW1lKCk7XG4gICAgICByZXR1cm4gY2VsbCBhcyBudW1iZXI7XG4gICAgfTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snY29sdW1ucyddIHx8IGNoYW5nZXNbJ2Rpc3BsYXllZENvbHVtbnMnXSB8fCBjaGFuZ2VzWydzZWxlY3RhYmxlJ10pIHtcbiAgICAgIGNvbnN0IGRpc3BsYXllZENvbHVtbnMgPSB0aGlzLmRpc3BsYXllZENvbHVtbnMoKTtcbiAgICAgIGNvbnN0IHNpemluZyA9IE9iamVjdC5rZXlzKHRoaXMuY29sdW1ucygpKVxuICAgICAgICAuZmlsdGVyKChrZXkpID0+ICFkaXNwbGF5ZWRDb2x1bW5zIHx8IGRpc3BsYXllZENvbHVtbnMuaW5jbHVkZXMoa2V5KSlcbiAgICAgICAgLm1hcCgoa2V5KSA9PiB0aGlzLmNvbHVtbnMoKVtrZXldKVxuICAgICAgICAuZmlsdGVyKChjb2x1bW4pID0+ICFjb2x1bW4uZXhwYW5kYWJsZSlcbiAgICAgICAgLm1hcCgoY29sdW1uKSA9PiBjb2x1bW4uc2l6ZSA/PyAnYXV0bycpO1xuXG4gICAgICBpZiAodGhpcy5zZWxlY3RhYmxlKCkpIHtcbiAgICAgICAgLy8gQWRkIHNwYWNlIGZvciBleHRyYSBjaGVja2JveCBjb2x1bW5cbiAgICAgICAgc2l6aW5nLnVuc2hpZnQoJ3ZhcigtLXdhdHQtc3BhY2UteGwpJyk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLl9pc0V4cGFuZGFibGUoKSkge1xuICAgICAgICAvLyBBZGQgc3BhY2UgZm9yIGV4dHJhIGV4cGFuZGFibGUgY29sdW1uXG4gICAgICAgIHNpemluZy5wdXNoKCdtaW4tY29udGVudCcpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXG4gICAgICAgICctLXdhdHQtdGFibGUtZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJyxcbiAgICAgICAgc2l6aW5nLmpvaW4oJyAnKVxuICAgICAgKTtcblxuICAgICAgdGhpcy5jaGVja0hhc0Zvb3RlcigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhcnMgdGhlIHNlbGVjdGlvbi5cbiAgICovXG4gIGNsZWFyU2VsZWN0aW9uID0gKCkgPT4gdGhpcy5zZWxlY3Rpb24uc2V0KFtdKTtcblxuICAvKipcbiAgICogVG9nZ2xlcyB0aGUgc2VsZWN0aW9uIG9mIGEgcm93LlxuICAgKi9cbiAgdG9nZ2xlU2VsZWN0aW9uID0gKHJvdzogVCkgPT5cbiAgICB0aGlzLnNlbGVjdGlvbi51cGRhdGUoKHMpID0+IChzLmluY2x1ZGVzKHJvdykgPyBzLmZpbHRlcigocikgPT4gciAhPT0gcm93KSA6IHMuY29uY2F0KHJvdykpKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBfZ2V0Q29sdW1ucygpIHtcbiAgICBjb25zdCBjb2x1bW5zID0gdGhpcy5kaXNwbGF5ZWRDb2x1bW5zKCkgPz8gT2JqZWN0LmtleXModGhpcy5jb2x1bW5zKCkpO1xuICAgIHJldHVybiBbXG4gICAgICAuLi4odGhpcy5zZWxlY3RhYmxlKCkgPyBbdGhpcy5fY2hlY2tib3hDb2x1bW5dIDogW10pLFxuICAgICAgLi4uY29sdW1ucy5maWx0ZXIoKGtleSkgPT4gIXRoaXMuY29sdW1ucygpW2tleV0uZXhwYW5kYWJsZSksXG4gICAgICAuLi4odGhpcy5faXNFeHBhbmRhYmxlKCkgPyBbdGhpcy5fZXhwYW5kYWJsZUNvbHVtbl0gOiBbXSksXG4gICAgICAuLi5jb2x1bW5zLmZpbHRlcigoa2V5KSA9PiB0aGlzLmNvbHVtbnMoKVtrZXldLmV4cGFuZGFibGUpLFxuICAgIF07XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBfZ2V0Q29sdW1uVGVtcGxhdGUoY29sdW1uOiBXYXR0VGFibGVDb2x1bW48VD4pIHtcbiAgICByZXR1cm4gdGhpcy5jZWxscygpLmZpbmQoKGl0ZW0pID0+IGl0ZW0uY29sdW1uKCkgPT09IGNvbHVtbik/LnRlbXBsYXRlUmVmO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgX2dldENvbHVtbkhlYWRlcihjb2x1bW46IEtleVZhbHVlPHN0cmluZywgV2F0dFRhYmxlQ29sdW1uPFQ+Pikge1xuICAgIGlmICh0eXBlb2YgY29sdW1uLnZhbHVlLmhlYWRlciA9PT0gJ3N0cmluZycpIHJldHVybiBjb2x1bW4udmFsdWUuaGVhZGVyO1xuICAgIGNvbnN0IGNlbGwgPSB0aGlzLmNlbGxzKCkuZmluZCgoaXRlbSkgPT4gaXRlbS5jb2x1bW4oKSA9PT0gY29sdW1uLnZhbHVlKTtcbiAgICByZXR1cm4gY2VsbD8uaGVhZGVyKCkgPz8gdGhpcy5yZXNvbHZlSGVhZGVyKCk/Lihjb2x1bW4ua2V5KSA/PyBjb2x1bW4ua2V5O1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgX2dldENvbHVtbkhlbHBlckFjdGlvbihjb2x1bW46IEtleVZhbHVlPHN0cmluZywgV2F0dFRhYmxlQ29sdW1uPFQ+Pikge1xuICAgIHJldHVybiBjb2x1bW4udmFsdWUuaGVscGVyQWN0aW9uO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgX2dldENvbHVtbkhlYWRlclRvb2x0aXAoY29sdW1uOiBLZXlWYWx1ZTxzdHJpbmcsIFdhdHRUYWJsZUNvbHVtbjxUPj4pIHtcbiAgICByZXR1cm4gY29sdW1uLnZhbHVlLnRvb2x0aXA7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBfZ2V0Q29sdW1uQ2VsbChjb2x1bW46IEtleVZhbHVlPHN0cmluZywgV2F0dFRhYmxlQ29sdW1uPFQ+Piwgcm93OiBUKSB7XG4gICAgcmV0dXJuIGNvbHVtbi52YWx1ZS5jZWxsPy4ocm93KSA/PyB0aGlzLmdldENlbGxEYXRhKHJvdywgY29sdW1uLnZhbHVlKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIF9nZXRSb3dLZXkgPSAoaW5kZXg6IG51bWJlciwgcm93OiBUKSA9PiB7XG4gICAgY29uc3QgdHJhY2tCeSA9IHRoaXMudHJhY2tCeSgpO1xuICAgIGlmICh0eXBlb2YgdHJhY2tCeSA9PT0gJ3N0cmluZycpIHJldHVybiByb3dbdHJhY2tCeV07XG4gICAgaWYgKHR5cGVvZiB0cmFja0J5ID09PSAnZnVuY3Rpb24nKSByZXR1cm4gdHJhY2tCeShpbmRleCwgcm93KTtcbiAgICByZXR1cm4gdGhpcy5kYXRhU291cmNlKCkuZGF0YS5pbmRleE9mKHJvdyk7XG4gIH07XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgX2lzQWN0aXZlUm93KHJvdzogVCkge1xuICAgIGNvbnN0IGFjdGl2ZVJvdyA9IHRoaXMuYWN0aXZlUm93KCk7XG4gICAgY29uc3QgYWN0aXZlUm93Q29tcGFyYXRvciA9IHRoaXMuYWN0aXZlUm93Q29tcGFyYXRvcigpO1xuICAgIGlmICghYWN0aXZlUm93KSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIGFjdGl2ZVJvd0NvbXBhcmF0b3IgPyBhY3RpdmVSb3dDb21wYXJhdG9yKHJvdywgYWN0aXZlUm93KSA6IHJvdyA9PT0gYWN0aXZlUm93O1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgX2lzRXhwYW5kYWJsZSgpIHtcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLmNvbHVtbnMoKSkuc29tZSgoY29sdW1uKSA9PiBjb2x1bW4uZXhwYW5kYWJsZSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBfb25Sb3dDbGljayhyb3c6IFQpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCgpIHx8IHdpbmRvdy5nZXRTZWxlY3Rpb24oKT8udG9TdHJpbmcoKSAhPT0gJycpIHJldHVybjtcbiAgICBpZiAodGhpcy5faXNFeHBhbmRhYmxlKCkpIHtcbiAgICAgIHRoaXMuZXhwYW5kZWQudXBkYXRlKChyb3dzKSA9PlxuICAgICAgICByb3dzLmluY2x1ZGVzKHJvdykgPyByb3dzLmZpbHRlcigocikgPT4gciAhPSByb3cpIDogWy4uLnJvd3MsIHJvd11cbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5fcm93Q2xpY2skLm5leHQocm93KTtcbiAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3YXR0LXRhYmxlLXRvb2xiYXItc3BhY2VyJyxcbiAgdGVtcGxhdGU6ICcnLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIHdpZHRoOiB2YXIoLS13YXR0LXNwYWNlLXhsKTtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBXYXR0VGFibGVUb29sYmFyU3BhY2VyQ29tcG9uZW50IHt9XG5cbmV4cG9ydCBjb25zdCBXQVRUX1RBQkxFID0gW1xuICBXYXR0VGFibGVDb21wb25lbnQsXG4gIFdhdHRUYWJsZUNlbGxEaXJlY3RpdmUsXG4gIFdhdHRUYWJsZVRvb2xiYXJEaXJlY3RpdmUsXG4gIFdhdHRUYWJsZVRvb2xiYXJTcGFjZXJDb21wb25lbnQsXG5dO1xuIiwiPCEtLVxuQGxpY2Vuc2VcbkNvcHlyaWdodCAyMDIwIEVuZXJnaW5ldCBEYXRhSHViIEEvU1xuXG5MaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlMlwiKTtcbnlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbllvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuXG4gICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cblVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbmRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbldJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxubGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4tLT5cbjx0YWJsZVxuICBtYXQtdGFibGVcbiAgbWF0U29ydFxuICByb2xlPVwidHJlZWdyaWRcIlxuICBbbmdDbGFzc109XCJ7ICd3YXR0LXRhYmxlLWhhcy1zZWxlY3Rpb24nOiBnZXRTZWxlY3Rpb25TdGF0ZSgpICE9PSBmYWxzZSB9XCJcbiAgW21hdFNvcnRBY3RpdmVdPVwic29ydEJ5KClcIlxuICBbbWF0U29ydERpcmVjdGlvbl09XCJzb3J0RGlyZWN0aW9uKClcIlxuICBbbWF0U29ydERpc2FibGVDbGVhcl09XCIhc29ydENsZWFyKClcIlxuICBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlKClcIlxuICBbYXR0ci5hcmlhLWxhYmVsXT1cImRlc2NyaXB0aW9uKClcIlxuICAobWF0U29ydENoYW5nZSk9XCJzb3J0Q2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4+XG4gIEBpZiAoc2VsZWN0YWJsZSgpKSB7XG4gICAgPG5nLWNvbnRhaW5lciBbbWF0Q29sdW1uRGVmXT1cIl9jaGVja2JveENvbHVtblwiIFtzdGlja3ldPVwidHJ1ZVwiPlxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBjbGFzcz1cIndhdHQtdGFibGUtY2hlY2tib3gtY2VsbFwiPlxuICAgICAgICA8d2F0dC1jaGVja2JveFxuICAgICAgICAgIFtuZ01vZGVsXT1cImdldFNlbGVjdGlvblN0YXRlKClcIlxuICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIiRldmVudCA/IHNlbGVjdGlvbi5zZXQoZGF0YVNvdXJjZSgpLmZpbHRlcmVkRGF0YSkgOiBjbGVhclNlbGVjdGlvbigpXCJcbiAgICAgICAgLz5cbiAgICAgIDwvdGg+XG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCIgY2xhc3M9XCJ3YXR0LXRhYmxlLWNoZWNrYm94LWNlbGxcIj5cbiAgICAgICAgPHdhdHQtY2hlY2tib3hcbiAgICAgICAgICBbbmdNb2RlbF09XCJzZWxlY3Rpb24oKS5pbmNsdWRlcyhyb3cpXCJcbiAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ0b2dnbGVTZWxlY3Rpb24ocm93KVwiXG4gICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgIC8+XG4gICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuICB9XG5cbiAgPG5nLWNvbnRhaW5lciBbbWF0Q29sdW1uRGVmXT1cIl9leHBhbmRhYmxlQ29sdW1uXCI+XG4gICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj48L3RoPlxuICAgIDx0ZFxuICAgICAgI3RkXG4gICAgICBtYXQtY2VsbFxuICAgICAgKm1hdENlbGxEZWY9XCJsZXQgcm93OyBsZXQgaW5kZXggPSBpbmRleFwiXG4gICAgICBbYXR0ci5kYXRhLWtleV09XCJfZ2V0Um93S2V5KGluZGV4LCByb3cpXCJcbiAgICAgIFthdHRyLmRhdGEtcm93LWluZGV4XT1cImluZGV4XCJcbiAgICAgIChjbGljayk9XCJfb25Sb3dDbGljayhyb3cpXCJcbiAgICAgIFtjbGFzcy53YXR0LXRhYmxlLWNlbGwtLWV4cGFuZGVkXT1cImV4cGFuZGVkKCkuaW5jbHVkZXMocm93KVwiXG4gICAgPlxuICAgICAgPHdhdHQtaWNvbiBuYW1lPVwicmlnaHRcIiBzaXplPVwieHNcIiAvPlxuICAgIDwvdGQ+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIEBmb3IgKGNvbHVtbiBvZiBjb2x1bW5zKCkgfCBrZXl2YWx1ZTsgdHJhY2sgY29sdW1uLmtleSkge1xuICAgIDxuZy1jb250YWluZXIgW21hdENvbHVtbkRlZl09XCJjb2x1bW4ua2V5XCIgW3N0aWNreUVuZF09XCJjb2x1bW4udmFsdWUuc3RpY2t5RW5kPy4oKVwiPlxuICAgICAgPHRoXG4gICAgICAgIG1hdC1oZWFkZXItY2VsbFxuICAgICAgICAqbWF0SGVhZGVyQ2VsbERlZlxuICAgICAgICBbY2xhc3Mud2F0dC10YWJsZS1jZWxsLS1leHBhbmRhYmxlXT1cImNvbHVtbi52YWx1ZS5leHBhbmRhYmxlXCJcbiAgICAgICAgY2xhc3M9XCJ3YXR0LXRhYmxlLWFsaWduLXt7IGNvbHVtbi52YWx1ZS5hbGlnbiA/PyAnbGVmdCcgfX0ge3tcbiAgICAgICAgICBjb2x1bW4udmFsdWUuaGVhZGVyQ2VsbENsYXNzXG4gICAgICAgIH19XCJcbiAgICAgID5cbiAgICAgICAgQGlmIChfZ2V0Q29sdW1uSGVscGVyQWN0aW9uKGNvbHVtbik7IGFzIGFjdGlvbikge1xuICAgICAgICAgIDx3YXR0LWljb24gbmFtZT1cImhlbHBcIiAoY2xpY2spPVwiYWN0aW9uKClcIiAvPlxuICAgICAgICB9XG5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwid2F0dC10YWJsZS1oZWFkZXItY2VsbFwiXG4gICAgICAgICAgbWF0LXNvcnQtaGVhZGVyXG4gICAgICAgICAgW2Fycm93UG9zaXRpb25dPVwiY29sdW1uLnZhbHVlLmFsaWduID09PSAncmlnaHQnID8gJ2JlZm9yZScgOiAnYWZ0ZXInXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIWNvbHVtbi52YWx1ZS5hY2Nlc3NvciB8fCBjb2x1bW4udmFsdWUuc29ydCA9PT0gZmFsc2VcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgX2dldENvbHVtbkhlYWRlcihjb2x1bW4pIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICBAaWYgKF9nZXRDb2x1bW5IZWFkZXJUb29sdGlwKGNvbHVtbik7IGFzIHRvb2x0aXApIHtcbiAgICAgICAgICA8d2F0dC1pY29uIFt0aXRsZV09XCJ0b29sdGlwXCIgbmFtZT1cImluZm9cIiAvPlxuICAgICAgICB9XG4gICAgICA8L3RoPlxuXG4gICAgICA8dGRcbiAgICAgICAgI3RkXG4gICAgICAgIG1hdC1jZWxsXG4gICAgICAgICptYXRDZWxsRGVmPVwibGV0IHJvdzsgbGV0IGluZGV4ID0gaW5kZXhcIlxuICAgICAgICBbYXR0ci5kYXRhLWtleV09XCJfZ2V0Um93S2V5KGluZGV4LCByb3cpXCJcbiAgICAgICAgW2F0dHIuZGF0YS1yb3ctaW5kZXhdPVwiaW5kZXhcIlxuICAgICAgICBbY2xhc3Mud2F0dC10YWJsZS1jZWxsLS1leHBhbmRlZF09XCJleHBhbmRlZCgpLmluY2x1ZGVzKHJvdylcIlxuICAgICAgICBbY2xhc3Mud2F0dC10YWJsZS1jZWxsLS1leHBhbmRhYmxlXT1cImNvbHVtbi52YWx1ZS5leHBhbmRhYmxlXCJcbiAgICAgICAgY2xhc3M9XCJ3YXR0LXRhYmxlLWFsaWduLXt7IGNvbHVtbi52YWx1ZS5hbGlnbiA/PyAnbGVmdCcgfX0ge3sgY29sdW1uLnZhbHVlLmRhdGFDZWxsQ2xhc3MgfX1cIlxuICAgICAgICAoY2xpY2spPVwiIWNvbHVtbi52YWx1ZS5leHBhbmRhYmxlICYmIF9vblJvd0NsaWNrKHJvdylcIlxuICAgICAgPlxuICAgICAgICBAaWYgKF9pc0V4cGFuZGFibGUoKSkge1xuICAgICAgICAgIEBkZWZlciAod2hlbiAhY29sdW1uLnZhbHVlLmV4cGFuZGFibGUgfHwgZXhwYW5kZWQoKS5pbmNsdWRlcyhyb3cpKSB7XG4gICAgICAgICAgICBAaWYgKF9nZXRDb2x1bW5UZW1wbGF0ZShjb2x1bW4udmFsdWUpOyBhcyB0ZW1wbGF0ZSkge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2F0dC10YWJsZS1jZWxsLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiByb3cgfVwiIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgIHt7IF9nZXRDb2x1bW5DZWxsKGNvbHVtbiwgcm93KSB9fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgQGlmIChfZ2V0Q29sdW1uVGVtcGxhdGUoY29sdW1uLnZhbHVlKTsgYXMgdGVtcGxhdGUpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3YXR0LXRhYmxlLWNlbGwtd3JhcHBlclwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiByb3cgfVwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIHt7IF9nZXRDb2x1bW5DZWxsKGNvbHVtbiwgcm93KSB9fVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgPC90ZD5cblxuICAgICAgQGlmIChfaGFzRm9vdGVyKCkpIHtcbiAgICAgICAgPHRkXG4gICAgICAgICAgbWF0LWZvb3Rlci1jZWxsXG4gICAgICAgICAgKm1hdEZvb3RlckNlbGxEZWZcbiAgICAgICAgICBjbGFzcz1cInt7IGNvbHVtbi52YWx1ZS5mb290ZXI/LmNsYXNzIH19IHdhdHQtdGFibGUtYWxpZ24te3tcbiAgICAgICAgICAgIGNvbHVtbi52YWx1ZS5hbGlnbiA/PyAnbGVmdCdcbiAgICAgICAgICB9fSBcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgY29sdW1uLnZhbHVlLmZvb3Rlcj8udmFsdWU/LigpIH19XG4gICAgICAgIDwvdGQ+XG4gICAgICB9XG4gICAgPC9uZy1jb250YWluZXI+XG4gIH1cblxuICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInNwYWNlclwiPlxuICAgIDx0ZCBjbGFzcz1cIndhdHQtdGFibGUtZm9vdGVyLXNwYWNlclwiIG1hdC1mb290ZXItY2VsbCAqbWF0Rm9vdGVyQ2VsbERlZj48L3RkPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICBAaWYgKCFoaWRlQ29sdW1uSGVhZGVycygpKSB7XG4gICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJfZ2V0Q29sdW1ucygpXCI+PC90cj5cbiAgfVxuICA8dHJcbiAgICBtYXQtcm93XG4gICAgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IF9nZXRDb2x1bW5zKClcIlxuICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwicm93ID09PSBhY3RpdmVSb3coKVwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ3dhdHQtdGFibGUtaGlnaGxpZ2h0LXJvdyc6ICFkaXNhYmxlZCgpICYmICFzdXBwcmVzc1Jvd0hvdmVySGlnaGxpZ2h0KCksXG4gICAgICAnd2F0dC10YWJsZS1jbGlja2FibGUtcm93JzogIWRpc2FibGVkKCkgJiYgX3Jvd0NsaWNrJC5vYnNlcnZlZCxcbiAgICAgICd3YXR0LXRhYmxlLWFjdGl2ZS1yb3cnOiBfaXNBY3RpdmVSb3cocm93KSxcbiAgICAgICd3YXR0LXRhYmxlLW5vLWVuZC1kaXZpZGVyJzogaGlkZUNvbHVtbkhlYWRlcnMoKSxcbiAgICB9XCJcbiAgPjwvdHI+XG5cbiAgQGlmICh0b29sYmFyKCkpIHtcbiAgICA8dHIgbWF0LWZvb3Rlci1yb3cgKm1hdEZvb3RlclJvd0RlZj1cIlsnc3BhY2VyJ11cIj48L3RyPlxuICB9XG5cbiAgQGlmIChfaGFzRm9vdGVyKCkpIHtcbiAgICA8dHJcbiAgICAgIG1hdC1mb290ZXItcm93XG4gICAgICBbY2xhc3Mud2F0dC10YWJsZS1oaWRlLWZvb3Rlcl09XCJsb2FkaW5nKCkgfHwgZGF0YVNvdXJjZSgpLmZpbHRlcmVkRGF0YS5sZW5ndGggPT09IDBcIlxuICAgICAgKm1hdEZvb3RlclJvd0RlZj1cIl9nZXRDb2x1bW5zKCk7IHN0aWNreTogc3RpY2t5Rm9vdGVyKClcIlxuICAgID48L3RyPlxuICB9XG5cbiAgPG5nLWNvbnRhaW5lciAqbWF0Tm9EYXRhUm93PlxuICAgIEBpZiAobG9hZGluZygpKSB7XG4gICAgICBAZm9yIChpIG9mIFsxLCAyLCAzXTsgdHJhY2sgaSkge1xuICAgICAgICA8dHIgY2xhc3M9XCJtYXQtbWRjLXJvd1wiPlxuICAgICAgICAgIEBmb3IgKF8gb2YgX2dldENvbHVtbnMoKTsgdHJhY2sgXzsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cIm1hdC1tZGMtY2VsbFwiIFtjbGFzcy53YXR0LXRhYmxlLWxvYWRpbmctY2VsbF09XCJpID4gMCB8fCAhc2VsZWN0YWJsZSgpXCI+PC90ZD5cbiAgICAgICAgICB9XG4gICAgICAgIDwvdHI+XG4gICAgICB9XG4gICAgfVxuICA8L25nLWNvbnRhaW5lcj5cbjwvdGFibGU+XG5cbkBpZiAodG9vbGJhcigpOyBhcyB0b29sYmFyKSB7XG4gIDxkaXYgY2xhc3M9XCJ3YXR0LXRhYmxlLXRvb2xiYXJcIiByb2xlPVwidG9vbGJhclwiPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgIHRvb2xiYXIudGVtcGxhdGVSZWY7XG4gICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBmaWx0ZXJTZWxlY3Rpb25CeShkYXRhU291cmNlKCkuZmlsdGVyZWREYXRhKSB9XG4gICAgICBcIlxuICAgIC8+XG4gIDwvZGl2PlxufVxuIl19
|
|
320
|
+
'[style.--watt-table-grid-template-columns]': 'sizing().join(" ")',
|
|
321
|
+
}, template: "<!--\n@license\nCopyright 2020 Energinet DataHub A/S\n\nLicensed under the Apache License, Version 2.0 (the \"License2\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n-->\n<table\n mat-table\n matSort\n role=\"treegrid\"\n [ngClass]=\"{ 'watt-table-has-selection': getSelectionState() !== false }\"\n [matSortActive]=\"sortBy()\"\n [matSortDirection]=\"sortDirection()\"\n [matSortDisableClear]=\"!sortClear()\"\n [dataSource]=\"dataSource()\"\n [attr.aria-label]=\"description()\"\n (matSortChange)=\"sortChange.emit($event)\"\n>\n @if (selectable()) {\n <ng-container [matColumnDef]=\"checkboxColumn\" [sticky]=\"true\">\n <th mat-header-cell *matHeaderCellDef class=\"watt-table-checkbox-cell\">\n <watt-checkbox\n [ngModel]=\"getSelectionState()\"\n (ngModelChange)=\"$event ? selection.set(dataSource().filteredData) : clearSelection()\"\n />\n </th>\n <td mat-cell *matCellDef=\"let row\" class=\"watt-table-checkbox-cell\">\n <watt-checkbox\n [ngModel]=\"selection().includes(row)\"\n (ngModelChange)=\"toggleSelection(row)\"\n (click)=\"$event.stopPropagation()\"\n />\n </td>\n </ng-container>\n }\n\n <ng-container [matColumnDef]=\"expandableColumn\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td\n #td\n mat-cell\n *matCellDef=\"let row; let index = index\"\n [attr.data-key]=\"getRowKey(index, row)\"\n [attr.data-row-index]=\"index\"\n (click)=\"onRowClick(row)\"\n [class.watt-table-cell--expanded]=\"expanded().includes(row)\"\n >\n <watt-icon name=\"right\" size=\"xs\" />\n </td>\n </ng-container>\n\n @for (column of columns() | keyvalue; track column.key) {\n <ng-container [matColumnDef]=\"column.key\" [stickyEnd]=\"column.value.stickyEnd?.()\">\n <th\n mat-header-cell\n *matHeaderCellDef\n [class.watt-table-cell--expandable]=\"column.value.expandable\"\n class=\"watt-table-align-{{ column.value.align ?? 'left' }} {{\n column.value.headerCellClass\n }}\"\n >\n @if (column.value.helperAction; as action) {\n <watt-icon name=\"help\" (click)=\"action()\" />\n }\n\n <div\n class=\"watt-table-header-cell\"\n mat-sort-header\n [arrowPosition]=\"column.value.align === 'right' ? 'before' : 'after'\"\n [disabled]=\"!column.value.accessor || column.value.sort === false\"\n >\n {{ getColumnHeader(column) }}\n </div>\n @if (column.value.tooltip; as tooltip) {\n <watt-icon [title]=\"tooltip\" name=\"info\" />\n }\n </th>\n\n <td\n #td\n mat-cell\n *matCellDef=\"let row; let index = index\"\n [attr.data-key]=\"getRowKey(index, row)\"\n [attr.data-row-index]=\"index\"\n [class.watt-table-cell--expanded]=\"expanded().includes(row)\"\n [class.watt-table-cell--expandable]=\"column.value.expandable\"\n class=\"watt-table-align-{{ column.value.align ?? 'left' }} {{ column.value.dataCellClass }}\"\n (click)=\"!column.value.expandable && onRowClick(row)\"\n >\n @if (isExpandable()) {\n @defer (when !column.value.expandable || expanded().includes(row)) {\n @if (getColumnTemplate(column.value); as template) {\n <div class=\"watt-table-cell-wrapper\">\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: row }\" />\n </div>\n } @else {\n {{ getColumnCell(column.value, row) }}\n }\n }\n } @else {\n @if (getColumnTemplate(column.value); as template) {\n <div class=\"watt-table-cell-wrapper\">\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: row }\" />\n </div>\n } @else {\n {{ getColumnCell(column.value, row) }}\n }\n }\n </td>\n\n @if (hasFooter()) {\n <td\n mat-footer-cell\n *matFooterCellDef\n class=\"{{ column.value.footer?.class }} watt-table-align-{{\n column.value.align ?? 'left'\n }} \"\n >\n {{ column.value.footer?.value?.() }}\n </td>\n }\n </ng-container>\n }\n\n <ng-container matColumnDef=\"spacer\">\n <td class=\"watt-table-footer-spacer\" mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n @if (!hideColumnHeaders()) {\n <tr mat-header-row *matHeaderRowDef=\"renderedColumns()\"></tr>\n }\n <tr\n mat-row\n *matRowDef=\"let row; columns: renderedColumns()\"\n [attr.aria-selected]=\"row === activeRow()\"\n [ngClass]=\"{\n 'watt-table-highlight-row': !disabled() && !suppressRowHoverHighlight(),\n 'watt-table-clickable-row': !disabled() && rowClick$.observed,\n 'watt-table-active-row': isActiveRow(row),\n 'watt-table-no-end-divider': hideColumnHeaders(),\n }\"\n ></tr>\n\n @if (toolbar()) {\n <tr mat-footer-row *matFooterRowDef=\"['spacer']\"></tr>\n }\n\n @if (hasFooter()) {\n <tr\n mat-footer-row\n [class.watt-table-hide-footer]=\"loading() || dataSource().filteredData.length === 0\"\n *matFooterRowDef=\"renderedColumns(); sticky: stickyFooter()\"\n ></tr>\n }\n\n <ng-container *matNoDataRow>\n @if (loading()) {\n @for (i of [1, 2, 3]; track i) {\n <tr class=\"mat-mdc-row\">\n @for (_ of renderedColumns(); track _; let i = $index) {\n <td class=\"mat-mdc-cell\" [class.watt-table-loading-cell]=\"i > 0 || !selectable()\"></td>\n }\n </tr>\n }\n }\n </ng-container>\n</table>\n\n@if (toolbar(); as toolbar) {\n <div class=\"watt-table-toolbar\" role=\"toolbar\">\n <ng-container\n *ngTemplateOutlet=\"\n toolbar.templateRef;\n context: { $implicit: filterSelectionBy(dataSource().filteredData) }\n \"\n />\n </div>\n}\n", styles: ["watt-table{--mat-table-row-item-label-text-font: $primary-font-family;--mat-table-row-item-outline-color: var(--watt-color-neutral-grey-300);--mat-table-header-headline-font: $primary-font-family}watt-table,watt-table .mat-mdc-table{display:grid;position:relative;overflow:auto;min-height:44px}watt-table .mat-mdc-table{grid-template-columns:var(--watt-table-grid-template-columns);grid-auto-rows:max-content;max-height:100%;z-index:1}watt-table .mat-mdc-table thead,watt-table .mat-mdc-table tbody,watt-table .mat-mdc-table tfoot,watt-table .mat-mdc-table tr.mat-mdc-row,watt-table .mat-mdc-table tr.mat-mdc-header-row,watt-table .mat-mdc-table tr.mat-mdc-footer-row{display:contents}watt-table .mat-mdc-table tr.watt-table-hide-footer{display:none}watt-table .mat-mdc-table tr.mat-mdc-header-row{flex:0 0 auto}watt-table .mat-mdc-table th.mat-mdc-header-cell{color:var(--watt-typography-label-color);font-size:.875rem;line-height:1.25rem;font-weight:600;text-transform:uppercase;box-sizing:border-box;display:flex;position:sticky;top:0;padding:0 var(--watt-space-s);height:auto;background:var(--watt-color-primary-ultralight);box-shadow:0 -1px #0000001f inset;border:0;z-index:2!important;white-space:nowrap;-webkit-user-select:none;user-select:none}watt-table .mat-mdc-table td.mat-mdc-footer-cell,watt-table .mat-mdc-table td.mat-mdc-cell{display:flex;align-items:center;min-height:56px;padding:var(--watt-space-s) var(--watt-space-m)}watt-table .mat-mdc-table td.mat-mdc-cell.watt-table-cell--expandable{padding:0}watt-table .mat-mdc-table td.mat-mdc-footer-cell:not(.watt-table-footer-spacer),watt-table .mat-mdc-table tr.mdc-data-table__row:last-child .mat-mdc-cell{border-bottom:1px solid var(--watt-color-neutral-grey-300)}watt-table .mat-mdc-table td.mat-mdc-footer-cell:not(.watt-table-footer-spacer){font-size:.875rem;line-height:1.25rem;font-weight:600;text-transform:none;letter-spacing:0;border-top:2px solid var(--watt-color-neutral-grey-300);background-color:var(--watt-color-neutral-grey-100)}watt-table .mat-mdc-table .watt-table-no-end-divider:last-child .mat-mdc-cell{border-bottom:0px solid var(--watt-color-neutral-grey-300)!important}watt-table .mat-mdc-table .watt-table-clickable-row>td:not(.watt-table-cell--expandable),watt-table .mat-mdc-table tr:has(>.watt-table-cell--expandable)>td:not(.watt-table-cell--expandable){cursor:pointer;-webkit-user-select:text;user-select:text}watt-table .mat-mdc-table .watt-table-highlight-row:hover:not(.watt-table-active-row,:has(>.watt-table-cell--expandable:hover))>td{background:var(--watt-color-neutral-grey-100)}watt-table .mat-mdc-table .watt-table-active-row>td{background:var(--watt-color-secondary-ultralight)}watt-table .mat-mdc-table .mat-column-__expandableColumn__>watt-icon{transition:transform .2s}watt-table .mat-mdc-table .mat-column-__expandableColumn__.watt-table-cell--expanded>watt-icon{transform:rotate(90deg)}watt-table .mat-mdc-table .mat-sort-header-arrow{margin:0}watt-table .mat-mdc-table .watt-table-align-right .mat-sort-header-arrow{margin-right:var(--watt-space-s)}watt-table .mat-mdc-table .watt-table-align-center .mat-sort-header-arrow,watt-table .mat-mdc-table .watt-table-align-left .mat-sort-header-arrow{margin-left:var(--watt-space-s)}watt-table .mat-mdc-table .watt-table-header-cell{padding:.75rem var(--watt-space-s)}watt-table .mat-mdc-table .watt-table-checkbox-cell{justify-content:center}watt-table .mat-mdc-table th.watt-table-checkbox-cell{display:flex;align-items:center}watt-table .mat-mdc-table .watt-table-align-center,watt-table .mat-mdc-table .watt-table-align-center .mat-sort-header-container{justify-content:center}watt-table .mat-mdc-table .watt-table-align-right,watt-table .mat-mdc-table .watt-table-align-right .mat-sort-header-container{justify-content:right}.watt-table-variant-zebra>table>tbody>tr:nth-child(2n)>td{background-color:var(--watt-color-neutral-grey-50)}watt-table .mat-mdc-table th.watt-table-cell--expandable{display:none}watt-table .mat-mdc-table tr.mat-mdc-row td.mat-mdc-cell.watt-table-cell--expandable{position:relative;min-height:0;max-height:0;border-bottom-width:0;overflow:hidden;pointer-events:none;grid-column:1/-1;background:transparent;flex:1 1 auto;opacity:0;will-change:opacity;transition:opacity .2s cubic-bezier(.4,0,.2,1),overflow 0s .3s allow-discrete}watt-table .mat-mdc-table tr.mat-mdc-row td.mat-mdc-cell.watt-table-cell--expandable>.watt-table-cell-wrapper{position:absolute;top:0;width:100%}watt-table .mat-mdc-table tr.mat-mdc-row td.watt-table-cell--expandable.watt-table-cell--expanded{height:auto;max-height:initial;opacity:1;border-bottom-width:1px;pointer-events:all;overflow:visible}watt-table .mat-mdc-table tr.mat-mdc-row td.watt-table-cell--expandable.watt-table-cell--expanded>.watt-table-cell-wrapper{position:relative}.watt-table-footer-spacer{display:none;height:76px;border:0}.watt-table-has-selection .watt-table-footer-spacer{display:block}.watt-table-has-selection+.watt-table-toolbar{opacity:1;visibility:visible;transition:opacity .3s cubic-bezier(0,0,.2,1),visibility .5s}.watt-table-toolbar{position:absolute;bottom:var(--watt-space-m);left:50%;transform:translate(-50%);display:flex;align-items:center;padding:0 var(--watt-space-m);min-height:44px;border-radius:22px;color:var(--watt-color-primary-contrast);background-color:var(--watt-color-primary);z-index:1;opacity:0;visibility:hidden;transition:none}.watt-table-toolbar .watt-button--disabled{opacity:.4;--watt-button-primary-disabled-color: #fff}.watt-table-loading-cell:before{content:\"\";flex:1;display:block;max-width:200px;height:var(--watt-space-m);border-radius:var(--watt-space-m);opacity:.75;animation:shine 2s infinite linear;background-color:var(--watt-color-neutral-grey-200);background-size:300px;background-position:-100px;background-image:linear-gradient(90deg,var(--watt-color-neutral-grey-300) 0px,var(--watt-color-neutral-grey-200) 40px,var(--watt-color-neutral-grey-300) 80px)}@keyframes shine{40%,to{background-position:200px}}\n"] }]
|
|
322
|
+
}], ctorParameters: () => [] });
|
|
323
|
+
export const WATT_TABLE = [WattTableComponent, WattTableCellDirective, WattTableToolbarDirective];
|
|
324
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0dC10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3dhdHQvcGFja2FnZS90YWJsZS93YXR0LXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2xpYnMvd2F0dC9wYWNrYWdlL3RhYmxlL3dhdHQtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FBQ2pCOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILFlBQVk7QUFDWixPQUFPLEVBQVksWUFBWSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BGLE9BQU8sRUFDTCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFlBQVksRUFDWixlQUFlLEVBQ2YsU0FBUyxFQUNULE1BQU0sRUFFTixNQUFNLEVBQ04sS0FBSyxFQUNMLEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFDVCxZQUFZLEVBQ1osaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBdUIsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUF3QixtQkFBbUIsRUFBRSxNQUFN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QyxHQUFNLEVBQUUsRUFBRSxDQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO3VHQWpRcEYsa0JBQWtCOzJGQUFsQixrQkFBa0IsMGtHQXFJSyxDQUFBLHNCQUF5QixDQUFBLHVFQUMxQixDQUFBLHlCQUE0QixDQUFBLHNHQUNsQyxPQUFPLDZKQzFXcEMsdXlNQTRMQSxzNkxEcUJJLE9BQU8sb0ZBQ1AsZ0JBQWdCLG1KQUVoQixXQUFXLDhWQUNYLGFBQWEsaWRBQ2IsY0FBYywrZ0RBQ2QsaUJBQWlCLGtHQUNqQixxQkFBcUIsMkVBTHJCLFlBQVksaUdBRFosZ0JBQWdCOzsyRkFpQlAsa0JBQWtCO2tCQXBCOUIsU0FBUzs4QkFDQzt3QkFDUCxPQUFPO3dCQUNQLGdCQUFnQjt3QkFDaEIsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLHFCQUFxQjtxQkFDdEIsaUJBQ2MsaUJBQWlCLENBQUMsSUFBSSxZQUMzQixZQUFZLFFBR2hCO3dCQUNKLGtDQUFrQyxFQUFFLHVCQUF1Qjt3QkFDM0QsNENBQTRDLEVBQUUsb0JBQW9CO3FCQUNuRTs7QUFzUUgsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsa0JBQWtCLEVBQUUsc0JBQXNCLEVBQUUseUJBQXlCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiBMaWNlbnNlXG4vKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAyMCBFbmVyZ2luZXQgRGF0YUh1YiBBL1NcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlMlwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vLyNlbmRyZWdpb25cbmltcG9ydCB7IEtleVZhbHVlLCBLZXlWYWx1ZVBpcGUsIE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBjb21wdXRlZCxcbiAgY29udGVudENoaWxkLFxuICBjb250ZW50Q2hpbGRyZW4sXG4gIERpcmVjdGl2ZSxcbiAgZWZmZWN0LFxuICBFbGVtZW50UmVmLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBtb2RlbCxcbiAgb3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgdmlld0NoaWxkLFxuICB2aWV3Q2hpbGRyZW4sXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgU2lnbmFsLCBUcmFja0J5RnVuY3Rpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG91dHB1dEZyb21PYnNlcnZhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRTb3J0LCBNYXRTb3J0TW9kdWxlLCBTb3J0LCBTb3J0RGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XG5pbXBvcnQgeyBNYXRUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgV2F0dENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L2NoZWNrYm94JztcbmltcG9ydCB7IHdhdHRGb3JtYXREYXRlIH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L2NvcmUvZGF0ZSc7XG5pbXBvcnQgeyBXYXR0SWNvbkNvbXBvbmVudCB9IGZyb20gJ0BlbmVyZ2luZXQvd2F0dC9pY29uJztcbmltcG9ydCB7IElXYXR0VGFibGVEYXRhU291cmNlLCBXYXR0VGFibGVEYXRhU291cmNlIH0gZnJvbSAnLi93YXR0LXRhYmxlLWRhdGEtc291cmNlJztcbmltcG9ydCB7IGFuaW1hdGVFeHBhbmRhYmxlQ2VsbHMgfSBmcm9tICcuL3dhdHQtdGFibGUtZXhwYW5kLWFuaW1hdGlvbic7XG5cbi8qKiBDbGFzcyBuYW1lIGZvciBleHBhbmRhYmxlIGNlbGxzLiAqL1xuZXhwb3J0IGNvbnN0IEVYUEFOREFCTEVfQ0xBU1MgPSAnd2F0dC10YWJsZS1jZWxsLS1leHBhbmRhYmxlJztcblxuZXhwb3J0IGludGVyZmFjZSBXYXR0VGFibGVDb2x1bW48VD4ge1xuICAvKipcbiAgICogVGhlIGRhdGEgdGhhdCB0aGlzIGNvbHVtbiBzaG91bGQgYmUgYm91bmQgdG8sIGVpdGhlciBhcyBhIHByb3BlcnR5IG9mIGBUYFxuICAgKiBvciBkZXJpdmVkIGZyb20gZWFjaCByb3cgb2YgYFRgIHVzaW5nIGFuIGFjY2Vzc29yIGZ1bmN0aW9uLiAgVXNlIGBudWxsYFxuICAgKiBmb3IgY29sdW1ucyB0aGF0IHNob3VsZCBub3QgYmUgYXNzb2NpYXRlZCB3aXRoIGRhdGEsIGJ1dCBub3RlIHRoYXQgdGhpc1xuICAgKiB3aWxsIGRpc2FibGUgc29ydGluZyBhbmQgYXV0b21hdGljIGNlbGwgcG9wdWxhdGlvbi5cbiAgICovXG4gIGFjY2Vzc29yOiBrZXlvZiBUIHwgKChyb3c6IFQpID0+IHVua25vd24pIHwgbnVsbDtcblxuICAvKipcbiAgICogUmVzb2x2ZSB0aGUgaGVhZGVyIHRleHQgdG8gYSBzdGF0aWMgZGlzcGxheSB2YWx1ZS4gVGhpcyB3aWxsIHByZXZlbnRcbiAgICogdGhlIGByZXNvbHZlSGVhZGVyYCBpbnB1dCBmdW5jdGlvbiBmcm9tIGJlaW5nIGNhbGxlZCBmb3IgdGhpcyBjb2x1bW4uXG4gICAqL1xuICBoZWFkZXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIGZvciBkZXRlcm1pbmluZyBjZWxsIGNvbnRlbnQgd2hlbiBub3QgdXNpbmcgdGVtcGxhdGUuIEJ5IGRlZmF1bHQsXG4gICAqIGNlbGwgY29udGVudCBpcyBmb3VuZCB1c2luZyB0aGUgYGFjY2Vzc29yYCAodW5sZXNzIGl0IGlzIGBudWxsYCkuXG4gICAqL1xuICBjZWxsPzogKHJvdzogVCkgPT4gc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgb3IgZGlzYWJsZSBzb3J0aW5nIGZvciB0aGlzIGNvbHVtbi4gRGVmYXVsdHMgdG8gYHRydWVgXG4gICAqIHVubGVzcyBgYWNjZXNzb3JgIGlzIGBudWxsYC5cbiAgICovXG4gIHNvcnQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGNvbHVtbiBzaXplIHVzaW5nIGdyaWQgc2l6aW5nIHZhbHVlcy4gRGVmYXVsdHMgdG8gYFwiYXV0b1wiYC5cbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogQWNjZXB0cyBhbGwgb2YgdGhlIENTUyBncmlkIHRyYWNrIHNpemUga2V5d29yZHMgKHN1Y2ggYXMgYG1pbi1jb250ZW50YCxcbiAgICogYG1heC1jb250ZW50YCwgYG1pbm1heCgpYCkgYXMgd2VsbCBhcyBmcmFjdGlvbmFsIChgZnJgKSwgcGVyY2VudGFnZSAoYCVgKVxuICAgKiBhbmQgbGVuZ3RoIChgcHhgLCBgZW1gLCBldGMpIHVuaXRzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtZ3JpZC8jdHJhY2stc2l6ZXNcbiAgICovXG4gIHNpemU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEhvcml6b250YWxseSBhbGlnbiB0aGUgY29udGVudHMgb2YgdGhlIGNvbHVtbi4gRGVmYXVsdHMgdG8gYFwibGVmdFwiYC5cbiAgICovXG4gIGFsaWduPzogJ2xlZnQnIHwgJ3JpZ2h0JyB8ICdjZW50ZXInO1xuXG4gIC8qKlxuICAgKiBIZWxwZXIgaWNvbiB3aWxsIGJlIHNob3duIGluIHRoZSBoZWFkZXIgY2VsbCwgd2l0aCBhbiBjbGljayBldmVudC5cbiAgICovXG4gIGhlbHBlckFjdGlvbj86ICgpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIENTUyBjbGFzcyB0byBhcHBseSB0byB0aGUgaGVhZGVyIGNlbGwgZWxlbWVudC5cbiAgICovXG4gIGhlYWRlckNlbGxDbGFzcz86IHN0cmluZztcblxuICAvKipcbiAgICogQ1NTIGNsYXNzIHRvIGFwcGx5IHRvIHRoZSBkYXRhIGNlbGwgZWxlbWVudC5cbiAgICovXG4gIGRhdGFDZWxsQ2xhc3M/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEZvb3RlciBjb25maWd1cmF0aW9uIGZvciB0aGUgY29sdW1uLlxuICAgKi9cbiAgZm9vdGVyPzogV2F0dFRhYmxlQ29sdW1uRm9vdGVyO1xuXG4gIC8qKlxuICAgKiBXaGVuIHNldCB0byBgdHJ1ZWAsIHRoZSBjb2x1bW4gcmVtYWlucyB2aXNpYmxlIHdoZW4gaG9yaXpvbnRhbGx5IHNjcm9sbGluZy5cbiAgICovXG4gIHN0aWNreUVuZD86IFNpZ25hbDxib29sZWFuPjtcblxuICAvKipcbiAgICogV2hlbiBgdHJ1ZWAsIHRoZSBjZWxsIGlzIHJlcGxhY2VkIHdpdGggYW4gZXhwYW5kYWJsZSBhcnJvdyBhbmQgdGhlIGNvbnRlbnQgaXMgZGVmZXJyZWQuXG4gICAqIENsaWNraW5nIG9uIHRoZSBhcnJvdyByZXZlYWxzIHRoZSBjb250ZW50IGJlbG93IHRoZSBjdXJyZW50IHJvdy5cbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogSXQgaXMgcmVjb21tZW5kZWQgdG8gcHJvdmlkZSBhIGN1c3RvbSBgdHJhY2tCeWAgZnVuY3Rpb24gd2hlbiB1c2luZyBgZXhwYW5kYWJsZWAsXG4gICAqIG90aGVyd2lzZSBhbmltYXRpb25zIGNhbiBiZSBpbmFjY3VyYXRlIHdoZW4gZGF0YSBpcyBjaGFuZ2VkLlxuICAgKi9cbiAgZXhwYW5kYWJsZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRvb2x0aXAgdGV4dCB0byBzaG93IG9uIGhvdmVyIG9mIHRoZSBoZWFkZXIgY2VsbC5cbiAgICovXG4gIHRvb2x0aXA/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgdGhlIGZvb3RlciBjZWxsIG9mIGEgY29sdW1uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdhdHRUYWJsZUNvbHVtbkZvb3RlciB7XG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgdGhhdCB3aWxsIGJlIGRpc3BsYXllZCBpbiB0aGUgZm9vdGVyIGNlbGwuXG4gICAqL1xuICB2YWx1ZT86IFNpZ25hbDxzdHJpbmcgfCBudW1iZXI+O1xuXG4gIC8qKlxuICAgKiBDU1MgY2xhc3MgdG8gYXBwbHkgdG8gdGhlIGZvb3RlciBjZWxsLlxuICAgKi9cbiAgY2xhc3M/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVjb3JkIGZvciBkZWZpbmluZyBjb2x1bW5zIHdpdGgga2V5cyB1c2VkIGFzIGNvbHVtbiBpZGVudGlmaWVycy5cbiAqL1xuZXhwb3J0IHR5cGUgV2F0dFRhYmxlQ29sdW1uRGVmPFQ+ID0gUmVjb3JkPHN0cmluZywgV2F0dFRhYmxlQ29sdW1uPFQ+PjtcblxuLy8gVXNlZCBmb3Igc3Ryb25nbHkgdHlwaW5nIHRoZSBzdHJ1Y3R1cmFsIGRpcmVjdGl2ZVxuaW50ZXJmYWNlIFdhdHRUYWJsZUNlbGxDb250ZXh0PFQ+IHtcbiAgJGltcGxpY2l0OiBUO1xufVxuXG5pbnRlcmZhY2UgV2F0dFRhYmxlVG9vbGJhckNvbnRleHQ8VD4ge1xuICAkaW1wbGljaXQ6IFQ7XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t3YXR0VGFibGVDZWxsXScsXG59KVxuZXhwb3J0IGNsYXNzIFdhdHRUYWJsZUNlbGxEaXJlY3RpdmU8VD4ge1xuICB0ZW1wbGF0ZVJlZiA9IGluamVjdChUZW1wbGF0ZVJlZjxXYXR0VGFibGVDZWxsQ29udGV4dDxUPj4pO1xuXG4gIC8qKlxuICAgKiBUaGUgV2F0dFRhYmxlQ29sdW1uIHRoaXMgdGVtcGxhdGUgYXBwbGllcyB0by5cbiAgICovXG4gIHJlYWRvbmx5IGNvbHVtbiA9IGlucHV0LnJlcXVpcmVkPFdhdHRUYWJsZUNvbHVtbjxUPj4oeyBhbGlhczogJ3dhdHRUYWJsZUNlbGwnIH0pO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBoZWFkZXIgdGV4dCBmb3IgdGhlIGNvbHVtbi5cbiAgICovXG4gIHJlYWRvbmx5IGhlYWRlciA9IGlucHV0PHN0cmluZz4odW5kZWZpbmVkLCB7IGFsaWFzOiAnd2F0dFRhYmxlQ2VsbEhlYWRlcicgfSk7XG5cbiAgc3RhdGljIG5nVGVtcGxhdGVDb250ZXh0R3VhcmQ8VD4oXG4gICAgX2RpcmVjdGl2ZTogV2F0dFRhYmxlQ2VsbERpcmVjdGl2ZTxUPixcbiAgICBjb250ZXh0OiB1bmtub3duXG4gICk6IGNvbnRleHQgaXMgV2F0dFRhYmxlQ2VsbENvbnRleHQ8VD4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t3YXR0VGFibGVUb29sYmFyXScsXG59KVxuZXhwb3J0IGNsYXNzIFdhdHRUYWJsZVRvb2xiYXJEaXJlY3RpdmU8VD4ge1xuICB0ZW1wbGF0ZVJlZiA9IGluamVjdChUZW1wbGF0ZVJlZjxXYXR0VGFibGVUb29sYmFyQ29udGV4dDxUW10+Pik7XG4gIHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkPFQ+KFxuICAgIF9kaXJlY3RpdmU6IFdhdHRUYWJsZVRvb2xiYXJEaXJlY3RpdmU8VD4sXG4gICAgY29udGV4dDogdW5rbm93blxuICApOiBjb250ZXh0IGlzIFdhdHRUYWJsZVRvb2xiYXJDb250ZXh0PFRbXT4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cbi8qKlxuICogVXNhZ2U6XG4gKiBgaW1wb3J0IHsgV0FUVF9UQUJMRSB9IGZyb20gJ0BlbmVyZ2luZXQtZGF0YWh1Yi93YXR0L3RhYmxlJztgXG4gKi9cbkBDb21wb25lbnQoe1xuICBpbXBvcnRzOiBbXG4gICAgTmdDbGFzcyxcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIEtleVZhbHVlUGlwZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBNYXRTb3J0TW9kdWxlLFxuICAgIE1hdFRhYmxlTW9kdWxlLFxuICAgIFdhdHRJY29uQ29tcG9uZW50LFxuICAgIFdhdHRDaGVja2JveENvbXBvbmVudCxcbiAgXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgc2VsZWN0b3I6ICd3YXR0LXRhYmxlJyxcbiAgc3R5bGVVcmxzOiBbJy4vd2F0dC10YWJsZS5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZVVybDogJy4vd2F0dC10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLndhdHQtdGFibGUtdmFyaWFudC16ZWJyYV0nOiAndmFyaWFudCgpID09PSBcInplYnJhXCInLFxuICAgICdbc3R5bGUuLS13YXR0LXRhYmxlLWdyaWQtdGVtcGxhdGUtY29sdW1uc10nOiAnc2l6aW5nKCkuam9pbihcIiBcIiknLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBXYXR0VGFibGVDb21wb25lbnQ8VD4ge1xuICAvKipcbiAgICogVGhlIHRhYmxlJ3Mgc291cmNlIG9mIGRhdGEuIFByb3BlcnR5IHNob3VsZCBub3QgYmUgY2hhbmdlZCBhZnRlclxuICAgKiBpbml0aWFsaXphdGlvbiwgaW5zdGVhZCB1cGRhdGUgdGhlIGRhdGEgb24gdGhlIGluc3RhbmNlIGl0c2VsZi5cbiAgICovXG4gIHJlYWRvbmx5IGRhdGFTb3VyY2UgPSBpbnB1dC5yZXF1aXJlZDxJV2F0dFRhYmxlRGF0YVNvdXJjZTxUPj4oKTtcblxuICAvKipcbiAgICogQ29sdW1uIGRlZmluaXRpb24gcmVjb3JkIHdpdGgga2V5cyByZXByZXNlbnRpbmcgdGhlIGNvbHVtbiBpZGVudGlmaWVyc1xuICAgKiBhbmQgdmFsdWVzIGJlaW5nIHRoZSBjb2x1bW4gY29uZmlndXJhdGlvbi4gVGhlIG9yZGVyIG9mIHRoZSBjb2x1bW5zXG4gICAqIGlzIGRldGVybWluZWQgYnkgdGhlIHByb3BlcnR5IG9yZGVyLCBidXQgY2FuIGJlIG92ZXJydWxlZCBieSB0aGVcbiAgICogYGRpc3BsYXllZENvbHVtbnNgIGlucHV0LlxuICAgKi9cbiAgcmVhZG9ubHkgY29sdW1ucyA9IGlucHV0PFdhdHRUYWJsZUNvbHVtbkRlZjxUPj4oe30pO1xuXG4gIC8qKlxuICAgKiBVc2VkIGZvciBoaWRpbmcgb3IgcmVvcmRlcmluZyBjb2x1bW5zIGRlZmluZWQgaW4gdGhlIGBjb2x1bW5zYCBpbnB1dC5cbiAgICovXG4gIHJlYWRvbmx5IGRpc3BsYXllZENvbHVtbnMgPSBpbnB1dDxzdHJpbmdbXT4oKTtcblxuICAvKipcbiAgICogVXNlZCBmb3IgZGlzYWJsaW5nIHRoZSB0YWJsZS4gVGhpcyB3aWxsIGRpc2FibGUgYWxsIHVzZXIgaW50ZXJhY3Rpb25cbiAgICovXG4gIHJlYWRvbmx5IGRpc2FibGVkID0gaW5wdXQoZmFsc2UpO1xuXG4gIC8qKlxuICAgKiBQcm92aWRlIGEgZGVzY3JpcHRpb24gb2YgdGhlIHRhYmxlIGZvciB2aXN1YWxseSBpbXBhaXJlZCB1c2Vycy5cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uID0gaW5wdXQoJycpO1xuXG4gIC8qKlxuICAgKiBJZiBzZXQgdG8gYHRydWVgLCB0aGUgdGFibGUgd2lsbCBzaG93IGEgbG9hZGluZyBpbmRpY2F0b3JcbiAgICogd2hlbiB0aGVyZSBpcyBubyBkYXRhLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9hZGluZyA9IGlucHV0KGZhbHNlKTtcblxuICAvKipcbiAgICogSWYgdHJ1ZSB0aGUgZm9vdGVyIHdpbGwgYmUgc3RpY2t5XG4gICAqL1xuICByZWFkb25seSBzdGlja3lGb290ZXIgPSBpbnB1dChmYWxzZSk7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGNhbGxiYWNrIGZvciBkZXRlcm1pbmluZyBoZWFkZXIgdGV4dCBmb3IgY29sdW1ucyB0aGF0XG4gICAqIGRvIG5vdCBoYXZlIGEgc3RhdGljIGhlYWRlciB0ZXh0IHNldCBpbiB0aGUgY29sdW1uIGRlZmluaXRpb24uXG4gICAqIFVzZWZ1bCBmb3IgcHJvdmlkaW5nIHRyYW5zbGF0aW9ucyBvZiBjb2x1bW4gaGVhZGVycy5cbiAgICovXG4gIHJlYWRvbmx5IHJlc29sdmVIZWFkZXIgPSBpbnB1dDwoa2V5OiBzdHJpbmcpID0+IHN0cmluZz4oKTtcblxuICAvKipcbiAgICogSWRlbnRpZmllciBmb3IgY29sdW1uIHRoYXQgc2hvdWxkIGJlIHNvcnRlZCBpbml0aWFsbHkuXG4gICAqL1xuICByZWFkb25seSBzb3J0QnkgPSBpbnB1dCgnJyk7XG5cbiAgLyoqXG4gICAqIFRoZSBzb3J0IGRpcmVjdGlvbiBvZiB0aGUgaW5pdGlhbGx5IHNvcnRlZCBjb2x1bW4uXG4gICAqL1xuICByZWFkb25seSBzb3J0RGlyZWN0aW9uID0gaW5wdXQ8U29ydERpcmVjdGlvbj4oJycpO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGFsbG93IHRoZSB1c2VyIHRvIGNsZWFyIHRoZSBzb3J0LiBEZWZhdWx0cyB0byBgdHJ1ZWAuXG4gICAqL1xuICByZWFkb25seSBzb3J0Q2xlYXIgPSBpbnB1dCh0cnVlKTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgdGFibGUgc2hvdWxkIGluY2x1ZGUgYSBjaGVja2JveCBjb2x1bW4gZm9yIHJvdyBzZWxlY3Rpb24uXG4gICAqL1xuICByZWFkb25seSBzZWxlY3RhYmxlID0gaW5wdXQoZmFsc2UpO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBzZWxlY3RlZCByb3dzLiBPbmx5IGFwcGxpY2FibGUgd2hlbiBzZWxlY3RhYmxlIGlzIGB0cnVlYC5cbiAgICovXG4gIHJlYWRvbmx5IHNlbGVjdGlvbiA9IG1vZGVsPFRbXT4oW10pO1xuXG4gIC8qKlxuICAgKiBTZXQgdG8gdHJ1ZSB0byBkaXNhYmxlIHJvdyBob3ZlciBoaWdobGlnaHQuXG4gICAqL1xuICByZWFkb25seSBzdXBwcmVzc1Jvd0hvdmVySGlnaGxpZ2h0ID0gaW5wdXQoZmFsc2UpO1xuXG4gIC8qKlxuICAgKiBIaWdobGlnaHRzIHRoZSBjdXJyZW50bHkgYWN0aXZlIHJvdy5cbiAgICovXG4gIHJlYWRvbmx5IGFjdGl2ZVJvdyA9IGlucHV0PFQ+KCk7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBjb21wYXJhdG9yIGZ1bmN0aW9uIHRvIGRldGVybWluZSBpZiB0d28gcm93cyBhcmUgZXF1YWwuXG4gICAqXG4gICAqIEByZW1hcmtzXG4gICAqIFRoZSBkZWZhdWx0IGJlaGF2aW9yIGZvciBkZXRlcm1pbmluZyB0aGUgYWN0aXZlIHJvdyBpcyB0byBjb21wYXJlXG4gICAqIHRoZSB0d28gcm93IG9iamVjdHMgdXNpbmcgc3RyaWN0IGVxdWFsaXR5IGNoZWNrLiBUaGlzIGlzIHN1ZmZpY2llbnRcbiAgICogYXMgbG9uZyBhcyB0aGUgaW5zdGFuY2VzIHJlbWFpbiB0aGUgc2FtZSwgd2hpY2ggbWF5IG5vdCBiZSB0aGUgY2FzZVxuICAgKiBpZiByb3cgZGF0YSBpcyByZWNyZWF0ZWQgb3IgcmVidWlsdCBmcm9tIHNlcmlhbGl6YXRpb24uXG4gICAqL1xuICByZWFkb25seSBhY3RpdmVSb3dDb21wYXJhdG9yID0gaW5wdXQ8KGN1cnJlbnRSb3c6IFQsIGFjdGl2ZVJvdzogVCkgPT4gYm9vbGVhbj4oKTtcblxuICAvKipcbiAgICogSWYgc2V0IHRvIGB0cnVlYCwgdGhlIGNvbHVtbiBoZWFkZXJzIHdpbGwgbm90IGJlIHNob3duLiBEZWZhdWx0IGlzIGBmYWxzZWAuXG4gICAqL1xuICByZWFkb25seSBoaWRlQ29sdW1uSGVhZGVycyA9IGlucHV0KGZhbHNlKTtcblxuICAvKipcbiAgICogQ2hvb3NlIGZyb20gYSBwcmVkZWZpbmVkIHNldCBvZiBkaXNwbGF5IHZhcmlhbnRzLlxuICAgKi9cbiAgcmVhZG9ubHkgdmFyaWFudCA9IGlucHV0PCd6ZWJyYSc+KCk7XG5cbiAgLyoqXG4gICAqIEFycmF5IG9mIHJvd3MgdGhhdCBhcmUgY3VycmVudGx5IGV4cGFuZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgZXhwYW5kZWQgPSBtb2RlbDxUW10+KFtdKTtcblxuICAvKipcbiAgICogT3B0aW9uYWwgZnVuY3Rpb24gZm9yIHVuaXF1ZWx5IGlkZW50aWZ5aW5nIHJvd3MuXG4gICAqL1xuICByZWFkb25seSB0cmFja0J5ID0gaW5wdXQ8VHJhY2tCeUZ1bmN0aW9uPFQ+IHwga2V5b2YgVD4oKTtcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKiBUaGUgYG9ic2VydmVkYCBib29sZWFuIGZyb20gdGhlIGBTdWJqZWN0YCBpcyB1c2VkIHRvIGRldGVybWluZSBpZiBhIHJvdyBpc1xuICAgKiBjbGlja2FibGUgb3Igbm90LiBUaGlzIGlzIGF2YWlsYWJsZSBvbiBgRXZlbnRFbWl0dGVyYCwgYnV0IG5vdCBvbiBgb3V0cHV0YCxcbiAgICogd2hpY2ggaXMgd2h5IHRoaXMgd29ya2Fyb3VuZCBpcyB1c2VkLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJvd0NsaWNrJCA9IG5ldyBTdWJqZWN0PFQ+KCk7XG5cbiAgLyoqXG4gICAqIEVtaXRzIHdoZW5ldmVyIGEgcm93IGlzIGNsaWNrZWQuXG4gICAqL1xuICByZWFkb25seSByb3dDbGljayA9IG91dHB1dEZyb21PYnNlcnZhYmxlKHRoaXMucm93Q2xpY2skKTtcblxuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSB1c2VyIGNoYW5nZXMgdGhlIGFjdGl2ZSBzb3J0IG9yIHNvcnQgZGlyZWN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgc29ydENoYW5nZSA9IG91dHB1dDxTb3J0PigpO1xuXG4gIC8vIFF1ZXJpZXNcbiAgcHJvdGVjdGVkIGNlbGxzID0gY29udGVudENoaWxkcmVuKFdhdHRUYWJsZUNlbGxEaXJlY3RpdmU8VD4pO1xuICBwcm90ZWN0ZWQgdG9vbGJhciA9IGNvbnRlbnRDaGlsZChXYXR0VGFibGVUb29sYmFyRGlyZWN0aXZlPFQ+KTtcbiAgcHJvdGVjdGVkIHNvcnQgPSB2aWV3Q2hpbGQoTWF0U29ydCk7XG5cbiAgLy8gRW5hYmxlcyBhbmltYXRpb24gZm9yIGV4cGFuZGluZy9jb2xsYXBzaW5nIGNlbGxzXG4gIHByb3RlY3RlZCB0YWJsZUNlbGxFbGVtZW50cyA9IHZpZXdDaGlsZHJlbjxFbGVtZW50UmVmPEhUTUxUYWJsZUNlbGxFbGVtZW50Pj4oJ3RkJyk7XG4gIHByb3RlY3RlZCBhbmltYXRpb25FZmZlY3QgPSBhbmltYXRlRXhwYW5kYWJsZUNlbGxzKHRoaXMudGFibGVDZWxsRWxlbWVudHMsIHRoaXMuZXhwYW5kZWQpO1xuXG4gIC8vIFNlbGVjdGFibGVcbiAgcHJvdGVjdGVkIGZpbHRlclNlbGVjdGlvbkJ5ID0gKHJvd3M6IFRbXSkgPT4gcm93cy5maWx0ZXIoKHJvdykgPT4gdGhpcy5zZWxlY3Rpb24oKS5pbmNsdWRlcyhyb3cpKTtcbiAgcHJvdGVjdGVkIGdldFNlbGVjdGlvblN0YXRlID0gKCkgPT4ge1xuICAgIGNvbnN0IGZpbHRlcmVkRGF0YSA9IHRoaXMuZGF0YVNvdXJjZSgpLmZpbHRlcmVkRGF0YTtcbiAgICBjb25zdCBmaWx0ZXJlZFNlbGVjdGlvbiA9IHRoaXMuZmlsdGVyU2VsZWN0aW9uQnkoZmlsdGVyZWREYXRhKTtcbiAgICBpZiAoIWZpbHRlcmVkU2VsZWN0aW9uLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiBmaWx0ZXJlZFNlbGVjdGlvbi5sZW5ndGggPT09IHRoaXMuZGF0YVNvdXJjZSgpLmZpbHRlcmVkRGF0YS5sZW5ndGggPyB0cnVlIDogbnVsbDtcbiAgfTtcblxuICAvLyBVbmlxdWUgbmFtZXMgZm9yIHNwZWNpYWwgY29sdW1uc1xuICBwcm90ZWN0ZWQgY2hlY2tib3hDb2x1bW4gPSAnX19jaGVja2JveENvbHVtbl9fJztcbiAgcHJvdGVjdGVkIGV4cGFuZGFibGVDb2x1bW4gPSAnX19leHBhbmRhYmxlQ29sdW1uX18nO1xuXG4gIHByb3RlY3RlZCBoYXNGb290ZXIgPSBjb21wdXRlZCgoKSA9PiBPYmplY3QudmFsdWVzKHRoaXMuY29sdW1ucygpKS5zb21lKChjKSA9PiBjLmZvb3RlcikpO1xuICBwcm90ZWN0ZWQgaXNFeHBhbmRhYmxlID0gY29tcHV0ZWQoKCkgPT4gT2JqZWN0LnZhbHVlcyh0aGlzLmNvbHVtbnMoKSkuc29tZSgoYykgPT4gYy5leHBhbmRhYmxlKSk7XG4gIHByb3RlY3RlZCByZW5kZXJlZENvbHVtbnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgY29sdW1ucyA9IHRoaXMuZGlzcGxheWVkQ29sdW1ucygpID8/IE9iamVjdC5rZXlzKHRoaXMuY29sdW1ucygpKTtcbiAgICByZXR1cm4gW1xuICAgICAgLi4uKHRoaXMuc2VsZWN0YWJsZSgpID8gW3RoaXMuY2hlY2tib3hDb2x1bW5dIDogW10pLFxuICAgICAgLi4uY29sdW1ucy5maWx0ZXIoKGtleSkgPT4gIXRoaXMuY29sdW1ucygpW2tleV0uZXhwYW5kYWJsZSksXG4gICAgICAuLi4odGhpcy5pc0V4cGFuZGFibGUoKSA/IFt0aGlzLmV4cGFuZGFibGVDb2x1bW5dIDogW10pLFxuICAgICAgLi4uY29sdW1ucy5maWx0ZXIoKGtleSkgPT4gdGhpcy5jb2x1bW5zKClba2V5XS5leHBhbmRhYmxlKSxcbiAgICBdO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgc2l6aW5nID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNvbHVtbnMgPSB0aGlzLmNvbHVtbnMoKTtcbiAgICByZXR1cm4gdGhpcy5yZW5kZXJlZENvbHVtbnMoKVxuICAgICAgLmZpbHRlcigoa2V5KSA9PiAhY29sdW1uc1trZXldPy5leHBhbmRhYmxlKVxuICAgICAgLm1hcCgoa2V5KSA9PiB7XG4gICAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgICAgY2FzZSB0aGlzLmNoZWNrYm94Q29sdW1uOlxuICAgICAgICAgICAgcmV0dXJuICd2YXIoLS13YXR0LXNwYWNlLXhsKSc7XG4gICAgICAgICAgY2FzZSB0aGlzLmV4cGFuZGFibGVDb2x1bW46XG4gICAgICAgICAgICByZXR1cm4gJ21pbi1jb250ZW50JztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIGNvbHVtbnNba2V5XT8uc2l6ZSA/PyAnYXV0byc7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9KTtcblxuICAvKiogVHJ5IHRvIGdldCBjZWxsIGRhdGEgZm9yIGEgc3BlY2lmaWMgYGNvbHVtbmAgYW5kIGByb3dgLiAqL1xuICBwcml2YXRlIGdldENlbGxEYXRhID0gKGNvbHVtbjogV2F0dFRhYmxlQ29sdW1uPFQ+LCByb3c6IFQpID0+IHtcbiAgICBpZiAoY29sdW1uLmNlbGwpIHJldHVybiBjb2x1bW4uY2VsbChyb3cpO1xuICAgIHJldHVybiAhY29sdW1uLmFjY2Vzc29yXG4gICAgICA/ICcnXG4gICAgICA6IHR5cGVvZiBjb2x1bW4uYWNjZXNzb3IgPT09ICdmdW5jdGlvbidcbiAgICAgICAgPyBjb2x1bW4uYWNjZXNzb3Iocm93KVxuICAgICAgICA6IHJvd1tjb2x1bW4uYWNjZXNzb3JdO1xuICB9O1xuXG4gIHByb3RlY3RlZCBnZXRDb2x1bW5UZW1wbGF0ZSA9IChjb2x1bW46IFdhdHRUYWJsZUNvbHVtbjxUPikgPT5cbiAgICB0aGlzLmNlbGxzKCkuZmluZCgoaXRlbSkgPT4gaXRlbS5jb2x1bW4oKSA9PT0gY29sdW1uKT8udGVtcGxhdGVSZWY7XG5cbiAgcHJvdGVjdGVkIGdldENvbHVtbkhlYWRlciA9IChjb2x1bW46IEtleVZhbHVlPHN0cmluZywgV2F0dFRhYmxlQ29sdW1uPFQ+PikgPT4ge1xuICAgIGlmICh0eXBlb2YgY29sdW1uLnZhbHVlLmhlYWRlciA9PT0gJ3N0cmluZycpIHJldHVybiBjb2x1bW4udmFsdWUuaGVhZGVyO1xuICAgIGNvbnN0IGNlbGwgPSB0aGlzLmNlbGxzKCkuZmluZCgoaXRlbSkgPT4gaXRlbS5jb2x1bW4oKSA9PT0gY29sdW1uLnZhbHVlKTtcbiAgICByZXR1cm4gY2VsbD8uaGVhZGVyKCkgPz8gdGhpcy5yZXNvbHZlSGVhZGVyKCk/Lihjb2x1bW4ua2V5KSA/PyBjb2x1bW4ua2V5O1xuICB9O1xuXG4gIHByb3RlY3RlZCBnZXRDb2x1bW5DZWxsID0gKGNvbHVtbjogV2F0dFRhYmxlQ29sdW1uPFQ+LCByb3c6IFQpID0+IHtcbiAgICBjb25zdCBjZWxsID0gdGhpcy5nZXRDZWxsRGF0YShjb2x1bW4sIHJvdyk7XG4gICAgaWYgKGNlbGwgPT09IHVuZGVmaW5lZCB8fCBjZWxsID09PSBudWxsKSByZXR1cm4gJ+KAlCc7XG4gICAgaWYgKGNlbGwgaW5zdGFuY2VvZiBEYXRlKSByZXR1cm4gd2F0dEZvcm1hdERhdGUoY2VsbCk7XG4gICAgcmV0dXJuIGNlbGw7XG4gIH07XG5cbiAgcHJvdGVjdGVkIGdldFJvd0tleSA9IChpbmRleDogbnVtYmVyLCByb3c6IFQpID0+IHtcbiAgICBjb25zdCB0cmFja0J5ID0gdGhpcy50cmFja0J5KCk7XG4gICAgaWYgKHR5cGVvZiB0cmFja0J5ID09PSAnc3RyaW5nJykgcmV0dXJuIHJvd1t0cmFja0J5XTtcbiAgICBpZiAodHlwZW9mIHRyYWNrQnkgPT09ICdmdW5jdGlvbicpIHJldHVybiB0cmFja0J5KGluZGV4LCByb3cpO1xuICAgIHJldHVybiB0aGlzLmRhdGFTb3VyY2UoKS5kYXRhLmluZGV4T2Yocm93KTtcbiAgfTtcblxuICBwcm90ZWN0ZWQgaXNBY3RpdmVSb3cgPSAocm93OiBUKSA9PiB7XG4gICAgY29uc3QgYWN0aXZlUm93ID0gdGhpcy5hY3RpdmVSb3coKTtcbiAgICBjb25zdCBhY3RpdmVSb3dDb21wYXJhdG9yID0gdGhpcy5hY3RpdmVSb3dDb21wYXJhdG9yKCk7XG4gICAgaWYgKCFhY3RpdmVSb3cpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gYWN0aXZlUm93Q29tcGFyYXRvciA/IGFjdGl2ZVJvd0NvbXBhcmF0b3Iocm93LCBhY3RpdmVSb3cpIDogcm93ID09PSBhY3RpdmVSb3c7XG4gIH07XG5cbiAgcHJvdGVjdGVkIG9uUm93Q2xpY2sgPSAocm93OiBUKSA9PiB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQoKSB8fCB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LnRvU3RyaW5nKCkgIT09ICcnKSByZXR1cm47XG4gICAgaWYgKHRoaXMuaXNFeHBhbmRhYmxlKCkpIHtcbiAgICAgIHRoaXMuZXhwYW5kZWQudXBkYXRlKChyb3dzKSA9PlxuICAgICAgICByb3dzLmluY2x1ZGVzKHJvdykgPyByb3dzLmZpbHRlcigocikgPT4gciAhPSByb3cpIDogWy4uLnJvd3MsIHJvd11cbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5yb3dDbGljayQubmV4dChyb3cpO1xuICB9O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBkYXRhU291cmNlID0gdGhpcy5kYXRhU291cmNlKCk7XG4gICAgICBkYXRhU291cmNlLnNvcnQgPSB0aGlzLnNvcnQoKTtcbiAgICAgIGlmICghKGRhdGFTb3VyY2UgaW5zdGFuY2VvZiBXYXR0VGFibGVEYXRhU291cmNlKSkgcmV0dXJuO1xuICAgICAgZGF0YVNvdXJjZS5zb3J0aW5nRGF0YUFjY2Vzc29yID0gKHJvdzogVCwgc29ydEhlYWRlcklkOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgY29sdW1uID0gdGhpcy5jb2x1bW5zKClbc29ydEhlYWRlcklkXTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldENlbGxEYXRhKGNvbHVtbiwgcm93KTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHJldHVybiB2YWx1ZS50b0xvd2VyQ2FzZSgpOyAvLyBjYXNlIGluc2Vuc2l0aXZlIHNvcnRpbmdcbiAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkgcmV0dXJuIHZhbHVlLmdldFRpbWUoKTtcbiAgICAgICAgcmV0dXJuIHZhbHVlIGFzIG51bWJlcjtcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXJzIHRoZSBzZWxlY3Rpb24uXG4gICAqL1xuICBjbGVhclNlbGVjdGlvbiA9ICgpID0+IHRoaXMuc2VsZWN0aW9uLnNldChbXSk7XG5cbiAgLyoqXG4gICAqIFRvZ2dsZXMgdGhlIHNlbGVjdGlvbiBvZiBhIHJvdy5cbiAgICovXG4gIHRvZ2dsZVNlbGVjdGlvbiA9IChyb3c6IFQpID0+XG4gICAgdGhpcy5zZWxlY3Rpb24udXBkYXRlKChzKSA9PiAocy5pbmNsdWRlcyhyb3cpID8gcy5maWx0ZXIoKHIpID0+IHIgIT09IHJvdykgOiBzLmNvbmNhdChyb3cpKSk7XG59XG5cbmV4cG9ydCBjb25zdCBXQVRUX1RBQkxFID0gW1dhdHRUYWJsZUNvbXBvbmVudCwgV2F0dFRhYmxlQ2VsbERpcmVjdGl2ZSwgV2F0dFRhYmxlVG9vbGJhckRpcmVjdGl2ZV07XG4iLCI8IS0tXG5AbGljZW5zZVxuQ29weXJpZ2h0IDIwMjAgRW5lcmdpbmV0IERhdGFIdWIgQS9TXG5cbkxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2UyXCIpO1xueW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcblxuVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG5TZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG5saW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbi0tPlxuPHRhYmxlXG4gIG1hdC10YWJsZVxuICBtYXRTb3J0XG4gIHJvbGU9XCJ0cmVlZ3JpZFwiXG4gIFtuZ0NsYXNzXT1cInsgJ3dhdHQtdGFibGUtaGFzLXNlbGVjdGlvbic6IGdldFNlbGVjdGlvblN0YXRlKCkgIT09IGZhbHNlIH1cIlxuICBbbWF0U29ydEFjdGl2ZV09XCJzb3J0QnkoKVwiXG4gIFttYXRTb3J0RGlyZWN0aW9uXT1cInNvcnREaXJlY3Rpb24oKVwiXG4gIFttYXRTb3J0RGlzYWJsZUNsZWFyXT1cIiFzb3J0Q2xlYXIoKVwiXG4gIFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2UoKVwiXG4gIFthdHRyLmFyaWEtbGFiZWxdPVwiZGVzY3JpcHRpb24oKVwiXG4gIChtYXRTb3J0Q2hhbmdlKT1cInNvcnRDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcbj5cbiAgQGlmIChzZWxlY3RhYmxlKCkpIHtcbiAgICA8bmctY29udGFpbmVyIFttYXRDb2x1bW5EZWZdPVwiY2hlY2tib3hDb2x1bW5cIiBbc3RpY2t5XT1cInRydWVcIj5cbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgY2xhc3M9XCJ3YXR0LXRhYmxlLWNoZWNrYm94LWNlbGxcIj5cbiAgICAgICAgPHdhdHQtY2hlY2tib3hcbiAgICAgICAgICBbbmdNb2RlbF09XCJnZXRTZWxlY3Rpb25TdGF0ZSgpXCJcbiAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCIkZXZlbnQgPyBzZWxlY3Rpb24uc2V0KGRhdGFTb3VyY2UoKS5maWx0ZXJlZERhdGEpIDogY2xlYXJTZWxlY3Rpb24oKVwiXG4gICAgICAgIC8+XG4gICAgICA8L3RoPlxuICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHJvd1wiIGNsYXNzPVwid2F0dC10YWJsZS1jaGVja2JveC1jZWxsXCI+XG4gICAgICAgIDx3YXR0LWNoZWNrYm94XG4gICAgICAgICAgW25nTW9kZWxdPVwic2VsZWN0aW9uKCkuaW5jbHVkZXMocm93KVwiXG4gICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidG9nZ2xlU2VsZWN0aW9uKHJvdylcIlxuICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAvPlxuICAgICAgPC90ZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgfVxuXG4gIDxuZy1jb250YWluZXIgW21hdENvbHVtbkRlZl09XCJleHBhbmRhYmxlQ29sdW1uXCI+XG4gICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj48L3RoPlxuICAgIDx0ZFxuICAgICAgI3RkXG4gICAgICBtYXQtY2VsbFxuICAgICAgKm1hdENlbGxEZWY9XCJsZXQgcm93OyBsZXQgaW5kZXggPSBpbmRleFwiXG4gICAgICBbYXR0ci5kYXRhLWtleV09XCJnZXRSb3dLZXkoaW5kZXgsIHJvdylcIlxuICAgICAgW2F0dHIuZGF0YS1yb3ctaW5kZXhdPVwiaW5kZXhcIlxuICAgICAgKGNsaWNrKT1cIm9uUm93Q2xpY2socm93KVwiXG4gICAgICBbY2xhc3Mud2F0dC10YWJsZS1jZWxsLS1leHBhbmRlZF09XCJleHBhbmRlZCgpLmluY2x1ZGVzKHJvdylcIlxuICAgID5cbiAgICAgIDx3YXR0LWljb24gbmFtZT1cInJpZ2h0XCIgc2l6ZT1cInhzXCIgLz5cbiAgICA8L3RkPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICBAZm9yIChjb2x1bW4gb2YgY29sdW1ucygpIHwga2V5dmFsdWU7IHRyYWNrIGNvbHVtbi5rZXkpIHtcbiAgICA8bmctY29udGFpbmVyIFttYXRDb2x1bW5EZWZdPVwiY29sdW1uLmtleVwiIFtzdGlja3lFbmRdPVwiY29sdW1uLnZhbHVlLnN0aWNreUVuZD8uKClcIj5cbiAgICAgIDx0aFxuICAgICAgICBtYXQtaGVhZGVyLWNlbGxcbiAgICAgICAgKm1hdEhlYWRlckNlbGxEZWZcbiAgICAgICAgW2NsYXNzLndhdHQtdGFibGUtY2VsbC0tZXhwYW5kYWJsZV09XCJjb2x1bW4udmFsdWUuZXhwYW5kYWJsZVwiXG4gICAgICAgIGNsYXNzPVwid2F0dC10YWJsZS1hbGlnbi17eyBjb2x1bW4udmFsdWUuYWxpZ24gPz8gJ2xlZnQnIH19IHt7XG4gICAgICAgICAgY29sdW1uLnZhbHVlLmhlYWRlckNlbGxDbGFzc1xuICAgICAgICB9fVwiXG4gICAgICA+XG4gICAgICAgIEBpZiAoY29sdW1uLnZhbHVlLmhlbHBlckFjdGlvbjsgYXMgYWN0aW9uKSB7XG4gICAgICAgICAgPHdhdHQtaWNvbiBuYW1lPVwiaGVscFwiIChjbGljayk9XCJhY3Rpb24oKVwiIC8+XG4gICAgICAgIH1cblxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJ3YXR0LXRhYmxlLWhlYWRlci1jZWxsXCJcbiAgICAgICAgICBtYXQtc29ydC1oZWFkZXJcbiAgICAgICAgICBbYXJyb3dQb3NpdGlvbl09XCJjb2x1bW4udmFsdWUuYWxpZ24gPT09ICdyaWdodCcgPyAnYmVmb3JlJyA6ICdhZnRlcidcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhY29sdW1uLnZhbHVlLmFjY2Vzc29yIHx8IGNvbHVtbi52YWx1ZS5zb3J0ID09PSBmYWxzZVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBnZXRDb2x1bW5IZWFkZXIoY29sdW1uKSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgQGlmIChjb2x1bW4udmFsdWUudG9vbHRpcDsgYXMgdG9vbHRpcCkge1xuICAgICAgICAgIDx3YXR0LWljb24gW3RpdGxlXT1cInRvb2x0aXBcIiBuYW1lPVwiaW5mb1wiIC8+XG4gICAgICAgIH1cbiAgICAgIDwvdGg+XG5cbiAgICAgIDx0ZFxuICAgICAgICAjdGRcbiAgICAgICAgbWF0LWNlbGxcbiAgICAgICAgKm1hdENlbGxEZWY9XCJsZXQgcm93OyBsZXQgaW5kZXggPSBpbmRleFwiXG4gICAgICAgIFthdHRyLmRhdGEta2V5XT1cImdldFJvd0tleShpbmRleCwgcm93KVwiXG4gICAgICAgIFthdHRyLmRhdGEtcm93LWluZGV4XT1cImluZGV4XCJcbiAgICAgICAgW2NsYXNzLndhdHQtdGFibGUtY2VsbC0tZXhwYW5kZWRdPVwiZXhwYW5kZWQoKS5pbmNsdWRlcyhyb3cpXCJcbiAgICAgICAgW2NsYXNzLndhdHQtdGFibGUtY2VsbC0tZXhwYW5kYWJsZV09XCJjb2x1bW4udmFsdWUuZXhwYW5kYWJsZVwiXG4gICAgICAgIGNsYXNzPVwid2F0dC10YWJsZS1hbGlnbi17eyBjb2x1bW4udmFsdWUuYWxpZ24gPz8gJ2xlZnQnIH19IHt7IGNvbHVtbi52YWx1ZS5kYXRhQ2VsbENsYXNzIH19XCJcbiAgICAgICAgKGNsaWNrKT1cIiFjb2x1bW4udmFsdWUuZXhwYW5kYWJsZSAmJiBvblJvd0NsaWNrKHJvdylcIlxuICAgICAgPlxuICAgICAgICBAaWYgKGlzRXhwYW5kYWJsZSgpKSB7XG4gICAgICAgICAgQGRlZmVyICh3aGVuICFjb2x1bW4udmFsdWUuZXhwYW5kYWJsZSB8fCBleHBhbmRlZCgpLmluY2x1ZGVzKHJvdykpIHtcbiAgICAgICAgICAgIEBpZiAoZ2V0Q29sdW1uVGVtcGxhdGUoY29sdW1uLnZhbHVlKTsgYXMgdGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndhdHQtdGFibGUtY2VsbC13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogcm93IH1cIiAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICB7eyBnZXRDb2x1bW5DZWxsKGNvbHVtbi52YWx1ZSwgcm93KSB9fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgQGlmIChnZXRDb2x1bW5UZW1wbGF0ZShjb2x1bW4udmFsdWUpOyBhcyB0ZW1wbGF0ZSkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndhdHQtdGFibGUtY2VsbC13cmFwcGVyXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IHJvdyB9XCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAge3sgZ2V0Q29sdW1uQ2VsbChjb2x1bW4udmFsdWUsIHJvdykgfX1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIDwvdGQ+XG5cbiAgICAgIEBpZiAoaGFzRm9vdGVyKCkpIHtcbiAgICAgICAgPHRkXG4gICAgICAgICAgbWF0LWZvb3Rlci1jZWxsXG4gICAgICAgICAgKm1hdEZvb3RlckNlbGxEZWZcbiAgICAgICAgICBjbGFzcz1cInt7IGNvbHVtbi52YWx1ZS5mb290ZXI/LmNsYXNzIH19IHdhdHQtdGFibGUtYWxpZ24te3tcbiAgICAgICAgICAgIGNvbHVtbi52YWx1ZS5hbGlnbiA/PyAnbGVmdCdcbiAgICAgICAgICB9fSBcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgY29sdW1uLnZhbHVlLmZvb3Rlcj8udmFsdWU/LigpIH19XG4gICAgICAgIDwvdGQ+XG4gICAgICB9XG4gICAgPC9uZy1jb250YWluZXI+XG4gIH1cblxuICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInNwYWNlclwiPlxuICAgIDx0ZCBjbGFzcz1cIndhdHQtdGFibGUtZm9vdGVyLXNwYWNlclwiIG1hdC1mb290ZXItY2VsbCAqbWF0Rm9vdGVyQ2VsbERlZj48L3RkPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICBAaWYgKCFoaWRlQ29sdW1uSGVhZGVycygpKSB7XG4gICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJyZW5kZXJlZENvbHVtbnMoKVwiPjwvdHI+XG4gIH1cbiAgPHRyXG4gICAgbWF0LXJvd1xuICAgICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiByZW5kZXJlZENvbHVtbnMoKVwiXG4gICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJyb3cgPT09IGFjdGl2ZVJvdygpXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAnd2F0dC10YWJsZS1oaWdobGlnaHQtcm93JzogIWRpc2FibGVkKCkgJiYgIXN1cHByZXNzUm93SG92ZXJIaWdobGlnaHQoKSxcbiAgICAgICd3YXR0LXRhYmxlLWNsaWNrYWJsZS1yb3cnOiAhZGlzYWJsZWQoKSAmJiByb3dDbGljayQub2JzZXJ2ZWQsXG4gICAgICAnd2F0dC10YWJsZS1hY3RpdmUtcm93JzogaXNBY3RpdmVSb3cocm93KSxcbiAgICAgICd3YXR0LXRhYmxlLW5vLWVuZC1kaXZpZGVyJzogaGlkZUNvbHVtbkhlYWRlcnMoKSxcbiAgICB9XCJcbiAgPjwvdHI+XG5cbiAgQGlmICh0b29sYmFyKCkpIHtcbiAgICA8dHIgbWF0LWZvb3Rlci1yb3cgKm1hdEZvb3RlclJvd0RlZj1cIlsnc3BhY2VyJ11cIj48L3RyPlxuICB9XG5cbiAgQGlmIChoYXNGb290ZXIoKSkge1xuICAgIDx0clxuICAgICAgbWF0LWZvb3Rlci1yb3dcbiAgICAgIFtjbGFzcy53YXR0LXRhYmxlLWhpZGUtZm9vdGVyXT1cImxvYWRpbmcoKSB8fCBkYXRhU291cmNlKCkuZmlsdGVyZWREYXRhLmxlbmd0aCA9PT0gMFwiXG4gICAgICAqbWF0Rm9vdGVyUm93RGVmPVwicmVuZGVyZWRDb2x1bW5zKCk7IHN0aWNreTogc3RpY2t5Rm9vdGVyKClcIlxuICAgID48L3RyPlxuICB9XG5cbiAgPG5nLWNvbnRhaW5lciAqbWF0Tm9EYXRhUm93PlxuICAgIEBpZiAobG9hZGluZygpKSB7XG4gICAgICBAZm9yIChpIG9mIFsxLCAyLCAzXTsgdHJhY2sgaSkge1xuICAgICAgICA8dHIgY2xhc3M9XCJtYXQtbWRjLXJvd1wiPlxuICAgICAgICAgIEBmb3IgKF8gb2YgcmVuZGVyZWRDb2x1bW5zKCk7IHRyYWNrIF87IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJtYXQtbWRjLWNlbGxcIiBbY2xhc3Mud2F0dC10YWJsZS1sb2FkaW5nLWNlbGxdPVwiaSA+IDAgfHwgIXNlbGVjdGFibGUoKVwiPjwvdGQ+XG4gICAgICAgICAgfVxuICAgICAgICA8L3RyPlxuICAgICAgfVxuICAgIH1cbiAgPC9uZy1jb250YWluZXI+XG48L3RhYmxlPlxuXG5AaWYgKHRvb2xiYXIoKTsgYXMgdG9vbGJhcikge1xuICA8ZGl2IGNsYXNzPVwid2F0dC10YWJsZS10b29sYmFyXCIgcm9sZT1cInRvb2xiYXJcIj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICB0b29sYmFyLnRlbXBsYXRlUmVmO1xuICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogZmlsdGVyU2VsZWN0aW9uQnkoZGF0YVNvdXJjZSgpLmZpbHRlcmVkRGF0YSkgfVxuICAgICAgXCJcbiAgICAvPlxuICA8L2Rpdj5cbn1cbiJdfQ==
|
package/package.json
CHANGED
package/table/index.d.ts
CHANGED
|
@@ -15,4 +15,4 @@
|
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
17
|
export { IWattTableDataSource, WattTableDataSource } from './watt-table-data-source';
|
|
18
|
-
export { type WattTableColumn, type WattTableColumnDef, WattTableComponent, WattTableCellDirective, WattTableToolbarDirective,
|
|
18
|
+
export { type WattTableColumn, type WattTableColumnDef, WattTableComponent, WattTableCellDirective, WattTableToolbarDirective, WATT_TABLE, } from './watt-table.component';
|
|
@@ -15,11 +15,10 @@
|
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
17
|
import { KeyValue } from '@angular/common';
|
|
18
|
-
import {
|
|
18
|
+
import { ElementRef, TemplateRef } from '@angular/core';
|
|
19
19
|
import type { Signal, TrackByFunction } from '@angular/core';
|
|
20
20
|
import { MatSort, Sort, SortDirection } from '@angular/material/sort';
|
|
21
21
|
import { Subject } from 'rxjs';
|
|
22
|
-
import { WattDatePipe } from '@energinet/watt/core/date';
|
|
23
22
|
import { IWattTableDataSource } from './watt-table-data-source';
|
|
24
23
|
import * as i0 from "@angular/core";
|
|
25
24
|
/** Class name for expandable cells. */
|
|
@@ -124,11 +123,11 @@ export declare class WattTableCellDirective<T> {
|
|
|
124
123
|
/**
|
|
125
124
|
* The WattTableColumn this template applies to.
|
|
126
125
|
*/
|
|
127
|
-
column: import("@angular/core").InputSignal<WattTableColumn<T>>;
|
|
126
|
+
readonly column: import("@angular/core").InputSignal<WattTableColumn<T>>;
|
|
128
127
|
/**
|
|
129
128
|
* Optional header text for the column.
|
|
130
129
|
*/
|
|
131
|
-
header: import("@angular/core").InputSignal<string | undefined>;
|
|
130
|
+
readonly header: import("@angular/core").InputSignal<string | undefined>;
|
|
132
131
|
static ngTemplateContextGuard<T>(_directive: WattTableCellDirective<T>, context: unknown): context is WattTableCellContext<T>;
|
|
133
132
|
static ɵfac: i0.ɵɵFactoryDeclaration<WattTableCellDirective<any>, never>;
|
|
134
133
|
static ɵdir: i0.ɵɵDirectiveDeclaration<WattTableCellDirective<any>, "[wattTableCell]", never, { "column": { "alias": "wattTableCell"; "required": true; "isSignal": true; }; "header": { "alias": "wattTableCellHeader"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
@@ -143,74 +142,74 @@ export declare class WattTableToolbarDirective<T> {
|
|
|
143
142
|
* Usage:
|
|
144
143
|
* `import { WATT_TABLE } from '@energinet-datahub/watt/table';`
|
|
145
144
|
*/
|
|
146
|
-
export declare class WattTableComponent<T>
|
|
145
|
+
export declare class WattTableComponent<T> {
|
|
147
146
|
/**
|
|
148
147
|
* The table's source of data. Property should not be changed after
|
|
149
148
|
* initialization, instead update the data on the instance itself.
|
|
150
149
|
*/
|
|
151
|
-
dataSource: import("@angular/core").InputSignal<IWattTableDataSource<T>>;
|
|
150
|
+
readonly dataSource: import("@angular/core").InputSignal<IWattTableDataSource<T>>;
|
|
152
151
|
/**
|
|
153
152
|
* Column definition record with keys representing the column identifiers
|
|
154
153
|
* and values being the column configuration. The order of the columns
|
|
155
154
|
* is determined by the property order, but can be overruled by the
|
|
156
155
|
* `displayedColumns` input.
|
|
157
156
|
*/
|
|
158
|
-
columns: import("@angular/core").InputSignal<WattTableColumnDef<T>>;
|
|
157
|
+
readonly columns: import("@angular/core").InputSignal<WattTableColumnDef<T>>;
|
|
159
158
|
/**
|
|
160
159
|
* Used for hiding or reordering columns defined in the `columns` input.
|
|
161
160
|
*/
|
|
162
|
-
displayedColumns: import("@angular/core").InputSignal<string[] | undefined>;
|
|
161
|
+
readonly displayedColumns: import("@angular/core").InputSignal<string[] | undefined>;
|
|
163
162
|
/**
|
|
164
163
|
* Used for disabling the table. This will disable all user interaction
|
|
165
164
|
*/
|
|
166
|
-
disabled: import("@angular/core").InputSignal<boolean>;
|
|
165
|
+
readonly disabled: import("@angular/core").InputSignal<boolean>;
|
|
167
166
|
/**
|
|
168
167
|
* Provide a description of the table for visually impaired users.
|
|
169
168
|
*/
|
|
170
|
-
description: import("@angular/core").InputSignal<string>;
|
|
169
|
+
readonly description: import("@angular/core").InputSignal<string>;
|
|
171
170
|
/**
|
|
172
171
|
* If set to `true`, the table will show a loading indicator
|
|
173
172
|
* when there is no data.
|
|
174
173
|
*/
|
|
175
|
-
loading: import("@angular/core").InputSignal<boolean>;
|
|
174
|
+
readonly loading: import("@angular/core").InputSignal<boolean>;
|
|
176
175
|
/**
|
|
177
176
|
* If true the footer will be sticky
|
|
178
177
|
*/
|
|
179
|
-
stickyFooter: import("@angular/core").InputSignal<boolean>;
|
|
178
|
+
readonly stickyFooter: import("@angular/core").InputSignal<boolean>;
|
|
180
179
|
/**
|
|
181
180
|
* Optional callback for determining header text for columns that
|
|
182
181
|
* do not have a static header text set in the column definition.
|
|
183
182
|
* Useful for providing translations of column headers.
|
|
184
183
|
*/
|
|
185
|
-
resolveHeader: import("@angular/core").InputSignal<((key: string) => string) | undefined>;
|
|
184
|
+
readonly resolveHeader: import("@angular/core").InputSignal<((key: string) => string) | undefined>;
|
|
186
185
|
/**
|
|
187
186
|
* Identifier for column that should be sorted initially.
|
|
188
187
|
*/
|
|
189
|
-
sortBy: import("@angular/core").InputSignal<string>;
|
|
188
|
+
readonly sortBy: import("@angular/core").InputSignal<string>;
|
|
190
189
|
/**
|
|
191
190
|
* The sort direction of the initially sorted column.
|
|
192
191
|
*/
|
|
193
|
-
sortDirection: import("@angular/core").InputSignal<SortDirection>;
|
|
192
|
+
readonly sortDirection: import("@angular/core").InputSignal<SortDirection>;
|
|
194
193
|
/**
|
|
195
194
|
* Whether to allow the user to clear the sort. Defaults to `true`.
|
|
196
195
|
*/
|
|
197
|
-
sortClear: import("@angular/core").InputSignal<boolean>;
|
|
196
|
+
readonly sortClear: import("@angular/core").InputSignal<boolean>;
|
|
198
197
|
/**
|
|
199
198
|
* Whether the table should include a checkbox column for row selection.
|
|
200
199
|
*/
|
|
201
|
-
selectable: import("@angular/core").InputSignal<boolean>;
|
|
200
|
+
readonly selectable: import("@angular/core").InputSignal<boolean>;
|
|
202
201
|
/**
|
|
203
202
|
* Sets the selected rows. Only applicable when selectable is `true`.
|
|
204
203
|
*/
|
|
205
|
-
selection: import("@angular/core").ModelSignal<T[]>;
|
|
204
|
+
readonly selection: import("@angular/core").ModelSignal<T[]>;
|
|
206
205
|
/**
|
|
207
206
|
* Set to true to disable row hover highlight.
|
|
208
207
|
*/
|
|
209
|
-
suppressRowHoverHighlight: import("@angular/core").InputSignal<boolean>;
|
|
208
|
+
readonly suppressRowHoverHighlight: import("@angular/core").InputSignal<boolean>;
|
|
210
209
|
/**
|
|
211
210
|
* Highlights the currently active row.
|
|
212
211
|
*/
|
|
213
|
-
activeRow: import("@angular/core").InputSignal<T | undefined>;
|
|
212
|
+
readonly activeRow: import("@angular/core").InputSignal<T | undefined>;
|
|
214
213
|
/**
|
|
215
214
|
* Custom comparator function to determine if two rows are equal.
|
|
216
215
|
*
|
|
@@ -220,64 +219,60 @@ export declare class WattTableComponent<T> implements OnChanges, AfterViewInit {
|
|
|
220
219
|
* as long as the instances remain the same, which may not be the case
|
|
221
220
|
* if row data is recreated or rebuilt from serialization.
|
|
222
221
|
*/
|
|
223
|
-
activeRowComparator: import("@angular/core").InputSignal<((currentRow: T, activeRow: T) => boolean) | undefined>;
|
|
222
|
+
readonly activeRowComparator: import("@angular/core").InputSignal<((currentRow: T, activeRow: T) => boolean) | undefined>;
|
|
224
223
|
/**
|
|
225
224
|
* If set to `true`, the column headers will not be shown. Default is `false`.
|
|
226
225
|
*/
|
|
227
|
-
hideColumnHeaders: import("@angular/core").InputSignal<boolean>;
|
|
226
|
+
readonly hideColumnHeaders: import("@angular/core").InputSignal<boolean>;
|
|
228
227
|
/**
|
|
229
228
|
* Choose from a predefined set of display variants.
|
|
230
229
|
*/
|
|
231
|
-
variant: import("@angular/core").InputSignal<"zebra" | undefined>;
|
|
230
|
+
readonly variant: import("@angular/core").InputSignal<"zebra" | undefined>;
|
|
232
231
|
/**
|
|
233
232
|
* Array of rows that are currently expanded.
|
|
234
233
|
*/
|
|
235
|
-
expanded: import("@angular/core").ModelSignal<T[]>;
|
|
234
|
+
readonly expanded: import("@angular/core").ModelSignal<T[]>;
|
|
236
235
|
/**
|
|
237
236
|
* Optional function for uniquely identifying rows.
|
|
238
237
|
*/
|
|
239
|
-
trackBy: import("@angular/core").InputSignal<TrackByFunction<T> | keyof T | undefined>;
|
|
238
|
+
readonly trackBy: import("@angular/core").InputSignal<TrackByFunction<T> | keyof T | undefined>;
|
|
240
239
|
/**
|
|
241
240
|
* @ignore
|
|
242
241
|
* The `observed` boolean from the `Subject` is used to determine if a row is
|
|
243
242
|
* clickable or not. This is available on `EventEmitter`, but not on `output`,
|
|
244
243
|
* which is why this workaround is used.
|
|
245
244
|
*/
|
|
246
|
-
protected
|
|
245
|
+
protected rowClick$: Subject<T>;
|
|
247
246
|
/**
|
|
248
247
|
* Emits whenever a row is clicked.
|
|
249
248
|
*/
|
|
250
|
-
rowClick: import("@angular/core").OutputRef<T>;
|
|
249
|
+
readonly rowClick: import("@angular/core").OutputRef<T>;
|
|
251
250
|
/**
|
|
252
251
|
* Event emitted when the user changes the active sort or sort direction.
|
|
253
252
|
*/
|
|
254
|
-
sortChange: import("@angular/core").OutputEmitterRef<Sort>;
|
|
253
|
+
readonly sortChange: import("@angular/core").OutputEmitterRef<Sort>;
|
|
255
254
|
protected cells: Signal<readonly WattTableCellDirective<T>[]>;
|
|
256
255
|
protected toolbar: Signal<WattTableToolbarDirective<any> | undefined>;
|
|
257
256
|
protected sort: Signal<MatSort | undefined>;
|
|
258
257
|
protected tableCellElements: Signal<readonly ElementRef<HTMLTableCellElement>[]>;
|
|
259
|
-
|
|
260
|
-
_animationEffect: import("@angular/core").AfterRenderRef;
|
|
258
|
+
protected animationEffect: import("@angular/core").AfterRenderRef;
|
|
261
259
|
protected filterSelectionBy: (rows: T[]) => T[];
|
|
262
260
|
protected getSelectionState: () => boolean | null;
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
/**
|
|
270
|
-
_datePipe: WattDatePipe;
|
|
271
|
-
/** @ignore */
|
|
272
|
-
_hasFooter: import("@angular/core").WritableSignal<boolean>;
|
|
273
|
-
/** @ignore */
|
|
274
|
-
private formatCellData;
|
|
275
|
-
/** @ignore */
|
|
261
|
+
protected checkboxColumn: string;
|
|
262
|
+
protected expandableColumn: string;
|
|
263
|
+
protected hasFooter: Signal<boolean>;
|
|
264
|
+
protected isExpandable: Signal<boolean>;
|
|
265
|
+
protected renderedColumns: Signal<string[]>;
|
|
266
|
+
protected sizing: Signal<string[]>;
|
|
267
|
+
/** Try to get cell data for a specific `column` and `row`. */
|
|
276
268
|
private getCellData;
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
269
|
+
protected getColumnTemplate: (column: WattTableColumn<T>) => TemplateRef<any> | undefined;
|
|
270
|
+
protected getColumnHeader: (column: KeyValue<string, WattTableColumn<T>>) => string;
|
|
271
|
+
protected getColumnCell: (column: WattTableColumn<T>, row: T) => {} | null;
|
|
272
|
+
protected getRowKey: (index: number, row: T) => any;
|
|
273
|
+
protected isActiveRow: (row: T) => boolean;
|
|
274
|
+
protected onRowClick: (row: T) => void;
|
|
275
|
+
constructor();
|
|
281
276
|
/**
|
|
282
277
|
* Clears the selection.
|
|
283
278
|
*/
|
|
@@ -286,32 +281,8 @@ export declare class WattTableComponent<T> implements OnChanges, AfterViewInit {
|
|
|
286
281
|
* Toggles the selection of a row.
|
|
287
282
|
*/
|
|
288
283
|
toggleSelection: (row: T) => void;
|
|
289
|
-
/** @ignore */
|
|
290
|
-
_getColumns(): string[];
|
|
291
|
-
/** @ignore */
|
|
292
|
-
_getColumnTemplate(column: WattTableColumn<T>): TemplateRef<any> | undefined;
|
|
293
|
-
/** @ignore */
|
|
294
|
-
_getColumnHeader(column: KeyValue<string, WattTableColumn<T>>): string;
|
|
295
|
-
/** @ignore */
|
|
296
|
-
_getColumnHelperAction(column: KeyValue<string, WattTableColumn<T>>): (() => void) | undefined;
|
|
297
|
-
/** @ignore */
|
|
298
|
-
_getColumnHeaderTooltip(column: KeyValue<string, WattTableColumn<T>>): string | undefined;
|
|
299
|
-
/** @ignore */
|
|
300
|
-
_getColumnCell(column: KeyValue<string, WattTableColumn<T>>, row: T): {} | null;
|
|
301
|
-
/** @ignore */
|
|
302
|
-
_getRowKey: (index: number, row: T) => any;
|
|
303
|
-
/** @ignore */
|
|
304
|
-
_isActiveRow(row: T): boolean;
|
|
305
|
-
/** @ignore */
|
|
306
|
-
_isExpandable(): boolean;
|
|
307
|
-
/** @ignore */
|
|
308
|
-
_onRowClick(row: T): void;
|
|
309
284
|
static ɵfac: i0.ɵɵFactoryDeclaration<WattTableComponent<any>, never>;
|
|
310
285
|
static ɵcmp: i0.ɵɵComponentDeclaration<WattTableComponent<any>, "watt-table", never, { "dataSource": { "alias": "dataSource"; "required": true; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "displayedColumns": { "alias": "displayedColumns"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "stickyFooter": { "alias": "stickyFooter"; "required": false; "isSignal": true; }; "resolveHeader": { "alias": "resolveHeader"; "required": false; "isSignal": true; }; "sortBy": { "alias": "sortBy"; "required": false; "isSignal": true; }; "sortDirection": { "alias": "sortDirection"; "required": false; "isSignal": true; }; "sortClear": { "alias": "sortClear"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "selection": { "alias": "selection"; "required": false; "isSignal": true; }; "suppressRowHoverHighlight": { "alias": "suppressRowHoverHighlight"; "required": false; "isSignal": true; }; "activeRow": { "alias": "activeRow"; "required": false; "isSignal": true; }; "activeRowComparator": { "alias": "activeRowComparator"; "required": false; "isSignal": true; }; "hideColumnHeaders": { "alias": "hideColumnHeaders"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; "trackBy": { "alias": "trackBy"; "required": false; "isSignal": true; }; }, { "selection": "selectionChange"; "expanded": "expandedChange"; "rowClick": "rowClick"; "sortChange": "sortChange"; }, ["cells", "toolbar"], never, true, never>;
|
|
311
286
|
}
|
|
312
|
-
export declare
|
|
313
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<WattTableToolbarSpacerComponent, never>;
|
|
314
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<WattTableToolbarSpacerComponent, "watt-table-toolbar-spacer", never, {}, {}, never, never, true, never>;
|
|
315
|
-
}
|
|
316
|
-
export declare const WATT_TABLE: (typeof WattTableToolbarSpacerComponent)[];
|
|
287
|
+
export declare const WATT_TABLE: (typeof WattTableToolbarDirective | typeof WattTableComponent)[];
|
|
317
288
|
export {};
|