{"version":3,"file":"ngx-laydate.mjs","sources":["../../../projects/ngx-laydate/src/lib/utils.ts","../../../projects/ngx-laydate/src/lib/ngx-laydate.directive.ts","../../../projects/ngx-laydate/src/lib/ngx-laydate.module.ts","../../../projects/ngx-laydate/src/public-api.ts","../../../projects/ngx-laydate/src/ngx-laydate.ts"],"sourcesContent":["/**\n * Convert data-bound value (usually a string) to a boolean value by force\n * @param value true or false\n */\nexport function coerceBooleanProperty(value: any): boolean {\n  return value != null && `${value}` !== 'false';\n}\n\n/**\n * Convert data-bound value (usually a string) to a number value by force\n * @param value number\n */\nexport function coerceNumberProperty(value: any): number;\nexport function coerceNumberProperty<D>(value: any, fallback: D): number | D;\nexport function coerceNumberProperty(value: any, fallbackValue = 0) {\n  return _isNumberValue(value) ? Number(value) : fallbackValue;\n}\n\n/**\n * Determines whether the provided value is considered a number.\n * @param value The input value\n */\nexport function _isNumberValue(value: any): boolean {\n  return !isNaN(parseFloat(value as any)) && !isNaN(Number(value));\n}\n\n/**\n * Compatibility with CommonJS and ES modules for strict-typing enforcement\n * https://medium.com/lacolaco-blog/angular-dynamic-importing-large-libraries-8ec079603d0\n * @param importPromise \n * @returns\n */\nexport async function normalizeCommonJSImport<T>(importPromise: Promise<T>): Promise<T> {\n  const m = await importPromise as any; // `module.exports` in CommonJS is wrapped as `default` in ESModules.\n  return (m.default || m) as T;\n}","import {\n  AfterViewInit,\n  Directive,\n  ElementRef,\n  EventEmitter,\n  InjectionToken,\n  Input,\n  NgZone,\n  OnChanges,\n  Output,\n  SimpleChanges,\n  forwardRef,\n  inject,\n  DestroyRef,\n  Renderer2\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { normalizeCommonJSImport } from './utils';\nimport { isPlatformBrowser } from '@angular/common';\nimport { PLATFORM_ID } from '@angular/core';\n\nexport interface NgxLaydateConfig {\n  laydate: any | (() => Promise<any>);\n  path: string;\n}\n\nexport const NGX_LAYDATE_CONFIG = new InjectionToken<NgxLaydateConfig>('NGX_LAYDATE_CONFIG');\n\nlet laydatePromise: Promise<any> | null = null;\n\n\n@Directive({\n  selector: 'laydate, [laydate]',\n  exportAs: 'laydate',\n  standalone: true,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => NgxLaydateDirective),\n      multi: true\n    }\n  ]\n})\nexport class NgxLaydateDirective implements OnChanges, AfterViewInit, ControlValueAccessor {\n  @Input() options: Record<string, any> = {};\n\n  // ngx-laydate events\n  @Output() laydateInit = new EventEmitter<any>();\n  @Output() optionsError = new EventEmitter<Error>();\n\n  // laydate mouse events\n  @Output() laydateReady = new EventEmitter<any>();\n  @Output() laydateChange = new EventEmitter<any>();\n  @Output() laydateDone = new EventEmitter<any>();\n  @Output() laydateClose = new EventEmitter<any>();\n\n  private ngLaydate: any;\n  private laydate: any;\n  private laydateIns: any;\n  private initLaydateTimer?: number;\n\n  // controlValueAccessor\n  private isNgModel = false;\n  private currentValue: any = '';\n  private ngLaydateCreated$ = new Subject<void>();\n  private onChange: (value: any) => void = () => { };\n  private onTouched: () => void = () => { };\n\n  private config = inject(NGX_LAYDATE_CONFIG);\n  private el = inject(ElementRef);\n  private renderer = inject(Renderer2);\n  private ngZone = inject(NgZone);\n  private destroyRef = inject(DestroyRef);\n  private platformId = inject(PLATFORM_ID);\n\n  constructor() {\n    this.laydate = this.config.laydate;\n    this.destroyRef.onDestroy(() => {\n      if (isPlatformBrowser(this.platformId)) {\n        window.clearTimeout(this.initLaydateTimer);\n      }\n      this.dispose();\n    });\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes['options'] && !changes['options'].isFirstChange()) {\n      const opt = changes['options'].currentValue;\n      if (opt !== undefined && opt !== null) {\n        this.onOptionsChange(opt);\n      }\n    }\n  }\n\n  ngAfterViewInit(): void {\n    if (isPlatformBrowser(this.platformId)) {\n      this.initLaydateTimer = window.setTimeout(() => this.initLaydate());\n    }\n  }\n\n  writeValue(obj: any): void {\n    this.currentValue = obj;\n    const value = obj === null || obj === undefined ? '' : obj;\n    this.renderer.setProperty(this.el.nativeElement, 'value', value);\n  }\n\n  registerOnChange(fn: any): void {\n    this.isNgModel = true;\n    this.onChange = fn;\n    // delay execution until ngLaydate instance is created.\n    this.ngLaydateCreated$.asObservable().pipe(\n      takeUntilDestroyed(this.destroyRef)\n    ).subscribe(() => {\n      this.setOption({ ...this.options, value: this.currentValue });\n    });\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState?(isDisabled: boolean): void {\n    const dom = this.el.nativeElement;\n    if (dom && dom.nodeName === 'INPUT') {\n      this.renderer.setProperty(dom, 'disabled', isDisabled);\n    }\n  }\n\n  public hint(value: string) {\n    this.laydateIns?.hint(value);\n  }\n\n  private dispose() {\n    if (this.ngLaydate) {\n      // Logic to properly dispose or unbind if laydate supports it\n      // laydate doesn't seem to have a destroy method in strict sense for the global obj,\n      // but individual instances rendered might need cleanup.\n      // Since laydate attaches to DOM, removing DOM (Angular does this) might be enough.\n      // But clearing references is good.\n      this.ngLaydate = null;\n      this.laydateIns = null;\n    }\n  }\n\n  private setOption(option: any) {\n    if (this.ngLaydate) {\n      try {\n        // Since we are not using layui, we need to set the base path so that laydate.css can be loaded properly.\n        // docs: https://layui.dev/docs/2/laydate/#path\n        this.ngLaydate.path = this.config.path;\n\n        // Ensure elem is correctly set to this element to avoid collision\n        const config = {\n          elem: this.el.nativeElement,\n          // The four common callbacks for the control...\n          ready: (...args: any) => this.ngZone.run(() => this.laydateReady.emit(args)),\n          change: (...args: any) => this.ngZone.run(() => this.laydateChange.emit(args)),\n          done: (...args: any) => this.ngZone.run(() => this.laydateDone.emit(args)),\n          close: (...args: any) => this.ngZone.run(() => this.laydateClose.emit(args)),\n          ...option\n        };\n\n        this.laydateIns = this.ngLaydate.render(config);\n      } catch (e) {\n        console.error(e);\n        this.optionsError.emit(e as Error);\n      }\n    }\n  }\n\n  private createLaydate() {\n    const dom = (this.options && this.options['elem']) || this.el.nativeElement;\n\n    // Use a global promise to ensure laydate is loaded only once\n    return this.ngZone.runOutsideAngular(() => {\n      if (!isPlatformBrowser(this.platformId)) {\n        return Promise.resolve(null);\n      }\n\n      if (!laydatePromise) {\n        const load =\n          typeof this.laydate === 'function' ? this.laydate : () => Promise.resolve(this.laydate);\n        laydatePromise = normalizeCommonJSImport(load());\n      }\n\n      return laydatePromise!.then((laydateInstance: any) => {\n        // Check if laydateInstance has render method, if not try to get from window\n        if ((!laydateInstance || typeof laydateInstance.render !== 'function') && isPlatformBrowser(this.platformId) && (window as any).laydate) {\n          laydateInstance = (window as any).laydate;\n        }\n\n        this.options = Object.assign({}, this.options, {\n          elem: dom,\n          ...(this.isNgModel && {\n            // intercept 'done' callback of the control, continue event propagation when callback is present.\n            ...(this.options && this.options['done'] && { ngDone: this.options['done'] }),\n            done: (value: any, date: any, endDate: any) => {\n              this.onChange(value);\n              this.ngZone.run(() => {\n                // Try to keep model in sync if needed, but onChange handles it\n              });\n              if (this.options && this.options['ngDone']) {\n                this.options['ngDone'](value, date, endDate);\n              }\n            }\n          })\n        });\n        return laydateInstance;\n      });\n    });\n  }\n\n  private async initLaydate() {\n    await this.onOptionsChange(this.options);\n  }\n\n  private async onOptionsChange(opt: any) {\n    if (this.ngLaydate) {\n      this.setOption(this.options);\n    } else {\n      this.ngLaydate = await this.createLaydate();\n      this.laydateInit.emit(this.ngLaydate);\n      if (this.isNgModel) {\n        this.ngLaydateCreated$.next();\n      } else {\n        this.setOption(this.options);\n      }\n    }\n  }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { NGX_LAYDATE_CONFIG, NgxLaydateConfig, NgxLaydateDirective } from './ngx-laydate.directive';\n\n@NgModule({\n  imports: [NgxLaydateDirective],\n  exports: [NgxLaydateDirective]\n})\nexport class NgxLaydateModule {\n  static forRoot(config?: NgxLaydateConfig): ModuleWithProviders<NgxLaydateModule> {\n    return {\n      ngModule: NgxLaydateModule,\n      providers: [{ provide: NGX_LAYDATE_CONFIG, useValue: config }],\n    };\n  }\n  static forChild() {\n    return {\n      ngModule: NgxLaydateModule,\n    };\n  }\n}\n\nexport { NGX_LAYDATE_CONFIG, NgxLaydateDirective };\n","/*\n * Public API Surface of ngx-laydate\n */\n\nexport * from './lib/ngx-laydate.directive';\nexport * from './lib/ngx-laydate.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}