@ionic/angular 7.3.4-dev.11695051069.10d92d60 → 7.3.4-dev.11695650636.128f2ec9

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.
Files changed (62) hide show
  1. package/common/directives/control-value-accessors/index.d.ts +1 -0
  2. package/{directives → common/directives}/control-value-accessors/value-accessor.d.ts +2 -2
  3. package/common/index.d.ts +2 -0
  4. package/directives/control-value-accessors/boolean-value-accessor.d.ts +1 -1
  5. package/directives/control-value-accessors/numeric-value-accessor.d.ts +1 -1
  6. package/directives/control-value-accessors/radio-value-accessor.d.ts +1 -1
  7. package/directives/control-value-accessors/select-value-accessor.d.ts +1 -1
  8. package/directives/control-value-accessors/text-value-accessor.d.ts +1 -1
  9. package/esm2020/app-initialize.mjs +2 -2
  10. package/esm2020/common/directives/control-value-accessors/index.mjs +2 -0
  11. package/esm2020/common/directives/control-value-accessors/value-accessor.mjs +141 -0
  12. package/esm2020/common/index.mjs +3 -1
  13. package/esm2020/common/utils/util.mjs +10 -0
  14. package/esm2020/directives/control-value-accessors/boolean-value-accessor.mjs +4 -4
  15. package/esm2020/directives/control-value-accessors/numeric-value-accessor.mjs +2 -2
  16. package/esm2020/directives/control-value-accessors/radio-value-accessor.mjs +6 -3
  17. package/esm2020/directives/control-value-accessors/select-value-accessor.mjs +2 -2
  18. package/esm2020/directives/control-value-accessors/text-value-accessor.mjs +2 -2
  19. package/esm2020/standalone/directives/checkbox.mjs +73 -0
  20. package/esm2020/standalone/directives/datetime.mjs +90 -0
  21. package/esm2020/standalone/directives/index.mjs +13 -0
  22. package/esm2020/standalone/directives/input.mjs +112 -0
  23. package/esm2020/standalone/directives/proxies.mjs +565 -476
  24. package/esm2020/standalone/directives/radio-group.mjs +58 -0
  25. package/esm2020/standalone/directives/radio.mjs +62 -0
  26. package/esm2020/standalone/directives/range.mjs +77 -0
  27. package/esm2020/standalone/directives/searchbar.mjs +80 -0
  28. package/esm2020/standalone/directives/segment.mjs +58 -0
  29. package/esm2020/standalone/directives/select.mjs +81 -0
  30. package/esm2020/standalone/directives/textarea.mjs +90 -0
  31. package/esm2020/standalone/directives/toggle.mjs +73 -0
  32. package/esm2020/standalone/index.mjs +2 -2
  33. package/fesm2015/ionic-angular-common.mjs +149 -1
  34. package/fesm2015/ionic-angular-common.mjs.map +1 -1
  35. package/fesm2015/ionic-angular-standalone.mjs +1448 -570
  36. package/fesm2015/ionic-angular-standalone.mjs.map +1 -1
  37. package/fesm2015/ionic-angular.mjs +8 -152
  38. package/fesm2015/ionic-angular.mjs.map +1 -1
  39. package/fesm2020/ionic-angular-common.mjs +149 -1
  40. package/fesm2020/ionic-angular-common.mjs.map +1 -1
  41. package/fesm2020/ionic-angular-standalone.mjs +1448 -570
  42. package/fesm2020/ionic-angular-standalone.mjs.map +1 -1
  43. package/fesm2020/ionic-angular.mjs +8 -152
  44. package/fesm2020/ionic-angular.mjs.map +1 -1
  45. package/package.json +3 -3
  46. package/standalone/directives/checkbox.d.ts +30 -0
  47. package/standalone/directives/datetime.d.ts +30 -0
  48. package/standalone/directives/index.d.ts +12 -0
  49. package/standalone/directives/input.d.ts +47 -0
  50. package/standalone/directives/proxies.d.ts +0 -314
  51. package/standalone/directives/radio-group.d.ts +18 -0
  52. package/standalone/directives/radio.d.ts +22 -0
  53. package/standalone/directives/range.d.ts +47 -0
  54. package/standalone/directives/searchbar.d.ts +45 -0
  55. package/standalone/directives/segment.d.ts +19 -0
  56. package/standalone/directives/select.d.ts +34 -0
  57. package/standalone/directives/textarea.d.ts +37 -0
  58. package/standalone/directives/toggle.d.ts +28 -0
  59. package/standalone/index.d.ts +1 -1
  60. package/esm2020/directives/control-value-accessors/value-accessor.mjs +0 -141
  61. package/esm2020/util/util.mjs +0 -10
  62. /package/{util → common/utils}/util.d.ts +0 -0
@@ -0,0 +1,73 @@
1
+ var IonToggle_1;
2
+ import { __decorate } from "tslib";
3
+ import { ChangeDetectionStrategy, Component, HostListener, } from '@angular/core';
4
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
5
+ import { ValueAccessor, setIonicClasses } from '@ionic/angular/common';
6
+ import { defineCustomElement } from '@ionic/core/components/ion-toggle.js';
7
+ import { ProxyCmp, proxyOutputs } from './angular-component-lib/utils';
8
+ import * as i0 from "@angular/core";
9
+ const TOGGLE_INPUTS = [
10
+ 'checked',
11
+ 'color',
12
+ 'disabled',
13
+ 'enableOnOffLabels',
14
+ 'justify',
15
+ 'labelPlacement',
16
+ 'legacy',
17
+ 'mode',
18
+ 'name',
19
+ 'value',
20
+ ];
21
+ let IonToggle = IonToggle_1 = class IonToggle extends ValueAccessor {
22
+ constructor(c, r, z, injector) {
23
+ super(injector, r);
24
+ this.z = z;
25
+ c.detach();
26
+ this.el = r.nativeElement;
27
+ proxyOutputs(this, this.el, ['ionChange', 'ionFocus', 'ionBlur']);
28
+ }
29
+ writeValue(value) {
30
+ this.elementRef.nativeElement.checked = this.lastValue = value;
31
+ setIonicClasses(this.elementRef);
32
+ }
33
+ handleIonChange(el) {
34
+ this.handleValueChange(el, el.checked);
35
+ }
36
+ };
37
+ /** @nocollapse */ IonToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
38
+ /** @nocollapse */ IonToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonToggle, isStandalone: true, selector: "ion-toggle", inputs: { checked: "checked", color: "color", disabled: "disabled", enableOnOffLabels: "enableOnOffLabels", justify: "justify", labelPlacement: "labelPlacement", legacy: "legacy", mode: "mode", name: "name", value: "value" }, host: { listeners: { "ionChange": "handleIonChange($event.target)" } }, providers: [
39
+ {
40
+ provide: NG_VALUE_ACCESSOR,
41
+ useExisting: IonToggle_1,
42
+ multi: true,
43
+ },
44
+ ], usesInheritance: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
45
+ IonToggle = IonToggle_1 = __decorate([
46
+ ProxyCmp({
47
+ defineCustomElementFn: defineCustomElement,
48
+ inputs: TOGGLE_INPUTS,
49
+ })
50
+ ], IonToggle);
51
+ export { IonToggle };
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonToggle, decorators: [{
53
+ type: Component,
54
+ args: [{
55
+ selector: 'ion-toggle',
56
+ changeDetection: ChangeDetectionStrategy.OnPush,
57
+ template: '<ng-content></ng-content>',
58
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
59
+ inputs: TOGGLE_INPUTS,
60
+ providers: [
61
+ {
62
+ provide: NG_VALUE_ACCESSOR,
63
+ useExisting: IonToggle,
64
+ multi: true,
65
+ },
66
+ ],
67
+ standalone: true,
68
+ }]
69
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Injector }]; }, propDecorators: { handleIonChange: [{
70
+ type: HostListener,
71
+ args: ['ionChange', ['$event.target']]
72
+ }] } });
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3RhbmRhbG9uZS9zcmMvZGlyZWN0aXZlcy90b2dnbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFHVCxZQUFZLEdBR2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUUzRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQUV2RSxNQUFNLGFBQWEsR0FBRztJQUNwQixTQUFTO0lBQ1QsT0FBTztJQUNQLFVBQVU7SUFDVixtQkFBbUI7SUFDbkIsU0FBUztJQUNULGdCQUFnQjtJQUNoQixRQUFRO0lBQ1IsTUFBTTtJQUNOLE1BQU07SUFDTixPQUFPO0NBQ1IsQ0FBQztJQXFCVyxTQUFTLHVCQUFULFNBQVUsU0FBUSxhQUFhO0lBRTFDLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUyxFQUFFLFFBQWtCO1FBQ3RGLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFEc0MsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUVsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDMUIsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsV0FBVyxFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBYztRQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDL0QsZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBR0QsZUFBZSxDQUFDLEVBQXdCO1FBQ3RDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7Q0FDRixDQUFBOzBIQWxCWSxTQUFTOzhHQUFULFNBQVMsbVdBVFQ7UUFDVDtZQUNFLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsV0FBVyxFQUFFLFdBQVM7WUFDdEIsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGLGlEQVRTLDJCQUEyQjtBQVkxQixTQUFTO0lBbkJyQixRQUFRLENBQUM7UUFDUixxQkFBcUIsRUFBRSxtQkFBbUI7UUFDMUMsTUFBTSxFQUFFLGFBQWE7S0FDdEIsQ0FBQztHQWdCVyxTQUFTLENBa0JyQjtTQWxCWSxTQUFTOzRGQUFULFNBQVM7a0JBZnJCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxhQUFhO29CQUNyQixTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxXQUFXOzRCQUN0QixLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtvQkFDRCxVQUFVLEVBQUUsSUFBSTtpQkFDakI7NktBZ0JDLGVBQWU7c0JBRGQsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIEluamVjdG9yLFxuICBOZ1pvbmUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBWYWx1ZUFjY2Vzc29yLCBzZXRJb25pY0NsYXNzZXMgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHR5cGUgeyBUb2dnbGVDaGFuZ2VFdmVudERldGFpbCwgQ29tcG9uZW50cyB9IGZyb20gJ0Bpb25pYy9jb3JlL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudCB9IGZyb20gJ0Bpb25pYy9jb3JlL2NvbXBvbmVudHMvaW9uLXRvZ2dsZS5qcyc7XG5cbmltcG9ydCB7IFByb3h5Q21wLCBwcm94eU91dHB1dHMgfSBmcm9tICcuL2FuZ3VsYXItY29tcG9uZW50LWxpYi91dGlscyc7XG5cbmNvbnN0IFRPR0dMRV9JTlBVVFMgPSBbXG4gICdjaGVja2VkJyxcbiAgJ2NvbG9yJyxcbiAgJ2Rpc2FibGVkJyxcbiAgJ2VuYWJsZU9uT2ZmTGFiZWxzJyxcbiAgJ2p1c3RpZnknLFxuICAnbGFiZWxQbGFjZW1lbnQnLFxuICAnbGVnYWN5JyxcbiAgJ21vZGUnLFxuICAnbmFtZScsXG4gICd2YWx1ZScsXG5dO1xuXG5AUHJveHlDbXAoe1xuICBkZWZpbmVDdXN0b21FbGVtZW50Rm46IGRlZmluZUN1c3RvbUVsZW1lbnQsXG4gIGlucHV0czogVE9HR0xFX0lOUFVUUyxcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpb24tdG9nZ2xlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogVE9HR0xFX0lOUFVUUyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogSW9uVG9nZ2xlLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgSW9uVG9nZ2xlIGV4dGVuZHMgVmFsdWVBY2Nlc3NvciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lLCBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICBzdXBlcihpbmplY3Rvciwgcik7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2lvbkNoYW5nZScsICdpb25Gb2N1cycsICdpb25CbHVyJ10pO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNoZWNrZWQgPSB0aGlzLmxhc3RWYWx1ZSA9IHZhbHVlO1xuICAgIHNldElvbmljQ2xhc3Nlcyh0aGlzLmVsZW1lbnRSZWYpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignaW9uQ2hhbmdlJywgWyckZXZlbnQudGFyZ2V0J10pXG4gIGhhbmRsZUlvbkNoYW5nZShlbDogSFRNTElvblRvZ2dsZUVsZW1lbnQpOiB2b2lkIHtcbiAgICB0aGlzLmhhbmRsZVZhbHVlQ2hhbmdlKGVsLCBlbC5jaGVja2VkKTtcbiAgfVxufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSW9uVG9nZ2xlIGV4dGVuZHMgQ29tcG9uZW50cy5Jb25Ub2dnbGUge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSB1c2VyIHN3aXRjaGVzIHRoZSB0b2dnbGUgb24gb3Igb2ZmLiBEb2VzIG5vdCBlbWl0XG53aGVuIHByb2dyYW1tYXRpY2FsbHkgY2hhbmdpbmcgdGhlIHZhbHVlIG9mIHRoZSBgY2hlY2tlZGAgcHJvcGVydHkuXG4gICAqL1xuICBpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxUb2dnbGVDaGFuZ2VFdmVudERldGFpbD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSB0b2dnbGUgaGFzIGZvY3VzLlxuICAgKi9cbiAgaW9uRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHRvZ2dsZSBsb3NlcyBmb2N1cy5cbiAgICovXG4gIGlvbkJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG4iXX0=
@@ -7,9 +7,9 @@ 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/icon';
10
+ export { IonCheckbox, IonDatetime, IonInput, IonIcon, IonRadioGroup, IonRadio, IonRange, IonSearchbar, IonSegment, IonSelect, IonTextarea, IonToggle, } from './directives';
11
11
  export * from './directives/proxies';
12
12
  export {
13
13
  // UTILS
14
14
  createAnimation, createGesture, iosTransitionAnimation, mdTransitionAnimation, IonicSlides, getPlatforms, isPlatform, getTimeGivenProgression, IonicSafeString, } from '@ionic/core/components';
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zdGFuZGFsb25lL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRSxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLGVBQWUsRUFDZixpQkFBaUIsRUFDakIsY0FBYyxFQUNkLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYixhQUFhLEVBQ2IsTUFBTSxFQUNOLFFBQVEsRUFDUixTQUFTLEVBQ1Qsa0JBQWtCLEdBQ25CLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1QyxjQUFjLHNCQUFzQixDQUFDO0FBRXJDLE9BQU87QUFDTCxRQUFRO0FBQ1IsZUFBZSxFQUNmLGFBQWEsRUFDYixzQkFBc0IsRUFDdEIscUJBQXFCLEVBQ3JCLFdBQVcsRUFDWCxZQUFZLEVBQ1osVUFBVSxFQUNWLHVCQUF1QixFQWtDdkIsZUFBZSxHQXlDaEIsTUFBTSx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IElvbkJhY2tCdXR0b24gfSBmcm9tICcuL25hdmlnYXRpb24vYmFjay1idXR0b24nO1xuZXhwb3J0IHsgSW9uTW9kYWwgfSBmcm9tICcuL292ZXJsYXlzL21vZGFsJztcbmV4cG9ydCB7IElvblBvcG92ZXIgfSBmcm9tICcuL292ZXJsYXlzL3BvcG92ZXInO1xuZXhwb3J0IHsgSW9uUm91dGVyT3V0bGV0IH0gZnJvbSAnLi9uYXZpZ2F0aW9uL3JvdXRlci1vdXRsZXQnO1xuZXhwb3J0IHsgSW9uUm91dGVyTGluaywgSW9uUm91dGVyTGlua1dpdGhIcmVmIH0gZnJvbSAnLi9uYXZpZ2F0aW9uL3JvdXRlci1saW5rLWRlbGVnYXRlJztcbmV4cG9ydCB7IElvblRhYnMgfSBmcm9tICcuL25hdmlnYXRpb24vdGFicyc7XG5leHBvcnQgeyBwcm92aWRlSW9uaWNBbmd1bGFyIH0gZnJvbSAnLi9wcm92aWRlcnMvaW9uaWMtYW5ndWxhcic7XG5leHBvcnQge1xuICBBY3Rpb25TaGVldENvbnRyb2xsZXIsXG4gIEFsZXJ0Q29udHJvbGxlcixcbiAgTG9hZGluZ0NvbnRyb2xsZXIsXG4gIE1lbnVDb250cm9sbGVyLFxuICBNb2RhbENvbnRyb2xsZXIsXG4gIFBpY2tlckNvbnRyb2xsZXIsXG4gIFBvcG92ZXJDb250cm9sbGVyLFxuICBUb2FzdENvbnRyb2xsZXIsXG4gIEFuaW1hdGlvbkNvbnRyb2xsZXIsXG4gIEdlc3R1cmVDb250cm9sbGVyLFxuICBEb21Db250cm9sbGVyLFxuICBOYXZDb250cm9sbGVyLFxuICBDb25maWcsXG4gIFBsYXRmb3JtLFxuICBOYXZQYXJhbXMsXG4gIElvbmljUm91dGVTdHJhdGVneSxcbn0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvY29tbW9uJztcbmV4cG9ydCB7IElvbk5hdiB9IGZyb20gJy4vbmF2aWdhdGlvbi9uYXYnO1xuZXhwb3J0IHsgSW9uSWNvbiB9IGZyb20gJy4vZGlyZWN0aXZlcy9pY29uJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9wcm94aWVzJztcblxuZXhwb3J0IHtcbiAgLy8gVVRJTFNcbiAgY3JlYXRlQW5pbWF0aW9uLFxuICBjcmVhdGVHZXN0dXJlLFxuICBpb3NUcmFuc2l0aW9uQW5pbWF0aW9uLFxuICBtZFRyYW5zaXRpb25BbmltYXRpb24sXG4gIElvbmljU2xpZGVzLFxuICBnZXRQbGF0Zm9ybXMsXG4gIGlzUGxhdGZvcm0sXG4gIGdldFRpbWVHaXZlblByb2dyZXNzaW9uLFxuICAvLyBUWVBFU1xuICBBbmltYXRpb24sXG4gIEFuaW1hdGlvbkJ1aWxkZXIsXG4gIEFuaW1hdGlvbkNhbGxiYWNrT3B0aW9ucyxcbiAgQW5pbWF0aW9uRGlyZWN0aW9uLFxuICBBbmltYXRpb25GaWxsLFxuICBBbmltYXRpb25LZXlGcmFtZXMsXG4gIEFuaW1hdGlvbkxpZmVjeWNsZSxcbiAgR2VzdHVyZSxcbiAgR2VzdHVyZUNvbmZpZyxcbiAgR2VzdHVyZURldGFpbCxcbiAgTmF2Q29tcG9uZW50V2l0aFByb3BzLFxuICBTcGlubmVyVHlwZXMsXG4gIEFjY29yZGlvbkdyb3VwQ3VzdG9tRXZlbnQsXG4gIEFjY29yZGlvbkdyb3VwQ2hhbmdlRXZlbnREZXRhaWwsXG4gIEJyZWFkY3J1bWJDdXN0b21FdmVudCxcbiAgQnJlYWRjcnVtYkNvbGxhcHNlZENsaWNrRXZlbnREZXRhaWwsXG4gIEFjdGlvblNoZWV0T3B0aW9ucyxcbiAgQWN0aW9uU2hlZXRCdXR0b24sXG4gIEFsZXJ0T3B0aW9ucyxcbiAgQWxlcnRJbnB1dCxcbiAgQWxlcnRCdXR0b24sXG4gIEJhY2tCdXR0b25FdmVudCxcbiAgQ2hlY2tib3hDdXN0b21FdmVudCxcbiAgQ2hlY2tib3hDaGFuZ2VFdmVudERldGFpbCxcbiAgRGF0ZXRpbWVDdXN0b21FdmVudCxcbiAgRGF0ZXRpbWVDaGFuZ2VFdmVudERldGFpbCxcbiAgSW5maW5pdGVTY3JvbGxDdXN0b21FdmVudCxcbiAgSW5wdXRDdXN0b21FdmVudCxcbiAgSW5wdXRDaGFuZ2VFdmVudERldGFpbCxcbiAgSXRlbVJlb3JkZXJFdmVudERldGFpbCxcbiAgSXRlbVJlb3JkZXJDdXN0b21FdmVudCxcbiAgSXRlbVNsaWRpbmdDdXN0b21FdmVudCxcbiAgSW9uaWNTYWZlU3RyaW5nLFxuICBMb2FkaW5nT3B0aW9ucyxcbiAgTWVudUN1c3RvbUV2ZW50LFxuICBNb2RhbE9wdGlvbnMsXG4gIE5hdkN1c3RvbUV2ZW50LFxuICBQaWNrZXJPcHRpb25zLFxuICBQaWNrZXJCdXR0b24sXG4gIFBpY2tlckNvbHVtbixcbiAgUGlja2VyQ29sdW1uT3B0aW9uLFxuICBQbGF0Zm9ybUNvbmZpZyxcbiAgUG9wb3Zlck9wdGlvbnMsXG4gIFJhZGlvR3JvdXBDdXN0b21FdmVudCxcbiAgUmFkaW9Hcm91cENoYW5nZUV2ZW50RGV0YWlsLFxuICBSYW5nZUN1c3RvbUV2ZW50LFxuICBSYW5nZUNoYW5nZUV2ZW50RGV0YWlsLFxuICBSYW5nZUtub2JNb3ZlU3RhcnRFdmVudERldGFpbCxcbiAgUmFuZ2VLbm9iTW92ZUVuZEV2ZW50RGV0YWlsLFxuICBSZWZyZXNoZXJDdXN0b21FdmVudCxcbiAgUmVmcmVzaGVyRXZlbnREZXRhaWwsXG4gIFJvdXRlckV2ZW50RGV0YWlsLFxuICBSb3V0ZXJDdXN0b21FdmVudCxcbiAgU2Nyb2xsQmFzZUN1c3RvbUV2ZW50LFxuICBTY3JvbGxCYXNlRGV0YWlsLFxuICBTY3JvbGxEZXRhaWwsXG4gIFNjcm9sbEN1c3RvbUV2ZW50LFxuICBTZWFyY2hiYXJDdXN0b21FdmVudCxcbiAgU2VhcmNoYmFyQ2hhbmdlRXZlbnREZXRhaWwsXG4gIFNlYXJjaGJhcklucHV0RXZlbnREZXRhaWwsXG4gIFNlZ21lbnRDaGFuZ2VFdmVudERldGFpbCxcbiAgU2VnbWVudEN1c3RvbUV2ZW50LFxuICBTZWdtZW50VmFsdWUsXG4gIFNlbGVjdENoYW5nZUV2ZW50RGV0YWlsLFxuICBTZWxlY3RDdXN0b21FdmVudCxcbiAgVGFic0N1c3RvbUV2ZW50LFxuICBUZXh0YXJlYUNoYW5nZUV2ZW50RGV0YWlsLFxuICBUZXh0YXJlYUN1c3RvbUV2ZW50LFxuICBUb2FzdE9wdGlvbnMsXG4gIFRvYXN0QnV0dG9uLFxuICBUb2FzdExheW91dCxcbiAgVG9nZ2xlQ2hhbmdlRXZlbnREZXRhaWwsXG4gIFRvZ2dsZUN1c3RvbUV2ZW50LFxufSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzJztcbiJdfQ==
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zdGFuZGFsb25lL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRSxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLGVBQWUsRUFDZixpQkFBaUIsRUFDakIsY0FBYyxFQUNkLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYixhQUFhLEVBQ2IsTUFBTSxFQUNOLFFBQVEsRUFDUixTQUFTLEVBQ1Qsa0JBQWtCLEdBQ25CLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzFDLE9BQU8sRUFDTCxXQUFXLEVBQ1gsV0FBVyxFQUNYLFFBQVEsRUFDUixPQUFPLEVBQ1AsYUFBYSxFQUNiLFFBQVEsRUFDUixRQUFRLEVBQ1IsWUFBWSxFQUNaLFVBQVUsRUFDVixTQUFTLEVBQ1QsV0FBVyxFQUNYLFNBQVMsR0FDVixNQUFNLGNBQWMsQ0FBQztBQUN0QixjQUFjLHNCQUFzQixDQUFDO0FBRXJDLE9BQU87QUFDTCxRQUFRO0FBQ1IsZUFBZSxFQUNmLGFBQWEsRUFDYixzQkFBc0IsRUFDdEIscUJBQXFCLEVBQ3JCLFdBQVcsRUFDWCxZQUFZLEVBQ1osVUFBVSxFQUNWLHVCQUF1QixFQWtDdkIsZUFBZSxHQXlDaEIsTUFBTSx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IElvbkJhY2tCdXR0b24gfSBmcm9tICcuL25hdmlnYXRpb24vYmFjay1idXR0b24nO1xuZXhwb3J0IHsgSW9uTW9kYWwgfSBmcm9tICcuL292ZXJsYXlzL21vZGFsJztcbmV4cG9ydCB7IElvblBvcG92ZXIgfSBmcm9tICcuL292ZXJsYXlzL3BvcG92ZXInO1xuZXhwb3J0IHsgSW9uUm91dGVyT3V0bGV0IH0gZnJvbSAnLi9uYXZpZ2F0aW9uL3JvdXRlci1vdXRsZXQnO1xuZXhwb3J0IHsgSW9uUm91dGVyTGluaywgSW9uUm91dGVyTGlua1dpdGhIcmVmIH0gZnJvbSAnLi9uYXZpZ2F0aW9uL3JvdXRlci1saW5rLWRlbGVnYXRlJztcbmV4cG9ydCB7IElvblRhYnMgfSBmcm9tICcuL25hdmlnYXRpb24vdGFicyc7XG5leHBvcnQgeyBwcm92aWRlSW9uaWNBbmd1bGFyIH0gZnJvbSAnLi9wcm92aWRlcnMvaW9uaWMtYW5ndWxhcic7XG5leHBvcnQge1xuICBBY3Rpb25TaGVldENvbnRyb2xsZXIsXG4gIEFsZXJ0Q29udHJvbGxlcixcbiAgTG9hZGluZ0NvbnRyb2xsZXIsXG4gIE1lbnVDb250cm9sbGVyLFxuICBNb2RhbENvbnRyb2xsZXIsXG4gIFBpY2tlckNvbnRyb2xsZXIsXG4gIFBvcG92ZXJDb250cm9sbGVyLFxuICBUb2FzdENvbnRyb2xsZXIsXG4gIEFuaW1hdGlvbkNvbnRyb2xsZXIsXG4gIEdlc3R1cmVDb250cm9sbGVyLFxuICBEb21Db250cm9sbGVyLFxuICBOYXZDb250cm9sbGVyLFxuICBDb25maWcsXG4gIFBsYXRmb3JtLFxuICBOYXZQYXJhbXMsXG4gIElvbmljUm91dGVTdHJhdGVneSxcbn0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvY29tbW9uJztcbmV4cG9ydCB7IElvbk5hdiB9IGZyb20gJy4vbmF2aWdhdGlvbi9uYXYnO1xuZXhwb3J0IHtcbiAgSW9uQ2hlY2tib3gsXG4gIElvbkRhdGV0aW1lLFxuICBJb25JbnB1dCxcbiAgSW9uSWNvbixcbiAgSW9uUmFkaW9Hcm91cCxcbiAgSW9uUmFkaW8sXG4gIElvblJhbmdlLFxuICBJb25TZWFyY2hiYXIsXG4gIElvblNlZ21lbnQsXG4gIElvblNlbGVjdCxcbiAgSW9uVGV4dGFyZWEsXG4gIElvblRvZ2dsZSxcbn0gZnJvbSAnLi9kaXJlY3RpdmVzJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9wcm94aWVzJztcblxuZXhwb3J0IHtcbiAgLy8gVVRJTFNcbiAgY3JlYXRlQW5pbWF0aW9uLFxuICBjcmVhdGVHZXN0dXJlLFxuICBpb3NUcmFuc2l0aW9uQW5pbWF0aW9uLFxuICBtZFRyYW5zaXRpb25BbmltYXRpb24sXG4gIElvbmljU2xpZGVzLFxuICBnZXRQbGF0Zm9ybXMsXG4gIGlzUGxhdGZvcm0sXG4gIGdldFRpbWVHaXZlblByb2dyZXNzaW9uLFxuICAvLyBUWVBFU1xuICBBbmltYXRpb24sXG4gIEFuaW1hdGlvbkJ1aWxkZXIsXG4gIEFuaW1hdGlvbkNhbGxiYWNrT3B0aW9ucyxcbiAgQW5pbWF0aW9uRGlyZWN0aW9uLFxuICBBbmltYXRpb25GaWxsLFxuICBBbmltYXRpb25LZXlGcmFtZXMsXG4gIEFuaW1hdGlvbkxpZmVjeWNsZSxcbiAgR2VzdHVyZSxcbiAgR2VzdHVyZUNvbmZpZyxcbiAgR2VzdHVyZURldGFpbCxcbiAgTmF2Q29tcG9uZW50V2l0aFByb3BzLFxuICBTcGlubmVyVHlwZXMsXG4gIEFjY29yZGlvbkdyb3VwQ3VzdG9tRXZlbnQsXG4gIEFjY29yZGlvbkdyb3VwQ2hhbmdlRXZlbnREZXRhaWwsXG4gIEJyZWFkY3J1bWJDdXN0b21FdmVudCxcbiAgQnJlYWRjcnVtYkNvbGxhcHNlZENsaWNrRXZlbnREZXRhaWwsXG4gIEFjdGlvblNoZWV0T3B0aW9ucyxcbiAgQWN0aW9uU2hlZXRCdXR0b24sXG4gIEFsZXJ0T3B0aW9ucyxcbiAgQWxlcnRJbnB1dCxcbiAgQWxlcnRCdXR0b24sXG4gIEJhY2tCdXR0b25FdmVudCxcbiAgQ2hlY2tib3hDdXN0b21FdmVudCxcbiAgQ2hlY2tib3hDaGFuZ2VFdmVudERldGFpbCxcbiAgRGF0ZXRpbWVDdXN0b21FdmVudCxcbiAgRGF0ZXRpbWVDaGFuZ2VFdmVudERldGFpbCxcbiAgSW5maW5pdGVTY3JvbGxDdXN0b21FdmVudCxcbiAgSW5wdXRDdXN0b21FdmVudCxcbiAgSW5wdXRDaGFuZ2VFdmVudERldGFpbCxcbiAgSXRlbVJlb3JkZXJFdmVudERldGFpbCxcbiAgSXRlbVJlb3JkZXJDdXN0b21FdmVudCxcbiAgSXRlbVNsaWRpbmdDdXN0b21FdmVudCxcbiAgSW9uaWNTYWZlU3RyaW5nLFxuICBMb2FkaW5nT3B0aW9ucyxcbiAgTWVudUN1c3RvbUV2ZW50LFxuICBNb2RhbE9wdGlvbnMsXG4gIE5hdkN1c3RvbUV2ZW50LFxuICBQaWNrZXJPcHRpb25zLFxuICBQaWNrZXJCdXR0b24sXG4gIFBpY2tlckNvbHVtbixcbiAgUGlja2VyQ29sdW1uT3B0aW9uLFxuICBQbGF0Zm9ybUNvbmZpZyxcbiAgUG9wb3Zlck9wdGlvbnMsXG4gIFJhZGlvR3JvdXBDdXN0b21FdmVudCxcbiAgUmFkaW9Hcm91cENoYW5nZUV2ZW50RGV0YWlsLFxuICBSYW5nZUN1c3RvbUV2ZW50LFxuICBSYW5nZUNoYW5nZUV2ZW50RGV0YWlsLFxuICBSYW5nZUtub2JNb3ZlU3RhcnRFdmVudERldGFpbCxcbiAgUmFuZ2VLbm9iTW92ZUVuZEV2ZW50RGV0YWlsLFxuICBSZWZyZXNoZXJDdXN0b21FdmVudCxcbiAgUmVmcmVzaGVyRXZlbnREZXRhaWwsXG4gIFJvdXRlckV2ZW50RGV0YWlsLFxuICBSb3V0ZXJDdXN0b21FdmVudCxcbiAgU2Nyb2xsQmFzZUN1c3RvbUV2ZW50LFxuICBTY3JvbGxCYXNlRGV0YWlsLFxuICBTY3JvbGxEZXRhaWwsXG4gIFNjcm9sbEN1c3RvbUV2ZW50LFxuICBTZWFyY2hiYXJDdXN0b21FdmVudCxcbiAgU2VhcmNoYmFyQ2hhbmdlRXZlbnREZXRhaWwsXG4gIFNlYXJjaGJhcklucHV0RXZlbnREZXRhaWwsXG4gIFNlZ21lbnRDaGFuZ2VFdmVudERldGFpbCxcbiAgU2VnbWVudEN1c3RvbUV2ZW50LFxuICBTZWdtZW50VmFsdWUsXG4gIFNlbGVjdENoYW5nZUV2ZW50RGV0YWlsLFxuICBTZWxlY3RDdXN0b21FdmVudCxcbiAgVGFic0N1c3RvbUV2ZW50LFxuICBUZXh0YXJlYUNoYW5nZUV2ZW50RGV0YWlsLFxuICBUZXh0YXJlYUN1c3RvbUV2ZW50LFxuICBUb2FzdE9wdGlvbnMsXG4gIFRvYXN0QnV0dG9uLFxuICBUb2FzdExheW91dCxcbiAgVG9nZ2xlQ2hhbmdlRXZlbnREZXRhaWwsXG4gIFRvZ2dsZUN1c3RvbUV2ZW50LFxufSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzJztcbiJdfQ==
@@ -8,6 +8,7 @@ import * as i1 from '@angular/common';
8
8
  import { DOCUMENT } from '@angular/common';
9
9
  import { Subject, fromEvent, BehaviorSubject, combineLatest, of } from 'rxjs';
10
10
  import { filter, switchMap, distinctUntilChanged } from 'rxjs/operators';
11
+ import { NgControl } from '@angular/forms';
11
12
 
12
13
  // TODO(FW-2827): types
13
14
  class OverlayBaseController {
@@ -2409,6 +2410,153 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
2409
2410
  args: ['ionTabButtonClick', ['$event']]
2410
2411
  }] } });
2411
2412
 
2413
+ const raf = (h) => {
2414
+ if (typeof __zone_symbol__requestAnimationFrame === 'function') {
2415
+ return __zone_symbol__requestAnimationFrame(h);
2416
+ }
2417
+ if (typeof requestAnimationFrame === 'function') {
2418
+ return requestAnimationFrame(h);
2419
+ }
2420
+ return setTimeout(h);
2421
+ };
2422
+
2423
+ // TODO(FW-2827): types
2424
+ class ValueAccessor {
2425
+ constructor(injector, elementRef) {
2426
+ this.injector = injector;
2427
+ this.elementRef = elementRef;
2428
+ this.onChange = () => {
2429
+ /**/
2430
+ };
2431
+ this.onTouched = () => {
2432
+ /**/
2433
+ };
2434
+ }
2435
+ writeValue(value) {
2436
+ this.elementRef.nativeElement.value = this.lastValue = value;
2437
+ setIonicClasses(this.elementRef);
2438
+ }
2439
+ /**
2440
+ * Notifies the ControlValueAccessor of a change in the value of the control.
2441
+ *
2442
+ * This is called by each of the ValueAccessor directives when we want to update
2443
+ * the status and validity of the form control. For example with text components this
2444
+ * is called when the ionInput event is fired. For select components this is called
2445
+ * when the ionChange event is fired.
2446
+ *
2447
+ * This also updates the Ionic form status classes on the element.
2448
+ *
2449
+ * @param el The component element.
2450
+ * @param value The new value of the control.
2451
+ */
2452
+ handleValueChange(el, value) {
2453
+ if (el === this.elementRef.nativeElement) {
2454
+ if (value !== this.lastValue) {
2455
+ this.lastValue = value;
2456
+ this.onChange(value);
2457
+ }
2458
+ setIonicClasses(this.elementRef);
2459
+ }
2460
+ }
2461
+ _handleBlurEvent(el) {
2462
+ if (el === this.elementRef.nativeElement) {
2463
+ this.onTouched();
2464
+ setIonicClasses(this.elementRef);
2465
+ }
2466
+ }
2467
+ registerOnChange(fn) {
2468
+ this.onChange = fn;
2469
+ }
2470
+ registerOnTouched(fn) {
2471
+ this.onTouched = fn;
2472
+ }
2473
+ setDisabledState(isDisabled) {
2474
+ this.elementRef.nativeElement.disabled = isDisabled;
2475
+ }
2476
+ ngOnDestroy() {
2477
+ if (this.statusChanges) {
2478
+ this.statusChanges.unsubscribe();
2479
+ }
2480
+ }
2481
+ ngAfterViewInit() {
2482
+ let ngControl;
2483
+ try {
2484
+ ngControl = this.injector.get(NgControl);
2485
+ }
2486
+ catch (_a) {
2487
+ /* No FormControl or ngModel binding */
2488
+ }
2489
+ if (!ngControl) {
2490
+ return;
2491
+ }
2492
+ // Listen for changes in validity, disabled, or pending states
2493
+ if (ngControl.statusChanges) {
2494
+ this.statusChanges = ngControl.statusChanges.subscribe(() => setIonicClasses(this.elementRef));
2495
+ }
2496
+ /**
2497
+ * TODO FW-2787: Remove this in favor of https://github.com/angular/angular/issues/10887
2498
+ * whenever it is implemented.
2499
+ */
2500
+ const formControl = ngControl.control;
2501
+ if (formControl) {
2502
+ const methodsToPatch = ['markAsTouched', 'markAllAsTouched', 'markAsUntouched', 'markAsDirty', 'markAsPristine'];
2503
+ methodsToPatch.forEach((method) => {
2504
+ if (typeof formControl[method] !== 'undefined') {
2505
+ const oldFn = formControl[method].bind(formControl);
2506
+ formControl[method] = (...params) => {
2507
+ oldFn(...params);
2508
+ setIonicClasses(this.elementRef);
2509
+ };
2510
+ }
2511
+ });
2512
+ }
2513
+ }
2514
+ }
2515
+ /** @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 });
2516
+ /** @nocollapse */ ValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: ValueAccessor, host: { listeners: { "ionBlur": "_handleBlurEvent($event.target)" } }, ngImport: i0 });
2517
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ValueAccessor, decorators: [{
2518
+ type: Directive
2519
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }]; }, propDecorators: { _handleBlurEvent: [{
2520
+ type: HostListener,
2521
+ args: ['ionBlur', ['$event.target']]
2522
+ }] } });
2523
+ const setIonicClasses = (element) => {
2524
+ raf(() => {
2525
+ const input = element.nativeElement;
2526
+ const hasValue = input.value != null && input.value.toString().length > 0;
2527
+ const classes = getClasses(input);
2528
+ setClasses(input, classes);
2529
+ const item = input.closest('ion-item');
2530
+ if (item) {
2531
+ if (hasValue) {
2532
+ setClasses(item, [...classes, 'item-has-value']);
2533
+ }
2534
+ else {
2535
+ setClasses(item, classes);
2536
+ }
2537
+ }
2538
+ });
2539
+ };
2540
+ const getClasses = (element) => {
2541
+ const classList = element.classList;
2542
+ const classes = [];
2543
+ for (let i = 0; i < classList.length; i++) {
2544
+ const item = classList.item(i);
2545
+ if (item !== null && startsWith(item, 'ng-')) {
2546
+ classes.push(`ion-${item.substring(3)}`);
2547
+ }
2548
+ }
2549
+ return classes;
2550
+ };
2551
+ const setClasses = (element, classes) => {
2552
+ const classList = element.classList;
2553
+ classList.remove('ion-valid', 'ion-invalid', 'ion-touched', 'ion-untouched', 'ion-dirty', 'ion-pristine');
2554
+ classList.add(...classes);
2555
+ };
2556
+ const startsWith = (input, search) => {
2557
+ return input.substring(0, search.length) === search;
2558
+ };
2559
+
2412
2560
  /**
2413
2561
  * Provides a way to customize when activated routes get reused.
2414
2562
  */
@@ -2468,5 +2616,5 @@ class IonicRouteStrategy {
2468
2616
  * Generated bundle index. Do not edit.
2469
2617
  */
2470
2618
 
2471
- export { ActionSheetController, AlertController, AngularDelegate, AnimationController, Config, ConfigToken, DomController, GestureController, IonBackButton, IonModal, IonNav, IonPopover, IonRouterOutlet, IonTabs, IonicRouteStrategy, LoadingController, MenuController, ModalController, NavController, NavParams, PickerController, Platform, PopoverController, ProxyCmp, RouterLinkDelegateDirective, RouterLinkWithHrefDelegateDirective, ToastController, bindLifecycleEvents, provideComponentInputBinding };
2619
+ export { ActionSheetController, AlertController, AngularDelegate, AnimationController, Config, ConfigToken, DomController, GestureController, IonBackButton, IonModal, IonNav, IonPopover, IonRouterOutlet, IonTabs, IonicRouteStrategy, LoadingController, MenuController, ModalController, NavController, NavParams, PickerController, Platform, PopoverController, ProxyCmp, RouterLinkDelegateDirective, RouterLinkWithHrefDelegateDirective, ToastController, ValueAccessor, bindLifecycleEvents, provideComponentInputBinding, raf, setIonicClasses };
2472
2620
  //# sourceMappingURL=ionic-angular-common.mjs.map