@ionic/angular 7.3.4-dev.11694530824.11fd0fb9 → 7.3.4-dev.11694532574.1e397a21
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/index.d.ts +1 -0
- package/{directives → common/directives}/control-value-accessors/value-accessor.d.ts +2 -2
- package/common/index.d.ts +2 -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/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/esm2020/app-initialize.mjs +2 -2
- package/esm2020/common/directives/control-value-accessors/index.mjs +2 -0
- package/esm2020/common/directives/control-value-accessors/value-accessor.mjs +141 -0
- package/esm2020/common/index.mjs +3 -1
- package/esm2020/common/utils/util.mjs +10 -0
- 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 +6 -3
- 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/standalone/directives/checkbox.mjs +73 -0
- package/esm2020/standalone/directives/datetime.mjs +90 -0
- package/esm2020/standalone/directives/index.mjs +13 -0
- package/esm2020/standalone/directives/input.mjs +112 -0
- package/esm2020/standalone/directives/proxies.mjs +1 -693
- package/esm2020/standalone/directives/radio-group.mjs +58 -0
- package/esm2020/standalone/directives/radio.mjs +62 -0
- package/esm2020/standalone/directives/range.mjs +77 -0
- package/esm2020/standalone/directives/searchbar.mjs +80 -0
- package/esm2020/standalone/directives/segment.mjs +58 -0
- package/esm2020/standalone/directives/select.mjs +81 -0
- package/esm2020/standalone/directives/textarea.mjs +90 -0
- package/esm2020/standalone/directives/toggle.mjs +73 -0
- package/esm2020/standalone/index.mjs +2 -5
- package/fesm2015/ionic-angular-common.mjs +149 -1
- package/fesm2015/ionic-angular-common.mjs.map +1 -1
- package/fesm2015/ionic-angular-standalone.mjs +881 -785
- package/fesm2015/ionic-angular-standalone.mjs.map +1 -1
- package/fesm2015/ionic-angular.mjs +8 -152
- package/fesm2015/ionic-angular.mjs.map +1 -1
- package/fesm2020/ionic-angular-common.mjs +149 -1
- package/fesm2020/ionic-angular-common.mjs.map +1 -1
- package/fesm2020/ionic-angular-standalone.mjs +881 -785
- package/fesm2020/ionic-angular-standalone.mjs.map +1 -1
- package/fesm2020/ionic-angular.mjs +8 -152
- package/fesm2020/ionic-angular.mjs.map +1 -1
- package/package.json +2 -2
- package/standalone/directives/checkbox.d.ts +30 -0
- package/standalone/directives/datetime.d.ts +30 -0
- package/standalone/directives/index.d.ts +12 -0
- package/standalone/directives/input.d.ts +47 -0
- package/standalone/directives/proxies.d.ts +0 -314
- package/standalone/directives/radio-group.d.ts +18 -0
- package/standalone/directives/radio.d.ts +22 -0
- package/standalone/directives/range.d.ts +47 -0
- package/standalone/directives/searchbar.d.ts +45 -0
- package/standalone/directives/segment.d.ts +19 -0
- package/standalone/directives/select.d.ts +34 -0
- package/standalone/directives/textarea.d.ts +37 -0
- package/standalone/directives/toggle.d.ts +28 -0
- package/standalone/index.d.ts +1 -2
- package/esm2020/directives/control-value-accessors/value-accessor.mjs +0 -141
- package/esm2020/util/util.mjs +0 -10
- /package/{util → common/utils}/util.d.ts +0 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { ChangeDetectorRef, ElementRef, EventEmitter, Injector, NgZone } from '@angular/core';
|
|
2
|
+
import { ValueAccessor } from '@ionic/angular/common';
|
|
3
|
+
import type { SearchbarInputEventDetail, SearchbarChangeEventDetail, Components } from '@ionic/core/components';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class IonSearchbar extends ValueAccessor {
|
|
6
|
+
protected z: NgZone;
|
|
7
|
+
protected el: HTMLElement;
|
|
8
|
+
constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone, injector: Injector);
|
|
9
|
+
handleIonInput(el: HTMLIonSearchbarElement): void;
|
|
10
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IonSearchbar, never>;
|
|
11
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<IonSearchbar, "ion-searchbar", never, { "animated": "animated"; "autocomplete": "autocomplete"; "autocorrect": "autocorrect"; "cancelButtonIcon": "cancelButtonIcon"; "cancelButtonText": "cancelButtonText"; "clearIcon": "clearIcon"; "color": "color"; "debounce": "debounce"; "disabled": "disabled"; "enterkeyhint": "enterkeyhint"; "inputmode": "inputmode"; "mode": "mode"; "name": "name"; "placeholder": "placeholder"; "searchIcon": "searchIcon"; "showCancelButton": "showCancelButton"; "showClearButton": "showClearButton"; "spellcheck": "spellcheck"; "type": "type"; "value": "value"; }, {}, never, ["*"], true>;
|
|
12
|
+
}
|
|
13
|
+
export declare interface IonSearchbar extends Components.IonSearchbar {
|
|
14
|
+
/**
|
|
15
|
+
* Emitted when the `value` of the `ion-searchbar` element has changed.
|
|
16
|
+
*/
|
|
17
|
+
ionInput: EventEmitter<CustomEvent<SearchbarInputEventDetail>>;
|
|
18
|
+
/**
|
|
19
|
+
* The `ionChange` event is fired for `<ion-searchbar>` elements when the user
|
|
20
|
+
modifies the element's value. Unlike the `ionInput` event, the `ionChange`
|
|
21
|
+
event is not necessarily fired for each alteration to an element's value.
|
|
22
|
+
|
|
23
|
+
The `ionChange` event is fired when the value has been committed
|
|
24
|
+
by the user. This can happen when the element loses focus or
|
|
25
|
+
when the "Enter" key is pressed. `ionChange` can also fire
|
|
26
|
+
when clicking the clear or cancel buttons.
|
|
27
|
+
*/
|
|
28
|
+
ionChange: EventEmitter<CustomEvent<SearchbarChangeEventDetail>>;
|
|
29
|
+
/**
|
|
30
|
+
* Emitted when the cancel button is clicked.
|
|
31
|
+
*/
|
|
32
|
+
ionCancel: EventEmitter<CustomEvent<void>>;
|
|
33
|
+
/**
|
|
34
|
+
* Emitted when the clear input button is clicked.
|
|
35
|
+
*/
|
|
36
|
+
ionClear: EventEmitter<CustomEvent<void>>;
|
|
37
|
+
/**
|
|
38
|
+
* Emitted when the input loses focus.
|
|
39
|
+
*/
|
|
40
|
+
ionBlur: EventEmitter<CustomEvent<void>>;
|
|
41
|
+
/**
|
|
42
|
+
* Emitted when the input has focus.
|
|
43
|
+
*/
|
|
44
|
+
ionFocus: EventEmitter<CustomEvent<void>>;
|
|
45
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ChangeDetectorRef, ElementRef, EventEmitter, Injector, NgZone } from '@angular/core';
|
|
2
|
+
import { ValueAccessor } from '@ionic/angular/common';
|
|
3
|
+
import type { SegmentChangeEventDetail, Components } from '@ionic/core/components';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class IonSegment extends ValueAccessor {
|
|
6
|
+
protected z: NgZone;
|
|
7
|
+
protected el: HTMLElement;
|
|
8
|
+
constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone, injector: Injector);
|
|
9
|
+
handleIonChange(el: HTMLIonSegmentElement): void;
|
|
10
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IonSegment, never>;
|
|
11
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<IonSegment, "ion-segment", never, { "color": "color"; "disabled": "disabled"; "mode": "mode"; "scrollable": "scrollable"; "selectOnFocus": "selectOnFocus"; "swipeGesture": "swipeGesture"; "value": "value"; }, {}, never, ["*"], true>;
|
|
12
|
+
}
|
|
13
|
+
export declare interface IonSegment extends Components.IonSegment {
|
|
14
|
+
/**
|
|
15
|
+
* Emitted when the value property has changed and any
|
|
16
|
+
dragging pointer has been released from `ion-segment`.
|
|
17
|
+
*/
|
|
18
|
+
ionChange: EventEmitter<CustomEvent<SegmentChangeEventDetail>>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { ChangeDetectorRef, ElementRef, EventEmitter, Injector, NgZone } from '@angular/core';
|
|
2
|
+
import { ValueAccessor } from '@ionic/angular/common';
|
|
3
|
+
import type { SelectChangeEventDetail, Components } from '@ionic/core/components';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class IonSelect extends ValueAccessor {
|
|
6
|
+
protected z: NgZone;
|
|
7
|
+
protected el: HTMLElement;
|
|
8
|
+
constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone, injector: Injector);
|
|
9
|
+
handleIonChange(el: HTMLIonSelectElement): void;
|
|
10
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IonSelect, never>;
|
|
11
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<IonSelect, "ion-select", never, { "cancelText": "cancelText"; "color": "color"; "compareWith": "compareWith"; "disabled": "disabled"; "expandedIcon": "expandedIcon"; "fill": "fill"; "interface": "interface"; "interfaceOptions": "interfaceOptions"; "justify": "justify"; "label": "label"; "labelPlacement": "labelPlacement"; "legacy": "legacy"; "mode": "mode"; "multiple": "multiple"; "name": "name"; "okText": "okText"; "placeholder": "placeholder"; "selectedText": "selectedText"; "shape": "shape"; "toggleIcon": "toggleIcon"; "value": "value"; }, {}, never, ["*"], true>;
|
|
12
|
+
}
|
|
13
|
+
export declare interface IonSelect extends Components.IonSelect {
|
|
14
|
+
/**
|
|
15
|
+
* Emitted when the value has changed.
|
|
16
|
+
*/
|
|
17
|
+
ionChange: EventEmitter<CustomEvent<SelectChangeEventDetail>>;
|
|
18
|
+
/**
|
|
19
|
+
* Emitted when the selection is cancelled.
|
|
20
|
+
*/
|
|
21
|
+
ionCancel: EventEmitter<CustomEvent<void>>;
|
|
22
|
+
/**
|
|
23
|
+
* Emitted when the overlay is dismissed.
|
|
24
|
+
*/
|
|
25
|
+
ionDismiss: EventEmitter<CustomEvent<void>>;
|
|
26
|
+
/**
|
|
27
|
+
* Emitted when the select has focus.
|
|
28
|
+
*/
|
|
29
|
+
ionFocus: EventEmitter<CustomEvent<void>>;
|
|
30
|
+
/**
|
|
31
|
+
* Emitted when the select loses focus.
|
|
32
|
+
*/
|
|
33
|
+
ionBlur: EventEmitter<CustomEvent<void>>;
|
|
34
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { ChangeDetectorRef, ElementRef, EventEmitter, Injector, NgZone } from '@angular/core';
|
|
2
|
+
import { ValueAccessor } from '@ionic/angular/common';
|
|
3
|
+
import type { TextareaChangeEventDetail, TextareaInputEventDetail, Components } from '@ionic/core/components';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class IonTextarea extends ValueAccessor {
|
|
6
|
+
protected z: NgZone;
|
|
7
|
+
protected el: HTMLElement;
|
|
8
|
+
constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone, injector: Injector);
|
|
9
|
+
handleIonInput(el: HTMLIonTextareaElement): void;
|
|
10
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IonTextarea, never>;
|
|
11
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<IonTextarea, "ion-textarea", never, { "autoGrow": "autoGrow"; "autocapitalize": "autocapitalize"; "autofocus": "autofocus"; "clearOnEdit": "clearOnEdit"; "color": "color"; "cols": "cols"; "counter": "counter"; "counterFormatter": "counterFormatter"; "debounce": "debounce"; "disabled": "disabled"; "enterkeyhint": "enterkeyhint"; "errorText": "errorText"; "fill": "fill"; "helperText": "helperText"; "inputmode": "inputmode"; "label": "label"; "labelPlacement": "labelPlacement"; "legacy": "legacy"; "maxlength": "maxlength"; "minlength": "minlength"; "mode": "mode"; "name": "name"; "placeholder": "placeholder"; "readonly": "readonly"; "required": "required"; "rows": "rows"; "shape": "shape"; "spellcheck": "spellcheck"; "value": "value"; "wrap": "wrap"; }, {}, never, ["*"], true>;
|
|
12
|
+
}
|
|
13
|
+
export declare interface IonTextarea extends Components.IonTextarea {
|
|
14
|
+
/**
|
|
15
|
+
* The `ionChange` event is fired when the user modifies the textarea's value.
|
|
16
|
+
Unlike the `ionInput` event, the `ionChange` event is fired when
|
|
17
|
+
the element loses focus after its value has been modified.
|
|
18
|
+
*/
|
|
19
|
+
ionChange: EventEmitter<CustomEvent<TextareaChangeEventDetail>>;
|
|
20
|
+
/**
|
|
21
|
+
* The `ionInput` event is fired each time the user modifies the textarea's value.
|
|
22
|
+
Unlike the `ionChange` event, the `ionInput` event is fired for each alteration
|
|
23
|
+
to the textarea's value. This typically happens for each keystroke as the user types.
|
|
24
|
+
|
|
25
|
+
When `clearOnEdit` is enabled, the `ionInput` event will be fired when
|
|
26
|
+
the user clears the textarea by performing a keydown event.
|
|
27
|
+
*/
|
|
28
|
+
ionInput: EventEmitter<CustomEvent<TextareaInputEventDetail>>;
|
|
29
|
+
/**
|
|
30
|
+
* Emitted when the input loses focus.
|
|
31
|
+
*/
|
|
32
|
+
ionBlur: EventEmitter<CustomEvent<FocusEvent>>;
|
|
33
|
+
/**
|
|
34
|
+
* Emitted when the input has focus.
|
|
35
|
+
*/
|
|
36
|
+
ionFocus: EventEmitter<CustomEvent<FocusEvent>>;
|
|
37
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ChangeDetectorRef, ElementRef, EventEmitter, Injector, NgZone } from '@angular/core';
|
|
2
|
+
import { ValueAccessor } from '@ionic/angular/common';
|
|
3
|
+
import type { ToggleChangeEventDetail, Components } from '@ionic/core/components';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class IonToggle extends ValueAccessor {
|
|
6
|
+
protected z: NgZone;
|
|
7
|
+
protected el: HTMLElement;
|
|
8
|
+
constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone, injector: Injector);
|
|
9
|
+
writeValue(value: boolean): void;
|
|
10
|
+
handleIonChange(el: HTMLIonToggleElement): void;
|
|
11
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IonToggle, never>;
|
|
12
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<IonToggle, "ion-toggle", never, { "checked": "checked"; "color": "color"; "disabled": "disabled"; "enableOnOffLabels": "enableOnOffLabels"; "justify": "justify"; "labelPlacement": "labelPlacement"; "legacy": "legacy"; "mode": "mode"; "name": "name"; "value": "value"; }, {}, never, ["*"], true>;
|
|
13
|
+
}
|
|
14
|
+
export declare interface IonToggle extends Components.IonToggle {
|
|
15
|
+
/**
|
|
16
|
+
* Emitted when the user switches the toggle on or off. Does not emit
|
|
17
|
+
when programmatically changing the value of the `checked` property.
|
|
18
|
+
*/
|
|
19
|
+
ionChange: EventEmitter<CustomEvent<ToggleChangeEventDetail>>;
|
|
20
|
+
/**
|
|
21
|
+
* Emitted when the toggle has focus.
|
|
22
|
+
*/
|
|
23
|
+
ionFocus: EventEmitter<CustomEvent<void>>;
|
|
24
|
+
/**
|
|
25
|
+
* Emitted when the toggle loses focus.
|
|
26
|
+
*/
|
|
27
|
+
ionBlur: EventEmitter<CustomEvent<void>>;
|
|
28
|
+
}
|
package/standalone/index.d.ts
CHANGED
|
@@ -7,6 +7,5 @@ export { IonTabs } from './navigation/tabs';
|
|
|
7
7
|
export { provideIonicAngular } from './providers/ionic-angular';
|
|
8
8
|
export { ActionSheetController, AlertController, LoadingController, MenuController, ModalController, PickerController, PopoverController, ToastController, AnimationController, GestureController, DomController, NavController, Config, Platform, NavParams, IonicRouteStrategy, } from '@ionic/angular/common';
|
|
9
9
|
export { IonNav } from './navigation/nav';
|
|
10
|
-
export { IonIcon } from './directives
|
|
10
|
+
export { IonCheckbox, IonDatetime, IonInput, IonIcon, IonRadioGroup, IonRadio, IonRange, IonSearchbar, IonSegment, IonSelect, IonTextarea, IonToggle, } from './directives';
|
|
11
11
|
export * from './directives/proxies';
|
|
12
|
-
export { createAnimation, createGesture, iosTransitionAnimation, mdTransitionAnimation, IonicSlides, getPlatforms, isPlatform, getTimeGivenProgression, Animation, AnimationBuilder, AnimationCallbackOptions, AnimationDirection, AnimationFill, AnimationKeyFrames, AnimationLifecycle, Gesture, GestureConfig, GestureDetail, NavComponentWithProps, SpinnerTypes, AccordionGroupCustomEvent, AccordionGroupChangeEventDetail, BreadcrumbCustomEvent, BreadcrumbCollapsedClickEventDetail, ActionSheetOptions, ActionSheetButton, AlertOptions, AlertInput, AlertButton, BackButtonEvent, CheckboxCustomEvent, CheckboxChangeEventDetail, DatetimeCustomEvent, DatetimeChangeEventDetail, InfiniteScrollCustomEvent, InputCustomEvent, InputChangeEventDetail, ItemReorderEventDetail, ItemReorderCustomEvent, ItemSlidingCustomEvent, IonicSafeString, LoadingOptions, MenuCustomEvent, ModalOptions, NavCustomEvent, PickerOptions, PickerButton, PickerColumn, PickerColumnOption, PlatformConfig, PopoverOptions, RadioGroupCustomEvent, RadioGroupChangeEventDetail, RangeCustomEvent, RangeChangeEventDetail, RangeKnobMoveStartEventDetail, RangeKnobMoveEndEventDetail, RefresherCustomEvent, RefresherEventDetail, RouterEventDetail, RouterCustomEvent, ScrollBaseCustomEvent, ScrollBaseDetail, ScrollDetail, ScrollCustomEvent, SearchbarCustomEvent, SearchbarChangeEventDetail, SearchbarInputEventDetail, SegmentChangeEventDetail, SegmentCustomEvent, SegmentValue, SelectChangeEventDetail, SelectCustomEvent, TabsCustomEvent, TextareaChangeEventDetail, TextareaCustomEvent, ToastOptions, ToastButton, ToastLayout, ToggleChangeEventDetail, ToggleCustomEvent, } from '@ionic/core/components';
|
|
@@ -1,141 +0,0 @@
|
|
|
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=
|
package/esm2020/util/util.mjs
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export const raf = (h) => {
|
|
2
|
-
if (typeof __zone_symbol__requestAnimationFrame === 'function') {
|
|
3
|
-
return __zone_symbol__requestAnimationFrame(h);
|
|
4
|
-
}
|
|
5
|
-
if (typeof requestAnimationFrame === 'function') {
|
|
6
|
-
return requestAnimationFrame(h);
|
|
7
|
-
}
|
|
8
|
-
return setTimeout(h);
|
|
9
|
-
};
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlsL3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBTSxFQUFPLEVBQUU7SUFDakMsSUFBSSxPQUFPLG9DQUFvQyxLQUFLLFVBQVUsRUFBRTtRQUM5RCxPQUFPLG9DQUFvQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ2hEO0lBQ0QsSUFBSSxPQUFPLHFCQUFxQixLQUFLLFVBQVUsRUFBRTtRQUMvQyxPQUFPLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ2pDO0lBQ0QsT0FBTyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdkIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZGVjbGFyZSBjb25zdCBfX3pvbmVfc3ltYm9sX19yZXF1ZXN0QW5pbWF0aW9uRnJhbWU6IGFueTtcbmRlY2xhcmUgY29uc3QgcmVxdWVzdEFuaW1hdGlvbkZyYW1lOiBhbnk7XG5cbmV4cG9ydCBjb25zdCByYWYgPSAoaDogYW55KTogYW55ID0+IHtcbiAgaWYgKHR5cGVvZiBfX3pvbmVfc3ltYm9sX19yZXF1ZXN0QW5pbWF0aW9uRnJhbWUgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gX196b25lX3N5bWJvbF9fcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGgpO1xuICB9XG4gIGlmICh0eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIHJlcXVlc3RBbmltYXRpb25GcmFtZShoKTtcbiAgfVxuICByZXR1cm4gc2V0VGltZW91dChoKTtcbn07XG4iXX0=
|
|
File without changes
|