@neural-ui/core 1.6.1 → 1.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/fesm2022/neural-ui-core-accordion.mjs +7 -11
  2. package/fesm2022/neural-ui-core-accordion.mjs.map +1 -1
  3. package/fesm2022/neural-ui-core-alert.mjs +14 -25
  4. package/fesm2022/neural-ui-core-alert.mjs.map +1 -1
  5. package/fesm2022/neural-ui-core-autocomplete.mjs +28 -53
  6. package/fesm2022/neural-ui-core-autocomplete.mjs.map +1 -1
  7. package/fesm2022/neural-ui-core-avatar.mjs +13 -23
  8. package/fesm2022/neural-ui-core-avatar.mjs.map +1 -1
  9. package/fesm2022/neural-ui-core-badge.mjs +9 -15
  10. package/fesm2022/neural-ui-core-badge.mjs.map +1 -1
  11. package/fesm2022/neural-ui-core-block-ui.mjs +11 -16
  12. package/fesm2022/neural-ui-core-block-ui.mjs.map +1 -1
  13. package/fesm2022/neural-ui-core-breadcrumb.mjs +6 -8
  14. package/fesm2022/neural-ui-core-breadcrumb.mjs.map +1 -1
  15. package/fesm2022/neural-ui-core-button.mjs +16 -29
  16. package/fesm2022/neural-ui-core-button.mjs.map +1 -1
  17. package/fesm2022/neural-ui-core-calendar.mjs +20 -37
  18. package/fesm2022/neural-ui-core-calendar.mjs.map +1 -1
  19. package/fesm2022/neural-ui-core-card.mjs +8 -13
  20. package/fesm2022/neural-ui-core-card.mjs.map +1 -1
  21. package/fesm2022/neural-ui-core-chart.mjs +24 -45
  22. package/fesm2022/neural-ui-core-chart.mjs.map +1 -1
  23. package/fesm2022/neural-ui-core-checkbox.mjs +9 -15
  24. package/fesm2022/neural-ui-core-checkbox.mjs.map +1 -1
  25. package/fesm2022/neural-ui-core-chip.mjs +13 -23
  26. package/fesm2022/neural-ui-core-chip.mjs.map +1 -1
  27. package/fesm2022/neural-ui-core-code-block.mjs +17 -31
  28. package/fesm2022/neural-ui-core-code-block.mjs.map +1 -1
  29. package/fesm2022/neural-ui-core-color-picker.mjs +11 -19
  30. package/fesm2022/neural-ui-core-color-picker.mjs.map +1 -1
  31. package/fesm2022/neural-ui-core-command-palette.mjs +11 -16
  32. package/fesm2022/neural-ui-core-command-palette.mjs.map +1 -1
  33. package/fesm2022/neural-ui-core-confirm-dialog.mjs +6 -6
  34. package/fesm2022/neural-ui-core-confirm-dialog.mjs.map +1 -1
  35. package/fesm2022/neural-ui-core-context-menu.mjs +9 -12
  36. package/fesm2022/neural-ui-core-context-menu.mjs.map +1 -1
  37. package/fesm2022/neural-ui-core-dashboard-grid.mjs +7 -11
  38. package/fesm2022/neural-ui-core-dashboard-grid.mjs.map +1 -1
  39. package/fesm2022/neural-ui-core-date-input.mjs +57 -111
  40. package/fesm2022/neural-ui-core-date-input.mjs.map +1 -1
  41. package/fesm2022/neural-ui-core-divider.mjs +5 -7
  42. package/fesm2022/neural-ui-core-divider.mjs.map +1 -1
  43. package/fesm2022/neural-ui-core-empty-state.mjs +8 -13
  44. package/fesm2022/neural-ui-core-empty-state.mjs.map +1 -1
  45. package/fesm2022/neural-ui-core-filter-bar.mjs +11 -19
  46. package/fesm2022/neural-ui-core-filter-bar.mjs.map +1 -1
  47. package/fesm2022/neural-ui-core-icon.mjs +7 -11
  48. package/fesm2022/neural-ui-core-icon.mjs.map +1 -1
  49. package/fesm2022/neural-ui-core-image-gallery.mjs +13 -23
  50. package/fesm2022/neural-ui-core-image-gallery.mjs.map +1 -1
  51. package/fesm2022/neural-ui-core-image-viewer.mjs +14 -22
  52. package/fesm2022/neural-ui-core-image-viewer.mjs.map +1 -1
  53. package/fesm2022/neural-ui-core-input-otp.mjs +11 -19
  54. package/fesm2022/neural-ui-core-input-otp.mjs.map +1 -1
  55. package/fesm2022/neural-ui-core-input.mjs +35 -67
  56. package/fesm2022/neural-ui-core-input.mjs.map +1 -1
  57. package/fesm2022/neural-ui-core-kanban.mjs +9 -15
  58. package/fesm2022/neural-ui-core-kanban.mjs.map +1 -1
  59. package/fesm2022/neural-ui-core-knob.mjs +22 -41
  60. package/fesm2022/neural-ui-core-knob.mjs.map +1 -1
  61. package/fesm2022/neural-ui-core-meter-group.mjs +13 -23
  62. package/fesm2022/neural-ui-core-meter-group.mjs.map +1 -1
  63. package/fesm2022/neural-ui-core-modal.mjs +11 -16
  64. package/fesm2022/neural-ui-core-modal.mjs.map +1 -1
  65. package/fesm2022/neural-ui-core-multiselect.mjs +39 -72
  66. package/fesm2022/neural-ui-core-multiselect.mjs.map +1 -1
  67. package/fesm2022/neural-ui-core-nav.mjs +13 -22
  68. package/fesm2022/neural-ui-core-nav.mjs.map +1 -1
  69. package/fesm2022/neural-ui-core-notification-center.mjs +9 -12
  70. package/fesm2022/neural-ui-core-notification-center.mjs.map +1 -1
  71. package/fesm2022/neural-ui-core-number-input.mjs +19 -35
  72. package/fesm2022/neural-ui-core-number-input.mjs.map +1 -1
  73. package/fesm2022/neural-ui-core-pagination.mjs +9 -15
  74. package/fesm2022/neural-ui-core-pagination.mjs.map +1 -1
  75. package/fesm2022/neural-ui-core-popover.mjs +14 -22
  76. package/fesm2022/neural-ui-core-popover.mjs.map +1 -1
  77. package/fesm2022/neural-ui-core-progress-bar.mjs +11 -19
  78. package/fesm2022/neural-ui-core-progress-bar.mjs.map +1 -1
  79. package/fesm2022/neural-ui-core-radio.mjs +15 -24
  80. package/fesm2022/neural-ui-core-radio.mjs.map +1 -1
  81. package/fesm2022/neural-ui-core-rating.mjs +8 -13
  82. package/fesm2022/neural-ui-core-rating.mjs.map +1 -1
  83. package/fesm2022/neural-ui-core-rich-text-editor.mjs +28 -53
  84. package/fesm2022/neural-ui-core-rich-text-editor.mjs.map +1 -1
  85. package/fesm2022/neural-ui-core-scheduler-gantt.mjs +22 -41
  86. package/fesm2022/neural-ui-core-scheduler-gantt.mjs.map +1 -1
  87. package/fesm2022/neural-ui-core-select.mjs +43 -77
  88. package/fesm2022/neural-ui-core-select.mjs.map +1 -1
  89. package/fesm2022/neural-ui-core-sidebar.mjs +12 -21
  90. package/fesm2022/neural-ui-core-sidebar.mjs.map +1 -1
  91. package/fesm2022/neural-ui-core-skeleton.mjs +7 -11
  92. package/fesm2022/neural-ui-core-skeleton.mjs.map +1 -1
  93. package/fesm2022/neural-ui-core-slider.mjs +13 -23
  94. package/fesm2022/neural-ui-core-slider.mjs.map +1 -1
  95. package/fesm2022/neural-ui-core-spinner.mjs +10 -17
  96. package/fesm2022/neural-ui-core-spinner.mjs.map +1 -1
  97. package/fesm2022/neural-ui-core-split-button.mjs +15 -27
  98. package/fesm2022/neural-ui-core-split-button.mjs.map +1 -1
  99. package/fesm2022/neural-ui-core-splitter.mjs +6 -9
  100. package/fesm2022/neural-ui-core-splitter.mjs.map +1 -1
  101. package/fesm2022/neural-ui-core-stats-card.mjs +11 -19
  102. package/fesm2022/neural-ui-core-stats-card.mjs.map +1 -1
  103. package/fesm2022/neural-ui-core-stepper.mjs +8 -13
  104. package/fesm2022/neural-ui-core-stepper.mjs.map +1 -1
  105. package/fesm2022/neural-ui-core-switch.mjs +9 -15
  106. package/fesm2022/neural-ui-core-switch.mjs.map +1 -1
  107. package/fesm2022/neural-ui-core-table.mjs +124 -242
  108. package/fesm2022/neural-ui-core-table.mjs.map +1 -1
  109. package/fesm2022/neural-ui-core-tabs.mjs +18 -30
  110. package/fesm2022/neural-ui-core-tabs.mjs.map +1 -1
  111. package/fesm2022/neural-ui-core-textarea.mjs +23 -43
  112. package/fesm2022/neural-ui-core-textarea.mjs.map +1 -1
  113. package/fesm2022/neural-ui-core-timeline-grid.mjs +12 -21
  114. package/fesm2022/neural-ui-core-timeline-grid.mjs.map +1 -1
  115. package/fesm2022/neural-ui-core-timeline.mjs +4 -5
  116. package/fesm2022/neural-ui-core-timeline.mjs.map +1 -1
  117. package/fesm2022/neural-ui-core-toast.mjs +8 -10
  118. package/fesm2022/neural-ui-core-toast.mjs.map +1 -1
  119. package/fesm2022/neural-ui-core-toggle-button-group.mjs +10 -17
  120. package/fesm2022/neural-ui-core-toggle-button-group.mjs.map +1 -1
  121. package/fesm2022/neural-ui-core-toolbar.mjs +8 -13
  122. package/fesm2022/neural-ui-core-toolbar.mjs.map +1 -1
  123. package/fesm2022/neural-ui-core-tooltip.mjs +11 -16
  124. package/fesm2022/neural-ui-core-tooltip.mjs.map +1 -1
  125. package/fesm2022/neural-ui-core-tree-table.mjs +30 -57
  126. package/fesm2022/neural-ui-core-tree-table.mjs.map +1 -1
  127. package/fesm2022/neural-ui-core-tree.mjs +17 -31
  128. package/fesm2022/neural-ui-core-tree.mjs.map +1 -1
  129. package/fesm2022/neural-ui-core-uploader.mjs +47 -91
  130. package/fesm2022/neural-ui-core-uploader.mjs.map +1 -1
  131. package/fesm2022/neural-ui-core-url-state.mjs +5 -7
  132. package/fesm2022/neural-ui-core-url-state.mjs.map +1 -1
  133. package/fesm2022/neural-ui-core-virtual-list.mjs +19 -32
  134. package/fesm2022/neural-ui-core-virtual-list.mjs.map +1 -1
  135. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"neural-ui-core-scheduler-gantt.mjs","sources":["../../../../projects/ui-core/scheduler-gantt/neu-scheduler-gantt.component.ts","../../../../projects/ui-core/scheduler-gantt/neural-ui-core-scheduler-gantt.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n output,\n} from '@angular/core';\nimport {\n NeuTimelineGridComponent,\n type NeuTimelineGridColumn,\n type NeuTimelineGridItem,\n type NeuTimelineGridItemVariant,\n type NeuTimelineGridRow,\n type NeuTimelineGridSlotSelection,\n} from '@neural-ui/core/timeline-grid';\n\nexport type NeuSchedulerGanttScale = 'day' | 'week';\n\nexport interface NeuSchedulerGanttTask {\n id: string;\n title: string;\n start: string | Date;\n end?: string | Date;\n subtitle?: string;\n meta?: string;\n variant?: NeuTimelineGridItemVariant;\n progress?: number;\n}\n\nexport interface NeuSchedulerGanttRow {\n id: string;\n label: string;\n description?: string;\n tasks: NeuSchedulerGanttTask[];\n}\n\nexport interface NeuSchedulerGanttTaskClick {\n rowId: string;\n rowLabel: string;\n task: NeuSchedulerGanttTask;\n}\n\nexport interface NeuSchedulerGanttSlotClick {\n rowId: string;\n columnId: string;\n date: string;\n scale: NeuSchedulerGanttScale;\n}\n\nexport interface NeuSchedulerGanttSelectedSlot {\n rowId: string;\n date: string | Date;\n}\n\n@Component({\n selector: 'neu-scheduler-gantt',\n standalone: true,\n imports: [NeuTimelineGridComponent],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'neu-scheduler-gantt',\n },\n template: `\n @if (showSummary()) {\n <header class=\"neu-scheduler-gantt__summary\">\n <div class=\"neu-scheduler-gantt__summary-copy\">\n <span class=\"neu-scheduler-gantt__title\">{{ title() }}</span>\n <span class=\"neu-scheduler-gantt__range\">{{ rangeLabel() }}</span>\n </div>\n <span class=\"neu-scheduler-gantt__count\">{{ taskCount() }} tasks</span>\n </header>\n }\n\n <neu-timeline-grid\n [columns]=\"gridColumns()\"\n [rows]=\"gridRows()\"\n [compact]=\"compact()\"\n [stickyLabels]=\"stickyLabels()\"\n [minColumnWidth]=\"minColumnWidth()\"\n [selectedItemId]=\"selectedTaskId()\"\n [selectedSlot]=\"gridSelectedSlot()\"\n (itemClick)=\"onTaskClick($event)\"\n (slotClick)=\"onSlotClick($event)\"\n />\n `,\n styleUrl: './neu-scheduler-gantt.component.scss',\n})\nexport class NeuSchedulerGanttComponent {\n readonly rows = input<NeuSchedulerGanttRow[]>([]);\n readonly startDate = input<string | Date | null>(null);\n readonly endDate = input<string | Date | null>(null);\n readonly locale = input<string | undefined>(undefined);\n readonly scale = input<NeuSchedulerGanttScale>('day');\n readonly title = input('Delivery timeline');\n readonly compact = input(false);\n readonly stickyLabels = input(true);\n readonly minColumnWidth = input('112px');\n readonly showSummary = input(true);\n readonly selectedTaskId = input<string | null>(null);\n readonly selectedSlot = input<NeuSchedulerGanttSelectedSlot | null>(null);\n\n readonly taskClick = output<NeuSchedulerGanttTaskClick>();\n readonly slotClick = output<NeuSchedulerGanttSlotClick>();\n\n readonly _bounds = computed(() => {\n const explicitStart = normalizeDate(this.startDate());\n const explicitEnd = normalizeDate(this.endDate());\n const inferred = inferBounds(this.rows());\n const rawStart = explicitStart ?? inferred.start ?? normalizeDate(new Date())!;\n const rawEnd = explicitEnd ?? inferred.end ?? rawStart;\n const min = rawStart.getTime() <= rawEnd.getTime() ? rawStart : rawEnd;\n const max = rawStart.getTime() <= rawEnd.getTime() ? rawEnd : rawStart;\n\n if (this.scale() === 'week') {\n return {\n start: startOfUtcWeek(min),\n end: endOfUtcWeek(max),\n };\n }\n\n return { start: min, end: max };\n });\n\n readonly gridColumns = computed<NeuTimelineGridColumn[]>(() =>\n buildColumns(this._bounds().start, this._bounds().end, this.scale(), this.locale()),\n );\n\n readonly gridRows = computed<NeuTimelineGridRow[]>(() => {\n const bounds = this._bounds();\n const scale = this.scale();\n\n return this.rows().map((row) => ({\n id: row.id,\n label: row.label,\n description: row.description,\n items: row.tasks\n .map((task) => mapTask(task, bounds.start, bounds.end, scale))\n .filter((task): task is NeuTimelineGridItem => task !== null),\n }));\n });\n\n readonly taskCount = computed(() =>\n this.rows().reduce((total, row) => total + row.tasks.length, 0),\n );\n\n readonly rangeLabel = computed(() => {\n const bounds = this._bounds();\n return `${formatRangeDate(bounds.start, this.locale())} - ${formatRangeDate(bounds.end, this.locale())}`;\n });\n\n readonly gridSelectedSlot = computed<NeuTimelineGridSlotSelection | null>(() => {\n const selectedSlot = this.selectedSlot();\n const date = normalizeDate(selectedSlot?.date ?? null);\n if (!selectedSlot || !date) {\n return null;\n }\n\n const columnId =\n this.scale() === 'week' ? toDateKey(startOfUtcWeek(date)) : toDateKey(startOfUtcDay(date));\n\n return { rowId: selectedSlot.rowId, columnId };\n });\n\n private readonly _taskIndex = computed(\n () =>\n new Map(\n this.rows().flatMap((row) =>\n row.tasks.map((task) => [task.id, { rowId: row.id, rowLabel: row.label, task }] as const),\n ),\n ),\n );\n\n onTaskClick(item: NeuTimelineGridItem): void {\n const match = this._taskIndex().get(item.id);\n if (!match) {\n return;\n }\n\n this.taskClick.emit(match);\n }\n\n onSlotClick(selection: NeuTimelineGridSlotSelection): void {\n this.slotClick.emit({\n rowId: selection.rowId,\n columnId: selection.columnId,\n date: selection.columnId,\n scale: this.scale(),\n });\n }\n}\n\nfunction inferBounds(rows: NeuSchedulerGanttRow[]): { start: Date | null; end: Date | null } {\n let start: Date | null = null;\n let end: Date | null = null;\n\n for (const row of rows) {\n for (const task of row.tasks) {\n const taskStart = normalizeDate(task.start);\n const taskEnd = normalizeDate(task.end ?? task.start);\n if (taskStart && (!start || taskStart.getTime() < start.getTime())) {\n start = taskStart;\n }\n if (taskEnd && (!end || taskEnd.getTime() > end.getTime())) {\n end = taskEnd;\n }\n }\n }\n\n return { start, end };\n}\n\nfunction buildColumns(\n start: Date,\n end: Date,\n scale: NeuSchedulerGanttScale,\n locale?: string,\n): NeuTimelineGridColumn[] {\n const columns: NeuTimelineGridColumn[] = [];\n let cursor = scale === 'week' ? startOfUtcWeek(start) : startOfUtcDay(start);\n const limit = scale === 'week' ? startOfUtcWeek(end) : startOfUtcDay(end);\n\n while (cursor.getTime() <= limit.getTime()) {\n columns.push(\n scale === 'week'\n ? {\n id: toDateKey(cursor),\n label: `W${getIsoWeek(cursor)}`,\n description: formatRangeDate(cursor, locale),\n }\n : {\n id: toDateKey(cursor),\n label: formatWeekday(cursor, locale),\n description: formatShortDate(cursor, locale),\n },\n );\n cursor = scale === 'week' ? addUtcDays(cursor, 7) : addUtcDays(cursor, 1);\n }\n\n return columns;\n}\n\nfunction mapTask(\n task: NeuSchedulerGanttTask,\n min: Date,\n max: Date,\n scale: NeuSchedulerGanttScale,\n): NeuTimelineGridItem | null {\n const rawStart = normalizeDate(task.start);\n const rawEnd = normalizeDate(task.end ?? task.start);\n if (!rawStart || !rawEnd) {\n return null;\n }\n\n const start = rawStart.getTime() <= rawEnd.getTime() ? rawStart : rawEnd;\n const end = rawStart.getTime() <= rawEnd.getTime() ? rawEnd : rawStart;\n if (end.getTime() < min.getTime() || start.getTime() > max.getTime()) {\n return null;\n }\n\n const clampedStart = clampDate(start, min, max);\n const clampedEnd = clampDate(end, min, max);\n if (clampedStart.getTime() > clampedEnd.getTime()) {\n return null;\n }\n\n if (scale === 'week') {\n const weekStart = startOfUtcWeek(clampedStart);\n const weekEnd = startOfUtcWeek(clampedEnd);\n return {\n id: task.id,\n title: task.title,\n start: toDateKey(weekStart),\n span: diffInWeeks(weekStart, weekEnd) + 1,\n subtitle: task.subtitle,\n meta: taskMeta(task),\n variant: task.variant,\n };\n }\n\n return {\n id: task.id,\n title: task.title,\n start: toDateKey(clampedStart),\n span: diffInDays(clampedStart, clampedEnd) + 1,\n subtitle: task.subtitle,\n meta: taskMeta(task),\n variant: task.variant,\n };\n}\n\nfunction taskMeta(task: NeuSchedulerGanttTask): string | undefined {\n const progress = task.progress == null ? null : `${Math.max(0, Math.min(100, task.progress))}%`;\n if (task.meta && progress) {\n return `${task.meta} · ${progress}`;\n }\n return task.meta ?? progress ?? undefined;\n}\n\nfunction normalizeDate(value: string | Date | null | undefined): Date | null {\n if (!value) {\n return null;\n }\n\n const date = value instanceof Date ? value : new Date(value);\n if (Number.isNaN(date.getTime())) {\n return null;\n }\n\n return startOfUtcDay(date);\n}\n\nfunction startOfUtcDay(date: Date): Date {\n return new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()));\n}\n\nfunction startOfUtcWeek(date: Date): Date {\n const day = date.getUTCDay() || 7;\n return addUtcDays(startOfUtcDay(date), 1 - day);\n}\n\nfunction endOfUtcWeek(date: Date): Date {\n return addUtcDays(startOfUtcWeek(date), 6);\n}\n\nfunction addUtcDays(date: Date, days: number): Date {\n const copy = new Date(date);\n copy.setUTCDate(copy.getUTCDate() + days);\n return startOfUtcDay(copy);\n}\n\nfunction diffInDays(start: Date, end: Date): number {\n return Math.round((end.getTime() - start.getTime()) / 86400000);\n}\n\nfunction diffInWeeks(start: Date, end: Date): number {\n return Math.round((startOfUtcWeek(end).getTime() - startOfUtcWeek(start).getTime()) / 604800000);\n}\n\nfunction clampDate(date: Date, min: Date, max: Date): Date {\n if (date.getTime() < min.getTime()) {\n return min;\n }\n if (date.getTime() > max.getTime()) {\n return max;\n }\n return date;\n}\n\nfunction toDateKey(date: Date): string {\n return date.toISOString().slice(0, 10);\n}\n\nfunction formatWeekday(date: Date, locale?: string): string {\n return new Intl.DateTimeFormat(locale, { weekday: 'short', timeZone: 'UTC' }).format(date);\n}\n\nfunction formatShortDate(date: Date, locale?: string): string {\n return new Intl.DateTimeFormat(locale, {\n month: 'short',\n day: 'numeric',\n timeZone: 'UTC',\n }).format(date);\n}\n\nfunction formatRangeDate(date: Date, locale?: string): string {\n return new Intl.DateTimeFormat(locale, {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n timeZone: 'UTC',\n }).format(date);\n}\n\nfunction getIsoWeek(date: Date): number {\n const target = new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()));\n const dayNr = target.getUTCDay() || 7;\n target.setUTCDate(target.getUTCDate() + 4 - dayNr);\n const yearStart = new Date(Date.UTC(target.getUTCFullYear(), 0, 1));\n return Math.ceil(((target.getTime() - yearStart.getTime()) / 86400000 + 1) / 7);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"neural-ui-core-scheduler-gantt.mjs","sources":["../../../../projects/ui-core/scheduler-gantt/neu-scheduler-gantt.component.ts","../../../../projects/ui-core/scheduler-gantt/neural-ui-core-scheduler-gantt.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n output,\n} from '@angular/core';\nimport {\n NeuTimelineGridComponent,\n type NeuTimelineGridColumn,\n type NeuTimelineGridItem,\n type NeuTimelineGridItemVariant,\n type NeuTimelineGridRow,\n type NeuTimelineGridSlotSelection,\n} from '@neural-ui/core/timeline-grid';\n\nexport type NeuSchedulerGanttScale = 'day' | 'week';\n\nexport interface NeuSchedulerGanttTask {\n id: string;\n title: string;\n start: string | Date;\n end?: string | Date;\n subtitle?: string;\n meta?: string;\n variant?: NeuTimelineGridItemVariant;\n progress?: number;\n}\n\nexport interface NeuSchedulerGanttRow {\n id: string;\n label: string;\n description?: string;\n tasks: NeuSchedulerGanttTask[];\n}\n\nexport interface NeuSchedulerGanttTaskClick {\n rowId: string;\n rowLabel: string;\n task: NeuSchedulerGanttTask;\n}\n\nexport interface NeuSchedulerGanttSlotClick {\n rowId: string;\n columnId: string;\n date: string;\n scale: NeuSchedulerGanttScale;\n}\n\nexport interface NeuSchedulerGanttSelectedSlot {\n rowId: string;\n date: string | Date;\n}\n\n@Component({\n selector: 'neu-scheduler-gantt',\n standalone: true,\n imports: [NeuTimelineGridComponent],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'neu-scheduler-gantt',\n },\n template: `\n @if (showSummary()) {\n <header class=\"neu-scheduler-gantt__summary\">\n <div class=\"neu-scheduler-gantt__summary-copy\">\n <span class=\"neu-scheduler-gantt__title\">{{ title() }}</span>\n <span class=\"neu-scheduler-gantt__range\">{{ rangeLabel() }}</span>\n </div>\n <span class=\"neu-scheduler-gantt__count\">{{ taskCount() }} tasks</span>\n </header>\n }\n\n <neu-timeline-grid\n [columns]=\"gridColumns()\"\n [rows]=\"gridRows()\"\n [compact]=\"compact()\"\n [stickyLabels]=\"stickyLabels()\"\n [minColumnWidth]=\"minColumnWidth()\"\n [selectedItemId]=\"selectedTaskId()\"\n [selectedSlot]=\"gridSelectedSlot()\"\n (itemClick)=\"onTaskClick($event)\"\n (slotClick)=\"onSlotClick($event)\"\n />\n `,\n styleUrl: './neu-scheduler-gantt.component.scss',\n})\nexport class NeuSchedulerGanttComponent {\n readonly rows = input<NeuSchedulerGanttRow[]>([]);\n readonly startDate = input<string | Date | null>(null);\n readonly endDate = input<string | Date | null>(null);\n readonly locale = input<string | undefined>(undefined);\n readonly scale = input<NeuSchedulerGanttScale>('day');\n readonly title = input('Delivery timeline');\n readonly compact = input(false);\n readonly stickyLabels = input(true);\n readonly minColumnWidth = input('112px');\n readonly showSummary = input(true);\n readonly selectedTaskId = input<string | null>(null);\n readonly selectedSlot = input<NeuSchedulerGanttSelectedSlot | null>(null);\n\n readonly taskClick = output<NeuSchedulerGanttTaskClick>();\n readonly slotClick = output<NeuSchedulerGanttSlotClick>();\n\n readonly _bounds = computed(() => {\n const explicitStart = normalizeDate(this.startDate());\n const explicitEnd = normalizeDate(this.endDate());\n const inferred = inferBounds(this.rows());\n const rawStart = explicitStart ?? inferred.start ?? normalizeDate(new Date())!;\n const rawEnd = explicitEnd ?? inferred.end ?? rawStart;\n const min = rawStart.getTime() <= rawEnd.getTime() ? rawStart : rawEnd;\n const max = rawStart.getTime() <= rawEnd.getTime() ? rawEnd : rawStart;\n\n if (this.scale() === 'week') {\n return {\n start: startOfUtcWeek(min),\n end: endOfUtcWeek(max),\n };\n }\n\n return { start: min, end: max };\n });\n\n readonly gridColumns = computed<NeuTimelineGridColumn[]>(() =>\n buildColumns(this._bounds().start, this._bounds().end, this.scale(), this.locale()),\n );\n\n readonly gridRows = computed<NeuTimelineGridRow[]>(() => {\n const bounds = this._bounds();\n const scale = this.scale();\n\n return this.rows().map((row) => ({\n id: row.id,\n label: row.label,\n description: row.description,\n items: row.tasks\n .map((task) => mapTask(task, bounds.start, bounds.end, scale))\n .filter((task): task is NeuTimelineGridItem => task !== null),\n }));\n });\n\n readonly taskCount = computed(() =>\n this.rows().reduce((total, row) => total + row.tasks.length, 0),\n );\n\n readonly rangeLabel = computed(() => {\n const bounds = this._bounds();\n return `${formatRangeDate(bounds.start, this.locale())} - ${formatRangeDate(bounds.end, this.locale())}`;\n });\n\n readonly gridSelectedSlot = computed<NeuTimelineGridSlotSelection | null>(() => {\n const selectedSlot = this.selectedSlot();\n const date = normalizeDate(selectedSlot?.date ?? null);\n if (!selectedSlot || !date) {\n return null;\n }\n\n const columnId =\n this.scale() === 'week' ? toDateKey(startOfUtcWeek(date)) : toDateKey(startOfUtcDay(date));\n\n return { rowId: selectedSlot.rowId, columnId };\n });\n\n private readonly _taskIndex = computed(\n () =>\n new Map(\n this.rows().flatMap((row) =>\n row.tasks.map((task) => [task.id, { rowId: row.id, rowLabel: row.label, task }] as const),\n ),\n ),\n );\n\n onTaskClick(item: NeuTimelineGridItem): void {\n const match = this._taskIndex().get(item.id);\n if (!match) {\n return;\n }\n\n this.taskClick.emit(match);\n }\n\n onSlotClick(selection: NeuTimelineGridSlotSelection): void {\n this.slotClick.emit({\n rowId: selection.rowId,\n columnId: selection.columnId,\n date: selection.columnId,\n scale: this.scale(),\n });\n }\n}\n\nfunction inferBounds(rows: NeuSchedulerGanttRow[]): { start: Date | null; end: Date | null } {\n let start: Date | null = null;\n let end: Date | null = null;\n\n for (const row of rows) {\n for (const task of row.tasks) {\n const taskStart = normalizeDate(task.start);\n const taskEnd = normalizeDate(task.end ?? task.start);\n if (taskStart && (!start || taskStart.getTime() < start.getTime())) {\n start = taskStart;\n }\n if (taskEnd && (!end || taskEnd.getTime() > end.getTime())) {\n end = taskEnd;\n }\n }\n }\n\n return { start, end };\n}\n\nfunction buildColumns(\n start: Date,\n end: Date,\n scale: NeuSchedulerGanttScale,\n locale?: string,\n): NeuTimelineGridColumn[] {\n const columns: NeuTimelineGridColumn[] = [];\n let cursor = scale === 'week' ? startOfUtcWeek(start) : startOfUtcDay(start);\n const limit = scale === 'week' ? startOfUtcWeek(end) : startOfUtcDay(end);\n\n while (cursor.getTime() <= limit.getTime()) {\n columns.push(\n scale === 'week'\n ? {\n id: toDateKey(cursor),\n label: `W${getIsoWeek(cursor)}`,\n description: formatRangeDate(cursor, locale),\n }\n : {\n id: toDateKey(cursor),\n label: formatWeekday(cursor, locale),\n description: formatShortDate(cursor, locale),\n },\n );\n cursor = scale === 'week' ? addUtcDays(cursor, 7) : addUtcDays(cursor, 1);\n }\n\n return columns;\n}\n\nfunction mapTask(\n task: NeuSchedulerGanttTask,\n min: Date,\n max: Date,\n scale: NeuSchedulerGanttScale,\n): NeuTimelineGridItem | null {\n const rawStart = normalizeDate(task.start);\n const rawEnd = normalizeDate(task.end ?? task.start);\n if (!rawStart || !rawEnd) {\n return null;\n }\n\n const start = rawStart.getTime() <= rawEnd.getTime() ? rawStart : rawEnd;\n const end = rawStart.getTime() <= rawEnd.getTime() ? rawEnd : rawStart;\n if (end.getTime() < min.getTime() || start.getTime() > max.getTime()) {\n return null;\n }\n\n const clampedStart = clampDate(start, min, max);\n const clampedEnd = clampDate(end, min, max);\n if (clampedStart.getTime() > clampedEnd.getTime()) {\n return null;\n }\n\n if (scale === 'week') {\n const weekStart = startOfUtcWeek(clampedStart);\n const weekEnd = startOfUtcWeek(clampedEnd);\n return {\n id: task.id,\n title: task.title,\n start: toDateKey(weekStart),\n span: diffInWeeks(weekStart, weekEnd) + 1,\n subtitle: task.subtitle,\n meta: taskMeta(task),\n variant: task.variant,\n };\n }\n\n return {\n id: task.id,\n title: task.title,\n start: toDateKey(clampedStart),\n span: diffInDays(clampedStart, clampedEnd) + 1,\n subtitle: task.subtitle,\n meta: taskMeta(task),\n variant: task.variant,\n };\n}\n\nfunction taskMeta(task: NeuSchedulerGanttTask): string | undefined {\n const progress = task.progress == null ? null : `${Math.max(0, Math.min(100, task.progress))}%`;\n if (task.meta && progress) {\n return `${task.meta} · ${progress}`;\n }\n return task.meta ?? progress ?? undefined;\n}\n\nfunction normalizeDate(value: string | Date | null | undefined): Date | null {\n if (!value) {\n return null;\n }\n\n const date = value instanceof Date ? value : new Date(value);\n if (Number.isNaN(date.getTime())) {\n return null;\n }\n\n return startOfUtcDay(date);\n}\n\nfunction startOfUtcDay(date: Date): Date {\n return new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()));\n}\n\nfunction startOfUtcWeek(date: Date): Date {\n const day = date.getUTCDay() || 7;\n return addUtcDays(startOfUtcDay(date), 1 - day);\n}\n\nfunction endOfUtcWeek(date: Date): Date {\n return addUtcDays(startOfUtcWeek(date), 6);\n}\n\nfunction addUtcDays(date: Date, days: number): Date {\n const copy = new Date(date);\n copy.setUTCDate(copy.getUTCDate() + days);\n return startOfUtcDay(copy);\n}\n\nfunction diffInDays(start: Date, end: Date): number {\n return Math.round((end.getTime() - start.getTime()) / 86400000);\n}\n\nfunction diffInWeeks(start: Date, end: Date): number {\n return Math.round((startOfUtcWeek(end).getTime() - startOfUtcWeek(start).getTime()) / 604800000);\n}\n\nfunction clampDate(date: Date, min: Date, max: Date): Date {\n if (date.getTime() < min.getTime()) {\n return min;\n }\n if (date.getTime() > max.getTime()) {\n return max;\n }\n return date;\n}\n\nfunction toDateKey(date: Date): string {\n return date.toISOString().slice(0, 10);\n}\n\nfunction formatWeekday(date: Date, locale?: string): string {\n return new Intl.DateTimeFormat(locale, { weekday: 'short', timeZone: 'UTC' }).format(date);\n}\n\nfunction formatShortDate(date: Date, locale?: string): string {\n return new Intl.DateTimeFormat(locale, {\n month: 'short',\n day: 'numeric',\n timeZone: 'UTC',\n }).format(date);\n}\n\nfunction formatRangeDate(date: Date, locale?: string): string {\n return new Intl.DateTimeFormat(locale, {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n timeZone: 'UTC',\n }).format(date);\n}\n\nfunction getIsoWeek(date: Date): number {\n const target = new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()));\n const dayNr = target.getUTCDay() || 7;\n target.setUTCDate(target.getUTCDate() + 4 - dayNr);\n const yearStart = new Date(Date.UTC(target.getUTCFullYear(), 0, 1));\n return Math.ceil(((target.getTime() - yearStart.getTime()) / 86400000 + 1) / 7);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -22,10 +22,10 @@ import { NG_VALUE_ACCESSOR } from '@angular/forms';
22
22
  */
23
23
  class NeuSelectItemDirective {
24
24
  templateRef = inject(TemplateRef);
25
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: NeuSelectItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
26
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.4", type: NeuSelectItemDirective, isStandalone: true, selector: "[neuSelectItem]", ngImport: i0 });
25
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: NeuSelectItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
26
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.17", type: NeuSelectItemDirective, isStandalone: true, selector: "[neuSelectItem]", ngImport: i0 });
27
27
  }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: NeuSelectItemDirective, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: NeuSelectItemDirective, decorators: [{
29
29
  type: Directive,
30
30
  args: [{ selector: '[neuSelectItem]', standalone: true }]
31
31
  }] });
@@ -43,10 +43,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
43
43
  */
44
44
  class NeuSelectSelectedDirective {
45
45
  templateRef = inject(TemplateRef);
46
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: NeuSelectSelectedDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
47
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.4", type: NeuSelectSelectedDirective, isStandalone: true, selector: "[neuSelectSelected]", ngImport: i0 });
46
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: NeuSelectSelectedDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
47
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.17", type: NeuSelectSelectedDirective, isStandalone: true, selector: "[neuSelectSelected]", ngImport: i0 });
48
48
  }
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: NeuSelectSelectedDirective, decorators: [{
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: NeuSelectSelectedDirective, decorators: [{
50
50
  type: Directive,
51
51
  args: [{ selector: '[neuSelectSelected]', standalone: true }]
52
52
  }] });
@@ -75,8 +75,7 @@ class NeuSelectComponent {
75
75
  _viewportMargin = 16;
76
76
  _panelMaxHeight = 240;
77
77
  _urlParamSignals = new Map();
78
- _viewport = viewChild(CdkVirtualScrollViewport, /* @ts-ignore */
79
- ...(ngDevMode ? [{ debugName: "_viewport" }] : /* istanbul ignore next */ []));
78
+ _viewport = viewChild(CdkVirtualScrollViewport, ...(ngDevMode ? [{ debugName: "_viewport" }] : /* istanbul ignore next */ []));
80
79
  _getUrlParamSignal(key) {
81
80
  let paramSignal = this._urlParamSignals.get(key);
82
81
  if (!paramSignal) {
@@ -103,63 +102,45 @@ class NeuSelectComponent {
103
102
  _triggerId = `neu-select-trigger-${_neuSelectIdSeq++}`;
104
103
  _panelId = `${this._triggerId}-panel`;
105
104
  /** Template personalizado para cada opción del dropdown / Custom template for each dropdown option */
106
- itemTpl = contentChild(NeuSelectItemDirective, /* @ts-ignore */
107
- ...(ngDevMode ? [{ debugName: "itemTpl" }] : /* istanbul ignore next */ []));
105
+ itemTpl = contentChild(NeuSelectItemDirective, ...(ngDevMode ? [{ debugName: "itemTpl" }] : /* istanbul ignore next */ []));
108
106
  /** Template personalizado para el valor seleccionado en el trigger / Custom template for the selected value in the trigger */
109
- selectedItemTpl = contentChild(NeuSelectSelectedDirective, /* @ts-ignore */
110
- ...(ngDevMode ? [{ debugName: "selectedItemTpl" }] : /* istanbul ignore next */ []));
107
+ selectedItemTpl = contentChild(NeuSelectSelectedDirective, ...(ngDevMode ? [{ debugName: "selectedItemTpl" }] : /* istanbul ignore next */ []));
111
108
  /** Opciones del dropdown / Dropdown options */
112
- options = input([], /* @ts-ignore */
113
- ...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
109
+ options = input([], ...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
114
110
  /** Texto del floating label / Floating label text */
115
- label = input('', /* @ts-ignore */
116
- ...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
111
+ label = input('', ...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
117
112
  /** Placeholder cuando no hay selección / Placeholder when there is no selection */
118
- placeholder = input('Seleccionar...', /* @ts-ignore */
119
- ...(ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []));
113
+ placeholder = input('Seleccionar...', ...(ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []));
120
114
  /** Mensaje de error / Error message */
121
- errorMessage = input('', /* @ts-ignore */
122
- ...(ngDevMode ? [{ debugName: "errorMessage" }] : /* istanbul ignore next */ []));
115
+ errorMessage = input('', ...(ngDevMode ? [{ debugName: "errorMessage" }] : /* istanbul ignore next */ []));
123
116
  /** Texto de ayuda bajo el campo / Helper text below the field */
124
- hint = input('', /* @ts-ignore */
125
- ...(ngDevMode ? [{ debugName: "hint" }] : /* istanbul ignore next */ []));
117
+ hint = input('', ...(ngDevMode ? [{ debugName: "hint" }] : /* istanbul ignore next */ []));
126
118
  /** Deshabilita el select / Disables the select */
127
- disabled = input(false, /* @ts-ignore */
128
- ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
119
+ disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
129
120
  /** Muestra el label como flotante (true) o como label estático encima (false, por defecto) / Shows the label as floating (true) or static above (false, default) */
130
- floatingLabel = input(false, /* @ts-ignore */
131
- ...(ngDevMode ? [{ debugName: "floatingLabel" }] : /* istanbul ignore next */ []));
121
+ floatingLabel = input(false, ...(ngDevMode ? [{ debugName: "floatingLabel" }] : /* istanbul ignore next */ []));
132
122
  /** Tamaño del campo: 'sm' = 36px | 'md' = 48px | 'lg' = 56px / Field size */
133
- size = input('md', /* @ts-ignore */
134
- ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
123
+ size = input('md', ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
135
124
  /** Activa input de búsqueda/filtro en el panel / Activates the search/filter input in the panel */
136
- searchable = input(false, /* @ts-ignore */
137
- ...(ngDevMode ? [{ debugName: "searchable" }] : /* istanbul ignore next */ []));
125
+ searchable = input(false, ...(ngDevMode ? [{ debugName: "searchable" }] : /* istanbul ignore next */ []));
138
126
  /** Placeholder del input de búsqueda / Search input placeholder */
139
- searchPlaceholder = input('Buscar...', /* @ts-ignore */
140
- ...(ngDevMode ? [{ debugName: "searchPlaceholder" }] : /* istanbul ignore next */ []));
127
+ searchPlaceholder = input('Buscar...', ...(ngDevMode ? [{ debugName: "searchPlaceholder" }] : /* istanbul ignore next */ []));
141
128
  /** Muestra un botón para limpiar la selección / Shows a button to clear the selection */
142
- clearable = input(false, /* @ts-ignore */
143
- ...(ngDevMode ? [{ debugName: "clearable" }] : /* istanbul ignore next */ []));
129
+ clearable = input(false, ...(ngDevMode ? [{ debugName: "clearable" }] : /* istanbul ignore next */ []));
144
130
  /** Habilita scroll virtual para listas largas / Enables virtual scrolling for large option lists */
145
- virtualScroll = input(false, /* @ts-ignore */
146
- ...(ngDevMode ? [{ debugName: "virtualScroll" }] : /* istanbul ignore next */ []));
131
+ virtualScroll = input(false, ...(ngDevMode ? [{ debugName: "virtualScroll" }] : /* istanbul ignore next */ []));
147
132
  /** Número de opciones visibles en el viewport virtual / Number of visible options in the virtual viewport */
148
- virtualScrollVisibleItems = input(8, /* @ts-ignore */
149
- ...(ngDevMode ? [{ debugName: "virtualScrollVisibleItems" }] : /* istanbul ignore next */ []));
133
+ virtualScrollVisibleItems = input(8, ...(ngDevMode ? [{ debugName: "virtualScrollVisibleItems" }] : /* istanbul ignore next */ []));
150
134
  /** Texto cuando no hay opciones tras filtrar / Text when no options remain after filtering */
151
- noResultsMessage = input('Sin resultados', /* @ts-ignore */
152
- ...(ngDevMode ? [{ debugName: "noResultsMessage" }] : /* istanbul ignore next */ []));
135
+ noResultsMessage = input('Sin resultados', ...(ngDevMode ? [{ debugName: "noResultsMessage" }] : /* istanbul ignore next */ []));
153
136
  /** Aria-label del botón de limpiar / Aria-label for the clear button */
154
- clearAriaLabel = input('Limpiar selección', /* @ts-ignore */
155
- ...(ngDevMode ? [{ debugName: "clearAriaLabel" }] : /* istanbul ignore next */ []));
137
+ clearAriaLabel = input('Limpiar selección', ...(ngDevMode ? [{ debugName: "clearAriaLabel" }] : /* istanbul ignore next */ []));
156
138
  /**
157
139
  * Sincroniza el valor seleccionado con este query param de la URL.
158
140
  * Al seleccionar una opción se añade `?{urlParam}=value` a la URL.
159
141
  * Pasar `null` (default) deshabilita la sincronización.
160
142
  */
161
- urlParam = input(null, /* @ts-ignore */
162
- ...(ngDevMode ? [{ debugName: "urlParam" }] : /* istanbul ignore next */ []));
143
+ urlParam = input(null, ...(ngDevMode ? [{ debugName: "urlParam" }] : /* istanbul ignore next */ []));
163
144
  /**
164
145
  * Emite el objeto NeuSelectOption completo (incluyendo data) al seleccionar una opción.
165
146
  * Emite null al limpiar la selección.
@@ -167,12 +148,9 @@ class NeuSelectComponent {
167
148
  */
168
149
  selectionChange = output();
169
150
  // Estado interno
170
- _value = signal(null, /* @ts-ignore */
171
- ...(ngDevMode ? [{ debugName: "_value" }] : /* istanbul ignore next */ []));
172
- isOpen = signal(false, /* @ts-ignore */
173
- ...(ngDevMode ? [{ debugName: "isOpen" }] : /* istanbul ignore next */ []));
174
- searchQuery = signal('', /* @ts-ignore */
175
- ...(ngDevMode ? [{ debugName: "searchQuery" }] : /* istanbul ignore next */ []));
151
+ _value = signal(null, ...(ngDevMode ? [{ debugName: "_value" }] : /* istanbul ignore next */ []));
152
+ isOpen = signal(false, ...(ngDevMode ? [{ debugName: "isOpen" }] : /* istanbul ignore next */ []));
153
+ searchQuery = signal('', ...(ngDevMode ? [{ debugName: "searchQuery" }] : /* istanbul ignore next */ []));
176
154
  overlayPositions = [
177
155
  {
178
156
  originX: 'start',
@@ -211,12 +189,9 @@ class NeuSelectComponent {
211
189
  left: null,
212
190
  width: null,
213
191
  maxHeight: null,
214
- }, /* @ts-ignore */
215
- ...(ngDevMode ? [{ debugName: "panelPosition" }] : /* istanbul ignore next */ []));
216
- isPanelAbove = signal(false, /* @ts-ignore */
217
- ...(ngDevMode ? [{ debugName: "isPanelAbove" }] : /* istanbul ignore next */ []));
218
- hasError = computed(() => !!this.errorMessage(), /* @ts-ignore */
219
- ...(ngDevMode ? [{ debugName: "hasError" }] : /* istanbul ignore next */ []));
192
+ }, ...(ngDevMode ? [{ debugName: "panelPosition" }] : /* istanbul ignore next */ []));
193
+ isPanelAbove = signal(false, ...(ngDevMode ? [{ debugName: "isPanelAbove" }] : /* istanbul ignore next */ []));
194
+ hasError = computed(() => !!this.errorMessage(), ...(ngDevMode ? [{ debugName: "hasError" }] : /* istanbul ignore next */ []));
220
195
  describedBy = computed(() => {
221
196
  if (this.hasError()) {
222
197
  return `${this._triggerId}-error`;
@@ -225,19 +200,15 @@ class NeuSelectComponent {
225
200
  return `${this._triggerId}-hint`;
226
201
  }
227
202
  return null;
228
- }, /* @ts-ignore */
229
- ...(ngDevMode ? [{ debugName: "describedBy" }] : /* istanbul ignore next */ []));
203
+ }, ...(ngDevMode ? [{ debugName: "describedBy" }] : /* istanbul ignore next */ []));
230
204
  filteredOptions = computed(() => {
231
205
  const q = this.searchQuery().toLowerCase().trim();
232
206
  if (!q)
233
207
  return this.options();
234
208
  return this.options().filter((o) => o.label.toLowerCase().includes(q));
235
- }, /* @ts-ignore */
236
- ...(ngDevMode ? [{ debugName: "filteredOptions" }] : /* istanbul ignore next */ []));
237
- selectedLabel = computed(() => this.options().find((o) => o.value === this._value())?.label ?? null, /* @ts-ignore */
238
- ...(ngDevMode ? [{ debugName: "selectedLabel" }] : /* istanbul ignore next */ []));
239
- _selectedOption = computed(() => this.options().find((o) => o.value === this._value()) ?? null, /* @ts-ignore */
240
- ...(ngDevMode ? [{ debugName: "_selectedOption" }] : /* istanbul ignore next */ []));
209
+ }, ...(ngDevMode ? [{ debugName: "filteredOptions" }] : /* istanbul ignore next */ []));
210
+ selectedLabel = computed(() => this.options().find((o) => o.value === this._value())?.label ?? null, ...(ngDevMode ? [{ debugName: "selectedLabel" }] : /* istanbul ignore next */ []));
211
+ _selectedOption = computed(() => this.options().find((o) => o.value === this._value()) ?? null, ...(ngDevMode ? [{ debugName: "_selectedOption" }] : /* istanbul ignore next */ []));
241
212
  resultsAnnouncement = computed(() => {
242
213
  if (!this.isOpen()) {
243
214
  return '';
@@ -247,8 +218,7 @@ class NeuSelectComponent {
247
218
  return this.noResultsMessage();
248
219
  }
249
220
  return total === 1 ? '1 opción disponible' : `${total} opciones disponibles`;
250
- }, /* @ts-ignore */
251
- ...(ngDevMode ? [{ debugName: "resultsAnnouncement" }] : /* istanbul ignore next */ []));
221
+ }, ...(ngDevMode ? [{ debugName: "resultsAnnouncement" }] : /* istanbul ignore next */ []));
252
222
  virtualScrollItemSize = computed(() => {
253
223
  switch (this.size()) {
254
224
  case 'sm':
@@ -258,8 +228,7 @@ class NeuSelectComponent {
258
228
  default:
259
229
  return 44;
260
230
  }
261
- }, /* @ts-ignore */
262
- ...(ngDevMode ? [{ debugName: "virtualScrollItemSize" }] : /* istanbul ignore next */ []));
231
+ }, ...(ngDevMode ? [{ debugName: "virtualScrollItemSize" }] : /* istanbul ignore next */ []));
263
232
  virtualViewportHeight = computed(() => {
264
233
  const desiredHeight = this.virtualScrollVisibleItems() * this.virtualScrollItemSize();
265
234
  const panelMaxHeight = this.panelPosition().maxHeight;
@@ -273,8 +242,7 @@ class NeuSelectComponent {
273
242
  const effectivePanelMaxHeight = Math.min(this._panelMaxHeight, parsedMaxHeight);
274
243
  const availableHeight = Math.max(this.virtualScrollItemSize(), effectivePanelMaxHeight - searchOffset);
275
244
  return `${Math.min(desiredHeight, availableHeight)}px`;
276
- }, /* @ts-ignore */
277
- ...(ngDevMode ? [{ debugName: "virtualViewportHeight" }] : /* istanbul ignore next */ []));
245
+ }, ...(ngDevMode ? [{ debugName: "virtualViewportHeight" }] : /* istanbul ignore next */ []));
278
246
  trackByOptionValue = (_index, option) => option.value;
279
247
  // CVA
280
248
  _onChange = () => { };
@@ -288,13 +256,11 @@ class NeuSelectComponent {
288
256
  registerOnTouched(fn) {
289
257
  this._onTouched = fn;
290
258
  }
291
- _cvaDisabled = signal(false, /* @ts-ignore */
292
- ...(ngDevMode ? [{ debugName: "_cvaDisabled" }] : /* istanbul ignore next */ []));
259
+ _cvaDisabled = signal(false, ...(ngDevMode ? [{ debugName: "_cvaDisabled" }] : /* istanbul ignore next */ []));
293
260
  setDisabledState(isDisabled) {
294
261
  this._cvaDisabled.set(isDisabled);
295
262
  }
296
- isDisabledFinal = computed(() => this.disabled() || this._cvaDisabled(), /* @ts-ignore */
297
- ...(ngDevMode ? [{ debugName: "isDisabledFinal" }] : /* istanbul ignore next */ []));
263
+ isDisabledFinal = computed(() => this.disabled() || this._cvaDisabled(), ...(ngDevMode ? [{ debugName: "isDisabledFinal" }] : /* istanbul ignore next */ []));
298
264
  toggle() {
299
265
  if (this.isDisabledFinal())
300
266
  return;
@@ -450,8 +416,8 @@ class NeuSelectComponent {
450
416
  });
451
417
  this.isPanelAbove.set(false);
452
418
  }
453
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: NeuSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
454
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.4", type: NeuSelectComponent, isStandalone: true, selector: "neu-select", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, errorMessage: { classPropertyName: "errorMessage", publicName: "errorMessage", isSignal: true, isRequired: false, transformFunction: null }, hint: { classPropertyName: "hint", publicName: "hint", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, floatingLabel: { classPropertyName: "floatingLabel", publicName: "floatingLabel", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, searchable: { classPropertyName: "searchable", publicName: "searchable", isSignal: true, isRequired: false, transformFunction: null }, searchPlaceholder: { classPropertyName: "searchPlaceholder", publicName: "searchPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, clearable: { classPropertyName: "clearable", publicName: "clearable", isSignal: true, isRequired: false, transformFunction: null }, virtualScroll: { classPropertyName: "virtualScroll", publicName: "virtualScroll", isSignal: true, isRequired: false, transformFunction: null }, virtualScrollVisibleItems: { classPropertyName: "virtualScrollVisibleItems", publicName: "virtualScrollVisibleItems", isSignal: true, isRequired: false, transformFunction: null }, noResultsMessage: { classPropertyName: "noResultsMessage", publicName: "noResultsMessage", isSignal: true, isRequired: false, transformFunction: null }, clearAriaLabel: { classPropertyName: "clearAriaLabel", publicName: "clearAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, urlParam: { classPropertyName: "urlParam", publicName: "urlParam", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectionChange: "selectionChange" }, host: { listeners: { "keydown.escape": "close()", "window:resize": "onWindowResize()" } }, providers: [
419
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: NeuSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
420
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: NeuSelectComponent, isStandalone: true, selector: "neu-select", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, errorMessage: { classPropertyName: "errorMessage", publicName: "errorMessage", isSignal: true, isRequired: false, transformFunction: null }, hint: { classPropertyName: "hint", publicName: "hint", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, floatingLabel: { classPropertyName: "floatingLabel", publicName: "floatingLabel", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, searchable: { classPropertyName: "searchable", publicName: "searchable", isSignal: true, isRequired: false, transformFunction: null }, searchPlaceholder: { classPropertyName: "searchPlaceholder", publicName: "searchPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, clearable: { classPropertyName: "clearable", publicName: "clearable", isSignal: true, isRequired: false, transformFunction: null }, virtualScroll: { classPropertyName: "virtualScroll", publicName: "virtualScroll", isSignal: true, isRequired: false, transformFunction: null }, virtualScrollVisibleItems: { classPropertyName: "virtualScrollVisibleItems", publicName: "virtualScrollVisibleItems", isSignal: true, isRequired: false, transformFunction: null }, noResultsMessage: { classPropertyName: "noResultsMessage", publicName: "noResultsMessage", isSignal: true, isRequired: false, transformFunction: null }, clearAriaLabel: { classPropertyName: "clearAriaLabel", publicName: "clearAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, urlParam: { classPropertyName: "urlParam", publicName: "urlParam", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectionChange: "selectionChange" }, host: { listeners: { "keydown.escape": "close()", "window:resize": "onWindowResize()" } }, providers: [
455
421
  {
456
422
  provide: NG_VALUE_ACCESSOR,
457
423
  useExisting: forwardRef(() => NeuSelectComponent),
@@ -703,7 +669,7 @@ class NeuSelectComponent {
703
669
  }
704
670
  `, isInline: true, styles: [".neu-select{position:relative;display:block}.neu-select--disabled{opacity:.6;pointer-events:none}.neu-select--sm .neu-select__trigger{height:36px;font-size:var(--neu-text-sm)}.neu-select--lg .neu-select__trigger{height:56px}.neu-select__trigger{display:flex;align-items:center;width:100%;height:48px;padding:0 var(--neu-space-3);padding-right:36px;background:var(--neu-surface);border:1.5px solid var(--neu-border);border-radius:var(--neu-radius);font-family:var(--neu-font-sans);font-size:var(--neu-text-base);color:var(--neu-text);cursor:pointer;text-align:left;outline:none;transition:border-color var(--neu-transition),box-shadow var(--neu-transition);position:relative}.neu-select__trigger:hover:not([aria-disabled=true]){border-color:var(--neu-border-hover)}.neu-select__trigger[aria-disabled=true]{cursor:not-allowed;background:var(--neu-surface-2)}.neu-select__trigger:focus-visible{border-color:var(--neu-primary);box-shadow:0 0 0 3px #007aff1f}.neu-select--open .neu-select__trigger{border-color:var(--neu-primary);box-shadow:0 0 0 3px #007aff1f;border-bottom-left-radius:0;border-bottom-right-radius:0}.neu-select--open-above .neu-select__trigger{border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--neu-radius);border-bottom-right-radius:var(--neu-radius)}.neu-select--error .neu-select__trigger{border-color:var(--neu-error)}.neu-select--error .neu-select__trigger:focus-visible{box-shadow:0 0 0 3px #ef44441f}.neu-select__label{position:absolute;left:var(--neu-space-3);top:50%;transform:translateY(-50%);font-size:var(--neu-text-base);color:color-mix(in srgb,var(--neu-text) 68%,var(--neu-surface) 32%);pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - var(--neu-space-6));transition:top var(--neu-transition),font-size var(--neu-transition),color var(--neu-transition),transform var(--neu-transition),padding var(--neu-transition),background var(--neu-transition)}.neu-select--open .neu-select__label,.neu-select--has-value .neu-select__label{top:0;transform:translateY(-50%);font-size:12px;font-weight:600;letter-spacing:.01em;background:var(--neu-surface);padding:0 4px;left:calc(var(--neu-space-3) - 4px)}.neu-select--open .neu-select__label{color:var(--neu-primary)}.neu-select--error .neu-select__label{color:var(--neu-error)}.neu-select--disabled .neu-select__label{background:var(--neu-surface-2)}.neu-select__value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.neu-select--no-float .neu-select__value{padding-top:0}.neu-select__placeholder{color:color-mix(in srgb,var(--neu-text) 62%,var(--neu-surface) 38%)}.neu-select:not(.neu-select--no-float):not(.neu-select--open) .neu-select__placeholder{visibility:hidden}.neu-select__chevron{position:absolute;right:var(--neu-space-3);top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--neu-text-muted);flex-shrink:0;transition:transform var(--neu-transition)}.neu-select--open .neu-select__chevron{transform:translateY(-50%) rotate(180deg);color:var(--neu-primary)}.neu-select__clear{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin-right:2px;padding:0;border:none;background:transparent;color:var(--neu-text-muted);cursor:pointer;border-radius:var(--neu-radius-sm);flex-shrink:0;transition:color var(--neu-transition),background var(--neu-transition)}.neu-select__clear svg{width:14px;height:14px}.neu-select__clear:hover{color:var(--neu-text);background:var(--neu-surface-3)}.neu-select__clear:focus-visible{outline:2px solid var(--neu-primary);outline-offset:2px}.neu-select__panel{position:relative;z-index:var(--neu-z-dropdown);box-sizing:border-box;width:100%;background:var(--neu-surface);border:1.5px solid var(--neu-primary);border-top:none;border-bottom-left-radius:var(--neu-radius);border-bottom-right-radius:var(--neu-radius);box-shadow:var(--neu-shadow-lg);max-height:240px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--neu-surface-3) transparent;animation:neu-select-open .15s ease forwards}.neu-select__panel::-webkit-scrollbar{width:4px}.neu-select__panel::-webkit-scrollbar-thumb{background:var(--neu-surface-3);border-radius:99px}.neu-select__panel--above{border-top:1.5px solid var(--neu-primary);border-bottom:none;border-top-left-radius:var(--neu-radius);border-top-right-radius:var(--neu-radius);border-bottom-left-radius:0;border-bottom-right-radius:0}.neu-select__panel--virtual{overflow:visible}.neu-select__viewport{width:100%}@media(max-width:600px){.neu-select__panel{left:auto;right:0;width:min(max(100%,220px),100vw - 2rem);max-width:calc(100vw - 2rem)}}@keyframes neu-select-open{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.neu-select__option{display:flex;align-items:center;gap:var(--neu-space-2);padding:var(--neu-space-3) var(--neu-space-4);min-height:var(--neu-select-option-height, 44px);box-sizing:border-box;font-size:var(--neu-text-sm);color:var(--neu-text);cursor:pointer;transition:background-color var(--neu-transition)}.neu-select__option:hover:not(.neu-select__option--disabled){background:var(--neu-primary-50);color:var(--neu-primary)}.neu-select__option--selected{color:var(--neu-primary);font-weight:600;background:var(--neu-primary-50)}.neu-select__option--disabled{opacity:.4;cursor:not-allowed}.neu-select__check{width:14px;height:14px;flex-shrink:0}.neu-select__error{margin-top:var(--neu-space-1);font-size:var(--neu-text-xs);color:var(--neu-error-text);font-family:var(--neu-font-sans)}.neu-select__hint{margin-top:var(--neu-space-1);font-size:var(--neu-text-xs);color:var(--neu-text-muted);font-family:var(--neu-font-sans)}.neu-select__sr-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.neu-select__static-label{display:block;font-size:var(--neu-text-sm);font-weight:500;color:var(--neu-text-muted);margin-bottom:var(--neu-space-2)}.neu-select__search{padding:var(--neu-space-2);border-bottom:1px solid var(--neu-border);position:sticky;top:0;background:var(--neu-surface);z-index:1}.neu-select__search-input{width:100%;height:34px;padding:0 var(--neu-space-3);border:1.5px solid var(--neu-border);border-radius:var(--neu-radius-sm);background:var(--neu-bg);font-family:var(--neu-font-sans);font-size:var(--neu-text-sm);color:var(--neu-text);outline:none;transition:border-color var(--neu-transition),box-shadow var(--neu-transition)}.neu-select__search-input:focus{border-color:var(--neu-primary);box-shadow:0 0 0 2px #007aff1f}.neu-select__search-input::placeholder{color:var(--neu-text-disabled)}.neu-select__empty{padding:var(--neu-space-4);text-align:center;font-size:var(--neu-text-sm);color:var(--neu-text-disabled);font-family:var(--neu-font-sans)}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i1.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation", "cdkConnectedOverlayUsePopover", "cdkConnectedOverlayMatchWidth", "cdkConnectedOverlay"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i1.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: i1.ɵɵCdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i1.ɵɵCdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i1.ɵɵCdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "ngmodule", type: ScrollingModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
705
671
  }
706
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: NeuSelectComponent, decorators: [{
672
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: NeuSelectComponent, decorators: [{
707
673
  type: Component,
708
674
  args: [{ selector: 'neu-select', imports: [NgTemplateOutlet, OverlayModule, ScrollingModule], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
709
675
  {