@ionic/angular 8.0.0-dev.11709632212.139b6f63 → 8.0.0-dev.11711035263.183d2423
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/common/directives/control-value-accessors/value-accessor.d.ts +1 -1
- package/common/directives/navigation/back-button.d.ts +1 -4
- package/common/directives/navigation/nav.d.ts +10 -2
- package/common/directives/navigation/router-link-delegate.d.ts +2 -2
- package/common/directives/navigation/router-outlet.d.ts +6 -6
- package/common/directives/navigation/tabs.d.ts +5 -5
- package/common/overlays/modal.d.ts +1 -1
- package/common/overlays/popover.d.ts +1 -1
- package/common/providers/dom-controller.d.ts +1 -1
- package/css/palettes/dark.always.css.map +1 -0
- package/css/{themes → palettes}/dark.class.css +4 -4
- package/css/palettes/dark.class.css.map +1 -0
- package/css/palettes/dark.system.css.map +1 -0
- package/css/palettes/high-contrast-dark.always.css.map +1 -0
- package/css/{themes → palettes}/high-contrast-dark.class.css +10 -10
- package/css/palettes/high-contrast-dark.class.css.map +1 -0
- package/css/palettes/high-contrast-dark.system.css.map +1 -0
- package/css/palettes/high-contrast.always.css.map +1 -0
- package/css/{themes → palettes}/high-contrast.class.css +31 -31
- package/css/palettes/high-contrast.class.css.map +1 -0
- package/css/palettes/high-contrast.system.css.map +1 -0
- package/directives/control-value-accessors/boolean-value-accessor.d.ts +1 -1
- package/directives/control-value-accessors/numeric-value-accessor.d.ts +1 -1
- package/directives/control-value-accessors/select-value-accessor.d.ts +1 -1
- package/directives/control-value-accessors/text-value-accessor.d.ts +1 -1
- package/directives/navigation/ion-back-button.d.ts +1 -1
- package/directives/navigation/ion-nav.d.ts +1 -1
- package/directives/navigation/ion-router-outlet.d.ts +3 -3
- package/directives/navigation/ion-tabs.d.ts +1 -1
- package/directives/navigation/router-link-delegate.d.ts +2 -2
- package/directives/overlays/modal.d.ts +1 -1
- package/directives/overlays/popover.d.ts +1 -1
- package/directives/proxies-list.d.ts +1 -1
- package/directives/proxies.d.ts +89 -80
- package/directives/validators/max-validator.d.ts +1 -1
- package/directives/validators/min-validator.d.ts +1 -1
- package/esm2022/common/directives/control-value-accessors/value-accessor.mjs +145 -0
- package/esm2022/common/directives/navigation/back-button.mjs +61 -0
- package/esm2022/common/directives/navigation/nav-params.mjs +46 -0
- package/esm2022/common/directives/navigation/nav.mjs +49 -0
- package/esm2022/common/directives/navigation/router-link-delegate.mjs +123 -0
- package/esm2022/common/directives/navigation/router-outlet.mjs +480 -0
- package/esm2022/common/directives/navigation/stack-controller.mjs +280 -0
- package/esm2022/common/directives/navigation/tabs.mjs +174 -0
- package/esm2022/common/overlays/modal.mjs +91 -0
- package/esm2022/common/overlays/popover.mjs +83 -0
- package/esm2022/common/providers/angular-delegate.mjs +155 -0
- package/{esm2020 → esm2022}/common/providers/config.mjs +4 -4
- package/{esm2020 → esm2022}/common/providers/dom-controller.mjs +4 -4
- package/esm2022/common/providers/menu-controller.mjs +114 -0
- package/esm2022/common/providers/nav-controller.mjs +227 -0
- package/esm2022/common/providers/platform.mjs +257 -0
- package/esm2022/common/utils/overlay.mjs +26 -0
- package/esm2022/directives/control-value-accessors/boolean-value-accessor.mjs +41 -0
- package/esm2022/directives/control-value-accessors/numeric-value-accessor.mjs +49 -0
- package/esm2022/directives/control-value-accessors/select-value-accessor.mjs +38 -0
- package/esm2022/directives/control-value-accessors/text-value-accessor.mjs +37 -0
- package/{esm2020 → esm2022}/directives/navigation/ion-back-button.mjs +4 -4
- package/{esm2020 → esm2022}/directives/navigation/ion-nav.mjs +4 -4
- package/esm2022/directives/navigation/ion-router-outlet.mjs +52 -0
- package/esm2022/directives/navigation/ion-tabs.mjs +50 -0
- package/{esm2020 → esm2022}/directives/navigation/router-link-delegate.mjs +7 -7
- package/{esm2020 → esm2022}/directives/overlays/modal.mjs +5 -5
- package/{esm2020 → esm2022}/directives/overlays/popover.mjs +4 -4
- package/esm2022/directives/proxies-list.mjs +85 -0
- package/esm2022/directives/proxies.mjs +2234 -0
- package/{esm2020 → esm2022}/directives/validators/max-validator.mjs +4 -4
- package/{esm2020 → esm2022}/directives/validators/min-validator.mjs +4 -4
- package/{esm2020 → esm2022}/ionic-module.mjs +41 -41
- package/{esm2020 → esm2022}/providers/action-sheet-controller.mjs +4 -4
- package/{esm2020 → esm2022}/providers/alert-controller.mjs +4 -4
- package/{esm2020 → esm2022}/providers/animation-controller.mjs +4 -4
- package/esm2022/providers/gesture-controller.mjs +32 -0
- package/{esm2020 → esm2022}/providers/loading-controller.mjs +4 -4
- package/{esm2020 → esm2022}/providers/menu-controller.mjs +4 -4
- package/esm2022/providers/modal-controller.mjs +24 -0
- package/{esm2020 → esm2022}/providers/picker-controller.mjs +4 -4
- package/esm2022/providers/popover-controller.mjs +18 -0
- package/{esm2020 → esm2022}/providers/toast-controller.mjs +4 -4
- package/esm2022/standalone/directives/checkbox.mjs +74 -0
- package/esm2022/standalone/directives/datetime.mjs +93 -0
- package/esm2022/standalone/directives/icon.mjs +35 -0
- package/esm2022/standalone/directives/input.mjs +113 -0
- package/esm2022/standalone/directives/proxies.mjs +2138 -0
- package/esm2022/standalone/directives/radio-group.mjs +60 -0
- package/esm2022/standalone/directives/range.mjs +78 -0
- package/esm2022/standalone/directives/searchbar.mjs +82 -0
- package/esm2022/standalone/directives/segment.mjs +60 -0
- package/esm2022/standalone/directives/select.mjs +82 -0
- package/esm2022/standalone/directives/textarea.mjs +91 -0
- package/esm2022/standalone/directives/toggle.mjs +74 -0
- package/esm2022/standalone/navigation/back-button.mjs +32 -0
- package/esm2022/standalone/navigation/nav.mjs +28 -0
- package/{esm2020 → esm2022}/standalone/navigation/router-link-delegate.mjs +7 -7
- package/esm2022/standalone/navigation/router-outlet.mjs +60 -0
- package/esm2022/standalone/navigation/tabs.mjs +49 -0
- package/esm2022/standalone/overlays/modal.mjs +32 -0
- package/{esm2020 → esm2022}/standalone/overlays/popover.mjs +4 -4
- package/{esm2020 → esm2022}/standalone/providers/action-sheet-controller.mjs +4 -4
- package/{esm2020 → esm2022}/standalone/providers/alert-controller.mjs +4 -4
- package/{esm2020 → esm2022}/standalone/providers/animation-controller.mjs +4 -4
- package/esm2022/standalone/providers/gesture-controller.mjs +32 -0
- package/esm2022/standalone/providers/ionic-angular.mjs +38 -0
- package/{esm2020 → esm2022}/standalone/providers/loading-controller.mjs +4 -4
- package/{esm2020 → esm2022}/standalone/providers/menu-controller.mjs +4 -4
- package/esm2022/standalone/providers/modal-controller.mjs +26 -0
- package/{esm2020 → esm2022}/standalone/providers/picker-controller.mjs +4 -4
- package/esm2022/standalone/providers/popover-controller.mjs +20 -0
- package/{esm2020 → esm2022}/standalone/providers/toast-controller.mjs +4 -4
- package/{fesm2020 → fesm2022}/ionic-angular-common.mjs +221 -156
- package/fesm2022/ionic-angular-common.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/ionic-angular-standalone.mjs +616 -418
- package/fesm2022/ionic-angular-standalone.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/ionic-angular.mjs +593 -391
- package/fesm2022/ionic-angular.mjs.map +1 -0
- package/ionic-module.d.ts +1 -1
- package/package.json +16 -26
- package/schematics/add/files/root/theme/variables.css +10 -247
- package/schematics/utils/config.js +0 -1
- package/standalone/directives/checkbox.d.ts +1 -1
- package/standalone/directives/datetime.d.ts +1 -1
- package/standalone/directives/icon.d.ts +1 -1
- package/standalone/directives/input.d.ts +1 -1
- package/standalone/directives/proxies.d.ts +78 -69
- package/standalone/directives/radio-group.d.ts +1 -1
- package/standalone/directives/range.d.ts +1 -1
- package/standalone/directives/searchbar.d.ts +1 -1
- package/standalone/directives/segment.d.ts +1 -1
- package/standalone/directives/select.d.ts +1 -1
- package/standalone/directives/textarea.d.ts +1 -1
- package/standalone/directives/toggle.d.ts +1 -1
- package/standalone/navigation/back-button.d.ts +1 -1
- package/standalone/navigation/nav.d.ts +1 -1
- package/standalone/navigation/router-link-delegate.d.ts +2 -2
- package/standalone/navigation/router-outlet.d.ts +3 -3
- package/standalone/navigation/tabs.d.ts +1 -1
- package/standalone/overlays/modal.d.ts +1 -1
- package/standalone/overlays/popover.d.ts +1 -1
- package/standalone/providers/ionic-angular.d.ts +2 -2
- package/css/themes/dark.always.css.map +0 -1
- package/css/themes/dark.class.css.map +0 -1
- package/css/themes/dark.system.css.map +0 -1
- package/css/themes/high-contrast-dark.always.css.map +0 -1
- package/css/themes/high-contrast-dark.class.css.map +0 -1
- package/css/themes/high-contrast-dark.system.css.map +0 -1
- package/css/themes/high-contrast.always.css.map +0 -1
- package/css/themes/high-contrast.class.css.map +0 -1
- package/css/themes/high-contrast.system.css.map +0 -1
- package/esm2020/common/directives/control-value-accessors/value-accessor.mjs +0 -141
- package/esm2020/common/directives/navigation/back-button.mjs +0 -59
- package/esm2020/common/directives/navigation/nav-params.mjs +0 -45
- package/esm2020/common/directives/navigation/nav.mjs +0 -47
- package/esm2020/common/directives/navigation/router-link-delegate.mjs +0 -111
- package/esm2020/common/directives/navigation/router-outlet.mjs +0 -470
- package/esm2020/common/directives/navigation/stack-controller.mjs +0 -272
- package/esm2020/common/directives/navigation/tabs.mjs +0 -172
- package/esm2020/common/overlays/modal.mjs +0 -87
- package/esm2020/common/overlays/popover.mjs +0 -79
- package/esm2020/common/providers/angular-delegate.mjs +0 -152
- package/esm2020/common/providers/menu-controller.mjs +0 -113
- package/esm2020/common/providers/nav-controller.mjs +0 -221
- package/esm2020/common/providers/platform.mjs +0 -254
- package/esm2020/common/utils/overlay.mjs +0 -25
- package/esm2020/directives/control-value-accessors/boolean-value-accessor.mjs +0 -41
- package/esm2020/directives/control-value-accessors/numeric-value-accessor.mjs +0 -48
- package/esm2020/directives/control-value-accessors/select-value-accessor.mjs +0 -38
- package/esm2020/directives/control-value-accessors/text-value-accessor.mjs +0 -37
- package/esm2020/directives/navigation/ion-router-outlet.mjs +0 -43
- package/esm2020/directives/navigation/ion-tabs.mjs +0 -47
- package/esm2020/directives/proxies-list.mjs +0 -84
- package/esm2020/directives/proxies.mjs +0 -2047
- package/esm2020/providers/gesture-controller.mjs +0 -31
- package/esm2020/providers/modal-controller.mjs +0 -24
- package/esm2020/providers/popover-controller.mjs +0 -18
- package/esm2020/standalone/directives/checkbox.mjs +0 -72
- package/esm2020/standalone/directives/datetime.mjs +0 -91
- package/esm2020/standalone/directives/icon.mjs +0 -33
- package/esm2020/standalone/directives/input.mjs +0 -111
- package/esm2020/standalone/directives/proxies.mjs +0 -1970
- package/esm2020/standalone/directives/radio-group.mjs +0 -58
- package/esm2020/standalone/directives/range.mjs +0 -76
- package/esm2020/standalone/directives/searchbar.mjs +0 -80
- package/esm2020/standalone/directives/segment.mjs +0 -58
- package/esm2020/standalone/directives/select.mjs +0 -80
- package/esm2020/standalone/directives/textarea.mjs +0 -89
- package/esm2020/standalone/directives/toggle.mjs +0 -72
- package/esm2020/standalone/navigation/back-button.mjs +0 -32
- package/esm2020/standalone/navigation/nav.mjs +0 -28
- package/esm2020/standalone/navigation/router-outlet.mjs +0 -51
- package/esm2020/standalone/navigation/tabs.mjs +0 -46
- package/esm2020/standalone/overlays/modal.mjs +0 -32
- package/esm2020/standalone/providers/gesture-controller.mjs +0 -31
- package/esm2020/standalone/providers/ionic-angular.mjs +0 -43
- package/esm2020/standalone/providers/modal-controller.mjs +0 -26
- package/esm2020/standalone/providers/popover-controller.mjs +0 -20
- package/fesm2015/ionic-angular-common.mjs +0 -2484
- package/fesm2015/ionic-angular-common.mjs.map +0 -1
- package/fesm2015/ionic-angular-standalone.mjs +0 -3146
- package/fesm2015/ionic-angular-standalone.mjs.map +0 -1
- package/fesm2015/ionic-angular.mjs +0 -2790
- package/fesm2015/ionic-angular.mjs.map +0 -1
- package/fesm2020/ionic-angular-common.mjs.map +0 -1
- package/fesm2020/ionic-angular-standalone.mjs.map +0 -1
- package/fesm2020/ionic-angular.mjs.map +0 -1
- package/test/README.md +0 -118
- package/css/{themes → palettes}/dark.always.css +0 -0
- package/css/{themes → palettes}/dark.css +0 -0
- package/css/{themes → palettes}/dark.css.map +0 -0
- package/css/{themes → palettes}/dark.system.css +0 -0
- package/css/{themes → palettes}/high-contrast-dark.always.css +1 -1
- package/css/{themes → palettes}/high-contrast-dark.css +0 -0
- package/css/{themes → palettes}/high-contrast-dark.css.map +0 -0
- package/css/{themes → palettes}/high-contrast-dark.system.css +1 -1
- package/css/{themes → palettes}/high-contrast.always.css +25 -25
- package/css/{themes → palettes}/high-contrast.css +0 -0
- package/css/{themes → palettes}/high-contrast.css.map +0 -0
- package/css/{themes → palettes}/high-contrast.system.css +25 -25
- /package/{esm2020 → esm2022}/app-initialize.mjs +0 -0
- /package/{esm2020 → esm2022}/common/directives/control-value-accessors/index.mjs +0 -0
- /package/{esm2020 → esm2022}/common/directives/navigation/stack-utils.mjs +0 -0
- /package/{esm2020 → esm2022}/common/index.mjs +0 -0
- /package/{esm2020 → esm2022}/common/ionic-angular-common.mjs +0 -0
- /package/{esm2020 → esm2022}/common/types/interfaces.mjs +0 -0
- /package/{esm2020 → esm2022}/common/types/ionic-lifecycle-hooks.mjs +0 -0
- /package/{esm2020 → esm2022}/common/utils/proxy.mjs +0 -0
- /package/{esm2020 → esm2022}/common/utils/routing.mjs +0 -0
- /package/{esm2020 → esm2022}/common/utils/util.mjs +0 -0
- /package/{esm2020 → esm2022}/directives/angular-component-lib/utils.mjs +0 -0
- /package/{esm2020 → esm2022}/directives/control-value-accessors/index.mjs +0 -0
- /package/{esm2020 → esm2022}/directives/validators/index.mjs +0 -0
- /package/{esm2020 → esm2022}/index.mjs +0 -0
- /package/{esm2020 → esm2022}/ionic-angular.mjs +0 -0
- /package/{esm2020 → esm2022}/standalone/directives/angular-component-lib/utils.mjs +0 -0
- /package/{esm2020 → esm2022}/standalone/directives/index.mjs +0 -0
- /package/{esm2020 → esm2022}/standalone/index.mjs +0 -0
- /package/{esm2020 → esm2022}/standalone/ionic-angular-standalone.mjs +0 -0
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { ContentChild, Directive, TemplateRef, } from '@angular/core';
|
|
3
|
+
import { ProxyCmp, proxyOutputs } from '../utils/proxy';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
const POPOVER_INPUTS = [
|
|
6
|
+
'alignment',
|
|
7
|
+
'animated',
|
|
8
|
+
'arrow',
|
|
9
|
+
'keepContentsMounted',
|
|
10
|
+
'backdropDismiss',
|
|
11
|
+
'cssClass',
|
|
12
|
+
'dismissOnSelect',
|
|
13
|
+
'enterAnimation',
|
|
14
|
+
'event',
|
|
15
|
+
'isOpen',
|
|
16
|
+
'keyboardClose',
|
|
17
|
+
'leaveAnimation',
|
|
18
|
+
'mode',
|
|
19
|
+
'showBackdrop',
|
|
20
|
+
'translucent',
|
|
21
|
+
'trigger',
|
|
22
|
+
'triggerAction',
|
|
23
|
+
'reference',
|
|
24
|
+
'size',
|
|
25
|
+
'side',
|
|
26
|
+
];
|
|
27
|
+
const POPOVER_METHODS = ['present', 'dismiss', 'onDidDismiss', 'onWillDismiss'];
|
|
28
|
+
let IonPopover = class IonPopover {
|
|
29
|
+
z;
|
|
30
|
+
// TODO(FW-2827): type
|
|
31
|
+
template;
|
|
32
|
+
isCmpOpen = false;
|
|
33
|
+
el;
|
|
34
|
+
constructor(c, r, z) {
|
|
35
|
+
this.z = z;
|
|
36
|
+
this.el = r.nativeElement;
|
|
37
|
+
this.el.addEventListener('ionMount', () => {
|
|
38
|
+
this.isCmpOpen = true;
|
|
39
|
+
c.detectChanges();
|
|
40
|
+
});
|
|
41
|
+
this.el.addEventListener('didDismiss', () => {
|
|
42
|
+
this.isCmpOpen = false;
|
|
43
|
+
c.detectChanges();
|
|
44
|
+
});
|
|
45
|
+
proxyOutputs(this, this.el, [
|
|
46
|
+
'ionPopoverDidPresent',
|
|
47
|
+
'ionPopoverWillPresent',
|
|
48
|
+
'ionPopoverWillDismiss',
|
|
49
|
+
'ionPopoverDidDismiss',
|
|
50
|
+
'didPresent',
|
|
51
|
+
'willPresent',
|
|
52
|
+
'willDismiss',
|
|
53
|
+
'didDismiss',
|
|
54
|
+
]);
|
|
55
|
+
}
|
|
56
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IonPopover, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
|
|
57
|
+
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: IonPopover, selector: "ion-popover", inputs: { alignment: "alignment", animated: "animated", arrow: "arrow", keepContentsMounted: "keepContentsMounted", backdropDismiss: "backdropDismiss", cssClass: "cssClass", dismissOnSelect: "dismissOnSelect", enterAnimation: "enterAnimation", event: "event", isOpen: "isOpen", keyboardClose: "keyboardClose", leaveAnimation: "leaveAnimation", mode: "mode", showBackdrop: "showBackdrop", translucent: "translucent", trigger: "trigger", triggerAction: "triggerAction", reference: "reference", size: "size", side: "side" }, queries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0 });
|
|
58
|
+
};
|
|
59
|
+
IonPopover = __decorate([
|
|
60
|
+
ProxyCmp({
|
|
61
|
+
inputs: POPOVER_INPUTS,
|
|
62
|
+
methods: POPOVER_METHODS,
|
|
63
|
+
})
|
|
64
|
+
/**
|
|
65
|
+
* @Component extends from @Directive
|
|
66
|
+
* so by defining the inputs here we
|
|
67
|
+
* do not need to re-define them for the
|
|
68
|
+
* lazy loaded popover.
|
|
69
|
+
*/
|
|
70
|
+
], IonPopover);
|
|
71
|
+
export { IonPopover };
|
|
72
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IonPopover, decorators: [{
|
|
73
|
+
type: Directive,
|
|
74
|
+
args: [{
|
|
75
|
+
selector: 'ion-popover',
|
|
76
|
+
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
77
|
+
inputs: POPOVER_INPUTS,
|
|
78
|
+
}]
|
|
79
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { template: [{
|
|
80
|
+
type: ContentChild,
|
|
81
|
+
args: [TemplateRef, { static: false }]
|
|
82
|
+
}] } });
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvbW1vbi9zcmMvb3ZlcmxheXMvcG9wb3Zlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVMLFlBQVksRUFDWixTQUFTLEVBSVQsV0FBVyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBcUN4RCxNQUFNLGNBQWMsR0FBRztJQUNyQixXQUFXO0lBQ1gsVUFBVTtJQUNWLE9BQU87SUFDUCxxQkFBcUI7SUFDckIsaUJBQWlCO0lBQ2pCLFVBQVU7SUFDVixpQkFBaUI7SUFDakIsZ0JBQWdCO0lBQ2hCLE9BQU87SUFDUCxRQUFRO0lBQ1IsZUFBZTtJQUNmLGdCQUFnQjtJQUNoQixNQUFNO0lBQ04sY0FBYztJQUNkLGFBQWE7SUFDYixTQUFTO0lBQ1QsZUFBZTtJQUNmLFdBQVc7SUFDWCxNQUFNO0lBQ04sTUFBTTtDQUNQLENBQUM7QUFFRixNQUFNLGVBQWUsR0FBRyxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLGVBQWUsQ0FBQyxDQUFDO0FBbUJ6RSxJQUFNLFVBQVUsR0FBaEIsTUFBTSxVQUFVO0lBUXNDO0lBUDNELHNCQUFzQjtJQUN3QixRQUFRLENBQW1CO0lBRXpFLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFFUixFQUFFLENBQWM7SUFFMUIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFFMUIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFO1lBQ3hDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRTtZQUMxQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixDQUFDLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQUM7UUFDSCxZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUU7WUFDMUIsc0JBQXNCO1lBQ3RCLHVCQUF1QjtZQUN2Qix1QkFBdUI7WUFDdkIsc0JBQXNCO1lBQ3RCLFlBQVk7WUFDWixhQUFhO1lBQ2IsYUFBYTtZQUNiLFlBQVk7U0FDYixDQUFDLENBQUM7SUFDTCxDQUFDOzJIQTdCVSxVQUFVOytHQUFWLFVBQVUsbW1CQUVQLFdBQVc7O0FBRmQsVUFBVTtJQWpCdEIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLGNBQWM7UUFDdEIsT0FBTyxFQUFFLGVBQWU7S0FDekIsQ0FBQztJQUNGOzs7OztPQUtHO0dBUVUsVUFBVSxDQThCdEI7U0E5QlksVUFBVTs0RkFBVixVQUFVO2tCQVB0QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO29CQUN2Qix1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxjQUFjO2lCQUN2QjtzSkFLK0MsUUFBUTtzQkFBckQsWUFBWTt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbnRlbnRDaGlsZCxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIE5nWm9uZSxcbiAgVGVtcGxhdGVSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBDb21wb25lbnRzIH0gZnJvbSAnQGlvbmljL2NvcmUvY29tcG9uZW50cyc7XG5cbmltcG9ydCB7IFByb3h5Q21wLCBwcm94eU91dHB1dHMgfSBmcm9tICcuLi91dGlscy9wcm94eSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJb25Qb3BvdmVyIGV4dGVuZHMgQ29tcG9uZW50cy5Jb25Qb3BvdmVyIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIHBvcG92ZXIgaGFzIHByZXNlbnRlZC5cbiAgICovXG4gIGlvblBvcG92ZXJEaWRQcmVzZW50OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ+O1xuICAvKipcbiAgICogRW1pdHRlZCBiZWZvcmUgdGhlIHBvcG92ZXIgaGFzIHByZXNlbnRlZC5cbiAgICovXG4gIGlvblBvcG92ZXJXaWxsUHJlc2VudDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIHBvcG92ZXIgaGFzIGRpc21pc3NlZC5cbiAgICovXG4gIGlvblBvcG92ZXJXaWxsRGlzbWlzczogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIHBvcG92ZXIgaGFzIGRpc21pc3NlZC5cbiAgICovXG4gIGlvblBvcG92ZXJEaWREaXNtaXNzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ+O1xuICAvKipcbiAgICogRW1pdHRlZCBhZnRlciB0aGUgcG9wb3ZlciBoYXMgcHJlc2VudGVkLiBTaG9ydGhhbmQgZm9yIGlvblBvcG92ZXJEaWRQcmVzZW50LlxuICAgKi9cbiAgZGlkUHJlc2VudDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYmVmb3JlIHRoZSBwb3BvdmVyIGhhcyBwcmVzZW50ZWQuIFNob3J0aGFuZCBmb3IgaW9uUG9wb3ZlcldpbGxQcmVzZW50LlxuICAgKi9cbiAgd2lsbFByZXNlbnQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudD47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGFmdGVyIHRoZSBwb3BvdmVyIGhhcyBwcmVzZW50ZWQuIFNob3J0aGFuZCBmb3IgaW9uUG9wb3ZlcldpbGxEaXNtaXNzLlxuICAgKi9cbiAgd2lsbERpc21pc3M6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudD47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGFmdGVyIHRoZSBwb3BvdmVyIGhhcyBkaXNtaXNzZWQuIFNob3J0aGFuZCBmb3IgaW9uUG9wb3ZlckRpZERpc21pc3MuXG4gICAqL1xuICBkaWREaXNtaXNzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ+O1xufVxuXG5jb25zdCBQT1BPVkVSX0lOUFVUUyA9IFtcbiAgJ2FsaWdubWVudCcsXG4gICdhbmltYXRlZCcsXG4gICdhcnJvdycsXG4gICdrZWVwQ29udGVudHNNb3VudGVkJyxcbiAgJ2JhY2tkcm9wRGlzbWlzcycsXG4gICdjc3NDbGFzcycsXG4gICdkaXNtaXNzT25TZWxlY3QnLFxuICAnZW50ZXJBbmltYXRpb24nLFxuICAnZXZlbnQnLFxuICAnaXNPcGVuJyxcbiAgJ2tleWJvYXJkQ2xvc2UnLFxuICAnbGVhdmVBbmltYXRpb24nLFxuICAnbW9kZScsXG4gICdzaG93QmFja2Ryb3AnLFxuICAndHJhbnNsdWNlbnQnLFxuICAndHJpZ2dlcicsXG4gICd0cmlnZ2VyQWN0aW9uJyxcbiAgJ3JlZmVyZW5jZScsXG4gICdzaXplJyxcbiAgJ3NpZGUnLFxuXTtcblxuY29uc3QgUE9QT1ZFUl9NRVRIT0RTID0gWydwcmVzZW50JywgJ2Rpc21pc3MnLCAnb25EaWREaXNtaXNzJywgJ29uV2lsbERpc21pc3MnXTtcblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBQT1BPVkVSX0lOUFVUUyxcbiAgbWV0aG9kczogUE9QT1ZFUl9NRVRIT0RTLFxufSlcbi8qKlxuICogQENvbXBvbmVudCBleHRlbmRzIGZyb20gQERpcmVjdGl2ZVxuICogc28gYnkgZGVmaW5pbmcgdGhlIGlucHV0cyBoZXJlIHdlXG4gKiBkbyBub3QgbmVlZCB0byByZS1kZWZpbmUgdGhlbSBmb3IgdGhlXG4gKiBsYXp5IGxvYWRlZCBwb3BvdmVyLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdpb24tcG9wb3ZlcicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogUE9QT1ZFUl9JTlBVVFMsXG59KVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1jbGFzcy1zdWZmaXhcbmV4cG9ydCBjbGFzcyBJb25Qb3BvdmVyIHtcbiAgLy8gVE9ETyhGVy0yODI3KTogdHlwZVxuICBAQ29udGVudENoaWxkKFRlbXBsYXRlUmVmLCB7IHN0YXRpYzogZmFsc2UgfSkgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgaXNDbXBPcGVuID0gZmFsc2U7XG5cbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcblxuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICB0aGlzLmVsLmFkZEV2ZW50TGlzdGVuZXIoJ2lvbk1vdW50JywgKCkgPT4ge1xuICAgICAgdGhpcy5pc0NtcE9wZW4gPSB0cnVlO1xuICAgICAgYy5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSk7XG4gICAgdGhpcy5lbC5hZGRFdmVudExpc3RlbmVyKCdkaWREaXNtaXNzJywgKCkgPT4ge1xuICAgICAgdGhpcy5pc0NtcE9wZW4gPSBmYWxzZTtcbiAgICAgIGMuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0pO1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbXG4gICAgICAnaW9uUG9wb3ZlckRpZFByZXNlbnQnLFxuICAgICAgJ2lvblBvcG92ZXJXaWxsUHJlc2VudCcsXG4gICAgICAnaW9uUG9wb3ZlcldpbGxEaXNtaXNzJyxcbiAgICAgICdpb25Qb3BvdmVyRGlkRGlzbWlzcycsXG4gICAgICAnZGlkUHJlc2VudCcsXG4gICAgICAnd2lsbFByZXNlbnQnLFxuICAgICAgJ3dpbGxEaXNtaXNzJyxcbiAgICAgICdkaWREaXNtaXNzJyxcbiAgICBdKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { ApplicationRef, NgZone, Injectable, Injector, inject, createComponent, InjectionToken, } from '@angular/core';
|
|
2
|
+
import { LIFECYCLE_DID_ENTER, LIFECYCLE_DID_LEAVE, LIFECYCLE_WILL_ENTER, LIFECYCLE_WILL_LEAVE, LIFECYCLE_WILL_UNLOAD, } from '@ionic/core/components';
|
|
3
|
+
import { NavParams } from '../directives/navigation/nav-params';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
// TODO(FW-2827): types
|
|
6
|
+
export class AngularDelegate {
|
|
7
|
+
zone = inject(NgZone);
|
|
8
|
+
applicationRef = inject(ApplicationRef);
|
|
9
|
+
create(environmentInjector, injector, elementReferenceKey) {
|
|
10
|
+
return new AngularFrameworkDelegate(environmentInjector, injector, this.applicationRef, this.zone, elementReferenceKey);
|
|
11
|
+
}
|
|
12
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AngularDelegate, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
13
|
+
/** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AngularDelegate });
|
|
14
|
+
}
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AngularDelegate, decorators: [{
|
|
16
|
+
type: Injectable
|
|
17
|
+
}] });
|
|
18
|
+
export class AngularFrameworkDelegate {
|
|
19
|
+
environmentInjector;
|
|
20
|
+
injector;
|
|
21
|
+
applicationRef;
|
|
22
|
+
zone;
|
|
23
|
+
elementReferenceKey;
|
|
24
|
+
elRefMap = new WeakMap();
|
|
25
|
+
elEventsMap = new WeakMap();
|
|
26
|
+
constructor(environmentInjector, injector, applicationRef, zone, elementReferenceKey) {
|
|
27
|
+
this.environmentInjector = environmentInjector;
|
|
28
|
+
this.injector = injector;
|
|
29
|
+
this.applicationRef = applicationRef;
|
|
30
|
+
this.zone = zone;
|
|
31
|
+
this.elementReferenceKey = elementReferenceKey;
|
|
32
|
+
}
|
|
33
|
+
attachViewToDom(container, component, params, cssClasses) {
|
|
34
|
+
return this.zone.run(() => {
|
|
35
|
+
return new Promise((resolve) => {
|
|
36
|
+
const componentProps = {
|
|
37
|
+
...params,
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Ionic Angular passes a reference to a modal
|
|
41
|
+
* or popover that can be accessed using a
|
|
42
|
+
* variable in the overlay component. If
|
|
43
|
+
* elementReferenceKey is defined, then we should
|
|
44
|
+
* pass a reference to the component using
|
|
45
|
+
* elementReferenceKey as the key.
|
|
46
|
+
*/
|
|
47
|
+
if (this.elementReferenceKey !== undefined) {
|
|
48
|
+
componentProps[this.elementReferenceKey] = container;
|
|
49
|
+
}
|
|
50
|
+
const el = attachView(this.zone, this.environmentInjector, this.injector, this.applicationRef, this.elRefMap, this.elEventsMap, container, component, componentProps, cssClasses, this.elementReferenceKey);
|
|
51
|
+
resolve(el);
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
removeViewFromDom(_container, component) {
|
|
56
|
+
return this.zone.run(() => {
|
|
57
|
+
return new Promise((resolve) => {
|
|
58
|
+
const componentRef = this.elRefMap.get(component);
|
|
59
|
+
if (componentRef) {
|
|
60
|
+
componentRef.destroy();
|
|
61
|
+
this.elRefMap.delete(component);
|
|
62
|
+
const unbindEvents = this.elEventsMap.get(component);
|
|
63
|
+
if (unbindEvents) {
|
|
64
|
+
unbindEvents();
|
|
65
|
+
this.elEventsMap.delete(component);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
resolve();
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
export const attachView = (zone, environmentInjector, injector, applicationRef, elRefMap, elEventsMap, container, component, params, cssClasses, elementReferenceKey) => {
|
|
74
|
+
/**
|
|
75
|
+
* Wraps the injector with a custom injector that
|
|
76
|
+
* provides NavParams to the component.
|
|
77
|
+
*
|
|
78
|
+
* NavParams is a legacy feature from Ionic v3 that allows
|
|
79
|
+
* Angular developers to provide data to a component
|
|
80
|
+
* and access it by providing NavParams as a dependency
|
|
81
|
+
* in the constructor.
|
|
82
|
+
*
|
|
83
|
+
* The modern approach is to access the data directly
|
|
84
|
+
* from the component's class instance.
|
|
85
|
+
*/
|
|
86
|
+
const childInjector = Injector.create({
|
|
87
|
+
providers: getProviders(params),
|
|
88
|
+
parent: injector,
|
|
89
|
+
});
|
|
90
|
+
const componentRef = createComponent(component, {
|
|
91
|
+
environmentInjector,
|
|
92
|
+
elementInjector: childInjector,
|
|
93
|
+
});
|
|
94
|
+
const instance = componentRef.instance;
|
|
95
|
+
const hostElement = componentRef.location.nativeElement;
|
|
96
|
+
if (params) {
|
|
97
|
+
/**
|
|
98
|
+
* For modals and popovers, a reference to the component is
|
|
99
|
+
* added to `params` during the call to attachViewToDom. If
|
|
100
|
+
* a reference using this name is already set, this means
|
|
101
|
+
* the app is trying to use the name as a component prop,
|
|
102
|
+
* which will cause collisions.
|
|
103
|
+
*/
|
|
104
|
+
if (elementReferenceKey && instance[elementReferenceKey] !== undefined) {
|
|
105
|
+
console.error(`[Ionic Error]: ${elementReferenceKey} is a reserved property when using ${container.tagName.toLowerCase()}. Rename or remove the "${elementReferenceKey}" property from ${component.name}.`);
|
|
106
|
+
}
|
|
107
|
+
Object.assign(instance, params);
|
|
108
|
+
}
|
|
109
|
+
if (cssClasses) {
|
|
110
|
+
for (const cssClass of cssClasses) {
|
|
111
|
+
hostElement.classList.add(cssClass);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
const unbindEvents = bindLifecycleEvents(zone, instance, hostElement);
|
|
115
|
+
container.appendChild(hostElement);
|
|
116
|
+
applicationRef.attachView(componentRef.hostView);
|
|
117
|
+
elRefMap.set(hostElement, componentRef);
|
|
118
|
+
elEventsMap.set(hostElement, unbindEvents);
|
|
119
|
+
return hostElement;
|
|
120
|
+
};
|
|
121
|
+
const LIFECYCLES = [
|
|
122
|
+
LIFECYCLE_WILL_ENTER,
|
|
123
|
+
LIFECYCLE_DID_ENTER,
|
|
124
|
+
LIFECYCLE_WILL_LEAVE,
|
|
125
|
+
LIFECYCLE_DID_LEAVE,
|
|
126
|
+
LIFECYCLE_WILL_UNLOAD,
|
|
127
|
+
];
|
|
128
|
+
export const bindLifecycleEvents = (zone, instance, element) => {
|
|
129
|
+
return zone.run(() => {
|
|
130
|
+
const unregisters = LIFECYCLES.filter((eventName) => typeof instance[eventName] === 'function').map((eventName) => {
|
|
131
|
+
const handler = (ev) => instance[eventName](ev.detail);
|
|
132
|
+
element.addEventListener(eventName, handler);
|
|
133
|
+
return () => element.removeEventListener(eventName, handler);
|
|
134
|
+
});
|
|
135
|
+
return () => unregisters.forEach((fn) => fn());
|
|
136
|
+
});
|
|
137
|
+
};
|
|
138
|
+
const NavParamsToken = new InjectionToken('NavParamsToken');
|
|
139
|
+
const getProviders = (params) => {
|
|
140
|
+
return [
|
|
141
|
+
{
|
|
142
|
+
provide: NavParamsToken,
|
|
143
|
+
useValue: params,
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
provide: NavParams,
|
|
147
|
+
useFactory: provideNavParamsInjectable,
|
|
148
|
+
deps: [NavParamsToken],
|
|
149
|
+
},
|
|
150
|
+
];
|
|
151
|
+
};
|
|
152
|
+
const provideNavParamsInjectable = (params) => {
|
|
153
|
+
return new NavParams(params);
|
|
154
|
+
};
|
|
155
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1kZWxlZ2F0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvbW1vbi9zcmMvcHJvdmlkZXJzL2FuZ3VsYXItZGVsZWdhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGNBQWMsRUFDZCxNQUFNLEVBQ04sVUFBVSxFQUNWLFFBQVEsRUFFUixNQUFNLEVBQ04sZUFBZSxFQUNmLGNBQWMsR0FFZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUwsbUJBQW1CLEVBQ25CLG1CQUFtQixFQUNuQixvQkFBb0IsRUFDcEIsb0JBQW9CLEVBQ3BCLHFCQUFxQixHQUN0QixNQUFNLHdCQUF3QixDQUFDO0FBRWhDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFFaEUsdUJBQXVCO0FBR3ZCLE1BQU0sT0FBTyxlQUFlO0lBQ2xCLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEIsY0FBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUVoRCxNQUFNLENBQ0osbUJBQXdDLEVBQ3hDLFFBQWtCLEVBQ2xCLG1CQUE0QjtRQUU1QixPQUFPLElBQUksd0JBQXdCLENBQ2pDLG1CQUFtQixFQUNuQixRQUFRLEVBQ1IsSUFBSSxDQUFDLGNBQWMsRUFDbkIsSUFBSSxDQUFDLElBQUksRUFDVCxtQkFBbUIsQ0FDcEIsQ0FBQztJQUNKLENBQUM7MkhBaEJVLGVBQWU7K0hBQWYsZUFBZTs7NEZBQWYsZUFBZTtrQkFEM0IsVUFBVTs7QUFvQlgsTUFBTSxPQUFPLHdCQUF3QjtJQUt6QjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBUkYsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFrQyxDQUFDO0lBQ3pELFdBQVcsR0FBRyxJQUFJLE9BQU8sRUFBMkIsQ0FBQztJQUU3RCxZQUNVLG1CQUF3QyxFQUN4QyxRQUFrQixFQUNsQixjQUE4QixFQUM5QixJQUFZLEVB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Q0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQXBwbGljYXRpb25SZWYsXG4gIE5nWm9uZSxcbiAgSW5qZWN0YWJsZSxcbiAgSW5qZWN0b3IsXG4gIEVudmlyb25tZW50SW5qZWN0b3IsXG4gIGluamVjdCxcbiAgY3JlYXRlQ29tcG9uZW50LFxuICBJbmplY3Rpb25Ub2tlbixcbiAgQ29tcG9uZW50UmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEZyYW1ld29ya0RlbGVnYXRlLFxuICBMSUZFQ1lDTEVfRElEX0VOVEVSLFxuICBMSUZFQ1lDTEVfRElEX0xFQVZFLFxuICBMSUZFQ1lDTEVfV0lMTF9FTlRFUixcbiAgTElGRUNZQ0xFX1dJTExfTEVBVkUsXG4gIExJRkVDWUNMRV9XSUxMX1VOTE9BRCxcbn0gZnJvbSAnQGlvbmljL2NvcmUvY29tcG9uZW50cyc7XG5cbmltcG9ydCB7IE5hdlBhcmFtcyB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvbmF2aWdhdGlvbi9uYXYtcGFyYW1zJztcblxuLy8gVE9ETyhGVy0yODI3KTogdHlwZXNcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFuZ3VsYXJEZWxlZ2F0ZSB7XG4gIHByaXZhdGUgem9uZSA9IGluamVjdChOZ1pvbmUpO1xuICBwcml2YXRlIGFwcGxpY2F0aW9uUmVmID0gaW5qZWN0KEFwcGxpY2F0aW9uUmVmKTtcblxuICBjcmVhdGUoXG4gICAgZW52aXJvbm1lbnRJbmplY3RvcjogRW52aXJvbm1lbnRJbmplY3RvcixcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgZWxlbWVudFJlZmVyZW5jZUtleT86IHN0cmluZ1xuICApOiBBbmd1bGFyRnJhbWV3b3JrRGVsZWdhdGUge1xuICAgIHJldHVybiBuZXcgQW5ndWxhckZyYW1ld29ya0RlbGVnYXRlKFxuICAgICAgZW52aXJvbm1lbnRJbmplY3RvcixcbiAgICAgIGluamVjdG9yLFxuICAgICAgdGhpcy5hcHBsaWNhdGlvblJlZixcbiAgICAgIHRoaXMuem9uZSxcbiAgICAgIGVsZW1lbnRSZWZlcmVuY2VLZXlcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBbmd1bGFyRnJhbWV3b3JrRGVsZWdhdGUgaW1wbGVtZW50cyBGcmFtZXdvcmtEZWxlZ2F0ZSB7XG4gIHByaXZhdGUgZWxSZWZNYXAgPSBuZXcgV2Vha01hcDxIVE1MRWxlbWVudCwgQ29tcG9uZW50UmVmPGFueT4+KCk7XG4gIHByaXZhdGUgZWxFdmVudHNNYXAgPSBuZXcgV2Vha01hcDxIVE1MRWxlbWVudCwgKCkgPT4gdm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVudmlyb25tZW50SW5qZWN0b3I6IEVudmlyb25tZW50SW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBhcHBsaWNhdGlvblJlZjogQXBwbGljYXRpb25SZWYsXG4gICAgcHJpdmF0ZSB6b25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmZXJlbmNlS2V5Pzogc3RyaW5nXG4gICkge31cblxuICBhdHRhY2hWaWV3VG9Eb20oY29udGFpbmVyOiBhbnksIGNvbXBvbmVudDogYW55LCBwYXJhbXM/OiBhbnksIGNzc0NsYXNzZXM/OiBzdHJpbmdbXSk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudFByb3BzID0ge1xuICAgICAgICAgIC4uLnBhcmFtcyxcbiAgICAgICAgfTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogSW9uaWMgQW5ndWxhciBwYXNzZXMgYSByZWZlcmVuY2UgdG8gYSBtb2RhbFxuICAgICAgICAgKiBvciBwb3BvdmVyIHRoYXQgY2FuIGJlIGFjY2Vzc2VkIHVzaW5nIGFcbiAgICAgICAgICogdmFyaWFibGUgaW4gdGhlIG92ZXJsYXkgY29tcG9uZW50LiBJZlxuICAgICAgICAgKiBlbGVtZW50UmVmZXJlbmNlS2V5IGlzIGRlZmluZWQsIHRoZW4gd2Ugc2hvdWxkXG4gICAgICAgICAqIHBhc3MgYSByZWZlcmVuY2UgdG8gdGhlIGNvbXBvbmVudCB1c2luZ1xuICAgICAgICAgKiBlbGVtZW50UmVmZXJlbmNlS2V5IGFzIHRoZSBrZXkuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAodGhpcy5lbGVtZW50UmVmZXJlbmNlS2V5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBjb21wb25lbnRQcm9wc1t0aGlzLmVsZW1lbnRSZWZlcmVuY2VLZXldID0gY29udGFpbmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZWwgPSBhdHRhY2hWaWV3KFxuICAgICAgICAgIHRoaXMuem9uZSxcbiAgICAgICAgICB0aGlzLmVudmlyb25tZW50SW5qZWN0b3IsXG4gICAgICAgICAgdGhpcy5pbmplY3RvcixcbiAgICAgICAgICB0aGlzLmFwcGxpY2F0aW9uUmVmLFxuICAgICAgICAgIHRoaXMuZWxSZWZNYXAsXG4gICAgICAgICAgdGhpcy5lbEV2ZW50c01hcCxcbiAgICAgICAgICBjb250YWluZXIsXG4gICAgICAgICAgY29tcG9uZW50LFxuICAgICAgICAgIGNvbXBvbmVudFByb3BzLFxuICAgICAgICAgIGNzc0NsYXNzZXMsXG4gICAgICAgICAgdGhpcy5lbGVtZW50UmVmZXJlbmNlS2V5XG4gICAgICAgICk7XG4gICAgICAgIHJlc29sdmUoZWwpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICByZW1vdmVWaWV3RnJvbURvbShfY29udGFpbmVyOiBhbnksIGNvbXBvbmVudDogYW55KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMuZWxSZWZNYXAuZ2V0KGNvbXBvbmVudCk7XG4gICAgICAgIGlmIChjb21wb25lbnRSZWYpIHtcbiAgICAgICAgICBjb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgICAgICAgIHRoaXMuZWxSZWZNYXAuZGVsZXRlKGNvbXBvbmVudCk7XG4gICAgICAgICAgY29uc3QgdW5iaW5kRXZlbnRzID0gdGhpcy5lbEV2ZW50c01hcC5nZXQoY29tcG9uZW50KTtcbiAgICAgICAgICBpZiAodW5iaW5kRXZlbnRzKSB7XG4gICAgICAgICAgICB1bmJpbmRFdmVudHMoKTtcbiAgICAgICAgICAgIHRoaXMuZWxFdmVudHNNYXAuZGVsZXRlKGNvbXBvbmVudCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJlc29sdmUoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBhdHRhY2hWaWV3ID0gKFxuICB6b25lOiBOZ1pvbmUsXG4gIGVudmlyb25tZW50SW5qZWN0b3I6IEVudmlyb25tZW50SW5qZWN0b3IsXG4gIGluamVjdG9yOiBJbmplY3RvcixcbiAgYXBwbGljYXRpb25SZWY6IEFwcGxpY2F0aW9uUmVmLFxuICBlbFJlZk1hcDogV2Vha01hcDxIVE1MRWxlbWVudCwgQ29tcG9uZW50UmVmPGFueT4+LFxuICBlbEV2ZW50c01hcDogV2Vha01hcDxIVE1MRWxlbWVudCwgKCkgPT4gdm9pZD4sXG4gIGNvbnRhaW5lcjogYW55LFxuICBjb21wb25lbnQ6IGFueSxcbiAgcGFyYW1zOiBhbnksXG4gIGNzc0NsYXNzZXM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkLFxuICBlbGVtZW50UmVmZXJlbmNlS2V5OiBzdHJpbmcgfCB1bmRlZmluZWRcbik6IGFueSA9PiB7XG4gIC8qKlxuICAgKiBXcmFwcyB0aGUgaW5qZWN0b3Igd2l0aCBhIGN1c3RvbSBpbmplY3RvciB0aGF0XG4gICAqIHByb3ZpZGVzIE5hdlBhcmFtcyB0byB0aGUgY29tcG9uZW50LlxuICAgKlxuICAgKiBOYXZQYXJhbXMgaXMgYSBsZWdhY3kgZmVhdHVyZSBmcm9tIElvbmljIHYzIHRoYXQgYWxsb3dzXG4gICAqIEFuZ3VsYXIgZGV2ZWxvcGVycyB0byBwcm92aWRlIGRhdGEgdG8gYSBjb21wb25lbnRcbiAgICogYW5kIGFjY2VzcyBpdCBieSBwcm92aWRpbmcgTmF2UGFyYW1zIGFzIGEgZGVwZW5kZW5jeVxuICAgKiBpbiB0aGUgY29uc3RydWN0b3IuXG4gICAqXG4gICAqIFRoZSBtb2Rlcm4gYXBwcm9hY2ggaXMgdG8gYWNjZXNzIHRoZSBkYXRhIGRpcmVjdGx5XG4gICAqIGZyb20gdGhlIGNvbXBvbmVudCdzIGNsYXNzIGluc3RhbmNlLlxuICAgKi9cbiAgY29uc3QgY2hpbGRJbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgcHJvdmlkZXJzOiBnZXRQcm92aWRlcnMocGFyYW1zKSxcbiAgICBwYXJlbnQ6IGluamVjdG9yLFxuICB9KTtcblxuICBjb25zdCBjb21wb25lbnRSZWYgPSBjcmVhdGVDb21wb25lbnQ8YW55Pihjb21wb25lbnQsIHtcbiAgICBlbnZpcm9ubWVudEluamVjdG9yLFxuICAgIGVsZW1lbnRJbmplY3RvcjogY2hpbGRJbmplY3RvcixcbiAgfSk7XG5cbiAgY29uc3QgaW5zdGFuY2UgPSBjb21wb25lbnRSZWYuaW5zdGFuY2U7XG4gIGNvbnN0IGhvc3RFbGVtZW50ID0gY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgaWYgKHBhcmFtcykge1xuICAgIC8qKlxuICAgICAqIEZvciBtb2RhbHMgYW5kIHBvcG92ZXJzLCBhIHJlZmVyZW5jZSB0byB0aGUgY29tcG9uZW50IGlzXG4gICAgICogYWRkZWQgdG8gYHBhcmFtc2AgZHVyaW5nIHRoZSBjYWxsIHRvIGF0dGFjaFZpZXdUb0RvbS4gSWZcbiAgICAgKiBhIHJlZmVyZW5jZSB1c2luZyB0aGlzIG5hbWUgaXMgYWxyZWFkeSBzZXQsIHRoaXMgbWVhbnNcbiAgICAgKiB0aGUgYXBwIGlzIHRyeWluZyB0byB1c2UgdGhlIG5hbWUgYXMgYSBjb21wb25lbnQgcHJvcCxcbiAgICAgKiB3aGljaCB3aWxsIGNhdXNlIGNvbGxpc2lvbnMuXG4gICAgICovXG4gICAgaWYgKGVsZW1lbnRSZWZlcmVuY2VLZXkgJiYgaW5zdGFuY2VbZWxlbWVudFJlZmVyZW5jZUtleV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgYFtJb25pYyBFcnJvcl06ICR7ZWxlbWVudFJlZmVyZW5jZUtleX0gaXMgYSByZXNlcnZlZCBwcm9wZXJ0eSB3aGVuIHVzaW5nICR7Y29udGFpbmVyLnRhZ05hbWUudG9Mb3dlckNhc2UoKX0uIFJlbmFtZSBvciByZW1vdmUgdGhlIFwiJHtlbGVtZW50UmVmZXJlbmNlS2V5fVwiIHByb3BlcnR5IGZyb20gJHtcbiAgICAgICAgICBjb21wb25lbnQubmFtZVxuICAgICAgICB9LmBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgT2JqZWN0LmFzc2lnbihpbnN0YW5jZSwgcGFyYW1zKTtcbiAgfVxuICBpZiAoY3NzQ2xhc3Nlcykge1xuICAgIGZvciAoY29uc3QgY3NzQ2xhc3Mgb2YgY3NzQ2xhc3Nlcykge1xuICAgICAgaG9zdEVsZW1lbnQuY2xhc3NMaXN0LmFkZChjc3NDbGFzcyk7XG4gICAgfVxuICB9XG4gIGNvbnN0IHVuYmluZEV2ZW50cyA9IGJpbmRMaWZlY3ljbGVFdmVudHMoem9uZSwgaW5zdGFuY2UsIGhvc3RFbGVtZW50KTtcbiAgY29udGFpbmVyLmFwcGVuZENoaWxkKGhvc3RFbGVtZW50KTtcblxuICBhcHBsaWNhdGlvblJlZi5hdHRhY2hWaWV3KGNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG5cbiAgZWxSZWZNYXAuc2V0KGhvc3RFbGVtZW50LCBjb21wb25lbnRSZWYpO1xuICBlbEV2ZW50c01hcC5zZXQoaG9zdEVsZW1lbnQsIHVuYmluZEV2ZW50cyk7XG4gIHJldHVybiBob3N0RWxlbWVudDtcbn07XG5cbmNvbnN0IExJRkVDWUNMRVMgPSBbXG4gIExJRkVDWUNMRV9XSUxMX0VOVEVSLFxuICBMSUZFQ1lDTEVfRElEX0VOVEVSLFxuICBMSUZFQ1lDTEVfV0lMTF9MRUFWRSxcbiAgTElGRUNZQ0xFX0RJRF9MRUFWRSxcbiAgTElGRUNZQ0xFX1dJTExfVU5MT0FELFxuXTtcblxuZXhwb3J0IGNvbnN0IGJpbmRMaWZlY3ljbGVFdmVudHMgPSAoem9uZTogTmdab25lLCBpbnN0YW5jZTogYW55LCBlbGVtZW50OiBIVE1MRWxlbWVudCk6ICgoKSA9PiB2b2lkKSA9PiB7XG4gIHJldHVybiB6b25lLnJ1bigoKSA9PiB7XG4gICAgY29uc3QgdW5yZWdpc3RlcnMgPSBMSUZFQ1lDTEVTLmZpbHRlcigoZXZlbnROYW1lKSA9PiB0eXBlb2YgaW5zdGFuY2VbZXZlbnROYW1lXSA9PT0gJ2Z1bmN0aW9uJykubWFwKChldmVudE5hbWUpID0+IHtcbiAgICAgIGNvbnN0IGhhbmRsZXIgPSAoZXY6IGFueSkgPT4gaW5zdGFuY2VbZXZlbnROYW1lXShldi5kZXRhaWwpO1xuICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgaGFuZGxlcik7XG4gICAgICByZXR1cm4gKCkgPT4gZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgaGFuZGxlcik7XG4gICAgfSk7XG4gICAgcmV0dXJuICgpID0+IHVucmVnaXN0ZXJzLmZvckVhY2goKGZuKSA9PiBmbigpKTtcbiAgfSk7XG59O1xuXG5jb25zdCBOYXZQYXJhbXNUb2tlbiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxhbnk+KCdOYXZQYXJhbXNUb2tlbicpO1xuXG5jb25zdCBnZXRQcm92aWRlcnMgPSAocGFyYW1zOiB7IFtrZXk6IHN0cmluZ106IGFueSB9KSA9PiB7XG4gIHJldHVybiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTmF2UGFyYW1zVG9rZW4sXG4gICAgICB1c2VWYWx1ZTogcGFyYW1zLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTmF2UGFyYW1zLFxuICAgICAgdXNlRmFjdG9yeTogcHJvdmlkZU5hdlBhcmFtc0luamVjdGFibGUsXG4gICAgICBkZXBzOiBbTmF2UGFyYW1zVG9rZW5dLFxuICAgIH0sXG4gIF07XG59O1xuXG5jb25zdCBwcm92aWRlTmF2UGFyYW1zSW5qZWN0YWJsZSA9IChwYXJhbXM6IHsgW2tleTogc3RyaW5nXTogYW55IH0pID0+IHtcbiAgcmV0dXJuIG5ldyBOYXZQYXJhbXMocGFyYW1zKTtcbn07XG4iXX0=
|
|
@@ -22,10 +22,10 @@ export class Config {
|
|
|
22
22
|
}
|
|
23
23
|
return 0;
|
|
24
24
|
}
|
|
25
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Config, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
26
|
+
/** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Config, providedIn: 'root' });
|
|
25
27
|
}
|
|
26
|
-
|
|
27
|
-
/** @nocollapse */ Config.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: Config, providedIn: 'root' });
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: Config, decorators: [{
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Config, decorators: [{
|
|
29
29
|
type: Injectable,
|
|
30
30
|
args: [{
|
|
31
31
|
providedIn: 'root',
|
|
@@ -41,4 +41,4 @@ const getConfig = () => {
|
|
|
41
41
|
}
|
|
42
42
|
return null;
|
|
43
43
|
};
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29tbW9uL3NyYy9wcm92aWRlcnMvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVEzRCxNQUFNLE9BQU8sTUFBTTtJQUNqQixHQUFHLENBQUMsR0FBc0IsRUFBRSxRQUFjO1FBQ3hDLE1BQU0sQ0FBQyxHQUFHLFNBQVMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxFQUFFO1lBQ0wsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztTQUM3QjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFzQixFQUFFLFFBQWtCO1FBQ25ELE1BQU0sQ0FBQyxHQUFHLFNBQVMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxFQUFFO1lBQ0wsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztTQUNwQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELFNBQVMsQ0FBQyxHQUFzQixFQUFFLFFBQWlCO1FBQ2pELE1BQU0sQ0FBQyxHQUFHLFNBQVMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxFQUFFO1lBQ0wsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztTQUNuQztRQUNELE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQzsySEF2QlUsTUFBTTsrSEFBTixNQUFNLGNBRkwsTUFBTTs7NEZBRVAsTUFBTTtrQkFIbEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7O0FBMkJELE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxJQUFJLGNBQWMsQ0FBTSxZQUFZLENBQUMsQ0FBQztBQUVqRSxNQUFNLFNBQVMsR0FBRyxHQUFzQixFQUFFO0lBQ3hDLElBQUksT0FBUSxNQUFjLEtBQUssV0FBVyxFQUFFO1FBQzFDLE1BQU0sS0FBSyxHQUFJLE1BQTZCLENBQUMsS0FBSyxDQUFDO1FBQ25ELElBQUksS0FBSyxFQUFFLE1BQU0sRUFBRTtZQUNqQixPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUM7U0FDckI7S0FDRjtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgQ29uZmlnIGFzIENvcmVDb25maWcsIElvbmljQ29uZmlnIH0gZnJvbSAnQGlvbmljL2NvcmUvY29tcG9uZW50cyc7XG5cbmltcG9ydCB7IElvbmljV2luZG93IH0gZnJvbSAnLi4vdHlwZXMvaW50ZXJmYWNlcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBDb25maWcge1xuICBnZXQoa2V5OiBrZXlvZiBJb25pY0NvbmZpZywgZmFsbGJhY2s/OiBhbnkpOiBhbnkge1xuICAgIGNvbnN0IGMgPSBnZXRDb25maWcoKTtcbiAgICBpZiAoYykge1xuICAgICAgcmV0dXJuIGMuZ2V0KGtleSwgZmFsbGJhY2spO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGdldEJvb2xlYW4oa2V5OiBrZXlvZiBJb25pY0NvbmZpZywgZmFsbGJhY2s/OiBib29sZWFuKTogYm9vbGVhbiB7XG4gICAgY29uc3QgYyA9IGdldENvbmZpZygpO1xuICAgIGlmIChjKSB7XG4gICAgICByZXR1cm4gYy5nZXRCb29sZWFuKGtleSwgZmFsbGJhY2spO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBnZXROdW1iZXIoa2V5OiBrZXlvZiBJb25pY0NvbmZpZywgZmFsbGJhY2s/OiBudW1iZXIpOiBudW1iZXIge1xuICAgIGNvbnN0IGMgPSBnZXRDb25maWcoKTtcbiAgICBpZiAoYykge1xuICAgICAgcmV0dXJuIGMuZ2V0TnVtYmVyKGtleSwgZmFsbGJhY2spO1xuICAgIH1cbiAgICByZXR1cm4gMDtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgQ29uZmlnVG9rZW4gPSBuZXcgSW5qZWN0aW9uVG9rZW48YW55PignVVNFUkNPTkZJRycpO1xuXG5jb25zdCBnZXRDb25maWcgPSAoKTogQ29yZUNvbmZpZyB8IG51bGwgPT4ge1xuICBpZiAodHlwZW9mICh3aW5kb3cgYXMgYW55KSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBjb25zdCBJb25pYyA9ICh3aW5kb3cgYXMgYW55IGFzIElvbmljV2luZG93KS5Jb25pYztcbiAgICBpZiAoSW9uaWM/LmNvbmZpZykge1xuICAgICAgcmV0dXJuIElvbmljLmNvbmZpZztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59O1xuIl19
|
|
@@ -15,10 +15,10 @@ export class DomController {
|
|
|
15
15
|
write(cb) {
|
|
16
16
|
getQueue().write(cb);
|
|
17
17
|
}
|
|
18
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DomController, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
19
|
+
/** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DomController, providedIn: 'root' });
|
|
18
20
|
}
|
|
19
|
-
|
|
20
|
-
/** @nocollapse */ DomController.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DomController, providedIn: 'root' });
|
|
21
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DomController, decorators: [{
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DomController, decorators: [{
|
|
22
22
|
type: Injectable,
|
|
23
23
|
args: [{
|
|
24
24
|
providedIn: 'root',
|
|
@@ -41,4 +41,4 @@ const getQueue = () => {
|
|
|
41
41
|
write: (cb) => cb(),
|
|
42
42
|
};
|
|
43
43
|
};
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLWNvbnRyb2xsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb21tb24vc3JjL3Byb3ZpZGVycy9kb20tY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sYUFBYTtJQUN4Qjs7O09BR0c7SUFDSCxJQUFJLENBQUMsRUFBZTtRQUNsQixRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxFQUFlO1FBQ25CLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2QixDQUFDOzJIQWZVLGFBQWE7K0hBQWIsYUFBYSxjQUZaLE1BQU07OzRGQUVQLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COztBQW1CRCxNQUFNLFFBQVEsR0FBRyxHQUFHLEVBQUU7SUFDcEIsTUFBTSxHQUFHLEdBQUcsT0FBUSxNQUFjLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFFLElBQVksQ0FBQztJQUU1RSxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUU7UUFDZixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO1FBQ3hCLElBQUksS0FBSyxFQUFFLEtBQUssRUFBRTtZQUNoQixPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUM7U0FDcEI7UUFFRCxPQUFPO1lBQ0wsSUFBSSxFQUFFLENBQUMsRUFBTyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDO1lBQ2hELEtBQUssRUFBRSxDQUFDLEVBQU8sRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLEVBQUUsQ0FBQztTQUNsRCxDQUFDO0tBQ0g7SUFFRCxPQUFPO1FBQ0wsSUFBSSxFQUFFLENBQUMsRUFBTyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDdkIsS0FBSyxFQUFFLENBQUMsRUFBTyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUU7S0FDekIsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIERvbUNvbnRyb2xsZXIge1xuICAvKipcbiAgICogU2NoZWR1bGVzIGEgdGFzayB0byBydW4gZHVyaW5nIHRoZSBSRUFEIHBoYXNlIG9mIHRoZSBuZXh0IGZyYW1lLlxuICAgKiBUaGlzIHRhc2sgc2hvdWxkIG9ubHkgcmVhZCB0aGUgRE9NLCBidXQgbmV2ZXIgbW9kaWZ5IGl0LlxuICAgKi9cbiAgcmVhZChjYjogUmFmQ2FsbGJhY2spOiB2b2lkIHtcbiAgICBnZXRRdWV1ZSgpLnJlYWQoY2IpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNjaGVkdWxlcyBhIHRhc2sgdG8gcnVuIGR1cmluZyB0aGUgV1JJVEUgcGhhc2Ugb2YgdGhlIG5leHQgZnJhbWUuXG4gICAqIFRoaXMgdGFzayBzaG91bGQgd3JpdGUgdGhlIERPTSwgYnV0IG5ldmVyIFJFQUQgaXQuXG4gICAqL1xuICB3cml0ZShjYjogUmFmQ2FsbGJhY2spOiB2b2lkIHtcbiAgICBnZXRRdWV1ZSgpLndyaXRlKGNiKTtcbiAgfVxufVxuXG5jb25zdCBnZXRRdWV1ZSA9ICgpID0+IHtcbiAgY29uc3Qgd2luID0gdHlwZW9mICh3aW5kb3cgYXMgYW55KSAhPT0gJ3VuZGVmaW5lZCcgPyB3aW5kb3cgOiAobnVsbCBhcyBhbnkpO1xuXG4gIGlmICh3aW4gIT0gbnVsbCkge1xuICAgIGNvbnN0IElvbmljID0gd2luLklvbmljO1xuICAgIGlmIChJb25pYz8ucXVldWUpIHtcbiAgICAgIHJldHVybiBJb25pYy5xdWV1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgcmVhZDogKGNiOiBhbnkpID0+IHdpbi5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoY2IpLFxuICAgICAgd3JpdGU6IChjYjogYW55KSA9PiB3aW4ucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGNiKSxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICByZWFkOiAoY2I6IGFueSkgPT4gY2IoKSxcbiAgICB3cml0ZTogKGNiOiBhbnkpID0+IGNiKCksXG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBSYWZDYWxsYmFjayA9ICh0aW1lU3RhbXA/OiBudW1iZXIpID0+IHZvaWQ7XG4iXX0=
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
export class MenuController {
|
|
2
|
+
menuController;
|
|
3
|
+
constructor(menuController) {
|
|
4
|
+
this.menuController = menuController;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Programmatically open the Menu.
|
|
8
|
+
* @param [menuId] Optionally get the menu by its id, or side.
|
|
9
|
+
* @return returns a promise when the menu is fully opened
|
|
10
|
+
*/
|
|
11
|
+
open(menuId) {
|
|
12
|
+
return this.menuController.open(menuId);
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Programmatically close the Menu. If no `menuId` is given as the first
|
|
16
|
+
* argument then it'll close any menu which is open. If a `menuId`
|
|
17
|
+
* is given then it'll close that exact menu.
|
|
18
|
+
* @param [menuId] Optionally get the menu by its id, or side.
|
|
19
|
+
* @return returns a promise when the menu is fully closed
|
|
20
|
+
*/
|
|
21
|
+
close(menuId) {
|
|
22
|
+
return this.menuController.close(menuId);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Toggle the menu. If it's closed, it will open, and if opened, it
|
|
26
|
+
* will close.
|
|
27
|
+
* @param [menuId] Optionally get the menu by its id, or side.
|
|
28
|
+
* @return returns a promise when the menu has been toggled
|
|
29
|
+
*/
|
|
30
|
+
toggle(menuId) {
|
|
31
|
+
return this.menuController.toggle(menuId);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Used to enable or disable a menu. For example, there could be multiple
|
|
35
|
+
* left menus, but only one of them should be able to be opened at the same
|
|
36
|
+
* time. If there are multiple menus on the same side, then enabling one menu
|
|
37
|
+
* will also automatically disable all the others that are on the same side.
|
|
38
|
+
* @param [menuId] Optionally get the menu by its id, or side.
|
|
39
|
+
* @return Returns the instance of the menu, which is useful for chaining.
|
|
40
|
+
*/
|
|
41
|
+
enable(shouldEnable, menuId) {
|
|
42
|
+
return this.menuController.enable(shouldEnable, menuId);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Used to enable or disable the ability to swipe open the menu.
|
|
46
|
+
* @param shouldEnable True if it should be swipe-able, false if not.
|
|
47
|
+
* @param [menuId] Optionally get the menu by its id, or side.
|
|
48
|
+
* @return Returns the instance of the menu, which is useful for chaining.
|
|
49
|
+
*/
|
|
50
|
+
swipeGesture(shouldEnable, menuId) {
|
|
51
|
+
return this.menuController.swipeGesture(shouldEnable, menuId);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* @param [menuId] Optionally get the menu by its id, or side.
|
|
55
|
+
* @return Returns true if the specified menu is currently open, otherwise false.
|
|
56
|
+
* If the menuId is not specified, it returns true if ANY menu is currenly open.
|
|
57
|
+
*/
|
|
58
|
+
isOpen(menuId) {
|
|
59
|
+
return this.menuController.isOpen(menuId);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* @param [menuId] Optionally get the menu by its id, or side.
|
|
63
|
+
* @return Returns true if the menu is currently enabled, otherwise false.
|
|
64
|
+
*/
|
|
65
|
+
isEnabled(menuId) {
|
|
66
|
+
return this.menuController.isEnabled(menuId);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Used to get a menu instance. If a `menuId` is not provided then it'll
|
|
70
|
+
* return the first menu found. If a `menuId` is `left` or `right`, then
|
|
71
|
+
* it'll return the enabled menu on that side. Otherwise, if a `menuId` is
|
|
72
|
+
* provided, then it'll try to find the menu using the menu's `id`
|
|
73
|
+
* property. If a menu is not found then it'll return `null`.
|
|
74
|
+
* @param [menuId] Optionally get the menu by its id, or side.
|
|
75
|
+
* @return Returns the instance of the menu if found, otherwise `null`.
|
|
76
|
+
*/
|
|
77
|
+
get(menuId) {
|
|
78
|
+
return this.menuController.get(menuId);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* @return Returns the instance of the menu already opened, otherwise `null`.
|
|
82
|
+
*/
|
|
83
|
+
getOpen() {
|
|
84
|
+
return this.menuController.getOpen();
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* @return Returns an array of all menu instances.
|
|
88
|
+
*/
|
|
89
|
+
getMenus() {
|
|
90
|
+
return this.menuController.getMenus();
|
|
91
|
+
}
|
|
92
|
+
registerAnimation(name, animation) {
|
|
93
|
+
return this.menuController.registerAnimation(name, animation);
|
|
94
|
+
}
|
|
95
|
+
isAnimating() {
|
|
96
|
+
return this.menuController.isAnimating();
|
|
97
|
+
}
|
|
98
|
+
_getOpenSync() {
|
|
99
|
+
return this.menuController._getOpenSync();
|
|
100
|
+
}
|
|
101
|
+
_createAnimation(type, menuCmp) {
|
|
102
|
+
return this.menuController._createAnimation(type, menuCmp);
|
|
103
|
+
}
|
|
104
|
+
_register(menu) {
|
|
105
|
+
return this.menuController._register(menu);
|
|
106
|
+
}
|
|
107
|
+
_unregister(menu) {
|
|
108
|
+
return this.menuController._unregister(menu);
|
|
109
|
+
}
|
|
110
|
+
_setOpen(menu, shouldOpen, animated) {
|
|
111
|
+
return this.menuController._setOpen(menu, shouldOpen, animated);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29tbW9uL3NyYy9wcm92aWRlcnMvbWVudS1jb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxjQUFjO0lBQ0w7SUFBcEIsWUFBb0IsY0FBK0I7UUFBL0IsbUJBQWMsR0FBZCxjQUFjLENBQWlCO0lBQUcsQ0FBQztJQUV2RDs7OztPQUlHO0lBQ0gsSUFBSSxDQUFDLE1BQWU7UUFDbEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsS0FBSyxDQUFDLE1BQWU7UUFDbkIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsTUFBZTtRQUNwQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsTUFBTSxDQUFDLFlBQXFCLEVBQUUsTUFBZTtRQUMzQyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxZQUFZLENBQUMsWUFBcUIsRUFBRSxNQUFlO1FBQ2pELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLE1BQWU7UUFDcEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUyxDQUFDLE1BQWU7UUFDdkIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxHQUFHLENBQUMsTUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7T0FFRztJQUNILE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsSUFBWSxFQUFFLFNBQTJCO1FBQ3pELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQVksRUFBRSxPQUFjO1FBQzNDLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUFXO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFXO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFXLEVBQUUsVUFBbUIsRUFBRSxRQUFpQjtRQUMxRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDbEUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBNZW51Q29udHJvbGxlckksIEFuaW1hdGlvbkJ1aWxkZXIsIE1lbnVJLCBBbmltYXRpb24gfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzJztcblxuZXhwb3J0IGNsYXNzIE1lbnVDb250cm9sbGVyIGltcGxlbWVudHMgTWVudUNvbnRyb2xsZXJJIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtZW51Q29udHJvbGxlcjogTWVudUNvbnRyb2xsZXJJKSB7fVxuXG4gIC8qKlxuICAgKiBQcm9ncmFtbWF0aWNhbGx5IG9wZW4gdGhlIE1lbnUuXG4gICAqIEBwYXJhbSBbbWVudUlkXSAgT3B0aW9uYWxseSBnZXQgdGhlIG1lbnUgYnkgaXRzIGlkLCBvciBzaWRlLlxuICAgKiBAcmV0dXJuIHJldHVybnMgYSBwcm9taXNlIHdoZW4gdGhlIG1lbnUgaXMgZnVsbHkgb3BlbmVkXG4gICAqL1xuICBvcGVuKG1lbnVJZD86IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLm1lbnVDb250cm9sbGVyLm9wZW4obWVudUlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9ncmFtbWF0aWNhbGx5IGNsb3NlIHRoZSBNZW51LiBJZiBubyBgbWVudUlkYCBpcyBnaXZlbiBhcyB0aGUgZmlyc3RcbiAgICogYXJndW1lbnQgdGhlbiBpdCdsbCBjbG9zZSBhbnkgbWVudSB3aGljaCBpcyBvcGVuLiBJZiBhIGBtZW51SWRgXG4gICAqIGlzIGdpdmVuIHRoZW4gaXQnbGwgY2xvc2UgdGhhdCBleGFjdCBtZW51LlxuICAgKiBAcGFyYW0gW21lbnVJZF0gIE9wdGlvbmFsbHkgZ2V0IHRoZSBtZW51IGJ5IGl0cyBpZCwgb3Igc2lkZS5cbiAgICogQHJldHVybiByZXR1cm5zIGEgcHJvbWlzZSB3aGVuIHRoZSBtZW51IGlzIGZ1bGx5IGNsb3NlZFxuICAgKi9cbiAgY2xvc2UobWVudUlkPzogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMubWVudUNvbnRyb2xsZXIuY2xvc2UobWVudUlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUb2dnbGUgdGhlIG1lbnUuIElmIGl0J3MgY2xvc2VkLCBpdCB3aWxsIG9wZW4sIGFuZCBpZiBvcGVuZWQsIGl0XG4gICAqIHdpbGwgY2xvc2UuXG4gICAqIEBwYXJhbSBbbWVudUlkXSAgT3B0aW9uYWxseSBnZXQgdGhlIG1lbnUgYnkgaXRzIGlkLCBvciBzaWRlLlxuICAgKiBAcmV0dXJuIHJldHVybnMgYSBwcm9taXNlIHdoZW4gdGhlIG1lbnUgaGFzIGJlZW4gdG9nZ2xlZFxuICAgKi9cbiAgdG9nZ2xlKG1lbnVJZD86IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLm1lbnVDb250cm9sbGVyLnRvZ2dsZShtZW51SWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gZW5hYmxlIG9yIGRpc2FibGUgYSBtZW51LiBGb3IgZXhhbXBsZSwgdGhlcmUgY291bGQgYmUgbXVsdGlwbGVcbiAgICogbGVmdCBtZW51cywgYnV0IG9ubHkgb25lIG9mIHRoZW0gc2hvdWxkIGJlIGFibGUgdG8gYmUgb3BlbmVkIGF0IHRoZSBzYW1lXG4gICAqIHRpbWUuIElmIHRoZXJlIGFyZSBtdWx0aXBsZSBtZW51cyBvbiB0aGUgc2FtZSBzaWRlLCB0aGVuIGVuYWJsaW5nIG9uZSBtZW51XG4gICAqIHdpbGwgYWxzbyBhdXRvbWF0aWNhbGx5IGRpc2FibGUgYWxsIHRoZSBvdGhlcnMgdGhhdCBhcmUgb24gdGhlIHNhbWUgc2lkZS5cbiAgICogQHBhcmFtIFttZW51SWRdICBPcHRpb25hbGx5IGdldCB0aGUgbWVudSBieSBpdHMgaWQsIG9yIHNpZGUuXG4gICAqIEByZXR1cm4gUmV0dXJucyB0aGUgaW5zdGFuY2Ugb2YgdGhlIG1lbnUsIHdoaWNoIGlzIHVzZWZ1bCBmb3IgY2hhaW5pbmcuXG4gICAqL1xuICBlbmFibGUoc2hvdWxkRW5hYmxlOiBib29sZWFuLCBtZW51SWQ/OiBzdHJpbmcpOiBQcm9taXNlPEhUTUxJb25NZW51RWxlbWVudCB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiB0aGlzLm1lbnVDb250cm9sbGVyLmVuYWJsZShzaG91bGRFbmFibGUsIG1lbnVJZCk7XG4gIH1cblxuICAvKipcbiAgICogVXNlZCB0byBlbmFibGUgb3IgZGlzYWJsZSB0aGUgYWJpbGl0eSB0byBzd2lwZSBvcGVuIHRoZSBtZW51LlxuICAgKiBAcGFyYW0gc2hvdWxkRW5hYmxlICBUcnVlIGlmIGl0IHNob3VsZCBiZSBzd2lwZS1hYmxlLCBmYWxzZSBpZiBub3QuXG4gICAqIEBwYXJhbSBbbWVudUlkXSAgT3B0aW9uYWxseSBnZXQgdGhlIG1lbnUgYnkgaXRzIGlkLCBvciBzaWRlLlxuICAgKiBAcmV0dXJuIFJldHVybnMgdGhlIGluc3RhbmNlIG9mIHRoZSBtZW51LCB3aGljaCBpcyB1c2VmdWwgZm9yIGNoYWluaW5nLlxuICAgKi9cbiAgc3dpcGVHZXN0dXJlKHNob3VsZEVuYWJsZTogYm9vbGVhbiwgbWVudUlkPzogc3RyaW5nKTogUHJvbWlzZTxIVE1MSW9uTWVudUVsZW1lbnQgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gdGhpcy5tZW51Q29udHJvbGxlci5zd2lwZUdlc3R1cmUoc2hvdWxkRW5hYmxlLCBtZW51SWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBbbWVudUlkXSBPcHRpb25hbGx5IGdldCB0aGUgbWVudSBieSBpdHMgaWQsIG9yIHNpZGUuXG4gICAqIEByZXR1cm4gUmV0dXJucyB0cnVlIGlmIHRoZSBzcGVjaWZpZWQgbWVudSBpcyBjdXJyZW50bHkgb3Blbiwgb3RoZXJ3aXNlIGZhbHNlLlxuICAgKiBJZiB0aGUgbWVudUlkIGlzIG5vdCBzcGVjaWZpZWQsIGl0IHJldHVybnMgdHJ1ZSBpZiBBTlkgbWVudSBpcyBjdXJyZW5seSBvcGVuLlxuICAgKi9cbiAgaXNPcGVuKG1lbnVJZD86IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLm1lbnVDb250cm9sbGVyLmlzT3BlbihtZW51SWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBbbWVudUlkXSAgT3B0aW9uYWxseSBnZXQgdGhlIG1lbnUgYnkgaXRzIGlkLCBvciBzaWRlLlxuICAgKiBAcmV0dXJuIFJldHVybnMgdHJ1ZSBpZiB0aGUgbWVudSBpcyBjdXJyZW50bHkgZW5hYmxlZCwgb3RoZXJ3aXNlIGZhbHNlLlxuICAgKi9cbiAgaXNFbmFibGVkKG1lbnVJZD86IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLm1lbnVDb250cm9sbGVyLmlzRW5hYmxlZChtZW51SWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gZ2V0IGEgbWVudSBpbnN0YW5jZS4gSWYgYSBgbWVudUlkYCBpcyBub3QgcHJvdmlkZWQgdGhlbiBpdCdsbFxuICAgKiByZXR1cm4gdGhlIGZpcnN0IG1lbnUgZm91bmQuIElmIGEgYG1lbnVJZGAgaXMgYGxlZnRgIG9yIGByaWdodGAsIHRoZW5cbiAgICogaXQnbGwgcmV0dXJuIHRoZSBlbmFibGVkIG1lbnUgb24gdGhhdCBzaWRlLiBPdGhlcndpc2UsIGlmIGEgYG1lbnVJZGAgaXNcbiAgICogcHJvdmlkZWQsIHRoZW4gaXQnbGwgdHJ5IHRvIGZpbmQgdGhlIG1lbnUgdXNpbmcgdGhlIG1lbnUncyBgaWRgXG4gICAqIHByb3BlcnR5LiBJZiBhIG1lbnUgaXMgbm90IGZvdW5kIHRoZW4gaXQnbGwgcmV0dXJuIGBudWxsYC5cbiAgICogQHBhcmFtIFttZW51SWRdICBPcHRpb25hbGx5IGdldCB0aGUgbWVudSBieSBpdHMgaWQsIG9yIHNpZGUuXG4gICAqIEByZXR1cm4gUmV0dXJucyB0aGUgaW5zdGFuY2Ugb2YgdGhlIG1lbnUgaWYgZm91bmQsIG90aGVyd2lzZSBgbnVsbGAuXG4gICAqL1xuICBnZXQobWVudUlkPzogc3RyaW5nKTogUHJvbWlzZTxIVE1MSW9uTWVudUVsZW1lbnQgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gdGhpcy5tZW51Q29udHJvbGxlci5nZXQobWVudUlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJuIFJldHVybnMgdGhlIGluc3RhbmNlIG9mIHRoZSBtZW51IGFscmVhZHkgb3BlbmVkLCBvdGhlcndpc2UgYG51bGxgLlxuICAgKi9cbiAgZ2V0T3BlbigpOiBQcm9taXNlPEhUTUxJb25NZW51RWxlbWVudCB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiB0aGlzLm1lbnVDb250cm9sbGVyLmdldE9wZW4oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJuIFJldHVybnMgYW4gYXJyYXkgb2YgYWxsIG1lbnUgaW5zdGFuY2VzLlxuICAgKi9cbiAgZ2V0TWVudXMoKTogUHJvbWlzZTxIVE1MSW9uTWVudUVsZW1lbnRbXT4ge1xuICAgIHJldHVybiB0aGlzLm1lbnVDb250cm9sbGVyLmdldE1lbnVzKCk7XG4gIH1cblxuICByZWdpc3RlckFuaW1hdGlvbihuYW1lOiBzdHJpbmcsIGFuaW1hdGlvbjogQW5pbWF0aW9uQnVpbGRlcik6IHZvaWQge1xuICAgIHJldHVybiB0aGlzLm1lbnVDb250cm9sbGVyLnJlZ2lzdGVyQW5pbWF0aW9uKG5hbWUsIGFuaW1hdGlvbik7XG4gIH1cblxuICBpc0FuaW1hdGluZygpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5tZW51Q29udHJvbGxlci5pc0FuaW1hdGluZygpO1xuICB9XG5cbiAgX2dldE9wZW5TeW5jKCk6IEhUTUxJb25NZW51RWxlbWVudCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMubWVudUNvbnRyb2xsZXIuX2dldE9wZW5TeW5jKCk7XG4gIH1cblxuICBfY3JlYXRlQW5pbWF0aW9uKHR5cGU6IHN0cmluZywgbWVudUNtcDogTWVudUkpOiBQcm9taXNlPEFuaW1hdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLm1lbnVDb250cm9sbGVyLl9jcmVhdGVBbmltYXRpb24odHlwZSwgbWVudUNtcCk7XG4gIH1cblxuICBfcmVnaXN0ZXIobWVudTogTWVudUkpOiB2b2lkIHtcbiAgICByZXR1cm4gdGhpcy5tZW51Q29udHJvbGxlci5fcmVnaXN0ZXIobWVudSk7XG4gIH1cblxuICBfdW5yZWdpc3RlcihtZW51OiBNZW51SSk6IHZvaWQge1xuICAgIHJldHVybiB0aGlzLm1lbnVDb250cm9sbGVyLl91bnJlZ2lzdGVyKG1lbnUpO1xuICB9XG5cbiAgX3NldE9wZW4obWVudTogTWVudUksIHNob3VsZE9wZW46IGJvb2xlYW4sIGFuaW1hdGVkOiBib29sZWFuKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMubWVudUNvbnRyb2xsZXIuX3NldE9wZW4obWVudSwgc2hvdWxkT3BlbiwgYW5pbWF0ZWQpO1xuICB9XG59XG4iXX0=
|