@neural-ui/core 1.6.0 → 1.6.1
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.
- package/fesm2022/neural-ui-core-accordion.mjs +13 -9
- package/fesm2022/neural-ui-core-accordion.mjs.map +1 -1
- package/fesm2022/neural-ui-core-alert.mjs +25 -14
- package/fesm2022/neural-ui-core-alert.mjs.map +1 -1
- package/fesm2022/neural-ui-core-autocomplete.mjs +53 -28
- package/fesm2022/neural-ui-core-autocomplete.mjs.map +1 -1
- package/fesm2022/neural-ui-core-avatar.mjs +23 -13
- package/fesm2022/neural-ui-core-avatar.mjs.map +1 -1
- package/fesm2022/neural-ui-core-badge.mjs +15 -9
- package/fesm2022/neural-ui-core-badge.mjs.map +1 -1
- package/fesm2022/neural-ui-core-block-ui.mjs +16 -11
- package/fesm2022/neural-ui-core-block-ui.mjs.map +1 -1
- package/fesm2022/neural-ui-core-breadcrumb.mjs +8 -6
- package/fesm2022/neural-ui-core-breadcrumb.mjs.map +1 -1
- package/fesm2022/neural-ui-core-button.mjs +29 -16
- package/fesm2022/neural-ui-core-button.mjs.map +1 -1
- package/fesm2022/neural-ui-core-calendar.mjs +75 -50
- package/fesm2022/neural-ui-core-calendar.mjs.map +1 -1
- package/fesm2022/neural-ui-core-card.mjs +13 -8
- package/fesm2022/neural-ui-core-card.mjs.map +1 -1
- package/fesm2022/neural-ui-core-chart.mjs +45 -24
- package/fesm2022/neural-ui-core-chart.mjs.map +1 -1
- package/fesm2022/neural-ui-core-checkbox.mjs +15 -9
- package/fesm2022/neural-ui-core-checkbox.mjs.map +1 -1
- package/fesm2022/neural-ui-core-chip.mjs +23 -13
- package/fesm2022/neural-ui-core-chip.mjs.map +1 -1
- package/fesm2022/neural-ui-core-code-block.mjs +32 -17
- package/fesm2022/neural-ui-core-code-block.mjs.map +1 -1
- package/fesm2022/neural-ui-core-color-picker.mjs +19 -11
- package/fesm2022/neural-ui-core-color-picker.mjs.map +1 -1
- package/fesm2022/neural-ui-core-command-palette.mjs +16 -11
- package/fesm2022/neural-ui-core-command-palette.mjs.map +1 -1
- package/fesm2022/neural-ui-core-confirm-dialog.mjs +6 -6
- package/fesm2022/neural-ui-core-context-menu.mjs +12 -9
- package/fesm2022/neural-ui-core-context-menu.mjs.map +1 -1
- package/fesm2022/neural-ui-core-dashboard-grid.mjs +11 -7
- package/fesm2022/neural-ui-core-dashboard-grid.mjs.map +1 -1
- package/fesm2022/neural-ui-core-date-input.mjs +111 -57
- package/fesm2022/neural-ui-core-date-input.mjs.map +1 -1
- package/fesm2022/neural-ui-core-divider.mjs +7 -5
- package/fesm2022/neural-ui-core-divider.mjs.map +1 -1
- package/fesm2022/neural-ui-core-empty-state.mjs +13 -8
- package/fesm2022/neural-ui-core-empty-state.mjs.map +1 -1
- package/fesm2022/neural-ui-core-filter-bar.mjs +19 -11
- package/fesm2022/neural-ui-core-filter-bar.mjs.map +1 -1
- package/fesm2022/neural-ui-core-icon.mjs +11 -7
- package/fesm2022/neural-ui-core-icon.mjs.map +1 -1
- package/fesm2022/neural-ui-core-image-gallery.mjs +23 -13
- package/fesm2022/neural-ui-core-image-gallery.mjs.map +1 -1
- package/fesm2022/neural-ui-core-image-viewer.mjs +22 -14
- package/fesm2022/neural-ui-core-image-viewer.mjs.map +1 -1
- package/fesm2022/neural-ui-core-input-otp.mjs +19 -11
- package/fesm2022/neural-ui-core-input-otp.mjs.map +1 -1
- package/fesm2022/neural-ui-core-input.mjs +67 -35
- package/fesm2022/neural-ui-core-input.mjs.map +1 -1
- package/fesm2022/neural-ui-core-kanban.mjs +17 -11
- package/fesm2022/neural-ui-core-kanban.mjs.map +1 -1
- package/fesm2022/neural-ui-core-knob.mjs +41 -22
- package/fesm2022/neural-ui-core-knob.mjs.map +1 -1
- package/fesm2022/neural-ui-core-meter-group.mjs +23 -13
- package/fesm2022/neural-ui-core-meter-group.mjs.map +1 -1
- package/fesm2022/neural-ui-core-modal.mjs +16 -11
- package/fesm2022/neural-ui-core-modal.mjs.map +1 -1
- package/fesm2022/neural-ui-core-multiselect.mjs +72 -39
- package/fesm2022/neural-ui-core-multiselect.mjs.map +1 -1
- package/fesm2022/neural-ui-core-nav.mjs +22 -13
- package/fesm2022/neural-ui-core-nav.mjs.map +1 -1
- package/fesm2022/neural-ui-core-notification-center.mjs +27 -10
- package/fesm2022/neural-ui-core-notification-center.mjs.map +1 -1
- package/fesm2022/neural-ui-core-number-input.mjs +35 -19
- package/fesm2022/neural-ui-core-number-input.mjs.map +1 -1
- package/fesm2022/neural-ui-core-pagination.mjs +15 -9
- package/fesm2022/neural-ui-core-pagination.mjs.map +1 -1
- package/fesm2022/neural-ui-core-popover.mjs +22 -14
- package/fesm2022/neural-ui-core-popover.mjs.map +1 -1
- package/fesm2022/neural-ui-core-progress-bar.mjs +19 -11
- package/fesm2022/neural-ui-core-progress-bar.mjs.map +1 -1
- package/fesm2022/neural-ui-core-radio.mjs +24 -15
- package/fesm2022/neural-ui-core-radio.mjs.map +1 -1
- package/fesm2022/neural-ui-core-rating.mjs +13 -8
- package/fesm2022/neural-ui-core-rating.mjs.map +1 -1
- package/fesm2022/neural-ui-core-rich-text-editor.mjs +63 -30
- package/fesm2022/neural-ui-core-rich-text-editor.mjs.map +1 -1
- package/fesm2022/neural-ui-core-scheduler-gantt.mjs +41 -22
- package/fesm2022/neural-ui-core-scheduler-gantt.mjs.map +1 -1
- package/fesm2022/neural-ui-core-select.mjs +77 -43
- package/fesm2022/neural-ui-core-select.mjs.map +1 -1
- package/fesm2022/neural-ui-core-sidebar.mjs +23 -14
- package/fesm2022/neural-ui-core-sidebar.mjs.map +1 -1
- package/fesm2022/neural-ui-core-skeleton.mjs +11 -7
- package/fesm2022/neural-ui-core-skeleton.mjs.map +1 -1
- package/fesm2022/neural-ui-core-slider.mjs +23 -13
- package/fesm2022/neural-ui-core-slider.mjs.map +1 -1
- package/fesm2022/neural-ui-core-spinner.mjs +17 -10
- package/fesm2022/neural-ui-core-spinner.mjs.map +1 -1
- package/fesm2022/neural-ui-core-split-button.mjs +27 -15
- package/fesm2022/neural-ui-core-split-button.mjs.map +1 -1
- package/fesm2022/neural-ui-core-splitter.mjs +9 -6
- package/fesm2022/neural-ui-core-splitter.mjs.map +1 -1
- package/fesm2022/neural-ui-core-stats-card.mjs +19 -11
- package/fesm2022/neural-ui-core-stats-card.mjs.map +1 -1
- package/fesm2022/neural-ui-core-stepper.mjs +13 -8
- package/fesm2022/neural-ui-core-stepper.mjs.map +1 -1
- package/fesm2022/neural-ui-core-switch.mjs +15 -9
- package/fesm2022/neural-ui-core-switch.mjs.map +1 -1
- package/fesm2022/neural-ui-core-table.mjs +242 -124
- package/fesm2022/neural-ui-core-table.mjs.map +1 -1
- package/fesm2022/neural-ui-core-tabs.mjs +30 -18
- package/fesm2022/neural-ui-core-tabs.mjs.map +1 -1
- package/fesm2022/neural-ui-core-textarea.mjs +43 -23
- package/fesm2022/neural-ui-core-textarea.mjs.map +1 -1
- package/fesm2022/neural-ui-core-timeline-grid.mjs +21 -12
- package/fesm2022/neural-ui-core-timeline-grid.mjs.map +1 -1
- package/fesm2022/neural-ui-core-timeline.mjs +5 -4
- package/fesm2022/neural-ui-core-timeline.mjs.map +1 -1
- package/fesm2022/neural-ui-core-toast.mjs +25 -9
- package/fesm2022/neural-ui-core-toast.mjs.map +1 -1
- package/fesm2022/neural-ui-core-toggle-button-group.mjs +17 -10
- package/fesm2022/neural-ui-core-toggle-button-group.mjs.map +1 -1
- package/fesm2022/neural-ui-core-toolbar.mjs +13 -8
- package/fesm2022/neural-ui-core-toolbar.mjs.map +1 -1
- package/fesm2022/neural-ui-core-tooltip.mjs +16 -11
- package/fesm2022/neural-ui-core-tooltip.mjs.map +1 -1
- package/fesm2022/neural-ui-core-tree-table.mjs +57 -30
- package/fesm2022/neural-ui-core-tree-table.mjs.map +1 -1
- package/fesm2022/neural-ui-core-tree.mjs +31 -17
- package/fesm2022/neural-ui-core-tree.mjs.map +1 -1
- package/fesm2022/neural-ui-core-uploader.mjs +91 -47
- package/fesm2022/neural-ui-core-uploader.mjs.map +1 -1
- package/fesm2022/neural-ui-core-url-state.mjs +7 -5
- package/fesm2022/neural-ui-core-url-state.mjs.map +1 -1
- package/fesm2022/neural-ui-core-virtual-list.mjs +32 -19
- package/fesm2022/neural-ui-core-virtual-list.mjs.map +1 -1
- package/package.json +1 -1
- package/types/neural-ui-core-notification-center.d.ts +2 -0
- package/types/neural-ui-core-toast.d.ts +2 -0
|
@@ -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":";;;;MAyFa,0BAA0B,CAAA;IAC5B,IAAI,GAAG,KAAK,CAAyB,EAAE;6EAAC;IACxC,SAAS,GAAG,KAAK,CAAuB,IAAI;kFAAC;IAC7C,OAAO,GAAG,KAAK,CAAuB,IAAI;gFAAC;IAC3C,MAAM,GAAG,KAAK,CAAqB,SAAS;+EAAC;IAC7C,KAAK,GAAG,KAAK,CAAyB,KAAK;8EAAC;IAC5C,KAAK,GAAG,KAAK,CAAC,mBAAmB;8EAAC;IAClC,OAAO,GAAG,KAAK,CAAC,KAAK;gFAAC;IACtB,YAAY,GAAG,KAAK,CAAC,IAAI;qFAAC;IAC1B,cAAc,GAAG,KAAK,CAAC,OAAO;uFAAC;IAC/B,WAAW,GAAG,KAAK,CAAC,IAAI;oFAAC;IACzB,cAAc,GAAG,KAAK,CAAgB,IAAI;uFAAC;IAC3C,YAAY,GAAG,KAAK,CAAuC,IAAI;qFAAC;IAEhE,SAAS,GAAG,MAAM,EAA8B;IAChD,SAAS,GAAG,MAAM,EAA8B;AAEhD,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAK;QAC/B,MAAM,aAAa,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QACrD,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACjD,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AACzC,QAAA,MAAM,QAAQ,GAAG,aAAa,IAAI,QAAQ,CAAC,KAAK,IAAI,aAAa,CAAC,IAAI,IAAI,EAAE,CAAE;QAC9E,MAAM,MAAM,GAAG,WAAW,IAAI,QAAQ,CAAC,GAAG,IAAI,QAAQ;AACtD,QAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,EAAE,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,QAAQ,GAAG,MAAM;AACtE,QAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,EAAE,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,MAAM,GAAG,QAAQ;AAEtE,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,MAAM,EAAE;YAC3B,OAAO;AACL,gBAAA,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC;AAC1B,gBAAA,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC;aACvB;QACH;QAEA,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;IACjC,CAAC;gFAAC;AAEO,IAAA,WAAW,GAAG,QAAQ,CAA0B,MACvD,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;oFACpF;AAEQ,IAAA,QAAQ,GAAG,QAAQ,CAAuB,MAAK;AACtD,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE;AAC7B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAE1B,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM;YAC/B,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,KAAK,EAAE,GAAG,CAAC;iBACR,GAAG,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC;iBAC5D,MAAM,CAAC,CAAC,IAAI,KAAkC,IAAI,KAAK,IAAI,CAAC;AAChE,SAAA,CAAC,CAAC;IACL,CAAC;iFAAC;AAEO,IAAA,SAAS,GAAG,QAAQ,CAAC,MAC5B,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;kFAChE;AAEQ,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;AAClC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE;QAC7B,OAAO,CAAA,EAAG,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,eAAe,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA,CAAE;IAC1G,CAAC;mFAAC;AAEO,IAAA,gBAAgB,GAAG,QAAQ,CAAsC,MAAK;AAC7E,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE;QACxC,MAAM,IAAI,GAAG,aAAa,CAAC,YAAY,EAAE,IAAI,IAAI,IAAI,CAAC;AACtD,QAAA,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,EAAE;AAC1B,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,MAAM,QAAQ,GACZ,IAAI,CAAC,KAAK,EAAE,KAAK,MAAM,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAE5F,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE;IAChD,CAAC;yFAAC;IAEe,UAAU,GAAG,QAAQ,CACpC,MACE,IAAI,GAAG,CACL,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,KACtB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,CAAU,CAAC,CAC1F,CACF;mFACJ;AAED,IAAA,WAAW,CAAC,IAAyB,EAAA;AACnC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5C,IAAI,CAAC,KAAK,EAAE;YACV;QACF;AAEA,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;IAC5B;AAEA,IAAA,WAAW,CAAC,SAAuC,EAAA;AACjD,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAClB,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,QAAQ,EAAE,SAAS,CAAC,QAAQ;YAC5B,IAAI,EAAE,SAAS,CAAC,QAAQ;AACxB,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AACpB,SAAA,CAAC;IACJ;uGArGW,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA1B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAzB3B;;;;;;;;;;;;;;;;;;;;;;AAsBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,2mCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EA5BS,wBAAwB,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,SAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FA+BvB,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAlCtC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EAAA,UAAA,EACnB,IAAI,EAAA,OAAA,EACP,CAAC,wBAAwB,CAAC,EAAA,aAAA,EACpB,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC;AACJ,wBAAA,KAAK,EAAE,qBAAqB;qBAC7B,EAAA,QAAA,EACS;;;;;;;;;;;;;;;;;;;;;;AAsBT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,2mCAAA,CAAA,EAAA;;AA2GH,SAAS,WAAW,CAAC,IAA4B,EAAA;IAC/C,IAAI,KAAK,GAAgB,IAAI;IAC7B,IAAI,GAAG,GAAgB,IAAI;AAE3B,IAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AACtB,QAAA,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE;YAC5B,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3C,YAAA,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC;AACrD,YAAA,IAAI,SAAS,KAAK,CAAC,KAAK,IAAI,SAAS,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE;gBAClE,KAAK,GAAG,SAAS;YACnB;AACA,YAAA,IAAI,OAAO,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE;gBAC1D,GAAG,GAAG,OAAO;YACf;QACF;IACF;AAEA,IAAA,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE;AACvB;AAEA,SAAS,YAAY,CACnB,KAAW,EACX,GAAS,EACT,KAA6B,EAC7B,MAAe,EAAA;IAEf,MAAM,OAAO,GAA4B,EAAE;AAC3C,IAAA,IAAI,MAAM,GAAG,KAAK,KAAK,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC;AAC5E,IAAA,MAAM,KAAK,GAAG,KAAK,KAAK,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC;IAEzE,OAAO,MAAM,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE;AAC1C,QAAA,OAAO,CAAC,IAAI,CACV,KAAK,KAAK;AACR,cAAE;AACE,gBAAA,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC;AACrB,gBAAA,KAAK,EAAE,CAAA,CAAA,EAAI,UAAU,CAAC,MAAM,CAAC,CAAA,CAAE;AAC/B,gBAAA,WAAW,EAAE,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC;AAC7C;AACH,cAAE;AACE,gBAAA,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC;AACrB,gBAAA,KAAK,EAAE,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC;AACpC,gBAAA,WAAW,EAAE,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC;AAC7C,aAAA,CACN;QACD,MAAM,GAAG,KAAK,KAAK,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3E;AAEA,IAAA,OAAO,OAAO;AAChB;AAEA,SAAS,OAAO,CACd,IAA2B,EAC3B,GAAS,EACT,GAAS,EACT,KAA6B,EAAA;IAE7B,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;AAC1C,IAAA,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC;AACpD,IAAA,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,EAAE;AACxB,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,QAAQ,GAAG,MAAM;AACxE,IAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,EAAE,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,MAAM,GAAG,QAAQ;IACtE,IAAI,GAAG,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,EAAE;AACpE,QAAA,OAAO,IAAI;IACb;IAEA,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC;IAC/C,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAC3C,IAAI,YAAY,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,EAAE;AACjD,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,IAAI,KAAK,KAAK,MAAM,EAAE;AACpB,QAAA,MAAM,SAAS,GAAG,cAAc,CAAC,YAAY,CAAC;AAC9C,QAAA,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC;QAC1C,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,KAAK,EAAE,IAAI,CAAC,KAAK;AACjB,YAAA,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC;YAC3B,IAAI,EAAE,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC;YACzC,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvB,YAAA,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;YACpB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB;IACH;IAEA,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,KAAK,EAAE,IAAI,CAAC,KAAK;AACjB,QAAA,KAAK,EAAE,SAAS,CAAC,YAAY,CAAC;QAC9B,IAAI,EAAE,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG,CAAC;QAC9C,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvB,QAAA,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;QACpB,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB;AACH;AAEA,SAAS,QAAQ,CAAC,IAA2B,EAAA;AAC3C,IAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,GAAG,IAAI,GAAG,CAAA,EAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG;AAC/F,IAAA,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE;AACzB,QAAA,OAAO,GAAG,IAAI,CAAC,IAAI,CAAA,GAAA,EAAM,QAAQ,EAAE;IACrC;AACA,IAAA,OAAO,IAAI,CAAC,IAAI,IAAI,QAAQ,IAAI,SAAS;AAC3C;AAEA,SAAS,aAAa,CAAC,KAAuC,EAAA;IAC5D,IAAI,CAAC,KAAK,EAAE;AACV,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,MAAM,IAAI,GAAG,KAAK,YAAY,IAAI,GAAG,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC;IAC5D,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE;AAChC,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,OAAO,aAAa,CAAC,IAAI,CAAC;AAC5B;AAEA,SAAS,aAAa,CAAC,IAAU,EAAA;IAC/B,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;AACzF;AAEA,SAAS,cAAc,CAAC,IAAU,EAAA;IAChC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;IACjC,OAAO,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;AACjD;AAEA,SAAS,YAAY,CAAC,IAAU,EAAA;IAC9B,OAAO,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC5C;AAEA,SAAS,UAAU,CAAC,IAAU,EAAE,IAAY,EAAA;AAC1C,IAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC;IAC3B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC;AACzC,IAAA,OAAO,aAAa,CAAC,IAAI,CAAC;AAC5B;AAEA,SAAS,UAAU,CAAC,KAAW,EAAE,GAAS,EAAA;AACxC,IAAA,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,QAAQ,CAAC;AACjE;AAEA,SAAS,WAAW,CAAC,KAAW,EAAE,GAAS,EAAA;IACzC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC;AAClG;AAEA,SAAS,SAAS,CAAC,IAAU,EAAE,GAAS,EAAE,GAAS,EAAA;IACjD,IAAI,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,EAAE;AAClC,QAAA,OAAO,GAAG;IACZ;IACA,IAAI,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,EAAE;AAClC,QAAA,OAAO,GAAG;IACZ;AACA,IAAA,OAAO,IAAI;AACb;AAEA,SAAS,SAAS,CAAC,IAAU,EAAA;IAC3B,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;AACxC;AAEA,SAAS,aAAa,CAAC,IAAU,EAAE,MAAe,EAAA;IAChD,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;AAC5F;AAEA,SAAS,eAAe,CAAC,IAAU,EAAE,MAAe,EAAA;AAClD,IAAA,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;AACrC,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,GAAG,EAAE,SAAS;AACd,QAAA,QAAQ,EAAE,KAAK;AAChB,KAAA,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;AACjB;AAEA,SAAS,eAAe,CAAC,IAAU,EAAE,MAAe,EAAA;AAClD,IAAA,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;AACrC,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,GAAG,EAAE,SAAS;AACd,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,QAAQ,EAAE,KAAK;AAChB,KAAA,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;AACjB;AAEA,SAAS,UAAU,CAAC,IAAU,EAAA;IAC5B,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAC/F,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC;AACrC,IAAA,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;AAClD,IAAA,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACnE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC;AACjF;;AC7XA;;AAEG;;;;"}
|
|
@@ -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: "
|
|
26
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
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 });
|
|
27
27
|
}
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", 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: "21.2.8", ngImpor
|
|
|
43
43
|
*/
|
|
44
44
|
class NeuSelectSelectedDirective {
|
|
45
45
|
templateRef = inject(TemplateRef);
|
|
46
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
47
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
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 });
|
|
48
48
|
}
|
|
49
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
49
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: NeuSelectSelectedDirective, decorators: [{
|
|
50
50
|
type: Directive,
|
|
51
51
|
args: [{ selector: '[neuSelectSelected]', standalone: true }]
|
|
52
52
|
}] });
|
|
@@ -75,7 +75,8 @@ class NeuSelectComponent {
|
|
|
75
75
|
_viewportMargin = 16;
|
|
76
76
|
_panelMaxHeight = 240;
|
|
77
77
|
_urlParamSignals = new Map();
|
|
78
|
-
_viewport = viewChild(CdkVirtualScrollViewport,
|
|
78
|
+
_viewport = viewChild(CdkVirtualScrollViewport, /* @ts-ignore */
|
|
79
|
+
...(ngDevMode ? [{ debugName: "_viewport" }] : /* istanbul ignore next */ []));
|
|
79
80
|
_getUrlParamSignal(key) {
|
|
80
81
|
let paramSignal = this._urlParamSignals.get(key);
|
|
81
82
|
if (!paramSignal) {
|
|
@@ -102,45 +103,63 @@ class NeuSelectComponent {
|
|
|
102
103
|
_triggerId = `neu-select-trigger-${_neuSelectIdSeq++}`;
|
|
103
104
|
_panelId = `${this._triggerId}-panel`;
|
|
104
105
|
/** Template personalizado para cada opción del dropdown / Custom template for each dropdown option */
|
|
105
|
-
itemTpl = contentChild(NeuSelectItemDirective,
|
|
106
|
+
itemTpl = contentChild(NeuSelectItemDirective, /* @ts-ignore */
|
|
107
|
+
...(ngDevMode ? [{ debugName: "itemTpl" }] : /* istanbul ignore next */ []));
|
|
106
108
|
/** Template personalizado para el valor seleccionado en el trigger / Custom template for the selected value in the trigger */
|
|
107
|
-
selectedItemTpl = contentChild(NeuSelectSelectedDirective,
|
|
109
|
+
selectedItemTpl = contentChild(NeuSelectSelectedDirective, /* @ts-ignore */
|
|
110
|
+
...(ngDevMode ? [{ debugName: "selectedItemTpl" }] : /* istanbul ignore next */ []));
|
|
108
111
|
/** Opciones del dropdown / Dropdown options */
|
|
109
|
-
options = input([],
|
|
112
|
+
options = input([], /* @ts-ignore */
|
|
113
|
+
...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
|
|
110
114
|
/** Texto del floating label / Floating label text */
|
|
111
|
-
label = input('',
|
|
115
|
+
label = input('', /* @ts-ignore */
|
|
116
|
+
...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
|
|
112
117
|
/** Placeholder cuando no hay selección / Placeholder when there is no selection */
|
|
113
|
-
placeholder = input('Seleccionar...',
|
|
118
|
+
placeholder = input('Seleccionar...', /* @ts-ignore */
|
|
119
|
+
...(ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []));
|
|
114
120
|
/** Mensaje de error / Error message */
|
|
115
|
-
errorMessage = input('',
|
|
121
|
+
errorMessage = input('', /* @ts-ignore */
|
|
122
|
+
...(ngDevMode ? [{ debugName: "errorMessage" }] : /* istanbul ignore next */ []));
|
|
116
123
|
/** Texto de ayuda bajo el campo / Helper text below the field */
|
|
117
|
-
hint = input('',
|
|
124
|
+
hint = input('', /* @ts-ignore */
|
|
125
|
+
...(ngDevMode ? [{ debugName: "hint" }] : /* istanbul ignore next */ []));
|
|
118
126
|
/** Deshabilita el select / Disables the select */
|
|
119
|
-
disabled = input(false,
|
|
127
|
+
disabled = input(false, /* @ts-ignore */
|
|
128
|
+
...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
|
|
120
129
|
/** 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) */
|
|
121
|
-
floatingLabel = input(false,
|
|
130
|
+
floatingLabel = input(false, /* @ts-ignore */
|
|
131
|
+
...(ngDevMode ? [{ debugName: "floatingLabel" }] : /* istanbul ignore next */ []));
|
|
122
132
|
/** Tamaño del campo: 'sm' = 36px | 'md' = 48px | 'lg' = 56px / Field size */
|
|
123
|
-
size = input('md',
|
|
133
|
+
size = input('md', /* @ts-ignore */
|
|
134
|
+
...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
124
135
|
/** Activa input de búsqueda/filtro en el panel / Activates the search/filter input in the panel */
|
|
125
|
-
searchable = input(false,
|
|
136
|
+
searchable = input(false, /* @ts-ignore */
|
|
137
|
+
...(ngDevMode ? [{ debugName: "searchable" }] : /* istanbul ignore next */ []));
|
|
126
138
|
/** Placeholder del input de búsqueda / Search input placeholder */
|
|
127
|
-
searchPlaceholder = input('Buscar...',
|
|
139
|
+
searchPlaceholder = input('Buscar...', /* @ts-ignore */
|
|
140
|
+
...(ngDevMode ? [{ debugName: "searchPlaceholder" }] : /* istanbul ignore next */ []));
|
|
128
141
|
/** Muestra un botón para limpiar la selección / Shows a button to clear the selection */
|
|
129
|
-
clearable = input(false,
|
|
142
|
+
clearable = input(false, /* @ts-ignore */
|
|
143
|
+
...(ngDevMode ? [{ debugName: "clearable" }] : /* istanbul ignore next */ []));
|
|
130
144
|
/** Habilita scroll virtual para listas largas / Enables virtual scrolling for large option lists */
|
|
131
|
-
virtualScroll = input(false,
|
|
145
|
+
virtualScroll = input(false, /* @ts-ignore */
|
|
146
|
+
...(ngDevMode ? [{ debugName: "virtualScroll" }] : /* istanbul ignore next */ []));
|
|
132
147
|
/** Número de opciones visibles en el viewport virtual / Number of visible options in the virtual viewport */
|
|
133
|
-
virtualScrollVisibleItems = input(8,
|
|
148
|
+
virtualScrollVisibleItems = input(8, /* @ts-ignore */
|
|
149
|
+
...(ngDevMode ? [{ debugName: "virtualScrollVisibleItems" }] : /* istanbul ignore next */ []));
|
|
134
150
|
/** Texto cuando no hay opciones tras filtrar / Text when no options remain after filtering */
|
|
135
|
-
noResultsMessage = input('Sin resultados',
|
|
151
|
+
noResultsMessage = input('Sin resultados', /* @ts-ignore */
|
|
152
|
+
...(ngDevMode ? [{ debugName: "noResultsMessage" }] : /* istanbul ignore next */ []));
|
|
136
153
|
/** Aria-label del botón de limpiar / Aria-label for the clear button */
|
|
137
|
-
clearAriaLabel = input('Limpiar selección',
|
|
154
|
+
clearAriaLabel = input('Limpiar selección', /* @ts-ignore */
|
|
155
|
+
...(ngDevMode ? [{ debugName: "clearAriaLabel" }] : /* istanbul ignore next */ []));
|
|
138
156
|
/**
|
|
139
157
|
* Sincroniza el valor seleccionado con este query param de la URL.
|
|
140
158
|
* Al seleccionar una opción se añade `?{urlParam}=value` a la URL.
|
|
141
159
|
* Pasar `null` (default) deshabilita la sincronización.
|
|
142
160
|
*/
|
|
143
|
-
urlParam = input(null,
|
|
161
|
+
urlParam = input(null, /* @ts-ignore */
|
|
162
|
+
...(ngDevMode ? [{ debugName: "urlParam" }] : /* istanbul ignore next */ []));
|
|
144
163
|
/**
|
|
145
164
|
* Emite el objeto NeuSelectOption completo (incluyendo data) al seleccionar una opción.
|
|
146
165
|
* Emite null al limpiar la selección.
|
|
@@ -148,9 +167,12 @@ class NeuSelectComponent {
|
|
|
148
167
|
*/
|
|
149
168
|
selectionChange = output();
|
|
150
169
|
// Estado interno
|
|
151
|
-
_value = signal(null,
|
|
152
|
-
|
|
153
|
-
|
|
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 */ []));
|
|
154
176
|
overlayPositions = [
|
|
155
177
|
{
|
|
156
178
|
originX: 'start',
|
|
@@ -189,9 +211,12 @@ class NeuSelectComponent {
|
|
|
189
211
|
left: null,
|
|
190
212
|
width: null,
|
|
191
213
|
maxHeight: null,
|
|
192
|
-
},
|
|
193
|
-
|
|
194
|
-
|
|
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 */ []));
|
|
195
220
|
describedBy = computed(() => {
|
|
196
221
|
if (this.hasError()) {
|
|
197
222
|
return `${this._triggerId}-error`;
|
|
@@ -200,15 +225,19 @@ class NeuSelectComponent {
|
|
|
200
225
|
return `${this._triggerId}-hint`;
|
|
201
226
|
}
|
|
202
227
|
return null;
|
|
203
|
-
},
|
|
228
|
+
}, /* @ts-ignore */
|
|
229
|
+
...(ngDevMode ? [{ debugName: "describedBy" }] : /* istanbul ignore next */ []));
|
|
204
230
|
filteredOptions = computed(() => {
|
|
205
231
|
const q = this.searchQuery().toLowerCase().trim();
|
|
206
232
|
if (!q)
|
|
207
233
|
return this.options();
|
|
208
234
|
return this.options().filter((o) => o.label.toLowerCase().includes(q));
|
|
209
|
-
},
|
|
210
|
-
|
|
211
|
-
|
|
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 */ []));
|
|
212
241
|
resultsAnnouncement = computed(() => {
|
|
213
242
|
if (!this.isOpen()) {
|
|
214
243
|
return '';
|
|
@@ -218,7 +247,8 @@ class NeuSelectComponent {
|
|
|
218
247
|
return this.noResultsMessage();
|
|
219
248
|
}
|
|
220
249
|
return total === 1 ? '1 opción disponible' : `${total} opciones disponibles`;
|
|
221
|
-
},
|
|
250
|
+
}, /* @ts-ignore */
|
|
251
|
+
...(ngDevMode ? [{ debugName: "resultsAnnouncement" }] : /* istanbul ignore next */ []));
|
|
222
252
|
virtualScrollItemSize = computed(() => {
|
|
223
253
|
switch (this.size()) {
|
|
224
254
|
case 'sm':
|
|
@@ -228,7 +258,8 @@ class NeuSelectComponent {
|
|
|
228
258
|
default:
|
|
229
259
|
return 44;
|
|
230
260
|
}
|
|
231
|
-
},
|
|
261
|
+
}, /* @ts-ignore */
|
|
262
|
+
...(ngDevMode ? [{ debugName: "virtualScrollItemSize" }] : /* istanbul ignore next */ []));
|
|
232
263
|
virtualViewportHeight = computed(() => {
|
|
233
264
|
const desiredHeight = this.virtualScrollVisibleItems() * this.virtualScrollItemSize();
|
|
234
265
|
const panelMaxHeight = this.panelPosition().maxHeight;
|
|
@@ -242,7 +273,8 @@ class NeuSelectComponent {
|
|
|
242
273
|
const effectivePanelMaxHeight = Math.min(this._panelMaxHeight, parsedMaxHeight);
|
|
243
274
|
const availableHeight = Math.max(this.virtualScrollItemSize(), effectivePanelMaxHeight - searchOffset);
|
|
244
275
|
return `${Math.min(desiredHeight, availableHeight)}px`;
|
|
245
|
-
},
|
|
276
|
+
}, /* @ts-ignore */
|
|
277
|
+
...(ngDevMode ? [{ debugName: "virtualViewportHeight" }] : /* istanbul ignore next */ []));
|
|
246
278
|
trackByOptionValue = (_index, option) => option.value;
|
|
247
279
|
// CVA
|
|
248
280
|
_onChange = () => { };
|
|
@@ -256,11 +288,13 @@ class NeuSelectComponent {
|
|
|
256
288
|
registerOnTouched(fn) {
|
|
257
289
|
this._onTouched = fn;
|
|
258
290
|
}
|
|
259
|
-
_cvaDisabled = signal(false,
|
|
291
|
+
_cvaDisabled = signal(false, /* @ts-ignore */
|
|
292
|
+
...(ngDevMode ? [{ debugName: "_cvaDisabled" }] : /* istanbul ignore next */ []));
|
|
260
293
|
setDisabledState(isDisabled) {
|
|
261
294
|
this._cvaDisabled.set(isDisabled);
|
|
262
295
|
}
|
|
263
|
-
isDisabledFinal = computed(() => this.disabled() || this._cvaDisabled(),
|
|
296
|
+
isDisabledFinal = computed(() => this.disabled() || this._cvaDisabled(), /* @ts-ignore */
|
|
297
|
+
...(ngDevMode ? [{ debugName: "isDisabledFinal" }] : /* istanbul ignore next */ []));
|
|
264
298
|
toggle() {
|
|
265
299
|
if (this.isDisabledFinal())
|
|
266
300
|
return;
|
|
@@ -416,8 +450,8 @@ class NeuSelectComponent {
|
|
|
416
450
|
});
|
|
417
451
|
this.isPanelAbove.set(false);
|
|
418
452
|
}
|
|
419
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
420
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
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: [
|
|
421
455
|
{
|
|
422
456
|
provide: NG_VALUE_ACCESSOR,
|
|
423
457
|
useExisting: forwardRef(() => NeuSelectComponent),
|
|
@@ -669,7 +703,7 @@ class NeuSelectComponent {
|
|
|
669
703
|
}
|
|
670
704
|
`, 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 });
|
|
671
705
|
}
|
|
672
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
706
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: NeuSelectComponent, decorators: [{
|
|
673
707
|
type: Component,
|
|
674
708
|
args: [{ selector: 'neu-select', imports: [NgTemplateOutlet, OverlayModule, ScrollingModule], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
675
709
|
{
|