{"version":3,"file":"ngx-persian-datepicker-element.mjs","sources":["../../../projects/ngx-persian-datepicker-element/src/lib/ngx-persian-datepicker.component.ts","../../../projects/ngx-persian-datepicker-element/src/lib/ngx-persian-datepicker.module.ts","../../../projects/ngx-persian-datepicker-element/src/lib/index.ts","../../../projects/ngx-persian-datepicker-element/src/public-api.ts","../../../projects/ngx-persian-datepicker-element/src/ngx-persian-datepicker-element.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\r\nimport {\r\n  Component,\r\n  CUSTOM_ELEMENTS_SCHEMA,\r\n  computed,\r\n  effect,\r\n  ElementRef,\r\n  EventEmitter,\r\n  forwardRef,\r\n  inject,\r\n  Injector,\r\n  input,\r\n  InputSignal,\r\n  NgZone,\r\n  OnDestroy,\r\n  OnInit,\r\n  Output,\r\n  signal,\r\n  ViewChild\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\r\n\r\n// Import local type definitions\r\nimport { DateTuple } from './persian-datepicker-types';\r\n\r\n// Import the web component\r\n// This import ensures the web component script is included in the bundle\r\nimport 'persian-datepicker-element/dist/persian-datepicker-element.min.js';\r\n\r\n/** \r\n * Angular wrapper for the Persian DatePicker Web Component\r\n * \r\n * This component provides Angular bindings for the native Persian DatePicker web component,\r\n * allowing it to be used with Angular forms (both reactive and template-driven) and\r\n * custom event handling.\r\n * \r\n * Note: The component automatically imports and registers the persian-datepicker-element\r\n * web component, so you don't need to add any scripts to your angular.json file.\r\n * \r\n * @example\r\n * Basic usage:\r\n * ```html\r\n * <ngx-persian-datepicker-element \r\n *   placeholderInput=\"انتخاب تاریخ\"\r\n *   formatInput=\"YYYY/MM/DD\" \r\n *   [showEventsInput]=\"true\" \r\n *   (dateChange)=\"onDateChange($event)\">\r\n * </ngx-persian-datepicker-element>\r\n * ```\r\n * \r\n * With Angular forms:\r\n * ```html\r\n * <form [formGroup]=\"myForm\">\r\n *   <ngx-persian-datepicker-element formControlName=\"date\"></ngx-persian-datepicker-element>\r\n * </form>\r\n * ```\r\n */\r\n@Component({\r\n  selector: 'ngx-persian-datepicker-element',\r\n  standalone: true,\r\n  imports: [CommonModule, FormsModule, ReactiveFormsModule],\r\n  schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n  template: '<div #container></div>',\r\n  styles: [`\r\n    :host {\r\n      display: block;\r\n      width: 100%;\r\n    }\r\n  `],\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => NgxPersianDatepickerComponent),\r\n      multi: true\r\n    }\r\n  ]\r\n})\r\nexport class NgxPersianDatepickerComponent implements OnInit, OnDestroy, ControlValueAccessor {\r\n  // Dependency injection using inject() function\r\n  private readonly elRef = inject(ElementRef);\r\n  private readonly zone = inject(NgZone);\r\n  private readonly injector = inject(Injector);\r\n\r\n  // Web component reference - expose it to be accessed from parent components\r\n  readonly elementSignal = signal<HTMLElement | null>(null);\r\n\r\n  // Form control implementation as signals\r\n  private readonly onChangeSignal = signal<(value: any) => void>(() => {});\r\n  private readonly onTouchSignal = signal<() => void>(() => {});\r\n  private readonly valueSignal = signal<DateTuple | null>(null);\r\n  private readonly disabledSignal = signal<boolean>(false);\r\n\r\n  // #region Input Signals\r\n  readonly placeholder = input<string | undefined>(undefined);\r\n  readonly format = input<string | undefined>(undefined);\r\n  readonly showEvents = input<boolean | undefined>(undefined);\r\n  readonly eventTypes = input<string | string[] | undefined>(undefined);\r\n  readonly rtl = input<boolean | undefined>(undefined);\r\n  readonly minDate = input<DateTuple | undefined>(undefined);\r\n  readonly maxDate = input<DateTuple | undefined>(undefined);\r\n  readonly disabledDates = input<string | ((year: number, month: number, day: number) => boolean) | undefined>(undefined);\r\n  readonly rangeMode = input<boolean | undefined>(undefined);\r\n  readonly rangeStart = input<DateTuple | undefined>(undefined);\r\n  readonly rangeEnd = input<DateTuple | undefined>(undefined);\r\n  readonly defaultDate = input<DateTuple | undefined>(undefined);\r\n  // #endregion\r\n\r\n  // #region Outputs\r\n  @Output() dateChange = new EventEmitter<any>();\r\n  // #endregion\r\n\r\n  /** Reference to the container where the web component will be attached */\r\n  @ViewChild('container', { static: true }) containerRef!: ElementRef;\r\n\r\n  constructor() {\r\n    // Create an effect to respond to changes in the element signal\r\n    effect(() => {\r\n      const element = this.elementSignal();\r\n      if (element) {\r\n        // Apply initial attributes and styles when the element is created\r\n        this.setInitialAttributes();\r\n      }\r\n    });\r\n\r\n    // Create effects for each input to update attributes when they change\r\n    this.setupInputEffects();\r\n  }\r\n\r\n  /**\r\n   * Apply theme variables to the datepicker element\r\n   * @param variables Object containing CSS variable names and values\r\n   */\r\n  applyThemeVariables(variables: Record<string, string>) {\r\n    const element = this.elementSignal();\r\n    if (!element) return;\r\n    \r\n    for (const [prop, value] of Object.entries(variables)) {\r\n      element.style.setProperty(prop, value);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Set up effects for all inputs to update attributes/styles when they change\r\n   */\r\n  private setupInputEffects() {\r\n    // Placeholder\r\n    effect(() => {\r\n      const value = this.placeholder();\r\n      if (value !== undefined) {\r\n        this.updateAttribute('placeholder', value);\r\n      }\r\n    });\r\n\r\n    // Format\r\n    effect(() => {\r\n      const value = this.format();\r\n      if (value !== undefined) {\r\n        this.updateAttribute('format', value);\r\n      }\r\n    });\r\n\r\n    // Show Holidays\r\n    effect(() => {\r\n      const value = this.showEvents();\r\n      if (value !== undefined) {\r\n        this.updateAttribute('show-holidays', String(value));\r\n      }\r\n    });\r\n\r\n    // Holiday Types\r\n    effect(() => {\r\n      const value = this.eventTypes();\r\n      if (value !== undefined) {\r\n        this.updateeventTypesAttribute(value);\r\n      }\r\n    });\r\n\r\n    // RTL\r\n    effect(() => {\r\n      const value = this.rtl();\r\n      if (value !== undefined) {\r\n        this.updateAttribute('rtl', String(value));\r\n      }\r\n    });\r\n\r\n    // Range picker effects\r\n    effect(() => {\r\n      const value = this.rangeMode();\r\n      if (value !== undefined) {\r\n        this.updateAttribute('range-mode', String(value));\r\n      }\r\n    });\r\n\r\n    effect(() => {\r\n      const value = this.rangeStart();\r\n      if (value !== undefined) {\r\n        this.updateAttribute('range-start', JSON.stringify(value));\r\n      }\r\n    });\r\n\r\n    effect(() => {\r\n      const value = this.rangeEnd();\r\n      if (value !== undefined) {\r\n        this.updateAttribute('range-end', JSON.stringify(value));\r\n      }\r\n    });\r\n\r\n    // Add effects for new inputs\r\n    effect(() => {\r\n      const value = this.minDate();\r\n      if (value !== undefined) {\r\n        this.updateAttribute('min-date', JSON.stringify(value));\r\n      }\r\n    });\r\n\r\n    effect(() => {\r\n      const value = this.maxDate();\r\n      if (value !== undefined) {\r\n        this.updateAttribute('max-date', JSON.stringify(value));\r\n      }\r\n    });\r\n\r\n    effect(() => {\r\n      const value = this.disabledDates();\r\n      if (value !== undefined) {\r\n        if (typeof value === 'function') {\r\n          const element = this.elementSignal();\r\n          if (element && 'setDisabledDatesFn' in element) {\r\n            (element as any).setDisabledDatesFn(value);\r\n          }\r\n        } else {\r\n          this.updateAttribute('disabled-dates', value);\r\n        }\r\n      }\r\n    });\r\n\r\n    effect(() => {\r\n      const value = this.defaultDate();\r\n      if (value !== undefined) {\r\n        this.updateAttribute('default-date', JSON.stringify(value));\r\n      }\r\n    });\r\n  }\r\n\r\n  ngOnInit() {\r\n    // Create the web component instance\r\n    this.createWebComponent();\r\n  }\r\n\r\n  /**\r\n   * Create the web component instance\r\n   */\r\n  private createWebComponent() {\r\n    // Create the element\r\n    this.zone.runOutsideAngular(() => {\r\n      try {\r\n        // Make sure the web component is registered\r\n        // This will typically happen from the import, but we check just in case\r\n        if (typeof window !== 'undefined' && !customElements.get('persian-datepicker-element')) {\r\n          console.warn('persian-datepicker-element not found in custom elements registry. The import should have registered it.');\r\n        }\r\n        \r\n        // Create the web component\r\n        const element = document.createElement('persian-datepicker-element');\r\n        \r\n        // Add the change event listener\r\n        element.addEventListener('change', this.handleChangeEvent);\r\n        \r\n        // Store the element in the signal\r\n        this.elementSignal.set(element);\r\n        \r\n        // Append to the container\r\n        if (this.containerRef && this.containerRef.nativeElement) {\r\n          this.containerRef.nativeElement.appendChild(element);\r\n        } else {\r\n          this.elRef.nativeElement.appendChild(element);\r\n        }\r\n      } catch (error) {\r\n        console.error('Error creating persian-datepicker-element:', error);\r\n      }\r\n    });\r\n  }\r\n\r\n  // Helper method to update attributes\r\n  private updateAttribute(name: string, value: string | undefined) {\r\n    const element = this.elementSignal();\r\n    if (element && value !== undefined) {\r\n      element.setAttribute(name, value);\r\n    }\r\n  }\r\n\r\n\r\n  // Helper method specifically for holiday types\r\n  private updateeventTypesAttribute(value: string | string[] | undefined) {\r\n    const element = this.elementSignal();\r\n    if (element && value !== undefined) {\r\n      const formattedValue = Array.isArray(value) ? value.join(',') : value;\r\n      element.setAttribute('holiday-types', formattedValue);\r\n    }\r\n  }\r\n\r\n\r\n  ngOnDestroy() {\r\n    // Clean up event listeners\r\n    const element = this.elementSignal();\r\n    if (element) {\r\n      element.removeEventListener('change', this.handleChangeEvent);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Handle change events from the web component\r\n   */\r\n  private handleChangeEvent = (event: any) => {\r\n    // Use NgZone to ensure the change is detected by Angular\r\n    this.zone.run(() => {\r\n      // Get the selected date from the event detail\r\n      const { jalali, gregorian, isHoliday, events, isRange, range } = event.detail;\r\n      \r\n      // Emit the dateChange event\r\n      this.dateChange.emit({\r\n        jalali,\r\n        gregorian,\r\n        isHoliday,\r\n        events,\r\n        isRange,\r\n        range\r\n      });\r\n      \r\n      // Update form control value\r\n      this.valueSignal.set(jalali);\r\n      this.onChangeSignal()(jalali);\r\n      this.onTouchSignal()();\r\n    });\r\n  };\r\n\r\n  /**\r\n   * Set initial attributes on the web component based on the signals\r\n   */\r\n  private setInitialAttributes() {\r\n    const element = this.elementSignal();\r\n    if (!element) return;\r\n    \r\n    // Set attributes based on input signals\r\n    const placeholder = this.placeholder();\r\n    if (placeholder !== undefined) {\r\n      element.setAttribute('placeholder', placeholder);\r\n    }\r\n    \r\n    const format = this.format();\r\n    if (format !== undefined) {\r\n      element.setAttribute('format', format);\r\n    }\r\n    \r\n    const showEvents = this.showEvents();\r\n    if (showEvents !== undefined) {\r\n      element.setAttribute('show-holidays', String(showEvents));\r\n    }\r\n    \r\n    const eventTypes = this.eventTypes();\r\n    if (eventTypes !== undefined) {\r\n      this.updateeventTypesAttribute(eventTypes);\r\n    }\r\n    \r\n    const rtl = this.rtl();\r\n    if (rtl !== undefined) {\r\n      element.setAttribute('rtl', String(rtl));\r\n    }\r\n\r\n    const minDate = this.minDate();\r\n    if (minDate !== undefined) {\r\n      element.setAttribute('min-date', JSON.stringify(minDate));\r\n    }\r\n\r\n    const maxDate = this.maxDate();\r\n    if (maxDate !== undefined) {\r\n      element.setAttribute('max-date', JSON.stringify(maxDate));\r\n    }\r\n\r\n    const disabledDates = this.disabledDates();\r\n    if (disabledDates !== undefined) {\r\n      if (typeof disabledDates === 'function') {\r\n        (element as any).setDisabledDatesFn(disabledDates);\r\n      } else {\r\n        element.setAttribute('disabled-dates', disabledDates);\r\n      }\r\n    }\r\n\r\n    const rangeMode = this.rangeMode();\r\n    if (rangeMode !== undefined) {\r\n      element.setAttribute('range-mode', String(rangeMode));\r\n    }\r\n\r\n    const rangeStart = this.rangeStart();\r\n    if (rangeStart !== undefined) {\r\n      element.setAttribute('range-start', JSON.stringify(rangeStart));\r\n    }\r\n\r\n    const rangeEnd = this.rangeEnd();\r\n    if (rangeEnd !== undefined) {\r\n      element.setAttribute('range-end', JSON.stringify(rangeEnd));\r\n    }\r\n\r\n    const defaultDate = this.defaultDate();\r\n    if (defaultDate !== undefined) {\r\n      element.setAttribute('default-date', JSON.stringify(defaultDate));\r\n    }\r\n\r\n    // Set disabled state\r\n    if (this.disabledSignal()) {\r\n      element.setAttribute('disabled', '');\r\n    }\r\n    \r\n    // Set initial value if needed\r\n    if (this.valueSignal()) {\r\n      this.writeValue(this.valueSignal());\r\n    }\r\n  }\r\n\r\n  // #region ControlValueAccessor Implementation\r\n  /**\r\n   * Write value to the component (used by Angular forms)\r\n   */\r\n  writeValue(value: DateTuple | null): void {\r\n    this.valueSignal.set(value);\r\n    \r\n    const element = this.elementSignal();\r\n    if (element && value) {\r\n      // Set the value on the web component\r\n      const [year, month, day] = value;\r\n      (element as any).setValue(year, month, day);\r\n    } else if (element) {\r\n      // Clear the value\r\n      (element as any).clear();\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Register change callback (used by Angular forms)\r\n   */\r\n  registerOnChange(fn: any): void {\r\n    this.onChangeSignal.set(fn);\r\n  }\r\n\r\n  /**\r\n   * Register touch callback (used by Angular forms)\r\n   */\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouchSignal.set(fn);\r\n  }\r\n\r\n  /**\r\n   * Set disabled state (used by Angular forms)\r\n   */\r\n  setDisabledState(isDisabled: boolean): void {\r\n    this.disabledSignal.set(isDisabled);\r\n    \r\n    const element = this.elementSignal();\r\n    if (element) {\r\n      if (isDisabled) {\r\n        element.setAttribute('disabled', '');\r\n      } else {\r\n        element.removeAttribute('disabled');\r\n      }\r\n    }\r\n  }\r\n  // #endregion\r\n\r\n  // Add range picker methods\r\n  public setRange(start: DateTuple, end: DateTuple): void {\r\n    const element = this.elementSignal();\r\n    if (element) {\r\n      (element as any).setRange(start, end);\r\n    }\r\n  }\r\n\r\n  public getRange(): { start: DateTuple | null; end: DateTuple | null } {\r\n    const element = this.elementSignal();\r\n    if (element) {\r\n      return (element as any).getRange() || { start: null, end: null };\r\n    }\r\n    return { start: null, end: null };\r\n  }\r\n\r\n  public clear(): void {\r\n    const element = this.elementSignal();\r\n    if (element) {\r\n      (element as any).clear();\r\n    }\r\n  }\r\n}\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport { NgxPersianDatepickerComponent } from './ngx-persian-datepicker.component';\r\nimport { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\n\r\n// Import is handled by index.ts to ensure it's only registered once\r\n// The comment is kept for documentation purposes\r\n\r\n/**\r\n * Module for the Persian DatePicker Angular wrapper component.\r\n * \r\n * This module can be imported in traditional Angular applications that use modules.\r\n * For standalone components, you can import the NgxPersianDatepickerComponent directly.\r\n * \r\n * The persian-datepicker web component is bundled directly with this package, so you \r\n * don't need to add any extra scripts to your angular.json file.\r\n * \r\n * @example\r\n * ```typescript\r\n * // In your app.module.ts or feature module\r\n * import { NgxPersianDatepickerModule } from 'ngx-persian-datepicker-element';\r\n * \r\n * @NgModule({\r\n *   imports: [\r\n *     // ... other imports\r\n *     NgxPersianDatepickerModule\r\n *   ],\r\n *   // ... declarations, providers, etc.\r\n * })\r\n * export class AppModule { }\r\n * ```\r\n */\r\n@NgModule({\r\n  declarations: [],\r\n  imports: [\r\n    CommonModule,\r\n    FormsModule,\r\n    ReactiveFormsModule,\r\n    NgxPersianDatepickerComponent // Import as a standalone component\r\n  ],\r\n  exports: [\r\n    NgxPersianDatepickerComponent\r\n  ],\r\n  schemas: [CUSTOM_ELEMENTS_SCHEMA] // Required for using custom elements in Angular templates\r\n})\r\nexport class NgxPersianDatepickerModule { } ","// Register the web component first\n// Use a more explicit import path to help bundlers resolve the package\nimport 'persian-datepicker-element/dist/persian-datepicker-element.min.js';\n\n// Then export the Angular components\nexport * from './persian-datepicker-types';\nexport * from './ngx-persian-datepicker.component';\nexport * from './ngx-persian-datepicker.module'; ","/*\r\n * Public API Surface of ngx-persian-datepicker-element\r\n */\r\n\r\nexport * from './lib/index';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}