@carefirst/library 1.2.0 → 1.2.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,25 +1,39 @@
1
- import { Component, Input } from '@angular/core';
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import dayjs from 'dayjs';
2
3
  import { checkTruthAttribute, validateStringValue } from '../../utils/attribute.util';
3
4
  import * as i0 from "@angular/core";
4
5
  import * as i1 from "@ionic/angular";
5
6
  export class CalendarComponent {
6
7
  displayTime;
7
8
  color;
9
+ min = undefined;
10
+ max = undefined;
11
+ value = new EventEmitter();
8
12
  inputTime = false;
9
13
  inputColor = 'accent';
10
14
  ngOnChanges(changes) {
11
15
  this.inputTime = checkTruthAttribute(changes, 'displayTime', this.inputTime);
12
16
  this.inputColor = validateStringValue(changes, 'color', ['success', 'accent'], this.inputColor) || 'accent';
13
17
  }
18
+ setValue(value) {
19
+ if (typeof value === 'string')
20
+ this.value.emit(dayjs(value).format('YYYY-MM-DD' + (this.inputTime ? ' HH:mm' : '')));
21
+ }
14
22
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.3", type: CalendarComponent, selector: "cf-calendar", inputs: { displayTime: "displayTime", color: "color" }, usesOnChanges: true, ngImport: i0, template: "<ion-datetime [class]=\"inputColor\" mode=\"ios\" firstDayOfWeek=\"1\" [presentation]=\"inputTime ? 'date-time' : 'date'\"> </ion-datetime>\n", styles: ["ion-datetime{--background: var(--cf-app-background-light);color:var(--cf-app-color-primary)}ion-datetime::part(calendar-day){font-size:1.4rem}ion-datetime::part(month-year-button){font-size:2.5rem;font-weight:900;color:var(--cf-app-color-primary)}ion-datetime.accent::part(today){border:1px solid var(--cf-app-color-accent);color:var(--cf-app-color-accent)}ion-datetime.accent::part(active){background-color:var(--cf-app-color-accent);color:var(--cf-app-text-color-light)}ion-datetime.success::part(today){border:1px solid var(--cf-app-color-primary);color:var(--cf-app-color-primary)}ion-datetime.success::part(active){background-color:var(--cf-app-system-color-success);color:var(--cf-app-text-color-light)}\n"], dependencies: [{ kind: "component", type: i1.IonDatetime, selector: "ion-datetime", inputs: ["cancelText", "clearText", "color", "dayValues", "disabled", "doneText", "firstDayOfWeek", "highlightedDates", "hourCycle", "hourValues", "isDateEnabled", "locale", "max", "min", "minuteValues", "mode", "monthValues", "multiple", "name", "preferWheel", "presentation", "readonly", "showClearButton", "showDefaultButtons", "showDefaultTimeLabel", "showDefaultTitle", "size", "titleSelectedDatesFormatter", "value", "yearValues"] }, { kind: "directive", type: i1.SelectValueAccessor, selector: "ion-range, ion-select, ion-radio-group, ion-segment, ion-datetime" }] });
23
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.3", type: CalendarComponent, selector: "cf-calendar", inputs: { displayTime: "displayTime", color: "color", min: "min", max: "max" }, outputs: { value: "value" }, usesOnChanges: true, ngImport: i0, template: "<ion-datetime\n [class]=\"inputColor\"\n mode=\"ios\"\n firstDayOfWeek=\"1\"\n [min]=\"min\"\n [max]=\"max\"\n [presentation]=\"inputTime ? 'date-time' : 'date'\"\n (ionChange)=\"setValue($event.detail.value)\">\n</ion-datetime>\n", styles: ["ion-datetime{--background: var(--cf-app-background-light);color:var(--cf-app-color-primary)}ion-datetime::part(calendar-day){font-size:1.4rem}ion-datetime::part(month-year-button){font-size:2.5rem;font-weight:900;color:var(--cf-app-color-primary)}ion-datetime.accent::part(today){border:1px solid var(--cf-app-color-accent);color:var(--cf-app-color-accent)}ion-datetime.accent::part(active){background-color:var(--cf-app-color-accent);color:var(--cf-app-text-color-light)}ion-datetime.success::part(today){border:1px solid var(--cf-app-color-primary);color:var(--cf-app-color-primary)}ion-datetime.success::part(active){background-color:var(--cf-app-system-color-success);color:var(--cf-app-text-color-light)}\n"], dependencies: [{ kind: "component", type: i1.IonDatetime, selector: "ion-datetime", inputs: ["cancelText", "clearText", "color", "dayValues", "disabled", "doneText", "firstDayOfWeek", "highlightedDates", "hourCycle", "hourValues", "isDateEnabled", "locale", "max", "min", "minuteValues", "mode", "monthValues", "multiple", "name", "preferWheel", "presentation", "readonly", "showClearButton", "showDefaultButtons", "showDefaultTimeLabel", "showDefaultTitle", "size", "titleSelectedDatesFormatter", "value", "yearValues"] }, { kind: "directive", type: i1.SelectValueAccessor, selector: "ion-range, ion-select, ion-radio-group, ion-segment, ion-datetime" }] });
16
24
  }
17
25
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CalendarComponent, decorators: [{
18
26
  type: Component,
19
- args: [{ selector: 'cf-calendar', template: "<ion-datetime [class]=\"inputColor\" mode=\"ios\" firstDayOfWeek=\"1\" [presentation]=\"inputTime ? 'date-time' : 'date'\"> </ion-datetime>\n", styles: ["ion-datetime{--background: var(--cf-app-background-light);color:var(--cf-app-color-primary)}ion-datetime::part(calendar-day){font-size:1.4rem}ion-datetime::part(month-year-button){font-size:2.5rem;font-weight:900;color:var(--cf-app-color-primary)}ion-datetime.accent::part(today){border:1px solid var(--cf-app-color-accent);color:var(--cf-app-color-accent)}ion-datetime.accent::part(active){background-color:var(--cf-app-color-accent);color:var(--cf-app-text-color-light)}ion-datetime.success::part(today){border:1px solid var(--cf-app-color-primary);color:var(--cf-app-color-primary)}ion-datetime.success::part(active){background-color:var(--cf-app-system-color-success);color:var(--cf-app-text-color-light)}\n"] }]
27
+ args: [{ selector: 'cf-calendar', template: "<ion-datetime\n [class]=\"inputColor\"\n mode=\"ios\"\n firstDayOfWeek=\"1\"\n [min]=\"min\"\n [max]=\"max\"\n [presentation]=\"inputTime ? 'date-time' : 'date'\"\n (ionChange)=\"setValue($event.detail.value)\">\n</ion-datetime>\n", styles: ["ion-datetime{--background: var(--cf-app-background-light);color:var(--cf-app-color-primary)}ion-datetime::part(calendar-day){font-size:1.4rem}ion-datetime::part(month-year-button){font-size:2.5rem;font-weight:900;color:var(--cf-app-color-primary)}ion-datetime.accent::part(today){border:1px solid var(--cf-app-color-accent);color:var(--cf-app-color-accent)}ion-datetime.accent::part(active){background-color:var(--cf-app-color-accent);color:var(--cf-app-text-color-light)}ion-datetime.success::part(today){border:1px solid var(--cf-app-color-primary);color:var(--cf-app-color-primary)}ion-datetime.success::part(active){background-color:var(--cf-app-system-color-success);color:var(--cf-app-text-color-light)}\n"] }]
20
28
  }], propDecorators: { displayTime: [{
21
29
  type: Input
22
30
  }], color: [{
23
31
  type: Input
32
+ }], min: [{
33
+ type: Input
34
+ }], max: [{
35
+ type: Input
36
+ }], value: [{
37
+ type: Output
24
38
  }] } });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2FyZWZpcnN0L2xpYnJhcnkvc3JjL2xpYi9jb21wb25lbnRzL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBc0MsTUFBTSxlQUFlLENBQUM7QUFFckYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7OztBQU90RixNQUFNLE9BQU8saUJBQWlCO0lBQ25CLFdBQVcsQ0FBZ0M7SUFDM0MsS0FBSyxDQUF3QjtJQUd0QyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ2xCLFVBQVUsR0FBc0IsUUFBUSxDQUFDO0lBT3pDLFdBQVcsQ0FBQyxPQUFzQjtRQUVoQyxJQUFJLENBQUMsU0FBUyxHQUFHLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTdFLElBQUksQ0FBQyxVQUFVLEdBQUcsbUJBQW1CLENBQXVCLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLFFBQVEsQ0FBQztJQUNwSSxDQUFDO3VHQWxCVSxpQkFBaUI7MkZBQWpCLGlCQUFpQixnSUNuQjlCLCtJQUNBOzsyRkRrQmEsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLGFBQWE7OEJBS2QsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENhcmVGaXJzdCBMaWJyYXJ5IENhbGVuZGFyXG4gKlxuICogQGZpbGUgICAgICAgICAgY2FsZW5kYXIuY29tcG9uZW50XG4gKiBAZGVzY3JpcHRpb24gICBDb250YWlucyBhbGwgdGhlIGxvZ2ljIGZvciBnZW5lcmF0aW5nIGEgQ2FyZUZpcnN0IENhbGVuZGFyXG4gKiBAYXV0aG9yICAgICAgICBBcm5vIEphbnNlbiB2YW4gVnV1cmVuXG4gKiBAc2luY2UgICAgICAgICAyMDIzIC0gMTIgLSAwMVxuICogQHVzYWdlICAgICAgICAgPGNmLWNhbGVuZGFyICVkaXNwbGF5VGltZSUgJWNvbG9yJT1cInN1Y2Nlc3MgfCBhY2NlbnRcIlwiPjwvY2YtY2FsZW5kYXI+XG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgdHlwZSBPbkNoYW5nZXMsIHR5cGUgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuLy8tLS0gVXRpbHNcbmltcG9ydCB7IGNoZWNrVHJ1dGhBdHRyaWJ1dGUsIHZhbGlkYXRlU3RyaW5nVmFsdWUgfSBmcm9tICcuLi8uLi91dGlscy9hdHRyaWJ1dGUudXRpbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NmLWNhbGVuZGFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2NhbGVuZGFyLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBkaXNwbGF5VGltZT86IGJvb2xlYW4gfCBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGNvbG9yPzogJ3N1Y2Nlc3MnIHwgJ2FjY2VudCc7XG5cbiAgLy8tLS0gTG9jYWwgdmFyaWFibGVzXG4gIGlucHV0VGltZSA9IGZhbHNlO1xuICBpbnB1dENvbG9yOiB0eXBlb2YgdGhpcy5jb2xvciA9ICdhY2NlbnQnO1xuXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogQG5hbWUgICAgICAgICAgbmdPbkNoYW5nZXNcbiAgICogQGRlc2NyaXB0aW9uICAgVXBkYXRlIHZhcmlvdXMgdmFsdWVzIG9uIGNvbXBvbmVudCBpbnB1dCBjaGFuZ2VzXG4gICAqIEByZXR1cm5zICAgICAgIHt2b2lkfVxuICAgKi9cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIC8vLS0tIERpc3BsYXkgVGltZVxuICAgIHRoaXMuaW5wdXRUaW1lID0gY2hlY2tUcnV0aEF0dHJpYnV0ZShjaGFuZ2VzLCAnZGlzcGxheVRpbWUnLCB0aGlzLmlucHV0VGltZSk7XG4gICAgLy8tLS0gQ29sb3JcbiAgICB0aGlzLmlucHV0Q29sb3IgPSB2YWxpZGF0ZVN0cmluZ1ZhbHVlPCdzdWNjZXNzJyB8ICdhY2NlbnQnPihjaGFuZ2VzLCAnY29sb3InLCBbJ3N1Y2Nlc3MnLCAnYWNjZW50J10sIHRoaXMuaW5wdXRDb2xvcikgfHwgJ2FjY2VudCc7XG4gIH1cbn1cbiIsIjxpb24tZGF0ZXRpbWUgW2NsYXNzXT1cImlucHV0Q29sb3JcIiBtb2RlPVwiaW9zXCIgZmlyc3REYXlPZldlZWs9XCIxXCIgW3ByZXNlbnRhdGlvbl09XCJpbnB1dFRpbWUgPyAnZGF0ZS10aW1lJyA6ICdkYXRlJ1wiPiA8L2lvbi1kYXRldGltZT5cbiJdfQ==
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2FyZWZpcnN0L2xpYnJhcnkvc3JjL2xpYi9jb21wb25lbnRzL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFzQyxNQUFNLGVBQWUsQ0FBQztBQUMzRyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFFMUIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7OztBQU90RixNQUFNLE9BQU8saUJBQWlCO0lBQ25CLFdBQVcsQ0FBZ0M7SUFDM0MsS0FBSyxDQUF3QjtJQUM3QixHQUFHLEdBQXdCLFNBQVMsQ0FBQztJQUNyQyxHQUFHLEdBQXdCLFNBQVMsQ0FBQztJQUNwQyxLQUFLLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUc3QyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ2xCLFVBQVUsR0FBc0IsUUFBUSxDQUFDO0lBT3pDLFdBQVcsQ0FBQyxPQUFzQjtRQUVoQyxJQUFJLENBQUMsU0FBUyxHQUFHLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTdFLElBQUksQ0FBQyxVQUFVLEdBQUcsbUJBQW1CLENBQXVCLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLFFBQVEsQ0FBQztJQUNwSSxDQUFDO0lBUUQsUUFBUSxDQUFDLEtBQTJDO1FBQ2xELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUTtZQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkgsQ0FBQzt1R0EvQlUsaUJBQWlCOzJGQUFqQixpQkFBaUIscUxDcEI5QiwrT0FTQTs7MkZEV2EsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLGFBQWE7OEJBS2QsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDSSxLQUFLO3NCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENhcmVGaXJzdCBMaWJyYXJ5IENhbGVuZGFyXG4gKlxuICogQGZpbGUgICAgICAgICAgY2FsZW5kYXIuY29tcG9uZW50XG4gKiBAZGVzY3JpcHRpb24gICBDb250YWlucyBhbGwgdGhlIGxvZ2ljIGZvciBnZW5lcmF0aW5nIGEgQ2FyZUZpcnN0IENhbGVuZGFyXG4gKiBAYXV0aG9yICAgICAgICBBcm5vIEphbnNlbiB2YW4gVnV1cmVuXG4gKiBAc2luY2UgICAgICAgICAyMDIzIC0gMTIgLSAwMVxuICogQHVzYWdlICAgICAgICAgPGNmLWNhbGVuZGFyICVkaXNwbGF5VGltZSUgJWNvbG9yJT1cInN1Y2Nlc3MgfCBhY2NlbnRcIiAlbWluJSAlbWF4JT48L2NmLWNhbGVuZGFyPlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCB0eXBlIE9uQ2hhbmdlcywgdHlwZSBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xuLy8tLS0gVXRpbHNcbmltcG9ydCB7IGNoZWNrVHJ1dGhBdHRyaWJ1dGUsIHZhbGlkYXRlU3RyaW5nVmFsdWUgfSBmcm9tICcuLi8uLi91dGlscy9hdHRyaWJ1dGUudXRpbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NmLWNhbGVuZGFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2NhbGVuZGFyLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBkaXNwbGF5VGltZT86IGJvb2xlYW4gfCBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGNvbG9yPzogJ3N1Y2Nlc3MnIHwgJ2FjY2VudCc7XG4gIEBJbnB1dCgpIG1pbj86IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgbWF4Pzogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICBAT3V0cHV0KCkgdmFsdWUgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAvLy0tLSBMb2NhbCB2YXJpYWJsZXNcbiAgaW5wdXRUaW1lID0gZmFsc2U7XG4gIGlucHV0Q29sb3I6IHR5cGVvZiB0aGlzLmNvbG9yID0gJ2FjY2VudCc7XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICBuZ09uQ2hhbmdlc1xuICAgKiBAZGVzY3JpcHRpb24gICBVcGRhdGUgdmFyaW91cyB2YWx1ZXMgb24gY29tcG9uZW50IGlucHV0IGNoYW5nZXNcbiAgICogQHJldHVybnMgICAgICAge3ZvaWR9XG4gICAqL1xuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgLy8tLS0gRGlzcGxheSBUaW1lXG4gICAgdGhpcy5pbnB1dFRpbWUgPSBjaGVja1RydXRoQXR0cmlidXRlKGNoYW5nZXMsICdkaXNwbGF5VGltZScsIHRoaXMuaW5wdXRUaW1lKTtcbiAgICAvLy0tLSBDb2xvclxuICAgIHRoaXMuaW5wdXRDb2xvciA9IHZhbGlkYXRlU3RyaW5nVmFsdWU8J3N1Y2Nlc3MnIHwgJ2FjY2VudCc+KGNoYW5nZXMsICdjb2xvcicsIFsnc3VjY2VzcycsICdhY2NlbnQnXSwgdGhpcy5pbnB1dENvbG9yKSB8fCAnYWNjZW50JztcbiAgfVxuXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogQG5hbWUgICAgICAgICAgc2V0VmFsdWVcbiAgICogQGRlc2NyaXB0aW9uICAgRW1pdCB0aGUgc2VsZWN0ZWQgZGF0ZSB2YWx1ZVxuICAgKiBAcGFyYW0gICAgICAgICB7c3RyaW5nIHwgc3RyaW5nW10gfCBudWxsIHwgdW5kZWZpbmVkfSB2YWx1ZVxuICAgKiBAcmV0dXJucyAgICAgICB7dm9pZH1cbiAgICovXG4gIHNldFZhbHVlKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSB8IG51bGwgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykgdGhpcy52YWx1ZS5lbWl0KGRheWpzKHZhbHVlKS5mb3JtYXQoJ1lZWVktTU0tREQnICsgKHRoaXMuaW5wdXRUaW1lID8gJyBISDptbScgOiAnJykpKTtcbiAgfVxufVxuIiwiPGlvbi1kYXRldGltZVxuICBbY2xhc3NdPVwiaW5wdXRDb2xvclwiXG4gIG1vZGU9XCJpb3NcIlxuICBmaXJzdERheU9mV2Vlaz1cIjFcIlxuICBbbWluXT1cIm1pblwiXG4gIFttYXhdPVwibWF4XCJcbiAgW3ByZXNlbnRhdGlvbl09XCJpbnB1dFRpbWUgPyAnZGF0ZS10aW1lJyA6ICdkYXRlJ1wiXG4gIChpb25DaGFuZ2UpPVwic2V0VmFsdWUoJGV2ZW50LmRldGFpbC52YWx1ZSlcIj5cbjwvaW9uLWRhdGV0aW1lPlxuIl19
@@ -6,6 +6,7 @@ import * as i1 from '@ionic/angular';
6
6
  import { IonicModule } from '@ionic/angular';
7
7
  import * as i3 from '@angular/forms';
8
8
  import { ReactiveFormsModule } from '@angular/forms';
9
+ import dayjs from 'dayjs';
9
10
 
10
11
  class ButtonLoaderDirective {
11
12
  templateRef;
@@ -361,22 +362,35 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImpor
361
362
  class CalendarComponent {
362
363
  displayTime;
363
364
  color;
365
+ min = undefined;
366
+ max = undefined;
367
+ value = new EventEmitter();
364
368
  inputTime = false;
365
369
  inputColor = 'accent';
366
370
  ngOnChanges(changes) {
367
371
  this.inputTime = checkTruthAttribute(changes, 'displayTime', this.inputTime);
368
372
  this.inputColor = validateStringValue(changes, 'color', ['success', 'accent'], this.inputColor) || 'accent';
369
373
  }
374
+ setValue(value) {
375
+ if (typeof value === 'string')
376
+ this.value.emit(dayjs(value).format('YYYY-MM-DD' + (this.inputTime ? ' HH:mm' : '')));
377
+ }
370
378
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
371
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.3", type: CalendarComponent, selector: "cf-calendar", inputs: { displayTime: "displayTime", color: "color" }, usesOnChanges: true, ngImport: i0, template: "<ion-datetime [class]=\"inputColor\" mode=\"ios\" firstDayOfWeek=\"1\" [presentation]=\"inputTime ? 'date-time' : 'date'\"> </ion-datetime>\n", styles: ["ion-datetime{--background: var(--cf-app-background-light);color:var(--cf-app-color-primary)}ion-datetime::part(calendar-day){font-size:1.4rem}ion-datetime::part(month-year-button){font-size:2.5rem;font-weight:900;color:var(--cf-app-color-primary)}ion-datetime.accent::part(today){border:1px solid var(--cf-app-color-accent);color:var(--cf-app-color-accent)}ion-datetime.accent::part(active){background-color:var(--cf-app-color-accent);color:var(--cf-app-text-color-light)}ion-datetime.success::part(today){border:1px solid var(--cf-app-color-primary);color:var(--cf-app-color-primary)}ion-datetime.success::part(active){background-color:var(--cf-app-system-color-success);color:var(--cf-app-text-color-light)}\n"], dependencies: [{ kind: "component", type: i1.IonDatetime, selector: "ion-datetime", inputs: ["cancelText", "clearText", "color", "dayValues", "disabled", "doneText", "firstDayOfWeek", "highlightedDates", "hourCycle", "hourValues", "isDateEnabled", "locale", "max", "min", "minuteValues", "mode", "monthValues", "multiple", "name", "preferWheel", "presentation", "readonly", "showClearButton", "showDefaultButtons", "showDefaultTimeLabel", "showDefaultTitle", "size", "titleSelectedDatesFormatter", "value", "yearValues"] }, { kind: "directive", type: i1.SelectValueAccessor, selector: "ion-range, ion-select, ion-radio-group, ion-segment, ion-datetime" }] });
379
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.3", type: CalendarComponent, selector: "cf-calendar", inputs: { displayTime: "displayTime", color: "color", min: "min", max: "max" }, outputs: { value: "value" }, usesOnChanges: true, ngImport: i0, template: "<ion-datetime\n [class]=\"inputColor\"\n mode=\"ios\"\n firstDayOfWeek=\"1\"\n [min]=\"min\"\n [max]=\"max\"\n [presentation]=\"inputTime ? 'date-time' : 'date'\"\n (ionChange)=\"setValue($event.detail.value)\">\n</ion-datetime>\n", styles: ["ion-datetime{--background: var(--cf-app-background-light);color:var(--cf-app-color-primary)}ion-datetime::part(calendar-day){font-size:1.4rem}ion-datetime::part(month-year-button){font-size:2.5rem;font-weight:900;color:var(--cf-app-color-primary)}ion-datetime.accent::part(today){border:1px solid var(--cf-app-color-accent);color:var(--cf-app-color-accent)}ion-datetime.accent::part(active){background-color:var(--cf-app-color-accent);color:var(--cf-app-text-color-light)}ion-datetime.success::part(today){border:1px solid var(--cf-app-color-primary);color:var(--cf-app-color-primary)}ion-datetime.success::part(active){background-color:var(--cf-app-system-color-success);color:var(--cf-app-text-color-light)}\n"], dependencies: [{ kind: "component", type: i1.IonDatetime, selector: "ion-datetime", inputs: ["cancelText", "clearText", "color", "dayValues", "disabled", "doneText", "firstDayOfWeek", "highlightedDates", "hourCycle", "hourValues", "isDateEnabled", "locale", "max", "min", "minuteValues", "mode", "monthValues", "multiple", "name", "preferWheel", "presentation", "readonly", "showClearButton", "showDefaultButtons", "showDefaultTimeLabel", "showDefaultTitle", "size", "titleSelectedDatesFormatter", "value", "yearValues"] }, { kind: "directive", type: i1.SelectValueAccessor, selector: "ion-range, ion-select, ion-radio-group, ion-segment, ion-datetime" }] });
372
380
  }
373
381
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: CalendarComponent, decorators: [{
374
382
  type: Component,
375
- args: [{ selector: 'cf-calendar', template: "<ion-datetime [class]=\"inputColor\" mode=\"ios\" firstDayOfWeek=\"1\" [presentation]=\"inputTime ? 'date-time' : 'date'\"> </ion-datetime>\n", styles: ["ion-datetime{--background: var(--cf-app-background-light);color:var(--cf-app-color-primary)}ion-datetime::part(calendar-day){font-size:1.4rem}ion-datetime::part(month-year-button){font-size:2.5rem;font-weight:900;color:var(--cf-app-color-primary)}ion-datetime.accent::part(today){border:1px solid var(--cf-app-color-accent);color:var(--cf-app-color-accent)}ion-datetime.accent::part(active){background-color:var(--cf-app-color-accent);color:var(--cf-app-text-color-light)}ion-datetime.success::part(today){border:1px solid var(--cf-app-color-primary);color:var(--cf-app-color-primary)}ion-datetime.success::part(active){background-color:var(--cf-app-system-color-success);color:var(--cf-app-text-color-light)}\n"] }]
383
+ args: [{ selector: 'cf-calendar', template: "<ion-datetime\n [class]=\"inputColor\"\n mode=\"ios\"\n firstDayOfWeek=\"1\"\n [min]=\"min\"\n [max]=\"max\"\n [presentation]=\"inputTime ? 'date-time' : 'date'\"\n (ionChange)=\"setValue($event.detail.value)\">\n</ion-datetime>\n", styles: ["ion-datetime{--background: var(--cf-app-background-light);color:var(--cf-app-color-primary)}ion-datetime::part(calendar-day){font-size:1.4rem}ion-datetime::part(month-year-button){font-size:2.5rem;font-weight:900;color:var(--cf-app-color-primary)}ion-datetime.accent::part(today){border:1px solid var(--cf-app-color-accent);color:var(--cf-app-color-accent)}ion-datetime.accent::part(active){background-color:var(--cf-app-color-accent);color:var(--cf-app-text-color-light)}ion-datetime.success::part(today){border:1px solid var(--cf-app-color-primary);color:var(--cf-app-color-primary)}ion-datetime.success::part(active){background-color:var(--cf-app-system-color-success);color:var(--cf-app-text-color-light)}\n"] }]
376
384
  }], propDecorators: { displayTime: [{
377
385
  type: Input
378
386
  }], color: [{
379
387
  type: Input
388
+ }], min: [{
389
+ type: Input
390
+ }], max: [{
391
+ type: Input
392
+ }], value: [{
393
+ type: Output
380
394
  }] } });
381
395
 
382
396
  class FormValidationComponent {