UNPKG

@abgov/angular-components

Version:

Government of Alberta - UI components for Angular

118 lines 11.2 kB
import { CUSTOM_ELEMENTS_SCHEMA, Component, EventEmitter, Input, Output, forwardRef, ElementRef, HostListener, } from "@angular/core"; import { NG_VALUE_ACCESSOR } from "@angular/forms"; import { GoabControlValueAccessor } from "../base.component"; import * as i0 from "@angular/core"; export class GoabDatePicker extends GoabControlValueAccessor { formatValue(val) { if (!val) return ""; if (val instanceof Date) { return val.toISOString(); } return val; } _onChange(e) { const detail = e.detail; this.onChange.emit(detail); this.markAsTouched(); this.fcChange?.(detail.value); } constructor(elementRef) { super(); this.elementRef = elementRef; this.onChange = new EventEmitter(); } setDisabledState(isDisabled) { this.disabled = isDisabled; this.elementRef.nativeElement.disabled = isDisabled; } listenDisabledChange(isDisabled) { this.setDisabledState(isDisabled); } writeValue(value) { this.value = value; const datePickerEl = this.elementRef?.nativeElement?.querySelector("goa-date-picker"); if (datePickerEl) { if (!value) { datePickerEl.setAttribute("value", ""); } else { datePickerEl.setAttribute("value", value instanceof Date ? value.toISOString() : value); } } } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: GoabDatePicker, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.3", type: GoabDatePicker, isStandalone: true, selector: "goab-date-picker", inputs: { name: "name", value: "value", min: "min", max: "max", type: "type", relative: "relative" }, outputs: { onChange: "onChange" }, host: { listeners: { "disabledChange": "listenDisabledChange($event.detail.disabled)" } }, providers: [ { provide: NG_VALUE_ACCESSOR, multi: true, useExisting: forwardRef(() => GoabDatePicker), }, ], usesInheritance: true, ngImport: i0, template: ` <goa-date-picker [attr.name]="name" [attr.value]="formatValue(value)" [attr.min]="min" [attr.max]="max" [attr.error]="error" [attr.disabled]="disabled" [attr.relative]="relative" [attr.type]="type" [attr.testid]="testId" [attr.mt]="mt" [attr.mb]="mb" [attr.ml]="ml" [attr.mr]="mr" (_change)="_onChange($event)" > </goa-date-picker>`, isInline: true }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: GoabDatePicker, decorators: [{ type: Component, args: [{ standalone: true, selector: "goab-date-picker", template: ` <goa-date-picker [attr.name]="name" [attr.value]="formatValue(value)" [attr.min]="min" [attr.max]="max" [attr.error]="error" [attr.disabled]="disabled" [attr.relative]="relative" [attr.type]="type" [attr.testid]="testId" [attr.mt]="mt" [attr.mb]="mb" [attr.ml]="ml" [attr.mr]="mr" (_change)="_onChange($event)" > </goa-date-picker>`, schemas: [CUSTOM_ELEMENTS_SCHEMA], providers: [ { provide: NG_VALUE_ACCESSOR, multi: true, useExisting: forwardRef(() => GoabDatePicker), }, ], }] }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { name: [{ type: Input }], value: [{ type: Input }], min: [{ type: Input }], max: [{ type: Input }], type: [{ type: Input }], relative: [{ type: Input }], onChange: [{ type: Output }], listenDisabledChange: [{ type: HostListener, args: ["disabledChange", ["$event.detail.disabled"]] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sVUFBVSxFQUNWLFVBQVUsRUFDVixZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBK0I3RCxNQUFNLE9BQU8sY0FBZSxTQUFRLHdCQUF3QjtJQWMxRCxXQUFXLENBQUMsR0FBcUM7UUFDL0MsSUFBSSxDQUFDLEdBQUc7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUVwQixJQUFJLEdBQUcsWUFBWSxJQUFJLEVBQUUsQ0FBQztZQUN4QixPQUFPLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMzQixDQUFDO1FBRUQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsU0FBUyxDQUFDLENBQVE7UUFDaEIsTUFBTSxNQUFNLEdBQUksQ0FBK0MsQ0FBQyxNQUFNLENBQUM7UUFDdkUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELFlBQXNCLFVBQXNCO1FBQzFDLEtBQUssRUFBRSxDQUFDO1FBRFksZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQW5CbEMsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFnQyxDQUFDO0lBcUJ0RSxDQUFDO0lBRVEsZ0JBQWdCLENBQUMsVUFBbUI7UUFDM0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7UUFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUN0RCxDQUFDO0lBR0Qsb0JBQW9CLENBQUMsVUFBbUI7UUFDdEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFUSxVQUFVLENBQUMsS0FBa0I7UUFDcEMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFFbkIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFdEYsSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ1gsWUFBWSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDekMsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLFlBQVksQ0FBQyxZQUFZLENBQ3ZCLE9BQU8sRUFDUCxLQUFLLFlBQVksSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FDcEQsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzs4R0E1RFUsY0FBYztrR0FBZCxjQUFjLG1TQVJkO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUM7YUFDOUM7U0FDRixpREF4QlM7Ozs7Ozs7Ozs7Ozs7Ozs7cUJBZ0JTOzsyRkFVUixjQUFjO2tCQTdCMUIsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7O3FCQWdCUztvQkFDbkIsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixLQUFLLEVBQUUsSUFBSTs0QkFDWCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxlQUFlLENBQUM7eUJBQzlDO3FCQUNGO2lCQUNGOytFQUVVLElBQUk7c0JBQVosS0FBSztnQkFFWSxLQUFLO3NCQUF0QixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUlHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUksUUFBUTtzQkFBakIsTUFBTTtnQkE2QlAsb0JBQW9CO3NCQURuQixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHb2FiRGF0ZVBpY2tlcklucHV0VHlwZSwgR29hYkRhdGVQaWNrZXJPbkNoYW5nZURldGFpbCB9IGZyb20gXCJAYWJnb3YvdWktY29tcG9uZW50cy1jb21tb25cIjtcbmltcG9ydCB7XG4gIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBmb3J3YXJkUmVmLFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgR29hYkNvbnRyb2xWYWx1ZUFjY2Vzc29yIH0gZnJvbSBcIi4uL2Jhc2UuY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogXCJnb2FiLWRhdGUtcGlja2VyXCIsXG4gIHRlbXBsYXRlOiBgIDxnb2EtZGF0ZS1waWNrZXJcbiAgICBbYXR0ci5uYW1lXT1cIm5hbWVcIlxuICAgIFthdHRyLnZhbHVlXT1cImZvcm1hdFZhbHVlKHZhbHVlKVwiXG4gICAgW2F0dHIubWluXT1cIm1pblwiXG4gICAgW2F0dHIubWF4XT1cIm1heFwiXG4gICAgW2F0dHIuZXJyb3JdPVwiZXJyb3JcIlxuICAgIFthdHRyLmRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbYXR0ci5yZWxhdGl2ZV09XCJyZWxhdGl2ZVwiXG4gICAgW2F0dHIudHlwZV09XCJ0eXBlXCJcbiAgICBbYXR0ci50ZXN0aWRdPVwidGVzdElkXCJcbiAgICBbYXR0ci5tdF09XCJtdFwiXG4gICAgW2F0dHIubWJdPVwibWJcIlxuICAgIFthdHRyLm1sXT1cIm1sXCJcbiAgICBbYXR0ci5tcl09XCJtclwiXG4gICAgKF9jaGFuZ2UpPVwiX29uQ2hhbmdlKCRldmVudClcIlxuICA+XG4gIDwvZ29hLWRhdGUtcGlja2VyPmAsXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEdvYWJEYXRlUGlja2VyKSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBHb2FiRGF0ZVBpY2tlciBleHRlbmRzIEdvYWJDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBJbnB1dCgpIG5hbWU/OiBzdHJpbmc7XG4gIC8vICoqIE5PVEU6IGNhbiB3ZSBqdXN0IHVzZSB0aGUgYmFzZSBjb21wb25lbnQgZm9yIHRoaXM/XG4gIEBJbnB1dCgpIG92ZXJyaWRlIHZhbHVlPzogRGF0ZSB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIG1pbj86IERhdGUgfCBzdHJpbmc7XG4gIEBJbnB1dCgpIG1heD86IERhdGUgfCBzdHJpbmc7XG4gIEBJbnB1dCgpIHR5cGU/OiBHb2FiRGF0ZVBpY2tlcklucHV0VHlwZTtcbiAgLyoqKlxuICAgKiBAZGVwcmVjYXRlZCBUaGlzIHByb3BlcnR5IGhhcyBubyBlZmZlY3QgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSB2ZXJzaW9uXG4gICAqL1xuICBASW5wdXQoKSByZWxhdGl2ZT86IGJvb2xlYW47XG5cbiAgQE91dHB1dCgpIG9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxHb2FiRGF0ZVBpY2tlck9uQ2hhbmdlRGV0YWlsPigpO1xuXG4gIGZvcm1hdFZhbHVlKHZhbDogRGF0ZSB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuICAgIGlmICghdmFsKSByZXR1cm4gXCJcIjtcblxuICAgIGlmICh2YWwgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICByZXR1cm4gdmFsLnRvSVNPU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbDtcbiAgfVxuXG4gIF9vbkNoYW5nZShlOiBFdmVudCkge1xuICAgIGNvbnN0IGRldGFpbCA9IChlIGFzIEN1c3RvbUV2ZW50PEdvYWJEYXRlUGlja2VyT25DaGFuZ2VEZXRhaWw+KS5kZXRhaWw7XG4gICAgdGhpcy5vbkNoYW5nZS5lbWl0KGRldGFpbCk7XG4gICAgdGhpcy5tYXJrQXNUb3VjaGVkKCk7XG4gICAgdGhpcy5mY0NoYW5nZT8uKGRldGFpbC52YWx1ZSk7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBvdmVycmlkZSBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKFwiZGlzYWJsZWRDaGFuZ2VcIiwgW1wiJGV2ZW50LmRldGFpbC5kaXNhYmxlZFwiXSlcbiAgbGlzdGVuRGlzYWJsZWRDaGFuZ2UoaXNEaXNhYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkKTtcbiAgfVxuXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IERhdGUgfCBudWxsKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuXG4gICAgY29uc3QgZGF0ZVBpY2tlckVsID0gdGhpcy5lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50Py5xdWVyeVNlbGVjdG9yKFwiZ29hLWRhdGUtcGlja2VyXCIpO1xuXG4gICAgaWYgKGRhdGVQaWNrZXJFbCkge1xuICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICBkYXRlUGlja2VyRWwuc2V0QXR0cmlidXRlKFwidmFsdWVcIiwgXCJcIik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkYXRlUGlja2VyRWwuc2V0QXR0cmlidXRlKFxuICAgICAgICAgIFwidmFsdWVcIixcbiAgICAgICAgICB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyB2YWx1ZS50b0lTT1N0cmluZygpIDogdmFsdWUsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=