@abgov/angular-components
Version:
Government of Alberta - UI components for Angular
118 lines • 11.2 kB
JavaScript
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=