@coolon/angular-ui-powerups 16.1.0-aplpha.151 → 16.1.0-aplpha.152
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/table.scss +1 -1
- package/esm2022/lib/components/components.module.mjs +16 -16
- package/esm2022/lib/components/exports.mjs +4 -4
- package/esm2022/lib/components/loadable-component.mjs +1 -1
- package/esm2022/lib/components/tables/abstract-table-model.mjs +43 -24
- package/esm2022/lib/components/tables/renderer/table-action-column/menu-builder.mjs +2 -0
- package/esm2022/lib/components/tables/renderer/table-action-column/table-action-column.component.mjs +115 -0
- package/esm2022/lib/components/tables/renderer/table-custom-more-menu/table-custom-more-menu-popup.component.mjs +45 -0
- package/esm2022/lib/components/tables/renderer/table-custom-more-menu/table-custom-more-menu.component.mjs +71 -0
- package/fesm2022/coolon-angular-ui-powerups.mjs +168 -110
- package/fesm2022/coolon-angular-ui-powerups.mjs.map +1 -1
- package/lib/components/components.module.d.ts +4 -4
- package/lib/components/exports.d.ts +3 -3
- package/lib/components/loadable-component.d.ts +2 -2
- package/lib/components/tables/abstract-table-model.d.ts +26 -19
- package/lib/components/tables/renderer/table-action-column/menu-builder.d.ts +5 -0
- package/lib/components/tables/renderer/table-action-column/table-action-column.component.d.ts +30 -0
- package/lib/components/tables/renderer/table-custom-more-menu/table-custom-more-menu-popup.component.d.ts +19 -0
- package/lib/components/tables/renderer/{table-more-menu/table-more-menu.component.d.ts → table-custom-more-menu/table-custom-more-menu.component.d.ts} +7 -7
- package/package.json +1 -1
- package/esm2022/lib/components/tables/renderer/table-more-menu/table-more-menu-popup/table-more-menu-popup.component.mjs +0 -40
- package/esm2022/lib/components/tables/renderer/table-more-menu/table-more-menu.component.mjs +0 -65
- package/esm2022/lib/components/tables/table-row-menu/table-row-menu.component.mjs +0 -84
- package/lib/components/tables/renderer/table-more-menu/table-more-menu-popup/table-more-menu-popup.component.d.ts +0 -18
- package/lib/components/tables/table-row-menu/table-row-menu.component.d.ts +0 -28
package/esm2022/lib/components/tables/renderer/table-action-column/table-action-column.component.mjs
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { Component, Input, ViewChild } from '@angular/core';
|
|
2
|
+
import { MatMenuTrigger } from '@angular/material/menu';
|
|
3
|
+
import { Dsl } from '@coolon/pectin';
|
|
4
|
+
import { DisposableComponent } from '../../../disposable-component';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/common";
|
|
7
|
+
import * as i2 from "../../../commands/group/tool-bar/tool-bar.component";
|
|
8
|
+
import * as i3 from "../../../commands/command/command.component";
|
|
9
|
+
import * as i4 from "../../../commands/group/popup-menu/more-menu.component";
|
|
10
|
+
import * as i5 from "../../../commands/separator.component";
|
|
11
|
+
import * as i6 from "../../../commands/flex.component";
|
|
12
|
+
class MenuItemData {
|
|
13
|
+
factory;
|
|
14
|
+
face;
|
|
15
|
+
constructor(factory, face) {
|
|
16
|
+
this.factory = factory;
|
|
17
|
+
this.face = face;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
*
|
|
22
|
+
*/
|
|
23
|
+
export class TableActionColumnComponent extends DisposableComponent {
|
|
24
|
+
value;
|
|
25
|
+
menu;
|
|
26
|
+
actions = [];
|
|
27
|
+
moreActions = [];
|
|
28
|
+
addCommand(commandFactory, properties) {
|
|
29
|
+
this.actions.push(new MenuItemData(commandFactory, properties));
|
|
30
|
+
}
|
|
31
|
+
addSeparator() {
|
|
32
|
+
this.actions.push(null);
|
|
33
|
+
}
|
|
34
|
+
addMoreMenu(builder) {
|
|
35
|
+
const self = this;
|
|
36
|
+
builder({
|
|
37
|
+
addCommand(factory, face) {
|
|
38
|
+
self.moreActions.push(new MenuItemData(factory, face));
|
|
39
|
+
},
|
|
40
|
+
addSeparator() {
|
|
41
|
+
self.moreActions.push(null);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
constructor() {
|
|
46
|
+
super();
|
|
47
|
+
}
|
|
48
|
+
createMoreMenuCommand(item, value) {
|
|
49
|
+
const { when } = Dsl.disposeWith(this);
|
|
50
|
+
const command = item.factory.create(value, { disposedWith: this });
|
|
51
|
+
when(command.busy$).becomesFalsey(() => {
|
|
52
|
+
this.closeMoreMenu();
|
|
53
|
+
});
|
|
54
|
+
return command;
|
|
55
|
+
}
|
|
56
|
+
closeMoreMenu() {
|
|
57
|
+
this.menu.closeMenu();
|
|
58
|
+
}
|
|
59
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableActionColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
60
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: TableActionColumnComponent, selector: "aup-table-action-column", inputs: { value: "value" }, viewQueries: [{ propertyName: "menu", first: true, predicate: MatMenuTrigger, descendants: true }], usesInheritance: true, ngImport: i0, template: `
|
|
61
|
+
<aup-tool-bar>
|
|
62
|
+
<ng-container *ngFor="let action of actions">
|
|
63
|
+
<aup-command *ngIf="action"
|
|
64
|
+
#comp
|
|
65
|
+
[command]="action.factory.create(value, {disposedWith: comp})"
|
|
66
|
+
[face]="action.face"></aup-command>
|
|
67
|
+
<aup-separator *ngIf="!action"/>
|
|
68
|
+
</ng-container>
|
|
69
|
+
</aup-tool-bar>
|
|
70
|
+
<ng-container *ngIf="moreActions.length > 0">
|
|
71
|
+
<aup-flex class="flex"/>
|
|
72
|
+
<aup-more-menu>
|
|
73
|
+
<ng-container *ngFor="let action of moreActions">
|
|
74
|
+
<aup-command *ngIf="action"
|
|
75
|
+
#comp
|
|
76
|
+
[command]="action.factory.create(value, {disposedWith: comp})"
|
|
77
|
+
[face]="action.face"></aup-command>
|
|
78
|
+
<aup-separator *ngIf="!action"/>
|
|
79
|
+
</ng-container>
|
|
80
|
+
</aup-more-menu>
|
|
81
|
+
</ng-container>
|
|
82
|
+
`, isInline: true, styles: [":host{display:inline-flex;flex-direction:row;align-items:center}:host:last-child{padding-right:0}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ToolBarComponent, selector: "aup-tool-bar" }, { kind: "component", type: i3.CommandComponent, selector: "aup-command", inputs: ["command", "face$", "face", "busyFace$", "busyFace", "alignFace"] }, { kind: "component", type: i4.MoreMenuComponent, selector: "aup-more-menu", inputs: ["tooltip"] }, { kind: "component", type: i5.SeparatorComponent, selector: "aup-separator" }, { kind: "component", type: i6.FlexComponent, selector: "aup-flex" }] });
|
|
83
|
+
}
|
|
84
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableActionColumnComponent, decorators: [{
|
|
85
|
+
type: Component,
|
|
86
|
+
args: [{ selector: 'aup-table-action-column', template: `
|
|
87
|
+
<aup-tool-bar>
|
|
88
|
+
<ng-container *ngFor="let action of actions">
|
|
89
|
+
<aup-command *ngIf="action"
|
|
90
|
+
#comp
|
|
91
|
+
[command]="action.factory.create(value, {disposedWith: comp})"
|
|
92
|
+
[face]="action.face"></aup-command>
|
|
93
|
+
<aup-separator *ngIf="!action"/>
|
|
94
|
+
</ng-container>
|
|
95
|
+
</aup-tool-bar>
|
|
96
|
+
<ng-container *ngIf="moreActions.length > 0">
|
|
97
|
+
<aup-flex class="flex"/>
|
|
98
|
+
<aup-more-menu>
|
|
99
|
+
<ng-container *ngFor="let action of moreActions">
|
|
100
|
+
<aup-command *ngIf="action"
|
|
101
|
+
#comp
|
|
102
|
+
[command]="action.factory.create(value, {disposedWith: comp})"
|
|
103
|
+
[face]="action.face"></aup-command>
|
|
104
|
+
<aup-separator *ngIf="!action"/>
|
|
105
|
+
</ng-container>
|
|
106
|
+
</aup-more-menu>
|
|
107
|
+
</ng-container>
|
|
108
|
+
`, styles: [":host{display:inline-flex;flex-direction:row;align-items:center}:host:last-child{padding-right:0}\n"] }]
|
|
109
|
+
}], ctorParameters: function () { return []; }, propDecorators: { value: [{
|
|
110
|
+
type: Input
|
|
111
|
+
}], menu: [{
|
|
112
|
+
type: ViewChild,
|
|
113
|
+
args: [MatMenuTrigger]
|
|
114
|
+
}] } });
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYWN0aW9uLWNvbHVtbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy9yZW5kZXJlci90YWJsZS1hY3Rpb24tY29sdW1uL3RhYmxlLWFjdGlvbi1jb2x1bW4uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFeEQsT0FBTyxFQUFXLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTlDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7OztBQUtwRSxNQUFNLFlBQVk7SUFDSztJQUE0QztJQUFqRSxZQUFxQixPQUFpQyxFQUFXLElBQWlCO1FBQTdELFlBQU8sR0FBUCxPQUFPLENBQTBCO1FBQVcsU0FBSSxHQUFKLElBQUksQ0FBYTtJQUNsRixDQUFDO0NBQ0Y7QUFFRDs7R0FFRztBQW1DSCxNQUFNLE9BQU8sMEJBQTZDLFNBQVEsbUJBQW1CO0lBR25GLEtBQUssQ0FBSTtJQUdULElBQUksQ0FBaUI7SUFFWixPQUFPLEdBQXNCLEVBQUUsQ0FBQztJQUNoQyxXQUFXLEdBQXNCLEVBQUUsQ0FBQztJQUU3QyxVQUFVLENBQUMsY0FBd0MsRUFBRSxVQUF1QjtRQUMxRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLFlBQVksQ0FBQyxjQUFjLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0M7UUFDaEQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLE9BQU8sQ0FBQztZQUNOLFVBQVUsQ0FBQyxPQUEyQixFQUFFLElBQWlCO2dCQUN2RCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLFlBQVksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUN6RCxDQUFDO1lBQ0QsWUFBWTtnQkFDVixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM5QixDQUFDO1NBQ0YsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUNEO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDO0lBRUQscUJBQXFCLENBQUMsSUFBcUIsRUFBRSxLQUFRO1FBQ25ELE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFDLFlBQVksRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRTtZQUNyQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRU8sYUFBYTtRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7dUdBN0NVLDBCQUEwQjsyRkFBMUIsMEJBQTBCLGlJQUsxQixjQUFjLHVFQXJDZjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCVDs7MkZBVVUsMEJBQTBCO2tCQWxDdEMsU0FBUzsrQkFDRSx5QkFBeUIsWUFDekI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQlQ7MEVBYUQsS0FBSztzQkFESixLQUFLO2dCQUlOLElBQUk7c0JBREgsU0FBUzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRNZW51VHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuXG5pbXBvcnQgeyBDb21tYW5kLCBEc2wgfSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQgeyBDb21tYW5kRmFjZSB9IGZyb20gJy4uLy4uLy4uL2NvbW1hbmRzL2NvbW1hbmQtZmFjZSc7XG5pbXBvcnQgeyBEaXNwb3NhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZGlzcG9zYWJsZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2VsbFJlbmRlcmVyIH0gZnJvbSAnLi4vY2VsbC1yZW5kZXJlcic7XG5pbXBvcnQgeyBNZW51QnVpbGRlciB9IGZyb20gJy4vbWVudS1idWlsZGVyJztcblxuXG5jbGFzcyBNZW51SXRlbURhdGE8VCBleHRlbmRzIG9iamVjdD4gIHtcbiAgY29uc3RydWN0b3IocmVhZG9ubHkgZmFjdG9yeTogQ29tbWFuZC5GYWN0b3J5PFQsIHZvaWQ+LCByZWFkb25seSBmYWNlOiBDb21tYW5kRmFjZSkge1xuICB9XG59XG5cbi8qKlxuICpcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVwLXRhYmxlLWFjdGlvbi1jb2x1bW4nLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxhdXAtdG9vbC1iYXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgYWN0aW9uc1wiPlxuICAgICAgICA8YXVwLWNvbW1hbmQgKm5nSWY9XCJhY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgI2NvbXBcbiAgICAgICAgICAgICAgICAgICAgIFtjb21tYW5kXT1cImFjdGlvbi5mYWN0b3J5LmNyZWF0ZSh2YWx1ZSwge2Rpc3Bvc2VkV2l0aDogY29tcH0pXCJcbiAgICAgICAgICAgICAgICAgICAgIFtmYWNlXT1cImFjdGlvbi5mYWNlXCI+PC9hdXAtY29tbWFuZD5cbiAgICAgICAgPGF1cC1zZXBhcmF0b3IgKm5nSWY9XCIhYWN0aW9uXCIvPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9hdXAtdG9vbC1iYXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vcmVBY3Rpb25zLmxlbmd0aCA+IDBcIj5cbiAgICAgIDxhdXAtZmxleCBjbGFzcz1cImZsZXhcIi8+XG4gICAgICA8YXVwLW1vcmUtbWVudT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIG1vcmVBY3Rpb25zXCI+XG4gICAgICAgICAgPGF1cC1jb21tYW5kICpuZ0lmPVwiYWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgI2NvbXBcbiAgICAgICAgICAgICAgICAgICAgICAgW2NvbW1hbmRdPVwiYWN0aW9uLmZhY3RvcnkuY3JlYXRlKHZhbHVlLCB7ZGlzcG9zZWRXaXRoOiBjb21wfSlcIlxuICAgICAgICAgICAgICAgICAgICAgICBbZmFjZV09XCJhY3Rpb24uZmFjZVwiPjwvYXVwLWNvbW1hbmQ+XG4gICAgICAgICAgPGF1cC1zZXBhcmF0b3IgKm5nSWY9XCIhYWN0aW9uXCIvPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvYXVwLW1vcmUtbWVudT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgYCxcbiAgc3R5bGVzOiBbYDpob3N0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgfVxuICB9YF1cbn0pXG5leHBvcnQgY2xhc3MgVGFibGVBY3Rpb25Db2x1bW5Db21wb25lbnQ8VCBleHRlbmRzIG9iamVjdD4gZXh0ZW5kcyBEaXNwb3NhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgQ2VsbFJlbmRlcmVyPFQ+LCBNZW51QnVpbGRlcjxUPiB7XG5cbiAgQElucHV0KClcbiAgdmFsdWU6IFQ7XG5cbiAgQFZpZXdDaGlsZChNYXRNZW51VHJpZ2dlcilcbiAgbWVudTogTWF0TWVudVRyaWdnZXI7XG5cbiAgcmVhZG9ubHkgYWN0aW9uczogTWVudUl0ZW1EYXRhPFQ+W10gPSBbXTtcbiAgcmVhZG9ubHkgbW9yZUFjdGlvbnM6IE1lbnVJdGVtRGF0YTxUPltdID0gW107XG5cbiAgYWRkQ29tbWFuZChjb21tYW5kRmFjdG9yeTogQ29tbWFuZC5GYWN0b3J5PFQsIHZvaWQ+LCBwcm9wZXJ0aWVzOiBDb21tYW5kRmFjZSkge1xuICAgIHRoaXMuYWN0aW9ucy5wdXNoKG5ldyBNZW51SXRlbURhdGEoY29tbWFuZEZhY3RvcnksIHByb3BlcnRpZXMpKTtcbiAgfVxuXG4gIGFkZFNlcGFyYXRvcigpIHtcbiAgICB0aGlzLmFjdGlvbnMucHVzaChudWxsKTtcbiAgfVxuXG4gIGFkZE1vcmVNZW51KGJ1aWxkZXI6KG1lbnU6IE1lbnVCdWlsZGVyPFQ+KSA9PiB2b2lkKSB7XG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgYnVpbGRlcih7XG4gICAgICBhZGRDb21tYW5kKGZhY3Rvcnk6IENvbW1hbmQuRmFjdG9yeTxUPiwgZmFjZTogQ29tbWFuZEZhY2Upe1xuICAgICAgICBzZWxmLm1vcmVBY3Rpb25zLnB1c2gobmV3IE1lbnVJdGVtRGF0YShmYWN0b3J5LCBmYWNlKSk7XG4gICAgICB9LFxuICAgICAgYWRkU2VwYXJhdG9yKCkge1xuICAgICAgICBzZWxmLm1vcmVBY3Rpb25zLnB1c2gobnVsbCk7XG4gICAgICB9XG4gICAgfSlcbiAgfVxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgY3JlYXRlTW9yZU1lbnVDb21tYW5kKGl0ZW06IE1lbnVJdGVtRGF0YTxUPiwgdmFsdWU6IFQpOiBDb21tYW5kPHZvaWQ+IHtcbiAgICBjb25zdCB7IHdoZW4gfSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICBjb25zdCBjb21tYW5kID0gaXRlbS5mYWN0b3J5LmNyZWF0ZSh2YWx1ZSwge2Rpc3Bvc2VkV2l0aDogdGhpc30pO1xuICAgIHdoZW4oY29tbWFuZC5idXN5JCkuYmVjb21lc0ZhbHNleSgoKSA9PiB7XG4gICAgICB0aGlzLmNsb3NlTW9yZU1lbnUoKTtcbiAgICB9KTtcbiAgICByZXR1cm4gY29tbWFuZDtcbiAgfVxuXG4gIHByaXZhdGUgY2xvc2VNb3JlTWVudSgpIHtcbiAgICB0aGlzLm1lbnUuY2xvc2VNZW51KCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Component } from "@angular/core";
|
|
2
|
+
import { DelegatingCommand, DelegatingValueModel } from "@coolon/pectin";
|
|
3
|
+
import { POPUP_CONTAINER } from "../../../commands/group/popup-container";
|
|
4
|
+
import { LoadableComponent } from "../../../loadable-component";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class TableCustomMoreMenuPopupComponent extends LoadableComponent {
|
|
7
|
+
_value$ = this.registerDisposable(new DelegatingValueModel());
|
|
8
|
+
_visible$ = this.registerDisposable(new DelegatingValueModel()).withDefault(true);
|
|
9
|
+
_closeCommand = this.registerDisposable(new DelegatingCommand());
|
|
10
|
+
constructor() {
|
|
11
|
+
super();
|
|
12
|
+
this.onInit(() => console.log('init'));
|
|
13
|
+
}
|
|
14
|
+
initialise(row$, closeCommand) {
|
|
15
|
+
this._value$.setDelegate(row$);
|
|
16
|
+
this._closeCommand.setDelegate(closeCommand);
|
|
17
|
+
}
|
|
18
|
+
visibleWhile(condition) {
|
|
19
|
+
this._visible$.setDelegate(condition);
|
|
20
|
+
return this;
|
|
21
|
+
}
|
|
22
|
+
get visible$() {
|
|
23
|
+
return this._visible$.readonly$;
|
|
24
|
+
}
|
|
25
|
+
get closeCommand() {
|
|
26
|
+
return this._closeCommand;
|
|
27
|
+
}
|
|
28
|
+
get value$() {
|
|
29
|
+
return this._value$.readonly$;
|
|
30
|
+
}
|
|
31
|
+
register(comp) {
|
|
32
|
+
// ignored
|
|
33
|
+
}
|
|
34
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableCustomMoreMenuPopupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
35
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: TableCustomMoreMenuPopupComponent, selector: "aup-table-more-menu-popup", providers: [
|
|
36
|
+
{ provide: POPUP_CONTAINER, useValue: TableCustomMoreMenuPopupComponent },
|
|
37
|
+
], usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
38
|
+
}
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableCustomMoreMenuPopupComponent, decorators: [{
|
|
40
|
+
type: Component,
|
|
41
|
+
args: [{ selector: 'aup-table-more-menu-popup', template: '', providers: [
|
|
42
|
+
{ provide: POPUP_CONTAINER, useValue: TableCustomMoreMenuPopupComponent },
|
|
43
|
+
] }]
|
|
44
|
+
}], ctorParameters: function () { return []; } });
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY3VzdG9tLW1vcmUtbWVudS1wb3B1cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy9yZW5kZXJlci90YWJsZS1jdXN0b20tbW9yZS1tZW51L3RhYmxlLWN1c3RvbS1tb3JlLW1lbnUtcG9wdXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFVLGlCQUFpQixFQUFFLG9CQUFvQixFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUYsT0FBTyxFQUFDLGVBQWUsRUFBaUIsTUFBTSx5Q0FBeUMsQ0FBQztBQUN4RixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQzs7QUFVOUQsTUFBTSxPQUFPLGlDQUFxQyxTQUFRLGlCQUFpQjtJQUVqRSxPQUFPLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksb0JBQW9CLEVBQUssQ0FBQyxDQUFBO0lBRXZELFNBQVMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxvQkFBb0IsRUFBVyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNGLGFBQWEsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxpQkFBaUIsRUFBUSxDQUFDLENBQUE7SUFFdkY7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFHRCxVQUFVLENBQUMsSUFBbUIsRUFBRSxZQUEyQjtRQUN6RCxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRVMsWUFBWSxDQUFDLFNBQThCO1FBQ25ELElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUE7SUFDakMsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsUUFBUSxDQUFDLElBQXlCO1FBQ2hDLFVBQVU7SUFDWixDQUFDO3VHQXJDVSxpQ0FBaUM7MkZBQWpDLGlDQUFpQyxvREFKbEM7WUFDUixFQUFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLGlDQUFpQyxFQUFDO1NBQ3hFLGlEQUpTLEVBQUU7OzJGQU1ELGlDQUFpQztrQkFSN0MsU0FBUzsrQkFDRSwyQkFBMkIsWUFDM0IsRUFBRSxhQUVGO3dCQUNSLEVBQUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLG1DQUFtQyxFQUFDO3FCQUN4RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50fSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtDb21tYW5kLCBEZWxlZ2F0aW5nQ29tbWFuZCwgRGVsZWdhdGluZ1ZhbHVlTW9kZWwsIFZhbHVlTW9kZWx9IGZyb20gXCJAY29vbG9uL3BlY3RpblwiO1xuaW1wb3J0IHtQb3B1cEF3YXJlQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vLi4vY29tbWFuZHMvZ3JvdXAvcG9wdXAtYXdhcmUuY29tcG9uZW50XCI7XG5pbXBvcnQge1BPUFVQX0NPTlRBSU5FUiwgUG9wdXBDb250YWluZXJ9IGZyb20gXCIuLi8uLi8uLi9jb21tYW5kcy9ncm91cC9wb3B1cC1jb250YWluZXJcIjtcbmltcG9ydCB7TG9hZGFibGVDb21wb25lbnR9IGZyb20gXCIuLi8uLi8uLi9sb2FkYWJsZS1jb21wb25lbnRcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVwLXRhYmxlLW1vcmUtbWVudS1wb3B1cCcsXG4gIHRlbXBsYXRlOiAnJyxcbiAgc3R5bGVVcmxzOiBbXSxcbiAgcHJvdmlkZXJzOltcbiAgICB7cHJvdmlkZTogUE9QVVBfQ09OVEFJTkVSLCB1c2VWYWx1ZTogVGFibGVDdXN0b21Nb3JlTWVudVBvcHVwQ29tcG9uZW50fSxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUN1c3RvbU1vcmVNZW51UG9wdXBDb21wb25lbnQ8VD4gZXh0ZW5kcyBMb2FkYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIFBvcHVwQ29udGFpbmVyIHtcblxuICBwcml2YXRlIF92YWx1ZSQgPSB0aGlzLnJlZ2lzdGVyRGlzcG9zYWJsZShuZXcgRGVsZWdhdGluZ1ZhbHVlTW9kZWw8VD4oKSlcblxuICBwcml2YXRlIHJlYWRvbmx5IF92aXNpYmxlJCA9IHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKG5ldyBEZWxlZ2F0aW5nVmFsdWVNb2RlbDxib29sZWFuPigpKS53aXRoRGVmYXVsdCh0cnVlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY2xvc2VDb21tYW5kID0gdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUobmV3IERlbGVnYXRpbmdDb21tYW5kPHZvaWQ+KCkpXG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLm9uSW5pdCgoKSA9PiBjb25zb2xlLmxvZygnaW5pdCcpKTtcbiAgfVxuXG5cbiAgaW5pdGlhbGlzZShyb3ckOiBWYWx1ZU1vZGVsPFQ+LCBjbG9zZUNvbW1hbmQ6IENvbW1hbmQ8dm9pZD4pIHtcbiAgICB0aGlzLl92YWx1ZSQuc2V0RGVsZWdhdGUocm93JCk7XG4gICAgdGhpcy5fY2xvc2VDb21tYW5kLnNldERlbGVnYXRlKGNsb3NlQ29tbWFuZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdmlzaWJsZVdoaWxlKGNvbmRpdGlvbjogVmFsdWVNb2RlbDxib29sZWFuPikge1xuICAgIHRoaXMuX3Zpc2libGUkLnNldERlbGVnYXRlKGNvbmRpdGlvbik7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBnZXQgdmlzaWJsZSQoKTogVmFsdWVNb2RlbDxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX3Zpc2libGUkLnJlYWRvbmx5JFxuICB9XG5cbiAgZ2V0IGNsb3NlQ29tbWFuZCgpOiBDb21tYW5kPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5fY2xvc2VDb21tYW5kO1xuICB9XG5cbiAgZ2V0IHZhbHVlJCgpIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWUkLnJlYWRvbmx5JDtcbiAgfVxuXG4gIHJlZ2lzdGVyKGNvbXA6IFBvcHVwQXdhcmVDb21wb25lbnQpIHtcbiAgICAvLyBpZ25vcmVkXG4gIH1cblxuXG5cblxufVxuIl19
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { ComponentPortal } from "@angular/cdk/portal";
|
|
3
|
+
import { Component, HostListener, ViewChild } from "@angular/core";
|
|
4
|
+
import { MatMenuTrigger } from "@angular/material/menu";
|
|
5
|
+
import { Command, DelegatingValueModel, Dsl, MutableValueModel, StoreInValueModel, Trace } from '@coolon/pectin';
|
|
6
|
+
import { DisposableComponent } from "../../../disposable-component";
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/common";
|
|
9
|
+
import * as i2 from "@angular/material/button";
|
|
10
|
+
import * as i3 from "@angular/cdk/portal";
|
|
11
|
+
import * as i4 from "@angular/material/menu";
|
|
12
|
+
import * as i5 from "../../../icon/icon.component";
|
|
13
|
+
export class TableCustomMoreMenuComponent extends DisposableComponent {
|
|
14
|
+
value$ = new MutableValueModel();
|
|
15
|
+
#value_accessor_storage;
|
|
16
|
+
get value() { return this.#value_accessor_storage; }
|
|
17
|
+
set value(value) { this.#value_accessor_storage = value; }
|
|
18
|
+
matMenuTrigger;
|
|
19
|
+
popupType$ = new MutableValueModel();
|
|
20
|
+
popupComponentPortal$;
|
|
21
|
+
_visible$ = this.registerDisposable(new DelegatingValueModel());
|
|
22
|
+
initialiseCallback;
|
|
23
|
+
constructor() {
|
|
24
|
+
super();
|
|
25
|
+
const { chain } = Dsl.disposeWith(this);
|
|
26
|
+
this.popupComponentPortal$ = chain(this.popupType$).map(type => new ComponentPortal(type));
|
|
27
|
+
}
|
|
28
|
+
configurePopupComponentType(popupComponentType, configureCallback) {
|
|
29
|
+
this.popupType$.value = popupComponentType;
|
|
30
|
+
this.initialiseCallback = configureCallback;
|
|
31
|
+
}
|
|
32
|
+
// Stops tree selection when clicking the menu button
|
|
33
|
+
preventDefault($event) {
|
|
34
|
+
$event.preventDefault();
|
|
35
|
+
$event.stopPropagation();
|
|
36
|
+
}
|
|
37
|
+
initialise($event) {
|
|
38
|
+
const component = $event.instance;
|
|
39
|
+
component.initialise(this.value$, Command.create(() => this.matMenuTrigger.closeMenu()));
|
|
40
|
+
this._visible$.setDelegate(component.visible$);
|
|
41
|
+
if (this.initialiseCallback) {
|
|
42
|
+
this.initialiseCallback(component);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
get visible$() {
|
|
46
|
+
return this._visible$.readonly$;
|
|
47
|
+
}
|
|
48
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableCustomMoreMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
49
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: TableCustomMoreMenuComponent, selector: "aup-table-custom-more-menu", host: { listeners: { "click": "preventDefault($event)" } }, viewQueries: [{ propertyName: "matMenuTrigger", first: true, predicate: MatMenuTrigger, descendants: true }], usesInheritance: true, ngImport: i0, template: "<mat-menu #menu=\"matMenu\" xPosition=\"before\">\n <ng-template matMenuContent [cdkPortalOutlet]=\"popupComponentPortal$.value\" (attached)=\"initialise($event)\"></ng-template>\n</mat-menu>\n\n<button mat-icon-button [matMenuTriggerFor]=\"menu\" data-cy=\"more-menu-trigger\" *ngIf=\"visible$.value\">\n <aup-icon icon=\"mat:more_vert\"></aup-icon>\n</button>\n", styles: [":host{display:inline;text-align:end}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i4.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "directive", type: i4.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i5.IconComponent, selector: "aup-icon", inputs: ["icon"] }] });
|
|
50
|
+
}
|
|
51
|
+
__decorate([
|
|
52
|
+
StoreInValueModel(),
|
|
53
|
+
__metadata("design:type", Object)
|
|
54
|
+
], TableCustomMoreMenuComponent.prototype, "value", null);
|
|
55
|
+
__decorate([
|
|
56
|
+
Trace(),
|
|
57
|
+
__metadata("design:type", Function),
|
|
58
|
+
__metadata("design:paramtypes", [Object]),
|
|
59
|
+
__metadata("design:returntype", void 0)
|
|
60
|
+
], TableCustomMoreMenuComponent.prototype, "initialise", null);
|
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableCustomMoreMenuComponent, decorators: [{
|
|
62
|
+
type: Component,
|
|
63
|
+
args: [{ selector: "aup-table-custom-more-menu", template: "<mat-menu #menu=\"matMenu\" xPosition=\"before\">\n <ng-template matMenuContent [cdkPortalOutlet]=\"popupComponentPortal$.value\" (attached)=\"initialise($event)\"></ng-template>\n</mat-menu>\n\n<button mat-icon-button [matMenuTriggerFor]=\"menu\" data-cy=\"more-menu-trigger\" *ngIf=\"visible$.value\">\n <aup-icon icon=\"mat:more_vert\"></aup-icon>\n</button>\n", styles: [":host{display:inline;text-align:end}\n"] }]
|
|
64
|
+
}], ctorParameters: function () { return []; }, propDecorators: { value: [], matMenuTrigger: [{
|
|
65
|
+
type: ViewChild,
|
|
66
|
+
args: [MatMenuTrigger]
|
|
67
|
+
}], preventDefault: [{
|
|
68
|
+
type: HostListener,
|
|
69
|
+
args: ["click", ["$event"]]
|
|
70
|
+
}], initialise: [] } });
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY3VzdG9tLW1vcmUtbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy9yZW5kZXJlci90YWJsZS1jdXN0b20tbW9yZS1tZW51L3RhYmxlLWN1c3RvbS1tb3JlLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvcmVuZGVyZXIvdGFibGUtY3VzdG9tLW1vcmUtbWVudS90YWJsZS1jdXN0b20tbW9yZS1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQTZCLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ2hGLE9BQU8sRUFBQyxTQUFTLEVBQWdCLFlBQVksRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFDTCxPQUFPLEVBQ1Asb0JBQW9CLEVBQ3BCLEdBQUcsRUFDSCxpQkFBaUIsRUFDakIsaUJBQWlCLEVBQUUsS0FBSyxFQUV6QixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLCtCQUErQixDQUFDOzs7Ozs7O0FBVWxFLE1BQU0sT0FBTyw0QkFBZ0MsU0FBUSxtQkFBbUI7SUFHOUQsTUFBTSxHQUFHLElBQUksaUJBQWlCLEVBQUssQ0FBQztJQUduQyx3QkFBUztJQUFULElBQUEsS0FBSywyQ0FBSTtJQUFULElBQUEsS0FBSyxpREFBSTtJQUdsQixjQUFjLENBQWlCO0lBRWQsVUFBVSxHQUFHLElBQUksaUJBQWlCLEVBQXVELENBQUM7SUFFM0cscUJBQXFCLENBQXlFO0lBRTdFLFNBQVMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxvQkFBb0IsRUFBVyxDQUFDLENBQUM7SUFDbEYsa0JBQWtCLENBQTZEO0lBRXZGO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFDUixNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzdGLENBQUM7SUFFRCwyQkFBMkIsQ0FBQyxrQkFBdUUsRUFBRSxpQkFBNEU7UUFDL0ssSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsa0JBQWtCLENBQUM7UUFDM0MsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGlCQUFpQixDQUFDO0lBQzlDLENBQUM7SUFFRCxxREFBcUQ7SUFFckQsY0FBYyxDQUFDLE1BQWtCO1FBQy9CLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN4QixNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUdELFVBQVUsQ0FBQyxNQUFrQztRQUMzQyxNQUFNLFNBQVMsR0FBSSxNQUE2RCxDQUFDLFFBQVEsQ0FBQztRQUMxRixTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN6RixJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0MsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDM0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ3BDO0lBQ0gsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUM7SUFDbEMsQ0FBQzt1R0FoRFUsNEJBQTRCOzJGQUE1Qiw0QkFBNEIsOEtBUTVCLGNBQWMsdUVDOUIzQiwrV0FPQTs7QURxQlc7SUFEUixpQkFBaUIsRUFBRTs7eURBQ0Y7QUErQmxCO0lBREMsS0FBSyxFQUFFOzs7OzhEQVFQOzJGQTVDVSw0QkFBNEI7a0JBTHhDLFNBQVM7K0JBQ0UsNEJBQTRCOzBFQVU3QixLQUFLLE1BR2QsY0FBYztzQkFEYixTQUFTO3VCQUFDLGNBQWM7Z0JBdUJ6QixjQUFjO3NCQURiLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQU9qQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDZGtQb3J0YWxPdXRsZXRBdHRhY2hlZFJlZiwgQ29tcG9uZW50UG9ydGFsfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BvcnRhbFwiO1xuaW1wb3J0IHtDb21wb25lbnQsIENvbXBvbmVudFJlZiwgSG9zdExpc3RlbmVyLCBWaWV3Q2hpbGR9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge01hdE1lbnVUcmlnZ2VyfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudVwiO1xuaW1wb3J0IHtcbiAgQ29tbWFuZCxcbiAgRGVsZWdhdGluZ1ZhbHVlTW9kZWwsXG4gIERzbCxcbiAgTXV0YWJsZVZhbHVlTW9kZWwsXG4gIFN0b3JlSW5WYWx1ZU1vZGVsLCBUcmFjZSxcbiAgVmFsdWVNb2RlbENoYWluXG59IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7Q29uc3RydWN0YWJsZX0gZnJvbSBcIkBjb29sb24vdHlwZXNjcmlwdC11dGlsaXRpZXNcIjtcbmltcG9ydCB7RGlzcG9zYWJsZUNvbXBvbmVudH0gZnJvbSBcIi4uLy4uLy4uL2Rpc3Bvc2FibGUtY29tcG9uZW50XCI7XG5pbXBvcnQge0xvYWRhYmxlQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vLi4vbG9hZGFibGUtY29tcG9uZW50XCI7XG5pbXBvcnQge0NlbGxSZW5kZXJlcn0gZnJvbSBcIi4uL2NlbGwtcmVuZGVyZXJcIjtcbmltcG9ydCB7VGFibGVDdXN0b21Nb3JlTWVudVBvcHVwQ29tcG9uZW50fSBmcm9tIFwiLi90YWJsZS1jdXN0b20tbW9yZS1tZW51LXBvcHVwLmNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiYXVwLXRhYmxlLWN1c3RvbS1tb3JlLW1lbnVcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi90YWJsZS1jdXN0b20tbW9yZS1tZW51LmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi90YWJsZS1jdXN0b20tbW9yZS1tZW51LmNvbXBvbmVudC5zY3NzXCJdXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ3VzdG9tTW9yZU1lbnVDb21wb25lbnQ8VD4gZXh0ZW5kcyBEaXNwb3NhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgQ2VsbFJlbmRlcmVyPFQ+IHtcblxuXG4gIHByaXZhdGUgdmFsdWUkID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsPFQ+KCk7XG5cbiAgQFN0b3JlSW5WYWx1ZU1vZGVsKClcbiAgYWNjZXNzb3IgdmFsdWU6IFQ7XG5cbiAgQFZpZXdDaGlsZChNYXRNZW51VHJpZ2dlcilcbiAgbWF0TWVudVRyaWdnZXI6IE1hdE1lbnVUcmlnZ2VyO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcG9wdXBUeXBlJCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxDb25zdHJ1Y3RhYmxlPFRhYmxlQ3VzdG9tTW9yZU1lbnVQb3B1cENvbXBvbmVudDxUPj4+KCk7XG5cbiAgcG9wdXBDb21wb25lbnRQb3J0YWwkOiBWYWx1ZU1vZGVsQ2hhaW48Q29tcG9uZW50UG9ydGFsPFRhYmxlQ3VzdG9tTW9yZU1lbnVQb3B1cENvbXBvbmVudDxUPj4+O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3Zpc2libGUkID0gdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUobmV3IERlbGVnYXRpbmdWYWx1ZU1vZGVsPGJvb2xlYW4+KCkpO1xuICBwcml2YXRlIGluaXRpYWxpc2VDYWxsYmFjaz86IChjb21wb25lbnQ6IFRhYmxlQ3VzdG9tTW9yZU1lbnVQb3B1cENvbXBvbmVudDxUPikgPT4gdm9pZDtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIGNvbnN0IHsgY2hhaW4gfSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICB0aGlzLnBvcHVwQ29tcG9uZW50UG9ydGFsJCA9IGNoYWluKHRoaXMucG9wdXBUeXBlJCkubWFwKHR5cGUgPT4gbmV3IENvbXBvbmVudFBvcnRhbCh0eXBlKSk7XG4gIH1cblxuICBjb25maWd1cmVQb3B1cENvbXBvbmVudFR5cGUocG9wdXBDb21wb25lbnRUeXBlOiBDb25zdHJ1Y3RhYmxlPFRhYmxlQ3VzdG9tTW9yZU1lbnVQb3B1cENvbXBvbmVudDxUPj4sIGNvbmZpZ3VyZUNhbGxiYWNrPzogKGNvbXBvbmVudDpUYWJsZUN1c3RvbU1vcmVNZW51UG9wdXBDb21wb25lbnQ8VD4pID0+IHZvaWQpIHtcbiAgICB0aGlzLnBvcHVwVHlwZSQudmFsdWUgPSBwb3B1cENvbXBvbmVudFR5cGU7XG4gICAgdGhpcy5pbml0aWFsaXNlQ2FsbGJhY2sgPSBjb25maWd1cmVDYWxsYmFjaztcbiAgfVxuXG4gIC8vIFN0b3BzIHRyZWUgc2VsZWN0aW9uIHdoZW4gY2xpY2tpbmcgdGhlIG1lbnUgYnV0dG9uXG4gIEBIb3N0TGlzdGVuZXIoXCJjbGlja1wiLCBbXCIkZXZlbnRcIl0pXG4gIHByZXZlbnREZWZhdWx0KCRldmVudDogTW91c2VFdmVudCkge1xuICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIEBUcmFjZSgpXG4gIGluaXRpYWxpc2UoJGV2ZW50OiBDZGtQb3J0YWxPdXRsZXRBdHRhY2hlZFJlZikge1xuICAgIGNvbnN0IGNvbXBvbmVudCA9ICgkZXZlbnQgYXMgQ29tcG9uZW50UmVmPFRhYmxlQ3VzdG9tTW9yZU1lbnVQb3B1cENvbXBvbmVudDxUPj4pLmluc3RhbmNlO1xuICAgIGNvbXBvbmVudC5pbml0aWFsaXNlKHRoaXMudmFsdWUkLCBDb21tYW5kLmNyZWF0ZSgoKSA9PiB0aGlzLm1hdE1lbnVUcmlnZ2VyLmNsb3NlTWVudSgpKSk7XG4gICAgdGhpcy5fdmlzaWJsZSQuc2V0RGVsZWdhdGUoY29tcG9uZW50LnZpc2libGUkKTtcbiAgICBpZiAodGhpcy5pbml0aWFsaXNlQ2FsbGJhY2spIHtcbiAgICAgIHRoaXMuaW5pdGlhbGlzZUNhbGxiYWNrKGNvbXBvbmVudCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHZpc2libGUkKCkge1xuICAgIHJldHVybiB0aGlzLl92aXNpYmxlJC5yZWFkb25seSQ7XG4gIH1cblxufVxuIiwiPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiIHhQb3NpdGlvbj1cImJlZm9yZVwiPlxuICA8bmctdGVtcGxhdGUgbWF0TWVudUNvbnRlbnQgW2Nka1BvcnRhbE91dGxldF09XCJwb3B1cENvbXBvbmVudFBvcnRhbCQudmFsdWVcIiAoYXR0YWNoZWQpPVwiaW5pdGlhbGlzZSgkZXZlbnQpXCI+PC9uZy10ZW1wbGF0ZT5cbjwvbWF0LW1lbnU+XG5cbjxidXR0b24gbWF0LWljb24tYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCIgZGF0YS1jeT1cIm1vcmUtbWVudS10cmlnZ2VyXCIgKm5nSWY9XCJ2aXNpYmxlJC52YWx1ZVwiPlxuICA8YXVwLWljb24gaWNvbj1cIm1hdDptb3JlX3ZlcnRcIj48L2F1cC1pY29uPlxuPC9idXR0b24+XG4iXX0=
|