{"version":3,"file":"gram-deon-ionic-datetime.mjs","sources":["../../../../src/ui/ionic/datetime/src/datetime.type.ts","../../../../src/ui/ionic/datetime/src/datetime.module.ts","../../../../src/ui/ionic/datetime/src/gram-deon-ionic-datetime.ts"],"sourcesContent":["import { Component, ChangeDetectionStrategy, ViewChild, ViewEncapsulation, Type } from '@angular/core';\nimport { IonDatetime } from '@ionic/angular';\nimport { FieldType, FieldTypeConfig, DeonFieldConfig } from '@gram-deon/core';\nimport { DeonFieldProps } from '@gram-deon/ionic/form-field';\n\ninterface DatetimeProps extends DeonFieldProps {\n  presentation?: 'date' | 'date-time' | 'month' | 'month-year' | 'time' | 'time-date' | 'year';\n  locale?: any;\n  cancelText?: string;\n  doneText?: string;\n  dayValues?: number | number[] | string | undefined;\n  hourValues?: number | number[] | string | undefined;\n  minuteValues?: number | number[] | string | undefined;\n  monthValues?: number | number[] | string | undefined;\n  yearValues?: number | number[] | string | undefined;\n  minDate?: string | undefined;\n  maxDate?: string | undefined;\n  displayFormat?: string;\n}\n\nexport interface DeonDatetimeFieldConfig extends DeonFieldConfig<DatetimeProps> {\n  type: 'datetime' | Type<DeonFieldDatetime>;\n}\n\n@Component({\n  selector: 'deon-field-ion-datetime',\n  template: `\n    <ion-item [button]=\"true\" [detail]=\"false\" (click)=\"isOpen = true\">\n      <ion-label>\n        {{ formControl.value ? (formControl.value | date : displayFormat()) : props.placeholder }}\n      </ion-label>\n    </ion-item>\n    <ion-modal\n      [isOpen]=\"isOpen\"\n      (didDismiss)=\"close()\"\n      [cssClass]=\"'ion-datetime-modal ion-datetime-modal-' + props.presentation\"\n    >\n      <ng-template>\n        <ion-datetime\n          [locale]=\"props.locale\"\n          [presentation]=\"props.presentation\"\n          [cancelText]=\"props.cancelText\"\n          [dayValues]=\"props.dayValues\"\n          [doneText]=\"props.doneText\"\n          [hourValues]=\"props.hourValues\"\n          [minuteValues]=\"props.minuteValues\"\n          [monthValues]=\"props.monthValues\"\n          [yearValues]=\"props.yearValues\"\n          [min]=\"props.minDate ? props.minDate : props.min\"\n          [max]=\"props.maxDate ? props.maxDate : props.max\"\n          [formControl]=\"formControl\"\n          [ionDeonAttributes]=\"field\"\n        >\n          <ion-buttons slot=\"buttons\">\n            <ion-button (click)=\"reset()\">{{ props.cancelText || 'Cancel' }}</ion-button>\n            <ion-button (click)=\"confirm()\">{{ props.doneText || 'Done' }}</ion-button>\n          </ion-buttons>\n        </ion-datetime>\n      </ng-template>\n    </ion-modal>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  styleUrls: ['./dattime.type.scss'],\n  encapsulation: ViewEncapsulation.None,\n})\nexport class DeonFieldDatetime extends FieldType<FieldTypeConfig<DatetimeProps>> {\n  @ViewChild(IonDatetime) datetime!: IonDatetime;\n  isOpen = false;\n\n  override defaultOptions = {\n    props: {\n      presentation: 'month-year' as const,\n    },\n  };\n\n  displayFormat() {\n    if (this.props.displayFormat) {\n      return this.props.displayFormat;\n    }\n\n    switch (this.props.presentation) {\n      case 'date-time':\n      case 'time-date':\n        return 'short';\n      case 'time':\n        return 'shortTime';\n      case 'month':\n        return 'MMMM';\n      case 'month-year':\n        return 'MMMM, y';\n      case 'year':\n        return 'y';\n      case 'date':\n        return 'mediumDate';\n    }\n  }\n\n  confirm() {\n    this.datetime?.confirm();\n    this.close();\n  }\n\n  reset() {\n    this.datetime?.reset();\n    this.close();\n  }\n\n  close() {\n    this.isOpen = false;\n    this.formControl.markAsTouched();\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DeonModule } from '@gram-deon/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { IonicModule } from '@ionic/angular';\nimport { DeonFormFieldModule } from '@gram-deon/ionic/form-field';\n\nimport { DeonFieldDatetime } from './datetime.type';\n\n@NgModule({\n  declarations: [DeonFieldDatetime],\n  imports: [\n    CommonModule,\n    ReactiveFormsModule,\n    IonicModule,\n    DeonFormFieldModule,\n    DeonModule.forChild({\n      types: [\n        {\n          name: 'datetime',\n          component: DeonFieldDatetime,\n          wrappers: ['form-field'],\n        },\n      ],\n    }),\n  ],\n})\nexport class DeonDatetimeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1"],"mappings":"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"}