@neural-ui/core 1.6.1 → 1.6.3

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 (202) hide show
  1. package/accordion/package.json +4 -0
  2. package/alert/package.json +4 -0
  3. package/autocomplete/package.json +4 -0
  4. package/avatar/package.json +4 -0
  5. package/badge/package.json +4 -0
  6. package/block-ui/package.json +4 -0
  7. package/breadcrumb/package.json +4 -0
  8. package/button/package.json +4 -0
  9. package/calendar/package.json +4 -0
  10. package/card/package.json +4 -0
  11. package/chart/package.json +4 -0
  12. package/checkbox/package.json +4 -0
  13. package/chip/package.json +4 -0
  14. package/code-block/package.json +4 -0
  15. package/color-picker/package.json +4 -0
  16. package/command-palette/package.json +4 -0
  17. package/confirm-dialog/package.json +4 -0
  18. package/context-menu/package.json +4 -0
  19. package/dashboard-grid/package.json +4 -0
  20. package/date-input/package.json +4 -0
  21. package/divider/package.json +4 -0
  22. package/empty-state/package.json +4 -0
  23. package/fesm2022/neural-ui-core-accordion.mjs +7 -11
  24. package/fesm2022/neural-ui-core-accordion.mjs.map +1 -1
  25. package/fesm2022/neural-ui-core-alert.mjs +14 -25
  26. package/fesm2022/neural-ui-core-alert.mjs.map +1 -1
  27. package/fesm2022/neural-ui-core-autocomplete.mjs +28 -53
  28. package/fesm2022/neural-ui-core-autocomplete.mjs.map +1 -1
  29. package/fesm2022/neural-ui-core-avatar.mjs +13 -23
  30. package/fesm2022/neural-ui-core-avatar.mjs.map +1 -1
  31. package/fesm2022/neural-ui-core-badge.mjs +9 -15
  32. package/fesm2022/neural-ui-core-badge.mjs.map +1 -1
  33. package/fesm2022/neural-ui-core-block-ui.mjs +11 -16
  34. package/fesm2022/neural-ui-core-block-ui.mjs.map +1 -1
  35. package/fesm2022/neural-ui-core-breadcrumb.mjs +6 -8
  36. package/fesm2022/neural-ui-core-breadcrumb.mjs.map +1 -1
  37. package/fesm2022/neural-ui-core-button.mjs +16 -29
  38. package/fesm2022/neural-ui-core-button.mjs.map +1 -1
  39. package/fesm2022/neural-ui-core-calendar.mjs +20 -37
  40. package/fesm2022/neural-ui-core-calendar.mjs.map +1 -1
  41. package/fesm2022/neural-ui-core-card.mjs +8 -13
  42. package/fesm2022/neural-ui-core-card.mjs.map +1 -1
  43. package/fesm2022/neural-ui-core-chart.mjs +24 -45
  44. package/fesm2022/neural-ui-core-chart.mjs.map +1 -1
  45. package/fesm2022/neural-ui-core-checkbox.mjs +9 -15
  46. package/fesm2022/neural-ui-core-checkbox.mjs.map +1 -1
  47. package/fesm2022/neural-ui-core-chip.mjs +13 -23
  48. package/fesm2022/neural-ui-core-chip.mjs.map +1 -1
  49. package/fesm2022/neural-ui-core-code-block.mjs +17 -31
  50. package/fesm2022/neural-ui-core-code-block.mjs.map +1 -1
  51. package/fesm2022/neural-ui-core-color-picker.mjs +11 -19
  52. package/fesm2022/neural-ui-core-color-picker.mjs.map +1 -1
  53. package/fesm2022/neural-ui-core-command-palette.mjs +11 -16
  54. package/fesm2022/neural-ui-core-command-palette.mjs.map +1 -1
  55. package/fesm2022/neural-ui-core-confirm-dialog.mjs +6 -6
  56. package/fesm2022/neural-ui-core-confirm-dialog.mjs.map +1 -1
  57. package/fesm2022/neural-ui-core-context-menu.mjs +9 -12
  58. package/fesm2022/neural-ui-core-context-menu.mjs.map +1 -1
  59. package/fesm2022/neural-ui-core-dashboard-grid.mjs +7 -11
  60. package/fesm2022/neural-ui-core-dashboard-grid.mjs.map +1 -1
  61. package/fesm2022/neural-ui-core-date-input.mjs +57 -111
  62. package/fesm2022/neural-ui-core-date-input.mjs.map +1 -1
  63. package/fesm2022/neural-ui-core-divider.mjs +5 -7
  64. package/fesm2022/neural-ui-core-divider.mjs.map +1 -1
  65. package/fesm2022/neural-ui-core-empty-state.mjs +8 -13
  66. package/fesm2022/neural-ui-core-empty-state.mjs.map +1 -1
  67. package/fesm2022/neural-ui-core-filter-bar.mjs +11 -19
  68. package/fesm2022/neural-ui-core-filter-bar.mjs.map +1 -1
  69. package/fesm2022/neural-ui-core-icon.mjs +7 -11
  70. package/fesm2022/neural-ui-core-icon.mjs.map +1 -1
  71. package/fesm2022/neural-ui-core-image-gallery.mjs +13 -23
  72. package/fesm2022/neural-ui-core-image-gallery.mjs.map +1 -1
  73. package/fesm2022/neural-ui-core-image-viewer.mjs +14 -22
  74. package/fesm2022/neural-ui-core-image-viewer.mjs.map +1 -1
  75. package/fesm2022/neural-ui-core-input-otp.mjs +11 -19
  76. package/fesm2022/neural-ui-core-input-otp.mjs.map +1 -1
  77. package/fesm2022/neural-ui-core-input.mjs +35 -67
  78. package/fesm2022/neural-ui-core-input.mjs.map +1 -1
  79. package/fesm2022/neural-ui-core-kanban.mjs +9 -15
  80. package/fesm2022/neural-ui-core-kanban.mjs.map +1 -1
  81. package/fesm2022/neural-ui-core-knob.mjs +22 -41
  82. package/fesm2022/neural-ui-core-knob.mjs.map +1 -1
  83. package/fesm2022/neural-ui-core-meter-group.mjs +13 -23
  84. package/fesm2022/neural-ui-core-meter-group.mjs.map +1 -1
  85. package/fesm2022/neural-ui-core-modal.mjs +11 -16
  86. package/fesm2022/neural-ui-core-modal.mjs.map +1 -1
  87. package/fesm2022/neural-ui-core-multiselect.mjs +39 -72
  88. package/fesm2022/neural-ui-core-multiselect.mjs.map +1 -1
  89. package/fesm2022/neural-ui-core-nav.mjs +13 -22
  90. package/fesm2022/neural-ui-core-nav.mjs.map +1 -1
  91. package/fesm2022/neural-ui-core-notification-center.mjs +9 -12
  92. package/fesm2022/neural-ui-core-notification-center.mjs.map +1 -1
  93. package/fesm2022/neural-ui-core-number-input.mjs +19 -35
  94. package/fesm2022/neural-ui-core-number-input.mjs.map +1 -1
  95. package/fesm2022/neural-ui-core-pagination.mjs +9 -15
  96. package/fesm2022/neural-ui-core-pagination.mjs.map +1 -1
  97. package/fesm2022/neural-ui-core-popover.mjs +14 -22
  98. package/fesm2022/neural-ui-core-popover.mjs.map +1 -1
  99. package/fesm2022/neural-ui-core-progress-bar.mjs +11 -19
  100. package/fesm2022/neural-ui-core-progress-bar.mjs.map +1 -1
  101. package/fesm2022/neural-ui-core-radio.mjs +15 -24
  102. package/fesm2022/neural-ui-core-radio.mjs.map +1 -1
  103. package/fesm2022/neural-ui-core-rating.mjs +8 -13
  104. package/fesm2022/neural-ui-core-rating.mjs.map +1 -1
  105. package/fesm2022/neural-ui-core-rich-text-editor.mjs +28 -53
  106. package/fesm2022/neural-ui-core-rich-text-editor.mjs.map +1 -1
  107. package/fesm2022/neural-ui-core-scheduler-gantt.mjs +22 -41
  108. package/fesm2022/neural-ui-core-scheduler-gantt.mjs.map +1 -1
  109. package/fesm2022/neural-ui-core-select.mjs +43 -77
  110. package/fesm2022/neural-ui-core-select.mjs.map +1 -1
  111. package/fesm2022/neural-ui-core-sidebar.mjs +12 -21
  112. package/fesm2022/neural-ui-core-sidebar.mjs.map +1 -1
  113. package/fesm2022/neural-ui-core-skeleton.mjs +7 -11
  114. package/fesm2022/neural-ui-core-skeleton.mjs.map +1 -1
  115. package/fesm2022/neural-ui-core-slider.mjs +13 -23
  116. package/fesm2022/neural-ui-core-slider.mjs.map +1 -1
  117. package/fesm2022/neural-ui-core-spinner.mjs +10 -17
  118. package/fesm2022/neural-ui-core-spinner.mjs.map +1 -1
  119. package/fesm2022/neural-ui-core-split-button.mjs +15 -27
  120. package/fesm2022/neural-ui-core-split-button.mjs.map +1 -1
  121. package/fesm2022/neural-ui-core-splitter.mjs +6 -9
  122. package/fesm2022/neural-ui-core-splitter.mjs.map +1 -1
  123. package/fesm2022/neural-ui-core-stats-card.mjs +11 -19
  124. package/fesm2022/neural-ui-core-stats-card.mjs.map +1 -1
  125. package/fesm2022/neural-ui-core-stepper.mjs +8 -13
  126. package/fesm2022/neural-ui-core-stepper.mjs.map +1 -1
  127. package/fesm2022/neural-ui-core-switch.mjs +9 -15
  128. package/fesm2022/neural-ui-core-switch.mjs.map +1 -1
  129. package/fesm2022/neural-ui-core-table.mjs +124 -242
  130. package/fesm2022/neural-ui-core-table.mjs.map +1 -1
  131. package/fesm2022/neural-ui-core-tabs.mjs +18 -30
  132. package/fesm2022/neural-ui-core-tabs.mjs.map +1 -1
  133. package/fesm2022/neural-ui-core-textarea.mjs +23 -43
  134. package/fesm2022/neural-ui-core-textarea.mjs.map +1 -1
  135. package/fesm2022/neural-ui-core-timeline-grid.mjs +12 -21
  136. package/fesm2022/neural-ui-core-timeline-grid.mjs.map +1 -1
  137. package/fesm2022/neural-ui-core-timeline.mjs +4 -5
  138. package/fesm2022/neural-ui-core-timeline.mjs.map +1 -1
  139. package/fesm2022/neural-ui-core-toast.mjs +8 -10
  140. package/fesm2022/neural-ui-core-toast.mjs.map +1 -1
  141. package/fesm2022/neural-ui-core-toggle-button-group.mjs +10 -17
  142. package/fesm2022/neural-ui-core-toggle-button-group.mjs.map +1 -1
  143. package/fesm2022/neural-ui-core-toolbar.mjs +8 -13
  144. package/fesm2022/neural-ui-core-toolbar.mjs.map +1 -1
  145. package/fesm2022/neural-ui-core-tooltip.mjs +11 -16
  146. package/fesm2022/neural-ui-core-tooltip.mjs.map +1 -1
  147. package/fesm2022/neural-ui-core-tree-table.mjs +30 -57
  148. package/fesm2022/neural-ui-core-tree-table.mjs.map +1 -1
  149. package/fesm2022/neural-ui-core-tree.mjs +17 -31
  150. package/fesm2022/neural-ui-core-tree.mjs.map +1 -1
  151. package/fesm2022/neural-ui-core-uploader.mjs +47 -91
  152. package/fesm2022/neural-ui-core-uploader.mjs.map +1 -1
  153. package/fesm2022/neural-ui-core-url-state.mjs +5 -7
  154. package/fesm2022/neural-ui-core-url-state.mjs.map +1 -1
  155. package/fesm2022/neural-ui-core-virtual-list.mjs +19 -32
  156. package/fesm2022/neural-ui-core-virtual-list.mjs.map +1 -1
  157. package/filter-bar/package.json +4 -0
  158. package/icon/package.json +4 -0
  159. package/image-gallery/package.json +4 -0
  160. package/image-viewer/package.json +4 -0
  161. package/input/package.json +4 -0
  162. package/input-otp/package.json +4 -0
  163. package/kanban/package.json +4 -0
  164. package/knob/package.json +4 -0
  165. package/meter-group/package.json +4 -0
  166. package/modal/package.json +4 -0
  167. package/multiselect/package.json +4 -0
  168. package/nav/package.json +4 -0
  169. package/notification-center/package.json +4 -0
  170. package/number-input/package.json +4 -0
  171. package/package.json +6 -6
  172. package/pagination/package.json +4 -0
  173. package/popover/package.json +4 -0
  174. package/progress-bar/package.json +4 -0
  175. package/radio/package.json +4 -0
  176. package/rating/package.json +4 -0
  177. package/rich-text-editor/package.json +4 -0
  178. package/scheduler-gantt/package.json +4 -0
  179. package/select/package.json +4 -0
  180. package/sidebar/package.json +4 -0
  181. package/skeleton/package.json +4 -0
  182. package/slider/package.json +4 -0
  183. package/spinner/package.json +4 -0
  184. package/split-button/package.json +4 -0
  185. package/splitter/package.json +4 -0
  186. package/stats-card/package.json +4 -0
  187. package/stepper/package.json +4 -0
  188. package/switch/package.json +4 -0
  189. package/table/package.json +4 -0
  190. package/tabs/package.json +4 -0
  191. package/textarea/package.json +4 -0
  192. package/timeline/package.json +4 -0
  193. package/timeline-grid/package.json +4 -0
  194. package/toast/package.json +4 -0
  195. package/toggle-button-group/package.json +4 -0
  196. package/toolbar/package.json +4 -0
  197. package/tooltip/package.json +4 -0
  198. package/tree/package.json +4 -0
  199. package/tree-table/package.json +4 -0
  200. package/uploader/package.json +4 -0
  201. package/url-state/package.json +4 -0
  202. package/virtual-list/package.json +4 -0
@@ -1 +1 @@
1
- {"version":3,"file":"neural-ui-core-context-menu.mjs","sources":["../../../../projects/ui-core/context-menu/neu-context-menu.component.ts","../../../../projects/ui-core/context-menu/neural-ui-core-context-menu.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n Directive,\n ElementRef,\n HostListener,\n Injector,\n OnDestroy,\n ViewContainerRef,\n ViewEncapsulation,\n computed,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\n\nexport interface NeuContextMenuItem {\n /** Key para identificar la acción / Key to identify the action */\n key: string;\n /** Texto visible / Visible text */\n label: string;\n /** Icono opcional (texto/emoji) / Optional icon (text/emoji) */\n icon?: string;\n /** Separador antes de este item / Separator before this item */\n separator?: boolean;\n /** Desactiva el item / Disables the item */\n disabled?: boolean;\n /** Variante de color / Color variant */\n variant?: 'default' | 'danger';\n}\n\nlet _seq = 0;\n\n/**\n * NeuralUI ContextMenu Overlay Component (internal)\n */\n@Component({\n selector: 'neu-context-menu-overlay',\n imports: [],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'neu-context-menu',\n role: 'menu',\n tabindex: '-1',\n '(keydown.escape)': '_onEscape()',\n },\n template: `\n @for (item of _items(); track item.key) {\n @if (item.separator && !$first) {\n <hr class=\"neu-context-menu__separator\" role=\"separator\" />\n }\n <button\n type=\"button\"\n role=\"menuitem\"\n class=\"neu-context-menu__item\"\n [class.neu-context-menu__item--danger]=\"item.variant === 'danger'\"\n [class.neu-context-menu__item--disabled]=\"item.disabled\"\n [disabled]=\"item.disabled ?? false\"\n [attr.aria-disabled]=\"item.disabled ?? false\"\n (click)=\"select(item)\"\n >\n @if (item.icon) {\n <span class=\"neu-context-menu__icon\" aria-hidden=\"true\">{{ item.icon }}</span>\n }\n {{ item.label }}\n </button>\n }\n `,\n styleUrl: './neu-context-menu.component.scss',\n})\nexport class NeuContextMenuOverlayComponent {\n readonly _items = signal<NeuContextMenuItem[]>([]);\n _selectFn: ((item: NeuContextMenuItem) => void) | null = null;\n _escapeFn: (() => void) | null = null;\n\n select(item: NeuContextMenuItem): void {\n if (!item.disabled) this._selectFn?.(item);\n }\n\n _onEscape(): void {\n this._escapeFn?.();\n }\n}\n\n/**\n * NeuralUI ContextMenu Directive\n *\n * Muestra un menú contextual al hacer clic derecho sobre el elemento host.\n *\n * Uso:\n * <div [neuContextMenu]=\"menuItems\" (menuItemClick)=\"onItem($event)\">\n * Clic derecho aquí\n * </div>\n */\n@Directive({\n selector: '[neuContextMenu]',\n exportAs: 'neuContextMenu',\n})\nexport class NeuContextMenuDirective implements OnDestroy {\n /** Ítems del menú / Menu items */\n readonly neuContextMenu = input<NeuContextMenuItem[]>([]);\n\n /** Desactiva el menú / Disables the menu */\n readonly neuContextMenuDisabled = input<boolean>(false);\n\n /** Emitido al seleccionar un ítem / Emitted when an item is selected */\n readonly menuItemClick = output<NeuContextMenuItem>();\n\n /** Emitido al abrir / Emitted on open */\n readonly menuOpened = output<void>();\n\n /** Emitido al cerrar / Emitted on close */\n readonly menuClosed = output<void>();\n\n private readonly _overlay = inject(Overlay);\n private readonly _el = inject(ElementRef<HTMLElement>);\n private readonly _injector = inject(Injector);\n private readonly _vcr = inject(ViewContainerRef);\n private _overlayRef: OverlayRef | null = null;\n private _compRef: ComponentRef<NeuContextMenuOverlayComponent> | null = null;\n\n @HostListener('contextmenu', ['$event'])\n onContextMenu(event: MouseEvent): void {\n event.preventDefault();\n if (this.neuContextMenuDisabled()) return;\n this._open(event.clientX, event.clientY);\n }\n\n private _open(x: number, y: number): void {\n this._close();\n this._overlayRef = this._overlay.create({\n hasBackdrop: true,\n backdropClass: 'neu-context-menu-backdrop',\n positionStrategy: this._overlay.position().global().left(`${x}px`).top(`${y}px`),\n scrollStrategy: this._overlay.scrollStrategies.close(),\n });\n\n const portal = new ComponentPortal(NeuContextMenuOverlayComponent, this._vcr, this._injector);\n this._compRef = this._overlayRef.attach(portal);\n this._compRef.instance._items.set(this.neuContextMenu());\n this._compRef.instance._selectFn = (item) => {\n this.menuItemClick.emit(item);\n this._close();\n };\n this._compRef.instance._escapeFn = () => this._close();\n\n this._overlayRef.backdropClick().subscribe(() => this._close());\n this.menuOpened.emit();\n }\n\n private _close(): void {\n if (this._overlayRef?.hasAttached()) {\n this._overlayRef.detach();\n this.menuClosed.emit();\n }\n this._overlayRef?.dispose();\n this._overlayRef = null;\n this._compRef = null;\n }\n\n ngOnDestroy(): void {\n this._close();\n }\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-context-menu.mjs","sources":["../../../../projects/ui-core/context-menu/neu-context-menu.component.ts","../../../../projects/ui-core/context-menu/neural-ui-core-context-menu.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n Directive,\n ElementRef,\n HostListener,\n Injector,\n OnDestroy,\n ViewContainerRef,\n ViewEncapsulation,\n computed,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\n\nexport interface NeuContextMenuItem {\n /** Key para identificar la acción / Key to identify the action */\n key: string;\n /** Texto visible / Visible text */\n label: string;\n /** Icono opcional (texto/emoji) / Optional icon (text/emoji) */\n icon?: string;\n /** Separador antes de este item / Separator before this item */\n separator?: boolean;\n /** Desactiva el item / Disables the item */\n disabled?: boolean;\n /** Variante de color / Color variant */\n variant?: 'default' | 'danger';\n}\n\nlet _seq = 0;\n\n/**\n * NeuralUI ContextMenu Overlay Component (internal)\n */\n@Component({\n selector: 'neu-context-menu-overlay',\n imports: [],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'neu-context-menu',\n role: 'menu',\n tabindex: '-1',\n '(keydown.escape)': '_onEscape()',\n },\n template: `\n @for (item of _items(); track item.key) {\n @if (item.separator && !$first) {\n <hr class=\"neu-context-menu__separator\" role=\"separator\" />\n }\n <button\n type=\"button\"\n role=\"menuitem\"\n class=\"neu-context-menu__item\"\n [class.neu-context-menu__item--danger]=\"item.variant === 'danger'\"\n [class.neu-context-menu__item--disabled]=\"item.disabled\"\n [disabled]=\"item.disabled ?? false\"\n [attr.aria-disabled]=\"item.disabled ?? false\"\n (click)=\"select(item)\"\n >\n @if (item.icon) {\n <span class=\"neu-context-menu__icon\" aria-hidden=\"true\">{{ item.icon }}</span>\n }\n {{ item.label }}\n </button>\n }\n `,\n styleUrl: './neu-context-menu.component.scss',\n})\nexport class NeuContextMenuOverlayComponent {\n readonly _items = signal<NeuContextMenuItem[]>([]);\n _selectFn: ((item: NeuContextMenuItem) => void) | null = null;\n _escapeFn: (() => void) | null = null;\n\n select(item: NeuContextMenuItem): void {\n if (!item.disabled) this._selectFn?.(item);\n }\n\n _onEscape(): void {\n this._escapeFn?.();\n }\n}\n\n/**\n * NeuralUI ContextMenu Directive\n *\n * Muestra un menú contextual al hacer clic derecho sobre el elemento host.\n *\n * Uso:\n * <div [neuContextMenu]=\"menuItems\" (menuItemClick)=\"onItem($event)\">\n * Clic derecho aquí\n * </div>\n */\n@Directive({\n selector: '[neuContextMenu]',\n exportAs: 'neuContextMenu',\n})\nexport class NeuContextMenuDirective implements OnDestroy {\n /** Ítems del menú / Menu items */\n readonly neuContextMenu = input<NeuContextMenuItem[]>([]);\n\n /** Desactiva el menú / Disables the menu */\n readonly neuContextMenuDisabled = input<boolean>(false);\n\n /** Emitido al seleccionar un ítem / Emitted when an item is selected */\n readonly menuItemClick = output<NeuContextMenuItem>();\n\n /** Emitido al abrir / Emitted on open */\n readonly menuOpened = output<void>();\n\n /** Emitido al cerrar / Emitted on close */\n readonly menuClosed = output<void>();\n\n private readonly _overlay = inject(Overlay);\n private readonly _el = inject(ElementRef<HTMLElement>);\n private readonly _injector = inject(Injector);\n private readonly _vcr = inject(ViewContainerRef);\n private _overlayRef: OverlayRef | null = null;\n private _compRef: ComponentRef<NeuContextMenuOverlayComponent> | null = null;\n\n @HostListener('contextmenu', ['$event'])\n onContextMenu(event: MouseEvent): void {\n event.preventDefault();\n if (this.neuContextMenuDisabled()) return;\n this._open(event.clientX, event.clientY);\n }\n\n private _open(x: number, y: number): void {\n this._close();\n this._overlayRef = this._overlay.create({\n hasBackdrop: true,\n backdropClass: 'neu-context-menu-backdrop',\n positionStrategy: this._overlay.position().global().left(`${x}px`).top(`${y}px`),\n scrollStrategy: this._overlay.scrollStrategies.close(),\n });\n\n const portal = new ComponentPortal(NeuContextMenuOverlayComponent, this._vcr, this._injector);\n this._compRef = this._overlayRef.attach(portal);\n this._compRef.instance._items.set(this.neuContextMenu());\n this._compRef.instance._selectFn = (item) => {\n this.menuItemClick.emit(item);\n this._close();\n };\n this._compRef.instance._escapeFn = () => this._close();\n\n this._overlayRef.backdropClick().subscribe(() => this._close());\n this.menuOpened.emit();\n }\n\n private _close(): void {\n if (this._overlayRef?.hasAttached()) {\n this._overlayRef.detach();\n this.menuClosed.emit();\n }\n this._overlayRef?.dispose();\n this._overlayRef = null;\n this._compRef = null;\n }\n\n ngOnDestroy(): void {\n this._close();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -14,16 +14,12 @@ import { moveItemInArray, CdkDrag, CdkDragPlaceholder, CdkDragPreview, CdkDropLi
14
14
  */
15
15
  class NeuDashboardGridComponent {
16
16
  _host = inject(ElementRef);
17
- tiles = input([], /* @ts-ignore */
18
- ...(ngDevMode ? [{ debugName: "tiles" }] : /* istanbul ignore next */ []));
19
- columns = input(3, /* @ts-ignore */
20
- ...(ngDevMode ? [{ debugName: "columns" }] : /* istanbul ignore next */ []));
17
+ tiles = input([], ...(ngDevMode ? [{ debugName: "tiles" }] : /* istanbul ignore next */ []));
18
+ columns = input(3, ...(ngDevMode ? [{ debugName: "columns" }] : /* istanbul ignore next */ []));
21
19
  /** Emitido cuando el orden cambia / Emitted when order changes */
22
20
  orderChange = output();
23
- _orderedTiles = signal([], /* @ts-ignore */
24
- ...(ngDevMode ? [{ debugName: "_orderedTiles" }] : /* istanbul ignore next */ []));
25
- _tileSlots = viewChildren('tileSlot', /* @ts-ignore */
26
- ...(ngDevMode ? [{ debugName: "_tileSlots" }] : /* istanbul ignore next */ []));
21
+ _orderedTiles = signal([], ...(ngDevMode ? [{ debugName: "_orderedTiles" }] : /* istanbul ignore next */ []));
22
+ _tileSlots = viewChildren('tileSlot', ...(ngDevMode ? [{ debugName: "_tileSlots" }] : /* istanbul ignore next */ []));
27
23
  constructor() {
28
24
  effect(() => {
29
25
  const t = this.tiles();
@@ -55,8 +51,8 @@ class NeuDashboardGridComponent {
55
51
  }
56
52
  }
57
53
  }
58
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: NeuDashboardGridComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
59
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.4", type: NeuDashboardGridComponent, isStandalone: true, selector: "neu-dashboard-grid", inputs: { tiles: { classPropertyName: "tiles", publicName: "tiles", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { orderChange: "orderChange" }, host: { properties: { "style.--neu-dg-cols": "columns()" }, classAttribute: "neu-dg" }, viewQueries: [{ propertyName: "_tileSlots", predicate: ["tileSlot"], descendants: true, isSignal: true }], ngImport: i0, template: `
54
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: NeuDashboardGridComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
55
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: NeuDashboardGridComponent, isStandalone: true, selector: "neu-dashboard-grid", inputs: { tiles: { classPropertyName: "tiles", publicName: "tiles", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { orderChange: "orderChange" }, host: { properties: { "style.--neu-dg-cols": "columns()" }, classAttribute: "neu-dg" }, viewQueries: [{ propertyName: "_tileSlots", predicate: ["tileSlot"], descendants: true, isSignal: true }], ngImport: i0, template: `
60
56
  <div class="neu-dg__projection-source" aria-hidden="true">
61
57
  <ng-content />
62
58
  </div>
@@ -95,7 +91,7 @@ class NeuDashboardGridComponent {
95
91
  </div>
96
92
  `, isInline: true, styles: ["@charset \"UTF-8\";.neu-dg{display:block;width:100%}.neu-dg__projection-source{display:none}.neu-dg__grid{display:grid;grid-template-columns:repeat(var(--neu-dg-cols, 3),1fr);gap:var(--neu-dg-gap, 16px)}.neu-dg__tile{grid-column:span var(--tile-cols, 1);grid-row:span var(--tile-rows, 1);background:var(--neu-surface);border:1px solid var(--neu-border);border-radius:var(--neu-radius-xl, 16px);overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .12s}.neu-dg__tile:hover{box-shadow:0 4px 12px -2px #00000014}.neu-dg__tile-handle{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--neu-border);cursor:grab;-webkit-user-select:none;user-select:none}.neu-dg__tile-handle:active{cursor:grabbing}.neu-dg__tile-title{font-size:.875rem;font-weight:600;color:var(--neu-text)}.neu-dg__handle-icon{font-size:1rem;color:var(--neu-text-muted);letter-spacing:2px}.neu-dg__tile-content{flex:1;overflow:auto;padding:12px 12px 16px}.neu-dg__tile-slot{display:flex;flex-direction:column;gap:var(--neu-dg-content-gap, 12px);min-height:100%}.neu-dg__placeholder{background:color-mix(in srgb,var(--neu-primary) 10%,transparent);border:2px dashed var(--neu-primary);border-radius:var(--neu-radius-xl, 16px)}.neu-dg__preview{display:flex;align-items:center;justify-content:center;padding:12px 20px;background:var(--neu-surface);border:1px solid var(--neu-border);border-radius:var(--neu-radius-xl, 16px);box-shadow:0 8px 20px -4px #00000024;font-size:.875rem;font-weight:500}.cdk-drag-animating{transition:transform .2s cubic-bezier(.25,.8,.25,1)}\n"], dependencies: [{ kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "directive", type: CdkDragPreview, selector: "ng-template[cdkDragPreview]", inputs: ["data", "matchSize"] }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer", "cdkDropListHasAnchor"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
97
93
  }
98
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: NeuDashboardGridComponent, decorators: [{
94
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: NeuDashboardGridComponent, decorators: [{
99
95
  type: Component,
100
96
  args: [{ selector: 'neu-dashboard-grid', imports: [CdkDrag, CdkDragPlaceholder, CdkDragPreview, CdkDropList], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
101
97
  class: 'neu-dg',
@@ -1 +1 @@
1
- {"version":3,"file":"neural-ui-core-dashboard-grid.mjs","sources":["../../../../projects/ui-core/dashboard-grid/neu-dashboard-grid.component.ts","../../../../projects/ui-core/dashboard-grid/neural-ui-core-dashboard-grid.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n effect,\n inject,\n input,\n output,\n signal,\n untracked,\n viewChildren,\n} from '@angular/core';\nimport {\n CdkDrag,\n CdkDragDrop,\n CdkDragPlaceholder,\n CdkDragPreview,\n CdkDropList,\n moveItemInArray,\n} from '@angular/cdk/drag-drop';\n\nexport interface NeuDashboardTileConfig {\n /** Identificador único / Unique identifier */\n id: string;\n /** Número de columnas que ocupa / Column span */\n cols?: number;\n /** Número de filas que ocupa / Row span */\n rows?: number;\n /** Título del tile / Tile title */\n title?: string;\n}\n\n/**\n * NeuralUI DashboardGrid\n *\n * Cuadrícula de tiles reordenables mediante drag-and-drop (CDK DragDrop).\n *\n * Uso:\n * <neu-dashboard-grid [tiles]=\"tileConfigs\" [columns]=\"3\">\n * <ng-template neuDashboardTile id=\"tile-1\">...</ng-template>\n * </neu-dashboard-grid>\n */\n@Component({\n selector: 'neu-dashboard-grid',\n imports: [CdkDrag, CdkDragPlaceholder, CdkDragPreview, CdkDropList],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'neu-dg',\n '[style.--neu-dg-cols]': 'columns()',\n },\n template: `\n <div class=\"neu-dg__projection-source\" aria-hidden=\"true\">\n <ng-content />\n </div>\n\n <div\n class=\"neu-dg__grid\"\n cdkDropList\n [cdkDropListData]=\"_orderedTiles()\"\n (cdkDropListDropped)=\"_onDrop($event)\"\n >\n @for (tile of _orderedTiles(); track tile.id) {\n <div\n class=\"neu-dg__tile\"\n cdkDrag\n [cdkDragData]=\"tile\"\n [style.--tile-cols]=\"tile.cols ?? 1\"\n [style.--tile-rows]=\"tile.rows ?? 1\"\n >\n <!-- Drag handle -->\n <div class=\"neu-dg__tile-handle\" cdkDragHandle>\n @if (tile.title) {\n <span class=\"neu-dg__tile-title\">{{ tile.title }}</span>\n }\n <span class=\"neu-dg__handle-icon\" aria-hidden=\"true\">⠿</span>\n </div>\n <!-- Drag placeholder -->\n <div *cdkDragPlaceholder class=\"neu-dg__placeholder\"></div>\n <!-- Drag preview -->\n <div *cdkDragPreview class=\"neu-dg__preview\">{{ tile.title ?? tile.id }}</div>\n <!-- Content slot -->\n <div class=\"neu-dg__tile-content\" tabindex=\"0\">\n <div class=\"neu-dg__tile-slot\" #tileSlot [attr.data-slot-id]=\"tile.id\"></div>\n </div>\n </div>\n }\n </div>\n `,\n styleUrl: './neu-dashboard-grid.component.scss',\n})\nexport class NeuDashboardGridComponent {\n private readonly _host = inject(ElementRef) as ElementRef<HTMLElement>;\n\n readonly tiles = input<NeuDashboardTileConfig[]>([]);\n readonly columns = input<number>(3);\n\n /** Emitido cuando el orden cambia / Emitted when order changes */\n readonly orderChange = output<NeuDashboardTileConfig[]>();\n\n readonly _orderedTiles = signal<NeuDashboardTileConfig[]>([]);\n readonly _tileSlots = viewChildren<ElementRef<HTMLElement>>('tileSlot');\n\n constructor() {\n effect(() => {\n const t = this.tiles();\n untracked(() => this._orderedTiles.set([...t]));\n });\n\n effect(() => {\n this._orderedTiles();\n this._tileSlots();\n queueMicrotask(() => this._attachProjectedTiles());\n });\n }\n\n _onDrop(event: CdkDragDrop<NeuDashboardTileConfig[]>): void {\n const tiles = [...this._orderedTiles()];\n moveItemInArray(tiles, event.previousIndex, event.currentIndex);\n this._orderedTiles.set(tiles);\n this.orderChange.emit(tiles);\n }\n\n private _attachProjectedTiles(): void {\n const slots = new Map(\n this._tileSlots().map((slotRef) => [\n slotRef.nativeElement.dataset['slotId'],\n slotRef.nativeElement,\n ]),\n );\n\n const projectedTiles = this._host.nativeElement.querySelectorAll(\n '[data-tile-id]',\n ) as NodeListOf<HTMLElement>;\n\n for (const tileContent of projectedTiles) {\n const tileId = tileContent.dataset['tileId'];\n const slot = slots.get(tileId);\n\n if (slot && tileContent.parentElement !== slot) {\n slot.appendChild(tileContent);\n }\n }\n }\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-dashboard-grid.mjs","sources":["../../../../projects/ui-core/dashboard-grid/neu-dashboard-grid.component.ts","../../../../projects/ui-core/dashboard-grid/neural-ui-core-dashboard-grid.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n effect,\n inject,\n input,\n output,\n signal,\n untracked,\n viewChildren,\n} from '@angular/core';\nimport {\n CdkDrag,\n CdkDragDrop,\n CdkDragPlaceholder,\n CdkDragPreview,\n CdkDropList,\n moveItemInArray,\n} from '@angular/cdk/drag-drop';\n\nexport interface NeuDashboardTileConfig {\n /** Identificador único / Unique identifier */\n id: string;\n /** Número de columnas que ocupa / Column span */\n cols?: number;\n /** Número de filas que ocupa / Row span */\n rows?: number;\n /** Título del tile / Tile title */\n title?: string;\n}\n\n/**\n * NeuralUI DashboardGrid\n *\n * Cuadrícula de tiles reordenables mediante drag-and-drop (CDK DragDrop).\n *\n * Uso:\n * <neu-dashboard-grid [tiles]=\"tileConfigs\" [columns]=\"3\">\n * <ng-template neuDashboardTile id=\"tile-1\">...</ng-template>\n * </neu-dashboard-grid>\n */\n@Component({\n selector: 'neu-dashboard-grid',\n imports: [CdkDrag, CdkDragPlaceholder, CdkDragPreview, CdkDropList],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'neu-dg',\n '[style.--neu-dg-cols]': 'columns()',\n },\n template: `\n <div class=\"neu-dg__projection-source\" aria-hidden=\"true\">\n <ng-content />\n </div>\n\n <div\n class=\"neu-dg__grid\"\n cdkDropList\n [cdkDropListData]=\"_orderedTiles()\"\n (cdkDropListDropped)=\"_onDrop($event)\"\n >\n @for (tile of _orderedTiles(); track tile.id) {\n <div\n class=\"neu-dg__tile\"\n cdkDrag\n [cdkDragData]=\"tile\"\n [style.--tile-cols]=\"tile.cols ?? 1\"\n [style.--tile-rows]=\"tile.rows ?? 1\"\n >\n <!-- Drag handle -->\n <div class=\"neu-dg__tile-handle\" cdkDragHandle>\n @if (tile.title) {\n <span class=\"neu-dg__tile-title\">{{ tile.title }}</span>\n }\n <span class=\"neu-dg__handle-icon\" aria-hidden=\"true\">⠿</span>\n </div>\n <!-- Drag placeholder -->\n <div *cdkDragPlaceholder class=\"neu-dg__placeholder\"></div>\n <!-- Drag preview -->\n <div *cdkDragPreview class=\"neu-dg__preview\">{{ tile.title ?? tile.id }}</div>\n <!-- Content slot -->\n <div class=\"neu-dg__tile-content\" tabindex=\"0\">\n <div class=\"neu-dg__tile-slot\" #tileSlot [attr.data-slot-id]=\"tile.id\"></div>\n </div>\n </div>\n }\n </div>\n `,\n styleUrl: './neu-dashboard-grid.component.scss',\n})\nexport class NeuDashboardGridComponent {\n private readonly _host = inject(ElementRef) as ElementRef<HTMLElement>;\n\n readonly tiles = input<NeuDashboardTileConfig[]>([]);\n readonly columns = input<number>(3);\n\n /** Emitido cuando el orden cambia / Emitted when order changes */\n readonly orderChange = output<NeuDashboardTileConfig[]>();\n\n readonly _orderedTiles = signal<NeuDashboardTileConfig[]>([]);\n readonly _tileSlots = viewChildren<ElementRef<HTMLElement>>('tileSlot');\n\n constructor() {\n effect(() => {\n const t = this.tiles();\n untracked(() => this._orderedTiles.set([...t]));\n });\n\n effect(() => {\n this._orderedTiles();\n this._tileSlots();\n queueMicrotask(() => this._attachProjectedTiles());\n });\n }\n\n _onDrop(event: CdkDragDrop<NeuDashboardTileConfig[]>): void {\n const tiles = [...this._orderedTiles()];\n moveItemInArray(tiles, event.previousIndex, event.currentIndex);\n this._orderedTiles.set(tiles);\n this.orderChange.emit(tiles);\n }\n\n private _attachProjectedTiles(): void {\n const slots = new Map(\n this._tileSlots().map((slotRef) => [\n slotRef.nativeElement.dataset['slotId'],\n slotRef.nativeElement,\n ]),\n );\n\n const projectedTiles = this._host.nativeElement.querySelectorAll(\n '[data-tile-id]',\n ) as NodeListOf<HTMLElement>;\n\n for (const tileContent of projectedTiles) {\n const tileId = tileContent.dataset['tileId'];\n const slot = slots.get(tileId);\n\n if (slot && tileContent.parentElement !== slot) {\n slot.appendChild(tileContent);\n }\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;AAiCA;;;;;;;;;AASG;MAkDU,yBAAyB,CAAA;AACnB,IAAA,KAAK,GAAG,MAAM,CAAC,UAAU,CAA4B;AAE7D,IAAA,KAAK,GAAG,KAAK,CAA2B,EAAE,4EAAC;AAC3C,IAAA,OAAO,GAAG,KAAK,CAAS,CAAC,8EAAC;;IAG1B,WAAW,GAAG,MAAM,EAA4B;AAEhD,IAAA,aAAa,GAAG,MAAM,CAA2B,EAAE,oFAAC;AACpD,IAAA,UAAU,GAAG,YAAY,CAA0B,UAAU,iFAAC;AAEvE,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;AACtB,YAAA,SAAS,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACjD,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;YACV,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,UAAU,EAAE;YACjB,cAAc,CAAC,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;AACpD,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,OAAO,CAAC,KAA4C,EAAA;QAClD,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACvC,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,YAAY,CAAC;AAC/D,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;AAC7B,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;IAC9B;IAEQ,qBAAqB,GAAA;AAC3B,QAAA,MAAM,KAAK,GAAG,IAAI,GAAG,CACnB,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK;AACjC,YAAA,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC;AACvC,YAAA,OAAO,CAAC,aAAa;AACtB,SAAA,CAAC,CACH;AAED,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAC9D,gBAAgB,CACU;AAE5B,QAAA,KAAK,MAAM,WAAW,IAAI,cAAc,EAAE;YACxC,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC;YAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;YAE9B,IAAI,IAAI,IAAI,WAAW,CAAC,aAAa,KAAK,IAAI,EAAE;AAC9C,gBAAA,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC;YAC/B;QACF;IACF;wGApDW,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAzB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,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,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,qBAAA,EAAA,WAAA,EAAA,EAAA,cAAA,EAAA,QAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAxC1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,wkDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EA5CS,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,iBAAA,EAAA,0BAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,kBAAkB,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,cAAc,uGAAE,WAAW,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,IAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,4BAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,+BAAA,EAAA,2BAAA,EAAA,6BAAA,EAAA,sBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;4FA+CvD,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAjDrC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,WACrB,CAAC,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,WAAW,CAAC,EAAA,aAAA,EACpD,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC;AACJ,wBAAA,KAAK,EAAE,QAAQ;AACf,wBAAA,uBAAuB,EAAE,WAAW;qBACrC,EAAA,QAAA,EACS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,wkDAAA,CAAA,EAAA;wVAa2D,UAAU,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;ACtGxE;;AAEG;;;;"}
@@ -31,64 +31,46 @@ class NeuDateInputComponent {
31
31
  overlay = inject(Overlay);
32
32
  _langObserver;
33
33
  /** Tipo del campo / Field type */
34
- type = input('date', /* @ts-ignore */
35
- ...(ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ []));
34
+ type = input('date', ...(ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ []));
36
35
  /** Etiqueta / Label */
37
- label = input('', /* @ts-ignore */
38
- ...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
36
+ label = input('', ...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
39
37
  /** Texto de ayuda / Help text */
40
- hint = input('', /* @ts-ignore */
41
- ...(ngDevMode ? [{ debugName: "hint" }] : /* istanbul ignore next */ []));
38
+ hint = input('', ...(ngDevMode ? [{ debugName: "hint" }] : /* istanbul ignore next */ []));
42
39
  /** Mensaje de error / Error message */
43
- errorMessage = input('', /* @ts-ignore */
44
- ...(ngDevMode ? [{ debugName: "errorMessage" }] : /* istanbul ignore next */ []));
40
+ errorMessage = input('', ...(ngDevMode ? [{ debugName: "errorMessage" }] : /* istanbul ignore next */ []));
45
41
  /** Deshabilita / Disabled */
46
- disabled = input(false, /* @ts-ignore */
47
- ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
42
+ disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
48
43
  /** Tamaño del campo: 'sm' = 36px | 'md' = 48px | 'lg' = 56px / Field size */
49
- size = input('md', /* @ts-ignore */
50
- ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
44
+ size = input('md', ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
51
45
  /** Solo lectura / Read only */
52
- readonly = input(false, /* @ts-ignore */
53
- ...(ngDevMode ? [{ debugName: "readonly" }] : /* istanbul ignore next */ []));
46
+ readonly = input(false, ...(ngDevMode ? [{ debugName: "readonly" }] : /* istanbul ignore next */ []));
54
47
  /** Nombre / Field name */
55
- name = input('', /* @ts-ignore */
56
- ...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
48
+ name = input('', ...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
57
49
  /** ID accesible / Accessible ID */
58
- inputId = input('', /* @ts-ignore */
59
- ...(ngDevMode ? [{ debugName: "inputId" }] : /* istanbul ignore next */ []));
50
+ inputId = input('', ...(ngDevMode ? [{ debugName: "inputId" }] : /* istanbul ignore next */ []));
60
51
  /** Requerido / Required */
61
- required = input(false, /* @ts-ignore */
62
- ...(ngDevMode ? [{ debugName: "required" }] : /* istanbul ignore next */ []));
52
+ required = input(false, ...(ngDevMode ? [{ debugName: "required" }] : /* istanbul ignore next */ []));
63
53
  /** Mínimo / Minimum */
64
- min = input(null, /* @ts-ignore */
65
- ...(ngDevMode ? [{ debugName: "min" }] : /* istanbul ignore next */ []));
54
+ min = input(null, ...(ngDevMode ? [{ debugName: "min" }] : /* istanbul ignore next */ []));
66
55
  /** Máximo / Maximum */
67
- max = input(null, /* @ts-ignore */
68
- ...(ngDevMode ? [{ debugName: "max" }] : /* istanbul ignore next */ []));
56
+ max = input(null, ...(ngDevMode ? [{ debugName: "max" }] : /* istanbul ignore next */ []));
69
57
  /** Paso / Step */
70
- step = input(null, /* @ts-ignore */
71
- ...(ngDevMode ? [{ debugName: "step" }] : /* istanbul ignore next */ []));
58
+ step = input(null, ...(ngDevMode ? [{ debugName: "step" }] : /* istanbul ignore next */ []));
72
59
  /** Locale explícito opcional / Optional explicit locale */
73
- locale = input(null, /* @ts-ignore */
74
- ...(ngDevMode ? [{ debugName: "locale" }] : /* istanbul ignore next */ []));
60
+ locale = input(null, ...(ngDevMode ? [{ debugName: "locale" }] : /* istanbul ignore next */ []));
75
61
  // ── Range-mode inputs ────────────────────────────────────────────
76
62
  /** Placeholder del trigger de rango / Range trigger placeholder */
77
- placeholder = input('', /* @ts-ignore */
78
- ...(ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []));
63
+ placeholder = input('', ...(ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []));
79
64
  /** Formato de fecha en modo rango / Date display format in range mode */
80
- dateFormat = input('short', /* @ts-ignore */
81
- ...(ngDevMode ? [{ debugName: "dateFormat" }] : /* istanbul ignore next */ []));
65
+ dateFormat = input('short', ...(ngDevMode ? [{ debugName: "dateFormat" }] : /* istanbul ignore next */ []));
82
66
  /** Etiqueta flotante / Floating label */
83
- floatingLabel = input(false, /* @ts-ignore */
84
- ...(ngDevMode ? [{ debugName: "floatingLabel" }] : /* istanbul ignore next */ []));
67
+ floatingLabel = input(false, ...(ngDevMode ? [{ debugName: "floatingLabel" }] : /* istanbul ignore next */ []));
85
68
  // ── Outputs ──────────────────────────────────────────────────────
86
69
  /** Emitido al confirmar el rango / Emitted when range is confirmed */
87
70
  rangeChange = output();
88
71
  // ── Estado interno / Internal state ──────────────────────────────
89
72
  _id = `neu-date-input-${++_neuDateInputIdSeq}`;
90
- isOpen = signal(false, /* @ts-ignore */
91
- ...(ngDevMode ? [{ debugName: "isOpen" }] : /* istanbul ignore next */ []));
73
+ isOpen = signal(false, ...(ngDevMode ? [{ debugName: "isOpen" }] : /* istanbul ignore next */ []));
92
74
  _viewportMargin = 16;
93
75
  singleOverlayPositions = [
94
76
  {
@@ -151,57 +133,36 @@ class NeuDateInputComponent {
151
133
  },
152
134
  ];
153
135
  overlayScrollStrategy = this.overlay.scrollStrategies.reposition();
154
- _isRange = computed(() => this.type() === 'range', /* @ts-ignore */
155
- ...(ngDevMode ? [{ debugName: "_isRange" }] : /* istanbul ignore next */ []));
156
- _cvaDisabled = signal(false, /* @ts-ignore */
157
- ...(ngDevMode ? [{ debugName: "_cvaDisabled" }] : /* istanbul ignore next */ []));
158
- isDisabledFinal = computed(() => this.disabled() || this._cvaDisabled(), /* @ts-ignore */
159
- ...(ngDevMode ? [{ debugName: "isDisabledFinal" }] : /* istanbul ignore next */ []));
160
- hasError = computed(() => !!this.errorMessage(), /* @ts-ignore */
161
- ...(ngDevMode ? [{ debugName: "hasError" }] : /* istanbul ignore next */ []));
136
+ _isRange = computed(() => this.type() === 'range', ...(ngDevMode ? [{ debugName: "_isRange" }] : /* istanbul ignore next */ []));
137
+ _cvaDisabled = signal(false, ...(ngDevMode ? [{ debugName: "_cvaDisabled" }] : /* istanbul ignore next */ []));
138
+ isDisabledFinal = computed(() => this.disabled() || this._cvaDisabled(), ...(ngDevMode ? [{ debugName: "isDisabledFinal" }] : /* istanbul ignore next */ []));
139
+ hasError = computed(() => !!this.errorMessage(), ...(ngDevMode ? [{ debugName: "hasError" }] : /* istanbul ignore next */ []));
162
140
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
163
141
  _onChange = () => { };
164
142
  _onTouched = () => { };
165
143
  // ── State — single ────────────────────────────────────────────────
166
- _value = signal('', /* @ts-ignore */
167
- ...(ngDevMode ? [{ debugName: "_value" }] : /* istanbul ignore next */ []));
168
- _viewYear = signal(new Date().getFullYear(), /* @ts-ignore */
169
- ...(ngDevMode ? [{ debugName: "_viewYear" }] : /* istanbul ignore next */ []));
170
- _viewMonth = signal(new Date().getMonth(), /* @ts-ignore */
171
- ...(ngDevMode ? [{ debugName: "_viewMonth" }] : /* istanbul ignore next */ []));
172
- _selYear = signal(null, /* @ts-ignore */
173
- ...(ngDevMode ? [{ debugName: "_selYear" }] : /* istanbul ignore next */ []));
174
- _selMonth = signal(null, /* @ts-ignore */
175
- ...(ngDevMode ? [{ debugName: "_selMonth" }] : /* istanbul ignore next */ []));
176
- _selDay = signal(null, /* @ts-ignore */
177
- ...(ngDevMode ? [{ debugName: "_selDay" }] : /* istanbul ignore next */ []));
178
- _selHour = signal(0, /* @ts-ignore */
179
- ...(ngDevMode ? [{ debugName: "_selHour" }] : /* istanbul ignore next */ []));
180
- _selMinute = signal(0, /* @ts-ignore */
181
- ...(ngDevMode ? [{ debugName: "_selMinute" }] : /* istanbul ignore next */ []));
144
+ _value = signal('', ...(ngDevMode ? [{ debugName: "_value" }] : /* istanbul ignore next */ []));
145
+ _viewYear = signal(new Date().getFullYear(), ...(ngDevMode ? [{ debugName: "_viewYear" }] : /* istanbul ignore next */ []));
146
+ _viewMonth = signal(new Date().getMonth(), ...(ngDevMode ? [{ debugName: "_viewMonth" }] : /* istanbul ignore next */ []));
147
+ _selYear = signal(null, ...(ngDevMode ? [{ debugName: "_selYear" }] : /* istanbul ignore next */ []));
148
+ _selMonth = signal(null, ...(ngDevMode ? [{ debugName: "_selMonth" }] : /* istanbul ignore next */ []));
149
+ _selDay = signal(null, ...(ngDevMode ? [{ debugName: "_selDay" }] : /* istanbul ignore next */ []));
150
+ _selHour = signal(0, ...(ngDevMode ? [{ debugName: "_selHour" }] : /* istanbul ignore next */ []));
151
+ _selMinute = signal(0, ...(ngDevMode ? [{ debugName: "_selMinute" }] : /* istanbul ignore next */ []));
182
152
  // ── State — range ─────────────────────────────────────────────────
183
153
  _today = new Date();
184
- _documentLang = signal(this.#normalizedLocale(this.doc.documentElement.lang) || 'es', /* @ts-ignore */
185
- ...(ngDevMode ? [{ debugName: "_documentLang" }] : /* istanbul ignore next */ []));
186
- _pickStart = signal(null, /* @ts-ignore */
187
- ...(ngDevMode ? [{ debugName: "_pickStart" }] : /* istanbul ignore next */ []));
188
- _pickEnd = signal(null, /* @ts-ignore */
189
- ...(ngDevMode ? [{ debugName: "_pickEnd" }] : /* istanbul ignore next */ []));
190
- _hoverDate = signal(null, /* @ts-ignore */
191
- ...(ngDevMode ? [{ debugName: "_hoverDate" }] : /* istanbul ignore next */ []));
192
- _leftCursor = signal(new Date(this._today.getFullYear(), this._today.getMonth(), 1), /* @ts-ignore */
193
- ...(ngDevMode ? [{ debugName: "_leftCursor" }] : /* istanbul ignore next */ []));
154
+ _documentLang = signal(this.#normalizedLocale(this.doc.documentElement.lang) || 'es', ...(ngDevMode ? [{ debugName: "_documentLang" }] : /* istanbul ignore next */ []));
155
+ _pickStart = signal(null, ...(ngDevMode ? [{ debugName: "_pickStart" }] : /* istanbul ignore next */ []));
156
+ _pickEnd = signal(null, ...(ngDevMode ? [{ debugName: "_pickEnd" }] : /* istanbul ignore next */ []));
157
+ _hoverDate = signal(null, ...(ngDevMode ? [{ debugName: "_hoverDate" }] : /* istanbul ignore next */ []));
158
+ _leftCursor = signal(new Date(this._today.getFullYear(), this._today.getMonth(), 1), ...(ngDevMode ? [{ debugName: "_leftCursor" }] : /* istanbul ignore next */ []));
194
159
  _rightCursor = computed(() => {
195
160
  const l = this._leftCursor();
196
161
  return new Date(l.getFullYear(), l.getMonth() + 1, 1);
197
- }, /* @ts-ignore */
198
- ...(ngDevMode ? [{ debugName: "_rightCursor" }] : /* istanbul ignore next */ []));
199
- _hasRange = computed(() => !!this._pickStart(), /* @ts-ignore */
200
- ...(ngDevMode ? [{ debugName: "_hasRange" }] : /* istanbul ignore next */ []));
201
- _canApply = computed(() => this._pickStart() !== null && this._pickEnd() !== null, /* @ts-ignore */
202
- ...(ngDevMode ? [{ debugName: "_canApply" }] : /* istanbul ignore next */ []));
203
- _resolvedLocale = computed(() => this.#normalizedLocale(this.locale()) || this._documentLang() || 'es', /* @ts-ignore */
204
- ...(ngDevMode ? [{ debugName: "_resolvedLocale" }] : /* istanbul ignore next */ []));
162
+ }, ...(ngDevMode ? [{ debugName: "_rightCursor" }] : /* istanbul ignore next */ []));
163
+ _hasRange = computed(() => !!this._pickStart(), ...(ngDevMode ? [{ debugName: "_hasRange" }] : /* istanbul ignore next */ []));
164
+ _canApply = computed(() => this._pickStart() !== null && this._pickEnd() !== null, ...(ngDevMode ? [{ debugName: "_canApply" }] : /* istanbul ignore next */ []));
165
+ _resolvedLocale = computed(() => this.#normalizedLocale(this.locale()) || this._documentLang() || 'es', ...(ngDevMode ? [{ debugName: "_resolvedLocale" }] : /* istanbul ignore next */ []));
205
166
  _texts = computed(() => {
206
167
  const spanish = this._resolvedLocale().toLowerCase().startsWith('es');
207
168
  return spanish
@@ -241,20 +202,13 @@ class NeuDateInputComponent {
241
202
  datePlaceholder: 'mm/dd/yyyy',
242
203
  dateTimePlaceholder: 'mm/dd/yyyy, hh:mm',
243
204
  };
244
- }, /* @ts-ignore */
245
- ...(ngDevMode ? [{ debugName: "_texts" }] : /* istanbul ignore next */ []));
246
- _weekDayLabels = computed(() => this.#buildWeekdayLabels('short'), /* @ts-ignore */
247
- ...(ngDevMode ? [{ debugName: "_weekDayLabels" }] : /* istanbul ignore next */ []));
248
- _leftTitle = computed(() => this._monthTitle(this._leftCursor()), /* @ts-ignore */
249
- ...(ngDevMode ? [{ debugName: "_leftTitle" }] : /* istanbul ignore next */ []));
250
- _rightTitle = computed(() => this._monthTitle(this._rightCursor()), /* @ts-ignore */
251
- ...(ngDevMode ? [{ debugName: "_rightTitle" }] : /* istanbul ignore next */ []));
252
- _leftDays = computed(() => this._buildRangeMonth(this._leftCursor()), /* @ts-ignore */
253
- ...(ngDevMode ? [{ debugName: "_leftDays" }] : /* istanbul ignore next */ []));
254
- _rightDays = computed(() => this._buildRangeMonth(this._rightCursor()), /* @ts-ignore */
255
- ...(ngDevMode ? [{ debugName: "_rightDays" }] : /* istanbul ignore next */ []));
256
- _rangePlaceholderText = computed(() => this.placeholder() || this._texts().rangePlaceholder, /* @ts-ignore */
257
- ...(ngDevMode ? [{ debugName: "_rangePlaceholderText" }] : /* istanbul ignore next */ []));
205
+ }, ...(ngDevMode ? [{ debugName: "_texts" }] : /* istanbul ignore next */ []));
206
+ _weekDayLabels = computed(() => this.#buildWeekdayLabels('short'), ...(ngDevMode ? [{ debugName: "_weekDayLabels" }] : /* istanbul ignore next */ []));
207
+ _leftTitle = computed(() => this._monthTitle(this._leftCursor()), ...(ngDevMode ? [{ debugName: "_leftTitle" }] : /* istanbul ignore next */ []));
208
+ _rightTitle = computed(() => this._monthTitle(this._rightCursor()), ...(ngDevMode ? [{ debugName: "_rightTitle" }] : /* istanbul ignore next */ []));
209
+ _leftDays = computed(() => this._buildRangeMonth(this._leftCursor()), ...(ngDevMode ? [{ debugName: "_leftDays" }] : /* istanbul ignore next */ []));
210
+ _rightDays = computed(() => this._buildRangeMonth(this._rightCursor()), ...(ngDevMode ? [{ debugName: "_rightDays" }] : /* istanbul ignore next */ []));
211
+ _rangePlaceholderText = computed(() => this.placeholder() || this._texts().rangePlaceholder, ...(ngDevMode ? [{ debugName: "_rangePlaceholderText" }] : /* istanbul ignore next */ []));
258
212
  constructor() {
259
213
  if (typeof MutationObserver !== 'undefined') {
260
214
  this._langObserver = new MutationObserver(() => {
@@ -280,8 +234,7 @@ class NeuDateInputComponent {
280
234
  if (!e)
281
235
  return this._fmtDate(s);
282
236
  return `${this._fmtDate(s)} – ${this._fmtDate(e)}`;
283
- }, /* @ts-ignore */
284
- ...(ngDevMode ? [{ debugName: "_rangeDisplayValue" }] : /* istanbul ignore next */ []));
237
+ }, ...(ngDevMode ? [{ debugName: "_rangeDisplayValue" }] : /* istanbul ignore next */ []));
285
238
  _fmtDate(d) {
286
239
  const fmt = this.dateFormat();
287
240
  const opts = {
@@ -411,8 +364,7 @@ class NeuDateInputComponent {
411
364
  })) +
412
365
  ', ' +
413
366
  (timePart?.slice(0, 5) ?? ''));
414
- }, /* @ts-ignore */
415
- ...(ngDevMode ? [{ debugName: "displayValue" }] : /* istanbul ignore next */ []));
367
+ }, ...(ngDevMode ? [{ debugName: "displayValue" }] : /* istanbul ignore next */ []));
416
368
  placeholderText = computed(() => {
417
369
  switch (this.type()) {
418
370
  case 'time':
@@ -422,15 +374,12 @@ class NeuDateInputComponent {
422
374
  default:
423
375
  return this._texts().datePlaceholder;
424
376
  }
425
- }, /* @ts-ignore */
426
- ...(ngDevMode ? [{ debugName: "placeholderText" }] : /* istanbul ignore next */ []));
377
+ }, ...(ngDevMode ? [{ debugName: "placeholderText" }] : /* istanbul ignore next */ []));
427
378
  monthLabel = computed(() => this.#capitalize(new Date(this._viewYear(), this._viewMonth(), 1).toLocaleDateString(this._resolvedLocale(), {
428
379
  month: 'long',
429
380
  year: 'numeric',
430
- })), /* @ts-ignore */
431
- ...(ngDevMode ? [{ debugName: "monthLabel" }] : /* istanbul ignore next */ []));
432
- weekdays = computed(() => this.#buildWeekdayLabels('narrow'), /* @ts-ignore */
433
- ...(ngDevMode ? [{ debugName: "weekdays" }] : /* istanbul ignore next */ []));
381
+ })), ...(ngDevMode ? [{ debugName: "monthLabel" }] : /* istanbul ignore next */ []));
382
+ weekdays = computed(() => this.#buildWeekdayLabels('narrow'), ...(ngDevMode ? [{ debugName: "weekdays" }] : /* istanbul ignore next */ []));
434
383
  calendarDays = computed(() => {
435
384
  const year = this._viewYear();
436
385
  const month = this._viewMonth();
@@ -466,12 +415,9 @@ class NeuDateInputComponent {
466
415
  });
467
416
  }
468
417
  return days;
469
- }, /* @ts-ignore */
470
- ...(ngDevMode ? [{ debugName: "calendarDays" }] : /* istanbul ignore next */ []));
471
- hourSlots = computed(() => this._drumSlots(this._selHour(), 24), /* @ts-ignore */
472
- ...(ngDevMode ? [{ debugName: "hourSlots" }] : /* istanbul ignore next */ []));
473
- minuteSlots = computed(() => this._drumSlots(this._selMinute(), 60), /* @ts-ignore */
474
- ...(ngDevMode ? [{ debugName: "minuteSlots" }] : /* istanbul ignore next */ []));
418
+ }, ...(ngDevMode ? [{ debugName: "calendarDays" }] : /* istanbul ignore next */ []));
419
+ hourSlots = computed(() => this._drumSlots(this._selHour(), 24), ...(ngDevMode ? [{ debugName: "hourSlots" }] : /* istanbul ignore next */ []));
420
+ minuteSlots = computed(() => this._drumSlots(this._selMinute(), 60), ...(ngDevMode ? [{ debugName: "minuteSlots" }] : /* istanbul ignore next */ []));
475
421
  _drumSlots(value, max) {
476
422
  return [-1, 0, 1].map((offset) => {
477
423
  const v = (((value + offset) % max) + max) % max;
@@ -664,8 +610,8 @@ class NeuDateInputComponent {
664
610
  return this.#capitalize(label);
665
611
  });
666
612
  }
667
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: NeuDateInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
668
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.4", type: NeuDateInputComponent, isStandalone: true, selector: "neu-date-input", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, hint: { classPropertyName: "hint", publicName: "hint", isSignal: true, isRequired: false, transformFunction: null }, errorMessage: { classPropertyName: "errorMessage", publicName: "errorMessage", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, inputId: { classPropertyName: "inputId", publicName: "inputId", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "locale", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, dateFormat: { classPropertyName: "dateFormat", publicName: "dateFormat", isSignal: true, isRequired: false, transformFunction: null }, floatingLabel: { classPropertyName: "floatingLabel", publicName: "floatingLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { rangeChange: "rangeChange" }, host: { listeners: { "keydown.escape": "close()" }, properties: { "class.neu-date-input-host--sm": "size() === \"sm\"", "class.neu-date-input-host--lg": "size() === \"lg\"", "class.neu-drp": "_isRange()", "class.neu-drp--open": "_isRange() && isOpen()", "class.neu-drp--disabled": "_isRange() && isDisabledFinal()" }, classAttribute: "neu-date-input-host" }, providers: [
613
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: NeuDateInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
614
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: NeuDateInputComponent, isStandalone: true, selector: "neu-date-input", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, hint: { classPropertyName: "hint", publicName: "hint", isSignal: true, isRequired: false, transformFunction: null }, errorMessage: { classPropertyName: "errorMessage", publicName: "errorMessage", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, inputId: { classPropertyName: "inputId", publicName: "inputId", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "locale", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, dateFormat: { classPropertyName: "dateFormat", publicName: "dateFormat", isSignal: true, isRequired: false, transformFunction: null }, floatingLabel: { classPropertyName: "floatingLabel", publicName: "floatingLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { rangeChange: "rangeChange" }, host: { listeners: { "keydown.escape": "close()" }, properties: { "class.neu-date-input-host--sm": "size() === \"sm\"", "class.neu-date-input-host--lg": "size() === \"lg\"", "class.neu-drp": "_isRange()", "class.neu-drp--open": "_isRange() && isOpen()", "class.neu-drp--disabled": "_isRange() && isDisabledFinal()" }, classAttribute: "neu-date-input-host" }, providers: [
669
615
  {
670
616
  provide: NG_VALUE_ACCESSOR,
671
617
  useExisting: forwardRef(() => NeuDateInputComponent),
@@ -1082,7 +1028,7 @@ class NeuDateInputComponent {
1082
1028
  }
1083
1029
  `, isInline: true, styles: [".neu-date-input-host{display:block;font-family:var(--neu-font-sans)}.neu-date-input-host--sm .neu-date-input__trigger{min-height:36px;font-size:var(--neu-text-sm)}.neu-date-input-host--lg .neu-date-input__trigger{min-height:56px}.neu-date-input__label{display:block;font-size:var(--neu-text-sm);font-weight:500;color:var(--neu-text-muted);margin-bottom:var(--neu-space-2)}.neu-date-input--float{position:relative}.neu-date-input--float .neu-date-input__float-label{position:absolute;pointer-events:none;left:calc(var(--neu-space-3) + 32px);top:50%;transform:translateY(-50%);font-size:var(--neu-text-base);color:var(--neu-text-muted);background:transparent;padding:0;z-index:1;white-space:nowrap;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-date-input--float.neu-date-input--open .neu-date-input__float-label,.neu-date-input--float.neu-date-input--has-value .neu-date-input__float-label{top:0;transform:translateY(-50%);font-size:12px;font-weight:600;color:var(--neu-primary);background:var(--neu-surface);padding:0 4px;left:calc(var(--neu-space-3) - 4px)}.neu-date-input--float.neu-date-input--disabled .neu-date-input__float-label{background:var(--neu-surface-2)}.neu-date-input--float.neu-date-input--error .neu-date-input__float-label,.neu-date-input--float.neu-date-input--error .neu-date-input__float-label.neu-date-input--open .neu-date-input__float-label,.neu-date-input--float.neu-date-input--error .neu-date-input__float-label.neu-date-input--has-value .neu-date-input__float-label{color:var(--neu-error)}.neu-date-input{position:relative;font-family:var(--neu-font-sans)}.neu-date-input__trigger{display:flex;align-items:center;gap:var(--neu-space-2);width:100%;min-height:48px;padding:0 var(--neu-space-3);background:var(--neu-surface);border:1.5px solid var(--neu-border);border-radius:var(--neu-radius);cursor:pointer;text-align:left;font-family:var(--neu-font-sans);font-size:var(--neu-text-base);color:var(--neu-text);transition:border-color var(--neu-transition),box-shadow var(--neu-transition)}.neu-date-input__trigger:hover:not(:disabled){border-color:var(--neu-border-hover, var(--neu-border))}.neu-date-input__trigger:disabled{opacity:.6;cursor:not-allowed;background:var(--neu-surface-2)}.neu-date-input--open .neu-date-input__trigger{border-color:var(--neu-primary);box-shadow:var(--neu-focus-ring)}.neu-date-input--error .neu-date-input__trigger{border-color:var(--neu-error)}.neu-date-input__icon{display:flex;align-items:center;color:var(--neu-text-muted);flex-shrink:0}.neu-date-input__icon svg{width:18px;height:18px}.neu-date-input__display{flex:1;color:var(--neu-text);white-space:nowrap}.neu-date-input__display--placeholder{color:var(--neu-text-disabled)}.neu-date-input__panel{position:relative;z-index:200;background:var(--neu-surface);border:1.5px solid var(--neu-border);border-radius:var(--neu-radius);box-shadow:var(--neu-shadow-lg);display:flex;flex-direction:column;overflow:hidden;animation:neu-datepicker-in .12s ease}.neu-date-input__panel--time-only{flex-direction:row}@media(max-width:600px){.neu-date-input__panel{left:auto;right:0;width:min(280px,100vw - 2rem);max-width:calc(100vw - 2rem)}}@keyframes neu-datepicker-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.neu-date-input__calendar{padding:var(--neu-space-3);width:280px;flex-shrink:0}.neu-date-input__cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--neu-space-2)}.neu-date-input__cal-title{font-size:var(--neu-text-sm);font-weight:600;color:var(--neu-text);text-transform:capitalize}.neu-date-input__cal-arrow{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:none;border:none;border-radius:var(--neu-radius-sm);color:var(--neu-text-muted);cursor:pointer;transition:background var(--neu-transition),color var(--neu-transition)}.neu-date-input__cal-arrow:hover{background:var(--neu-surface-2);color:var(--neu-text)}.neu-date-input__cal-arrow svg{width:15px;height:15px}.neu-date-input__cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;margin-bottom:4px}.neu-date-input__cal-weekdays span{font-size:11px;font-weight:600;color:var(--neu-text-muted);padding:4px 0;text-transform:uppercase}.neu-date-input__cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.neu-date-input__cal-day{display:flex;align-items:center;justify-content:center;aspect-ratio:1;width:100%;padding:0;background:none;border:none;border-radius:var(--neu-radius-sm);font-family:var(--neu-font-sans);font-size:var(--neu-text-sm);color:var(--neu-text);cursor:pointer;transition:background var(--neu-transition),color var(--neu-transition)}.neu-date-input__cal-day:hover:not(.neu-date-input__cal-day--other):not(.neu-date-input__cal-day--selected){background:var(--neu-surface-2)}.neu-date-input__cal-day--other{color:var(--neu-text-disabled);pointer-events:none;cursor:default}.neu-date-input__cal-day--today{color:var(--neu-primary);font-weight:700}.neu-date-input__cal-day--selected{background:var(--neu-primary-solid, var(--neu-primary-dark, var(--neu-primary)))!important;color:var(--neu-primary-solid-fg, var(--neu-primary-fg))!important;font-weight:600}.neu-date-input__cal-footer{display:flex;justify-content:space-between;align-items:center;margin-top:var(--neu-space-2);padding-top:var(--neu-space-2);border-top:1px solid var(--neu-border)}.neu-date-input__cal-footer-btn{background:none;border:none;padding:4px 8px;font-family:var(--neu-font-sans);font-size:var(--neu-text-xs);color:var(--neu-text-muted);cursor:pointer;border-radius:var(--neu-radius-sm);transition:background var(--neu-transition),color var(--neu-transition)}.neu-date-input__cal-footer-btn:hover{background:var(--neu-surface-2);color:var(--neu-text)}.neu-date-input__cal-footer-btn--today{color:var(--neu-primary);font-weight:500}.neu-date-input__cal-footer-btn--today:hover{color:var(--neu-primary)}.neu-date-input__sep{height:1px;width:100%;background:var(--neu-border);flex-shrink:0}.neu-date-input__time{display:flex;align-items:center;justify-content:center;gap:var(--neu-space-1);padding:var(--neu-space-3) var(--neu-space-4);flex-shrink:0}.neu-date-input__time-colon{font-size:20px;font-weight:700;color:var(--neu-text);line-height:1;margin-bottom:4px;-webkit-user-select:none;user-select:none}.neu-date-input__drum{display:flex;flex-direction:column;align-items:center;gap:4px}.neu-date-input__drum-arrow{display:flex;align-items:center;justify-content:center;width:36px;height:24px;padding:0;background:none;border:none;border-radius:var(--neu-radius-sm);color:var(--neu-text-muted);cursor:pointer;transition:background var(--neu-transition),color var(--neu-transition)}.neu-date-input__drum-arrow:hover{background:var(--neu-surface-2);color:var(--neu-text)}.neu-date-input__drum-arrow svg{width:14px;height:14px}.neu-date-input__drum-track{position:relative;display:flex;flex-direction:column;align-items:center}.neu-date-input__drum-track:before{content:\"\";position:absolute;top:36px;left:-6px;right:-6px;height:36px;background:var(--neu-primary-soft, rgba(0, 122, 255, .1));border-radius:var(--neu-radius-sm);pointer-events:none}.neu-date-input__drum-item{position:relative;display:flex;align-items:center;justify-content:center;width:52px;height:36px;font-family:var(--neu-font-sans);font-weight:500;-webkit-user-select:none;user-select:none;border-radius:var(--neu-radius-sm);transition:opacity var(--neu-transition)}.neu-date-input__drum-item--adjacent{font-size:13px;color:var(--neu-text-muted);opacity:.45;cursor:pointer}.neu-date-input__drum-item--adjacent:hover{opacity:.75}.neu-date-input__drum-item--selected{font-size:22px;font-weight:700;color:var(--neu-primary);cursor:default}.neu-date-input__error{margin-top:var(--neu-space-1);font-size:var(--neu-text-xs);color:var(--neu-error-text, var(--neu-error));font-family:var(--neu-font-sans)}.neu-date-input__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-drp{position:relative;display:block;font-family:var(--neu-font-sans)}.neu-drp--disabled{opacity:.55;pointer-events:none}.neu-drp__label{display:block;font-size:var(--neu-text-sm);font-weight:500;color:var(--neu-text-muted);margin-bottom:var(--neu-space-2)}.neu-drp__trigger{all:unset;display:flex;align-items:center;gap:var(--neu-space-2);width:100%;min-height:48px;padding:0 var(--neu-space-3);border:1.5px solid var(--neu-border);border-radius:var(--neu-radius);background:var(--neu-surface);color:var(--neu-text);font-size:var(--neu-text-base);font-family:var(--neu-font-sans);cursor:pointer;box-sizing:border-box;transition:border-color var(--neu-transition),box-shadow var(--neu-transition)}.neu-drp__trigger:hover:not([disabled]){border-color:var(--neu-border-hover, var(--neu-border))}.neu-drp__trigger:focus-visible{outline:none;border-color:var(--neu-primary);box-shadow:var(--neu-focus-ring)}.neu-drp__trigger[disabled]{opacity:.6;cursor:not-allowed;background:var(--neu-surface-2)}.neu-drp--open .neu-drp__trigger{border-color:var(--neu-primary);box-shadow:var(--neu-focus-ring)}.neu-drp__icon{display:flex;align-items:center;color:var(--neu-text-muted);flex-shrink:0}.neu-drp__icon svg{width:18px;height:18px}.neu-drp__value{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.neu-drp__value--placeholder{color:var(--neu-text-disabled)}.neu-drp__panel{position:relative;background:var(--neu-surface);border:1.5px solid var(--neu-border);border-radius:var(--neu-radius-lg);box-shadow:var(--neu-shadow-lg);padding:var(--neu-space-4);z-index:1000;animation:neu-drp-in .1s ease;min-width:560px}@keyframes neu-drp-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.neu-drp__calendars{display:flex;gap:var(--neu-space-6)}.neu-drp__cal{flex:1}.neu-drp__cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--neu-space-3)}.neu-drp__cal-nav button{all:unset;padding:4px 8px;border-radius:var(--neu-radius);cursor:pointer;font-size:1.1rem;color:var(--neu-text-muted)}.neu-drp__cal-nav button:hover{background:var(--neu-surface-2)}.neu-drp__cal-title{font-size:var(--neu-text-sm);font-weight:600;text-transform:capitalize;color:var(--neu-text)}.neu-drp__cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.neu-drp__day-label{text-align:center;font-size:.7rem;font-weight:600;color:var(--neu-text-muted);padding:4px 0}.neu-drp__cell{all:unset;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;font-size:var(--neu-text-sm);cursor:pointer;transition:background var(--neu-transition);box-sizing:border-box;margin:1px auto}.neu-drp__cell:hover{background:var(--neu-surface-2)}.neu-drp__cell--other-month{opacity:.35}.neu-drp__cell--today{font-weight:700;border:1.5px solid var(--neu-primary)}.neu-drp__cell--selected,.neu-drp__cell--range-start,.neu-drp__cell--range-end{background:var(--neu-primary-solid, var(--neu-primary-dark, var(--neu-primary)));color:var(--neu-primary-solid-fg, var(--neu-primary-fg));border-radius:50%}.neu-drp__cell--in-range{background:var(--neu-primary-soft, rgba(14, 165, 233, .15));border-radius:0}.neu-drp__footer{display:flex;justify-content:flex-end;gap:var(--neu-space-2);padding-top:var(--neu-space-3);border-top:1px solid var(--neu-border);margin-top:var(--neu-space-3)}.neu-drp__clear{all:unset;padding:7px 14px;border-radius:var(--neu-radius);font-size:var(--neu-text-sm);color:var(--neu-text-muted);cursor:pointer;background:var(--neu-surface-2)}.neu-drp__clear:hover{background:var(--neu-surface-3, var(--neu-surface-2));color:var(--neu-text)}.neu-drp__apply{all:unset;padding:7px 18px;border-radius:var(--neu-radius);font-size:var(--neu-text-sm);font-weight:500;background:var(--neu-primary-solid, var(--neu-primary-dark, var(--neu-primary)));color:var(--neu-primary-solid-fg, var(--neu-primary-fg));cursor:pointer}.neu-drp__apply:hover:not([disabled]){filter:brightness(1.08)}.neu-drp__apply[disabled]{opacity:.4;cursor:not-allowed}.neu-drp__apply:focus-visible{outline:2px solid var(--neu-primary);outline-offset:2px}@media(max-width:600px){.neu-drp__panel{left:0;right:auto;min-width:0;width:min(100%,360px,100vw - 2rem);max-width:calc(100vw - 2rem);padding:var(--neu-space-2)}.neu-drp__calendars{flex-direction:column;gap:var(--neu-space-4)}.neu-drp__cal{width:100%;max-width:320px;margin-inline:auto}.neu-drp__footer{flex-wrap:wrap}}\n"], dependencies: [{ 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1084
1030
  }
1085
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: NeuDateInputComponent, decorators: [{
1031
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: NeuDateInputComponent, decorators: [{
1086
1032
  type: Component,
1087
1033
  args: [{ selector: 'neu-date-input', imports: [OverlayModule], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
1088
1034
  class: 'neu-date-input-host',