@ionic/angular 7.3.4-dev.11695650636.128f2ec9 → 7.3.4-dev.11695654072.17597cce
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/README.md +0 -20
- package/app-initialize.d.ts +1 -1
- package/css/core.css +100 -0
- package/css/core.css.map +1 -1
- package/css/display.css +33 -0
- package/css/display.css.map +1 -1
- package/css/float-elements.css +33 -0
- package/css/float-elements.css.map +1 -1
- package/css/global.bundle.css +84 -6
- package/css/global.bundle.css.map +1 -1
- package/css/ionic-swiper.css +33 -0
- package/css/ionic-swiper.css.map +1 -1
- package/css/ionic.bundle.css +1 -1
- package/css/ionic.bundle.css.map +1 -1
- package/css/padding.css +33 -0
- package/css/padding.css.map +1 -1
- package/css/structure.css +33 -0
- package/css/structure.css.map +1 -1
- package/css/text-alignment.css +33 -0
- package/css/text-alignment.css.map +1 -1
- package/css/text-transformation.css +33 -0
- package/css/text-transformation.css.map +1 -1
- package/css/typography.css +51 -6
- package/css/typography.css.map +1 -1
- package/css/utils.bundle.css +165 -0
- package/css/utils.bundle.css.map +1 -1
- 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/radio-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/{common/directives → directives}/control-value-accessors/value-accessor.d.ts +2 -2
- package/directives/navigation/ion-back-button.d.ts +16 -6
- package/directives/navigation/ion-router-outlet.d.ts +122 -4
- package/directives/navigation/ion-tabs.d.ts +64 -4
- package/directives/navigation/nav-delegate.d.ts +9 -0
- package/directives/navigation/router-link-delegate.d.ts +41 -7
- package/{common/directives → directives}/navigation/stack-utils.d.ts +1 -1
- package/directives/overlays/modal.d.ts +47 -3
- package/directives/overlays/popover.d.ts +43 -3
- package/directives/proxies-list.d.ts +1 -1
- package/directives/proxies.d.ts +26 -0
- package/esm2020/app-initialize.mjs +2 -2
- package/esm2020/directives/control-value-accessors/boolean-value-accessor.mjs +4 -4
- package/esm2020/directives/control-value-accessors/numeric-value-accessor.mjs +2 -2
- package/esm2020/directives/control-value-accessors/radio-value-accessor.mjs +3 -6
- package/esm2020/directives/control-value-accessors/select-value-accessor.mjs +2 -2
- package/esm2020/directives/control-value-accessors/text-value-accessor.mjs +2 -2
- package/esm2020/directives/control-value-accessors/value-accessor.mjs +141 -0
- package/esm2020/directives/navigation/ion-back-button.mjs +36 -15
- package/esm2020/directives/navigation/ion-router-outlet.mjs +435 -6
- package/esm2020/directives/navigation/ion-tabs.mjs +166 -9
- package/esm2020/directives/navigation/nav-delegate.mjs +42 -0
- package/esm2020/directives/navigation/nav-params.mjs +45 -0
- package/esm2020/directives/navigation/router-link-delegate.mjs +92 -11
- package/esm2020/directives/navigation/stack-controller.mjs +275 -0
- package/esm2020/directives/navigation/stack-utils.mjs +73 -0
- package/esm2020/directives/overlays/modal.mjs +88 -8
- package/esm2020/directives/overlays/popover.mjs +87 -8
- package/esm2020/directives/proxies-list.mjs +3 -1
- package/esm2020/directives/proxies.mjs +53 -1
- package/esm2020/index.mjs +21 -4
- package/esm2020/ionic-core.mjs +6 -0
- package/esm2020/ionic-module.mjs +32 -14
- package/esm2020/providers/action-sheet-controller.mjs +18 -0
- package/esm2020/providers/alert-controller.mjs +18 -0
- package/esm2020/providers/angular-delegate.mjs +152 -0
- package/esm2020/providers/animation-controller.mjs +37 -0
- package/esm2020/providers/config.mjs +44 -0
- package/esm2020/providers/dom-controller.mjs +44 -0
- package/esm2020/providers/gesture-controller.mjs +31 -0
- package/esm2020/providers/loading-controller.mjs +18 -0
- package/esm2020/providers/menu-controller.mjs +100 -0
- package/esm2020/providers/modal-controller.mjs +25 -0
- package/esm2020/providers/nav-controller.mjs +221 -0
- package/esm2020/providers/picker-controller.mjs +18 -0
- package/esm2020/providers/platform.mjs +246 -0
- package/esm2020/providers/popover-controller.mjs +25 -0
- package/esm2020/providers/toast-controller.mjs +18 -0
- package/esm2020/types/interfaces.mjs +2 -0
- package/esm2020/util/ionic-router-reuse-strategy.mjs +55 -0
- package/esm2020/util/overlay.mjs +25 -0
- package/esm2020/util/util.mjs +10 -0
- package/fesm2015/ionic-angular.mjs +2645 -151
- package/fesm2015/ionic-angular.mjs.map +1 -1
- package/fesm2020/ionic-angular.mjs +2637 -152
- package/fesm2020/ionic-angular.mjs.map +1 -1
- package/index.d.ts +19 -3
- package/ionic-core.d.ts +2 -0
- package/ionic-module.d.ts +2 -2
- package/package.json +2 -18
- package/{common/providers → providers}/action-sheet-controller.d.ts +2 -2
- package/{common/providers → providers}/alert-controller.d.ts +2 -2
- package/{common/providers → providers}/angular-delegate.d.ts +1 -1
- package/{common/providers → providers}/animation-controller.d.ts +1 -1
- package/{common/providers → providers}/config.d.ts +1 -1
- package/{common/providers → providers}/gesture-controller.d.ts +1 -1
- package/{common/providers → providers}/loading-controller.d.ts +2 -2
- package/{common/providers → providers}/modal-controller.d.ts +2 -2
- package/{common/providers → providers}/nav-controller.d.ts +2 -2
- package/{common/providers → providers}/picker-controller.d.ts +2 -2
- package/{common/providers → providers}/platform.d.ts +1 -1
- package/{common/providers → providers}/popover-controller.d.ts +2 -2
- package/{common/providers → providers}/toast-controller.d.ts +2 -2
- package/test/README.md +0 -8
- package/{common/types → types}/interfaces.d.ts +4 -0
- package/common/directives/control-value-accessors/index.d.ts +0 -1
- package/common/directives/navigation/back-button.d.ts +0 -26
- package/common/directives/navigation/nav.d.ts +0 -13
- package/common/directives/navigation/router-link-delegate.d.ts +0 -50
- package/common/directives/navigation/router-outlet.d.ts +0 -103
- package/common/directives/navigation/tabs.d.ts +0 -74
- package/common/index.d.ts +0 -28
- package/common/overlays/modal.d.ts +0 -50
- package/common/overlays/popover.d.ts +0 -46
- package/common/utils/proxy.d.ts +0 -8
- package/directives/navigation/ion-nav.d.ts +0 -8
- package/esm2020/common/directives/control-value-accessors/index.mjs +0 -2
- 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 -461
- package/esm2020/common/directives/navigation/stack-controller.mjs +0 -275
- package/esm2020/common/directives/navigation/stack-utils.mjs +0 -73
- package/esm2020/common/directives/navigation/tabs.mjs +0 -172
- package/esm2020/common/index.mjs +0 -28
- package/esm2020/common/ionic-angular-common.mjs +0 -5
- package/esm2020/common/overlays/modal.mjs +0 -87
- package/esm2020/common/overlays/popover.mjs +0 -79
- package/esm2020/common/providers/action-sheet-controller.mjs +0 -18
- package/esm2020/common/providers/alert-controller.mjs +0 -18
- package/esm2020/common/providers/angular-delegate.mjs +0 -152
- package/esm2020/common/providers/animation-controller.mjs +0 -37
- package/esm2020/common/providers/config.mjs +0 -44
- package/esm2020/common/providers/dom-controller.mjs +0 -44
- package/esm2020/common/providers/gesture-controller.mjs +0 -31
- package/esm2020/common/providers/loading-controller.mjs +0 -18
- package/esm2020/common/providers/menu-controller.mjs +0 -100
- package/esm2020/common/providers/modal-controller.mjs +0 -25
- package/esm2020/common/providers/nav-controller.mjs +0 -221
- package/esm2020/common/providers/picker-controller.mjs +0 -18
- package/esm2020/common/providers/platform.mjs +0 -246
- package/esm2020/common/providers/popover-controller.mjs +0 -25
- package/esm2020/common/providers/toast-controller.mjs +0 -18
- package/esm2020/common/types/interfaces.mjs +0 -2
- package/esm2020/common/utils/overlay.mjs +0 -25
- package/esm2020/common/utils/proxy.mjs +0 -47
- package/esm2020/common/utils/routing.mjs +0 -55
- package/esm2020/common/utils/util.mjs +0 -10
- package/esm2020/directives/navigation/ion-nav.mjs +0 -21
- package/esm2020/standalone/directives/angular-component-lib/utils.mjs +0 -51
- package/esm2020/standalone/directives/checkbox.mjs +0 -73
- package/esm2020/standalone/directives/datetime.mjs +0 -90
- package/esm2020/standalone/directives/icon.mjs +0 -33
- package/esm2020/standalone/directives/index.mjs +0 -13
- package/esm2020/standalone/directives/input.mjs +0 -112
- package/esm2020/standalone/directives/proxies.mjs +0 -2268
- package/esm2020/standalone/directives/radio-group.mjs +0 -58
- package/esm2020/standalone/directives/radio.mjs +0 -62
- package/esm2020/standalone/directives/range.mjs +0 -77
- package/esm2020/standalone/directives/searchbar.mjs +0 -80
- package/esm2020/standalone/directives/segment.mjs +0 -58
- package/esm2020/standalone/directives/select.mjs +0 -81
- package/esm2020/standalone/directives/textarea.mjs +0 -90
- package/esm2020/standalone/directives/toggle.mjs +0 -73
- package/esm2020/standalone/index.mjs +0 -15
- package/esm2020/standalone/ionic-angular-standalone.mjs +0 -5
- package/esm2020/standalone/navigation/back-button.mjs +0 -32
- package/esm2020/standalone/navigation/nav.mjs +0 -28
- package/esm2020/standalone/navigation/router-link-delegate.mjs +0 -30
- package/esm2020/standalone/navigation/router-outlet.mjs +0 -23
- package/esm2020/standalone/navigation/tabs.mjs +0 -46
- package/esm2020/standalone/overlays/modal.mjs +0 -32
- package/esm2020/standalone/overlays/popover.mjs +0 -28
- package/esm2020/standalone/providers/ionic-angular.mjs +0 -41
- package/fesm2015/ionic-angular-common.mjs +0 -2620
- package/fesm2015/ionic-angular-common.mjs.map +0 -1
- package/fesm2015/ionic-angular-standalone.mjs +0 -3288
- package/fesm2015/ionic-angular-standalone.mjs.map +0 -1
- package/fesm2020/ionic-angular-common.mjs +0 -2609
- package/fesm2020/ionic-angular-common.mjs.map +0 -1
- package/fesm2020/ionic-angular-standalone.mjs +0 -3286
- package/fesm2020/ionic-angular-standalone.mjs.map +0 -1
- package/standalone/directives/angular-component-lib/utils.d.ts +0 -9
- package/standalone/directives/checkbox.d.ts +0 -30
- package/standalone/directives/datetime.d.ts +0 -30
- package/standalone/directives/icon.d.ts +0 -9
- package/standalone/directives/index.d.ts +0 -12
- package/standalone/directives/input.d.ts +0 -47
- package/standalone/directives/proxies.d.ts +0 -903
- package/standalone/directives/radio-group.d.ts +0 -18
- package/standalone/directives/radio.d.ts +0 -22
- package/standalone/directives/range.d.ts +0 -47
- package/standalone/directives/searchbar.d.ts +0 -45
- package/standalone/directives/segment.d.ts +0 -19
- package/standalone/directives/select.d.ts +0 -34
- package/standalone/directives/textarea.d.ts +0 -37
- package/standalone/directives/toggle.d.ts +0 -28
- package/standalone/index.d.ts +0 -12
- package/standalone/navigation/back-button.d.ts +0 -9
- package/standalone/navigation/nav.d.ts +0 -8
- package/standalone/navigation/router-link-delegate.d.ts +0 -10
- package/standalone/navigation/router-outlet.d.ts +0 -6
- package/standalone/navigation/tabs.d.ts +0 -12
- package/standalone/overlays/modal.d.ts +0 -6
- package/standalone/overlays/popover.d.ts +0 -6
- package/standalone/providers/ionic-angular.d.ts +0 -3
- /package/{common/directives → directives}/navigation/nav-params.d.ts +0 -0
- /package/{common/directives → directives}/navigation/stack-controller.d.ts +0 -0
- /package/{common/providers → providers}/dom-controller.d.ts +0 -0
- /package/{common/providers → providers}/menu-controller.d.ts +0 -0
- /package/{common/utils/routing.d.ts → util/ionic-router-reuse-strategy.d.ts} +0 -0
- /package/{common/utils → util}/overlay.d.ts +0 -0
- /package/{common/utils → util}/util.d.ts +0 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ElementRef, Injector, EnvironmentInjector } from '@angular/core';
|
|
2
|
+
import { AngularDelegate } from '../../providers/angular-delegate';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class NavDelegate {
|
|
5
|
+
protected el: HTMLElement;
|
|
6
|
+
constructor(ref: ElementRef, environmentInjector: EnvironmentInjector, injector: Injector, angularDelegate: AngularDelegate);
|
|
7
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NavDelegate, never>;
|
|
8
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NavDelegate, "ion-nav", never, {}, {}, never, never, false>;
|
|
9
|
+
}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { LocationStrategy } from '@angular/common';
|
|
2
|
+
import { ElementRef, OnChanges, OnInit } from '@angular/core';
|
|
3
|
+
import { Router, RouterLink } from '@angular/router';
|
|
4
|
+
import { AnimationBuilder, RouterDirection } from '@ionic/core';
|
|
5
|
+
import { NavController } from '../../providers/nav-controller';
|
|
2
6
|
import * as i0 from "@angular/core";
|
|
3
7
|
/**
|
|
4
8
|
* Adds support for Ionic routing directions and animations to the base Angular router link directive.
|
|
@@ -6,11 +10,41 @@ import * as i0 from "@angular/core";
|
|
|
6
10
|
* When the router link is clicked, the directive will assign the direction and
|
|
7
11
|
* animation so that the routing integration will transition correctly.
|
|
8
12
|
*/
|
|
9
|
-
export declare class RouterLinkDelegateDirective
|
|
10
|
-
|
|
11
|
-
|
|
13
|
+
export declare class RouterLinkDelegateDirective implements OnInit, OnChanges {
|
|
14
|
+
private locationStrategy;
|
|
15
|
+
private navCtrl;
|
|
16
|
+
private elementRef;
|
|
17
|
+
private router;
|
|
18
|
+
private routerLink?;
|
|
19
|
+
routerDirection: RouterDirection;
|
|
20
|
+
routerAnimation?: AnimationBuilder;
|
|
21
|
+
constructor(locationStrategy: LocationStrategy, navCtrl: NavController, elementRef: ElementRef, router: Router, routerLink?: RouterLink | undefined);
|
|
22
|
+
ngOnInit(): void;
|
|
23
|
+
ngOnChanges(): void;
|
|
24
|
+
private updateTargetUrlAndHref;
|
|
25
|
+
/**
|
|
26
|
+
* @internal
|
|
27
|
+
*/
|
|
28
|
+
onClick(ev: UIEvent): void;
|
|
29
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RouterLinkDelegateDirective, [null, null, null, null, { optional: true; }]>;
|
|
30
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RouterLinkDelegateDirective, ":not(a):not(area)[routerLink]", never, { "routerDirection": "routerDirection"; "routerAnimation": "routerAnimation"; }, {}, never, never, false>;
|
|
12
31
|
}
|
|
13
|
-
export declare class RouterLinkWithHrefDelegateDirective
|
|
14
|
-
|
|
15
|
-
|
|
32
|
+
export declare class RouterLinkWithHrefDelegateDirective implements OnInit, OnChanges {
|
|
33
|
+
private locationStrategy;
|
|
34
|
+
private navCtrl;
|
|
35
|
+
private elementRef;
|
|
36
|
+
private router;
|
|
37
|
+
private routerLink?;
|
|
38
|
+
routerDirection: RouterDirection;
|
|
39
|
+
routerAnimation?: AnimationBuilder;
|
|
40
|
+
constructor(locationStrategy: LocationStrategy, navCtrl: NavController, elementRef: ElementRef, router: Router, routerLink?: RouterLink | undefined);
|
|
41
|
+
ngOnInit(): void;
|
|
42
|
+
ngOnChanges(): void;
|
|
43
|
+
private updateTargetUrlAndHref;
|
|
44
|
+
/**
|
|
45
|
+
* @internal
|
|
46
|
+
*/
|
|
47
|
+
onClick(): void;
|
|
48
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RouterLinkWithHrefDelegateDirective, [null, null, null, null, { optional: true; }]>;
|
|
49
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RouterLinkWithHrefDelegateDirective, "a[routerLink],area[routerLink]", never, { "routerDirection": "routerDirection"; "routerAnimation": "routerAnimation"; }, {}, never, never, false>;
|
|
16
50
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ComponentRef } from '@angular/core';
|
|
2
2
|
import { ActivatedRoute, NavigationExtras, Router } from '@angular/router';
|
|
3
|
-
import
|
|
3
|
+
import { AnimationBuilder, NavDirection, RouterDirection } from '@ionic/core';
|
|
4
4
|
export declare const insertView: (views: RouteView[], view: RouteView, direction: RouterDirection) => RouteView[];
|
|
5
5
|
export declare const getUrl: (router: Router, activatedRoute: ActivatedRoute) => string;
|
|
6
6
|
export declare const isTabSwitch: (enteringView: RouteView, leavingView: RouteView | undefined) => boolean;
|
|
@@ -1,6 +1,50 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ChangeDetectorRef, ElementRef, EventEmitter, NgZone, TemplateRef } from '@angular/core';
|
|
2
|
+
import { Components, ModalBreakpointChangeEventDetail } from '@ionic/core';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
|
-
export declare
|
|
4
|
+
export declare interface IonModal extends Components.IonModal {
|
|
5
|
+
/**
|
|
6
|
+
* Emitted after the modal has presented.
|
|
7
|
+
**/
|
|
8
|
+
ionModalDidPresent: EventEmitter<CustomEvent>;
|
|
9
|
+
/**
|
|
10
|
+
* Emitted before the modal has presented.
|
|
11
|
+
*/
|
|
12
|
+
ionModalWillPresent: EventEmitter<CustomEvent>;
|
|
13
|
+
/**
|
|
14
|
+
* Emitted before the modal has dismissed.
|
|
15
|
+
*/
|
|
16
|
+
ionModalWillDismiss: EventEmitter<CustomEvent>;
|
|
17
|
+
/**
|
|
18
|
+
* Emitted after the modal has dismissed.
|
|
19
|
+
*/
|
|
20
|
+
ionModalDidDismiss: EventEmitter<CustomEvent>;
|
|
21
|
+
/**
|
|
22
|
+
* Emitted after the modal breakpoint has changed.
|
|
23
|
+
*/
|
|
24
|
+
ionBreakpointDidChange: EventEmitter<CustomEvent<ModalBreakpointChangeEventDetail>>;
|
|
25
|
+
/**
|
|
26
|
+
* Emitted after the modal has presented. Shorthand for ionModalWillDismiss.
|
|
27
|
+
*/
|
|
28
|
+
didPresent: EventEmitter<CustomEvent>;
|
|
29
|
+
/**
|
|
30
|
+
* Emitted before the modal has presented. Shorthand for ionModalWillPresent.
|
|
31
|
+
*/
|
|
32
|
+
willPresent: EventEmitter<CustomEvent>;
|
|
33
|
+
/**
|
|
34
|
+
* Emitted before the modal has dismissed. Shorthand for ionModalWillDismiss.
|
|
35
|
+
*/
|
|
36
|
+
willDismiss: EventEmitter<CustomEvent>;
|
|
37
|
+
/**
|
|
38
|
+
* Emitted after the modal has dismissed. Shorthand for ionModalDidDismiss.
|
|
39
|
+
*/
|
|
40
|
+
didDismiss: EventEmitter<CustomEvent>;
|
|
41
|
+
}
|
|
42
|
+
export declare class IonModal {
|
|
43
|
+
protected z: NgZone;
|
|
44
|
+
template: TemplateRef<any>;
|
|
45
|
+
isCmpOpen: boolean;
|
|
46
|
+
protected el: HTMLElement;
|
|
47
|
+
constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
|
|
4
48
|
static ɵfac: i0.ɵɵFactoryDeclaration<IonModal, never>;
|
|
5
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<IonModal, "ion-modal", never, {}, {},
|
|
49
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<IonModal, "ion-modal", never, { "animated": "animated"; "keepContentsMounted": "keepContentsMounted"; "backdropBreakpoint": "backdropBreakpoint"; "backdropDismiss": "backdropDismiss"; "breakpoints": "breakpoints"; "canDismiss": "canDismiss"; "cssClass": "cssClass"; "enterAnimation": "enterAnimation"; "event": "event"; "handle": "handle"; "handleBehavior": "handleBehavior"; "initialBreakpoint": "initialBreakpoint"; "isOpen": "isOpen"; "keyboardClose": "keyboardClose"; "leaveAnimation": "leaveAnimation"; "mode": "mode"; "presentingElement": "presentingElement"; "showBackdrop": "showBackdrop"; "translucent": "translucent"; "trigger": "trigger"; }, {}, ["template"], never, false>;
|
|
6
50
|
}
|
|
@@ -1,6 +1,46 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ChangeDetectorRef, ElementRef, EventEmitter, NgZone, TemplateRef } from '@angular/core';
|
|
2
|
+
import { Components } from '@ionic/core';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
|
-
export declare
|
|
4
|
+
export declare interface IonPopover extends Components.IonPopover {
|
|
5
|
+
/**
|
|
6
|
+
* Emitted after the popover has presented.
|
|
7
|
+
*/
|
|
8
|
+
ionPopoverDidPresent: EventEmitter<CustomEvent>;
|
|
9
|
+
/**
|
|
10
|
+
* Emitted before the popover has presented.
|
|
11
|
+
*/
|
|
12
|
+
ionPopoverWillPresent: EventEmitter<CustomEvent>;
|
|
13
|
+
/**
|
|
14
|
+
* Emitted after the popover has dismissed.
|
|
15
|
+
*/
|
|
16
|
+
ionPopoverWillDismiss: EventEmitter<CustomEvent>;
|
|
17
|
+
/**
|
|
18
|
+
* Emitted after the popover has dismissed.
|
|
19
|
+
*/
|
|
20
|
+
ionPopoverDidDismiss: EventEmitter<CustomEvent>;
|
|
21
|
+
/**
|
|
22
|
+
* Emitted after the popover has presented. Shorthand for ionPopoverWillDismiss.
|
|
23
|
+
*/
|
|
24
|
+
didPresent: EventEmitter<CustomEvent>;
|
|
25
|
+
/**
|
|
26
|
+
* Emitted before the popover has presented. Shorthand for ionPopoverWillPresent.
|
|
27
|
+
*/
|
|
28
|
+
willPresent: EventEmitter<CustomEvent>;
|
|
29
|
+
/**
|
|
30
|
+
* Emitted after the popover has presented. Shorthand for ionPopoverWillDismiss.
|
|
31
|
+
*/
|
|
32
|
+
willDismiss: EventEmitter<CustomEvent>;
|
|
33
|
+
/**
|
|
34
|
+
* Emitted after the popover has dismissed. Shorthand for ionPopoverDidDismiss.
|
|
35
|
+
*/
|
|
36
|
+
didDismiss: EventEmitter<CustomEvent>;
|
|
37
|
+
}
|
|
38
|
+
export declare class IonPopover {
|
|
39
|
+
protected z: NgZone;
|
|
40
|
+
template: TemplateRef<any>;
|
|
41
|
+
isCmpOpen: boolean;
|
|
42
|
+
protected el: HTMLElement;
|
|
43
|
+
constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
|
|
4
44
|
static ɵfac: i0.ɵɵFactoryDeclaration<IonPopover, never>;
|
|
5
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<IonPopover, "ion-popover", never, {}, {},
|
|
45
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<IonPopover, "ion-popover", never, { "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"; }, {}, ["template"], never, false>;
|
|
6
46
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import * as d from './proxies';
|
|
2
|
-
export declare const DIRECTIVES: (typeof d.IonAccordion | typeof d.IonAccordionGroup | typeof d.IonActionSheet | typeof d.IonAlert | typeof d.IonApp | typeof d.IonAvatar | typeof d.IonBackdrop | typeof d.IonBadge | typeof d.IonBreadcrumb | typeof d.IonBreadcrumbs | typeof d.IonButton | typeof d.IonButtons | typeof d.IonCard | typeof d.IonCardContent | typeof d.IonCardHeader | typeof d.IonCardSubtitle | typeof d.IonCardTitle | typeof d.IonCheckbox | typeof d.IonChip | typeof d.IonCol | typeof d.IonContent | typeof d.IonDatetime | typeof d.IonDatetimeButton | typeof d.IonFab | typeof d.IonFabButton | typeof d.IonFabList | typeof d.IonFooter | typeof d.IonGrid | typeof d.IonHeader | typeof d.IonIcon | typeof d.IonImg | typeof d.IonInfiniteScroll | typeof d.IonInfiniteScrollContent | typeof d.IonInput | typeof d.IonItem | typeof d.IonItemDivider | typeof d.IonItemGroup | typeof d.IonItemOption | typeof d.IonItemOptions | typeof d.IonItemSliding | typeof d.IonLabel | typeof d.IonList | typeof d.IonListHeader | typeof d.IonLoading | typeof d.IonMenu | typeof d.IonMenuButton | typeof d.IonMenuToggle | typeof d.IonNavLink | typeof d.IonNote | typeof d.IonPicker | typeof d.IonProgressBar | typeof d.IonRadio | typeof d.IonRadioGroup | typeof d.IonRange | typeof d.IonRefresher | typeof d.IonRefresherContent | typeof d.IonReorder | typeof d.IonReorderGroup | typeof d.IonRippleEffect | typeof d.IonRow | typeof d.IonSearchbar | typeof d.IonSegment | typeof d.IonSegmentButton | typeof d.IonSelect | typeof d.IonSelectOption | typeof d.IonSkeletonText | typeof d.IonSpinner | typeof d.IonSplitPane | typeof d.IonTabBar | typeof d.IonTabButton | typeof d.IonText | typeof d.IonTextarea | typeof d.IonThumbnail | typeof d.IonTitle | typeof d.IonToast | typeof d.IonToggle | typeof d.IonToolbar)[];
|
|
2
|
+
export declare const DIRECTIVES: (typeof d.IonAccordion | typeof d.IonAccordionGroup | typeof d.IonActionSheet | typeof d.IonAlert | typeof d.IonApp | typeof d.IonAvatar | typeof d.IonBackButton | typeof d.IonBackdrop | typeof d.IonBadge | typeof d.IonBreadcrumb | typeof d.IonBreadcrumbs | typeof d.IonButton | typeof d.IonButtons | typeof d.IonCard | typeof d.IonCardContent | typeof d.IonCardHeader | typeof d.IonCardSubtitle | typeof d.IonCardTitle | typeof d.IonCheckbox | typeof d.IonChip | typeof d.IonCol | typeof d.IonContent | typeof d.IonDatetime | typeof d.IonDatetimeButton | typeof d.IonFab | typeof d.IonFabButton | typeof d.IonFabList | typeof d.IonFooter | typeof d.IonGrid | typeof d.IonHeader | typeof d.IonIcon | typeof d.IonImg | typeof d.IonInfiniteScroll | typeof d.IonInfiniteScrollContent | typeof d.IonInput | typeof d.IonItem | typeof d.IonItemDivider | typeof d.IonItemGroup | typeof d.IonItemOption | typeof d.IonItemOptions | typeof d.IonItemSliding | typeof d.IonLabel | typeof d.IonList | typeof d.IonListHeader | typeof d.IonLoading | typeof d.IonMenu | typeof d.IonMenuButton | typeof d.IonMenuToggle | typeof d.IonNav | typeof d.IonNavLink | typeof d.IonNote | typeof d.IonPicker | typeof d.IonProgressBar | typeof d.IonRadio | typeof d.IonRadioGroup | typeof d.IonRange | typeof d.IonRefresher | typeof d.IonRefresherContent | typeof d.IonReorder | typeof d.IonReorderGroup | typeof d.IonRippleEffect | typeof d.IonRow | typeof d.IonSearchbar | typeof d.IonSegment | typeof d.IonSegmentButton | typeof d.IonSelect | typeof d.IonSelectOption | typeof d.IonSkeletonText | typeof d.IonSpinner | typeof d.IonSplitPane | typeof d.IonTabBar | typeof d.IonTabButton | typeof d.IonText | typeof d.IonTextarea | typeof d.IonThumbnail | typeof d.IonTitle | typeof d.IonToast | typeof d.IonToggle | typeof d.IonToolbar)[];
|
package/directives/proxies.d.ts
CHANGED
|
@@ -160,6 +160,15 @@ export declare class IonAvatar {
|
|
|
160
160
|
}
|
|
161
161
|
export declare interface IonAvatar extends Components.IonAvatar {
|
|
162
162
|
}
|
|
163
|
+
export declare class IonBackButton {
|
|
164
|
+
protected z: NgZone;
|
|
165
|
+
protected el: HTMLElement;
|
|
166
|
+
constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
|
|
167
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IonBackButton, never>;
|
|
168
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<IonBackButton, "ion-back-button", never, { "color": "color"; "defaultHref": "defaultHref"; "disabled": "disabled"; "icon": "icon"; "mode": "mode"; "routerAnimation": "routerAnimation"; "text": "text"; "type": "type"; }, {}, never, ["*"], false>;
|
|
169
|
+
}
|
|
170
|
+
export declare interface IonBackButton extends Components.IonBackButton {
|
|
171
|
+
}
|
|
163
172
|
export declare class IonBackdrop {
|
|
164
173
|
protected z: NgZone;
|
|
165
174
|
protected el: HTMLElement;
|
|
@@ -718,6 +727,23 @@ export declare class IonMenuToggle {
|
|
|
718
727
|
}
|
|
719
728
|
export declare interface IonMenuToggle extends Components.IonMenuToggle {
|
|
720
729
|
}
|
|
730
|
+
export declare class IonNav {
|
|
731
|
+
protected z: NgZone;
|
|
732
|
+
protected el: HTMLElement;
|
|
733
|
+
constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
|
|
734
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IonNav, never>;
|
|
735
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<IonNav, "ion-nav", never, { "animated": "animated"; "animation": "animation"; "root": "root"; "rootParams": "rootParams"; "swipeGesture": "swipeGesture"; }, {}, never, ["*"], false>;
|
|
736
|
+
}
|
|
737
|
+
export declare interface IonNav extends Components.IonNav {
|
|
738
|
+
/**
|
|
739
|
+
* Event fired when the nav will change components
|
|
740
|
+
*/
|
|
741
|
+
ionNavWillChange: EventEmitter<CustomEvent<void>>;
|
|
742
|
+
/**
|
|
743
|
+
* Event fired when the nav has changed components
|
|
744
|
+
*/
|
|
745
|
+
ionNavDidChange: EventEmitter<CustomEvent<void>>;
|
|
746
|
+
}
|
|
721
747
|
export declare class IonNavLink {
|
|
722
748
|
protected z: NgZone;
|
|
723
749
|
protected el: HTMLElement;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { raf } from '@ionic/angular/common';
|
|
2
1
|
import { setupConfig } from '@ionic/core';
|
|
3
2
|
import { applyPolyfills, defineCustomElements } from '@ionic/core/loader';
|
|
3
|
+
import { raf } from './util/util';
|
|
4
4
|
// TODO(FW-2827): types
|
|
5
5
|
export const appInitialize = (config, doc, zone) => {
|
|
6
6
|
return () => {
|
|
@@ -28,4 +28,4 @@ export const appInitialize = (config, doc, zone) => {
|
|
|
28
28
|
}
|
|
29
29
|
};
|
|
30
30
|
};
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWluaXRpYWxpemUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBwLWluaXRpYWxpemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsY0FBYyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFJMUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVsQyx1QkFBdUI7QUFFdkIsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsTUFBYyxFQUFFLEdBQWEsRUFBRSxJQUFZLEVBQUUsRUFBRTtJQUMzRSxPQUFPLEdBQVEsRUFBRTtRQUNmLE1BQU0sR0FBRyxHQUE0QixHQUFHLENBQUMsV0FBa0IsQ0FBQztRQUM1RCxJQUFJLEdBQUcsSUFBSSxPQUFRLE1BQWMsS0FBSyxXQUFXLEVBQUU7WUFDakQsV0FBVyxDQUFDO2dCQUNWLEdBQUcsTUFBTTtnQkFDVCxTQUFTLEVBQUUsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQ25DLENBQUMsQ0FBQztZQUVILE1BQU0sS0FBSyxHQUNULGlDQUFpQyxJQUFLLEdBQUcsQ0FBQyxJQUFZLENBQUMsQ0FBQyxDQUFDLGlDQUFpQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQztZQUVsSCxPQUFPLGNBQWMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQ2hDLE9BQU8sb0JBQW9CLENBQUMsR0FBRyxFQUFFO29CQUMvQixPQUFPLEVBQUUsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDO29CQUNoQyxTQUFTLEVBQUUsSUFBSTtvQkFDZixHQUFHO29CQUNILEdBQUcsRUFBRSxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztvQkFDMUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLElBQUk7d0JBQ3pCLEdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO29CQUMzQyxDQUFDO29CQUNELEdBQUcsQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxJQUFJO3dCQUMxQixHQUFHLENBQUMsbUJBQW1CLENBQUMsU0FBUyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztvQkFDL0MsQ0FBQztpQkFDRixDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBzZXR1cENvbmZpZyB9IGZyb20gJ0Bpb25pYy9jb3JlJztcbmltcG9ydCB7IGFwcGx5UG9seWZpbGxzLCBkZWZpbmVDdXN0b21FbGVtZW50cyB9IGZyb20gJ0Bpb25pYy9jb3JlL2xvYWRlcic7XG5cbmltcG9ydCB7IENvbmZpZyB9IGZyb20gJy4vcHJvdmlkZXJzL2NvbmZpZyc7XG5pbXBvcnQgeyBJb25pY1dpbmRvdyB9IGZyb20gJy4vdHlwZXMvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyByYWYgfSBmcm9tICcuL3V0aWwvdXRpbCc7XG5cbi8vIFRPRE8oRlctMjgyNyk6IHR5cGVzXG5cbmV4cG9ydCBjb25zdCBhcHBJbml0aWFsaXplID0gKGNvbmZpZzogQ29uZmlnLCBkb2M6IERvY3VtZW50LCB6b25lOiBOZ1pvbmUpID0+IHtcbiAgcmV0dXJuICgpOiBhbnkgPT4ge1xuICAgIGNvbnN0IHdpbjogSW9uaWNXaW5kb3cgfCB1bmRlZmluZWQgPSBkb2MuZGVmYXVsdFZpZXcgYXMgYW55O1xuICAgIGlmICh3aW4gJiYgdHlwZW9mICh3aW5kb3cgYXMgYW55KSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHNldHVwQ29uZmlnKHtcbiAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICBfem9uZUdhdGU6IChoOiBhbnkpID0+IHpvbmUucnVuKGgpLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGFlbEZuID1cbiAgICAgICAgJ19fem9uZV9zeW1ib2xfX2FkZEV2ZW50TGlzdGVuZXInIGluIChkb2MuYm9keSBhcyBhbnkpID8gJ19fem9uZV9zeW1ib2xfX2FkZEV2ZW50TGlzdGVuZXInIDogJ2FkZEV2ZW50TGlzdGVuZXInO1xuXG4gICAgICByZXR1cm4gYXBwbHlQb2x5ZmlsbHMoKS50aGVuKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIGRlZmluZUN1c3RvbUVsZW1lbnRzKHdpbiwge1xuICAgICAgICAgIGV4Y2x1ZGU6IFsnaW9uLXRhYnMnLCAnaW9uLXRhYiddLFxuICAgICAgICAgIHN5bmNRdWV1ZTogdHJ1ZSxcbiAgICAgICAgICByYWYsXG4gICAgICAgICAgam1wOiAoaDogYW55KSA9PiB6b25lLnJ1bk91dHNpZGVBbmd1bGFyKGgpLFxuICAgICAgICAgIGFlbChlbG0sIGV2ZW50TmFtZSwgY2IsIG9wdHMpIHtcbiAgICAgICAgICAgIChlbG0gYXMgYW55KVthZWxGbl0oZXZlbnROYW1lLCBjYiwgb3B0cyk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICByZWwoZWxtLCBldmVudE5hbWUsIGNiLCBvcHRzKSB7XG4gICAgICAgICAgICBlbG0ucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIGNiLCBvcHRzKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcbn07XG4iXX0=
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { Directive, HostListener } from '@angular/core';
|
|
2
2
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
-
import { ValueAccessor, setIonicClasses } from '
|
|
3
|
+
import { ValueAccessor, setIonicClasses } from './value-accessor';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export class BooleanValueAccessorDirective extends ValueAccessor {
|
|
6
6
|
constructor(injector, el) {
|
|
7
7
|
super(injector, el);
|
|
8
8
|
}
|
|
9
9
|
writeValue(value) {
|
|
10
|
-
this.
|
|
11
|
-
setIonicClasses(this.
|
|
10
|
+
this.el.nativeElement.checked = this.lastValue = value;
|
|
11
|
+
setIonicClasses(this.el);
|
|
12
12
|
}
|
|
13
13
|
_handleIonChange(el) {
|
|
14
14
|
this.handleValueChange(el, el.checked);
|
|
@@ -38,4 +38,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
38
38
|
type: HostListener,
|
|
39
39
|
args: ['ionChange', ['$event.target']]
|
|
40
40
|
}] } });
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vbGVhbi12YWx1ZS1hY2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kaXJlY3RpdmVzL2NvbnRyb2wtdmFsdWUtYWNjZXNzb3JzL2Jvb2xlYW4tdmFsdWUtYWNjZXNzb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQXdCLE1BQU0sZUFBZSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBWWxFLE1BQU0sT0FBTyw2QkFBOEIsU0FBUSxhQUFhO0lBQzlELFlBQVksUUFBa0IsRUFBRSxFQUFjO1FBQzVDLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFjO1FBQ3ZCLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2RCxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFHRCxnQkFBZ0IsQ0FBQyxFQUFpRDtRQUNoRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6QyxDQUFDOzs4SUFiVSw2QkFBNkI7a0lBQTdCLDZCQUE2QiwySEFSN0I7UUFDVDtZQUNFLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsV0FBVyxFQUFFLDZCQUE2QjtZQUMxQyxLQUFLLEVBQUUsSUFBSTtTQUNaO0tBQ0Y7NEZBRVUsNkJBQTZCO2tCQVZ6QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLCtCQUErQjs0QkFDMUMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7aUJBQ0Y7d0hBWUMsZ0JBQWdCO3NCQURmLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIEVsZW1lbnRSZWYsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgVmFsdWVBY2Nlc3Nvciwgc2V0SW9uaWNDbGFzc2VzIH0gZnJvbSAnLi92YWx1ZS1hY2Nlc3Nvcic7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2lvbi1jaGVja2JveCxpb24tdG9nZ2xlJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogQm9vbGVhblZhbHVlQWNjZXNzb3JEaXJlY3RpdmUsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBCb29sZWFuVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZSBleHRlbmRzIFZhbHVlQWNjZXNzb3Ige1xuICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IsIGVsOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIoaW5qZWN0b3IsIGVsKTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2hlY2tlZCA9IHRoaXMubGFzdFZhbHVlID0gdmFsdWU7XG4gICAgc2V0SW9uaWNDbGFzc2VzKHRoaXMuZWwpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignaW9uQ2hhbmdlJywgWyckZXZlbnQudGFyZ2V0J10pXG4gIF9oYW5kbGVJb25DaGFuZ2UoZWw6IEhUTUxJb25DaGVja2JveEVsZW1lbnQgfCBIVE1MSW9uVG9nZ2xlRWxlbWVudCk6IHZvaWQge1xuICAgIHRoaXMuaGFuZGxlVmFsdWVDaGFuZ2UoZWwsIGVsLmNoZWNrZWQpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Directive, HostListener } from '@angular/core';
|
|
2
2
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
-
import { ValueAccessor } from '
|
|
3
|
+
import { ValueAccessor } from './value-accessor';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export class NumericValueAccessorDirective extends ValueAccessor {
|
|
6
6
|
constructor(injector, el) {
|
|
@@ -39,4 +39,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
39
39
|
type: HostListener,
|
|
40
40
|
args: ['ionInput', ['$event.target']]
|
|
41
41
|
}] } });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtZXJpYy12YWx1ZS1hY2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kaXJlY3RpdmVzL2NvbnRyb2wtdmFsdWUtYWNjZXNzb3JzL251bWVyaWMtdmFsdWUtYWNjZXNzb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQXdCLE1BQU0sZUFBZSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFZakQsTUFBTSxPQUFPLDZCQUE4QixTQUFRLGFBQWE7SUFDOUQsWUFBWSxRQUFrQixFQUFFLEVBQWM7UUFDNUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBR0QsZ0JBQWdCLENBQUMsRUFBdUI7UUFDdEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQThCO1FBQzdDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEtBQWEsRUFBRSxFQUFFO1lBQ3ZDLEVBQUUsQ0FBQyxLQUFLLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7OElBZFUsNkJBQTZCO2tJQUE3Qiw2QkFBNkIseUhBUjdCO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSw2QkFBNkI7WUFDMUMsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGOzRGQUVVLDZCQUE2QjtrQkFWekMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVywrQkFBK0I7NEJBQzFDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGO3dIQU9DLGdCQUFnQjtzQkFEZixZQUFZO3VCQUFDLFVBQVUsRUFBRSxDQUFDLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyLCBFbGVtZW50UmVmLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IFZhbHVlQWNjZXNzb3IgfSBmcm9tICcuL3ZhbHVlLWFjY2Vzc29yJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnaW9uLWlucHV0W3R5cGU9bnVtYmVyXScsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IE51bWVyaWNWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTnVtZXJpY1ZhbHVlQWNjZXNzb3JEaXJlY3RpdmUgZXh0ZW5kcyBWYWx1ZUFjY2Vzc29yIHtcbiAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yLCBlbDogRWxlbWVudFJlZikge1xuICAgIHN1cGVyKGluamVjdG9yLCBlbCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdpb25JbnB1dCcsIFsnJGV2ZW50LnRhcmdldCddKVxuICBoYW5kbGVJbnB1dEV2ZW50KGVsOiBIVE1MSW9uSW5wdXRFbGVtZW50KTogdm9pZCB7XG4gICAgdGhpcy5oYW5kbGVWYWx1ZUNoYW5nZShlbCwgZWwudmFsdWUpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKF86IG51bWJlciB8IG51bGwpID0+IHZvaWQpOiB2b2lkIHtcbiAgICBzdXBlci5yZWdpc3Rlck9uQ2hhbmdlKCh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICBmbih2YWx1ZSA9PT0gJycgPyBudWxsIDogcGFyc2VGbG9hdCh2YWx1ZSkpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
import { Directive, HostListener } from '@angular/core';
|
|
2
2
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
-
import { ValueAccessor } from '
|
|
3
|
+
import { ValueAccessor } from './value-accessor';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export class RadioValueAccessorDirective extends ValueAccessor {
|
|
6
6
|
constructor(injector, el) {
|
|
7
7
|
super(injector, el);
|
|
8
8
|
}
|
|
9
|
+
// TODO(FW-2827): type (HTMLIonRadioElement and HTMLElement are both missing `checked`)
|
|
9
10
|
_handleIonSelect(el) {
|
|
10
|
-
/**
|
|
11
|
-
* The `el` type is any to access the `checked` state property
|
|
12
|
-
* that is not exposed on the type interface.
|
|
13
|
-
*/
|
|
14
11
|
this.handleValueChange(el, el.checked);
|
|
15
12
|
}
|
|
16
13
|
}
|
|
@@ -39,4 +36,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
39
36
|
type: HostListener,
|
|
40
37
|
args: ['ionSelect', ['$event.target']]
|
|
41
38
|
}] } });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tdmFsdWUtYWNjZXNzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGlyZWN0aXZlcy9jb250cm9sLXZhbHVlLWFjY2Vzc29ycy9yYWRpby12YWx1ZS1hY2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXdCLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQWFqRCxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsYUFBYTtJQUM1RCxZQUFZLFFBQWtCLEVBQUUsRUFBYztRQUM1QyxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFRCx1RkFBdUY7SUFFdkYsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6QyxDQUFDOzs0SUFUVSwyQkFBMkI7Z0lBQTNCLDJCQUEyQiw2R0FSM0I7UUFDVDtZQUNFLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsV0FBVyxFQUFFLDJCQUEyQjtZQUN4QyxLQUFLLEVBQUUsSUFBSTtTQUNaO0tBQ0Y7NEZBRVUsMkJBQTJCO2tCQVh2QyxTQUFTO21CQUFDO29CQUNULGlEQUFpRDtvQkFDakQsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLDZCQUE2Qjs0QkFDeEMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7aUJBQ0Y7d0hBUUMsZ0JBQWdCO3NCQURmLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0b3IsIERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgVmFsdWVBY2Nlc3NvciB9IGZyb20gJy4vdmFsdWUtYWNjZXNzb3InO1xuXG5ARGlyZWN0aXZlKHtcbiAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmRpcmVjdGl2ZS1zZWxlY3RvciAqL1xuICBzZWxlY3RvcjogJ2lvbi1yYWRpbycsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IFJhZGlvVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFJhZGlvVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZSBleHRlbmRzIFZhbHVlQWNjZXNzb3Ige1xuICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IsIGVsOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIoaW5qZWN0b3IsIGVsKTtcbiAgfVxuXG4gIC8vIFRPRE8oRlctMjgyNyk6IHR5cGUgKEhUTUxJb25SYWRpb0VsZW1lbnQgYW5kIEhUTUxFbGVtZW50IGFyZSBib3RoIG1pc3NpbmcgYGNoZWNrZWRgKVxuICBASG9zdExpc3RlbmVyKCdpb25TZWxlY3QnLCBbJyRldmVudC50YXJnZXQnXSlcbiAgX2hhbmRsZUlvblNlbGVjdChlbDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5oYW5kbGVWYWx1ZUNoYW5nZShlbCwgZWwuY2hlY2tlZCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Directive, HostListener } from '@angular/core';
|
|
2
2
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
-
import { ValueAccessor } from '
|
|
3
|
+
import { ValueAccessor } from './value-accessor';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export class SelectValueAccessorDirective extends ValueAccessor {
|
|
6
6
|
constructor(injector, el) {
|
|
@@ -35,4 +35,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
35
35
|
type: HostListener,
|
|
36
36
|
args: ['ionChange', ['$event.target']]
|
|
37
37
|
}] } });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXZhbHVlLWFjY2Vzc29yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RpcmVjdGl2ZXMvY29udHJvbC12YWx1ZS1hY2Nlc3NvcnMvc2VsZWN0LXZhbHVlLWFjY2Vzc29yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBd0IsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBYWpELE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxhQUFhO0lBQzdELFlBQVksUUFBa0IsRUFBRSxFQUFjO1FBQzVDLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUdELGtCQUFrQixDQUNoQixFQUswQjtRQUUxQixJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDOzs2SUFmVSw0QkFBNEI7aUlBQTVCLDRCQUE0Qix1S0FSNUI7UUFDVDtZQUNFLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsV0FBVyxFQUFFLDRCQUE0QjtZQUN6QyxLQUFLLEVBQUUsSUFBSTtTQUNaO0tBQ0Y7NEZBRVUsNEJBQTRCO2tCQVh4QyxTQUFTO21CQUFDO29CQUNULGlEQUFpRDtvQkFDakQsUUFBUSxFQUFFLG1FQUFtRTtvQkFDN0UsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsOEJBQThCOzRCQUN6QyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRjt3SEFPQyxrQkFBa0I7c0JBRGpCLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0b3IsIERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgVmFsdWVBY2Nlc3NvciB9IGZyb20gJy4vdmFsdWUtYWNjZXNzb3InO1xuXG5ARGlyZWN0aXZlKHtcbiAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmRpcmVjdGl2ZS1zZWxlY3RvciAqL1xuICBzZWxlY3RvcjogJ2lvbi1yYW5nZSwgaW9uLXNlbGVjdCwgaW9uLXJhZGlvLWdyb3VwLCBpb24tc2VnbWVudCwgaW9uLWRhdGV0aW1lJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogU2VsZWN0VmFsdWVBY2Nlc3NvckRpcmVjdGl2ZSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdFZhbHVlQWNjZXNzb3JEaXJlY3RpdmUgZXh0ZW5kcyBWYWx1ZUFjY2Vzc29yIHtcbiAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yLCBlbDogRWxlbWVudFJlZikge1xuICAgIHN1cGVyKGluamVjdG9yLCBlbCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdpb25DaGFuZ2UnLCBbJyRldmVudC50YXJnZXQnXSlcbiAgX2hhbmRsZUNoYW5nZUV2ZW50KFxuICAgIGVsOlxuICAgICAgfCBIVE1MSW9uUmFuZ2VFbGVtZW50XG4gICAgICB8IEhUTUxJb25TZWxlY3RFbGVtZW50XG4gICAgICB8IEhUTUxJb25SYWRpb0dyb3VwRWxlbWVudFxuICAgICAgfCBIVE1MSW9uU2VnbWVudEVsZW1lbnRcbiAgICAgIHwgSFRNTElvbkRhdGV0aW1lRWxlbWVudFxuICApOiB2b2lkIHtcbiAgICB0aGlzLmhhbmRsZVZhbHVlQ2hhbmdlKGVsLCBlbC52YWx1ZSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Directive, HostListener } from '@angular/core';
|
|
2
2
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
-
import { ValueAccessor } from '
|
|
3
|
+
import { ValueAccessor } from './value-accessor';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export class TextValueAccessorDirective extends ValueAccessor {
|
|
6
6
|
constructor(injector, el) {
|
|
@@ -34,4 +34,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
34
34
|
type: HostListener,
|
|
35
35
|
args: ['ionInput', ['$event.target']]
|
|
36
36
|
}] } });
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC12YWx1ZS1hY2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kaXJlY3RpdmVzL2NvbnRyb2wtdmFsdWUtYWNjZXNzb3JzL3RleHQtdmFsdWUtYWNjZXNzb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF3QixTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFZakQsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGFBQWE7SUFDM0QsWUFBWSxRQUFrQixFQUFFLEVBQWM7UUFDNUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBR0QsaUJBQWlCLENBQUMsRUFBMEU7UUFDMUYsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQzs7MklBUlUsMEJBQTBCOytIQUExQiwwQkFBMEIsMkpBUjFCO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSwwQkFBMEI7WUFDdkMsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGOzRGQUVVLDBCQUEwQjtrQkFWdEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUseURBQXlEO29CQUNuRSxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyw0QkFBNEI7NEJBQ3ZDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGO3dIQU9DLGlCQUFpQjtzQkFEaEIsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3RvciwgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnLi92YWx1ZS1hY2Nlc3Nvcic7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2lvbi1pbnB1dDpub3QoW3R5cGU9bnVtYmVyXSksaW9uLXRleHRhcmVhLGlvbi1zZWFyY2hiYXInLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBUZXh0VmFsdWVBY2Nlc3NvckRpcmVjdGl2ZSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFRleHRWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlIGV4dGVuZHMgVmFsdWVBY2Nlc3NvciB7XG4gIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3RvciwgZWw6IEVsZW1lbnRSZWYpIHtcbiAgICBzdXBlcihpbmplY3RvciwgZWwpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignaW9uSW5wdXQnLCBbJyRldmVudC50YXJnZXQnXSlcbiAgX2hhbmRsZUlucHV0RXZlbnQoZWw6IEhUTUxJb25JbnB1dEVsZW1lbnQgfCBIVE1MSW9uVGV4dGFyZWFFbGVtZW50IHwgSFRNTElvblNlYXJjaGJhckVsZW1lbnQpOiB2b2lkIHtcbiAgICB0aGlzLmhhbmRsZVZhbHVlQ2hhbmdlKGVsLCBlbC52YWx1ZSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { Directive, HostListener } from '@angular/core';
|
|
2
|
+
import { NgControl } from '@angular/forms';
|
|
3
|
+
import { raf } from '../../util/util';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
// TODO(FW-2827): types
|
|
6
|
+
export class ValueAccessor {
|
|
7
|
+
constructor(injector, el) {
|
|
8
|
+
this.injector = injector;
|
|
9
|
+
this.el = el;
|
|
10
|
+
this.onChange = () => {
|
|
11
|
+
/**/
|
|
12
|
+
};
|
|
13
|
+
this.onTouched = () => {
|
|
14
|
+
/**/
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
writeValue(value) {
|
|
18
|
+
this.el.nativeElement.value = this.lastValue = value;
|
|
19
|
+
setIonicClasses(this.el);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Notifies the ControlValueAccessor of a change in the value of the control.
|
|
23
|
+
*
|
|
24
|
+
* This is called by each of the ValueAccessor directives when we want to update
|
|
25
|
+
* the status and validity of the form control. For example with text components this
|
|
26
|
+
* is called when the ionInput event is fired. For select components this is called
|
|
27
|
+
* when the ionChange event is fired.
|
|
28
|
+
*
|
|
29
|
+
* This also updates the Ionic form status classes on the element.
|
|
30
|
+
*
|
|
31
|
+
* @param el The component element.
|
|
32
|
+
* @param value The new value of the control.
|
|
33
|
+
*/
|
|
34
|
+
handleValueChange(el, value) {
|
|
35
|
+
if (el === this.el.nativeElement) {
|
|
36
|
+
if (value !== this.lastValue) {
|
|
37
|
+
this.lastValue = value;
|
|
38
|
+
this.onChange(value);
|
|
39
|
+
}
|
|
40
|
+
setIonicClasses(this.el);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
_handleBlurEvent(el) {
|
|
44
|
+
if (el === this.el.nativeElement) {
|
|
45
|
+
this.onTouched();
|
|
46
|
+
setIonicClasses(this.el);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
registerOnChange(fn) {
|
|
50
|
+
this.onChange = fn;
|
|
51
|
+
}
|
|
52
|
+
registerOnTouched(fn) {
|
|
53
|
+
this.onTouched = fn;
|
|
54
|
+
}
|
|
55
|
+
setDisabledState(isDisabled) {
|
|
56
|
+
this.el.nativeElement.disabled = isDisabled;
|
|
57
|
+
}
|
|
58
|
+
ngOnDestroy() {
|
|
59
|
+
if (this.statusChanges) {
|
|
60
|
+
this.statusChanges.unsubscribe();
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
ngAfterViewInit() {
|
|
64
|
+
let ngControl;
|
|
65
|
+
try {
|
|
66
|
+
ngControl = this.injector.get(NgControl);
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
/* No FormControl or ngModel binding */
|
|
70
|
+
}
|
|
71
|
+
if (!ngControl) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
// Listen for changes in validity, disabled, or pending states
|
|
75
|
+
if (ngControl.statusChanges) {
|
|
76
|
+
this.statusChanges = ngControl.statusChanges.subscribe(() => setIonicClasses(this.el));
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* TODO FW-2787: Remove this in favor of https://github.com/angular/angular/issues/10887
|
|
80
|
+
* whenever it is implemented.
|
|
81
|
+
*/
|
|
82
|
+
const formControl = ngControl.control;
|
|
83
|
+
if (formControl) {
|
|
84
|
+
const methodsToPatch = ['markAsTouched', 'markAllAsTouched', 'markAsUntouched', 'markAsDirty', 'markAsPristine'];
|
|
85
|
+
methodsToPatch.forEach((method) => {
|
|
86
|
+
if (typeof formControl[method] !== 'undefined') {
|
|
87
|
+
const oldFn = formControl[method].bind(formControl);
|
|
88
|
+
formControl[method] = (...params) => {
|
|
89
|
+
oldFn(...params);
|
|
90
|
+
setIonicClasses(this.el);
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/** @nocollapse */ ValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ValueAccessor, deps: [{ token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
98
|
+
/** @nocollapse */ ValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: ValueAccessor, host: { listeners: { "ionBlur": "_handleBlurEvent($event.target)" } }, ngImport: i0 });
|
|
99
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ValueAccessor, decorators: [{
|
|
100
|
+
type: Directive
|
|
101
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }]; }, propDecorators: { _handleBlurEvent: [{
|
|
102
|
+
type: HostListener,
|
|
103
|
+
args: ['ionBlur', ['$event.target']]
|
|
104
|
+
}] } });
|
|
105
|
+
export const setIonicClasses = (element) => {
|
|
106
|
+
raf(() => {
|
|
107
|
+
const input = element.nativeElement;
|
|
108
|
+
const hasValue = input.value != null && input.value.toString().length > 0;
|
|
109
|
+
const classes = getClasses(input);
|
|
110
|
+
setClasses(input, classes);
|
|
111
|
+
const item = input.closest('ion-item');
|
|
112
|
+
if (item) {
|
|
113
|
+
if (hasValue) {
|
|
114
|
+
setClasses(item, [...classes, 'item-has-value']);
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
setClasses(item, classes);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
};
|
|
122
|
+
const getClasses = (element) => {
|
|
123
|
+
const classList = element.classList;
|
|
124
|
+
const classes = [];
|
|
125
|
+
for (let i = 0; i < classList.length; i++) {
|
|
126
|
+
const item = classList.item(i);
|
|
127
|
+
if (item !== null && startsWith(item, 'ng-')) {
|
|
128
|
+
classes.push(`ion-${item.substring(3)}`);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
return classes;
|
|
132
|
+
};
|
|
133
|
+
const setClasses = (element, classes) => {
|
|
134
|
+
const classList = element.classList;
|
|
135
|
+
classList.remove('ion-valid', 'ion-invalid', 'ion-touched', 'ion-untouched', 'ion-dirty', 'ion-pristine');
|
|
136
|
+
classList.add(...classes);
|
|
137
|
+
};
|
|
138
|
+
const startsWith = (input, search) => {
|
|
139
|
+
return input.substring(0, search.length) === search;
|
|
140
|
+
};
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUtYWNjZXNzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGlyZWN0aXZlcy9jb250cm9sLXZhbHVlLWFjY2Vzc29ycy92YWx1ZS1hY2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWtELFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEcsT0FBTyxFQUF3QixTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdqRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRXRDLHVCQUF1QjtBQUd2QixNQUFNLE9BQU8sYUFBYTtJQVV4QixZQUFzQixRQUFrQixFQUFZLEVBQWM7UUFBNUMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFZLE9BQUUsR0FBRixFQUFFLENBQVk7UUFUMUQsYUFBUSxHQUF5QixHQUFHLEVBQUU7WUFDNUMsSUFBSTtRQUNOLENBQUMsQ0FBQztRQUNNLGNBQVMsR0FBZSxHQUFHLEVBQUU7WUFDbkMsSUFBSTtRQUNOLENBQUMsQ0FBQztJQUltRSxDQUFDO0lBRXRFLFVBQVUsQ0FBQyxLQUFVO1FBQ25CLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUNyRCxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7O09BWUc7SUFDSCxpQkFBaUIsQ0FBQyxFQUFlLEVBQUUsS0FBVTtRQUMzQyxJQUFJLEVBQUUsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRTtZQUNoQyxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUM1QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztnQkFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FB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YyxDQUFDLENBQUM7SUFDMUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDO0FBQzVCLENBQUMsQ0FBQztBQUVGLE1BQU0sVUFBVSxHQUFHLENBQUMsS0FBYSxFQUFFLE1BQWMsRUFBVyxFQUFFO0lBQzVELE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLE1BQU0sQ0FBQztBQUN0RCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBFbGVtZW50UmVmLCBJbmplY3RvciwgT25EZXN0cm95LCBEaXJlY3RpdmUsIEhvc3RMaXN0ZW5lciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyByYWYgfSBmcm9tICcuLi8uLi91dGlsL3V0aWwnO1xuXG4vLyBUT0RPKEZXLTI4MjcpOiB0eXBlc1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBWYWx1ZUFjY2Vzc29yIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgb25DaGFuZ2U6ICh2YWx1ZTogYW55KSA9PiB2b2lkID0gKCkgPT4ge1xuICAgIC8qKi9cbiAgfTtcbiAgcHJpdmF0ZSBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7XG4gICAgLyoqL1xuICB9O1xuICBwcm90ZWN0ZWQgbGFzdFZhbHVlOiBhbnk7XG4gIHByaXZhdGUgc3RhdHVzQ2hhbmdlcz86IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yLCBwcm90ZWN0ZWQgZWw6IEVsZW1lbnRSZWYpIHt9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5sYXN0VmFsdWUgPSB2YWx1ZTtcbiAgICBzZXRJb25pY0NsYXNzZXModGhpcy5lbCk7XG4gIH1cblxuICAvKipcbiAgICogTm90aWZpZXMgdGhlIENvbnRyb2xWYWx1ZUFjY2Vzc29yIG9mIGEgY2hhbmdlIGluIHRoZSB2YWx1ZSBvZiB0aGUgY29udHJvbC5cbiAgICpcbiAgICogVGhpcyBpcyBjYWxsZWQgYnkgZWFjaCBvZiB0aGUgVmFsdWVBY2Nlc3NvciBkaXJlY3RpdmVzIHdoZW4gd2Ugd2FudCB0byB1cGRhdGVcbiAgICogdGhlIHN0YXR1cyBhbmQgdmFsaWRpdHkgb2YgdGhlIGZvcm0gY29udHJvbC4gRm9yIGV4YW1wbGUgd2l0aCB0ZXh0IGNvbXBvbmVudHMgdGhpc1xuICAgKiBpcyBjYWxsZWQgd2hlbiB0aGUgaW9uSW5wdXQgZXZlbnQgaXMgZmlyZWQuIEZvciBzZWxlY3QgY29tcG9uZW50cyB0aGlzIGlzIGNhbGxlZFxuICAgKiB3aGVuIHRoZSBpb25DaGFuZ2UgZXZlbnQgaXMgZmlyZWQuXG4gICAqXG4gICAqIFRoaXMgYWxzbyB1cGRhdGVzIHRoZSBJb25pYyBmb3JtIHN0YXR1cyBjbGFzc2VzIG9uIHRoZSBlbGVtZW50LlxuICAgKlxuICAgKiBAcGFyYW0gZWwgVGhlIGNvbXBvbmVudCBlbGVtZW50LlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIG5ldyB2YWx1ZSBvZiB0aGUgY29udHJvbC5cbiAgICovXG4gIGhhbmRsZVZhbHVlQ2hhbmdlKGVsOiBIVE1MRWxlbWVudCwgdmFsdWU6IGFueSk6IHZvaWQge1xuICAgIGlmIChlbCA9PT0gdGhpcy5lbC5uYXRpdmVFbGVtZW50KSB7XG4gICAgICBpZiAodmFsdWUgIT09IHRoaXMubGFzdFZhbHVlKSB7XG4gICAgICAgIHRoaXMubGFzdFZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgICAgfVxuICAgICAgc2V0SW9uaWNDbGFzc2VzKHRoaXMuZWwpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2lvbkJsdXInLCBbJyRldmVudC50YXJnZXQnXSlcbiAgX2hhbmRsZUJsdXJFdmVudChlbDogYW55KTogdm9pZCB7XG4gICAgaWYgKGVsID09PSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICBzZXRJb25pY0NsYXNzZXModGhpcy5lbCk7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdHVzQ2hhbmdlcykge1xuICAgICAgdGhpcy5zdGF0dXNDaGFuZ2VzLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGxldCBuZ0NvbnRyb2w7XG4gICAgdHJ5IHtcbiAgICAgIG5nQ29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0PE5nQ29udHJvbD4oTmdDb250cm9sKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8qIE5vIEZvcm1Db250cm9sIG9yIG5nTW9kZWwgYmluZGluZyAqL1xuICAgIH1cblxuICAgIGlmICghbmdDb250cm9sKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gTGlzdGVuIGZvciBjaGFuZ2VzIGluIHZhbGlkaXR5LCBkaXNhYmxlZCwgb3IgcGVuZGluZyBzdGF0ZXNcbiAgICBpZiAobmdDb250cm9sLnN0YXR1c0NoYW5nZXMpIHtcbiAgICAgIHRoaXMuc3RhdHVzQ2hhbmdlcyA9IG5nQ29udHJvbC5zdGF0dXNDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiBzZXRJb25pY0NsYXNzZXModGhpcy5lbCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRPRE8gRlctMjc4NzogUmVtb3ZlIHRoaXMgaW4gZmF2b3Igb2YgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTA4ODdcbiAgICAgKiB3aGVuZXZlciBpdCBpcyBpbXBsZW1lbnRlZC5cbiAgICAgKi9cbiAgICBjb25zdCBmb3JtQ29udHJvbCA9IG5nQ29udHJvbC5jb250cm9sIGFzIGFueTtcbiAgICBpZiAoZm9ybUNvbnRyb2wpIHtcbiAgICAgIGNvbnN0IG1ldGhvZHNUb1BhdGNoID0gWydtYXJrQXNUb3VjaGVkJywgJ21hcmtBbGxBc1RvdWNoZWQnLCAnbWFya0FzVW50b3VjaGVkJywgJ21hcmtBc0RpcnR5JywgJ21hcmtBc1ByaXN0aW5lJ107XG4gICAgICBtZXRob2RzVG9QYXRjaC5mb3JFYWNoKChtZXRob2QpID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBmb3JtQ29udHJvbFttZXRob2RdICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgIGNvbnN0IG9sZEZuID0gZm9ybUNvbnRyb2xbbWV0aG9kXS5iaW5kKGZvcm1Db250cm9sKTtcbiAgICAgICAgICBmb3JtQ29udHJvbFttZXRob2RdID0gKC4uLnBhcmFtczogYW55W10pID0+IHtcbiAgICAgICAgICAgIG9sZEZuKC4uLnBhcmFtcyk7XG4gICAgICAgICAgICBzZXRJb25pY0NsYXNzZXModGhpcy5lbCk7XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBzZXRJb25pY0NsYXNzZXMgPSAoZWxlbWVudDogRWxlbWVudFJlZik6IHZvaWQgPT4ge1xuICByYWYoKCkgPT4ge1xuICAgIGNvbnN0IGlucHV0ID0gZWxlbWVudC5uYXRpdmVFbGVtZW50IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgY29uc3QgaGFzVmFsdWUgPSBpbnB1dC52YWx1ZSAhPSBudWxsICYmIGlucHV0LnZhbHVlLnRvU3RyaW5nKCkubGVuZ3RoID4gMDtcbiAgICBjb25zdCBjbGFzc2VzID0gZ2V0Q2xhc3NlcyhpbnB1dCk7XG4gICAgc2V0Q2xhc3NlcyhpbnB1dCwgY2xhc3Nlcyk7XG4gICAgY29uc3QgaXRlbSA9IGlucHV0LmNsb3Nlc3QoJ2lvbi1pdGVtJyk7XG4gICAgaWYgKGl0ZW0pIHtcbiAgICAgIGlmIChoYXNWYWx1ZSkge1xuICAgICAgICBzZXRDbGFzc2VzKGl0ZW0sIFsuLi5jbGFzc2VzLCAnaXRlbS1oYXMtdmFsdWUnXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRDbGFzc2VzKGl0ZW0sIGNsYXNzZXMpO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG59O1xuXG5jb25zdCBnZXRDbGFzc2VzID0gKGVsZW1lbnQ6IEhUTUxFbGVtZW50KSA9PiB7XG4gIGNvbnN0IGNsYXNzTGlzdCA9IGVsZW1lbnQuY2xhc3NMaXN0O1xuICBjb25zdCBjbGFzc2VzID0gW107XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgY2xhc3NMaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgaXRlbSA9IGNsYXNzTGlzdC5pdGVtKGkpO1xuICAgIGlmIChpdGVtICE9PSBudWxsICYmIHN0YXJ0c1dpdGgoaXRlbSwgJ25nLScpKSB7XG4gICAgICBjbGFzc2VzLnB1c2goYGlvbi0ke2l0ZW0uc3Vic3RyaW5nKDMpfWApO1xuICAgIH1cbiAgfVxuICByZXR1cm4gY2xhc3Nlcztcbn07XG5cbmNvbnN0IHNldENsYXNzZXMgPSAoZWxlbWVudDogSFRNTEVsZW1lbnQsIGNsYXNzZXM6IHN0cmluZ1tdKSA9PiB7XG4gIGNvbnN0IGNsYXNzTGlzdCA9IGVsZW1lbnQuY2xhc3NMaXN0O1xuICBjbGFzc0xpc3QucmVtb3ZlKCdpb24tdmFsaWQnLCAnaW9uLWludmFsaWQnLCAnaW9uLXRvdWNoZWQnLCAnaW9uLXVudG91Y2hlZCcsICdpb24tZGlydHknLCAnaW9uLXByaXN0aW5lJyk7XG4gIGNsYXNzTGlzdC5hZGQoLi4uY2xhc3Nlcyk7XG59O1xuXG5jb25zdCBzdGFydHNXaXRoID0gKGlucHV0OiBzdHJpbmcsIHNlYXJjaDogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gIHJldHVybiBpbnB1dC5zdWJzdHJpbmcoMCwgc2VhcmNoLmxlbmd0aCkgPT09IHNlYXJjaDtcbn07XG4iXX0=
|