@elderbyte/ngx-starter 15.19.2 → 15.19.3
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/esm2020/lib/components/data-view/master-detail/elder-detail-dialog/elder-detail-dialog.component.mjs +9 -7
- package/esm2020/lib/components/data-view/master-detail/elder-detail.directive.mjs +18 -7
- package/esm2020/lib/components/data-view/master-detail/elder-master-activation.directive.mjs +4 -5
- package/esm2020/lib/components/data-view/master-detail/elder-master-detail-mode.mjs +2 -6
- package/esm2020/lib/components/data-view/master-detail/elder-master-detail.component.mjs +14 -8
- package/esm2020/lib/components/data-view/master-detail/elder-master-detail.module.mjs +2 -2
- package/esm2020/lib/components/data-view/master-detail/elder-master-detail.service.mjs +28 -13
- package/esm2020/lib/components/data-view/master-detail/master-detail-activation-event.mjs +12 -0
- package/esm2020/lib/components/data-view/table/activation/elder-activation-context.mjs +1 -1
- package/esm2020/lib/components/data-view/table/activation/elder-table-activation.directive.mjs +7 -7
- package/esm2020/lib/components/data-view/table/activation/item-activation-event.mjs +8 -0
- package/esm2020/lib/components/data-view/table/activation/public_api.mjs +2 -2
- package/fesm2015/elderbyte-ngx-starter.mjs +74 -48
- package/fesm2015/elderbyte-ngx-starter.mjs.map +1 -1
- package/fesm2020/elderbyte-ngx-starter.mjs +74 -47
- package/fesm2020/elderbyte-ngx-starter.mjs.map +1 -1
- package/lib/components/data-view/master-detail/elder-detail.directive.d.ts +9 -2
- package/lib/components/data-view/master-detail/elder-master-detail-mode.d.ts +1 -4
- package/lib/components/data-view/master-detail/elder-master-detail.component.d.ts +1 -1
- package/lib/components/data-view/master-detail/elder-master-detail.module.d.ts +1 -1
- package/lib/components/data-view/master-detail/elder-master-detail.service.d.ts +21 -5
- package/lib/components/data-view/master-detail/master-detail-activation-event.d.ts +8 -0
- package/lib/components/data-view/table/activation/elder-activation-context.d.ts +2 -2
- package/lib/components/data-view/table/activation/elder-table-activation.directive.d.ts +5 -5
- package/lib/components/data-view/table/activation/{active-item-event.d.ts → item-activation-event.d.ts} +2 -3
- package/lib/components/data-view/table/activation/public_api.d.ts +1 -1
- package/package.json +1 -1
- package/esm2020/lib/components/data-view/master-detail/elder-master-detail-activation-event.mjs +0 -12
- package/esm2020/lib/components/data-view/table/activation/active-item-event.mjs +0 -9
- package/lib/components/data-view/master-detail/elder-master-detail-activation-event.d.ts +0 -8
package/esm2020/lib/components/data-view/table/activation/elder-table-activation.directive.mjs
CHANGED
|
@@ -3,7 +3,7 @@ import { LoggerFactory } from '@elderbyte/ts-logger';
|
|
|
3
3
|
import { filter, map, switchMap, takeUntil, tap } from 'rxjs/operators';
|
|
4
4
|
import { BehaviorSubject, combineLatest, Subject } from 'rxjs';
|
|
5
5
|
import { ItemActivationOptions } from './item-activation-options';
|
|
6
|
-
import {
|
|
6
|
+
import { ItemActivationEvent } from './item-activation-event';
|
|
7
7
|
import { ActivationEventSource } from './activation-event-source';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
import * as i1 from "../elder-table/elder-table.component";
|
|
@@ -22,11 +22,11 @@ export class ElderTableActivationDirective {
|
|
|
22
22
|
**************************************************************************/
|
|
23
23
|
this.logger = LoggerFactory.getLogger(this.constructor.name);
|
|
24
24
|
this.destroy$ = new Subject();
|
|
25
|
-
this.
|
|
26
|
-
this.activeItemEvent$ = new Subject();
|
|
27
|
-
this.activationOptions = {};
|
|
25
|
+
this.itemActivationEventSubject = new Subject();
|
|
28
26
|
this._data = [];
|
|
27
|
+
this.activeItem$ = new BehaviorSubject(null);
|
|
29
28
|
this.rows$ = new BehaviorSubject([]);
|
|
29
|
+
this.activationOptions = {};
|
|
30
30
|
}
|
|
31
31
|
/***************************************************************************
|
|
32
32
|
* *
|
|
@@ -88,7 +88,7 @@ export class ElderTableActivationDirective {
|
|
|
88
88
|
* *
|
|
89
89
|
**************************************************************************/
|
|
90
90
|
get activeItemEventChange() {
|
|
91
|
-
return this.
|
|
91
|
+
return this.itemActivationEventSubject;
|
|
92
92
|
}
|
|
93
93
|
get activeItemChange() {
|
|
94
94
|
return this.activeItem$;
|
|
@@ -135,7 +135,7 @@ export class ElderTableActivationDirective {
|
|
|
135
135
|
* *
|
|
136
136
|
**************************************************************************/
|
|
137
137
|
updateActiveItem(item, options) {
|
|
138
|
-
this.
|
|
138
|
+
this.itemActivationEventSubject.next(new ItemActivationEvent(item, options.source, options.focus));
|
|
139
139
|
if (item !== this.activeItem) {
|
|
140
140
|
this.activeItem$.next(item);
|
|
141
141
|
this.logger.debug('Set active item to ', item);
|
|
@@ -296,4 +296,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
296
296
|
}], activeItem: [{
|
|
297
297
|
type: Input
|
|
298
298
|
}] } });
|
|
299
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdGFibGUtYWN0aXZhdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy90YWJsZS9hY3RpdmF0aW9uL2VsZGVyLXRhYmxlLWFjdGl2YXRpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxHQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hHLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRCxPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFjLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUd6RSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7OztBQU9oRSxNQUFNLE9BQU8sNkJBQTZCO0lBdUJ4Qzs7OztnRkFJNEU7SUFFNUUsWUFDbUIsVUFBK0I7UUFBL0IsZUFBVSxHQUFWLFVBQVUsQ0FBcUI7UUE1QmxEOzs7O29GQUk0RTtRQUUzRCxXQUFNLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXhELGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRWhDLGdCQUFXLEdBQUcsSUFBSSxlQUFlLENBQUksSUFBSSxDQUFDLENBQUM7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QzthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUM7OzBIQWhWVSw2QkFBNkI7OEdBQTdCLDZCQUE2QjsyRkFBN0IsNkJBQTZCO2tCQUp6QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQ0FBbUM7b0JBQzdDLFFBQVEsRUFBRSxzQkFBc0I7aUJBQ2pDOzBHQWtCUSxpQkFBaUI7c0JBRHZCLEtBQUs7dUJBQUMsc0JBQXNCO2dCQTBFdEIsU0FBUztzQkFEZixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFpQ3hCLHFCQUFxQjtzQkFEL0IsTUFBTTtnQkFNSSxnQkFBZ0I7c0JBRDFCLE1BQU07Z0JBVUksVUFBVTtzQkFEcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge0VsZGVyVGFibGVSb3dEaXJlY3RpdmV9IGZyb20gJy4uL2VsZGVyLXRhYmxlLXJvdy5kaXJlY3RpdmUnO1xuaW1wb3J0IHtmaWx0ZXIsIG1hcCwgc3dpdGNoTWFwLCB0YWtlVW50aWwsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtFbGRlclRhYmxlQ29tcG9uZW50fSBmcm9tICcuLi9lbGRlci10YWJsZS9lbGRlci10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHtFbGRlclRhYmxlQWN0aXZhdGlvbk9wdGlvbnN9IGZyb20gJy4vZWxkZXItdGFibGUtYWN0aXZhdGlvbi1vcHRpb25zJztcbmltcG9ydCB7SXRlbUFjdGl2YXRpb25PcHRpb25zfSBmcm9tICcuL2l0ZW0tYWN0aXZhdGlvbi1vcHRpb25zJztcbmltcG9ydCB7QWN0aXZlSXRlbUV2ZW50fSBmcm9tICcuL2FjdGl2ZS1pdGVtLWV2ZW50JztcbmltcG9ydCB7QWN0aXZhdGlvbkV2ZW50U291cmNlfSBmcm9tICcuL2FjdGl2YXRpb24tZXZlbnQtc291cmNlJztcbmltcG9ydCB7RWxkZXJBY3RpdmF0aW9uQ29udGV4dH0gZnJvbSAnLi9lbGRlci1hY3RpdmF0aW9uLWNvbnRleHQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdlbGRlci10YWJsZVtlbGRlclRhYmxlQWN0aXZhdGlvbl0nLFxuICBleHBvcnRBczogJ2VsZGVyVGFibGVBY3RpdmF0aW9uJ1xufSlcbmV4cG9ydCBjbGFzcyBFbGRlclRhYmxlQWN0aXZhdGlvbkRpcmVjdGl2ZTxUPiBpbXBsZW1lbnRzIEVsZGVyQWN0aXZhdGlvbkNvbnRleHQ8VD4sIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXIgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHB1YmxpYyByZWFkb25seSBhY3RpdmVJdGVtJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VD4obnVsbCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBhY3RpdmVJdGVtRXZlbnQkID0gbmV3IFN1YmplY3Q8QWN0aXZlSXRlbUV2ZW50PFQ+PigpO1xuXG4gIEBJbnB1dCgnZWxkZXJUYWJsZUFjdGl2YXRpb24nKVxuICBwdWJsaWMgYWN0aXZhdGlvbk9wdGlvbnM6IEVsZGVyVGFibGVBY3RpdmF0aW9uT3B0aW9ucyA9IHt9O1xuXG4gIHByaXZhdGUgX2RhdGE6IFRbXSA9IFtdO1xuXG4gIHB1YmxpYyByZWFkb25seSByb3dzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RWxkZXJUYWJsZVJvd0RpcmVjdGl2ZTxUPltdPihbXSk7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGRlclRhYmxlOiBFbGRlclRhYmxlQ29tcG9uZW50XG4gICkge1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIExpZmUgQ3ljbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcblxuICAgIGNvbnN0IHJvd3MkID0gdGhpcy5lbGRlclRhYmxlLnJvd3MkO1xuICAgIGNvbnN0IGRhdGEkID0gdGhpcy5lbGRlclRhYmxlLmRhdGFDb250ZXh0JC5waXBlKFxuICAgICAgc3dpdGNoTWFwKGRjID0+IGRjLmRhdGEpLFxuICAgICAgdGFwKGRhdGEgPT4gdGhpcy5fZGF0YSA9IGRhdGEpXG4gICAgKTsrXG5cbiAgICBjb21iaW5lTGF0ZXN0KFtyb3dzJCwgZGF0YSRdKS5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgKS5zdWJzY3JpYmUoXG4gICAgICAoW3Jvd3MsIGRhdGFdKSA9PiB7XG4gICAgICAgIHRoaXMucm93cyQubmV4dChcbiAgICAgICAgICB0aGlzLnJvd0RhdGFVcGRhdGVkKHJvd3MsIGRhdGEpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuaGFuZGxlQXV0b0FjdGl2YXRpb25zKCk7XG4gICAgICB9XG4gICAgKTtcblxuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMucm93cyQsIHRoaXMuYWN0aXZlSXRlbSRdKS5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgKS5zdWJzY3JpYmUoXG4gICAgICAoW3Jvd3MsIGFjdGl2ZUl0ZW1dKSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlUm93c0FjdGl2YXRpb24ocm93cywgYWN0aXZlSXRlbSk7XG4gICAgICB9XG4gICAgKTtcblxuICAgIHRoaXMuZWxkZXJUYWJsZS5kYXRhQ29udGV4dCQucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgIG1hcChkYyA9PiBkYy5kYXRhU291cmNlKSxcbiAgICAgIHN3aXRjaE1hcChkcyA9PiBkcy5kYXRhQ2hhbmdlZCksXG4gICAgICBmaWx0ZXIoZXZlbnQgPT4gZXZlbnQuZGVsZXRlZElkcz8ubGVuZ3RoID4gMClcbiAgICApLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiBkZWxldGVFdmVudCA9PiB7XG4gICAgICAgICBkZWxldGVFdmVudC5kZWxldGVkSWRzLmZvckVhY2goaWQgPT4gdGhpcy5kZWFjdGl2YXRlQnlJZChpZCkpXG4gICAgICB9fSlcbiAgfVxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIC8vIHRoaXMuZWxkZXJUYWJsZS5yb3dzJC5nZXRWYWx1ZSgpLmZvckVhY2gociA9PiByLmJpbmRUYWJsZUFjdGl2YXRpb24obnVsbCkpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLlxuICAgKiBIb3N0IExpc3RlbmVycyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgbGV0IG5ld0FjdGl2ZUl0ZW06IFQ7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgIG5ld0FjdGl2ZUl0ZW0gPSB0aGlzLm5leHRSb3dJdGVtKCk7XG4gICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdBcnJvd1VwJykge1xuICAgICAgbmV3QWN0aXZlSXRlbSA9IHRoaXMucHJldmlvdXNSb3dJdGVtKCk7XG4gICAgfVxuXG4gICAgaWYgKG5ld0FjdGl2ZUl0ZW0pIHtcbiAgICAgIHRoaXMuYWN0aXZhdGVBbmRGb2N1cyhuZXdBY3RpdmVJdGVtKTtcbiAgICB9XG5cbiAgICBjb25zdCBhY3RpdmUgPSB0aGlzLmFjdGl2ZUl0ZW07XG4gICAgaWYgKGFjdGl2ZSkge1xuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICB0aGlzLmVsZGVyVGFibGUub25JdGVtQ2xpY2soYWN0aXZlKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ1NwYWNlYmFyJyB8fCBldmVudC5rZXkgPT09ICcgJykge1xuICAgICAgICB0aGlzLmVsZGVyVGFibGUuc2VsZWN0aW9uTW9kZWwudG9nZ2xlKGFjdGl2ZSk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBnZXQgYWN0aXZlSXRlbUV2ZW50Q2hhbmdlKCk6IE9ic2VydmFibGU8QWN0aXZlSXRlbUV2ZW50PFQ+PiB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlSXRlbUV2ZW50JDtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZ2V0IGFjdGl2ZUl0ZW1DaGFuZ2UoKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlSXRlbSQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFjdGl2ZUl0ZW0oKTogVCB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlSXRlbSQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgYWN0aXZlSXRlbShpdGVtOiBUKSB7XG4gICAgdGhpcy5hY3RpdmF0ZShpdGVtLCBuZXcgSXRlbUFjdGl2YXRpb25PcHRpb25zKEFjdGl2YXRpb25FdmVudFNvdXJjZS5TWVNURU0sIHRydWUpKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBhY3RpdmF0ZShpdGVtOiBULCBvcHRpb25zOiBJdGVtQWN0aXZhdGlvbk9wdGlvbnMpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZUFjdGl2ZUl0ZW0oaXRlbSwgb3B0aW9ucyk7XG4gIH1cblxuICBwdWJsaWMgYWN0aXZhdGVBbmRGb2N1cyhpdGVtOiBUKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmF0ZShpdGVtLCBuZXcgSXRlbUFjdGl2YXRpb25PcHRpb25zKEFjdGl2YXRpb25FdmVudFNvdXJjZS5TWVNURU0sIHRydWUpKVxuICB9XG5cbiAgcHVibGljIGlzSXRlbUFjdGl2ZShpdGVtOiBUKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuYWN0aXZlSXRlbSkge1xuICAgICAgcmV0dXJuIHRoaXMuaXRlbUVxdWFscyh0aGlzLmFjdGl2ZUl0ZW0sIGl0ZW0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhhc0l0ZW1Gb2N1cyhpdGVtOiBUKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgcm93ID0gdGhpcy5nZXRSb3dGb3JJdGVtKGl0ZW0pO1xuICAgIHJldHVybiByb3c/Lmhhc0ZvY3VzO1xuICB9XG5cbiAgcHVibGljIG5leHRDbG9zZVRvKGFjdGl2ZTogVCk6IFQge1xuICAgIGNvbnN0IG5leHQgPSB0aGlzLm5leHRSb3dJdGVtKCk7XG4gICAgaWYgKG5leHQgIT09IGFjdGl2ZSkge1xuICAgICAgcmV0dXJuIG5leHQ7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnByZXZpb3VzUm93SXRlbSgpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSB1cGRhdGVBY3RpdmVJdGVtKGl0ZW06IFQsIG9wdGlvbnM6IEl0ZW1BY3RpdmF0aW9uT3B0aW9ucykge1xuICAgIHRoaXMuYWN0aXZlSXRlbUV2ZW50JC5uZXh0KG5ldyBBY3RpdmVJdGVtRXZlbnQoaXRlbSwgb3B0aW9ucy5zb3VyY2UsIG9wdGlvbnMuZm9jdXMsIGZhbHNlKSlcbiAgICBpZiAoaXRlbSAhPT0gdGhpcy5hY3RpdmVJdGVtKSB7XG4gICAgICB0aGlzLmFjdGl2ZUl0ZW0kLm5leHQoaXRlbSk7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnU2V0IGFjdGl2ZSBpdGVtIHRvICcsIGl0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUm93c0FjdGl2YXRpb24ocm93czogRWxkZXJUYWJsZVJvd0RpcmVjdGl2ZTxUPltdLCBhY3RpdmVJdGVtOiBUKTogdm9pZCB7XG4gICAgY29uc3QgYWN0aXZlSWQgPSB0aGlzLmdldElkKGFjdGl2ZUl0ZW0pO1xuICAgIHJvd3MuZm9yRWFjaChyb3cgPT4ge1xuICAgICAgdGhpcy51cGRhdGVSb3dBY3RpdmF0aW9uKHJvdywgYWN0aXZlSWQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVSb3dBY3RpdmF0aW9uKHJvdzogRWxkZXJUYWJsZVJvd0RpcmVjdGl2ZTxUPiwgYWN0aXZlSWQ6IGFueSk6IHZvaWQge1xuICAgIGlmIChyb3cubW9kZWwpIHtcbiAgICAgIGlmICh0aGlzLml0ZW1FcXVhbHNJZChyb3cubW9kZWwsIGFjdGl2ZUlkKSkge1xuICAgICAgICBpZiAoIXJvdy5hY3RpdmF0ZWQpIHtcbiAgICAgICAgICByb3cuYWN0aXZhdGVkID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnQWN0aXZhdGVkIHJvdzogJywgcm93KTtcbiAgICAgICAgICBpZiAoIXJvdy5oYXNGb2N1cykge1xuICAgICAgICAgICAgcm93LmJyaW5nVG9WaWV3KCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByb3cuYWN0aXZhdGVkID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJvdy5hY3RpdmF0ZWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJvd0RhdGFVcGRhdGVkKFxuICAgIHJvd3M6IEVsZGVyVGFibGVSb3dEaXJlY3RpdmU8VD5bXSxcbiAgICBkYXRhOiBUW11cbiAgKTogRWxkZXJUYWJsZVJvd0RpcmVjdGl2ZTxUPltdIHtcbiAgICAvLyB0aGlzLmxvZ2dlci5kZWJ1ZygnRm91bmQgcm93czonLCByb3dzKTtcbiAgICByb3dzLmZvckVhY2gocm93ID0+IHtcbiAgICAgIHJvdy5iaW5kVGFibGVBY3RpdmF0aW9uKHRoaXMpO1xuICAgIH0pO1xuICAgIHJldHVybiByb3dzO1xuICB9XG5cblxuICBwcml2YXRlIGRlYWN0aXZhdGVCeUlkKGlkOiBhbnkpIHtcbiAgICBjb25zdCBhY3RpdmUgPSB0aGlzLmFjdGl2ZUl0ZW0kLmdldFZhbHVlKCk7XG4gICAgaWYgKGFjdGl2ZSkge1xuICAgICAgY29uc3QgYWN0aXZlSWQgPSB0aGlzLmdldElkKGFjdGl2ZSk7XG4gICAgICBpZiAoYWN0aXZlSWQgPT0gaWQpIHtcbiAgICAgICAgdGhpcy5hY3RpdmF0ZShudWxsLCBuZXcgSXRlbUFjdGl2YXRpb25PcHRpb25zKEFjdGl2YXRpb25FdmVudFNvdXJjZS5TWVNURU0sIGZhbHNlKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRSb3dGb3JJdGVtKGl0ZW06IFQpOiBFbGRlclRhYmxlUm93RGlyZWN0aXZlPFQ+IHwgbnVsbCB7XG4gICAgY29uc3Qgcm93cyA9IHRoaXMucm93cyQuZ2V0VmFsdWUoKTtcbiAgICByZXR1cm4gcm93cy5maW5kKHIgPT4gci5tb2RlbCA9PT0gaXRlbSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUF1dG9BY3RpdmF0aW9ucygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaGFzQWN0aXZlSXRlbSB8fCB0aGlzLmFjdGl2YXRpb25PcHRpb25zLm1vZGUgPT09ICdhbHdheXMnKSB7XG4gICAgICBzd2l0Y2ggKHRoaXMuYWN0aXZhdGlvbk9wdGlvbnMucm93KSB7XG4gICAgICAgIGNhc2UgJ25vbmUnOlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdmaXJzdCc6XG4gICAgICAgICAgdGhpcy5hY3RpdmF0ZUZpcnN0KCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2xhc3QnOlxuICAgICAgICAgIHRoaXMuYWN0aXZhdGVMYXN0KCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXQgaGFzQWN0aXZlSXRlbSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmFjdGl2ZUl0ZW07XG4gIH1cblxuICBwcml2YXRlIGFjdGl2YXRlRmlyc3QoKTogdm9pZCB7XG4gICAgY29uc3QgaXRlbSA9IHRoaXMuZ2V0SXRlbUF0SW5kZXgoMCk7XG4gICAgaWYgKGl0ZW0pIHtcbiAgICAgIHRoaXMuYWN0aXZhdGUoaXRlbSwgbmV3IEl0ZW1BY3RpdmF0aW9uT3B0aW9ucyhBY3RpdmF0aW9uRXZlbnRTb3VyY2UuU1lTVEVNLCBmYWxzZSkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWN0aXZhdGVMYXN0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9kYXRhKSB7XG4gICAgICBjb25zdCBpdGVtID0gdGhpcy5nZXRJdGVtQXRJbmRleCh0aGlzLl9kYXRhLmxlbmd0aCAtIDEpO1xuICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgdGhpcy5hY3RpdmF0ZShpdGVtLCBuZXcgSXRlbUFjdGl2YXRpb25PcHRpb25zKEFjdGl2YXRpb25FdmVudFNvdXJjZS5TWVNURU0sIGZhbHNlKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBwcmV2aW91c1Jvd0l0ZW0oKTogVCB7XG4gICAgY29uc3Qgcm93cyA9IHRoaXMuX2RhdGE7XG4gICAgbGV0IGN1cnJlbnRJbmRleCA9IHRoaXMuZ2V0Q3VycmVudEluZGV4KCk7XG4gICAgaWYgKGN1cnJlbnRJbmRleCA+IDApIHtcbiAgICAgIC0tY3VycmVudEluZGV4O1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5hY3RpdmF0aW9uT3B0aW9ucy5sb29wKSB7XG4gICAgICAgIGN1cnJlbnRJbmRleCA9IHJvd3MubGVuZ3RoIC0gMTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZ2V0SXRlbUF0SW5kZXgoY3VycmVudEluZGV4KTtcbiAgfVxuXG4gIHByaXZhdGUgbmV4dFJvd0l0ZW0oKTogVCB7XG4gICAgY29uc3Qgcm93cyA9IHRoaXMuX2RhdGE7XG4gICAgbGV0IGN1cnJlbnRJbmRleCA9IHRoaXMuZ2V0Q3VycmVudEluZGV4KCk7XG5cbiAgICBpZiAoY3VycmVudEluZGV4IDwgKHJvd3MubGVuZ3RoIC0gMSkpIHtcbiAgICAgICsrY3VycmVudEluZGV4O1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5hY3RpdmF0aW9uT3B0aW9ucy5sb29wKSB7XG4gICAgICAgIGN1cnJlbnRJbmRleCA9IDA7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmdldEl0ZW1BdEluZGV4KGN1cnJlbnRJbmRleCk7XG4gIH1cblxuICBwcml2YXRlIGdldEN1cnJlbnRJbmRleCgpOiBudW1iZXIge1xuICAgIGNvbnN0IGFjdGl2ZUl0ZW0gPSB0aGlzLmFjdGl2ZUl0ZW07XG4gICAgaWYgKGFjdGl2ZUl0ZW0pIHtcbiAgICAgIHJldHVybiB0aGlzLmZpbmRJdGVtSW5kZXgoYWN0aXZlSXRlbSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEl0ZW1BdEluZGV4KGluZGV4OiBudW1iZXIpOiBUIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YVtpbmRleF07XG4gIH1cblxuICBwcml2YXRlIGZpbmRJdGVtSW5kZXgoaXRlbTogVCk6IG51bWJlciB7XG4gICAgY29uc3QgbmVlZGxlSWQgPSB0aGlzLmdldElkKGl0ZW0pO1xuICAgIHJldHVybiB0aGlzLl9kYXRhLmZpbmRJbmRleChpdG0gPT4gdGhpcy5pdGVtRXF1YWxzSWQoaXRtLCBuZWVkbGVJZCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBpdGVtRXF1YWxzKGE6IFQsIGI6IFQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRJZChhKSA9PT0gdGhpcy5nZXRJZChiKTtcbiAgfVxuXG4gIHByaXZhdGUgaXRlbUVxdWFsc0lkKGE6IFQsIG5lZWRsZUlkOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRJZChhKSA9PT0gbmVlZGxlSWQ7XG4gIH1cblxuICBwcml2YXRlIGdldElkKGl0ZW06IFQpOiBhbnkge1xuICAgIGlmIChpdGVtKSB7XG4gICAgICBjb25zdCBkYyA9IHRoaXMuZWxkZXJUYWJsZS5kYXRhQ29udGV4dCQuZ2V0VmFsdWUoKTtcbiAgICAgIHJldHVybiBkYz8uZGF0YVNvdXJjZT8uZ2V0SWQoaXRlbSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBpdGVtO1xuICAgIH1cbiAgfVxuXG59XG4iXX0=
|
|
299
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdGFibGUtYWN0aXZhdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy90YWJsZS9hY3RpdmF0aW9uL2VsZGVyLXRhYmxlLWFjdGl2YXRpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxHQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hHLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRCxPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFjLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUd6RSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQzs7O0FBT2hFLE1BQU0sT0FBTyw2QkFBNkI7SUFzQnhDOzs7O2dGQUk0RTtJQUU1RSxZQUNtQixVQUErQjtRQUEvQixlQUFVLEdBQVYsVUFBVSxDQUFxQjtRQTNCbEQ7Ozs7b0ZBSTRFO1FBRTNELFdBQU0sR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFeEQsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFL0IsK0JBQTBCLEdBQUcsSUFBSSxPQUFPLEVBQTBCLENBQUM7UUFFNUUs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O1lBQ0wsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUM7OzBIQS9VVSw2QkFBNkI7OEdBQTdCLDZCQUE2QjsyRkFBN0IsNkJBQTZCO2tCQUp6QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQ0FBbUM7b0JBQzdDLFFBQVEsRUFBRSxzQkFBc0I7aUJBQ2pDOzBHQXFCUSxpQkFBaUI7c0JBRHZCLEtBQUs7dUJBQUMsc0JBQXNCO2dCQXNFdEIsU0FBUztzQkFEZixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFpQ3hCLHFCQUFxQjtzQkFEL0IsTUFBTTtnQkFNSSxnQkFBZ0I7c0JBRDFCLE1BQU07Z0JBVUksVUFBVTtzQkFEcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge0VsZGVyVGFibGVSb3dEaXJlY3RpdmV9IGZyb20gJy4uL2VsZGVyLXRhYmxlLXJvdy5kaXJlY3RpdmUnO1xuaW1wb3J0IHtmaWx0ZXIsIG1hcCwgc3dpdGNoTWFwLCB0YWtlVW50aWwsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtFbGRlclRhYmxlQ29tcG9uZW50fSBmcm9tICcuLi9lbGRlci10YWJsZS9lbGRlci10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHtFbGRlclRhYmxlQWN0aXZhdGlvbk9wdGlvbnN9IGZyb20gJy4vZWxkZXItdGFibGUtYWN0aXZhdGlvbi1vcHRpb25zJztcbmltcG9ydCB7SXRlbUFjdGl2YXRpb25PcHRpb25zfSBmcm9tICcuL2l0ZW0tYWN0aXZhdGlvbi1vcHRpb25zJztcbmltcG9ydCB7SXRlbUFjdGl2YXRpb25FdmVudH0gZnJvbSAnLi9pdGVtLWFjdGl2YXRpb24tZXZlbnQnO1xuaW1wb3J0IHtBY3RpdmF0aW9uRXZlbnRTb3VyY2V9IGZyb20gJy4vYWN0aXZhdGlvbi1ldmVudC1zb3VyY2UnO1xuaW1wb3J0IHtFbGRlckFjdGl2YXRpb25Db250ZXh0fSBmcm9tICcuL2VsZGVyLWFjdGl2YXRpb24tY29udGV4dCc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2VsZGVyLXRhYmxlW2VsZGVyVGFibGVBY3RpdmF0aW9uXScsXG4gIGV4cG9ydEFzOiAnZWxkZXJUYWJsZUFjdGl2YXRpb24nXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyVGFibGVBY3RpdmF0aW9uRGlyZWN0aXZlPFQ+IGltcGxlbWVudHMgRWxkZXJBY3RpdmF0aW9uQ29udGV4dDxUPiwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlciA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBpdGVtQWN0aXZhdGlvbkV2ZW50U3ViamVjdCA9IG5ldyBTdWJqZWN0PEl0ZW1BY3RpdmF0aW9uRXZlbnQ8VD4+KCk7XG5cbiAgcHJpdmF0ZSBfZGF0YTogVFtdID0gW107XG5cbiAgcHVibGljIHJlYWRvbmx5IGFjdGl2ZUl0ZW0kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUPihudWxsKTtcbiAgcHVibGljIHJlYWRvbmx5IHJvd3MkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxFbGRlclRhYmxlUm93RGlyZWN0aXZlPFQ+W10+KFtdKTtcblxuICBASW5wdXQoJ2VsZGVyVGFibGVBY3RpdmF0aW9uJylcbiAgcHVibGljIGFjdGl2YXRpb25PcHRpb25zOiBFbGRlclRhYmxlQWN0aXZhdGlvbk9wdGlvbnMgPSB7fTtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsZGVyVGFibGU6IEVsZGVyVGFibGVDb21wb25lbnRcbiAgKSB7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogTGlmZSBDeWNsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuXG4gICAgY29uc3Qgcm93cyQgPSB0aGlzLmVsZGVyVGFibGUucm93cyQ7XG4gICAgY29uc3QgZGF0YSQgPSB0aGlzLmVsZGVyVGFibGUuZGF0YUNvbnRleHQkLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoZGMgPT4gZGMuZGF0YSksXG4gICAgICB0YXAoZGF0YSA9PiB0aGlzLl9kYXRhID0gZGF0YSlcbiAgICApOytcblxuICAgIGNvbWJpbmVMYXRlc3QoW3Jvd3MkLCBkYXRhJF0pLnBpcGUoXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcbiAgICApLnN1YnNjcmliZShcbiAgICAgIChbcm93cywgZGF0YV0pID0+IHtcbiAgICAgICAgdGhpcy5yb3dzJC5uZXh0KFxuICAgICAgICAgIHRoaXMucm93RGF0YVVwZGF0ZWQocm93cywgZGF0YSlcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5oYW5kbGVBdXRvQWN0aXZhdGlvbnMoKTtcbiAgICAgIH1cbiAgICApO1xuXG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5yb3dzJCwgdGhpcy5hY3RpdmVJdGVtJF0pLnBpcGUoXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcbiAgICApLnN1YnNjcmliZShcbiAgICAgIChbcm93cywgYWN0aXZlSXRlbV0pID0+IHtcbiAgICAgICAgdGhpcy51cGRhdGVSb3dzQWN0aXZhdGlvbihyb3dzLCBhY3RpdmVJdGVtKTtcbiAgICAgIH1cbiAgICApO1xuXG4gICAgdGhpcy5lbGRlclRhYmxlLmRhdGFDb250ZXh0JC5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgbWFwKGRjID0+IGRjLmRhdGFTb3VyY2UpLFxuICAgICAgc3dpdGNoTWFwKGRzID0+IGRzLmRhdGFDaGFuZ2VkKSxcbiAgICAgIGZpbHRlcihldmVudCA9PiBldmVudC5kZWxldGVkSWRzPy5sZW5ndGggPiAwKVxuICAgICkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IGRlbGV0ZUV2ZW50ID0+IHtcbiAgICAgICAgIGRlbGV0ZUV2ZW50LmRlbGV0ZWRJZHMuZm9yRWFjaChpZCA9PiB0aGlzLmRlYWN0aXZhdGVCeUlkKGlkKSlcbiAgICAgIH19KVxuICB9XG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgLy8gdGhpcy5lbGRlclRhYmxlLnJvd3MkLmdldFZhbHVlKCkuZm9yRWFjaChyID0+IHIuYmluZFRhYmxlQWN0aXZhdGlvbihudWxsKSk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICouXG4gICAqIEhvc3QgTGlzdGVuZXJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBsZXQgbmV3QWN0aXZlSXRlbTogVDtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xuICAgICAgbmV3QWN0aXZlSXRlbSA9IHRoaXMubmV4dFJvd0l0ZW0oKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICBuZXdBY3RpdmVJdGVtID0gdGhpcy5wcmV2aW91c1Jvd0l0ZW0oKTtcbiAgICB9XG5cbiAgICBpZiAobmV3QWN0aXZlSXRlbSkge1xuICAgICAgdGhpcy5hY3RpdmF0ZUFuZEZvY3VzKG5ld0FjdGl2ZUl0ZW0pO1xuICAgIH1cblxuICAgIGNvbnN0IGFjdGl2ZSA9IHRoaXMuYWN0aXZlSXRlbTtcbiAgICBpZiAoYWN0aXZlKSB7XG4gICAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgIHRoaXMuZWxkZXJUYWJsZS5vbkl0ZW1DbGljayhhY3RpdmUpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnU3BhY2ViYXInIHx8IGV2ZW50LmtleSA9PT0gJyAnKSB7XG4gICAgICAgIHRoaXMuZWxkZXJUYWJsZS5zZWxlY3Rpb25Nb2RlbC50b2dnbGUoYWN0aXZlKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cblxuICBAT3V0cHV0KClcbiAgcHVibGljIGdldCBhY3RpdmVJdGVtRXZlbnRDaGFuZ2UoKTogT2JzZXJ2YWJsZTxJdGVtQWN0aXZhdGlvbkV2ZW50PFQ+PiB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbUFjdGl2YXRpb25FdmVudFN1YmplY3Q7XG4gIH1cblxuICBAT3V0cHV0KClcbiAgcHVibGljIGdldCBhY3RpdmVJdGVtQ2hhbmdlKCk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLmFjdGl2ZUl0ZW0kO1xuICB9XG5cbiAgcHVibGljIGdldCBhY3RpdmVJdGVtKCk6IFQge1xuICAgIHJldHVybiB0aGlzLmFjdGl2ZUl0ZW0kLmdldFZhbHVlKCk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGFjdGl2ZUl0ZW0oaXRlbTogVCkge1xuICAgIHRoaXMuYWN0aXZhdGUoaXRlbSwgbmV3IEl0ZW1BY3RpdmF0aW9uT3B0aW9ucyhBY3RpdmF0aW9uRXZlbnRTb3VyY2UuU1lTVEVNLCB0cnVlKSk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgYWN0aXZhdGUoaXRlbTogVCwgb3B0aW9uczogSXRlbUFjdGl2YXRpb25PcHRpb25zKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVBY3RpdmVJdGVtKGl0ZW0sIG9wdGlvbnMpO1xuICB9XG5cbiAgcHVibGljIGFjdGl2YXRlQW5kRm9jdXMoaXRlbTogVCk6IHZvaWQge1xuICAgIHRoaXMuYWN0aXZhdGUoaXRlbSwgbmV3IEl0ZW1BY3RpdmF0aW9uT3B0aW9ucyhBY3RpdmF0aW9uRXZlbnRTb3VyY2UuU1lTVEVNLCB0cnVlKSlcbiAgfVxuXG4gIHB1YmxpYyBpc0l0ZW1BY3RpdmUoaXRlbTogVCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmFjdGl2ZUl0ZW0pIHtcbiAgICAgIHJldHVybiB0aGlzLml0ZW1FcXVhbHModGhpcy5hY3RpdmVJdGVtLCBpdGVtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBoYXNJdGVtRm9jdXMoaXRlbTogVCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHJvdyA9IHRoaXMuZ2V0Um93Rm9ySXRlbShpdGVtKTtcbiAgICByZXR1cm4gcm93Py5oYXNGb2N1cztcbiAgfVxuXG4gIHB1YmxpYyBuZXh0Q2xvc2VUbyhhY3RpdmU6IFQpOiBUIHtcbiAgICBjb25zdCBuZXh0ID0gdGhpcy5uZXh0Um93SXRlbSgpO1xuICAgIGlmIChuZXh0ICE9PSBhY3RpdmUpIHtcbiAgICAgIHJldHVybiBuZXh0O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5wcmV2aW91c1Jvd0l0ZW0oKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgdXBkYXRlQWN0aXZlSXRlbShpdGVtOiBULCBvcHRpb25zOiBJdGVtQWN0aXZhdGlvbk9wdGlvbnMpIHtcbiAgICB0aGlzLml0ZW1BY3RpdmF0aW9uRXZlbnRTdWJqZWN0Lm5leHQobmV3IEl0ZW1BY3RpdmF0aW9uRXZlbnQoaXRlbSwgb3B0aW9ucy5zb3VyY2UsIG9wdGlvbnMuZm9jdXMpKVxuICAgIGlmIChpdGVtICE9PSB0aGlzLmFjdGl2ZUl0ZW0pIHtcbiAgICAgIHRoaXMuYWN0aXZlSXRlbSQubmV4dChpdGVtKTtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdTZXQgYWN0aXZlIGl0ZW0gdG8gJywgaXRlbSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVSb3dzQWN0aXZhdGlvbihyb3dzOiBFbGRlclRhYmxlUm93RGlyZWN0aXZlPFQ+W10sIGFjdGl2ZUl0ZW06IFQpOiB2b2lkIHtcbiAgICBjb25zdCBhY3RpdmVJZCA9IHRoaXMuZ2V0SWQoYWN0aXZlSXRlbSk7XG4gICAgcm93cy5mb3JFYWNoKHJvdyA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZVJvd0FjdGl2YXRpb24ocm93LCBhY3RpdmVJZCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVJvd0FjdGl2YXRpb24ocm93OiBFbGRlclRhYmxlUm93RGlyZWN0aXZlPFQ+LCBhY3RpdmVJZDogYW55KTogdm9pZCB7XG4gICAgaWYgKHJvdy5tb2RlbCkge1xuICAgICAgaWYgKHRoaXMuaXRlbUVxdWFsc0lkKHJvdy5tb2RlbCwgYWN0aXZlSWQpKSB7XG4gICAgICAgIGlmICghcm93LmFjdGl2YXRlZCkge1xuICAgICAgICAgIHJvdy5hY3RpdmF0ZWQgPSB0cnVlO1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdBY3RpdmF0ZWQgcm93OiAnLCByb3cpO1xuICAgICAgICAgIGlmICghcm93Lmhhc0ZvY3VzKSB7XG4gICAgICAgICAgICByb3cuYnJpbmdUb1ZpZXcoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJvdy5hY3RpdmF0ZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcm93LmFjdGl2YXRlZCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcm93RGF0YVVwZGF0ZWQoXG4gICAgcm93czogRWxkZXJUYWJsZVJvd0RpcmVjdGl2ZTxUPltdLFxuICAgIGRhdGE6IFRbXVxuICApOiBFbGRlclRhYmxlUm93RGlyZWN0aXZlPFQ+W10ge1xuICAgIC8vIHRoaXMubG9nZ2VyLmRlYnVnKCdGb3VuZCByb3dzOicsIHJvd3MpO1xuICAgIHJvd3MuZm9yRWFjaChyb3cgPT4ge1xuICAgICAgcm93LmJpbmRUYWJsZUFjdGl2YXRpb24odGhpcyk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHJvd3M7XG4gIH1cblxuXG4gIHByaXZhdGUgZGVhY3RpdmF0ZUJ5SWQoaWQ6IGFueSkge1xuICAgIGNvbnN0IGFjdGl2ZSA9IHRoaXMuYWN0aXZlSXRlbSQuZ2V0VmFsdWUoKTtcbiAgICBpZiAoYWN0aXZlKSB7XG4gICAgICBjb25zdCBhY3RpdmVJZCA9IHRoaXMuZ2V0SWQoYWN0aXZlKTtcbiAgICAgIGlmIChhY3RpdmVJZCA9PSBpZCkge1xuICAgICAgICB0aGlzLmFjdGl2YXRlKG51bGwsIG5ldyBJdGVtQWN0aXZhdGlvbk9wdGlvbnMoQWN0aXZhdGlvbkV2ZW50U291cmNlLlNZU1RFTSwgZmFsc2UpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFJvd0Zvckl0ZW0oaXRlbTogVCk6IEVsZGVyVGFibGVSb3dEaXJlY3RpdmU8VD4gfCBudWxsIHtcbiAgICBjb25zdCByb3dzID0gdGhpcy5yb3dzJC5nZXRWYWx1ZSgpO1xuICAgIHJldHVybiByb3dzLmZpbmQociA9PiByLm1vZGVsID09PSBpdGVtKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQXV0b0FjdGl2YXRpb25zKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5oYXNBY3RpdmVJdGVtIHx8IHRoaXMuYWN0aXZhdGlvbk9wdGlvbnMubW9kZSA9PT0gJ2Fsd2F5cycpIHtcbiAgICAgIHN3aXRjaCAodGhpcy5hY3RpdmF0aW9uT3B0aW9ucy5yb3cpIHtcbiAgICAgICAgY2FzZSAnbm9uZSc6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2ZpcnN0JzpcbiAgICAgICAgICB0aGlzLmFjdGl2YXRlRmlyc3QoKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnbGFzdCc6XG4gICAgICAgICAgdGhpcy5hY3RpdmF0ZUxhc3QoKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldCBoYXNBY3RpdmVJdGVtKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuYWN0aXZlSXRlbTtcbiAgfVxuXG4gIHByaXZhdGUgYWN0aXZhdGVGaXJzdCgpOiB2b2lkIHtcbiAgICBjb25zdCBpdGVtID0gdGhpcy5nZXRJdGVtQXRJbmRleCgwKTtcbiAgICBpZiAoaXRlbSkge1xuICAgICAgdGhpcy5hY3RpdmF0ZShpdGVtLCBuZXcgSXRlbUFjdGl2YXRpb25PcHRpb25zKEFjdGl2YXRpb25FdmVudFNvdXJjZS5TWVNURU0sIGZhbHNlKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhY3RpdmF0ZUxhc3QoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2RhdGEpIHtcbiAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmdldEl0ZW1BdEluZGV4KHRoaXMuX2RhdGEubGVuZ3RoIC0gMSk7XG4gICAgICBpZiAoaXRlbSkge1xuICAgICAgICB0aGlzLmFjdGl2YXRlKGl0ZW0sIG5ldyBJdGVtQWN0aXZhdGlvbk9wdGlvbnMoQWN0aXZhdGlvbkV2ZW50U291cmNlLlNZU1RFTSwgZmFsc2UpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHByZXZpb3VzUm93SXRlbSgpOiBUIHtcbiAgICBjb25zdCByb3dzID0gdGhpcy5fZGF0YTtcbiAgICBsZXQgY3VycmVudEluZGV4ID0gdGhpcy5nZXRDdXJyZW50SW5kZXgoKTtcbiAgICBpZiAoY3VycmVudEluZGV4ID4gMCkge1xuICAgICAgLS1jdXJyZW50SW5kZXg7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmFjdGl2YXRpb25PcHRpb25zLmxvb3ApIHtcbiAgICAgICAgY3VycmVudEluZGV4ID0gcm93cy5sZW5ndGggLSAxO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5nZXRJdGVtQXRJbmRleChjdXJyZW50SW5kZXgpO1xuICB9XG5cbiAgcHJpdmF0ZSBuZXh0Um93SXRlbSgpOiBUIHtcbiAgICBjb25zdCByb3dzID0gdGhpcy5fZGF0YTtcbiAgICBsZXQgY3VycmVudEluZGV4ID0gdGhpcy5nZXRDdXJyZW50SW5kZXgoKTtcblxuICAgIGlmIChjdXJyZW50SW5kZXggPCAocm93cy5sZW5ndGggLSAxKSkge1xuICAgICAgKytjdXJyZW50SW5kZXg7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmFjdGl2YXRpb25PcHRpb25zLmxvb3ApIHtcbiAgICAgICAgY3VycmVudEluZGV4ID0gMDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZ2V0SXRlbUF0SW5kZXgoY3VycmVudEluZGV4KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q3VycmVudEluZGV4KCk6IG51bWJlciB7XG4gICAgY29uc3QgYWN0aXZlSXRlbSA9IHRoaXMuYWN0aXZlSXRlbTtcbiAgICBpZiAoYWN0aXZlSXRlbSkge1xuICAgICAgcmV0dXJuIHRoaXMuZmluZEl0ZW1JbmRleChhY3RpdmVJdGVtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0SXRlbUF0SW5kZXgoaW5kZXg6IG51bWJlcik6IFQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9kYXRhW2luZGV4XTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZEl0ZW1JbmRleChpdGVtOiBUKTogbnVtYmVyIHtcbiAgICBjb25zdCBuZWVkbGVJZCA9IHRoaXMuZ2V0SWQoaXRlbSk7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGEuZmluZEluZGV4KGl0bSA9PiB0aGlzLml0ZW1FcXVhbHNJZChpdG0sIG5lZWRsZUlkKSk7XG4gIH1cblxuICBwcml2YXRlIGl0ZW1FcXVhbHMoYTogVCwgYjogVCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldElkKGEpID09PSB0aGlzLmdldElkKGIpO1xuICB9XG5cbiAgcHJpdmF0ZSBpdGVtRXF1YWxzSWQoYTogVCwgbmVlZGxlSWQ6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldElkKGEpID09PSBuZWVkbGVJZDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SWQoaXRlbTogVCk6IGFueSB7XG4gICAgaWYgKGl0ZW0pIHtcbiAgICAgIGNvbnN0IGRjID0gdGhpcy5lbGRlclRhYmxlLmRhdGFDb250ZXh0JC5nZXRWYWx1ZSgpO1xuICAgICAgcmV0dXJuIGRjPy5kYXRhU291cmNlPy5nZXRJZChpdGVtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGl0ZW07XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export class ItemActivationEvent {
|
|
2
|
+
constructor(item, source, focus) {
|
|
3
|
+
this.item = item;
|
|
4
|
+
this.source = source;
|
|
5
|
+
this.focus = focus;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS1hY3RpdmF0aW9uLWV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9kYXRhLXZpZXcvdGFibGUvYWN0aXZhdGlvbi9pdGVtLWFjdGl2YXRpb24tZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixZQUNrQixJQUFPLEVBQ1AsTUFBNkIsRUFDN0IsS0FBYztRQUZkLFNBQUksR0FBSixJQUFJLENBQUc7UUFDUCxXQUFNLEdBQU4sTUFBTSxDQUF1QjtRQUM3QixVQUFLLEdBQUwsS0FBSyxDQUFTO0lBQzdCLENBQUM7Q0FDTCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWN0aXZhdGlvbkV2ZW50U291cmNlfSBmcm9tICcuL2FjdGl2YXRpb24tZXZlbnQtc291cmNlJztcblxuZXhwb3J0IGNsYXNzIEl0ZW1BY3RpdmF0aW9uRXZlbnQ8VD4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgaXRlbTogVCxcbiAgICBwdWJsaWMgcmVhZG9ubHkgc291cmNlOiBBY3RpdmF0aW9uRXZlbnRTb3VyY2UsXG4gICAgcHVibGljIHJlYWRvbmx5IGZvY3VzOiBib29sZWFuXG4gICkge31cbn1cblxuXG4iXX0=
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export * from './activation-event-source';
|
|
2
|
-
export * from './
|
|
2
|
+
export * from './item-activation-event';
|
|
3
3
|
export * from './elder-activation-context';
|
|
4
4
|
export * from './elder-delete-active.directive';
|
|
5
5
|
export * from './elder-table-activation.directive';
|
|
6
6
|
export * from './elder-table-activation-options';
|
|
7
7
|
export * from './item-activation-options';
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvZGF0YS12aWV3L3RhYmxlL2FjdGl2YXRpb24vcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDJCQUEyQixDQUFBO0FBQ3pDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsb0NBQW9DLENBQUE7QUFDbEQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLDJCQUEyQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hY3RpdmF0aW9uLWV2ZW50LXNvdXJjZSdcbmV4cG9ydCAqIGZyb20gJy4vaXRlbS1hY3RpdmF0aW9uLWV2ZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZWxkZXItYWN0aXZhdGlvbi1jb250ZXh0JztcbmV4cG9ydCAqIGZyb20gJy4vZWxkZXItZGVsZXRlLWFjdGl2ZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9lbGRlci10YWJsZS1hY3RpdmF0aW9uLmRpcmVjdGl2ZSdcbmV4cG9ydCAqIGZyb20gJy4vZWxkZXItdGFibGUtYWN0aXZhdGlvbi1vcHRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vaXRlbS1hY3RpdmF0aW9uLW9wdGlvbnMnXG5cbiJdfQ==
|
|
@@ -16416,12 +16416,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
16416
16416
|
}] }];
|
|
16417
16417
|
} });
|
|
16418
16418
|
|
|
16419
|
-
class
|
|
16420
|
-
constructor(item, source, focus
|
|
16419
|
+
class ItemActivationEvent {
|
|
16420
|
+
constructor(item, source, focus) {
|
|
16421
16421
|
this.item = item;
|
|
16422
16422
|
this.source = source;
|
|
16423
16423
|
this.focus = focus;
|
|
16424
|
-
this.creating = creating;
|
|
16425
16424
|
}
|
|
16426
16425
|
}
|
|
16427
16426
|
|
|
@@ -16440,11 +16439,11 @@ class ElderTableActivationDirective {
|
|
|
16440
16439
|
**************************************************************************/
|
|
16441
16440
|
this.logger = LoggerFactory.getLogger(this.constructor.name);
|
|
16442
16441
|
this.destroy$ = new Subject();
|
|
16443
|
-
this.
|
|
16444
|
-
this.activeItemEvent$ = new Subject();
|
|
16445
|
-
this.activationOptions = {};
|
|
16442
|
+
this.itemActivationEventSubject = new Subject();
|
|
16446
16443
|
this._data = [];
|
|
16444
|
+
this.activeItem$ = new BehaviorSubject(null);
|
|
16447
16445
|
this.rows$ = new BehaviorSubject([]);
|
|
16446
|
+
this.activationOptions = {};
|
|
16448
16447
|
}
|
|
16449
16448
|
/***************************************************************************
|
|
16450
16449
|
* *
|
|
@@ -16506,7 +16505,7 @@ class ElderTableActivationDirective {
|
|
|
16506
16505
|
* *
|
|
16507
16506
|
**************************************************************************/
|
|
16508
16507
|
get activeItemEventChange() {
|
|
16509
|
-
return this.
|
|
16508
|
+
return this.itemActivationEventSubject;
|
|
16510
16509
|
}
|
|
16511
16510
|
get activeItemChange() {
|
|
16512
16511
|
return this.activeItem$;
|
|
@@ -16553,7 +16552,7 @@ class ElderTableActivationDirective {
|
|
|
16553
16552
|
* *
|
|
16554
16553
|
**************************************************************************/
|
|
16555
16554
|
updateActiveItem(item, options) {
|
|
16556
|
-
this.
|
|
16555
|
+
this.itemActivationEventSubject.next(new ItemActivationEvent(item, options.source, options.focus));
|
|
16557
16556
|
if (item !== this.activeItem) {
|
|
16558
16557
|
this.activeItem$.next(item);
|
|
16559
16558
|
this.logger.debug('Set active item to ', item);
|
|
@@ -17365,7 +17364,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
17365
17364
|
}]
|
|
17366
17365
|
}] });
|
|
17367
17366
|
|
|
17368
|
-
class
|
|
17367
|
+
class MasterDetailActivationEvent {
|
|
17369
17368
|
constructor(item, creating, source) {
|
|
17370
17369
|
this.item = item;
|
|
17371
17370
|
this.creating = creating;
|
|
@@ -17395,11 +17394,13 @@ class ElderMasterDetailService {
|
|
|
17395
17394
|
this._itemActivationRequest$ = new Subject();
|
|
17396
17395
|
this._activeItem$ = new BehaviorSubject(null);
|
|
17397
17396
|
this._creatingItem$ = new BehaviorSubject(null);
|
|
17398
|
-
this.
|
|
17397
|
+
this._currentItem$ = new BehaviorSubject(null);
|
|
17398
|
+
this._currentItemChange = new Subject();
|
|
17399
17399
|
merge(this._creatingItem$, this._activeItem$)
|
|
17400
17400
|
.pipe(filter(event => event !== null), takeUntil(this.destroy$)).subscribe({
|
|
17401
17401
|
next: creatingOrActive => {
|
|
17402
|
-
this.
|
|
17402
|
+
this._currentItem$.next(creatingOrActive.item);
|
|
17403
|
+
this._currentItemChange.next(creatingOrActive);
|
|
17403
17404
|
}
|
|
17404
17405
|
});
|
|
17405
17406
|
}
|
|
@@ -17417,23 +17418,37 @@ class ElderMasterDetailService {
|
|
|
17417
17418
|
* Properties *
|
|
17418
17419
|
* *
|
|
17419
17420
|
**************************************************************************/
|
|
17420
|
-
|
|
17421
|
-
|
|
17421
|
+
/**
|
|
17422
|
+
* The currently active or creating item.
|
|
17423
|
+
*/
|
|
17424
|
+
get currentItem$() {
|
|
17425
|
+
return this._currentItem$.asObservable();
|
|
17426
|
+
}
|
|
17427
|
+
get currentItemSnapshot() {
|
|
17428
|
+
return this._currentItem$.getValue();
|
|
17429
|
+
}
|
|
17430
|
+
get currentItemChange() {
|
|
17431
|
+
return this._currentItemChange.asObservable();
|
|
17422
17432
|
}
|
|
17423
17433
|
get itemActivationRequested() {
|
|
17424
17434
|
return this._itemActivationRequest$.asObservable();
|
|
17425
17435
|
}
|
|
17426
|
-
|
|
17427
|
-
|
|
17428
|
-
}*/
|
|
17429
|
-
onItemActivated(event) {
|
|
17430
|
-
this._activeItem$.next(event);
|
|
17436
|
+
onItemActivated(item, options) {
|
|
17437
|
+
this._activeItem$.next(this.asEvent(item, options));
|
|
17431
17438
|
}
|
|
17432
17439
|
requestItemActivation(item) {
|
|
17433
17440
|
this._itemActivationRequest$.next(item);
|
|
17434
17441
|
}
|
|
17435
17442
|
activateCreatingItem(item) {
|
|
17436
|
-
this._creatingItem$.next(
|
|
17443
|
+
this._creatingItem$.next(this.asEvent(item, { source: ActivationEventSource.USER_MOUSE_CLICK }));
|
|
17444
|
+
}
|
|
17445
|
+
/***************************************************************************
|
|
17446
|
+
* *
|
|
17447
|
+
* Private methods *
|
|
17448
|
+
* *
|
|
17449
|
+
**************************************************************************/
|
|
17450
|
+
asEvent(item, options) {
|
|
17451
|
+
return new MasterDetailActivationEvent(item, options.creating, options.source);
|
|
17437
17452
|
}
|
|
17438
17453
|
}
|
|
17439
17454
|
ElderMasterDetailService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderMasterDetailService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
@@ -17449,7 +17464,6 @@ class ElderDetailDirective {
|
|
|
17449
17464
|
* *
|
|
17450
17465
|
**************************************************************************/
|
|
17451
17466
|
constructor(masterDetailService, templateRef, viewContainer) {
|
|
17452
|
-
var _a;
|
|
17453
17467
|
this.masterDetailService = masterDetailService;
|
|
17454
17468
|
this.templateRef = templateRef;
|
|
17455
17469
|
this.viewContainer = viewContainer;
|
|
@@ -17460,14 +17474,24 @@ class ElderDetailDirective {
|
|
|
17460
17474
|
**************************************************************************/
|
|
17461
17475
|
this.log = LoggerFactory.getLogger(this.constructor.name);
|
|
17462
17476
|
this.activeDetailItem$ = new BehaviorSubject(null);
|
|
17463
|
-
|
|
17464
|
-
|
|
17465
|
-
|
|
17466
|
-
|
|
17467
|
-
|
|
17477
|
+
this.destroy$ = new Subject();
|
|
17478
|
+
this.masterDetailService.currentItem$
|
|
17479
|
+
.pipe(takeUntil(this.destroy$))
|
|
17480
|
+
.subscribe({
|
|
17481
|
+
next: item => {
|
|
17482
|
+
this.activeDetailItem$.next(item);
|
|
17468
17483
|
}
|
|
17469
17484
|
});
|
|
17470
17485
|
}
|
|
17486
|
+
/***************************************************************************
|
|
17487
|
+
* *
|
|
17488
|
+
* Life Cycle *
|
|
17489
|
+
* *
|
|
17490
|
+
**************************************************************************/
|
|
17491
|
+
ngOnDestroy() {
|
|
17492
|
+
this.destroy$.next();
|
|
17493
|
+
this.destroy$.complete();
|
|
17494
|
+
}
|
|
17471
17495
|
}
|
|
17472
17496
|
ElderDetailDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderDetailDirective, deps: [{ token: ElderMasterDetailService }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
17473
17497
|
ElderDetailDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: ElderDetailDirective, selector: "[elderDataDetail]", ngImport: i0 });
|
|
@@ -18085,11 +18109,13 @@ class ElderDetailDialogComponent {
|
|
|
18085
18109
|
**************************************************************************/
|
|
18086
18110
|
this.destroy$ = new Subject();
|
|
18087
18111
|
this.entity$ = new BehaviorSubject(null);
|
|
18088
|
-
this.masterDetailService.
|
|
18112
|
+
this.masterDetailService.currentItem$
|
|
18089
18113
|
.pipe(takeUntil(this.destroy$))
|
|
18090
|
-
.subscribe({
|
|
18091
|
-
|
|
18092
|
-
|
|
18114
|
+
.subscribe({
|
|
18115
|
+
next: item => {
|
|
18116
|
+
this.entity$.next(item);
|
|
18117
|
+
}
|
|
18118
|
+
});
|
|
18093
18119
|
}
|
|
18094
18120
|
/***************************************************************************
|
|
18095
18121
|
* *
|
|
@@ -18110,10 +18136,10 @@ class ElderDetailDialogComponent {
|
|
|
18110
18136
|
}
|
|
18111
18137
|
}
|
|
18112
18138
|
ElderDetailDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderDetailDialogComponent, deps: [{ token: i1$7.MatDialogRef, optional: true }, { token: MAT_DIALOG_DATA, optional: true }, { token: ElderMasterDetailService }], target: i0.ɵɵFactoryTarget.Component });
|
|
18113
|
-
ElderDetailDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: ElderDetailDialogComponent, selector: "elder-detail-dialog", ngImport: i0, template: "<div class=\"layout-col full\">\n\n <span style=\"width: 100vw;\"></span>\n\n <!-- Header Section -->\n <elder-toolbar class=\"gap-md\"
|
|
18139
|
+
ElderDetailDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: ElderDetailDialogComponent, selector: "elder-detail-dialog", ngImport: i0, template: "<div class=\"layout-col full\" *ngIf=\"entity$ | async as entity\">\n\n <span style=\"width: 100vw;\"></span>\n\n <!-- Header Section -->\n <elder-toolbar class=\"gap-md\" >\n <button (click)=\"close()\" mat-icon-button *elderToolbarColumn=\"'left.begin'\">\n <mat-icon>close</mat-icon>\n </button>\n </elder-toolbar>\n\n <div class=\"layout-row flex gap-md\">\n <ng-container *ngTemplateOutlet=\"data.detailTemplateRef; context: {$implicit: entity}\"></ng-container>\n </div>\n\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5$2.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: ElderToolbarComponent, selector: "elder-toolbar", inputs: ["color"] }, { kind: "directive", type: ElderToolbarColumnDirective, selector: "[elderToolbarColumn]", inputs: ["elderToolbarColumn", "elderToolbarDefault"] }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
18114
18140
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderDetailDialogComponent, decorators: [{
|
|
18115
18141
|
type: Component,
|
|
18116
|
-
args: [{ selector: 'elder-detail-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"layout-col full\">\n\n <span style=\"width: 100vw;\"></span>\n\n <!-- Header Section -->\n <elder-toolbar class=\"gap-md\"
|
|
18142
|
+
args: [{ selector: 'elder-detail-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"layout-col full\" *ngIf=\"entity$ | async as entity\">\n\n <span style=\"width: 100vw;\"></span>\n\n <!-- Header Section -->\n <elder-toolbar class=\"gap-md\" >\n <button (click)=\"close()\" mat-icon-button *elderToolbarColumn=\"'left.begin'\">\n <mat-icon>close</mat-icon>\n </button>\n </elder-toolbar>\n\n <div class=\"layout-row flex gap-md\">\n <ng-container *ngTemplateOutlet=\"data.detailTemplateRef; context: {$implicit: entity}\"></ng-container>\n </div>\n\n</div>\n" }]
|
|
18117
18143
|
}], ctorParameters: function () {
|
|
18118
18144
|
return [{ type: i1$7.MatDialogRef, decorators: [{
|
|
18119
18145
|
type: Optional
|
|
@@ -18125,12 +18151,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
18125
18151
|
}] }, { type: ElderMasterDetailService }];
|
|
18126
18152
|
} });
|
|
18127
18153
|
|
|
18128
|
-
var ElderMasterDetailMode;
|
|
18129
|
-
(function (ElderMasterDetailMode) {
|
|
18130
|
-
ElderMasterDetailMode["EMBEDDED"] = "EMBEDDED";
|
|
18131
|
-
ElderMasterDetailMode["DIALOG"] = "DIALOG";
|
|
18132
|
-
})(ElderMasterDetailMode || (ElderMasterDetailMode = {}));
|
|
18133
|
-
|
|
18134
18154
|
function existingOrNewMasterDetailService(serviceProvider) {
|
|
18135
18155
|
return serviceProvider !== null && serviceProvider !== void 0 ? serviceProvider : newMasterDetailService();
|
|
18136
18156
|
}
|
|
@@ -18167,15 +18187,22 @@ class ElderMasterDetailComponent {
|
|
|
18167
18187
|
this.log = LoggerFactory.getLogger(this.constructor.name);
|
|
18168
18188
|
this.destroy$ = new Subject();
|
|
18169
18189
|
this.mode$ = new BehaviorSubject(null);
|
|
18170
|
-
this.
|
|
18190
|
+
this.currentActive$ = new BehaviorSubject(null);
|
|
18171
18191
|
this.mode$
|
|
18172
18192
|
.pipe(takeUntil(this.destroy$))
|
|
18173
18193
|
.subscribe({ next: mode => { this.masterDetailService.mode$.next(mode); } });
|
|
18174
|
-
this.masterDetailService.
|
|
18194
|
+
this.masterDetailService.currentItem$
|
|
18195
|
+
.pipe(takeUntil(this.destroy$))
|
|
18196
|
+
.subscribe({
|
|
18197
|
+
next: item => {
|
|
18198
|
+
this.currentActive$.next(item);
|
|
18199
|
+
}
|
|
18200
|
+
});
|
|
18201
|
+
this.masterDetailService.currentItemChange
|
|
18175
18202
|
.pipe(takeUntil(this.destroy$))
|
|
18176
18203
|
.subscribe({
|
|
18177
18204
|
next: active => {
|
|
18178
|
-
if (this.mode$.getValue() ==
|
|
18205
|
+
if (this.mode$.getValue() == 'DIALOG') {
|
|
18179
18206
|
if (active.item) {
|
|
18180
18207
|
this.closeDialog();
|
|
18181
18208
|
this.openDetailDialog(active === null || active === void 0 ? void 0 : active.item);
|
|
@@ -18203,7 +18230,7 @@ class ElderMasterDetailComponent {
|
|
|
18203
18230
|
**************************************************************************/
|
|
18204
18231
|
set mode(mode) {
|
|
18205
18232
|
this.mode$.next(mode);
|
|
18206
|
-
if (this.mode ==
|
|
18233
|
+
if (this.mode == 'EMBEDDED' && this.dialogRef) {
|
|
18207
18234
|
this.dialogRef.close();
|
|
18208
18235
|
}
|
|
18209
18236
|
}
|
|
@@ -18239,12 +18266,12 @@ class ElderMasterDetailComponent {
|
|
|
18239
18266
|
ElderMasterDetailComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderMasterDetailComponent, deps: [{ token: ElderMasterDetailService }, { token: i1$7.MatDialog }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
18240
18267
|
ElderMasterDetailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: ElderMasterDetailComponent, selector: "elder-master-detail", inputs: { mode: "mode" }, providers: [
|
|
18241
18268
|
ElderMasterDetailProvider.ExistingOrNewMasterDetailService
|
|
18242
|
-
], queries: [{ propertyName: "master", first: true, predicate: ElderMasterDirective, descendants: true, read: TemplateRef }, { propertyName: "detail", first: true, predicate: ElderDetailDirective, descendants: true, read: TemplateRef }], ngImport: i0, template: "\n<div class=\"layout-row full\" *ngIf=\"mode$ | async as mode\">\n\n <div class=\"layout-row full\" *ngIf=\"mode ==
|
|
18269
|
+
], queries: [{ propertyName: "master", first: true, predicate: ElderMasterDirective, descendants: true, read: TemplateRef }, { propertyName: "detail", first: true, predicate: ElderDetailDirective, descendants: true, read: TemplateRef }], ngImport: i0, template: "\n<div class=\"layout-row full\" *ngIf=\"mode$ | async as mode\">\n\n <div class=\"layout-row full\" *ngIf=\"mode == 'DIALOG'\">\n <ng-container *ngTemplateOutlet=\"master\"></ng-container>\n </div>\n\n <div class=\"layout-row full gap-md\" *ngIf=\"mode == 'EMBEDDED'\">\n <ng-container *ngTemplateOutlet=\"master\"></ng-container>\n <ng-container *ngIf=\"currentActive$ | async as currentActive\">\n <ng-container *ngTemplateOutlet=\"detail; context: {$implicit: currentActive}\"></ng-container>\n </ng-container>\n </div>\n\n</div>\n\n\n", styles: [""], dependencies: [{ kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
18243
18270
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderMasterDetailComponent, decorators: [{
|
|
18244
18271
|
type: Component,
|
|
18245
18272
|
args: [{ selector: 'elder-master-detail', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
18246
18273
|
ElderMasterDetailProvider.ExistingOrNewMasterDetailService
|
|
18247
|
-
], template: "\n<div class=\"layout-row full\" *ngIf=\"mode$ | async as mode\">\n\n <div class=\"layout-row full\" *ngIf=\"mode ==
|
|
18274
|
+
], template: "\n<div class=\"layout-row full\" *ngIf=\"mode$ | async as mode\">\n\n <div class=\"layout-row full\" *ngIf=\"mode == 'DIALOG'\">\n <ng-container *ngTemplateOutlet=\"master\"></ng-container>\n </div>\n\n <div class=\"layout-row full gap-md\" *ngIf=\"mode == 'EMBEDDED'\">\n <ng-container *ngTemplateOutlet=\"master\"></ng-container>\n <ng-container *ngIf=\"currentActive$ | async as currentActive\">\n <ng-container *ngTemplateOutlet=\"detail; context: {$implicit: currentActive}\"></ng-container>\n </ng-container>\n </div>\n\n</div>\n\n\n" }]
|
|
18248
18275
|
}], ctorParameters: function () { return [{ type: ElderMasterDetailService }, { type: i1$7.MatDialog }, { type: i0.ViewContainerRef }]; }, propDecorators: { master: [{
|
|
18249
18276
|
type: ContentChild,
|
|
18250
18277
|
args: [ElderMasterDirective, { read: TemplateRef, static: false }]
|
|
@@ -18286,7 +18313,7 @@ class ElderMasterActivationDirective {
|
|
|
18286
18313
|
this.tableActivation.activeItemEventChange.pipe(takeUntil(this.destroy$)).subscribe({
|
|
18287
18314
|
next: event => {
|
|
18288
18315
|
this.log.debug('Table-Activation changed, notifying master-detail', event);
|
|
18289
|
-
this.masterDetailService.onItemActivated(event);
|
|
18316
|
+
this.masterDetailService.onItemActivated(event.item, { source: event.source });
|
|
18290
18317
|
},
|
|
18291
18318
|
error: err => this.toastService.error("Failed to set active item", err)
|
|
18292
18319
|
});
|
|
@@ -18304,10 +18331,10 @@ class ElderMasterActivationDirective {
|
|
|
18304
18331
|
* *
|
|
18305
18332
|
**************************************************************************/
|
|
18306
18333
|
onModeChange(mode) {
|
|
18307
|
-
if (mode ==
|
|
18334
|
+
if (mode == 'EMBEDDED') {
|
|
18308
18335
|
this.tableActivation.activationOptions = { mode: 'once', row: 'first' };
|
|
18309
18336
|
}
|
|
18310
|
-
if (mode ==
|
|
18337
|
+
if (mode == 'DIALOG') {
|
|
18311
18338
|
this.tableActivation.activationOptions = { mode: 'once', row: 'none' };
|
|
18312
18339
|
}
|
|
18313
18340
|
}
|
|
@@ -30410,6 +30437,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
30410
30437
|
* Generated bundle index. Do not edit.
|
|
30411
30438
|
*/
|
|
30412
30439
|
|
|
30413
|
-
export { ActivationEventSource, ActiveItemEvent, Arrays, AuditedEntity, AutoStartSpec, BlobUrl, BytesFormat, BytesPerSecondFormat, BytesPipe, CardDropEvent, CardOrganizerData, CardStack, CollectionUtil, ComparatorBuilder, ConfirmDialogConfig, ContinuableListing, CsvColumnSpec, CsvSerializer, CsvSpec, CsvStreamExporter, CsvStreamExporterBuilder, CsvStreamExporterBuilderService, Currency, CurrencyCode, CurrencyUnit, CurrencyUnitRegistry, CustomDateAdapter, DataContextActivePage, DataContextAutoStarter, DataContextBase, DataContextBuilder, DataContextContinuableBase, DataContextContinuablePaged, DataContextContinuableToken, DataContextLifeCycleBinding, DataContextSelectionDirective, DataContextSimple, DataContextSnapshot, DataContextSourceEventBinding, DataContextStateIndicatorComponent, DataContextStatus, DataSourceAdapter, DataSourceBase, DataSourceChangeEvent, DataSourceChangeType, DataSourceProcessor, DataTransferFactory, DataTransferProgress, DataTransferProgressAggregate, DataTransferState, DataTransferStatus, DataViewIframeAdapterDirective, DataViewIframeComponent, DataViewMessage, DataViewMessageTypeValues, DataViewOptionsProviderBinding, DataViewSelection, DataViewSelectionInit, DateUtil, DelegateContinuableDataSource, DelegateDataSource, DelegateListDataSource, DelegatePagedDataSource, Dimensions, DrawerOutletBinding, DurationBucket, DurationFormat, ELDER_DATA_VIEW, ELDER_SELECT_BASE, ElderAccessDeniedComponent, ElderAccessDeniedModule, ElderAppHeaderComponent, ElderAuditModule, ElderAuditedEntityComponent, ElderAutoSelectFirstDirective, ElderAutocompleteComponent, ElderAutocompleteDirective, ElderAutocompleteManyDirective, ElderAutocompleteModule, ElderBadgeComponent, ElderBadgeDirective, ElderBadgeModule, ElderBlobViewerComponent, ElderBreadCrumbsComponent, ElderBreadCrumbsModule, ElderButtonGroupComponent, ElderButtonGroupModule, ElderCardComponent, ElderCardContentDirective, ElderCardHeaderActionsDirective, ElderCardHeaderComponent, ElderCardModule, ElderCardOrganizerComponent, ElderCardOrganizerModule, ElderCardPanelComponent, ElderCardStackComponent, ElderCardSubtitleDirective, ElderCardTitleDirective, ElderCheckboxState, ElderChipLabelDirective, ElderChipListSelectComponent, ElderChipListSelectModule, ElderChipsModule, ElderClearSelectDirective, ElderClipboardPutDirective, ElderClipboardService, ElderConfirmDialogComponent, ElderConnectivityModule, ElderConnectivityService, ElderContainersModule, ElderCsvExportBtnComponent, ElderCsvModule, ElderCurrencyModule, ElderCurrencyPipe, ElderDataCommonModule, ElderDataToolbarComponent, ElderDataTransferModule, ElderDataTransferService, ElderDataViewBaseComponent, ElderDataViewOptions, ElderDataViewOptionsProvider, ElderDateSwitcherComponent, ElderDateTimeInputComponent, ElderDelayedFocusDirective, ElderDeleteActiveDirective, ElderDetailDialogComponent, ElderDetailDirective, ElderDialogConfig, ElderDialogModule, ElderDialogPanelComponent, ElderDialogService, ElderDimensionsInputComponent, ElderDropZoneComponent, ElderDurationInputComponent, ElderEntityValueAccessorUtil, ElderEnumTranslationService, ElderErrorModule, ElderEventSourceService, ElderExceptionDetailComponent, ElderExpandToggleButtonComponent, ElderExpandToggleButtonModule, ElderFileDropZoneDirective, ElderFileModule, ElderFileSelectComponent, ElderFileSelectDirective, ElderFileUploadComponent, ElderFormFieldControlBase, ElderFormFieldDenseDirective, ElderFormFieldLabelDirective, ElderFormFieldNoHintDirective, ElderFormFieldNoSpinnerDirective, ElderFormsDirectivesModule, ElderFormsModule, ElderFromFieldBase, ElderFromFieldEntityBase, ElderFromFieldMultiEntityBase, ElderGlobalSearchComponent, ElderGlobalSearchModule, ElderGlobalSearchService, ElderGridComponent, ElderGridModule, ElderGridTileDirective, ElderGridToolbarDirective, ElderHeaderComponent, ElderHeaderModule, ElderHttpClient, ElderI18nEntitiesModule, ElderIFrameModule, ElderInfiniteAutocompleteDirective, ElderInfiniteScrollDirective, ElderInfiniteScrollModule, ElderInputPatternDirective, ElderIntervalInputComponent, ElderKeyEventDirective, ElderLabelInputComponent, ElderLabelsModule, ElderLanguageConfig, ElderLanguageInterceptor, ElderLanguageModule, ElderLanguageService, ElderLanguageSwitcherComponent, ElderLocalDateInputComponent, ElderLocalTimeInputComponent, ElderLocalesDeChModule, ElderLocalizedInputComponent, ElderLocalizedInputDialogComponent, ElderLocalizedInputDialogService, ElderLocalizedInputTableComponent, ElderLocalizedTextColumnDirective, ElderLocalizedTextsDirective, ElderMasterActivationDirective, ElderMasterDetailActivationEvent, ElderMasterDetailComponent, ElderMasterDetailMode, ElderMasterDetailModule, ElderMasterDetailService, ElderMasterDirective, ElderMaxValidator, ElderMeasuresModule, ElderMinValidator, ElderMultiEntityValueAccessorUtil, ElderMultiSelectBase, ElderMultiSelectChipsComponent, ElderMultiSelectFormField, ElderMultipleOfUtil, ElderMultipleOfValidator, ElderNavGroupComponent, ElderNavLinkComponent, ElderNavListComponent, ElderNavModule, ElderNextFocusableDirective, ElderNumberCellDirective, ElderOfflineIndicatorComponent, ElderOverlayComponent, ElderOverlayModule, ElderOverlayOriginDirective, ElderOverlayTriggerDirective, ElderPaddingDirective, ElderPanelComponent, ElderPanelModule, ElderPeriodInputComponent, ElderPipesModule, ElderPlugParentFormDirective, ElderProgressBarComponent, ElderProgressBarModule, ElderQuantityFormFieldComponent, ElderQuantityInputControlComponent, ElderQuantityModule, ElderQuantityPipe, ElderQuantityRangeValidator, ElderQuantityService, ElderQuantityTransformPipe, ElderQuestionDialogComponent, ElderRepeatPipe, ElderRepeatPipeLegacy, ElderRequiredDimensionsValidator, ElderRequiredIgnoreZeroValidator, ElderRequiredQuantityValidator, ElderRoundPipe, ElderRouteOutletDrawerService, ElderRouterOutletService, ElderRouterService, ElderSafeUrlPipe, ElderScrollContainerComponent, ElderScrollbarDirective, ElderScrollbarModule, ElderSearchBoxComponent, ElderSearchContextDirective, ElderSearchInputDirective, ElderSearchModule, ElderSearchPanelComponent, ElderSelectBase, ElderSelectChipAvatarDirective, ElderSelectChipDirective, ElderSelectComponent, ElderSelectComponentState, ElderSelectCustomInputDirective, ElderSelectFormField, ElderSelectModule, ElderSelectOnTabDirective, ElderSelectValueDirective, ElderSelectionDialogComponent, ElderSelectionDialogDirective, ElderSelectionMasterCheckboxComponent, ElderSelectionPopupTriggerAdapterDirective, ElderShellCenterDirective, ElderShellComponent, ElderShellModule, ElderShellNavigationToggleComponent, ElderShellService, ElderShellSideLeftDirective, ElderShellSideRightDirective, ElderShellSlotDirective, ElderSimpleSelectionViewComponent, ElderSimpleSelectionViewModule, ElderSingleSortComponent, ElderStackCardDirective, ElderStopEventPropagationDirective, ElderSvgViewerComponent, ElderTabDirective, ElderTabFocusTrapDirective, ElderTabGroupRoutingDirective, ElderTabModule, ElderTableActivationDirective, ElderTableComponent, ElderTableExtensionDirective, ElderTableGroup, ElderTableModel, ElderTableModelCdkTableBinding, ElderTableModelQueryGroup, ElderTableModule, ElderTableProviders, ElderTableRootDirective, ElderTableSortDirective, ElderTableToolbarDirective, ElderThemeApplierDirective, ElderThemeDirective, ElderThemeModule, ElderThemePreferenceService, ElderThemeService, ElderThemeToggleComponent, ElderTimeModule, ElderToastModule, ElderToastService, ElderTogglePanelComponent, ElderTogglePanelPrimaryDirective, ElderTogglePanelSecondaryDirective, ElderTogglePanelTriggerDirective, ElderToolbarColumnDirective, ElderToolbarComponent, ElderToolbarContentDirective, ElderToolbarModule, ElderToolbarService, ElderToolbarTitleComponent, ElderToolbarTitleService, ElderTouchedDirective, ElderTrimPipe, ElderTripleStateCheckboxDirective, ElderTruncatePipe, ElderUnitSelectDirective, ElderUnitService, ElderUrlFragment, ElderUrlFragmentModule, ElderUrlFragmentParamsService, ElderUrlFragmentSwitcherComponent, ElderValidationErrorDirective, ElderViewersModule, EntitySetPatch, ErrorUtil, ExceptionDetailCtx, FileEntry, FileListingRx, FileUploadClient, Filter, FilterContext, FilterUtil, FocusUtil, FormFieldBaseComponent, GlobalDragDropService, HttpClientBuilder, HttpClientPristine, HttpDataTransfer, HttpDataTransferAggregateComponent, HttpDataTransferComponent, HttpDataTransferIndicatorComponent, HttpDataTransferOverviewComponent, HttpParamsBuilder, I18nBase, I18nPickAsyncPipe, I18nPickPipe, I18nText, IFrameState, IframeCloseDirective, IframeDialogComponent, IframeHostComponent, IframeService, IframeSideContentComponent, IndexedEntities, InternalRestClientConfig, Interval, IsoDurationPipe, IsoIntervalParsePipe, IsoIntervalPipe, ItemActivationOptions, JsonMapUtil, KafentConfig, KafentEvent, KafentEventService, KafentEventStream, KafentEventStreamDisabled, KafentEventStreamSse, KafentEventTransport, KafentModule, KafentSseEventChannel, KafentTokenProvider, KafentTokenProviderSessionStorage, KafentTopicSse, KnownElderThemes, KnownLocaleTags, LocalListDataSource, LocalPagedDataSource, LocalisationPickerService, MasterSelectionState, MatTableDataContextBinding, MatTableDataContextBindingBuilder, MultiModelBaseComponent, NextNumberUtil, Objects, OnlineStatus, Page, PageRequest, Pageable, ParseUtil, Path, PathNode, PeriodBucket, PeriodDuration, PeriodFormat, ProcessIterationContext, ProcessState, PropertyPathUtil, Quantity, QueryListBinding, QuestionDialogConfig, ReactiveEventSource, ReactiveMap, RefreshingEntity, RestClient, RestClientConfig, RestClientContinuable, RestClientList, RestClientPaged, SearchQuery, SelectionModel, SelectionModelPopupDirective, Sets, SimpleLocalisationPicker, Sort, SortOption, SortUtil, StandardToastComponent, SubBar, SuggestionProvider, TemplateCompositeControl, TemplatedSelectionDialogComponent, ThemeSpec, TimeAgoPipe, TimeDurationPipe, TimeUtil, ToIsoDateStringPipe, ToastType, TokenChunkRequest, ToolbarHeader, Translated, TranslatedConverter, TranslatedEnumValue, TranslatedText, TypedEventMessage, Unit, UnitDimension, UnitDimensionInfo, UnitInfo, UnitRegistry, UrlBuilder, UrlQueryParams, UuidUtil, ValueAccessorBase, ValueWrapper, ViewProviders, WeightPipe, alphaNumStringComparator, buildFormIntegrationProviders, createDataOptionsProvider, createSelectionModel, existingOrNewElderTableModel, isActivePagedDataContext, isContinuableDataContext, isContinuableDataSource, isDataContext, isDataSource, isDataViewMessageType, isElderEntityValueAccessor, isElderMultiEntityValueAccessor, isListDataSource, isPagedDataSource, lazySample, lazySampleTime, naturalValueComparator, newElderTableModel, proxyControlContainer, registerLocale, runInZone, themeInit };
|
|
30414
|
-
//# sourceMappingURL=elderbyte-ngx-starter.mjs.map
|
|
30440
|
+
export { ActivationEventSource, Arrays, AuditedEntity, AutoStartSpec, BlobUrl, BytesFormat, BytesPerSecondFormat, BytesPipe, CardDropEvent, CardOrganizerData, CardStack, CollectionUtil, ComparatorBuilder, ConfirmDialogConfig, ContinuableListing, CsvColumnSpec, CsvSerializer, CsvSpec, CsvStreamExporter, CsvStreamExporterBuilder, CsvStreamExporterBuilderService, Currency, CurrencyCode, CurrencyUnit, CurrencyUnitRegistry, CustomDateAdapter, DataContextActivePage, DataContextAutoStarter, DataContextBase, DataContextBuilder, DataContextContinuableBase, DataContextContinuablePaged, DataContextContinuableToken, DataContextLifeCycleBinding, DataContextSelectionDirective, DataContextSimple, DataContextSnapshot, DataContextSourceEventBinding, DataContextStateIndicatorComponent, DataContextStatus, DataSourceAdapter, DataSourceBase, DataSourceChangeEvent, DataSourceChangeType, DataSourceProcessor, DataTransferFactory, DataTransferProgress, DataTransferProgressAggregate, DataTransferState, DataTransferStatus, DataViewIframeAdapterDirective, DataViewIframeComponent, DataViewMessage, DataViewMessageTypeValues, DataViewOptionsProviderBinding, DataViewSelection, DataViewSelectionInit, DateUtil, DelegateContinuableDataSource, DelegateDataSource, DelegateListDataSource, DelegatePagedDataSource, Dimensions, DrawerOutletBinding, DurationBucket, DurationFormat, ELDER_DATA_VIEW, ELDER_SELECT_BASE, ElderAccessDeniedComponent, ElderAccessDeniedModule, ElderAppHeaderComponent, ElderAuditModule, ElderAuditedEntityComponent, ElderAutoSelectFirstDirective, ElderAutocompleteComponent, ElderAutocompleteDirective, ElderAutocompleteManyDirective, ElderAutocompleteModule, ElderBadgeComponent, ElderBadgeDirective, ElderBadgeModule, ElderBlobViewerComponent, ElderBreadCrumbsComponent, ElderBreadCrumbsModule, ElderButtonGroupComponent, ElderButtonGroupModule, ElderCardComponent, ElderCardContentDirective, ElderCardHeaderActionsDirective, ElderCardHeaderComponent, ElderCardModule, ElderCardOrganizerComponent, ElderCardOrganizerModule, ElderCardPanelComponent, ElderCardStackComponent, ElderCardSubtitleDirective, ElderCardTitleDirective, ElderCheckboxState, ElderChipLabelDirective, ElderChipListSelectComponent, ElderChipListSelectModule, ElderChipsModule, ElderClearSelectDirective, ElderClipboardPutDirective, ElderClipboardService, ElderConfirmDialogComponent, ElderConnectivityModule, ElderConnectivityService, ElderContainersModule, ElderCsvExportBtnComponent, ElderCsvModule, ElderCurrencyModule, ElderCurrencyPipe, ElderDataCommonModule, ElderDataToolbarComponent, ElderDataTransferModule, ElderDataTransferService, ElderDataViewBaseComponent, ElderDataViewOptions, ElderDataViewOptionsProvider, ElderDateSwitcherComponent, ElderDateTimeInputComponent, ElderDelayedFocusDirective, ElderDeleteActiveDirective, ElderDetailDialogComponent, ElderDetailDirective, ElderDialogConfig, ElderDialogModule, ElderDialogPanelComponent, ElderDialogService, ElderDimensionsInputComponent, ElderDropZoneComponent, ElderDurationInputComponent, ElderEntityValueAccessorUtil, ElderEnumTranslationService, ElderErrorModule, ElderEventSourceService, ElderExceptionDetailComponent, ElderExpandToggleButtonComponent, ElderExpandToggleButtonModule, ElderFileDropZoneDirective, ElderFileModule, ElderFileSelectComponent, ElderFileSelectDirective, ElderFileUploadComponent, ElderFormFieldControlBase, ElderFormFieldDenseDirective, ElderFormFieldLabelDirective, ElderFormFieldNoHintDirective, ElderFormFieldNoSpinnerDirective, ElderFormsDirectivesModule, ElderFormsModule, ElderFromFieldBase, ElderFromFieldEntityBase, ElderFromFieldMultiEntityBase, ElderGlobalSearchComponent, ElderGlobalSearchModule, ElderGlobalSearchService, ElderGridComponent, ElderGridModule, ElderGridTileDirective, ElderGridToolbarDirective, ElderHeaderComponent, ElderHeaderModule, ElderHttpClient, ElderI18nEntitiesModule, ElderIFrameModule, ElderInfiniteAutocompleteDirective, ElderInfiniteScrollDirective, ElderInfiniteScrollModule, ElderInputPatternDirective, ElderIntervalInputComponent, ElderKeyEventDirective, ElderLabelInputComponent, ElderLabelsModule, ElderLanguageConfig, ElderLanguageInterceptor, ElderLanguageModule, ElderLanguageService, ElderLanguageSwitcherComponent, ElderLocalDateInputComponent, ElderLocalTimeInputComponent, ElderLocalesDeChModule, ElderLocalizedInputComponent, ElderLocalizedInputDialogComponent, ElderLocalizedInputDialogService, ElderLocalizedInputTableComponent, ElderLocalizedTextColumnDirective, ElderLocalizedTextsDirective, ElderMasterActivationDirective, ElderMasterDetailComponent, ElderMasterDetailModule, ElderMasterDetailService, ElderMasterDirective, ElderMaxValidator, ElderMeasuresModule, ElderMinValidator, ElderMultiEntityValueAccessorUtil, ElderMultiSelectBase, ElderMultiSelectChipsComponent, ElderMultiSelectFormField, ElderMultipleOfUtil, ElderMultipleOfValidator, ElderNavGroupComponent, ElderNavLinkComponent, ElderNavListComponent, ElderNavModule, ElderNextFocusableDirective, ElderNumberCellDirective, ElderOfflineIndicatorComponent, ElderOverlayComponent, ElderOverlayModule, ElderOverlayOriginDirective, ElderOverlayTriggerDirective, ElderPaddingDirective, ElderPanelComponent, ElderPanelModule, ElderPeriodInputComponent, ElderPipesModule, ElderPlugParentFormDirective, ElderProgressBarComponent, ElderProgressBarModule, ElderQuantityFormFieldComponent, ElderQuantityInputControlComponent, ElderQuantityModule, ElderQuantityPipe, ElderQuantityRangeValidator, ElderQuantityService, ElderQuantityTransformPipe, ElderQuestionDialogComponent, ElderRepeatPipe, ElderRepeatPipeLegacy, ElderRequiredDimensionsValidator, ElderRequiredIgnoreZeroValidator, ElderRequiredQuantityValidator, ElderRoundPipe, ElderRouteOutletDrawerService, ElderRouterOutletService, ElderRouterService, ElderSafeUrlPipe, ElderScrollContainerComponent, ElderScrollbarDirective, ElderScrollbarModule, ElderSearchBoxComponent, ElderSearchContextDirective, ElderSearchInputDirective, ElderSearchModule, ElderSearchPanelComponent, ElderSelectBase, ElderSelectChipAvatarDirective, ElderSelectChipDirective, ElderSelectComponent, ElderSelectComponentState, ElderSelectCustomInputDirective, ElderSelectFormField, ElderSelectModule, ElderSelectOnTabDirective, ElderSelectValueDirective, ElderSelectionDialogComponent, ElderSelectionDialogDirective, ElderSelectionMasterCheckboxComponent, ElderSelectionPopupTriggerAdapterDirective, ElderShellCenterDirective, ElderShellComponent, ElderShellModule, ElderShellNavigationToggleComponent, ElderShellService, ElderShellSideLeftDirective, ElderShellSideRightDirective, ElderShellSlotDirective, ElderSimpleSelectionViewComponent, ElderSimpleSelectionViewModule, ElderSingleSortComponent, ElderStackCardDirective, ElderStopEventPropagationDirective, ElderSvgViewerComponent, ElderTabDirective, ElderTabFocusTrapDirective, ElderTabGroupRoutingDirective, ElderTabModule, ElderTableActivationDirective, ElderTableComponent, ElderTableExtensionDirective, ElderTableGroup, ElderTableModel, ElderTableModelCdkTableBinding, ElderTableModelQueryGroup, ElderTableModule, ElderTableProviders, ElderTableRootDirective, ElderTableSortDirective, ElderTableToolbarDirective, ElderThemeApplierDirective, ElderThemeDirective, ElderThemeModule, ElderThemePreferenceService, ElderThemeService, ElderThemeToggleComponent, ElderTimeModule, ElderToastModule, ElderToastService, ElderTogglePanelComponent, ElderTogglePanelPrimaryDirective, ElderTogglePanelSecondaryDirective, ElderTogglePanelTriggerDirective, ElderToolbarColumnDirective, ElderToolbarComponent, ElderToolbarContentDirective, ElderToolbarModule, ElderToolbarService, ElderToolbarTitleComponent, ElderToolbarTitleService, ElderTouchedDirective, ElderTrimPipe, ElderTripleStateCheckboxDirective, ElderTruncatePipe, ElderUnitSelectDirective, ElderUnitService, ElderUrlFragment, ElderUrlFragmentModule, ElderUrlFragmentParamsService, ElderUrlFragmentSwitcherComponent, ElderValidationErrorDirective, ElderViewersModule, EntitySetPatch, ErrorUtil, ExceptionDetailCtx, FileEntry, FileListingRx, FileUploadClient, Filter, FilterContext, FilterUtil, FocusUtil, FormFieldBaseComponent, GlobalDragDropService, HttpClientBuilder, HttpClientPristine, HttpDataTransfer, HttpDataTransferAggregateComponent, HttpDataTransferComponent, HttpDataTransferIndicatorComponent, HttpDataTransferOverviewComponent, HttpParamsBuilder, I18nBase, I18nPickAsyncPipe, I18nPickPipe, I18nText, IFrameState, IframeCloseDirective, IframeDialogComponent, IframeHostComponent, IframeService, IframeSideContentComponent, IndexedEntities, InternalRestClientConfig, Interval, IsoDurationPipe, IsoIntervalParsePipe, IsoIntervalPipe, ItemActivationEvent, ItemActivationOptions, JsonMapUtil, KafentConfig, KafentEvent, KafentEventService, KafentEventStream, KafentEventStreamDisabled, KafentEventStreamSse, KafentEventTransport, KafentModule, KafentSseEventChannel, KafentTokenProvider, KafentTokenProviderSessionStorage, KafentTopicSse, KnownElderThemes, KnownLocaleTags, LocalListDataSource, LocalPagedDataSource, LocalisationPickerService, MasterDetailActivationEvent, MasterSelectionState, MatTableDataContextBinding, MatTableDataContextBindingBuilder, MultiModelBaseComponent, NextNumberUtil, Objects, OnlineStatus, Page, PageRequest, Pageable, ParseUtil, Path, PathNode, PeriodBucket, PeriodDuration, PeriodFormat, ProcessIterationContext, ProcessState, PropertyPathUtil, Quantity, QueryListBinding, QuestionDialogConfig, ReactiveEventSource, ReactiveMap, RefreshingEntity, RestClient, RestClientConfig, RestClientContinuable, RestClientList, RestClientPaged, SearchQuery, SelectionModel, SelectionModelPopupDirective, Sets, SimpleLocalisationPicker, Sort, SortOption, SortUtil, StandardToastComponent, SubBar, SuggestionProvider, TemplateCompositeControl, TemplatedSelectionDialogComponent, ThemeSpec, TimeAgoPipe, TimeDurationPipe, TimeUtil, ToIsoDateStringPipe, ToastType, TokenChunkRequest, ToolbarHeader, Translated, TranslatedConverter, TranslatedEnumValue, TranslatedText, TypedEventMessage, Unit, UnitDimension, UnitDimensionInfo, UnitInfo, UnitRegistry, UrlBuilder, UrlQueryParams, UuidUtil, ValueAccessorBase, ValueWrapper, ViewProviders, WeightPipe, alphaNumStringComparator, buildFormIntegrationProviders, createDataOptionsProvider, createSelectionModel, existingOrNewElderTableModel, isActivePagedDataContext, isContinuableDataContext, isContinuableDataSource, isDataContext, isDataSource, isDataViewMessageType, isElderEntityValueAccessor, isElderMultiEntityValueAccessor, isListDataSource, isPagedDataSource, lazySample, lazySampleTime, naturalValueComparator, newElderTableModel, proxyControlContainer, registerLocale, runInZone, themeInit };
|
|
30415
30441
|
//# sourceMappingURL=elderbyte-ngx-starter.mjs.map
|