{"version":3,"file":"eherve-angular-material-datatable-cell-date-value.component-SmZolfO2.mjs","sources":["../../../projects/datatable/src/lib/pipes/moment-format.pipe.ts","../../../projects/datatable/src/lib/components/cell-date-value/cell-date-value.component.ts","../../../projects/datatable/src/lib/components/cell-date-value/cell-date-value.component.html"],"sourcesContent":["/** @format */\n\nimport { Pipe, PipeTransform } from '@angular/core';\nimport moment, { Moment } from 'moment';\n\n@Pipe({ name: 'momentFormat' })\nexport class MomentFormatPipe implements PipeTransform {\n  transform(data: any, options: { format?: string; locale?: string }): string {\n    const date = this.getMoment(data);\n    if (!date) return '';\n    const format = options?.format || 'LLL';\n    return options?.locale ? date.locale(options.locale).format(format) : date.format(format);\n  }\n\n  private getMoment(data: any): Moment | null {\n    if (typeof data === 'string') return moment(data);\n    if (typeof data === 'number') return moment(data);\n    if (data instanceof Date) return moment(data);\n    if (moment.isMoment(data)) return data.clone();\n    if (typeof data?.valueOf === 'function') {\n      const value = data.valueOf();\n      if (typeof value === 'number') return moment(data);\n    }\n    return null;\n  }\n}\n","/** @format */\n\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectorRef, Component, inject, Input, OnDestroy, OnInit } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MomentFormatPipe } from '../../pipes/moment-format.pipe';\nimport { duration } from '../../tools/duration.tool';\nimport { get } from '../../tools/get.tool';\nimport { DatatableDateColumn, DatatableValueColumn } from '../../types/datatable-column.type';\n\n@Component({\n  selector: 'lib-cell-date-value',\n  imports: [CommonModule, MatIconModule, MomentFormatPipe],\n  templateUrl: './cell-date-value.component.html',\n  styleUrl: './cell-date-value.component.scss',\n})\nexport class CellDateValueComponent<Record> implements OnInit, OnDestroy {\n  private changeDetectorRef = inject(ChangeDetectorRef);\n\n  @Input()\n  column!: DatatableDateColumn<Record>;\n\n  @Input('row')\n  set setRow(row: any) {\n    this.row = row;\n    this.value = get(this.row, this.column.property);\n    if (typeof (this.column as DatatableValueColumn<Record>).transform === 'function') {\n      this.value = (this.column as DatatableValueColumn<Record>).transform!(this.value, this.row);\n    }\n    this.duration = duration(this.value, this.column);\n  }\n  row: any;\n\n  value?: any;\n  duration?: string | null;\n\n  private refreshInterval: any;\n  ngOnInit(): void {\n    if (this.column.durationRefreshTime) {\n      this.refreshInterval = setInterval(() => {\n        this.duration = duration(this.value, this.column);\n        this.changeDetectorRef.detectChanges();\n      }, this.column.durationRefreshTime);\n    }\n  }\n\n  ngOnDestroy(): void {\n    if (this.refreshInterval) clearInterval(this.refreshInterval);\n  }\n}\n","<!-- @format -->\n\n@if (value) {\n  <span class=\"date\"> {{ value | momentFormat: column }} </span>\n  @if (column.withDuration) {\n    <span class=\"duration\"> ({{ duration }}) </span>\n  }\n}\n"],"names":[],"mappings":"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"}