@qualcomm-ui/angular-core 1.0.4 → 1.0.6

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.
@@ -323,16 +323,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImpo
323
323
 
324
324
  // Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
325
325
  // SPDX-License-Identifier: BSD-3-Clause-Clear
326
- class AbstractListCollectionFormControlDirective {
326
+ class AbstractBaseListCollectionFormControlDirective {
327
327
  /**
328
- * The item collection
329
- *
330
- * @inheritDoc
331
- */
332
- collection = input.required(...(ngDevMode ? [{ debugName: "collection" }] : []));
333
- /**
334
- * The initial state of the input when rendered. Use when you don't need to
335
- * control the checked state of the input. This property will be ignored if you
328
+ * The initial value of the input when rendered. Use when you don't need to
329
+ * control the value of the input. This property will be ignored if you
336
330
  * opt into controlled state via form control bindings.
337
331
  *
338
332
  * @inheritDoc
@@ -583,16 +577,29 @@ class AbstractListCollectionFormControlDirective {
583
577
  setDisabledState(isDisabled) {
584
578
  this.isDisabled.set(isDisabled);
585
579
  }
586
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AbstractListCollectionFormControlDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
587
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.12", type: AbstractListCollectionFormControlDirective, isStandalone: true, inputs: { collection: { classPropertyName: "collection", publicName: "collection", isSignal: true, isRequired: true, transformFunction: null }, defaultValue: { classPropertyName: "defaultValue", publicName: "defaultValue", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, readOnly: { classPropertyName: "readOnly", publicName: "readOnly", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
580
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AbstractBaseListCollectionFormControlDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
581
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.12", type: AbstractBaseListCollectionFormControlDirective, isStandalone: true, inputs: { defaultValue: { classPropertyName: "defaultValue", publicName: "defaultValue", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, readOnly: { classPropertyName: "readOnly", publicName: "readOnly", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
582
+ }
583
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AbstractBaseListCollectionFormControlDirective, decorators: [{
584
+ type: Directive
585
+ }], ctorParameters: () => [], propDecorators: { defaultValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultValue", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], readOnly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readOnly", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }] } });
586
+ class AbstractListCollectionFormControlDirective extends AbstractBaseListCollectionFormControlDirective {
587
+ /**
588
+ * The item collection
589
+ *
590
+ * @inheritDoc
591
+ */
592
+ collection = input.required(...(ngDevMode ? [{ debugName: "collection" }] : []));
593
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AbstractListCollectionFormControlDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
594
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.12", type: AbstractListCollectionFormControlDirective, isStandalone: true, inputs: { collection: { classPropertyName: "collection", publicName: "collection", isSignal: true, isRequired: true, transformFunction: null } }, usesInheritance: true, ngImport: i0 });
588
595
  }
589
596
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AbstractListCollectionFormControlDirective, decorators: [{
590
597
  type: Directive
591
- }], ctorParameters: () => [], propDecorators: { collection: [{ type: i0.Input, args: [{ isSignal: true, alias: "collection", required: true }] }], defaultValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultValue", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], readOnly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readOnly", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }] } });
598
+ }], propDecorators: { collection: [{ type: i0.Input, args: [{ isSignal: true, alias: "collection", required: true }] }] } });
592
599
 
593
600
  /**
594
601
  * Generated bundle index. Do not edit.
595
602
  */
596
603
 
597
- export { AbstractInputFormControlDirective, AbstractListCollectionFormControlDirective, FORM_CONTROL_ERROR_MESSAGE_PROVIDER, INPUT_FORM_CONTROL_CONTEXT, initInputFormControl };
604
+ export { AbstractBaseListCollectionFormControlDirective, AbstractInputFormControlDirective, AbstractListCollectionFormControlDirective, FORM_CONTROL_ERROR_MESSAGE_PROVIDER, INPUT_FORM_CONTROL_CONTEXT, initInputFormControl };
598
605
  //# sourceMappingURL=qualcomm-ui-angular-core-input.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"qualcomm-ui-angular-core-input.mjs","sources":["../../src/input/input-form-control-provider.ts","../../src/input/abstract-input-form-control.directive.ts","../../src/input/abstract-list-collection-form-control.directive.ts","../../src/input/qualcomm-ui-angular-core-input.ts"],"sourcesContent":["// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {\n computed,\n inject,\n InjectionToken,\n type Signal,\n signal,\n type WritableSignal,\n} from \"@angular/core\"\nimport {NgControl, NgModel} from \"@angular/forms\"\n\nimport type {FormEventData} from \"@qualcomm-ui/angular-core/forms\"\n\nexport interface InputFormControlContext<T> {\n control?: NgControl[\"control\"] | null\n /**\n * Computed error message from the underlying control.\n */\n errorText: Signal<string | undefined | null>\n formEventData: WritableSignal<FormEventData<T | undefined> | null>\n /** `true` when used with reactive-forms (`formControl`, `formControlName`). */\n isReactiveForm: () => boolean\n /** `true` when used with template-driven forms (`[(ngModel)]`, `ngModel`). */\n isTemplateDrivenForm: () => boolean\n ngControl: NgControl | null\n}\n\nexport type FormControlKnownErrors = Record<\n string,\n ((error: any) => string) | undefined\n>\n\nconst defaultErrors: FormControlKnownErrors = {\n email: () => \"Invalid email\",\n max: (err) => `Max: ${err.max}`,\n maxLength: (err) => `Max length: ${err.maxLength}`,\n min: (err) => `Min: ${err.min}`,\n minLength: (err) => `Min length: ${err.requiredLength}`,\n pattern: () => \"Invalid format\",\n required: () => \"This field is required\",\n requiredTrue: () => \"Required\",\n}\n\n/**\n * Override the default error messages for known form control errors.\n *\n * The defaults are as follows:\n * ```angular-html\n * const defaultKnownErrors: FormControlKnownErrors = {\n * email: () => \"Invalid email\",\n * max: (err) => `Max: ${err.max}`,\n * maxLength: (err) => `Max length: ${err.maxLength}`,\n * min: (err) => `Min: ${err.min}`,\n * minLength: (err) => `Min length: ${err.requiredLength}`,\n * pattern: () => \"Invalid format\",\n * required: () => \"This field is required\",\n * requiredTrue: () => \"This field is required\",\n * }\n * ```\n */\nexport const FORM_CONTROL_ERROR_MESSAGE_PROVIDER = new InjectionToken<\n Partial<FormControlKnownErrors>\n>(\"FormControlErrorProvider\")\n\nexport const INPUT_FORM_CONTROL_CONTEXT = new InjectionToken<\n InputFormControlContext<any>\n>(\"InputFormControl\")\n\nexport function initInputFormControl<T = string>(): InputFormControlContext<T> {\n const ngControl: NgControl | null = inject(NgControl, {\n optional: true,\n self: true,\n })\n\n const knownErrors: FormControlKnownErrors = {\n ...defaultErrors,\n ...(inject(FORM_CONTROL_ERROR_MESSAGE_PROVIDER, {optional: true}) ?? {}),\n }\n\n const formEventData = signal<FormEventData<T | undefined> | null>(null)\n\n function isTemplateDrivenForm(): boolean {\n return ngControl instanceof NgModel\n }\n\n function isReactiveForm(): boolean {\n // Any NgControl that is *not* NgModel belongs to the reactive-forms package\n return !!ngControl && !isTemplateDrivenForm()\n }\n\n return {\n control: ngControl?.control ?? null,\n errorText: computed(() => {\n // make this reactive so that the error message is updated when the form state\n // changes.\n formEventData()\n const errors = ngControl?.control?.errors ?? {}\n const [errorKey, errorValue] = Object.entries(errors)[0] ?? []\n if (errorKey && knownErrors[errorKey]) {\n return knownErrors[errorKey](errorValue)\n }\n return errors[\"errorText\"] ?? errors[\"error\"] ?? null\n }),\n formEventData,\n isReactiveForm,\n isTemplateDrivenForm,\n ngControl,\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {\n afterNextRender,\n booleanAttribute,\n computed,\n Directive,\n effect,\n inject,\n Injector,\n input,\n isDevMode,\n linkedSignal,\n type OnInit,\n runInInjectionContext,\n signal,\n} from \"@angular/core\"\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\"\nimport {\n type AbstractControl,\n type ControlValueAccessor,\n type FormControlStatus,\n FormGroupDirective,\n FormSubmittedEvent,\n NgForm,\n PristineChangeEvent,\n Validators,\n} from \"@angular/forms\"\n\nimport {useOnDestroy} from \"@qualcomm-ui/angular-core/common\"\nimport {allEventsSignal} from \"@qualcomm-ui/angular-core/forms\"\nimport type {Booleanish} from \"@qualcomm-ui/utils/coercion\"\nimport {defined, isDefined} from \"@qualcomm-ui/utils/guard\"\n\nimport {initInputFormControl} from \"./input-form-control-provider\"\n\n@Directive()\nexport abstract class AbstractInputFormControlDirective\n implements ControlValueAccessor, OnInit\n{\n /**\n * The initial state of the input when rendered. Use when you don't\n * need to control the checked state of the input. This property will be\n * ignored if you opt into controlled state via form control bindings.\n */\n readonly defaultValue = input<string | undefined>(undefined)\n\n /**\n * Controls whether the input is disabled in template-driven forms. When true,\n * prevents user interaction and applies visual styling to indicate the disabled\n * state.\n */\n readonly disabled = input<boolean | undefined, Booleanish>(undefined, {\n transform: booleanAttribute,\n })\n\n /**\n * Controls the visual error state of the input. When true, applies semantic error\n * styling to indicate validation failure.\n */\n readonly invalid = input<boolean | undefined, Booleanish>(undefined, {\n transform: booleanAttribute,\n })\n\n /**\n * The name of the input field. Useful for form submission.\n */\n readonly name = input<string | undefined>()\n\n /**\n * Whether the input is read-only. When true, prevents user interaction while\n * keeping the input focusable and visible.\n */\n readonly readOnly = input<boolean | undefined, Booleanish>(undefined, {\n transform: booleanAttribute,\n })\n\n /**\n * Controls whether the input is required in template-driven forms. When\n * true, the input must have a value for form validation to pass.\n */\n readonly required = input<boolean | undefined, Booleanish>(undefined, {\n transform: booleanAttribute,\n })\n\n /* the internal \"value\" state of the input */\n protected readonly value = signal<string>(\"\")\n protected readonly onDestroy = useOnDestroy()\n protected readonly injector = inject(Injector)\n protected readonly formControlStatus = signal<FormControlStatus | undefined>(\n undefined,\n )\n protected readonly formSubmitted = signal(false)\n\n readonly formControlContext = initInputFormControl()\n\n /**\n * If the component is bound to an Angular AbstractControl, its state wins.\n * If not, fall back to the host attribute.\n */\n protected readonly isDisabled = linkedSignal(() => {\n /**\n * When the component is bound to any AbstractControl, status is guaranteed to\n * be non-undefined.\n */\n const status = this.formControlStatus()\n const disabled = this.disabled()\n if (status !== undefined) {\n return status === \"DISABLED\"\n }\n\n return !!disabled\n })\n\n readonly isInvalid = computed(() => {\n const formEventData = this.formControlContext.formEventData()\n this.formSubmitted()\n const isInvalidDefined = defined(this.invalid())\n const invalidProp = this.invalid() || false\n if (!this.control) {\n return invalidProp\n }\n\n let invalid, touched, dirty\n\n if (this.formControlContext.isTemplateDrivenForm()) {\n invalid = isInvalidDefined ? invalidProp : this.control.invalid\n touched = this.control.touched\n dirty = this.control.dirty\n } else if (formEventData) {\n invalid = formEventData.invalid\n touched = formEventData.touched\n dirty = formEventData.dirty\n } else {\n return invalidProp\n }\n\n switch (this.control.updateOn) {\n case \"submit\":\n return invalid\n case \"blur\":\n return invalid && touched\n default:\n // \"change\"\n return dirty && invalid\n }\n })\n\n readonly isRequired = linkedSignal(() => {\n const control = this.control\n const required = this.required()\n if (!control || !this.formControlContext.isReactiveForm()) {\n return required\n }\n\n if (typeof control.hasValidator === \"function\") {\n return (\n control.hasValidator(Validators.required) ||\n control.hasValidator(Validators.requiredTrue)\n )\n }\n return false\n })\n\n constructor() {\n if (this.formControlContext.ngControl) {\n this.formControlContext.ngControl.valueAccessor = this\n this.value.set(this.formControlContext.ngControl.control?.value || \"\")\n }\n\n afterNextRender(() => {\n if (\n isDefined(this.required()) &&\n this.formControlContext.isReactiveForm() &&\n isDevMode()\n ) {\n console.warn(\n \"The required attribute is not supported on reactive forms. Use Validators instead. https://angular.dev/guide/forms/form-validation#validating-input-in-reactive-forms\",\n )\n }\n })\n\n effect(() => {\n const required = this.required()\n if (this.control && this.formControlContext.isTemplateDrivenForm()) {\n if (required) {\n this.control.addValidators(Validators.required)\n } else if (this.control.hasValidator(Validators.required)) {\n this.control.removeValidators(Validators.required)\n }\n }\n })\n }\n\n ngOnInit() {\n // Ensure the form control receives the initial value\n const defaultValue = this.defaultValue()\n if (!this.control && defaultValue) {\n this.value.set(defaultValue)\n } else if (this.control) {\n const subscription = this.control.statusChanges.subscribe((status) => {\n this.formControlStatus.set(status)\n })\n this.onDestroy(() => {\n subscription.unsubscribe()\n })\n\n const parent = this.getParentForm()\n\n runInInjectionContext(this.injector, () => {\n if (this.control) {\n const formSignal = allEventsSignal<string | undefined>(this.control)\n effect(() => {\n this.formControlContext.formEventData.set(formSignal())\n })\n }\n\n if (parent) {\n let prevPristine = this.control?.pristine || false\n parent.form.events.pipe(takeUntilDestroyed()).subscribe((event) => {\n if (event instanceof PristineChangeEvent) {\n if (event.pristine && !prevPristine) {\n // if this event fires with pristine status and the control was\n // previously not pristine, this means that the form was reset. There\n // isn't another way to determine form resets programmatically,\n // unfortunately.\n this.formSubmitted.set(false)\n }\n prevPristine = event.pristine\n } else if (event instanceof FormSubmittedEvent) {\n this.formSubmitted.set(true)\n this.control?.markAsDirty()\n }\n })\n parent.ngSubmit.pipe(takeUntilDestroyed()).subscribe(() => {\n if (this.formControlContext.isReactiveForm()) {\n // already accounted for in the above event subscription.\n return\n }\n this.formSubmitted.set(true)\n this.control?.markAsDirty()\n })\n }\n })\n }\n }\n\n /** Convenience access to the underlying AbstractControl (can be null). */\n get control(): AbstractControl | null {\n return this.formControlContext.ngControl?.control ?? null\n }\n\n /**\n * Used to subscribe to form submit events.\n */\n private getParentForm(): NgForm | FormGroupDirective | null {\n if (!this.control) {\n return null\n }\n\n // Try to find NgForm first\n try {\n const ngForm = this.injector.get(NgForm, null)\n if (ngForm) {\n return ngForm\n }\n } catch {}\n\n // Fall back to FormGroupDirective\n try {\n const formGroupDirective = this.injector.get(FormGroupDirective, null)\n if (formGroupDirective) {\n return formGroupDirective\n }\n } catch {}\n\n return null\n }\n\n /*\n * Control value accessor methods\n */\n writeValue(value: any): void {\n this.value.set(value)\n }\n\n // placeholder\n protected onChange = (_value: any) => {}\n\n registerOnChange(fn: (value: any) => void): void {\n this.onChange = (_value) => {\n fn(_value)\n this.value.set(_value)\n }\n }\n\n protected onTouched = () => {}\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn\n }\n\n /**\n * NgModel never calls setDisabledState, but ReactiveForms does. Everything else\n * (writeValue, registerOnChange, registerOnTouched) is identical between Reactive\n * and Template forms.\n */\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled.set(isDisabled)\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {\n afterNextRender,\n booleanAttribute,\n computed,\n Directive,\n effect,\n inject,\n Injector,\n input,\n isDevMode,\n linkedSignal,\n type OnInit,\n runInInjectionContext,\n signal,\n} from \"@angular/core\"\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\"\nimport {\n type AbstractControl,\n type ControlValueAccessor,\n type FormControlStatus,\n FormGroupDirective,\n FormSubmittedEvent,\n NgForm,\n PristineChangeEvent,\n Validators,\n} from \"@angular/forms\"\n\nimport {useOnDestroy} from \"@qualcomm-ui/angular-core/common\"\nimport {allEventsSignal} from \"@qualcomm-ui/angular-core/forms\"\nimport type {Booleanish} from \"@qualcomm-ui/utils/coercion\"\nimport {\n type CollectionItem,\n ListCollection,\n} from \"@qualcomm-ui/utils/collection\"\nimport {defined, isDefined} from \"@qualcomm-ui/utils/guard\"\n\nimport {initInputFormControl} from \"./input-form-control-provider\"\n\n@Directive()\nexport abstract class AbstractListCollectionFormControlDirective<\n T extends CollectionItem,\n >\n implements ControlValueAccessor, OnInit\n{\n /**\n * The item collection\n *\n * @inheritDoc\n */\n readonly collection = input.required<ListCollection<T>>()\n\n /**\n * The initial state of the input when rendered. Use when you don't need to\n * control the checked state of the input. This property will be ignored if you\n * opt into controlled state via form control bindings.\n *\n * @inheritDoc\n */\n readonly defaultValue = input<T[] | undefined>(undefined)\n\n /**\n * Controls whether the input is disabled in template-driven forms. When true,\n * prevents user interaction and applies visual styling to indicate the disabled\n * state.\n */\n readonly disabled = input<boolean | undefined, Booleanish>(undefined, {\n transform: booleanAttribute,\n })\n\n /**\n * Controls the visual error state of the input. When true, applies semantic error\n * styling to indicate validation failure.\n */\n readonly invalid = input<boolean | undefined, Booleanish>(undefined, {\n transform: booleanAttribute,\n })\n\n /**\n * The name of the input field. Useful for form submission.\n */\n readonly name = input<string | undefined>()\n\n /**\n * Whether the input is read-only. When true, prevents user interaction while\n * keeping the input focusable and visible.\n */\n readonly readOnly = input<boolean | undefined, Booleanish>(undefined, {\n transform: booleanAttribute,\n })\n\n /**\n * Controls whether the input is required in template-driven forms. When\n * true, the input must have a value for form validation to pass.\n */\n readonly required = input<boolean | undefined, Booleanish>(undefined, {\n transform: booleanAttribute,\n })\n\n /* the internal \"value\" state of the input */\n protected readonly value = signal<T[]>([])\n protected readonly onDestroy = useOnDestroy()\n protected readonly injector = inject(Injector)\n protected readonly formControlStatus = signal<FormControlStatus | undefined>(\n undefined,\n )\n protected readonly formSubmitted = signal(false)\n\n readonly formControlContext = initInputFormControl<T[]>()\n\n /**\n * If the component is bound to an Angular AbstractControl, its state wins.\n * If not, fall back to the host attribute.\n */\n protected readonly isDisabled = linkedSignal(() => {\n /**\n * When the component is bound to any AbstractControl, status is guaranteed to\n * be non-undefined.\n */\n const status = this.formControlStatus()\n const disabled = this.disabled()\n if (status !== undefined) {\n return status === \"DISABLED\"\n }\n\n return !!disabled\n })\n\n readonly isInvalid = computed(() => {\n const formEventData = this.formControlContext.formEventData()\n this.formSubmitted()\n const isInvalidDefined = defined(this.invalid())\n const invalidProp = this.invalid() || false\n if (!this.control) {\n return invalidProp\n }\n\n let invalid, touched, dirty\n\n if (this.formControlContext.isTemplateDrivenForm()) {\n invalid = isInvalidDefined ? invalidProp : this.control.invalid\n touched = this.control.touched\n dirty = this.control.dirty\n } else if (formEventData) {\n invalid = formEventData.invalid\n touched = formEventData.touched\n dirty = formEventData.dirty\n } else {\n return invalidProp\n }\n\n switch (this.control.updateOn) {\n case \"submit\":\n return invalid\n case \"blur\":\n return invalid && touched\n default:\n // \"change\"\n return dirty && invalid\n }\n })\n\n readonly isRequired = linkedSignal(() => {\n const control = this.control\n const required = this.required()\n if (!control || !this.formControlContext.isReactiveForm()) {\n return required\n }\n\n if (typeof control.hasValidator === \"function\") {\n return (\n control.hasValidator(Validators.required) ||\n control.hasValidator(Validators.requiredTrue)\n )\n }\n return false\n })\n\n constructor() {\n if (this.formControlContext.ngControl) {\n this.formControlContext.ngControl.valueAccessor = this\n this.value.set(this.formControlContext.ngControl.control?.value || [])\n }\n\n afterNextRender(() => {\n if (\n isDefined(this.required()) &&\n this.formControlContext.isReactiveForm() &&\n isDevMode()\n ) {\n console.warn(\n \"The required attribute is not supported on reactive forms. Use Validators instead. https://angular.dev/guide/forms/form-validation#validating-input-in-reactive-forms\",\n )\n }\n })\n\n effect(() => {\n const required = this.required()\n const isRequired = this.isRequired()\n if (!this.control) {\n return\n }\n if (this.formControlContext.isTemplateDrivenForm()) {\n if (required) {\n this.control.addValidators([\n Validators.required,\n Validators.minLength(1),\n ])\n } else if (\n this.control.hasValidator(Validators.required) &&\n this.control.hasValidator(Validators.minLength(1))\n ) {\n this.control.removeValidators([\n Validators.required,\n Validators.minLength(1),\n ])\n }\n } else if (isRequired) {\n this.control.addValidators(Validators.minLength(1))\n }\n })\n }\n\n ngOnInit() {\n // Ensure the form control receives the initial value\n const defaultValue = this.defaultValue()\n if (!this.control) {\n if (defaultValue) {\n this.value.set(defaultValue)\n }\n return\n }\n\n const subscription = this.control.statusChanges.subscribe((status) => {\n this.formControlStatus.set(status)\n })\n this.onDestroy(() => {\n subscription.unsubscribe()\n })\n\n const parent = this.getParentForm()\n\n runInInjectionContext(this.injector, () => {\n if (this.control) {\n const formSignal = allEventsSignal<T[] | undefined>(this.control)\n effect(() => {\n this.formControlContext.formEventData.set(formSignal())\n })\n }\n\n if (parent) {\n let prevPristine = this.control?.pristine || false\n parent.form.events.pipe(takeUntilDestroyed()).subscribe((event) => {\n if (event instanceof PristineChangeEvent) {\n if (event.pristine && !prevPristine) {\n // if this event fires with pristine status and the control was\n // previously not pristine, this means that the form was reset. There\n // isn't another way to determine form resets programmatically,\n // unfortunately.\n this.formSubmitted.set(false)\n }\n prevPristine = event.pristine\n } else if (event instanceof FormSubmittedEvent) {\n this.formSubmitted.set(true)\n this.control?.markAsDirty()\n }\n })\n parent.ngSubmit.pipe(takeUntilDestroyed()).subscribe(() => {\n if (this.formControlContext.isReactiveForm()) {\n // already accounted for in the above event subscription.\n return\n }\n this.formSubmitted.set(true)\n this.control?.markAsDirty()\n })\n }\n })\n }\n\n /** Convenience access to the underlying AbstractControl (can be null). */\n get control(): AbstractControl | null {\n return this.formControlContext.ngControl?.control ?? null\n }\n\n /**\n * Used to subscribe to form submit events.\n */\n private getParentForm(): NgForm | FormGroupDirective | null {\n if (!this.control) {\n return null\n }\n\n // Try to find NgForm first\n try {\n const ngForm = this.injector.get(NgForm, null)\n if (ngForm) {\n return ngForm\n }\n } catch {}\n\n // Fall back to FormGroupDirective\n try {\n const formGroupDirective = this.injector.get(FormGroupDirective, null)\n if (formGroupDirective) {\n return formGroupDirective\n }\n } catch {}\n\n return null\n }\n\n /*\n * Control value accessor methods\n */\n writeValue(value: any): void {\n this.value.set(value ?? [])\n }\n\n // placeholder\n protected onChange = (_value: any) => {}\n\n registerOnChange(fn: (value: any) => void): void {\n this.onChange = (_value) => {\n fn(_value)\n this.value.set(_value ?? [])\n }\n }\n\n protected onTouched = () => {}\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn\n }\n\n /**\n * NgModel never calls setDisabledState, but ReactiveForms does. Everything else\n * (writeValue, registerOnChange, registerOnTouched) is identical between Reactive\n * and Template forms.\n */\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled.set(isDisabled)\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"qualcomm-ui-angular-core-input.mjs","sources":["../../src/input/input-form-control-provider.ts","../../src/input/abstract-input-form-control.directive.ts","../../src/input/abstract-list-collection-form-control.directive.ts","../../src/input/qualcomm-ui-angular-core-input.ts"],"sourcesContent":["// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {\n computed,\n inject,\n InjectionToken,\n type Signal,\n signal,\n type WritableSignal,\n} from \"@angular/core\"\nimport {NgControl, NgModel} from \"@angular/forms\"\n\nimport type {FormEventData} from \"@qualcomm-ui/angular-core/forms\"\n\nexport interface InputFormControlContext<T> {\n control?: NgControl[\"control\"] | null\n /**\n * Computed error message from the underlying control.\n */\n errorText: Signal<string | undefined | null>\n formEventData: WritableSignal<FormEventData<T | undefined> | null>\n /** `true` when used with reactive-forms (`formControl`, `formControlName`). */\n isReactiveForm: () => boolean\n /** `true` when used with template-driven forms (`[(ngModel)]`, `ngModel`). */\n isTemplateDrivenForm: () => boolean\n ngControl: NgControl | null\n}\n\nexport type FormControlKnownErrors = Record<\n string,\n ((error: any) => string) | undefined\n>\n\nconst defaultErrors: FormControlKnownErrors = {\n email: () => \"Invalid email\",\n max: (err) => `Max: ${err.max}`,\n maxLength: (err) => `Max length: ${err.maxLength}`,\n min: (err) => `Min: ${err.min}`,\n minLength: (err) => `Min length: ${err.requiredLength}`,\n pattern: () => \"Invalid format\",\n required: () => \"This field is required\",\n requiredTrue: () => \"Required\",\n}\n\n/**\n * Override the default error messages for known form control errors.\n *\n * The defaults are as follows:\n * ```angular-html\n * const defaultKnownErrors: FormControlKnownErrors = {\n * email: () => \"Invalid email\",\n * max: (err) => `Max: ${err.max}`,\n * maxLength: (err) => `Max length: ${err.maxLength}`,\n * min: (err) => `Min: ${err.min}`,\n * minLength: (err) => `Min length: ${err.requiredLength}`,\n * pattern: () => \"Invalid format\",\n * required: () => \"This field is required\",\n * requiredTrue: () => \"This field is required\",\n * }\n * ```\n */\nexport const FORM_CONTROL_ERROR_MESSAGE_PROVIDER = new InjectionToken<\n Partial<FormControlKnownErrors>\n>(\"FormControlErrorProvider\")\n\nexport const INPUT_FORM_CONTROL_CONTEXT = new InjectionToken<\n InputFormControlContext<any>\n>(\"InputFormControl\")\n\nexport function initInputFormControl<T = string>(): InputFormControlContext<T> {\n const ngControl: NgControl | null = inject(NgControl, {\n optional: true,\n self: true,\n })\n\n const knownErrors: FormControlKnownErrors = {\n ...defaultErrors,\n ...(inject(FORM_CONTROL_ERROR_MESSAGE_PROVIDER, {optional: true}) ?? {}),\n }\n\n const formEventData = signal<FormEventData<T | undefined> | null>(null)\n\n function isTemplateDrivenForm(): boolean {\n return ngControl instanceof NgModel\n }\n\n function isReactiveForm(): boolean {\n // Any NgControl that is *not* NgModel belongs to the reactive-forms package\n return !!ngControl && !isTemplateDrivenForm()\n }\n\n return {\n control: ngControl?.control ?? null,\n errorText: computed(() => {\n // make this reactive so that the error message is updated when the form state\n // changes.\n formEventData()\n const errors = ngControl?.control?.errors ?? {}\n const [errorKey, errorValue] = Object.entries(errors)[0] ?? []\n if (errorKey && knownErrors[errorKey]) {\n return knownErrors[errorKey](errorValue)\n }\n return errors[\"errorText\"] ?? errors[\"error\"] ?? null\n }),\n formEventData,\n isReactiveForm,\n isTemplateDrivenForm,\n ngControl,\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {\n afterNextRender,\n booleanAttribute,\n computed,\n Directive,\n effect,\n inject,\n Injector,\n input,\n isDevMode,\n linkedSignal,\n type OnInit,\n runInInjectionContext,\n signal,\n} from \"@angular/core\"\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\"\nimport {\n type AbstractControl,\n type ControlValueAccessor,\n type FormControlStatus,\n FormGroupDirective,\n FormSubmittedEvent,\n NgForm,\n PristineChangeEvent,\n Validators,\n} from \"@angular/forms\"\n\nimport {useOnDestroy} from \"@qualcomm-ui/angular-core/common\"\nimport {allEventsSignal} from \"@qualcomm-ui/angular-core/forms\"\nimport type {Booleanish} from \"@qualcomm-ui/utils/coercion\"\nimport {defined, isDefined} from \"@qualcomm-ui/utils/guard\"\n\nimport {initInputFormControl} from \"./input-form-control-provider\"\n\n@Directive()\nexport abstract class AbstractInputFormControlDirective\n implements ControlValueAccessor, OnInit\n{\n /**\n * The initial state of the input when rendered. Use when you don't\n * need to control the checked state of the input. This property will be\n * ignored if you opt into controlled state via form control bindings.\n */\n readonly defaultValue = input<string | undefined>(undefined)\n\n /**\n * Controls whether the input is disabled in template-driven forms. When true,\n * prevents user interaction and applies visual styling to indicate the disabled\n * state.\n */\n readonly disabled = input<boolean | undefined, Booleanish>(undefined, {\n transform: booleanAttribute,\n })\n\n /**\n * Controls the visual error state of the input. When true, applies semantic error\n * styling to indicate validation failure.\n */\n readonly invalid = input<boolean | undefined, Booleanish>(undefined, {\n transform: booleanAttribute,\n })\n\n /**\n * The name of the input field. Useful for form submission.\n */\n readonly name = input<string | undefined>()\n\n /**\n * Whether the input is read-only. When true, prevents user interaction while\n * keeping the input focusable and visible.\n */\n readonly readOnly = input<boolean | undefined, Booleanish>(undefined, {\n transform: booleanAttribute,\n })\n\n /**\n * Controls whether the input is required in template-driven forms. When\n * true, the input must have a value for form validation to pass.\n */\n readonly required = input<boolean | undefined, Booleanish>(undefined, {\n transform: booleanAttribute,\n })\n\n /* the internal \"value\" state of the input */\n protected readonly value = signal<string>(\"\")\n protected readonly onDestroy = useOnDestroy()\n protected readonly injector = inject(Injector)\n protected readonly formControlStatus = signal<FormControlStatus | undefined>(\n undefined,\n )\n protected readonly formSubmitted = signal(false)\n\n readonly formControlContext = initInputFormControl()\n\n /**\n * If the component is bound to an Angular AbstractControl, its state wins.\n * If not, fall back to the host attribute.\n */\n protected readonly isDisabled = linkedSignal(() => {\n /**\n * When the component is bound to any AbstractControl, status is guaranteed to\n * be non-undefined.\n */\n const status = this.formControlStatus()\n const disabled = this.disabled()\n if (status !== undefined) {\n return status === \"DISABLED\"\n }\n\n return !!disabled\n })\n\n readonly isInvalid = computed(() => {\n const formEventData = this.formControlContext.formEventData()\n this.formSubmitted()\n const isInvalidDefined = defined(this.invalid())\n const invalidProp = this.invalid() || false\n if (!this.control) {\n return invalidProp\n }\n\n let invalid, touched, dirty\n\n if (this.formControlContext.isTemplateDrivenForm()) {\n invalid = isInvalidDefined ? invalidProp : this.control.invalid\n touched = this.control.touched\n dirty = this.control.dirty\n } else if (formEventData) {\n invalid = formEventData.invalid\n touched = formEventData.touched\n dirty = formEventData.dirty\n } else {\n return invalidProp\n }\n\n switch (this.control.updateOn) {\n case \"submit\":\n return invalid\n case \"blur\":\n return invalid && touched\n default:\n // \"change\"\n return dirty && invalid\n }\n })\n\n readonly isRequired = linkedSignal(() => {\n const control = this.control\n const required = this.required()\n if (!control || !this.formControlContext.isReactiveForm()) {\n return required\n }\n\n if (typeof control.hasValidator === \"function\") {\n return (\n control.hasValidator(Validators.required) ||\n control.hasValidator(Validators.requiredTrue)\n )\n }\n return false\n })\n\n constructor() {\n if (this.formControlContext.ngControl) {\n this.formControlContext.ngControl.valueAccessor = this\n this.value.set(this.formControlContext.ngControl.control?.value || \"\")\n }\n\n afterNextRender(() => {\n if (\n isDefined(this.required()) &&\n this.formControlContext.isReactiveForm() &&\n isDevMode()\n ) {\n console.warn(\n \"The required attribute is not supported on reactive forms. Use Validators instead. https://angular.dev/guide/forms/form-validation#validating-input-in-reactive-forms\",\n )\n }\n })\n\n effect(() => {\n const required = this.required()\n if (this.control && this.formControlContext.isTemplateDrivenForm()) {\n if (required) {\n this.control.addValidators(Validators.required)\n } else if (this.control.hasValidator(Validators.required)) {\n this.control.removeValidators(Validators.required)\n }\n }\n })\n }\n\n ngOnInit() {\n // Ensure the form control receives the initial value\n const defaultValue = this.defaultValue()\n if (!this.control && defaultValue) {\n this.value.set(defaultValue)\n } else if (this.control) {\n const subscription = this.control.statusChanges.subscribe((status) => {\n this.formControlStatus.set(status)\n })\n this.onDestroy(() => {\n subscription.unsubscribe()\n })\n\n const parent = this.getParentForm()\n\n runInInjectionContext(this.injector, () => {\n if (this.control) {\n const formSignal = allEventsSignal<string | undefined>(this.control)\n effect(() => {\n this.formControlContext.formEventData.set(formSignal())\n })\n }\n\n if (parent) {\n let prevPristine = this.control?.pristine || false\n parent.form.events.pipe(takeUntilDestroyed()).subscribe((event) => {\n if (event instanceof PristineChangeEvent) {\n if (event.pristine && !prevPristine) {\n // if this event fires with pristine status and the control was\n // previously not pristine, this means that the form was reset. There\n // isn't another way to determine form resets programmatically,\n // unfortunately.\n this.formSubmitted.set(false)\n }\n prevPristine = event.pristine\n } else if (event instanceof FormSubmittedEvent) {\n this.formSubmitted.set(true)\n this.control?.markAsDirty()\n }\n })\n parent.ngSubmit.pipe(takeUntilDestroyed()).subscribe(() => {\n if (this.formControlContext.isReactiveForm()) {\n // already accounted for in the above event subscription.\n return\n }\n this.formSubmitted.set(true)\n this.control?.markAsDirty()\n })\n }\n })\n }\n }\n\n /** Convenience access to the underlying AbstractControl (can be null). */\n get control(): AbstractControl | null {\n return this.formControlContext.ngControl?.control ?? null\n }\n\n /**\n * Used to subscribe to form submit events.\n */\n private getParentForm(): NgForm | FormGroupDirective | null {\n if (!this.control) {\n return null\n }\n\n // Try to find NgForm first\n try {\n const ngForm = this.injector.get(NgForm, null)\n if (ngForm) {\n return ngForm\n }\n } catch {}\n\n // Fall back to FormGroupDirective\n try {\n const formGroupDirective = this.injector.get(FormGroupDirective, null)\n if (formGroupDirective) {\n return formGroupDirective\n }\n } catch {}\n\n return null\n }\n\n /*\n * Control value accessor methods\n */\n writeValue(value: any): void {\n this.value.set(value)\n }\n\n // placeholder\n protected onChange = (_value: any) => {}\n\n registerOnChange(fn: (value: any) => void): void {\n this.onChange = (_value) => {\n fn(_value)\n this.value.set(_value)\n }\n }\n\n protected onTouched = () => {}\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn\n }\n\n /**\n * NgModel never calls setDisabledState, but ReactiveForms does. Everything else\n * (writeValue, registerOnChange, registerOnTouched) is identical between Reactive\n * and Template forms.\n */\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled.set(isDisabled)\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {\n afterNextRender,\n booleanAttribute,\n computed,\n Directive,\n effect,\n inject,\n Injector,\n input,\n isDevMode,\n linkedSignal,\n type OnInit,\n runInInjectionContext,\n signal,\n} from \"@angular/core\"\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\"\nimport {\n type AbstractControl,\n type ControlValueAccessor,\n type FormControlStatus,\n FormGroupDirective,\n FormSubmittedEvent,\n NgForm,\n PristineChangeEvent,\n Validators,\n} from \"@angular/forms\"\n\nimport {useOnDestroy} from \"@qualcomm-ui/angular-core/common\"\nimport {allEventsSignal} from \"@qualcomm-ui/angular-core/forms\"\nimport type {Booleanish} from \"@qualcomm-ui/utils/coercion\"\nimport {\n type CollectionItem,\n ListCollection,\n} from \"@qualcomm-ui/utils/collection\"\nimport {defined, isDefined} from \"@qualcomm-ui/utils/guard\"\n\nimport {initInputFormControl} from \"./input-form-control-provider\"\n\n@Directive()\nexport abstract class AbstractBaseListCollectionFormControlDirective<\n T extends CollectionItem,\n >\n implements ControlValueAccessor, OnInit\n{\n /**\n * The initial value of the input when rendered. Use when you don't need to\n * control the value of the input. This property will be ignored if you\n * opt into controlled state via form control bindings.\n *\n * @inheritDoc\n */\n readonly defaultValue = input<T[] | undefined>(undefined)\n\n /**\n * Controls whether the input is disabled in template-driven forms. When true,\n * prevents user interaction and applies visual styling to indicate the disabled\n * state.\n */\n readonly disabled = input<boolean | undefined, Booleanish>(undefined, {\n transform: booleanAttribute,\n })\n\n /**\n * Controls the visual error state of the input. When true, applies semantic error\n * styling to indicate validation failure.\n */\n readonly invalid = input<boolean | undefined, Booleanish>(undefined, {\n transform: booleanAttribute,\n })\n\n /**\n * The name of the input field. Useful for form submission.\n */\n readonly name = input<string | undefined>()\n\n /**\n * Whether the input is read-only. When true, prevents user interaction while\n * keeping the input focusable and visible.\n */\n readonly readOnly = input<boolean | undefined, Booleanish>(undefined, {\n transform: booleanAttribute,\n })\n\n /**\n * Controls whether the input is required in template-driven forms. When\n * true, the input must have a value for form validation to pass.\n */\n readonly required = input<boolean | undefined, Booleanish>(undefined, {\n transform: booleanAttribute,\n })\n\n /* the internal \"value\" state of the input */\n protected readonly value = signal<T[]>([])\n protected readonly onDestroy = useOnDestroy()\n protected readonly injector = inject(Injector)\n protected readonly formControlStatus = signal<FormControlStatus | undefined>(\n undefined,\n )\n protected readonly formSubmitted = signal(false)\n\n readonly formControlContext = initInputFormControl<T[]>()\n\n /**\n * If the component is bound to an Angular AbstractControl, its state wins.\n * If not, fall back to the host attribute.\n */\n protected readonly isDisabled = linkedSignal(() => {\n /**\n * When the component is bound to any AbstractControl, status is guaranteed to\n * be non-undefined.\n */\n const status = this.formControlStatus()\n const disabled = this.disabled()\n if (status !== undefined) {\n return status === \"DISABLED\"\n }\n\n return !!disabled\n })\n\n readonly isInvalid = computed(() => {\n const formEventData = this.formControlContext.formEventData()\n this.formSubmitted()\n const isInvalidDefined = defined(this.invalid())\n const invalidProp = this.invalid() || false\n if (!this.control) {\n return invalidProp\n }\n\n let invalid, touched, dirty\n\n if (this.formControlContext.isTemplateDrivenForm()) {\n invalid = isInvalidDefined ? invalidProp : this.control.invalid\n touched = this.control.touched\n dirty = this.control.dirty\n } else if (formEventData) {\n invalid = formEventData.invalid\n touched = formEventData.touched\n dirty = formEventData.dirty\n } else {\n return invalidProp\n }\n\n switch (this.control.updateOn) {\n case \"submit\":\n return invalid\n case \"blur\":\n return invalid && touched\n default:\n // \"change\"\n return dirty && invalid\n }\n })\n\n readonly isRequired = linkedSignal(() => {\n const control = this.control\n const required = this.required()\n if (!control || !this.formControlContext.isReactiveForm()) {\n return required\n }\n\n if (typeof control.hasValidator === \"function\") {\n return (\n control.hasValidator(Validators.required) ||\n control.hasValidator(Validators.requiredTrue)\n )\n }\n return false\n })\n\n constructor() {\n if (this.formControlContext.ngControl) {\n this.formControlContext.ngControl.valueAccessor = this\n this.value.set(this.formControlContext.ngControl.control?.value || [])\n }\n\n afterNextRender(() => {\n if (\n isDefined(this.required()) &&\n this.formControlContext.isReactiveForm() &&\n isDevMode()\n ) {\n console.warn(\n \"The required attribute is not supported on reactive forms. Use Validators instead. https://angular.dev/guide/forms/form-validation#validating-input-in-reactive-forms\",\n )\n }\n })\n\n effect(() => {\n const required = this.required()\n const isRequired = this.isRequired()\n if (!this.control) {\n return\n }\n if (this.formControlContext.isTemplateDrivenForm()) {\n if (required) {\n this.control.addValidators([\n Validators.required,\n Validators.minLength(1),\n ])\n } else if (\n this.control.hasValidator(Validators.required) &&\n this.control.hasValidator(Validators.minLength(1))\n ) {\n this.control.removeValidators([\n Validators.required,\n Validators.minLength(1),\n ])\n }\n } else if (isRequired) {\n this.control.addValidators(Validators.minLength(1))\n }\n })\n }\n\n ngOnInit() {\n // Ensure the form control receives the initial value\n const defaultValue = this.defaultValue()\n if (!this.control) {\n if (defaultValue) {\n this.value.set(defaultValue)\n }\n return\n }\n\n const subscription = this.control.statusChanges.subscribe((status) => {\n this.formControlStatus.set(status)\n })\n this.onDestroy(() => {\n subscription.unsubscribe()\n })\n\n const parent = this.getParentForm()\n\n runInInjectionContext(this.injector, () => {\n if (this.control) {\n const formSignal = allEventsSignal<T[] | undefined>(this.control)\n effect(() => {\n this.formControlContext.formEventData.set(formSignal())\n })\n }\n\n if (parent) {\n let prevPristine = this.control?.pristine || false\n parent.form.events.pipe(takeUntilDestroyed()).subscribe((event) => {\n if (event instanceof PristineChangeEvent) {\n if (event.pristine && !prevPristine) {\n // if this event fires with pristine status and the control was\n // previously not pristine, this means that the form was reset. There\n // isn't another way to determine form resets programmatically,\n // unfortunately.\n this.formSubmitted.set(false)\n }\n prevPristine = event.pristine\n } else if (event instanceof FormSubmittedEvent) {\n this.formSubmitted.set(true)\n this.control?.markAsDirty()\n }\n })\n parent.ngSubmit.pipe(takeUntilDestroyed()).subscribe(() => {\n if (this.formControlContext.isReactiveForm()) {\n // already accounted for in the above event subscription.\n return\n }\n this.formSubmitted.set(true)\n this.control?.markAsDirty()\n })\n }\n })\n }\n\n /** Convenience access to the underlying AbstractControl (can be null). */\n get control(): AbstractControl | null {\n return this.formControlContext.ngControl?.control ?? null\n }\n\n /**\n * Used to subscribe to form submit events.\n */\n private getParentForm(): NgForm | FormGroupDirective | null {\n if (!this.control) {\n return null\n }\n\n // Try to find NgForm first\n try {\n const ngForm = this.injector.get(NgForm, null)\n if (ngForm) {\n return ngForm\n }\n } catch {}\n\n // Fall back to FormGroupDirective\n try {\n const formGroupDirective = this.injector.get(FormGroupDirective, null)\n if (formGroupDirective) {\n return formGroupDirective\n }\n } catch {}\n\n return null\n }\n\n /*\n * Control value accessor methods\n */\n writeValue(value: any): void {\n this.value.set(value ?? [])\n }\n\n // placeholder\n protected onChange = (_value: any) => {}\n\n registerOnChange(fn: (value: any) => void): void {\n this.onChange = (_value) => {\n fn(_value)\n this.value.set(_value ?? [])\n }\n }\n\n protected onTouched = () => {}\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn\n }\n\n /**\n * NgModel never calls setDisabledState, but ReactiveForms does. Everything else\n * (writeValue, registerOnChange, registerOnTouched) is identical between Reactive\n * and Template forms.\n */\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled.set(isDisabled)\n }\n}\n\n@Directive()\nexport abstract class AbstractListCollectionFormControlDirective<\n T extends CollectionItem,\n> extends AbstractBaseListCollectionFormControlDirective<T> {\n /**\n * The item collection\n *\n * @inheritDoc\n */\n readonly collection = input.required<ListCollection<T>>()\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"qualcomm-ui-angular-core-pagination.mjs","sources":["../../src/pagination/pagination-context.service.ts","../../src/pagination/core-pagination-next-trigger.directive.ts","../../src/pagination/core-pagination-page-item.directive.ts","../../src/pagination/core-pagination-page-items.directive.ts","../../src/pagination/core-pagination-page-metadata.directive.ts","../../src/pagination/core-pagination-page-size-label.directive.ts","../../src/pagination/core-pagination-page-size.directive.ts","../../src/pagination/core-pagination-prev-trigger.directive.ts","../../src/pagination/core-pagination-root.directive.ts","../../src/pagination/qualcomm-ui-angular-core-pagination.ts"],"sourcesContent":["// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {Injectable} from \"@angular/core\"\n\nimport {\n type ApiContext,\n BaseApiContextService,\n createApiContext,\n} from \"@qualcomm-ui/angular-core/machine\"\nimport type {PaginationApi} from \"@qualcomm-ui/core/pagination\"\n\n@Injectable()\nexport class PaginationContextService extends BaseApiContextService<PaginationApi> {}\n\nexport const [\n PAGINATION_CONTEXT,\n usePaginationContext,\n providePaginationContext,\n]: ApiContext<PaginationApi> = createApiContext<PaginationApi>(\n \"PaginationContext\",\n PaginationContextService,\n)\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {Directive, type OnInit} from \"@angular/core\"\n\nimport {useTrackBindings} from \"@qualcomm-ui/angular-core/machine\"\n\nimport {usePaginationContext} from \"./pagination-context.service\"\n\n@Directive()\nexport class CorePaginationNextTriggerDirective implements OnInit {\n readonly paginationContext = usePaginationContext()\n\n private readonly trackBindings = useTrackBindings(() =>\n this.paginationContext().getNextTriggerBindings(),\n )\n\n ngOnInit() {\n this.trackBindings()\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {computed, Directive, input, type OnInit} from \"@angular/core\"\n\nimport {useTrackBindings} from \"@qualcomm-ui/angular-core/machine\"\nimport type {PageItem} from \"@qualcomm-ui/core/pagination\"\n\nimport {usePaginationContext} from \"./pagination-context.service\"\n\n@Directive()\nexport class CorePaginationPageItemDirective implements OnInit {\n readonly paginationContext = usePaginationContext()\n\n /**\n * The computed page item from context.\n */\n readonly item = input.required<PageItem>()\n\n readonly itemProps = computed(() =>\n this.paginationContext().getPageItemBindings(this.item()),\n )\n\n private trackBindings = useTrackBindings(() => this.itemProps())\n\n ngOnInit() {\n this.trackBindings()\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {Directive, type OnInit} from \"@angular/core\"\n\nimport {useTrackBindings} from \"@qualcomm-ui/angular-core/machine\"\nimport type {PageItem} from \"@qualcomm-ui/core/pagination\"\n\nimport {usePaginationContext} from \"./pagination-context.service\"\n\n@Directive()\nexport class CorePaginationPageItemsDirective implements OnInit {\n readonly paginationContext = usePaginationContext()\n\n protected trackPageItem = (item: PageItem, itemIndex: number) => {\n return item.type === \"separator\" ? itemIndex : `${item.type}-${item.page}`\n }\n\n private readonly trackBindings = useTrackBindings(() =>\n this.paginationContext().getPageItemsBindings(),\n )\n\n ngOnInit() {\n this.trackBindings()\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {Directive, type OnInit} from \"@angular/core\"\n\nimport {useTrackBindings} from \"@qualcomm-ui/angular-core/machine\"\n\nimport {usePaginationContext} from \"./pagination-context.service\"\n\n@Directive()\nexport class CorePaginationPageMetadataDirective implements OnInit {\n readonly paginationContext = usePaginationContext()\n\n private readonly trackBindings = useTrackBindings(() =>\n this.paginationContext().getPageMetadataBindings(),\n )\n\n ngOnInit() {\n this.trackBindings()\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {computed, Directive, input, type OnInit} from \"@angular/core\"\n\nimport {useId, useOnDestroy} from \"@qualcomm-ui/angular-core/common\"\nimport {useTrackBindings} from \"@qualcomm-ui/angular-core/machine\"\n\nimport {usePaginationContext} from \"./pagination-context.service\"\n\n@Directive()\nexport class CorePaginationPageSizeLabelDirective implements OnInit {\n readonly paginationContext = usePaginationContext()\n\n readonly id = input<string>()\n\n private readonly hostId = computed(() => useId(this, this.id()))\n\n private readonly onDestroy = useOnDestroy()\n\n private readonly trackBindings = useTrackBindings(() =>\n this.paginationContext().getPageSizeLabelBindings({\n id: this.hostId(),\n onDestroy: this.onDestroy,\n }),\n )\n\n ngOnInit() {\n this.trackBindings()\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {computed, Directive, input, type OnInit} from \"@angular/core\"\n\nimport {useTrackBindings} from \"@qualcomm-ui/angular-core/machine\"\n\nimport {usePaginationContext} from \"./pagination-context.service\"\n\n@Directive()\nexport class CorePaginationPageSizeDirective implements OnInit {\n readonly paginationContext = usePaginationContext()\n\n /**\n * Available page sizes to choose from.\n */\n readonly options = input.required<number[]>()\n\n readonly menuOptions = computed<string[]>(() =>\n this.options().map((opt) => `${opt}`),\n )\n\n readonly inputAriaLabel = computed(() => {\n const pageSizeLabelId = this.paginationContext().pageSizeLabelId\n return pageSizeLabelId ? undefined : \"Page Size\"\n })\n\n readonly inputAriaLabelledBy = computed(() => {\n return this.paginationContext().pageSizeLabelId || undefined\n })\n\n protected inputOptionChanged(value: string) {\n this.paginationContext().setPageSize(parseInt(value))\n }\n\n readonly currentValue = computed<string>(() => {\n return `${this.paginationContext().pageSize}`\n })\n\n private readonly trackBindings = useTrackBindings(() =>\n this.paginationContext().getPageSizeBindings(),\n )\n\n ngOnInit() {\n this.trackBindings()\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {Directive, type OnInit} from \"@angular/core\"\n\nimport {useTrackBindings} from \"@qualcomm-ui/angular-core/machine\"\n\nimport {usePaginationContext} from \"./pagination-context.service\"\n\n@Directive()\nexport class CorePaginationPrevTriggerDirective implements OnInit {\n readonly paginationContext = usePaginationContext()\n\n private readonly trackBindings = useTrackBindings(() =>\n this.paginationContext().getPrevTriggerBindings(),\n )\n\n ngOnInit() {\n this.trackBindings()\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {\n computed,\n Directive,\n inject,\n Injector,\n input,\n numberAttribute,\n type OnInit,\n output,\n} from \"@angular/core\"\n\nimport {numberAttributeOrUndefined} from \"@qualcomm-ui/angular-core/attributes\"\nimport {\n normalizeProps,\n useMachine,\n useTrackBindings,\n} from \"@qualcomm-ui/angular-core/machine\"\nimport type {SignalifyInput} from \"@qualcomm-ui/angular-core/signals\"\nimport {\n createPaginationApi,\n type PaginationApiProps,\n paginationMachine,\n} from \"@qualcomm-ui/core/pagination\"\nimport type {NumberInput} from \"@qualcomm-ui/utils/coercion\"\nimport type {Explicit} from \"@qualcomm-ui/utils/guard\"\n\nimport {PaginationContextService} from \"./pagination-context.service\"\n\n@Directive()\nexport class CorePaginationRootDirective\n implements SignalifyInput<PaginationApiProps>, OnInit\n{\n /**\n * Number of always visible pages at the beginning and end.\n *\n * @default 1\n */\n readonly boundaryCount = input<number | undefined, NumberInput>(undefined, {\n transform: numberAttributeOrUndefined,\n })\n\n /**\n * The total number of records.\n *\n * @default 1\n */\n readonly count = input.required<number, NumberInput>({\n transform: numberAttribute,\n })\n\n /**\n * The page selected by default.\n *\n * @default 1\n */\n readonly defaultPage = input<number | undefined, NumberInput>(undefined, {\n transform: numberAttributeOrUndefined,\n })\n\n /**\n * The default number of data items to show per page.\n *\n * @default 1\n */\n readonly defaultPageSize = input<number | undefined, NumberInput>(undefined, {\n transform: numberAttributeOrUndefined,\n })\n\n /**\n * aria-label for the next-page button\n *\n * @default 'Go to next page'\n */\n readonly nextPageAriaLabel = input<string>(\"Go to next page\")\n\n /**\n * Override the default aria-label for each page button.\n *\n * @default (page: number) => `Go to page ${page}`\n */\n readonly pageAriaLabel = input<(page: number) => string>(\n (page: number) => `Go to page ${page}`,\n )\n\n /**\n * aria-label for the prev-page button\n *\n * @default 'Go to previous page'\n */\n readonly prevPageAriaLabel = input<string>(\"Go to previous page\")\n\n /**\n * The current page (controlled).\n */\n readonly page = input<number | undefined, NumberInput>(undefined, {\n transform: numberAttributeOrUndefined,\n })\n\n /**\n * The number of items to show per page.\n *\n * @default 1\n */\n readonly pageSize = input<number | undefined, NumberInput>(undefined, {\n transform: numberAttributeOrUndefined,\n })\n\n /**\n * Number of always visible pages before and after the current page.\n *\n * @default 1\n */\n readonly siblingCount = input<number | undefined, NumberInput>(undefined, {\n transform: numberAttributeOrUndefined,\n })\n\n /**\n * Callback fired when the page value changes.\n */\n readonly pageChanged = output<number>()\n\n /**\n * Callback fired when the page size changes.\n */\n readonly pageSizeChanged = output<number>()\n\n protected readonly trackBindings = useTrackBindings(() =>\n this.paginationContext.context().getRootBindings(),\n )\n\n private readonly paginationContext = inject(PaginationContextService)\n\n private readonly injector = inject(Injector)\n\n ngOnInit() {\n const machine = useMachine(\n paginationMachine,\n computed<Explicit<PaginationApiProps>>(() => ({\n boundaryCount: this.boundaryCount(),\n count: this.count(),\n defaultPage: this.defaultPage(),\n defaultPageSize: this.defaultPageSize(),\n nextPageAriaLabel: this.nextPageAriaLabel(),\n onPageChange: (page) => {\n this.pageChanged.emit(page)\n },\n onPageSizeChange: (pageSize) => {\n this.pageSizeChanged.emit(pageSize)\n },\n page: this.page(),\n pageAriaLabel: this.pageAriaLabel(),\n pageSize: this.pageSize(),\n prevPageAriaLabel: this.prevPageAriaLabel(),\n siblingCount: this.siblingCount(),\n })),\n this.injector,\n )\n\n this.paginationContext.init(\n computed(() => createPaginationApi(machine, normalizeProps)),\n )\n\n this.trackBindings()\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"qualcomm-ui-angular-core-pagination.mjs","sources":["../../src/pagination/pagination-context.service.ts","../../src/pagination/core-pagination-next-trigger.directive.ts","../../src/pagination/core-pagination-page-item.directive.ts","../../src/pagination/core-pagination-page-items.directive.ts","../../src/pagination/core-pagination-page-metadata.directive.ts","../../src/pagination/core-pagination-page-size-label.directive.ts","../../src/pagination/core-pagination-page-size.directive.ts","../../src/pagination/core-pagination-prev-trigger.directive.ts","../../src/pagination/core-pagination-root.directive.ts","../../src/pagination/qualcomm-ui-angular-core-pagination.ts"],"sourcesContent":["// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {Injectable} from \"@angular/core\"\n\nimport {\n type ApiContext,\n BaseApiContextService,\n createApiContext,\n} from \"@qualcomm-ui/angular-core/machine\"\nimport type {PaginationApi} from \"@qualcomm-ui/core/pagination\"\n\n@Injectable()\nexport class PaginationContextService extends BaseApiContextService<PaginationApi> {}\n\nexport const [\n PAGINATION_CONTEXT,\n usePaginationContext,\n providePaginationContext,\n]: ApiContext<PaginationApi> = createApiContext<PaginationApi>(\n \"PaginationContext\",\n PaginationContextService,\n)\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {Directive, type OnInit} from \"@angular/core\"\n\nimport {useTrackBindings} from \"@qualcomm-ui/angular-core/machine\"\n\nimport {usePaginationContext} from \"./pagination-context.service\"\n\n@Directive()\nexport class CorePaginationNextTriggerDirective implements OnInit {\n readonly paginationContext = usePaginationContext()\n\n protected readonly trackBindings = useTrackBindings(() =>\n this.paginationContext().getNextTriggerBindings(),\n )\n\n ngOnInit() {\n this.trackBindings()\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {computed, Directive, input, type OnInit} from \"@angular/core\"\n\nimport {useTrackBindings} from \"@qualcomm-ui/angular-core/machine\"\nimport type {PageItem} from \"@qualcomm-ui/core/pagination\"\n\nimport {usePaginationContext} from \"./pagination-context.service\"\n\n@Directive()\nexport class CorePaginationPageItemDirective implements OnInit {\n readonly paginationContext = usePaginationContext()\n\n /**\n * The computed page item from context.\n */\n readonly item = input.required<PageItem>()\n\n readonly itemProps = computed(() =>\n this.paginationContext().getPageItemBindings(this.item()),\n )\n\n protected trackBindings = useTrackBindings(() => this.itemProps())\n\n ngOnInit() {\n this.trackBindings()\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {Directive, type OnInit} from \"@angular/core\"\n\nimport {useTrackBindings} from \"@qualcomm-ui/angular-core/machine\"\nimport type {PageItem} from \"@qualcomm-ui/core/pagination\"\n\nimport {usePaginationContext} from \"./pagination-context.service\"\n\n@Directive()\nexport class CorePaginationPageItemsDirective implements OnInit {\n readonly paginationContext = usePaginationContext()\n\n protected trackPageItem = (item: PageItem, itemIndex: number) => {\n return item.type === \"separator\" ? itemIndex : `${item.type}-${item.page}`\n }\n\n private readonly trackBindings = useTrackBindings(() =>\n this.paginationContext().getPageItemsBindings(),\n )\n\n ngOnInit() {\n this.trackBindings()\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {Directive, type OnInit} from \"@angular/core\"\n\nimport {useTrackBindings} from \"@qualcomm-ui/angular-core/machine\"\n\nimport {usePaginationContext} from \"./pagination-context.service\"\n\n@Directive()\nexport class CorePaginationPageMetadataDirective implements OnInit {\n readonly paginationContext = usePaginationContext()\n\n protected readonly trackBindings = useTrackBindings(() =>\n this.paginationContext().getPageMetadataBindings(),\n )\n\n ngOnInit() {\n this.trackBindings()\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {computed, Directive, input, type OnInit} from \"@angular/core\"\n\nimport {useId, useOnDestroy} from \"@qualcomm-ui/angular-core/common\"\nimport {useTrackBindings} from \"@qualcomm-ui/angular-core/machine\"\n\nimport {usePaginationContext} from \"./pagination-context.service\"\n\n@Directive()\nexport class CorePaginationPageSizeLabelDirective implements OnInit {\n readonly paginationContext = usePaginationContext()\n\n readonly id = input<string>()\n\n protected readonly hostId = computed(() => useId(this, this.id()))\n\n protected readonly onDestroy = useOnDestroy()\n\n protected readonly trackBindings = useTrackBindings(() =>\n this.paginationContext().getPageSizeLabelBindings({\n id: this.hostId(),\n onDestroy: this.onDestroy,\n }),\n )\n\n ngOnInit() {\n this.trackBindings()\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {computed, Directive, input, type OnInit} from \"@angular/core\"\n\nimport {useTrackBindings} from \"@qualcomm-ui/angular-core/machine\"\n\nimport {usePaginationContext} from \"./pagination-context.service\"\n\n@Directive()\nexport class CorePaginationPageSizeDirective implements OnInit {\n readonly paginationContext = usePaginationContext()\n\n /**\n * Available page sizes to choose from.\n */\n readonly options = input.required<number[]>()\n\n readonly menuOptions = computed<string[]>(() =>\n this.options().map((opt) => `${opt}`),\n )\n\n readonly inputAriaLabel = computed(() => {\n const pageSizeLabelId = this.paginationContext().pageSizeLabelId\n return pageSizeLabelId ? undefined : \"Page Size\"\n })\n\n readonly inputAriaLabelledBy = computed(() => {\n return this.paginationContext().pageSizeLabelId || undefined\n })\n\n protected inputOptionChanged(value: string) {\n this.paginationContext().setPageSize(parseInt(value))\n }\n\n readonly currentValue = computed<string>(() => {\n return `${this.paginationContext().pageSize}`\n })\n\n protected readonly trackBindings = useTrackBindings(() =>\n this.paginationContext().getPageSizeBindings(),\n )\n\n ngOnInit() {\n this.trackBindings()\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {Directive, type OnInit} from \"@angular/core\"\n\nimport {useTrackBindings} from \"@qualcomm-ui/angular-core/machine\"\n\nimport {usePaginationContext} from \"./pagination-context.service\"\n\n@Directive()\nexport class CorePaginationPrevTriggerDirective implements OnInit {\n readonly paginationContext = usePaginationContext()\n\n protected readonly trackBindings = useTrackBindings(() =>\n this.paginationContext().getPrevTriggerBindings(),\n )\n\n ngOnInit() {\n this.trackBindings()\n }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {\n computed,\n Directive,\n inject,\n Injector,\n input,\n numberAttribute,\n type OnInit,\n output,\n} from \"@angular/core\"\n\nimport {numberAttributeOrUndefined} from \"@qualcomm-ui/angular-core/attributes\"\nimport {\n normalizeProps,\n useMachine,\n useTrackBindings,\n} from \"@qualcomm-ui/angular-core/machine\"\nimport type {SignalifyInput} from \"@qualcomm-ui/angular-core/signals\"\nimport {\n createPaginationApi,\n type PaginationApiProps,\n paginationMachine,\n} from \"@qualcomm-ui/core/pagination\"\nimport type {NumberInput} from \"@qualcomm-ui/utils/coercion\"\nimport type {Explicit} from \"@qualcomm-ui/utils/guard\"\n\nimport {PaginationContextService} from \"./pagination-context.service\"\n\n@Directive()\nexport class CorePaginationRootDirective\n implements SignalifyInput<PaginationApiProps>, OnInit\n{\n /**\n * Number of always visible pages at the beginning and end.\n *\n * @default 1\n */\n readonly boundaryCount = input<number | undefined, NumberInput>(undefined, {\n transform: numberAttributeOrUndefined,\n })\n\n /**\n * The total number of records.\n *\n * @default 1\n */\n readonly count = input.required<number, NumberInput>({\n transform: numberAttribute,\n })\n\n /**\n * The page selected by default.\n *\n * @default 1\n */\n readonly defaultPage = input<number | undefined, NumberInput>(undefined, {\n transform: numberAttributeOrUndefined,\n })\n\n /**\n * The default number of data items to show per page.\n *\n * @default 1\n */\n readonly defaultPageSize = input<number | undefined, NumberInput>(undefined, {\n transform: numberAttributeOrUndefined,\n })\n\n /**\n * aria-label for the next-page button\n *\n * @default 'Go to next page'\n */\n readonly nextPageAriaLabel = input<string>(\"Go to next page\")\n\n /**\n * Override the default aria-label for each page button.\n *\n * @default (page: number) => `Go to page ${page}`\n */\n readonly pageAriaLabel = input<(page: number) => string>(\n (page: number) => `Go to page ${page}`,\n )\n\n /**\n * aria-label for the prev-page button\n *\n * @default 'Go to previous page'\n */\n readonly prevPageAriaLabel = input<string>(\"Go to previous page\")\n\n /**\n * The current page (controlled).\n */\n readonly page = input<number | undefined, NumberInput>(undefined, {\n transform: numberAttributeOrUndefined,\n })\n\n /**\n * The number of items to show per page.\n *\n * @default 1\n */\n readonly pageSize = input<number | undefined, NumberInput>(undefined, {\n transform: numberAttributeOrUndefined,\n })\n\n /**\n * Number of always visible pages before and after the current page.\n *\n * @default 1\n */\n readonly siblingCount = input<number | undefined, NumberInput>(undefined, {\n transform: numberAttributeOrUndefined,\n })\n\n /**\n * Callback fired when the page value changes.\n */\n readonly pageChanged = output<number>()\n\n /**\n * Callback fired when the page size changes.\n */\n readonly pageSizeChanged = output<number>()\n\n protected readonly trackBindings = useTrackBindings(() =>\n this.paginationContext.context().getRootBindings(),\n )\n\n private readonly paginationContext = inject(PaginationContextService)\n\n private readonly injector = inject(Injector)\n\n ngOnInit() {\n const machine = useMachine(\n paginationMachine,\n computed<Explicit<PaginationApiProps>>(() => ({\n boundaryCount: this.boundaryCount(),\n count: this.count(),\n defaultPage: this.defaultPage(),\n defaultPageSize: this.defaultPageSize(),\n nextPageAriaLabel: this.nextPageAriaLabel(),\n onPageChange: (page) => {\n this.pageChanged.emit(page)\n },\n onPageSizeChange: (pageSize) => {\n this.pageSizeChanged.emit(pageSize)\n },\n page: this.page(),\n pageAriaLabel: this.pageAriaLabel(),\n pageSize: this.pageSize(),\n prevPageAriaLabel: this.prevPageAriaLabel(),\n siblingCount: this.siblingCount(),\n })),\n this.injector,\n )\n\n this.paginationContext.init(\n computed(() => createPaginationApi(machine, normalizeProps)),\n )\n\n this.trackBindings()\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}