@ionic/angular 9.0.4-dev.11789406216.162770a8 → 9.0.4-dev.11789496656.1690cf55

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 (55) hide show
  1. package/dist/common/directives/navigation/back-button.d.ts +1 -0
  2. package/dist/common/directives/navigation/back-button.js +15 -3
  3. package/dist/common/directives/navigation/back-button.js.map +1 -1
  4. package/dist/common/directives/navigation/nav.d.ts +2 -0
  5. package/dist/common/directives/navigation/nav.js +12 -3
  6. package/dist/common/directives/navigation/nav.js.map +1 -1
  7. package/dist/common/directives/navigation/router-outlet.d.ts +2 -0
  8. package/dist/common/directives/navigation/router-outlet.js +8 -2
  9. package/dist/common/directives/navigation/router-outlet.js.map +1 -1
  10. package/dist/common/overlays/modal.d.ts +9 -0
  11. package/dist/common/overlays/modal.js +14 -11
  12. package/dist/common/overlays/modal.js.map +1 -1
  13. package/dist/common/overlays/popover.d.ts +10 -0
  14. package/dist/common/overlays/popover.js +15 -12
  15. package/dist/common/overlays/popover.js.map +1 -1
  16. package/dist/common/utils/boolean-attribute.d.ts +24 -0
  17. package/dist/common/utils/boolean-attribute.js +36 -0
  18. package/dist/common/utils/boolean-attribute.js.map +1 -0
  19. package/dist/standalone/directives/checkbox.d.ts +3 -0
  20. package/dist/standalone/directives/checkbox.js +8 -5
  21. package/dist/standalone/directives/checkbox.js.map +1 -1
  22. package/dist/standalone/directives/datetime.d.ts +9 -0
  23. package/dist/standalone/directives/datetime.js +14 -11
  24. package/dist/standalone/directives/datetime.js.map +1 -1
  25. package/dist/standalone/directives/icon.d.ts +3 -0
  26. package/dist/standalone/directives/icon.js +19 -3
  27. package/dist/standalone/directives/icon.js.map +1 -1
  28. package/dist/standalone/directives/input-otp.d.ts +2 -0
  29. package/dist/standalone/directives/input-otp.js +7 -4
  30. package/dist/standalone/directives/input-otp.js.map +1 -1
  31. package/dist/standalone/directives/input.d.ts +10 -0
  32. package/dist/standalone/directives/input.js +15 -12
  33. package/dist/standalone/directives/input.js.map +1 -1
  34. package/dist/standalone/directives/radio-group.d.ts +1 -0
  35. package/dist/standalone/directives/radio-group.js +13 -3
  36. package/dist/standalone/directives/radio-group.js.map +1 -1
  37. package/dist/standalone/directives/range.d.ts +5 -0
  38. package/dist/standalone/directives/range.js +10 -7
  39. package/dist/standalone/directives/range.js.map +1 -1
  40. package/dist/standalone/directives/searchbar.d.ts +4 -0
  41. package/dist/standalone/directives/searchbar.js +9 -6
  42. package/dist/standalone/directives/searchbar.js.map +1 -1
  43. package/dist/standalone/directives/segment.d.ts +4 -0
  44. package/dist/standalone/directives/segment.js +14 -3
  45. package/dist/standalone/directives/segment.js.map +1 -1
  46. package/dist/standalone/directives/select.d.ts +2 -0
  47. package/dist/standalone/directives/select.js +7 -4
  48. package/dist/standalone/directives/select.js.map +1 -1
  49. package/dist/standalone/directives/textarea.d.ts +8 -0
  50. package/dist/standalone/directives/textarea.js +13 -10
  51. package/dist/standalone/directives/textarea.js.map +1 -1
  52. package/dist/standalone/directives/toggle.d.ts +3 -0
  53. package/dist/standalone/directives/toggle.js +8 -5
  54. package/dist/standalone/directives/toggle.js.map +1 -1
  55. package/package.json +2 -2
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Transforms a value to a boolean so that boolean properties can be set by attribute presence,
3
+ * e.g. `<ion-modal handle>` instead of `<ion-modal [handle]="true">`.
4
+ *
5
+ * Strings are coerced the same way Angular's `booleanAttribute` coerces them, so `''` (a bare
6
+ * attribute) becomes `true` and `'false'` becomes `false`.
7
+ *
8
+ * Unlike Angular's `booleanAttribute`, `null` and `undefined` are passed through rather than
9
+ * coerced to `false`. Components frequently treat them as a state distinct from `false`, and both
10
+ * reach inputs routinely from the `async` pipe before its first emission and from form control
11
+ * values:
12
+ *
13
+ * ```tsx
14
+ * // `undefined` means "decide based on the mode", which is not the same as `false`
15
+ * const showDetail = detail !== undefined ? detail : mode === 'ios';
16
+ *
17
+ * // a strict comparison also behaves differently for `null` than it does for `false`
18
+ * const showHandle = handle !== false;
19
+ * ```
20
+ *
21
+ * Declared as a function rather than an arrow constant because Angular has to resolve input
22
+ * transforms statically when compiling a library in partial compilation mode.
23
+ */
24
+ export declare function nullableBooleanAttribute(value: boolean | string | null | undefined): boolean | null | undefined;
@@ -0,0 +1,36 @@
1
+ /*
2
+ * Duplicates `angular-component-lib/boolean-attribute.ts`, which the output
3
+ * target copies next to each generated proxies file and so is not reachable
4
+ * from here. `proxy.ts` duplicates `ProxyCmp` for the same reason. Refer to
5
+ * the TODO at the top of `proxy.ts`.
6
+ */
7
+ /**
8
+ * Transforms a value to a boolean so that boolean properties can be set by attribute presence,
9
+ * e.g. `<ion-modal handle>` instead of `<ion-modal [handle]="true">`.
10
+ *
11
+ * Strings are coerced the same way Angular's `booleanAttribute` coerces them, so `''` (a bare
12
+ * attribute) becomes `true` and `'false'` becomes `false`.
13
+ *
14
+ * Unlike Angular's `booleanAttribute`, `null` and `undefined` are passed through rather than
15
+ * coerced to `false`. Components frequently treat them as a state distinct from `false`, and both
16
+ * reach inputs routinely from the `async` pipe before its first emission and from form control
17
+ * values:
18
+ *
19
+ * ```tsx
20
+ * // `undefined` means "decide based on the mode", which is not the same as `false`
21
+ * const showDetail = detail !== undefined ? detail : mode === 'ios';
22
+ *
23
+ * // a strict comparison also behaves differently for `null` than it does for `false`
24
+ * const showHandle = handle !== false;
25
+ * ```
26
+ *
27
+ * Declared as a function rather than an arrow constant because Angular has to resolve input
28
+ * transforms statically when compiling a library in partial compilation mode.
29
+ */
30
+ export function nullableBooleanAttribute(value) {
31
+ if (value === null || value === undefined) {
32
+ return value;
33
+ }
34
+ return typeof value === 'boolean' ? value : value !== 'false';
35
+ }
36
+ //# sourceMappingURL=boolean-attribute.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boolean-attribute.js","sourceRoot":"","sources":["../../../src/common/utils/boolean-attribute.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAA0C;IACjF,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC;AAChE,CAAC","sourcesContent":["/*\n * Duplicates `angular-component-lib/boolean-attribute.ts`, which the output\n * target copies next to each generated proxies file and so is not reachable\n * from here. `proxy.ts` duplicates `ProxyCmp` for the same reason. Refer to\n * the TODO at the top of `proxy.ts`.\n */\n\n/**\n * Transforms a value to a boolean so that boolean properties can be set by attribute presence,\n * e.g. `<ion-modal handle>` instead of `<ion-modal [handle]=\"true\">`.\n *\n * Strings are coerced the same way Angular's `booleanAttribute` coerces them, so `''` (a bare\n * attribute) becomes `true` and `'false'` becomes `false`.\n *\n * Unlike Angular's `booleanAttribute`, `null` and `undefined` are passed through rather than\n * coerced to `false`. Components frequently treat them as a state distinct from `false`, and both\n * reach inputs routinely from the `async` pipe before its first emission and from form control\n * values:\n *\n * ```tsx\n * // `undefined` means \"decide based on the mode\", which is not the same as `false`\n * const showDetail = detail !== undefined ? detail : mode === 'ios';\n *\n * // a strict comparison also behaves differently for `null` than it does for `false`\n * const showHandle = handle !== false;\n * ```\n *\n * Declared as a function rather than an arrow constant because Angular has to resolve input\n * transforms statically when compiling a library in partial compilation mode.\n */\nexport function nullableBooleanAttribute(value: boolean | string | null | undefined): boolean | null | undefined {\n if (value === null || value === undefined) {\n return value;\n }\n return typeof value === 'boolean' ? value : value !== 'false';\n}\n"]}
@@ -10,6 +10,9 @@ export declare class IonCheckbox extends ValueAccessor {
10
10
  handleIonChange(el: HTMLIonCheckboxElement | HTMLIonToggleElement): void;
11
11
  static ɵfac: i0.ɵɵFactoryDeclaration<IonCheckbox, never>;
12
12
  static ɵcmp: i0.ɵɵComponentDeclaration<IonCheckbox, "ion-checkbox", never, { "checked": { "alias": "checked"; "required": false; }; "color": { "alias": "color"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "errorText": { "alias": "errorText"; "required": false; }; "helperText": { "alias": "helperText"; "required": false; }; "indeterminate": { "alias": "indeterminate"; "required": false; }; "justify": { "alias": "justify"; "required": false; }; "labelPlacement": { "alias": "labelPlacement"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "name": { "alias": "name"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, {}, never, ["*"], true, never>;
13
+ static ngAcceptInputType_checked: boolean | string | null | undefined;
14
+ static ngAcceptInputType_disabled: boolean | string | null | undefined;
15
+ static ngAcceptInputType_indeterminate: boolean | string | null | undefined;
13
16
  }
14
17
  export declare interface IonCheckbox extends Components.IonCheckbox {
15
18
  /**
@@ -3,21 +3,24 @@ import { ChangeDetectionStrategy, Component, HostListener, forwardRef, } from '@
3
3
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
4
  import { ValueAccessor, setIonicClasses } from '@ionic/angular/common';
5
5
  import { defineCustomElement } from '@ionic/core/components/ion-checkbox.js';
6
+ import { nullableBooleanAttribute } from './angular-component-lib/boolean-attribute';
6
7
  import { ProxyCmp, proxyOutputs } from './angular-component-lib/utils';
7
8
  import * as i0 from "@angular/core";
8
9
  const CHECKBOX_INPUTS = [
9
- 'checked',
10
+ { name: 'checked', transform: nullableBooleanAttribute },
10
11
  'color',
11
- 'disabled',
12
+ { name: 'disabled', transform: nullableBooleanAttribute },
12
13
  'errorText',
13
14
  'helperText',
14
- 'indeterminate',
15
+ { name: 'indeterminate', transform: nullableBooleanAttribute },
15
16
  'justify',
16
17
  'labelPlacement',
17
18
  'mode',
18
19
  'name',
19
20
  'value',
20
21
  ];
22
+ /* ProxyCmp only needs the names, and runs at runtime rather than through the Angular compiler. */
23
+ const CHECKBOX_PROXY_INPUTS = CHECKBOX_INPUTS.map((input) => (typeof input === 'string' ? input : input.name));
21
24
  let IonCheckbox = class IonCheckbox extends ValueAccessor {
22
25
  z;
23
26
  el;
@@ -36,7 +39,7 @@ let IonCheckbox = class IonCheckbox extends ValueAccessor {
36
39
  this.handleValueChange(el, el.checked);
37
40
  }
38
41
  /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: IonCheckbox, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
39
- /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.0", type: IonCheckbox, isStandalone: true, selector: "ion-checkbox", inputs: { checked: "checked", color: "color", disabled: "disabled", errorText: "errorText", helperText: "helperText", indeterminate: "indeterminate", justify: "justify", labelPlacement: "labelPlacement", mode: "mode", name: "name", value: "value" }, host: { listeners: { "ionChange": "handleIonChange($event.target)" } }, providers: [
42
+ /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.0.0", type: IonCheckbox, isStandalone: true, selector: "ion-checkbox", inputs: { checked: ["checked", "checked", nullableBooleanAttribute], color: "color", disabled: ["disabled", "disabled", nullableBooleanAttribute], errorText: "errorText", helperText: "helperText", indeterminate: ["indeterminate", "indeterminate", nullableBooleanAttribute], justify: "justify", labelPlacement: "labelPlacement", mode: "mode", name: "name", value: "value" }, host: { listeners: { "ionChange": "handleIonChange($event.target)" } }, providers: [
40
43
  {
41
44
  provide: NG_VALUE_ACCESSOR,
42
45
  useExisting: forwardRef((() => IonCheckbox)),
@@ -47,7 +50,7 @@ let IonCheckbox = class IonCheckbox extends ValueAccessor {
47
50
  IonCheckbox = __decorate([
48
51
  ProxyCmp({
49
52
  defineCustomElementFn: defineCustomElement,
50
- inputs: CHECKBOX_INPUTS,
53
+ inputs: CHECKBOX_PROXY_INPUTS,
51
54
  })
52
55
  ], IonCheckbox);
53
56
  export { IonCheckbox };
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox.js","sourceRoot":"","sources":["../../../src/standalone/directives/checkbox.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,uBAAuB,EAEvB,SAAS,EAGT,YAAY,EAGZ,UAAU,GACX,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAEvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAE7E,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;;AAEvE,MAAM,eAAe,GAAG;IACtB,SAAS;IACT,OAAO;IACP,UAAU;IACV,WAAW;IACX,YAAY;IACZ,eAAe;IACf,SAAS;IACT,gBAAgB;IAChB,MAAM;IACN,MAAM;IACN,OAAO;CACR,CAAC;AAqBK,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,aAAa;IAEe;IADjD,EAAE,CAAc;IAC1B,YAAY,CAAoB,EAAE,CAAa,EAAY,CAAS,EAAE,QAAkB;QACtF,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QADsC,MAAC,GAAD,CAAC,CAAQ;QAElE,CAAC,CAAC,MAAM,EAAE,CAAC;QACX,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,aAAa,CAAC;QAC1B,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,UAAU,CAAC,KAAc;QACvB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QAC/D,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC;IAGD,eAAe,CAAC,EAAiD;QAC/D,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;0HAjBU,WAAW;8GAAX,WAAW,6XATX;YACT;gBACE,OAAO,EAAE,iBAAiB;gBAC1B,WAAW,EAAE,UAAU,EAAC,GAAG,EAAE,CAAC,WAAW,EAAC;gBAC1C,KAAK,EAAE,IAAI;aACZ;SACF,iDATS,2BAA2B;;AAY1B,WAAW;IAnBvB,QAAQ,CAAC;QACR,qBAAqB,EAAE,mBAAmB;QAC1C,MAAM,EAAE,eAAe;KACxB,CAAC;GAgBW,WAAW,CAkBvB;;2FAlBY,WAAW;kBAfvB,SAAS;mBAAC;oBACT,QAAQ,EAAE,cAAc;oBACxB,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,QAAQ,EAAE,2BAA2B;oBACrC,uEAAuE;oBACvE,MAAM,EAAE,eAAe;oBACvB,SAAS,EAAE;wBACT;4BACE,OAAO,EAAE,iBAAiB;4BAC1B,WAAW,EAAE,UAAU,EAAC,GAAG,EAAE,YAAY,EAAC;4BAC1C,KAAK,EAAE,IAAI;yBACZ;qBACF;oBACD,UAAU,EAAE,IAAI;iBACjB;;sBAeE,YAAY;uBAAC,WAAW,EAAE,CAAC,eAAe,CAAC","sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Injector,\n NgZone,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ValueAccessor, setIonicClasses } from '@ionic/angular/common';\nimport type { CheckboxChangeEventDetail, Components } from '@ionic/core/components';\nimport { defineCustomElement } from '@ionic/core/components/ion-checkbox.js';\n\nimport { ProxyCmp, proxyOutputs } from './angular-component-lib/utils';\n\nconst CHECKBOX_INPUTS = [\n 'checked',\n 'color',\n 'disabled',\n 'errorText',\n 'helperText',\n 'indeterminate',\n 'justify',\n 'labelPlacement',\n 'mode',\n 'name',\n 'value',\n];\n\n@ProxyCmp({\n defineCustomElementFn: defineCustomElement,\n inputs: CHECKBOX_INPUTS,\n})\n@Component({\n selector: 'ion-checkbox',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '<ng-content></ng-content>',\n // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n inputs: CHECKBOX_INPUTS,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => IonCheckbox),\n multi: true,\n },\n ],\n standalone: true,\n})\nexport class IonCheckbox extends ValueAccessor {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone, injector: Injector) {\n super(injector, r);\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, ['ionChange', 'ionFocus', 'ionBlur']);\n }\n\n writeValue(value: boolean): void {\n this.elementRef.nativeElement.checked = this.lastValue = value;\n setIonicClasses(this.elementRef);\n }\n\n @HostListener('ionChange', ['$event.target'])\n handleIonChange(el: HTMLIonCheckboxElement | HTMLIonToggleElement): void {\n this.handleValueChange(el, el.checked);\n }\n}\n\nexport declare interface IonCheckbox extends Components.IonCheckbox {\n /**\n * Emitted when the checked property has changed\nas a result of a user action such as a click.\nThis event will not emit when programmatically\nsetting the checked property.\n */\n ionChange: EventEmitter<CustomEvent<CheckboxChangeEventDetail>>;\n /**\n * Emitted when the checkbox has focus.\n */\n ionFocus: EventEmitter<CustomEvent<void>>;\n /**\n * Emitted when the checkbox loses focus.\n */\n ionBlur: EventEmitter<CustomEvent<void>>;\n}\n"]}
1
+ {"version":3,"file":"checkbox.js","sourceRoot":"","sources":["../../../src/standalone/directives/checkbox.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Injector,\n NgZone,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ValueAccessor, setIonicClasses } from '@ionic/angular/common';\nimport type { CheckboxChangeEventDetail, Components } from '@ionic/core/components';\nimport { defineCustomElement } from '@ionic/core/components/ion-checkbox.js';\n\nimport { nullableBooleanAttribute } from './angular-component-lib/boolean-attribute';\nimport { ProxyCmp, proxyOutputs } from './angular-component-lib/utils';\n\nconst CHECKBOX_INPUTS = [\n { name: 'checked', transform: nullableBooleanAttribute },\n 'color',\n { name: 'disabled', transform: nullableBooleanAttribute },\n 'errorText',\n 'helperText',\n { name: 'indeterminate', transform: nullableBooleanAttribute },\n 'justify',\n 'labelPlacement',\n 'mode',\n 'name',\n 'value',\n];\n\n/* ProxyCmp only needs the names, and runs at runtime rather than through the Angular compiler. */\nconst CHECKBOX_PROXY_INPUTS = CHECKBOX_INPUTS.map((input) => (typeof input === 'string' ? input : input.name));\n\n@ProxyCmp({\n defineCustomElementFn: defineCustomElement,\n inputs: CHECKBOX_PROXY_INPUTS,\n})\n@Component({\n selector: 'ion-checkbox',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '<ng-content></ng-content>',\n // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n inputs: CHECKBOX_INPUTS,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => IonCheckbox),\n multi: true,\n },\n ],\n standalone: true,\n})\nexport class IonCheckbox extends ValueAccessor {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone, injector: Injector) {\n super(injector, r);\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, ['ionChange', 'ionFocus', 'ionBlur']);\n }\n\n writeValue(value: boolean): void {\n this.elementRef.nativeElement.checked = this.lastValue = value;\n setIonicClasses(this.elementRef);\n }\n\n @HostListener('ionChange', ['$event.target'])\n handleIonChange(el: HTMLIonCheckboxElement | HTMLIonToggleElement): void {\n this.handleValueChange(el, el.checked);\n }\n}\n\nexport declare interface IonCheckbox extends Components.IonCheckbox {\n /**\n * Emitted when the checked property has changed\nas a result of a user action such as a click.\nThis event will not emit when programmatically\nsetting the checked property.\n */\n ionChange: EventEmitter<CustomEvent<CheckboxChangeEventDetail>>;\n /**\n * Emitted when the checkbox has focus.\n */\n ionFocus: EventEmitter<CustomEvent<void>>;\n /**\n * Emitted when the checkbox loses focus.\n */\n ionBlur: EventEmitter<CustomEvent<void>>;\n}\n"]}
@@ -9,6 +9,15 @@ export declare class IonDatetime extends ValueAccessor {
9
9
  handleIonChange(el: HTMLIonDatetimeElement): void;
10
10
  static ɵfac: i0.ɵɵFactoryDeclaration<IonDatetime, never>;
11
11
  static ɵcmp: i0.ɵɵComponentDeclaration<IonDatetime, "ion-datetime", never, { "cancelText": { "alias": "cancelText"; "required": false; }; "clearText": { "alias": "clearText"; "required": false; }; "color": { "alias": "color"; "required": false; }; "dayValues": { "alias": "dayValues"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "doneText": { "alias": "doneText"; "required": false; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; }; "formatOptions": { "alias": "formatOptions"; "required": false; }; "highlightedDates": { "alias": "highlightedDates"; "required": false; }; "hourCycle": { "alias": "hourCycle"; "required": false; }; "hourValues": { "alias": "hourValues"; "required": false; }; "isDateEnabled": { "alias": "isDateEnabled"; "required": false; }; "locale": { "alias": "locale"; "required": false; }; "max": { "alias": "max"; "required": false; }; "min": { "alias": "min"; "required": false; }; "minuteValues": { "alias": "minuteValues"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "monthValues": { "alias": "monthValues"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "name": { "alias": "name"; "required": false; }; "preferWheel": { "alias": "preferWheel"; "required": false; }; "presentation": { "alias": "presentation"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "showAdjacentDays": { "alias": "showAdjacentDays"; "required": false; }; "showClearButton": { "alias": "showClearButton"; "required": false; }; "showDefaultButtons": { "alias": "showDefaultButtons"; "required": false; }; "showDefaultTimeLabel": { "alias": "showDefaultTimeLabel"; "required": false; }; "showDefaultTitle": { "alias": "showDefaultTitle"; "required": false; }; "size": { "alias": "size"; "required": false; }; "titleSelectedDatesFormatter": { "alias": "titleSelectedDatesFormatter"; "required": false; }; "value": { "alias": "value"; "required": false; }; "yearValues": { "alias": "yearValues"; "required": false; }; }, {}, never, ["*"], true, never>;
12
+ static ngAcceptInputType_disabled: boolean | string | null | undefined;
13
+ static ngAcceptInputType_multiple: boolean | string | null | undefined;
14
+ static ngAcceptInputType_preferWheel: boolean | string | null | undefined;
15
+ static ngAcceptInputType_readonly: boolean | string | null | undefined;
16
+ static ngAcceptInputType_showAdjacentDays: boolean | string | null | undefined;
17
+ static ngAcceptInputType_showClearButton: boolean | string | null | undefined;
18
+ static ngAcceptInputType_showDefaultButtons: boolean | string | null | undefined;
19
+ static ngAcceptInputType_showDefaultTimeLabel: boolean | string | null | undefined;
20
+ static ngAcceptInputType_showDefaultTitle: boolean | string | null | undefined;
12
21
  }
13
22
  export declare interface IonDatetime extends Components.IonDatetime {
14
23
  /**
@@ -3,6 +3,7 @@ import { ChangeDetectionStrategy, Component, HostListener, forwardRef, } from '@
3
3
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
4
  import { ValueAccessor } from '@ionic/angular/common';
5
5
  import { defineCustomElement } from '@ionic/core/components/ion-datetime.js';
6
+ import { nullableBooleanAttribute } from './angular-component-lib/boolean-attribute';
6
7
  import { ProxyCmp, proxyOutputs } from './angular-component-lib/utils';
7
8
  import * as i0 from "@angular/core";
8
9
  const DATETIME_INPUTS = [
@@ -10,7 +11,7 @@ const DATETIME_INPUTS = [
10
11
  'clearText',
11
12
  'color',
12
13
  'dayValues',
13
- 'disabled',
14
+ { name: 'disabled', transform: nullableBooleanAttribute },
14
15
  'doneText',
15
16
  'firstDayOfWeek',
16
17
  'formatOptions',
@@ -24,21 +25,23 @@ const DATETIME_INPUTS = [
24
25
  'minuteValues',
25
26
  'mode',
26
27
  'monthValues',
27
- 'multiple',
28
+ { name: 'multiple', transform: nullableBooleanAttribute },
28
29
  'name',
29
- 'preferWheel',
30
+ { name: 'preferWheel', transform: nullableBooleanAttribute },
30
31
  'presentation',
31
- 'readonly',
32
- 'showAdjacentDays',
33
- 'showClearButton',
34
- 'showDefaultButtons',
35
- 'showDefaultTimeLabel',
36
- 'showDefaultTitle',
32
+ { name: 'readonly', transform: nullableBooleanAttribute },
33
+ { name: 'showAdjacentDays', transform: nullableBooleanAttribute },
34
+ { name: 'showClearButton', transform: nullableBooleanAttribute },
35
+ { name: 'showDefaultButtons', transform: nullableBooleanAttribute },
36
+ { name: 'showDefaultTimeLabel', transform: nullableBooleanAttribute },
37
+ { name: 'showDefaultTitle', transform: nullableBooleanAttribute },
37
38
  'size',
38
39
  'titleSelectedDatesFormatter',
39
40
  'value',
40
41
  'yearValues',
41
42
  ];
43
+ /* ProxyCmp only needs the names, and runs at runtime rather than through the Angular compiler. */
44
+ const DATETIME_PROXY_INPUTS = DATETIME_INPUTS.map((input) => (typeof input === 'string' ? input : input.name));
42
45
  let IonDatetime = class IonDatetime extends ValueAccessor {
43
46
  z;
44
47
  el;
@@ -53,7 +56,7 @@ let IonDatetime = class IonDatetime extends ValueAccessor {
53
56
  this.handleValueChange(el, el.value);
54
57
  }
55
58
  /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: IonDatetime, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
56
- /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.0", type: IonDatetime, isStandalone: true, selector: "ion-datetime", inputs: { cancelText: "cancelText", clearText: "clearText", color: "color", dayValues: "dayValues", disabled: "disabled", doneText: "doneText", firstDayOfWeek: "firstDayOfWeek", formatOptions: "formatOptions", highlightedDates: "highlightedDates", hourCycle: "hourCycle", hourValues: "hourValues", isDateEnabled: "isDateEnabled", locale: "locale", max: "max", min: "min", minuteValues: "minuteValues", mode: "mode", monthValues: "monthValues", multiple: "multiple", name: "name", preferWheel: "preferWheel", presentation: "presentation", readonly: "readonly", showAdjacentDays: "showAdjacentDays", showClearButton: "showClearButton", showDefaultButtons: "showDefaultButtons", showDefaultTimeLabel: "showDefaultTimeLabel", showDefaultTitle: "showDefaultTitle", size: "size", titleSelectedDatesFormatter: "titleSelectedDatesFormatter", value: "value", yearValues: "yearValues" }, host: { listeners: { "ionChange": "handleIonChange($event.target)" } }, providers: [
59
+ /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.0.0", type: IonDatetime, isStandalone: true, selector: "ion-datetime", inputs: { cancelText: "cancelText", clearText: "clearText", color: "color", dayValues: "dayValues", disabled: ["disabled", "disabled", nullableBooleanAttribute], doneText: "doneText", firstDayOfWeek: "firstDayOfWeek", formatOptions: "formatOptions", highlightedDates: "highlightedDates", hourCycle: "hourCycle", hourValues: "hourValues", isDateEnabled: "isDateEnabled", locale: "locale", max: "max", min: "min", minuteValues: "minuteValues", mode: "mode", monthValues: "monthValues", multiple: ["multiple", "multiple", nullableBooleanAttribute], name: "name", preferWheel: ["preferWheel", "preferWheel", nullableBooleanAttribute], presentation: "presentation", readonly: ["readonly", "readonly", nullableBooleanAttribute], showAdjacentDays: ["showAdjacentDays", "showAdjacentDays", nullableBooleanAttribute], showClearButton: ["showClearButton", "showClearButton", nullableBooleanAttribute], showDefaultButtons: ["showDefaultButtons", "showDefaultButtons", nullableBooleanAttribute], showDefaultTimeLabel: ["showDefaultTimeLabel", "showDefaultTimeLabel", nullableBooleanAttribute], showDefaultTitle: ["showDefaultTitle", "showDefaultTitle", nullableBooleanAttribute], size: "size", titleSelectedDatesFormatter: "titleSelectedDatesFormatter", value: "value", yearValues: "yearValues" }, host: { listeners: { "ionChange": "handleIonChange($event.target)" } }, providers: [
57
60
  {
58
61
  provide: NG_VALUE_ACCESSOR,
59
62
  useExisting: forwardRef((() => IonDatetime)),
@@ -64,7 +67,7 @@ let IonDatetime = class IonDatetime extends ValueAccessor {
64
67
  IonDatetime = __decorate([
65
68
  ProxyCmp({
66
69
  defineCustomElementFn: defineCustomElement,
67
- inputs: DATETIME_INPUTS,
70
+ inputs: DATETIME_PROXY_INPUTS,
68
71
  methods: ['confirm', 'reset', 'cancel'],
69
72
  })
70
73
  ], IonDatetime);
@@ -1 +1 @@
1
- {"version":3,"file":"datetime.js","sourceRoot":"","sources":["../../../src/standalone/directives/datetime.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,uBAAuB,EAEvB,SAAS,EAGT,YAAY,EAGZ,UAAU,GACX,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAE7E,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;;AAEvE,MAAM,eAAe,GAAG;IACtB,YAAY;IACZ,WAAW;IACX,OAAO;IACP,WAAW;IACX,UAAU;IACV,UAAU;IACV,gBAAgB;IAChB,eAAe;IACf,kBAAkB;IAClB,WAAW;IACX,YAAY;IACZ,eAAe;IACf,QAAQ;IACR,KAAK;IACL,KAAK;IACL,cAAc;IACd,MAAM;IACN,aAAa;IACb,UAAU;IACV,MAAM;IACN,aAAa;IACb,cAAc;IACd,UAAU;IACV,kBAAkB;IAClB,iBAAiB;IACjB,oBAAoB;IACpB,sBAAsB;IACtB,kBAAkB;IAClB,MAAM;IACN,6BAA6B;IAC7B,OAAO;IACP,YAAY;CACb,CAAC;AAsBK,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,aAAa;IAEe;IADjD,EAAE,CAAc;IAC1B,YAAY,CAAoB,EAAE,CAAa,EAAY,CAAS,EAAE,QAAkB;QACtF,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QADsC,MAAC,GAAD,CAAC,CAAQ;QAElE,CAAC,CAAC,MAAM,EAAE,CAAC;QACX,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,aAAa,CAAC;QAC1B,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;IACjF,CAAC;IAGD,eAAe,CAAC,EAA0B;QACxC,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;0HAZU,WAAW;8GAAX,WAAW,i/BATX;YACT;gBACE,OAAO,EAAE,iBAAiB;gBAC1B,WAAW,EAAE,UAAU,EAAC,GAAG,EAAE,CAAC,WAAW,EAAC;gBAC1C,KAAK,EAAE,IAAI;aACZ;SACF,iDATS,2BAA2B;;AAY1B,WAAW;IApBvB,QAAQ,CAAC;QACR,qBAAqB,EAAE,mBAAmB;QAC1C,MAAM,EAAE,eAAe;QACvB,OAAO,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC;KACxC,CAAC;GAgBW,WAAW,CAavB;;2FAbY,WAAW;kBAfvB,SAAS;mBAAC;oBACT,QAAQ,EAAE,cAAc;oBACxB,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,QAAQ,EAAE,2BAA2B;oBACrC,uEAAuE;oBACvE,MAAM,EAAE,eAAe;oBACvB,SAAS,EAAE;wBACT;4BACE,OAAO,EAAE,iBAAiB;4BAC1B,WAAW,EAAE,UAAU,EAAC,GAAG,EAAE,YAAY,EAAC;4BAC1C,KAAK,EAAE,IAAI;yBACZ;qBACF;oBACD,UAAU,EAAE,IAAI;iBACjB;;sBAUE,YAAY;uBAAC,WAAW,EAAE,CAAC,eAAe,CAAC","sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Injector,\n NgZone,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ValueAccessor } from '@ionic/angular/common';\nimport type { DatetimeChangeEventDetail, Components } from '@ionic/core/components';\nimport { defineCustomElement } from '@ionic/core/components/ion-datetime.js';\n\nimport { ProxyCmp, proxyOutputs } from './angular-component-lib/utils';\n\nconst DATETIME_INPUTS = [\n 'cancelText',\n 'clearText',\n 'color',\n 'dayValues',\n 'disabled',\n 'doneText',\n 'firstDayOfWeek',\n 'formatOptions',\n 'highlightedDates',\n 'hourCycle',\n 'hourValues',\n 'isDateEnabled',\n 'locale',\n 'max',\n 'min',\n 'minuteValues',\n 'mode',\n 'monthValues',\n 'multiple',\n 'name',\n 'preferWheel',\n 'presentation',\n 'readonly',\n 'showAdjacentDays',\n 'showClearButton',\n 'showDefaultButtons',\n 'showDefaultTimeLabel',\n 'showDefaultTitle',\n 'size',\n 'titleSelectedDatesFormatter',\n 'value',\n 'yearValues',\n];\n\n@ProxyCmp({\n defineCustomElementFn: defineCustomElement,\n inputs: DATETIME_INPUTS,\n methods: ['confirm', 'reset', 'cancel'],\n})\n@Component({\n selector: 'ion-datetime',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '<ng-content></ng-content>',\n // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n inputs: DATETIME_INPUTS,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => IonDatetime),\n multi: true,\n },\n ],\n standalone: true,\n})\nexport class IonDatetime extends ValueAccessor {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone, injector: Injector) {\n super(injector, r);\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, ['ionCancel', 'ionChange', 'ionFocus', 'ionBlur']);\n }\n\n @HostListener('ionChange', ['$event.target'])\n handleIonChange(el: HTMLIonDatetimeElement): void {\n this.handleValueChange(el, el.value);\n }\n}\n\nexport declare interface IonDatetime extends Components.IonDatetime {\n /**\n * Emitted when the datetime selection was cancelled.\n */\n ionCancel: EventEmitter<CustomEvent<void>>;\n /**\n * Emitted when the value (selected date) has changed.\n */\n ionChange: EventEmitter<CustomEvent<DatetimeChangeEventDetail>>;\n /**\n * Emitted when the datetime has focus.\n */\n ionFocus: EventEmitter<CustomEvent<void>>;\n /**\n * Emitted when the datetime loses focus.\n */\n ionBlur: EventEmitter<CustomEvent<void>>;\n}\n"]}
1
+ {"version":3,"file":"datetime.js","sourceRoot":"","sources":["../../../src/standalone/directives/datetime.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Injector,\n NgZone,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ValueAccessor } from '@ionic/angular/common';\nimport type { DatetimeChangeEventDetail, Components } from '@ionic/core/components';\nimport { defineCustomElement } from '@ionic/core/components/ion-datetime.js';\n\nimport { nullableBooleanAttribute } from './angular-component-lib/boolean-attribute';\nimport { ProxyCmp, proxyOutputs } from './angular-component-lib/utils';\n\nconst DATETIME_INPUTS = [\n 'cancelText',\n 'clearText',\n 'color',\n 'dayValues',\n { name: 'disabled', transform: nullableBooleanAttribute },\n 'doneText',\n 'firstDayOfWeek',\n 'formatOptions',\n 'highlightedDates',\n 'hourCycle',\n 'hourValues',\n 'isDateEnabled',\n 'locale',\n 'max',\n 'min',\n 'minuteValues',\n 'mode',\n 'monthValues',\n { name: 'multiple', transform: nullableBooleanAttribute },\n 'name',\n { name: 'preferWheel', transform: nullableBooleanAttribute },\n 'presentation',\n { name: 'readonly', transform: nullableBooleanAttribute },\n { name: 'showAdjacentDays', transform: nullableBooleanAttribute },\n { name: 'showClearButton', transform: nullableBooleanAttribute },\n { name: 'showDefaultButtons', transform: nullableBooleanAttribute },\n { name: 'showDefaultTimeLabel', transform: nullableBooleanAttribute },\n { name: 'showDefaultTitle', transform: nullableBooleanAttribute },\n 'size',\n 'titleSelectedDatesFormatter',\n 'value',\n 'yearValues',\n];\n\n/* ProxyCmp only needs the names, and runs at runtime rather than through the Angular compiler. */\nconst DATETIME_PROXY_INPUTS = DATETIME_INPUTS.map((input) => (typeof input === 'string' ? input : input.name));\n\n@ProxyCmp({\n defineCustomElementFn: defineCustomElement,\n inputs: DATETIME_PROXY_INPUTS,\n methods: ['confirm', 'reset', 'cancel'],\n})\n@Component({\n selector: 'ion-datetime',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '<ng-content></ng-content>',\n // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n inputs: DATETIME_INPUTS,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => IonDatetime),\n multi: true,\n },\n ],\n standalone: true,\n})\nexport class IonDatetime extends ValueAccessor {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone, injector: Injector) {\n super(injector, r);\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, ['ionCancel', 'ionChange', 'ionFocus', 'ionBlur']);\n }\n\n @HostListener('ionChange', ['$event.target'])\n handleIonChange(el: HTMLIonDatetimeElement): void {\n this.handleValueChange(el, el.value);\n }\n}\n\nexport declare interface IonDatetime extends Components.IonDatetime {\n /**\n * Emitted when the datetime selection was cancelled.\n */\n ionCancel: EventEmitter<CustomEvent<void>>;\n /**\n * Emitted when the value (selected date) has changed.\n */\n ionChange: EventEmitter<CustomEvent<DatetimeChangeEventDetail>>;\n /**\n * Emitted when the datetime has focus.\n */\n ionFocus: EventEmitter<CustomEvent<void>>;\n /**\n * Emitted when the datetime loses focus.\n */\n ionBlur: EventEmitter<CustomEvent<void>>;\n}\n"]}
@@ -6,4 +6,7 @@ export declare class IonIcon {
6
6
  constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
7
7
  static ɵfac: i0.ɵɵFactoryDeclaration<IonIcon, never>;
8
8
  static ɵcmp: i0.ɵɵComponentDeclaration<IonIcon, "ion-icon", never, { "color": { "alias": "color"; "required": false; }; "flipRtl": { "alias": "flipRtl"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "ios": { "alias": "ios"; "required": false; }; "lazy": { "alias": "lazy"; "required": false; }; "md": { "alias": "md"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "name": { "alias": "name"; "required": false; }; "sanitize": { "alias": "sanitize"; "required": false; }; "size": { "alias": "size"; "required": false; }; "src": { "alias": "src"; "required": false; }; }, {}, never, ["*"], true, never>;
9
+ static ngAcceptInputType_flipRtl: boolean | string | null | undefined;
10
+ static ngAcceptInputType_lazy: boolean | string | null | undefined;
11
+ static ngAcceptInputType_sanitize: boolean | string | null | undefined;
9
12
  }
@@ -1,8 +1,24 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { ChangeDetectionStrategy, Component } from '@angular/core';
3
3
  import { defineCustomElement as defineIonIcon } from 'ionicons/components/ion-icon.js';
4
+ import { nullableBooleanAttribute } from './angular-component-lib/boolean-attribute';
4
5
  import { ProxyCmp } from './angular-component-lib/utils';
5
6
  import * as i0 from "@angular/core";
7
+ const ICON_INPUTS = [
8
+ 'color',
9
+ { name: 'flipRtl', transform: nullableBooleanAttribute },
10
+ 'icon',
11
+ 'ios',
12
+ { name: 'lazy', transform: nullableBooleanAttribute },
13
+ 'md',
14
+ 'mode',
15
+ 'name',
16
+ { name: 'sanitize', transform: nullableBooleanAttribute },
17
+ 'size',
18
+ 'src',
19
+ ];
20
+ /* ProxyCmp only needs the names, and runs at runtime rather than through the Angular compiler. */
21
+ const ICON_PROXY_INPUTS = ICON_INPUTS.map((input) => (typeof input === 'string' ? input : input.name));
6
22
  let IonIcon = class IonIcon {
7
23
  z;
8
24
  el;
@@ -12,12 +28,12 @@ let IonIcon = class IonIcon {
12
28
  this.el = r.nativeElement;
13
29
  }
14
30
  /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: IonIcon, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
15
- /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.0", type: IonIcon, isStandalone: true, selector: "ion-icon", inputs: { color: "color", flipRtl: "flipRtl", icon: "icon", ios: "ios", lazy: "lazy", md: "md", mode: "mode", name: "name", sanitize: "sanitize", size: "size", src: "src" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
31
+ /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.0.0", type: IonIcon, isStandalone: true, selector: "ion-icon", inputs: { color: "color", flipRtl: ["flipRtl", "flipRtl", nullableBooleanAttribute], icon: "icon", ios: "ios", lazy: ["lazy", "lazy", nullableBooleanAttribute], md: "md", mode: "mode", name: "name", sanitize: ["sanitize", "sanitize", nullableBooleanAttribute], size: "size", src: "src" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
16
32
  };
17
33
  IonIcon = __decorate([
18
34
  ProxyCmp({
19
35
  defineCustomElementFn: defineIonIcon,
20
- inputs: ['color', 'flipRtl', 'icon', 'ios', 'lazy', 'md', 'mode', 'name', 'sanitize', 'size', 'src'],
36
+ inputs: ICON_PROXY_INPUTS,
21
37
  })
22
38
  ], IonIcon);
23
39
  export { IonIcon };
@@ -28,7 +44,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImpor
28
44
  changeDetection: ChangeDetectionStrategy.OnPush,
29
45
  template: '<ng-content></ng-content>',
30
46
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
31
- inputs: ['color', 'flipRtl', 'icon', 'ios', 'lazy', 'md', 'mode', 'name', 'sanitize', 'size', 'src'],
47
+ inputs: ICON_INPUTS,
32
48
  standalone: true,
33
49
  }]
34
50
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
@@ -1 +1 @@
1
- {"version":3,"file":"icon.js","sourceRoot":"","sources":["../../../src/standalone/directives/icon.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,uBAAuB,EAAqB,SAAS,EAAsB,MAAM,eAAe,CAAC;AAC1G,OAAO,EAAE,mBAAmB,IAAI,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEvF,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;;AAclD,IAAM,OAAO,GAAb,MAAM,OAAO;IAEyC;IADjD,EAAE,CAAc;IAC1B,YAAY,CAAoB,EAAE,CAAa,EAAY,CAAS;QAAT,MAAC,GAAD,CAAC,CAAQ;QAClE,CAAC,CAAC,MAAM,EAAE,CAAC;QACX,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,aAAa,CAAC;IAC5B,CAAC;0HALU,OAAO;8GAAP,OAAO,kPALR,2BAA2B;;AAK1B,OAAO;IAZnB,QAAQ,CAAC;QACR,qBAAqB,EAAE,aAAa;QACpC,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC;KACrG,CAAC;GASW,OAAO,CAMnB;;2FANY,OAAO;kBARnB,SAAS;mBAAC;oBACT,QAAQ,EAAE,UAAU;oBACpB,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,QAAQ,EAAE,2BAA2B;oBACrC,uEAAuE;oBACvE,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC;oBACpG,UAAU,EAAE,IAAI;iBACjB","sourcesContent":["import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, NgZone } from '@angular/core';\nimport { defineCustomElement as defineIonIcon } from 'ionicons/components/ion-icon.js';\n\nimport { ProxyCmp } from './angular-component-lib/utils';\n\n@ProxyCmp({\n defineCustomElementFn: defineIonIcon,\n inputs: ['color', 'flipRtl', 'icon', 'ios', 'lazy', 'md', 'mode', 'name', 'sanitize', 'size', 'src'],\n})\n@Component({\n selector: 'ion-icon',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '<ng-content></ng-content>',\n // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n inputs: ['color', 'flipRtl', 'icon', 'ios', 'lazy', 'md', 'mode', 'name', 'sanitize', 'size', 'src'],\n standalone: true,\n})\nexport class IonIcon {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\n"]}
1
+ {"version":3,"file":"icon.js","sourceRoot":"","sources":["../../../src/standalone/directives/icon.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,uBAAuB,EAAqB,SAAS,EAAsB,MAAM,eAAe,CAAC;AAC1G,OAAO,EAAE,mBAAmB,IAAI,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEvF,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AACrF,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;;AAEzD,MAAM,WAAW,GAAG;IAClB,OAAO;IACP,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,wBAAwB,EAAE;IACxD,MAAM;IACN,KAAK;IACL,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,wBAAwB,EAAE;IACrD,IAAI;IACJ,MAAM;IACN,MAAM;IACN,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,wBAAwB,EAAE;IACzD,MAAM;IACN,KAAK;CACN,CAAC;AAEF,kGAAkG;AAClG,MAAM,iBAAiB,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAchG,IAAM,OAAO,GAAb,MAAM,OAAO;IAEyC;IADjD,EAAE,CAAc;IAC1B,YAAY,CAAoB,EAAE,CAAa,EAAY,CAAS;QAAT,MAAC,GAAD,CAAC,CAAQ;QAClE,CAAC,CAAC,MAAM,EAAE,CAAC;QACX,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,aAAa,CAAC;IAC5B,CAAC;0HALU,OAAO;8GAAP,OAAO,sGA3BY,wBAAwB,oDAG3B,wBAAwB,4EAIpB,wBAAwB,uDAe7C,2BAA2B;;AAK1B,OAAO;IAZnB,QAAQ,CAAC;QACR,qBAAqB,EAAE,aAAa;QACpC,MAAM,EAAE,iBAAiB;KAC1B,CAAC;GASW,OAAO,CAMnB;;2FANY,OAAO;kBARnB,SAAS;mBAAC;oBACT,QAAQ,EAAE,UAAU;oBACpB,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,QAAQ,EAAE,2BAA2B;oBACrC,uEAAuE;oBACvE,MAAM,EAAE,WAAW;oBACnB,UAAU,EAAE,IAAI;iBACjB","sourcesContent":["import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, NgZone } from '@angular/core';\nimport { defineCustomElement as defineIonIcon } from 'ionicons/components/ion-icon.js';\n\nimport { nullableBooleanAttribute } from './angular-component-lib/boolean-attribute';\nimport { ProxyCmp } from './angular-component-lib/utils';\n\nconst ICON_INPUTS = [\n 'color',\n { name: 'flipRtl', transform: nullableBooleanAttribute },\n 'icon',\n 'ios',\n { name: 'lazy', transform: nullableBooleanAttribute },\n 'md',\n 'mode',\n 'name',\n { name: 'sanitize', transform: nullableBooleanAttribute },\n 'size',\n 'src',\n];\n\n/* ProxyCmp only needs the names, and runs at runtime rather than through the Angular compiler. */\nconst ICON_PROXY_INPUTS = ICON_INPUTS.map((input) => (typeof input === 'string' ? input : input.name));\n\n@ProxyCmp({\n defineCustomElementFn: defineIonIcon,\n inputs: ICON_PROXY_INPUTS,\n})\n@Component({\n selector: 'ion-icon',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '<ng-content></ng-content>',\n // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n inputs: ICON_INPUTS,\n standalone: true,\n})\nexport class IonIcon {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\n"]}
@@ -10,6 +10,8 @@ export declare class IonInputOtp extends ValueAccessor {
10
10
  registerOnChange(fn: (_: any) => void): void;
11
11
  static ɵfac: i0.ɵɵFactoryDeclaration<IonInputOtp, never>;
12
12
  static ɵcmp: i0.ɵɵComponentDeclaration<IonInputOtp, "ion-input-otp", never, { "autocapitalize": { "alias": "autocapitalize"; "required": false; }; "color": { "alias": "color"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "fill": { "alias": "fill"; "required": false; }; "inputmode": { "alias": "inputmode"; "required": false; }; "length": { "alias": "length"; "required": false; }; "pattern": { "alias": "pattern"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "separators": { "alias": "separators"; "required": false; }; "shape": { "alias": "shape"; "required": false; }; "size": { "alias": "size"; "required": false; }; "type": { "alias": "type"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, {}, never, ["*"], true, never>;
13
+ static ngAcceptInputType_disabled: boolean | string | null | undefined;
14
+ static ngAcceptInputType_readonly: boolean | string | null | undefined;
13
15
  }
14
16
  export declare interface IonInputOtp extends Components.IonInputOtp {
15
17
  /**
@@ -3,23 +3,26 @@ import { ChangeDetectionStrategy, Component, HostListener, forwardRef, } from '@
3
3
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
4
  import { ValueAccessor } from '@ionic/angular/common';
5
5
  import { defineCustomElement } from '@ionic/core/components/ion-input-otp.js';
6
+ import { nullableBooleanAttribute } from './angular-component-lib/boolean-attribute';
6
7
  import { ProxyCmp, proxyOutputs } from './angular-component-lib/utils';
7
8
  import * as i0 from "@angular/core";
8
9
  const INPUT_OTP_INPUTS = [
9
10
  'autocapitalize',
10
11
  'color',
11
- 'disabled',
12
+ { name: 'disabled', transform: nullableBooleanAttribute },
12
13
  'fill',
13
14
  'inputmode',
14
15
  'length',
15
16
  'pattern',
16
- 'readonly',
17
+ { name: 'readonly', transform: nullableBooleanAttribute },
17
18
  'separators',
18
19
  'shape',
19
20
  'size',
20
21
  'type',
21
22
  'value',
22
23
  ];
24
+ /* ProxyCmp only needs the names, and runs at runtime rather than through the Angular compiler. */
25
+ const INPUT_OTP_PROXY_INPUTS = INPUT_OTP_INPUTS.map((input) => (typeof input === 'string' ? input : input.name));
23
26
  let IonInputOtp = class IonInputOtp extends ValueAccessor {
24
27
  z;
25
28
  el;
@@ -49,7 +52,7 @@ let IonInputOtp = class IonInputOtp extends ValueAccessor {
49
52
  });
50
53
  }
51
54
  /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: IonInputOtp, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
52
- /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.0", type: IonInputOtp, isStandalone: true, selector: "ion-input-otp", inputs: { autocapitalize: "autocapitalize", color: "color", disabled: "disabled", fill: "fill", inputmode: "inputmode", length: "length", pattern: "pattern", readonly: "readonly", separators: "separators", shape: "shape", size: "size", type: "type", value: "value" }, host: { listeners: { "ionInput": "handleIonInput($event.target)" } }, providers: [
55
+ /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.0.0", type: IonInputOtp, isStandalone: true, selector: "ion-input-otp", inputs: { autocapitalize: "autocapitalize", color: "color", disabled: ["disabled", "disabled", nullableBooleanAttribute], fill: "fill", inputmode: "inputmode", length: "length", pattern: "pattern", readonly: ["readonly", "readonly", nullableBooleanAttribute], separators: "separators", shape: "shape", size: "size", type: "type", value: "value" }, host: { listeners: { "ionInput": "handleIonInput($event.target)" } }, providers: [
53
56
  {
54
57
  provide: NG_VALUE_ACCESSOR,
55
58
  useExisting: forwardRef((() => IonInputOtp)),
@@ -60,7 +63,7 @@ let IonInputOtp = class IonInputOtp extends ValueAccessor {
60
63
  IonInputOtp = __decorate([
61
64
  ProxyCmp({
62
65
  defineCustomElementFn: defineCustomElement,
63
- inputs: INPUT_OTP_INPUTS,
66
+ inputs: INPUT_OTP_PROXY_INPUTS,
64
67
  methods: ['setFocus'],
65
68
  })
66
69
  ], IonInputOtp);
@@ -1 +1 @@
1
- {"version":3,"file":"input-otp.js","sourceRoot":"","sources":["../../../src/standalone/directives/input-otp.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,uBAAuB,EAEvB,SAAS,EAGT,YAAY,EAGZ,UAAU,GACX,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAOtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAE9E,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;;AAEvE,MAAM,gBAAgB,GAAG;IACvB,gBAAgB;IAChB,OAAO;IACP,UAAU;IACV,MAAM;IACN,WAAW;IACX,QAAQ;IACR,SAAS;IACT,UAAU;IACV,YAAY;IACZ,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;CACR,CAAC;AAsBK,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,aAAa;IAEe;IADjD,EAAE,CAAc;IAC1B,YAAY,CAAoB,EAAE,CAAa,EAAY,CAAS,EAAE,QAAkB;QACtF,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QADsC,MAAC,GAAD,CAAC,CAAQ;QAElE,CAAC,CAAC,MAAM,EAAE,CAAC;QACX,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,aAAa,CAAC;QAC1B,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;IAC/F,CAAC;IAGD,cAAc,CAAC,EAA0B;QACvC,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,gBAAgB,CAAC,EAAoB;QACnC,KAAK,CAAC,gBAAgB,CAAC,CAAC,KAAa,EAAE,EAAE;YACvC,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC3B;;;;mBAIG;gBACH,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACN,EAAE,CAAC,KAAK,CAAC,CAAC;YACZ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;0HA3BU,WAAW;8GAAX,WAAW,8YATX;YACT;gBACE,OAAO,EAAE,iBAAiB;gBAC1B,WAAW,EAAE,UAAU,EAAC,GAAG,EAAE,CAAC,WAAW,EAAC;gBAC1C,KAAK,EAAE,IAAI;aACZ;SACF,iDATS,2BAA2B;;AAY1B,WAAW;IApBvB,QAAQ,CAAC;QACR,qBAAqB,EAAE,mBAAmB;QAC1C,MAAM,EAAE,gBAAgB;QACxB,OAAO,EAAE,CAAC,UAAU,CAAC;KACtB,CAAC;GAgBW,WAAW,CA4BvB;;2FA5BY,WAAW;kBAfvB,SAAS;mBAAC;oBACT,QAAQ,EAAE,eAAe;oBACzB,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,QAAQ,EAAE,2BAA2B;oBACrC,uEAAuE;oBACvE,MAAM,EAAE,gBAAgB;oBACxB,SAAS,EAAE;wBACT;4BACE,OAAO,EAAE,iBAAiB;4BAC1B,WAAW,EAAE,UAAU,EAAC,GAAG,EAAE,YAAY,EAAC;4BAC1C,KAAK,EAAE,IAAI;yBACZ;qBACF;oBACD,UAAU,EAAE,IAAI;iBACjB;;sBAUE,YAAY;uBAAC,UAAU,EAAE,CAAC,eAAe,CAAC","sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Injector,\n NgZone,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ValueAccessor } from '@ionic/angular/common';\nimport type {\n InputOtpInputEventDetail as IIonInputOtpInputEventDetail,\n InputOtpChangeEventDetail as IIonInputOtpChangeEventDetail,\n InputOtpCompleteEventDetail as IIonInputOtpCompleteEventDetail,\n Components,\n} from '@ionic/core/components';\nimport { defineCustomElement } from '@ionic/core/components/ion-input-otp.js';\n\nimport { ProxyCmp, proxyOutputs } from './angular-component-lib/utils';\n\nconst INPUT_OTP_INPUTS = [\n 'autocapitalize',\n 'color',\n 'disabled',\n 'fill',\n 'inputmode',\n 'length',\n 'pattern',\n 'readonly',\n 'separators',\n 'shape',\n 'size',\n 'type',\n 'value',\n];\n\n@ProxyCmp({\n defineCustomElementFn: defineCustomElement,\n inputs: INPUT_OTP_INPUTS,\n methods: ['setFocus'],\n})\n@Component({\n selector: 'ion-input-otp',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '<ng-content></ng-content>',\n // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n inputs: INPUT_OTP_INPUTS,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => IonInputOtp),\n multi: true,\n },\n ],\n standalone: true,\n})\nexport class IonInputOtp extends ValueAccessor {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone, injector: Injector) {\n super(injector, r);\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, ['ionInput', 'ionChange', 'ionComplete', 'ionBlur', 'ionFocus']);\n }\n\n @HostListener('ionInput', ['$event.target'])\n handleIonInput(el: HTMLIonInputOtpElement): void {\n this.handleValueChange(el, el.value);\n }\n\n registerOnChange(fn: (_: any) => void): void {\n super.registerOnChange((value: string) => {\n if (this.type === 'number') {\n /**\n * If the input type is `number`, we need to convert the value to a number\n * when the value is not empty. If the value is empty, we want to treat\n * the value as null.\n */\n fn(value === '' ? null : parseFloat(value));\n } else {\n fn(value);\n }\n });\n }\n}\n\nexport declare interface IonInputOtp extends Components.IonInputOtp {\n /**\n * The `ionInput` event is fired each time the user modifies the input's value.\n * Unlike the `ionChange` event, the `ionInput` event is fired for each alteration\n * to the input's value. This typically happens for each keystroke as the user types.\n *\n * For elements that accept text input (`type=text`, `type=tel`, etc.), the interface\n * is [`InputEvent`](https://developer.mozilla.org/en-US/docs/Web/API/InputEvent); for others,\n * the interface is [`Event`](https://developer.mozilla.org/en-US/docs/Web/API/Event). If\n * the input is cleared on edit, the type is `null`.\n */\n ionInput: EventEmitter<CustomEvent<IIonInputOtpInputEventDetail>>;\n /**\n * The `ionChange` event is fired when the user modifies the input's value.\n * Unlike the `ionInput` event, the `ionChange` event is only fired when changes\n * are committed, not as the user types.\n *\n * The `ionChange` event fires when the `<ion-input-otp>` component loses\n * focus after its value has changed.\n *\n * This event will not emit when programmatically setting the `value` property.\n */\n ionChange: EventEmitter<CustomEvent<IIonInputOtpChangeEventDetail>>;\n /**\n * Emitted when all input boxes have been filled with valid values.\n */\n ionComplete: EventEmitter<CustomEvent<IIonInputOtpCompleteEventDetail>>;\n /**\n * Emitted when the input group loses focus.\n */\n ionBlur: EventEmitter<CustomEvent<FocusEvent>>;\n /**\n * Emitted when the input group has focus.\n */\n ionFocus: EventEmitter<CustomEvent<FocusEvent>>;\n}\n"]}
1
+ {"version":3,"file":"input-otp.js","sourceRoot":"","sources":["../../../src/standalone/directives/input-otp.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,uBAAuB,EAEvB,SAAS,EAGT,YAAY,EAGZ,UAAU,GACX,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAOtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAE9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AACrF,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;;AAEvE,MAAM,gBAAgB,GAAG;IACvB,gBAAgB;IAChB,OAAO;IACP,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,wBAAwB,EAAE;IACzD,MAAM;IACN,WAAW;IACX,QAAQ;IACR,SAAS;IACT,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,wBAAwB,EAAE;IACzD,YAAY;IACZ,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;CACR,CAAC;AAEF,kGAAkG;AAClG,MAAM,sBAAsB,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAsB1G,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,aAAa;IAEe;IADjD,EAAE,CAAc;IAC1B,YAAY,CAAoB,EAAE,CAAa,EAAY,CAAS,EAAE,QAAkB;QACtF,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QADsC,MAAC,GAAD,CAAC,CAAQ;QAElE,CAAC,CAAC,MAAM,EAAE,CAAC;QACX,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,aAAa,CAAC;QAC1B,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;IAC/F,CAAC;IAGD,cAAc,CAAC,EAA0B;QACvC,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,gBAAgB,CAAC,EAAoB;QACnC,KAAK,CAAC,gBAAgB,CAAC,CAAC,KAAa,EAAE,EAAE;YACvC,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC3B;;;;mBAIG;gBACH,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACN,EAAE,CAAC,KAAK,CAAC,CAAC;YACZ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;0HA3BU,WAAW;8GAAX,WAAW,gJApCS,wBAAwB,kHAKxB,wBAAwB,4KAsB5C;YACT;gBACE,OAAO,EAAE,iBAAiB;gBAC1B,WAAW,EAAE,UAAU,EAAC,GAAG,EAAE,CAAC,WAAW,EAAC;gBAC1C,KAAK,EAAE,IAAI;aACZ;SACF,iDATS,2BAA2B;;AAY1B,WAAW;IApBvB,QAAQ,CAAC;QACR,qBAAqB,EAAE,mBAAmB;QAC1C,MAAM,EAAE,sBAAsB;QAC9B,OAAO,EAAE,CAAC,UAAU,CAAC;KACtB,CAAC;GAgBW,WAAW,CA4BvB;;2FA5BY,WAAW;kBAfvB,SAAS;mBAAC;oBACT,QAAQ,EAAE,eAAe;oBACzB,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,QAAQ,EAAE,2BAA2B;oBACrC,uEAAuE;oBACvE,MAAM,EAAE,gBAAgB;oBACxB,SAAS,EAAE;wBACT;4BACE,OAAO,EAAE,iBAAiB;4BAC1B,WAAW,EAAE,UAAU,EAAC,GAAG,EAAE,YAAY,EAAC;4BAC1C,KAAK,EAAE,IAAI;yBACZ;qBACF;oBACD,UAAU,EAAE,IAAI;iBACjB;;sBAUE,YAAY;uBAAC,UAAU,EAAE,CAAC,eAAe,CAAC","sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Injector,\n NgZone,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ValueAccessor } from '@ionic/angular/common';\nimport type {\n InputOtpInputEventDetail as IIonInputOtpInputEventDetail,\n InputOtpChangeEventDetail as IIonInputOtpChangeEventDetail,\n InputOtpCompleteEventDetail as IIonInputOtpCompleteEventDetail,\n Components,\n} from '@ionic/core/components';\nimport { defineCustomElement } from '@ionic/core/components/ion-input-otp.js';\n\nimport { nullableBooleanAttribute } from './angular-component-lib/boolean-attribute';\nimport { ProxyCmp, proxyOutputs } from './angular-component-lib/utils';\n\nconst INPUT_OTP_INPUTS = [\n 'autocapitalize',\n 'color',\n { name: 'disabled', transform: nullableBooleanAttribute },\n 'fill',\n 'inputmode',\n 'length',\n 'pattern',\n { name: 'readonly', transform: nullableBooleanAttribute },\n 'separators',\n 'shape',\n 'size',\n 'type',\n 'value',\n];\n\n/* ProxyCmp only needs the names, and runs at runtime rather than through the Angular compiler. */\nconst INPUT_OTP_PROXY_INPUTS = INPUT_OTP_INPUTS.map((input) => (typeof input === 'string' ? input : input.name));\n\n@ProxyCmp({\n defineCustomElementFn: defineCustomElement,\n inputs: INPUT_OTP_PROXY_INPUTS,\n methods: ['setFocus'],\n})\n@Component({\n selector: 'ion-input-otp',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '<ng-content></ng-content>',\n // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n inputs: INPUT_OTP_INPUTS,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => IonInputOtp),\n multi: true,\n },\n ],\n standalone: true,\n})\nexport class IonInputOtp extends ValueAccessor {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone, injector: Injector) {\n super(injector, r);\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, ['ionInput', 'ionChange', 'ionComplete', 'ionBlur', 'ionFocus']);\n }\n\n @HostListener('ionInput', ['$event.target'])\n handleIonInput(el: HTMLIonInputOtpElement): void {\n this.handleValueChange(el, el.value);\n }\n\n registerOnChange(fn: (_: any) => void): void {\n super.registerOnChange((value: string) => {\n if (this.type === 'number') {\n /**\n * If the input type is `number`, we need to convert the value to a number\n * when the value is not empty. If the value is empty, we want to treat\n * the value as null.\n */\n fn(value === '' ? null : parseFloat(value));\n } else {\n fn(value);\n }\n });\n }\n}\n\nexport declare interface IonInputOtp extends Components.IonInputOtp {\n /**\n * The `ionInput` event is fired each time the user modifies the input's value.\n * Unlike the `ionChange` event, the `ionInput` event is fired for each alteration\n * to the input's value. This typically happens for each keystroke as the user types.\n *\n * For elements that accept text input (`type=text`, `type=tel`, etc.), the interface\n * is [`InputEvent`](https://developer.mozilla.org/en-US/docs/Web/API/InputEvent); for others,\n * the interface is [`Event`](https://developer.mozilla.org/en-US/docs/Web/API/Event). If\n * the input is cleared on edit, the type is `null`.\n */\n ionInput: EventEmitter<CustomEvent<IIonInputOtpInputEventDetail>>;\n /**\n * The `ionChange` event is fired when the user modifies the input's value.\n * Unlike the `ionInput` event, the `ionChange` event is only fired when changes\n * are committed, not as the user types.\n *\n * The `ionChange` event fires when the `<ion-input-otp>` component loses\n * focus after its value has changed.\n *\n * This event will not emit when programmatically setting the `value` property.\n */\n ionChange: EventEmitter<CustomEvent<IIonInputOtpChangeEventDetail>>;\n /**\n * Emitted when all input boxes have been filled with valid values.\n */\n ionComplete: EventEmitter<CustomEvent<IIonInputOtpCompleteEventDetail>>;\n /**\n * Emitted when the input group loses focus.\n */\n ionBlur: EventEmitter<CustomEvent<FocusEvent>>;\n /**\n * Emitted when the input group has focus.\n */\n ionFocus: EventEmitter<CustomEvent<FocusEvent>>;\n}\n"]}
@@ -10,6 +10,16 @@ export declare class IonInput extends ValueAccessor {
10
10
  registerOnChange(fn: (_: any) => void): void;
11
11
  static ɵfac: i0.ɵɵFactoryDeclaration<IonInput, never>;
12
12
  static ɵcmp: i0.ɵɵComponentDeclaration<IonInput, "ion-input", never, { "accept": { "alias": "accept"; "required": false; }; "autocapitalize": { "alias": "autocapitalize"; "required": false; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; "autocorrect": { "alias": "autocorrect"; "required": false; }; "autofocus": { "alias": "autofocus"; "required": false; }; "clearInput": { "alias": "clearInput"; "required": false; }; "clearOnEdit": { "alias": "clearOnEdit"; "required": false; }; "color": { "alias": "color"; "required": false; }; "counter": { "alias": "counter"; "required": false; }; "counterFormatter": { "alias": "counterFormatter"; "required": false; }; "debounce": { "alias": "debounce"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "enterkeyhint": { "alias": "enterkeyhint"; "required": false; }; "errorText": { "alias": "errorText"; "required": false; }; "fill": { "alias": "fill"; "required": false; }; "helperText": { "alias": "helperText"; "required": false; }; "inputmode": { "alias": "inputmode"; "required": false; }; "label": { "alias": "label"; "required": false; }; "labelPlacement": { "alias": "labelPlacement"; "required": false; }; "max": { "alias": "max"; "required": false; }; "maxlength": { "alias": "maxlength"; "required": false; }; "min": { "alias": "min"; "required": false; }; "minlength": { "alias": "minlength"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "name": { "alias": "name"; "required": false; }; "pattern": { "alias": "pattern"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "required": { "alias": "required"; "required": false; }; "shape": { "alias": "shape"; "required": false; }; "size": { "alias": "size"; "required": false; }; "spellcheck": { "alias": "spellcheck"; "required": false; }; "step": { "alias": "step"; "required": false; }; "type": { "alias": "type"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, {}, never, ["*"], true, never>;
13
+ static ngAcceptInputType_autocorrect: boolean | string | null | undefined;
14
+ static ngAcceptInputType_autofocus: boolean | string | null | undefined;
15
+ static ngAcceptInputType_clearInput: boolean | string | null | undefined;
16
+ static ngAcceptInputType_clearOnEdit: boolean | string | null | undefined;
17
+ static ngAcceptInputType_counter: boolean | string | null | undefined;
18
+ static ngAcceptInputType_disabled: boolean | string | null | undefined;
19
+ static ngAcceptInputType_multiple: boolean | string | null | undefined;
20
+ static ngAcceptInputType_readonly: boolean | string | null | undefined;
21
+ static ngAcceptInputType_required: boolean | string | null | undefined;
22
+ static ngAcceptInputType_spellcheck: boolean | string | null | undefined;
13
23
  }
14
24
  export declare interface IonInput extends Components.IonInput {
15
25
  /**
@@ -3,21 +3,22 @@ import { ChangeDetectionStrategy, Component, HostListener, forwardRef, } from '@
3
3
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
4
  import { ValueAccessor } from '@ionic/angular/common';
5
5
  import { defineCustomElement } from '@ionic/core/components/ion-input.js';
6
+ import { nullableBooleanAttribute } from './angular-component-lib/boolean-attribute';
6
7
  import { ProxyCmp, proxyOutputs } from './angular-component-lib/utils';
7
8
  import * as i0 from "@angular/core";
8
9
  const INPUT_INPUTS = [
9
10
  'accept',
10
11
  'autocapitalize',
11
12
  'autocomplete',
12
- 'autocorrect',
13
- 'autofocus',
14
- 'clearInput',
15
- 'clearOnEdit',
13
+ { name: 'autocorrect', transform: nullableBooleanAttribute },
14
+ { name: 'autofocus', transform: nullableBooleanAttribute },
15
+ { name: 'clearInput', transform: nullableBooleanAttribute },
16
+ { name: 'clearOnEdit', transform: nullableBooleanAttribute },
16
17
  'color',
17
- 'counter',
18
+ { name: 'counter', transform: nullableBooleanAttribute },
18
19
  'counterFormatter',
19
20
  'debounce',
20
- 'disabled',
21
+ { name: 'disabled', transform: nullableBooleanAttribute },
21
22
  'enterkeyhint',
22
23
  'errorText',
23
24
  'fill',
@@ -30,19 +31,21 @@ const INPUT_INPUTS = [
30
31
  'min',
31
32
  'minlength',
32
33
  'mode',
33
- 'multiple',
34
+ { name: 'multiple', transform: nullableBooleanAttribute },
34
35
  'name',
35
36
  'pattern',
36
37
  'placeholder',
37
- 'readonly',
38
- 'required',
38
+ { name: 'readonly', transform: nullableBooleanAttribute },
39
+ { name: 'required', transform: nullableBooleanAttribute },
39
40
  'shape',
40
41
  'size',
41
- 'spellcheck',
42
+ { name: 'spellcheck', transform: nullableBooleanAttribute },
42
43
  'step',
43
44
  'type',
44
45
  'value',
45
46
  ];
47
+ /* ProxyCmp only needs the names, and runs at runtime rather than through the Angular compiler. */
48
+ const INPUT_PROXY_INPUTS = INPUT_INPUTS.map((input) => (typeof input === 'string' ? input : input.name));
46
49
  let IonInput = class IonInput extends ValueAccessor {
47
50
  z;
48
51
  el;
@@ -72,7 +75,7 @@ let IonInput = class IonInput extends ValueAccessor {
72
75
  });
73
76
  }
74
77
  /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: IonInput, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
75
- /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.0", type: IonInput, isStandalone: true, selector: "ion-input", inputs: { accept: "accept", autocapitalize: "autocapitalize", autocomplete: "autocomplete", autocorrect: "autocorrect", autofocus: "autofocus", clearInput: "clearInput", clearOnEdit: "clearOnEdit", color: "color", counter: "counter", counterFormatter: "counterFormatter", debounce: "debounce", disabled: "disabled", enterkeyhint: "enterkeyhint", errorText: "errorText", fill: "fill", helperText: "helperText", inputmode: "inputmode", label: "label", labelPlacement: "labelPlacement", max: "max", maxlength: "maxlength", min: "min", minlength: "minlength", mode: "mode", multiple: "multiple", name: "name", pattern: "pattern", placeholder: "placeholder", readonly: "readonly", required: "required", shape: "shape", size: "size", spellcheck: "spellcheck", step: "step", type: "type", value: "value" }, host: { listeners: { "ionInput": "handleIonInput($event.target)" } }, providers: [
78
+ /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.0.0", type: IonInput, isStandalone: true, selector: "ion-input", inputs: { accept: "accept", autocapitalize: "autocapitalize", autocomplete: "autocomplete", autocorrect: ["autocorrect", "autocorrect", nullableBooleanAttribute], autofocus: ["autofocus", "autofocus", nullableBooleanAttribute], clearInput: ["clearInput", "clearInput", nullableBooleanAttribute], clearOnEdit: ["clearOnEdit", "clearOnEdit", nullableBooleanAttribute], color: "color", counter: ["counter", "counter", nullableBooleanAttribute], counterFormatter: "counterFormatter", debounce: "debounce", disabled: ["disabled", "disabled", nullableBooleanAttribute], enterkeyhint: "enterkeyhint", errorText: "errorText", fill: "fill", helperText: "helperText", inputmode: "inputmode", label: "label", labelPlacement: "labelPlacement", max: "max", maxlength: "maxlength", min: "min", minlength: "minlength", mode: "mode", multiple: ["multiple", "multiple", nullableBooleanAttribute], name: "name", pattern: "pattern", placeholder: "placeholder", readonly: ["readonly", "readonly", nullableBooleanAttribute], required: ["required", "required", nullableBooleanAttribute], shape: "shape", size: "size", spellcheck: ["spellcheck", "spellcheck", nullableBooleanAttribute], step: "step", type: "type", value: "value" }, host: { listeners: { "ionInput": "handleIonInput($event.target)" } }, providers: [
76
79
  {
77
80
  provide: NG_VALUE_ACCESSOR,
78
81
  useExisting: forwardRef((() => IonInput)),
@@ -83,7 +86,7 @@ let IonInput = class IonInput extends ValueAccessor {
83
86
  IonInput = __decorate([
84
87
  ProxyCmp({
85
88
  defineCustomElementFn: defineCustomElement,
86
- inputs: INPUT_INPUTS,
89
+ inputs: INPUT_PROXY_INPUTS,
87
90
  methods: ['setFocus', 'getInputElement'],
88
91
  })
89
92
  ], IonInput);