@frame-ui-ng/components 0.4.0-beta.0 → 0.4.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.
Files changed (161) hide show
  1. package/confirm-popover/src/styles/confirm-popover.css +20 -0
  2. package/drag-drop/src/styles/_vars.css +28 -0
  3. package/drag-drop/src/styles/drag-drop.css +132 -0
  4. package/fesm2022/frame-ui-ng-components-accordion.mjs +26 -21
  5. package/fesm2022/frame-ui-ng-components-accordion.mjs.map +1 -1
  6. package/fesm2022/frame-ui-ng-components-alert.mjs +4 -0
  7. package/fesm2022/frame-ui-ng-components-alert.mjs.map +1 -1
  8. package/fesm2022/frame-ui-ng-components-avatar.mjs +7 -0
  9. package/fesm2022/frame-ui-ng-components-avatar.mjs.map +1 -1
  10. package/fesm2022/frame-ui-ng-components-badge.mjs +4 -0
  11. package/fesm2022/frame-ui-ng-components-badge.mjs.map +1 -1
  12. package/fesm2022/frame-ui-ng-components-breadcrumb.mjs +13 -6
  13. package/fesm2022/frame-ui-ng-components-breadcrumb.mjs.map +1 -1
  14. package/fesm2022/frame-ui-ng-components-button-group.mjs +1 -0
  15. package/fesm2022/frame-ui-ng-components-button-group.mjs.map +1 -1
  16. package/fesm2022/frame-ui-ng-components-button.mjs +5 -0
  17. package/fesm2022/frame-ui-ng-components-button.mjs.map +1 -1
  18. package/fesm2022/frame-ui-ng-components-calendar.mjs +4 -0
  19. package/fesm2022/frame-ui-ng-components-calendar.mjs.map +1 -1
  20. package/fesm2022/frame-ui-ng-components-card.mjs +15 -15
  21. package/fesm2022/frame-ui-ng-components-card.mjs.map +1 -1
  22. package/fesm2022/frame-ui-ng-components-carousel.mjs +33 -16
  23. package/fesm2022/frame-ui-ng-components-carousel.mjs.map +1 -1
  24. package/fesm2022/frame-ui-ng-components-checkbox.mjs +7 -9
  25. package/fesm2022/frame-ui-ng-components-checkbox.mjs.map +1 -1
  26. package/fesm2022/frame-ui-ng-components-collapsible.mjs +24 -23
  27. package/fesm2022/frame-ui-ng-components-collapsible.mjs.map +1 -1
  28. package/fesm2022/frame-ui-ng-components-combobox.mjs +66 -18
  29. package/fesm2022/frame-ui-ng-components-combobox.mjs.map +1 -1
  30. package/fesm2022/frame-ui-ng-components-command.mjs +47 -16
  31. package/fesm2022/frame-ui-ng-components-command.mjs.map +1 -1
  32. package/fesm2022/frame-ui-ng-components-confirm-modal.mjs +3 -0
  33. package/fesm2022/frame-ui-ng-components-confirm-modal.mjs.map +1 -1
  34. package/fesm2022/frame-ui-ng-components-confirm-popover.mjs +423 -0
  35. package/fesm2022/frame-ui-ng-components-confirm-popover.mjs.map +1 -0
  36. package/fesm2022/frame-ui-ng-components-context-menu.mjs +71 -45
  37. package/fesm2022/frame-ui-ng-components-context-menu.mjs.map +1 -1
  38. package/fesm2022/frame-ui-ng-components-date-picker.mjs +3 -0
  39. package/fesm2022/frame-ui-ng-components-date-picker.mjs.map +1 -1
  40. package/fesm2022/frame-ui-ng-components-drag-drop.mjs +293 -0
  41. package/fesm2022/frame-ui-ng-components-drag-drop.mjs.map +1 -0
  42. package/fesm2022/frame-ui-ng-components-dropdown-menu.mjs +73 -36
  43. package/fesm2022/frame-ui-ng-components-dropdown-menu.mjs.map +1 -1
  44. package/fesm2022/frame-ui-ng-components-empty.mjs +6 -0
  45. package/fesm2022/frame-ui-ng-components-empty.mjs.map +1 -1
  46. package/fesm2022/frame-ui-ng-components-field.mjs +21 -12
  47. package/fesm2022/frame-ui-ng-components-field.mjs.map +1 -1
  48. package/fesm2022/frame-ui-ng-components-forms.mjs +1 -0
  49. package/fesm2022/frame-ui-ng-components-forms.mjs.map +1 -1
  50. package/fesm2022/frame-ui-ng-components-hover-card.mjs +49 -43
  51. package/fesm2022/frame-ui-ng-components-hover-card.mjs.map +1 -1
  52. package/fesm2022/frame-ui-ng-components-input-otp.mjs +5 -0
  53. package/fesm2022/frame-ui-ng-components-input-otp.mjs.map +1 -1
  54. package/fesm2022/frame-ui-ng-components-input.mjs +13 -0
  55. package/fesm2022/frame-ui-ng-components-input.mjs.map +1 -1
  56. package/fesm2022/frame-ui-ng-components-item.mjs +10 -0
  57. package/fesm2022/frame-ui-ng-components-item.mjs.map +1 -1
  58. package/fesm2022/frame-ui-ng-components-menubar.mjs +15 -0
  59. package/fesm2022/frame-ui-ng-components-menubar.mjs.map +1 -1
  60. package/fesm2022/frame-ui-ng-components-modal.mjs +128 -114
  61. package/fesm2022/frame-ui-ng-components-modal.mjs.map +1 -1
  62. package/fesm2022/frame-ui-ng-components-navigation-menu.mjs +14 -0
  63. package/fesm2022/frame-ui-ng-components-navigation-menu.mjs.map +1 -1
  64. package/fesm2022/frame-ui-ng-components-pagination.mjs +8 -0
  65. package/fesm2022/frame-ui-ng-components-pagination.mjs.map +1 -1
  66. package/fesm2022/frame-ui-ng-components-popover.mjs +63 -51
  67. package/fesm2022/frame-ui-ng-components-popover.mjs.map +1 -1
  68. package/fesm2022/frame-ui-ng-components-progress.mjs +2 -0
  69. package/fesm2022/frame-ui-ng-components-progress.mjs.map +1 -1
  70. package/fesm2022/frame-ui-ng-components-radio-group.mjs +5 -0
  71. package/fesm2022/frame-ui-ng-components-radio-group.mjs.map +1 -1
  72. package/fesm2022/frame-ui-ng-components-resizable.mjs +6 -0
  73. package/fesm2022/frame-ui-ng-components-resizable.mjs.map +1 -1
  74. package/fesm2022/frame-ui-ng-components-select.mjs +62 -14
  75. package/fesm2022/frame-ui-ng-components-select.mjs.map +1 -1
  76. package/fesm2022/frame-ui-ng-components-separator.mjs +1 -0
  77. package/fesm2022/frame-ui-ng-components-separator.mjs.map +1 -1
  78. package/fesm2022/frame-ui-ng-components-sheet.mjs +99 -88
  79. package/fesm2022/frame-ui-ng-components-sheet.mjs.map +1 -1
  80. package/fesm2022/frame-ui-ng-components-sidebar.mjs +27 -12
  81. package/fesm2022/frame-ui-ng-components-sidebar.mjs.map +1 -1
  82. package/fesm2022/frame-ui-ng-components-skeleton.mjs +1 -0
  83. package/fesm2022/frame-ui-ng-components-skeleton.mjs.map +1 -1
  84. package/fesm2022/frame-ui-ng-components-slider.mjs +29 -16
  85. package/fesm2022/frame-ui-ng-components-slider.mjs.map +1 -1
  86. package/fesm2022/frame-ui-ng-components-spinner.mjs +1 -0
  87. package/fesm2022/frame-ui-ng-components-spinner.mjs.map +1 -1
  88. package/fesm2022/frame-ui-ng-components-switch.mjs +6 -0
  89. package/fesm2022/frame-ui-ng-components-switch.mjs.map +1 -1
  90. package/fesm2022/frame-ui-ng-components-table.mjs +76 -50
  91. package/fesm2022/frame-ui-ng-components-table.mjs.map +1 -1
  92. package/fesm2022/frame-ui-ng-components-tabs.mjs +4 -0
  93. package/fesm2022/frame-ui-ng-components-tabs.mjs.map +1 -1
  94. package/fesm2022/frame-ui-ng-components-textarea.mjs +1 -0
  95. package/fesm2022/frame-ui-ng-components-textarea.mjs.map +1 -1
  96. package/fesm2022/frame-ui-ng-components-toast.mjs +2 -0
  97. package/fesm2022/frame-ui-ng-components-toast.mjs.map +1 -1
  98. package/fesm2022/frame-ui-ng-components-toggle.mjs +23 -16
  99. package/fesm2022/frame-ui-ng-components-toggle.mjs.map +1 -1
  100. package/fesm2022/frame-ui-ng-components-tooltip.mjs +30 -25
  101. package/fesm2022/frame-ui-ng-components-tooltip.mjs.map +1 -1
  102. package/fesm2022/frame-ui-ng-components-virtual-scroll.mjs +26 -8
  103. package/fesm2022/frame-ui-ng-components-virtual-scroll.mjs.map +1 -1
  104. package/fesm2022/frame-ui-ng-components.mjs +1387 -552
  105. package/fesm2022/frame-ui-ng-components.mjs.map +1 -1
  106. package/package.json +10 -2
  107. package/popover/src/styles/popover.css +106 -101
  108. package/src/styles/components.css +6 -4
  109. package/styles/components.css +6 -4
  110. package/styles.css +6 -4
  111. package/types/frame-ui-ng-components-accordion.d.ts +11 -4
  112. package/types/frame-ui-ng-components-alert.d.ts +4 -0
  113. package/types/frame-ui-ng-components-avatar.d.ts +7 -0
  114. package/types/frame-ui-ng-components-badge.d.ts +4 -0
  115. package/types/frame-ui-ng-components-breadcrumb.d.ts +7 -0
  116. package/types/frame-ui-ng-components-button-group.d.ts +1 -0
  117. package/types/frame-ui-ng-components-button.d.ts +5 -0
  118. package/types/frame-ui-ng-components-calendar.d.ts +1 -0
  119. package/types/frame-ui-ng-components-card.d.ts +8 -3
  120. package/types/frame-ui-ng-components-carousel.d.ts +11 -2
  121. package/types/frame-ui-ng-components-checkbox.d.ts +3 -2
  122. package/types/frame-ui-ng-components-collapsible.d.ts +9 -4
  123. package/types/frame-ui-ng-components-combobox.d.ts +32 -3
  124. package/types/frame-ui-ng-components-command.d.ts +26 -4
  125. package/types/frame-ui-ng-components-confirm-modal.d.ts +2 -0
  126. package/types/frame-ui-ng-components-confirm-popover.d.ts +87 -0
  127. package/types/frame-ui-ng-components-context-menu.d.ts +29 -10
  128. package/types/frame-ui-ng-components-date-picker.d.ts +1 -0
  129. package/types/frame-ui-ng-components-drag-drop.d.ts +103 -0
  130. package/types/frame-ui-ng-components-dropdown-menu.d.ts +32 -9
  131. package/types/frame-ui-ng-components-empty.d.ts +6 -0
  132. package/types/frame-ui-ng-components-field.d.ts +9 -0
  133. package/types/frame-ui-ng-components-forms.d.ts +1 -0
  134. package/types/frame-ui-ng-components-hover-card.d.ts +8 -2
  135. package/types/frame-ui-ng-components-input-otp.d.ts +4 -0
  136. package/types/frame-ui-ng-components-input.d.ts +13 -0
  137. package/types/frame-ui-ng-components-item.d.ts +10 -0
  138. package/types/frame-ui-ng-components-menubar.d.ts +15 -0
  139. package/types/frame-ui-ng-components-modal.d.ts +12 -0
  140. package/types/frame-ui-ng-components-navigation-menu.d.ts +14 -0
  141. package/types/frame-ui-ng-components-pagination.d.ts +8 -0
  142. package/types/frame-ui-ng-components-popover.d.ts +14 -2
  143. package/types/frame-ui-ng-components-progress.d.ts +2 -0
  144. package/types/frame-ui-ng-components-radio-group.d.ts +5 -0
  145. package/types/frame-ui-ng-components-resizable.d.ts +3 -0
  146. package/types/frame-ui-ng-components-select.d.ts +23 -2
  147. package/types/frame-ui-ng-components-separator.d.ts +1 -0
  148. package/types/frame-ui-ng-components-sheet.d.ts +11 -0
  149. package/types/frame-ui-ng-components-sidebar.d.ts +21 -0
  150. package/types/frame-ui-ng-components-skeleton.d.ts +1 -0
  151. package/types/frame-ui-ng-components-slider.d.ts +5 -2
  152. package/types/frame-ui-ng-components-spinner.d.ts +1 -0
  153. package/types/frame-ui-ng-components-switch.d.ts +6 -0
  154. package/types/frame-ui-ng-components-table.d.ts +26 -0
  155. package/types/frame-ui-ng-components-tabs.d.ts +4 -0
  156. package/types/frame-ui-ng-components-textarea.d.ts +1 -0
  157. package/types/frame-ui-ng-components-toast.d.ts +2 -0
  158. package/types/frame-ui-ng-components-toggle.d.ts +8 -2
  159. package/types/frame-ui-ng-components-tooltip.d.ts +6 -2
  160. package/types/frame-ui-ng-components-virtual-scroll.d.ts +11 -2
  161. package/types/frame-ui-ng-components.d.ts +492 -76
@@ -1 +1 @@
1
- {"version":3,"file":"frame-ui-ng-components-date-picker.mjs","sources":["../../../projects/components/date-picker/src/date-picker.ts","../../../projects/components/date-picker/date-picker.module.ts","../../../projects/components/date-picker/frame-ui-ng-components-date-picker.ts"],"sourcesContent":["import {\r\n CdkConnectedOverlay,\r\n CdkOverlayOrigin,\r\n ConnectedOverlayPositionChange,\r\n ConnectedPosition,\r\n} from '@angular/cdk/overlay';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n TemplateRef,\r\n booleanAttribute,\r\n computed,\r\n input,\r\n output,\r\n signal,\r\n viewChild,\r\n} from '@angular/core';\r\n\r\nimport {\r\n FrCalendar,\r\n FrCalendarCaptionLayout,\r\n FrCalendarCellContext,\r\n FrCalendarDateRange,\r\n FrCalendarDisabledMatcher,\r\n FrCalendarMode,\r\n} from '@frame-ui-ng/components/calendar';\r\nimport { FrControlValueAccessor, provideDsValueAccessor } from '@frame-ui-ng/components/forms';\r\n\r\nexport type FrDatePickerValue = Date | FrCalendarDateRange | null;\r\n\r\nexport type FrDatePickerPreset = {\r\n label: string;\r\n value: FrDatePickerValue | (() => FrDatePickerValue);\r\n};\r\n\r\nexport type FrDatePickerFormatter = (value: FrDatePickerValue, locale: string) => string;\r\nexport type FrDatePickerParser = (value: string, locale: string) => FrDatePickerValue | undefined;\r\n\r\nconst POSITIONS: ConnectedPosition[] = [\r\n {\r\n originX: 'start',\r\n originY: 'bottom',\r\n overlayX: 'start',\r\n overlayY: 'top',\r\n offsetY: 8,\r\n },\r\n {\r\n originX: 'start',\r\n originY: 'top',\r\n overlayX: 'start',\r\n overlayY: 'bottom',\r\n offsetY: -8,\r\n },\r\n];\r\n\r\n@Component({\r\n selector: 'frame-date-picker',\r\n exportAs: 'frDatePicker',\r\n imports: [CdkConnectedOverlay, CdkOverlayOrigin, FrCalendar, NgTemplateOutlet],\r\n providers: [provideDsValueAccessor(FrDatePicker)],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'frame-date-picker',\r\n '[attr.data-open]': 'isOpen() ? \"\" : null',\r\n '[attr.data-disabled]': 'disabled() ? \"\" : null',\r\n '[attr.data-invalid]': 'invalid() ? \"\" : null',\r\n '[attr.data-mode]': 'mode()',\r\n '[attr.dir]': 'dir()',\r\n },\r\n template: `\r\n <span cdkOverlayOrigin #origin=\"cdkOverlayOrigin\" class=\"frame-date-picker__anchor\">\r\n @if (editable()) {\r\n <span class=\"frame-date-picker__input-wrap\">\r\n <span class=\"frame-date-picker__icon\" aria-hidden=\"true\">{{ icon() }}</span>\r\n <input\r\n class=\"frame-date-picker__input\"\r\n type=\"text\"\r\n [disabled]=\"disabled()\"\r\n [readOnly]=\"readonlyInput()\"\r\n [placeholder]=\"placeholder()\"\r\n [value]=\"inputValue()\"\r\n [attr.aria-expanded]=\"isOpen()\"\r\n [attr.aria-invalid]=\"invalid() ? 'true' : null\"\r\n aria-haspopup=\"dialog\"\r\n (focus)=\"open()\"\r\n (click)=\"open()\"\r\n (input)=\"handleInput($any($event.target).value)\"\r\n (change)=\"commitInput($any($event.target).value)\"\r\n (keydown)=\"handleTriggerKeydown($event)\"\r\n (blur)=\"markAsTouched()\"\r\n />\r\n </span>\r\n } @else {\r\n <button\r\n class=\"frame-date-picker__trigger\"\r\n type=\"button\"\r\n [disabled]=\"disabled()\"\r\n [attr.aria-expanded]=\"isOpen()\"\r\n [attr.aria-invalid]=\"invalid() ? 'true' : null\"\r\n aria-haspopup=\"dialog\"\r\n (click)=\"toggle()\"\r\n (keydown)=\"handleTriggerKeydown($event)\"\r\n >\r\n <span class=\"frame-date-picker__icon\" aria-hidden=\"true\">{{ icon() }}</span>\r\n <span class=\"frame-date-picker__trigger-label\" [attr.data-placeholder]=\"hasValue() ? null : ''\">\r\n {{ displayValue() || placeholder() }}\r\n </span>\r\n </button>\r\n }\r\n </span>\r\n\r\n <ng-template\r\n cdkConnectedOverlay\r\n [cdkConnectedOverlayOrigin]=\"origin\"\r\n [cdkConnectedOverlayOpen]=\"isOpen()\"\r\n [cdkConnectedOverlayPositions]=\"positions\"\r\n [cdkConnectedOverlayPanelClass]=\"overlayPanelClasses()\"\r\n [cdkConnectedOverlayPush]=\"true\"\r\n [cdkConnectedOverlayViewportMargin]=\"12\"\r\n (overlayOutsideClick)=\"close()\"\r\n (attach)=\"focusCalendar()\"\r\n (detach)=\"close()\"\r\n (positionChange)=\"handlePositionChange($event)\"\r\n >\r\n <div class=\"frame-date-picker__content\" role=\"dialog\" [attr.aria-label]=\"dialogLabel()\">\r\n @if (presets().length) {\r\n <div class=\"frame-date-picker__presets\" aria-label=\"Date presets\">\r\n @for (preset of presets(); track preset.label) {\r\n <button class=\"frame-date-picker__preset\" type=\"button\" (click)=\"selectPreset(preset)\">\r\n {{ preset.label }}\r\n </button>\r\n }\r\n </div>\r\n }\r\n\r\n <ng-container [ngTemplateOutlet]=\"headerTemplate() ?? null\" />\r\n\r\n <frame-calendar\r\n [mode]=\"mode()\"\r\n [captionLayout]=\"captionLayout()\"\r\n [numberOfMonths]=\"numberOfMonths()\"\r\n [firstDayOfWeek]=\"firstDayOfWeek()\"\r\n [locale]=\"locale()\"\r\n [timeZone]=\"timeZone()\"\r\n [dir]=\"dir()\"\r\n [fromYear]=\"fromYear()\"\r\n [toYear]=\"toYear()\"\r\n [showOutsideDays]=\"showOutsideDays()\"\r\n [showWeekNumber]=\"showWeekNumber()\"\r\n [disabled]=\"disabled()\"\r\n [disabledDates]=\"disabledDates()\"\r\n [dateLabels]=\"dateLabels()\"\r\n [disabledMatcher]=\"disabledMatcher()\"\r\n [cellTemplate]=\"cellTemplate()\"\r\n [previousMonthTemplate]=\"previousMonthTemplate()\"\r\n [nextMonthTemplate]=\"nextMonthTemplate()\"\r\n [previousMonthIcon]=\"previousMonthIcon()\"\r\n [nextMonthIcon]=\"nextMonthIcon()\"\r\n [previousMonthLabel]=\"previousMonthLabel()\"\r\n [nextMonthLabel]=\"nextMonthLabel()\"\r\n [month]=\"month()\"\r\n [selected]=\"calendarValue()\"\r\n (selectedChange)=\"selectCalendarValue($any($event))\"\r\n (monthChange)=\"monthChange.emit($event)\"\r\n />\r\n\r\n @if (showTime() && mode() === 'single') {\r\n <label class=\"frame-date-picker__time\">\r\n <span class=\"frame-date-picker__time-label\">{{ timeLabel() }}</span>\r\n <input\r\n class=\"frame-date-picker__time-input\"\r\n type=\"time\"\r\n [disabled]=\"disabled() || !singleDate()\"\r\n [value]=\"timeValue()\"\r\n (change)=\"setTime($any($event.target).value)\"\r\n />\r\n </label>\r\n }\r\n\r\n <ng-container [ngTemplateOutlet]=\"footerTemplate() ?? null\" />\r\n </div>\r\n </ng-template>\r\n `,\r\n})\r\nexport class FrDatePicker extends FrControlValueAccessor<FrDatePickerValue> {\r\n readonly mode = input<FrCalendarMode>('single');\r\n readonly captionLayout = input<FrCalendarCaptionLayout>('label');\r\n readonly numberOfMonths = input(1);\r\n readonly firstDayOfWeek = input(0);\r\n readonly locale = input('en-US');\r\n readonly timeZone = input<string | undefined>(undefined);\r\n readonly dir = input<'ltr' | 'rtl'>('ltr');\r\n readonly fromYear = input(new Date().getFullYear() - 100);\r\n readonly toYear = input(new Date().getFullYear() + 20);\r\n readonly showOutsideDays = input(true, { transform: booleanAttribute });\r\n readonly showWeekNumber = input(false, { transform: booleanAttribute });\r\n readonly disabledInput = input(false, { alias: 'disabled', transform: booleanAttribute });\r\n readonly invalidInput = input(false, { alias: 'invalid', transform: booleanAttribute });\r\n readonly editable = input(false, { transform: booleanAttribute });\r\n readonly readonlyInput = input(false, { transform: booleanAttribute });\r\n readonly closeOnSelect = input(true, { transform: booleanAttribute });\r\n readonly debugVisible = input(false, { transform: booleanAttribute });\r\n readonly showTime = input(false, { transform: booleanAttribute });\r\n readonly placeholder = input('Pick a date');\r\n readonly dialogLabel = input('Choose date');\r\n readonly icon = input('◷');\r\n readonly disabledDates = input<Date[]>([]);\r\n readonly dateLabels = input<Record<string, string>>({});\r\n readonly disabledMatcher = input<FrCalendarDisabledMatcher | null>(null);\r\n readonly cellTemplate = input<TemplateRef<FrCalendarCellContext> | null>(null);\r\n readonly previousMonthTemplate = input<TemplateRef<unknown> | null>(null);\r\n readonly nextMonthTemplate = input<TemplateRef<unknown> | null>(null);\r\n readonly previousMonthIcon = input('‹');\r\n readonly nextMonthIcon = input('›');\r\n readonly previousMonthLabel = input('Previous month');\r\n readonly nextMonthLabel = input('Next month');\r\n readonly headerTemplate = input<TemplateRef<unknown> | null>(null);\r\n readonly footerTemplate = input<TemplateRef<unknown> | null>(null);\r\n readonly month = input<Date | null | undefined>(undefined);\r\n readonly presets = input<FrDatePickerPreset[]>([]);\r\n readonly formatter = input<FrDatePickerFormatter>(defaultFormatter);\r\n readonly parser = input<FrDatePickerParser>(defaultParser);\r\n readonly timeLabel = input('Time');\r\n\r\n readonly valueChange = output<FrDatePickerValue>();\r\n readonly openChange = output<boolean>();\r\n readonly monthChange = output<Date>();\r\n\r\n readonly calendar = viewChild(FrCalendar);\r\n readonly positions = POSITIONS;\r\n readonly isOpen = signal(false);\r\n readonly overlaySide = signal<'bottom' | 'top'>('bottom');\r\n readonly value = signal<FrDatePickerValue>(null);\r\n readonly inputDraft = signal<string | null>(null);\r\n\r\n readonly disabled = computed(() => this.disabledInput() || this.formDisabled());\r\n readonly invalid = computed(() => this.invalidInput() || this.formInvalid());\r\n readonly hasValue = computed(() => hasValue(this.value(), this.mode()));\r\n readonly displayValue = computed(() => this.formatter()(this.value(), this.locale()));\r\n readonly inputValue = computed(() => this.inputDraft() ?? this.displayValue());\r\n readonly calendarValue = computed(() => normalizeValue(this.value(), this.mode()));\r\n readonly singleDate = computed(() => {\r\n const value = this.value();\r\n return value instanceof Date ? value : null;\r\n });\r\n readonly timeValue = computed(() => {\r\n const date = this.singleDate();\r\n return date ? `${date.getHours().toString().padStart(2, '0')}:${date.getMinutes().toString().padStart(2, '0')}` : '';\r\n });\r\n\r\n constructor() {\r\n super();\r\n queueMicrotask(() => {\r\n if (this.debugVisible()) {\r\n this.open();\r\n }\r\n });\r\n }\r\n\r\n toggle(): void {\r\n this.isOpen() ? this.close() : this.open();\r\n }\r\n\r\n open(): void {\r\n if (this.disabled()) {\r\n return;\r\n }\r\n\r\n this.isOpen.set(true);\r\n this.openChange.emit(true);\r\n }\r\n\r\n close(): void {\r\n if (this.debugVisible()) {\r\n return;\r\n }\r\n\r\n this.isOpen.set(false);\r\n this.openChange.emit(false);\r\n this.inputDraft.set(null);\r\n this.markAsTouched();\r\n }\r\n\r\n clear(): void {\r\n this.commitValue(this.mode() === 'range' ? { from: null, to: null } : null);\r\n }\r\n\r\n selectPreset(preset: FrDatePickerPreset): void {\r\n const next = typeof preset.value === 'function' ? preset.value() : preset.value;\r\n this.commitValue(normalizeValue(next, this.mode()));\r\n\r\n if (this.closeOnSelect() && isCompleteValue(this.value(), this.mode())) {\r\n this.close();\r\n }\r\n }\r\n\r\n selectCalendarValue(value: FrDatePickerValue): void {\r\n const previous = this.singleDate();\r\n const next = this.showTime() && value instanceof Date && previous ? mergeTime(value, previous) : value;\r\n\r\n this.commitValue(normalizeValue(next, this.mode()));\r\n\r\n if (this.closeOnSelect() && isCompleteValue(this.value(), this.mode())) {\r\n this.close();\r\n }\r\n }\r\n\r\n setTime(value: string): void {\r\n const date = this.singleDate();\r\n\r\n if (!date || !value) {\r\n return;\r\n }\r\n\r\n const [hours, minutes] = value.split(':').map(Number);\r\n const next = new Date(date);\r\n next.setHours(hours || 0, minutes || 0, 0, 0);\r\n this.commitValue(next);\r\n }\r\n\r\n handleInput(value: string): void {\r\n this.inputDraft.set(value);\r\n\r\n if (!value.trim()) {\r\n this.commitValue(this.mode() === 'range' ? { from: null, to: null } : null);\r\n }\r\n }\r\n\r\n commitInput(value: string): void {\r\n const parsed = this.parser()(value, this.locale());\r\n\r\n if (parsed !== undefined) {\r\n this.commitValue(normalizeValue(parsed, this.mode()));\r\n }\r\n\r\n this.inputDraft.set(null);\r\n }\r\n\r\n handleTriggerKeydown(event: KeyboardEvent): void {\r\n if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\r\n event.preventDefault();\r\n this.open();\r\n }\r\n\r\n if (event.key === 'Escape') {\r\n event.preventDefault();\r\n this.close();\r\n }\r\n }\r\n\r\n handlePositionChange(event: ConnectedOverlayPositionChange): void {\r\n this.overlaySide.set(event.connectionPair.overlayY === 'bottom' ? 'top' : 'bottom');\r\n }\r\n\r\n focusCalendar(): void {\r\n this.calendar()?.focusActiveDate();\r\n }\r\n\r\n overlayPanelClasses(): string[] {\r\n return ['frame-date-picker-overlay', `frame-date-picker-overlay--${this.overlaySide()}`];\r\n }\r\n\r\n protected setViewValue(value: FrDatePickerValue): void {\r\n this.value.set(normalizeValue(value, this.mode()));\r\n this.inputDraft.set(null);\r\n }\r\n\r\n private commitValue(value: FrDatePickerValue): void {\r\n this.value.set(value);\r\n this.inputDraft.set(null);\r\n this.notifyValueChange(value);\r\n this.valueChange.emit(value);\r\n this.markAsTouched();\r\n }\r\n}\r\n\r\nfunction normalizeValue(value: FrDatePickerValue | undefined, mode: FrCalendarMode): FrDatePickerValue {\r\n if (!value) {\r\n return mode === 'range' ? { from: null, to: null } : null;\r\n }\r\n\r\n if (mode === 'range') {\r\n if (isRange(value)) {\r\n return {\r\n from: value.from ? cloneDateWithTime(value.from) : null,\r\n to: value.to ? cloneDateWithTime(value.to) : null,\r\n };\r\n }\r\n\r\n return { from: cloneDateWithTime(value), to: null };\r\n }\r\n\r\n return value instanceof Date ? cloneDateWithTime(value) : value.from ? cloneDateWithTime(value.from) : null;\r\n}\r\n\r\nfunction defaultFormatter(value: FrDatePickerValue, locale: string): string {\r\n if (!value) {\r\n return '';\r\n }\r\n\r\n const formatter = new Intl.DateTimeFormat(locale, { dateStyle: 'medium' });\r\n\r\n if (value instanceof Date) {\r\n return formatter.format(value);\r\n }\r\n\r\n if (value.from && value.to) {\r\n return `${formatter.format(value.from)} - ${formatter.format(value.to)}`;\r\n }\r\n\r\n return value.from ? formatter.format(value.from) : '';\r\n}\r\n\r\nfunction defaultParser(value: string): FrDatePickerValue | undefined {\r\n const trimmed = value.trim();\r\n\r\n if (!trimmed) {\r\n return null;\r\n }\r\n\r\n const isoDate = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(trimmed);\r\n\r\n if (isoDate) {\r\n return new Date(Number(isoDate[1]), Number(isoDate[2]) - 1, Number(isoDate[3]));\r\n }\r\n\r\n const parsed = new Date(trimmed);\r\n return Number.isNaN(parsed.getTime()) ? undefined : parsed;\r\n}\r\n\r\nfunction isRange(value: unknown): value is FrCalendarDateRange {\r\n return !!value && typeof value === 'object' && ('from' in value || 'to' in value);\r\n}\r\n\r\nfunction hasValue(value: FrDatePickerValue, mode: FrCalendarMode): boolean {\r\n if (mode === 'range' && isRange(value)) {\r\n return !!value.from || !!value.to;\r\n }\r\n\r\n return value instanceof Date;\r\n}\r\n\r\nfunction isCompleteValue(value: FrDatePickerValue, mode: FrCalendarMode): boolean {\r\n if (mode === 'range' && isRange(value)) {\r\n return !!value.from && !!value.to;\r\n }\r\n\r\n return value instanceof Date;\r\n}\r\n\r\nfunction cloneDateWithTime(date: Date): Date {\r\n return new Date(date.getTime());\r\n}\r\n\r\nfunction mergeTime(date: Date, timeSource: Date): Date {\r\n const next = new Date(date);\r\n next.setHours(timeSource.getHours(), timeSource.getMinutes(), timeSource.getSeconds(), timeSource.getMilliseconds());\r\n return next;\r\n}\r\n\r\n","import { NgModule } from '@angular/core';\nimport {\n FrDatePicker,\n} from './src/date-picker';\n\n@NgModule({\n imports: [\n FrDatePicker,\n ],\n exports: [\n FrDatePicker,\n ],\n})\nexport class FrDatePickerModule {}\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":"frame-ui-ng-components-date-picker.mjs","sources":["../../../projects/components/date-picker/src/date-picker.ts","../../../projects/components/date-picker/date-picker.module.ts","../../../projects/components/date-picker/frame-ui-ng-components-date-picker.ts"],"sourcesContent":["import {\r\n CdkConnectedOverlay,\r\n CdkOverlayOrigin,\r\n ConnectedOverlayPositionChange,\r\n ConnectedPosition,\r\n} from '@angular/cdk/overlay';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n TemplateRef,\r\n booleanAttribute,\r\n computed,\r\n input,\r\n output,\r\n signal,\r\n viewChild,\r\n} from '@angular/core';\r\n\r\nimport {\r\n FrCalendar,\r\n FrCalendarCaptionLayout,\r\n FrCalendarCellContext,\r\n FrCalendarDateRange,\r\n FrCalendarDisabledMatcher,\r\n FrCalendarMode,\r\n} from '@frame-ui-ng/components/calendar';\r\nimport { FrControlValueAccessor, provideDsValueAccessor } from '@frame-ui-ng/components/forms';\r\n\r\nexport type FrDatePickerValue = Date | FrCalendarDateRange | null;\r\n\r\nexport type FrDatePickerPreset = {\r\n label: string;\r\n value: FrDatePickerValue | (() => FrDatePickerValue);\r\n};\r\n\r\nexport type FrDatePickerFormatter = (value: FrDatePickerValue, locale: string) => string;\r\nexport type FrDatePickerParser = (value: string, locale: string) => FrDatePickerValue | undefined;\r\n\r\nconst POSITIONS: ConnectedPosition[] = [\r\n {\r\n originX: 'start',\r\n originY: 'bottom',\r\n overlayX: 'start',\r\n overlayY: 'top',\r\n offsetY: 8,\r\n },\r\n {\r\n originX: 'start',\r\n originY: 'top',\r\n overlayX: 'start',\r\n overlayY: 'bottom',\r\n offsetY: -8,\r\n },\r\n];\r\n\r\n/** Date picker control backed by the calendar primitive. */\r\n@Component({\r\n selector: 'frame-date-picker',\r\n exportAs: 'frDatePicker',\r\n imports: [CdkConnectedOverlay, CdkOverlayOrigin, FrCalendar, NgTemplateOutlet],\r\n providers: [provideDsValueAccessor(FrDatePicker)],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'frame-date-picker',\r\n '[attr.data-open]': 'isOpen() ? \"\" : null',\r\n '[attr.data-disabled]': 'disabled() ? \"\" : null',\r\n '[attr.data-invalid]': 'invalid() ? \"\" : null',\r\n '[attr.data-mode]': 'mode()',\r\n '[attr.dir]': 'dir()',\r\n },\r\n template: `\r\n <span cdkOverlayOrigin #origin=\"cdkOverlayOrigin\" class=\"frame-date-picker__anchor\">\r\n @if (editable()) {\r\n <span class=\"frame-date-picker__input-wrap\">\r\n <span class=\"frame-date-picker__icon\" aria-hidden=\"true\">{{ icon() }}</span>\r\n <input\r\n class=\"frame-date-picker__input\"\r\n type=\"text\"\r\n [disabled]=\"disabled()\"\r\n [readOnly]=\"readonlyInput()\"\r\n [placeholder]=\"placeholder()\"\r\n [value]=\"inputValue()\"\r\n [attr.aria-expanded]=\"isOpen()\"\r\n [attr.aria-invalid]=\"invalid() ? 'true' : null\"\r\n aria-haspopup=\"dialog\"\r\n (focus)=\"open()\"\r\n (click)=\"open()\"\r\n (input)=\"handleInput($any($event.target).value)\"\r\n (change)=\"commitInput($any($event.target).value)\"\r\n (keydown)=\"handleTriggerKeydown($event)\"\r\n (blur)=\"markAsTouched()\"\r\n />\r\n </span>\r\n } @else {\r\n <button\r\n class=\"frame-date-picker__trigger\"\r\n type=\"button\"\r\n [disabled]=\"disabled()\"\r\n [attr.aria-expanded]=\"isOpen()\"\r\n [attr.aria-invalid]=\"invalid() ? 'true' : null\"\r\n aria-haspopup=\"dialog\"\r\n (click)=\"toggle()\"\r\n (keydown)=\"handleTriggerKeydown($event)\"\r\n >\r\n <span class=\"frame-date-picker__icon\" aria-hidden=\"true\">{{ icon() }}</span>\r\n <span class=\"frame-date-picker__trigger-label\" [attr.data-placeholder]=\"hasValue() ? null : ''\">\r\n {{ displayValue() || placeholder() }}\r\n </span>\r\n </button>\r\n }\r\n </span>\r\n\r\n <ng-template\r\n cdkConnectedOverlay\r\n [cdkConnectedOverlayOrigin]=\"origin\"\r\n [cdkConnectedOverlayOpen]=\"isOpen()\"\r\n [cdkConnectedOverlayPositions]=\"positions\"\r\n [cdkConnectedOverlayPanelClass]=\"overlayPanelClasses()\"\r\n [cdkConnectedOverlayPush]=\"true\"\r\n [cdkConnectedOverlayViewportMargin]=\"12\"\r\n (overlayOutsideClick)=\"close()\"\r\n (attach)=\"focusCalendar()\"\r\n (detach)=\"close()\"\r\n (positionChange)=\"handlePositionChange($event)\"\r\n >\r\n <div class=\"frame-date-picker__content\" role=\"dialog\" [attr.aria-label]=\"dialogLabel()\">\r\n @if (presets().length) {\r\n <div class=\"frame-date-picker__presets\" aria-label=\"Date presets\">\r\n @for (preset of presets(); track preset.label) {\r\n <button class=\"frame-date-picker__preset\" type=\"button\" (click)=\"selectPreset(preset)\">\r\n {{ preset.label }}\r\n </button>\r\n }\r\n </div>\r\n }\r\n\r\n <ng-container [ngTemplateOutlet]=\"headerTemplate() ?? null\" />\r\n\r\n <frame-calendar\r\n [mode]=\"mode()\"\r\n [captionLayout]=\"captionLayout()\"\r\n [numberOfMonths]=\"numberOfMonths()\"\r\n [firstDayOfWeek]=\"firstDayOfWeek()\"\r\n [locale]=\"locale()\"\r\n [timeZone]=\"timeZone()\"\r\n [dir]=\"dir()\"\r\n [fromYear]=\"fromYear()\"\r\n [toYear]=\"toYear()\"\r\n [showOutsideDays]=\"showOutsideDays()\"\r\n [showWeekNumber]=\"showWeekNumber()\"\r\n [disabled]=\"disabled()\"\r\n [disabledDates]=\"disabledDates()\"\r\n [dateLabels]=\"dateLabels()\"\r\n [disabledMatcher]=\"disabledMatcher()\"\r\n [cellTemplate]=\"cellTemplate()\"\r\n [previousMonthTemplate]=\"previousMonthTemplate()\"\r\n [nextMonthTemplate]=\"nextMonthTemplate()\"\r\n [previousMonthIcon]=\"previousMonthIcon()\"\r\n [nextMonthIcon]=\"nextMonthIcon()\"\r\n [previousMonthLabel]=\"previousMonthLabel()\"\r\n [nextMonthLabel]=\"nextMonthLabel()\"\r\n [month]=\"month()\"\r\n [selected]=\"calendarValue()\"\r\n (selectedChange)=\"selectCalendarValue($any($event))\"\r\n (monthChange)=\"monthChange.emit($event)\"\r\n />\r\n\r\n @if (showTime() && mode() === 'single') {\r\n <label class=\"frame-date-picker__time\">\r\n <span class=\"frame-date-picker__time-label\">{{ timeLabel() }}</span>\r\n <input\r\n class=\"frame-date-picker__time-input\"\r\n type=\"time\"\r\n [disabled]=\"disabled() || !singleDate()\"\r\n [value]=\"timeValue()\"\r\n (change)=\"setTime($any($event.target).value)\"\r\n />\r\n </label>\r\n }\r\n\r\n <ng-container [ngTemplateOutlet]=\"footerTemplate() ?? null\" />\r\n </div>\r\n </ng-template>\r\n `,\r\n})\r\nexport class FrDatePicker extends FrControlValueAccessor<FrDatePickerValue> {\r\n readonly mode = input<FrCalendarMode>('single');\r\n readonly captionLayout = input<FrCalendarCaptionLayout>('label');\r\n readonly numberOfMonths = input(1);\r\n readonly firstDayOfWeek = input(0);\r\n readonly locale = input('en-US');\r\n readonly timeZone = input<string | undefined>(undefined);\r\n readonly dir = input<'ltr' | 'rtl'>('ltr');\r\n readonly fromYear = input(new Date().getFullYear() - 100);\r\n readonly toYear = input(new Date().getFullYear() + 20);\r\n readonly showOutsideDays = input(true, { transform: booleanAttribute });\r\n readonly showWeekNumber = input(false, { transform: booleanAttribute });\r\n readonly disabledInput = input(false, { alias: 'disabled', transform: booleanAttribute });\r\n readonly invalidInput = input(false, { alias: 'invalid', transform: booleanAttribute });\r\n readonly editable = input(false, { transform: booleanAttribute });\r\n readonly readonlyInput = input(false, { transform: booleanAttribute });\r\n readonly closeOnSelect = input(true, { transform: booleanAttribute });\r\n readonly debugVisible = input(false, { transform: booleanAttribute });\r\n readonly showTime = input(false, { transform: booleanAttribute });\r\n readonly placeholder = input('Pick a date');\r\n readonly dialogLabel = input('Choose date');\r\n readonly icon = input('◷');\r\n readonly disabledDates = input<Date[]>([]);\r\n readonly dateLabels = input<Record<string, string>>({});\r\n readonly disabledMatcher = input<FrCalendarDisabledMatcher | null>(null);\r\n readonly cellTemplate = input<TemplateRef<FrCalendarCellContext> | null>(null);\r\n readonly previousMonthTemplate = input<TemplateRef<unknown> | null>(null);\r\n readonly nextMonthTemplate = input<TemplateRef<unknown> | null>(null);\r\n readonly previousMonthIcon = input('‹');\r\n readonly nextMonthIcon = input('›');\r\n readonly previousMonthLabel = input('Previous month');\r\n readonly nextMonthLabel = input('Next month');\r\n readonly headerTemplate = input<TemplateRef<unknown> | null>(null);\r\n readonly footerTemplate = input<TemplateRef<unknown> | null>(null);\r\n readonly month = input<Date | null | undefined>(undefined);\r\n readonly presets = input<FrDatePickerPreset[]>([]);\r\n readonly formatter = input<FrDatePickerFormatter>(defaultFormatter);\r\n readonly parser = input<FrDatePickerParser>(defaultParser);\r\n readonly timeLabel = input('Time');\r\n\r\n readonly valueChange = output<FrDatePickerValue>();\r\n readonly openChange = output<boolean>();\r\n readonly monthChange = output<Date>();\r\n\r\n readonly calendar = viewChild(FrCalendar);\r\n readonly positions = POSITIONS;\r\n readonly isOpen = signal(false);\r\n readonly overlaySide = signal<'bottom' | 'top'>('bottom');\r\n readonly value = signal<FrDatePickerValue>(null);\r\n readonly inputDraft = signal<string | null>(null);\r\n\r\n readonly disabled = computed(() => this.disabledInput() || this.formDisabled());\r\n readonly invalid = computed(() => this.invalidInput() || this.formInvalid());\r\n readonly hasValue = computed(() => hasValue(this.value(), this.mode()));\r\n readonly displayValue = computed(() => this.formatter()(this.value(), this.locale()));\r\n readonly inputValue = computed(() => this.inputDraft() ?? this.displayValue());\r\n readonly calendarValue = computed(() => normalizeValue(this.value(), this.mode()));\r\n readonly singleDate = computed(() => {\r\n const value = this.value();\r\n return value instanceof Date ? value : null;\r\n });\r\n readonly timeValue = computed(() => {\r\n const date = this.singleDate();\r\n return date ? `${date.getHours().toString().padStart(2, '0')}:${date.getMinutes().toString().padStart(2, '0')}` : '';\r\n });\r\n\r\n constructor() {\r\n super();\r\n queueMicrotask(() => {\r\n if (this.debugVisible()) {\r\n this.open();\r\n }\r\n });\r\n }\r\n\r\n toggle(): void {\r\n this.isOpen() ? this.close() : this.open();\r\n }\r\n\r\n open(): void {\r\n if (this.disabled()) {\r\n return;\r\n }\r\n\r\n this.isOpen.set(true);\r\n this.openChange.emit(true);\r\n }\r\n\r\n close(): void {\r\n if (this.debugVisible()) {\r\n return;\r\n }\r\n\r\n this.isOpen.set(false);\r\n this.openChange.emit(false);\r\n this.inputDraft.set(null);\r\n this.markAsTouched();\r\n }\r\n\r\n clear(): void {\r\n this.commitValue(this.mode() === 'range' ? { from: null, to: null } : null);\r\n }\r\n\r\n selectPreset(preset: FrDatePickerPreset): void {\r\n const next = typeof preset.value === 'function' ? preset.value() : preset.value;\r\n this.commitValue(normalizeValue(next, this.mode()));\r\n\r\n if (this.closeOnSelect() && isCompleteValue(this.value(), this.mode())) {\r\n this.close();\r\n }\r\n }\r\n\r\n selectCalendarValue(value: FrDatePickerValue): void {\r\n const previous = this.singleDate();\r\n // Preserve the existing time when a calendar click only changes the date portion.\r\n const next = this.showTime() && value instanceof Date && previous ? mergeTime(value, previous) : value;\r\n\r\n this.commitValue(normalizeValue(next, this.mode()));\r\n\r\n if (this.closeOnSelect() && isCompleteValue(this.value(), this.mode())) {\r\n this.close();\r\n }\r\n }\r\n\r\n setTime(value: string): void {\r\n const date = this.singleDate();\r\n\r\n if (!date || !value) {\r\n return;\r\n }\r\n\r\n const [hours, minutes] = value.split(':').map(Number);\r\n const next = new Date(date);\r\n next.setHours(hours || 0, minutes || 0, 0, 0);\r\n this.commitValue(next);\r\n }\r\n\r\n handleInput(value: string): void {\r\n this.inputDraft.set(value);\r\n\r\n if (!value.trim()) {\r\n this.commitValue(this.mode() === 'range' ? { from: null, to: null } : null);\r\n }\r\n }\r\n\r\n commitInput(value: string): void {\r\n const parsed = this.parser()(value, this.locale());\r\n\r\n if (parsed !== undefined) {\r\n this.commitValue(normalizeValue(parsed, this.mode()));\r\n }\r\n\r\n this.inputDraft.set(null);\r\n }\r\n\r\n handleTriggerKeydown(event: KeyboardEvent): void {\r\n if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\r\n event.preventDefault();\r\n this.open();\r\n }\r\n\r\n if (event.key === 'Escape') {\r\n event.preventDefault();\r\n this.close();\r\n }\r\n }\r\n\r\n handlePositionChange(event: ConnectedOverlayPositionChange): void {\r\n this.overlaySide.set(event.connectionPair.overlayY === 'bottom' ? 'top' : 'bottom');\r\n }\r\n\r\n focusCalendar(): void {\r\n this.calendar()?.focusActiveDate();\r\n }\r\n\r\n overlayPanelClasses(): string[] {\r\n return ['frame-date-picker-overlay', `frame-date-picker-overlay--${this.overlaySide()}`];\r\n }\r\n\r\n protected setViewValue(value: FrDatePickerValue): void {\r\n this.value.set(normalizeValue(value, this.mode()));\r\n this.inputDraft.set(null);\r\n }\r\n\r\n private commitValue(value: FrDatePickerValue): void {\r\n this.value.set(value);\r\n this.inputDraft.set(null);\r\n this.notifyValueChange(value);\r\n this.valueChange.emit(value);\r\n this.markAsTouched();\r\n }\r\n}\r\n\r\nfunction normalizeValue(value: FrDatePickerValue | undefined, mode: FrCalendarMode): FrDatePickerValue {\r\n if (!value) {\r\n return mode === 'range' ? { from: null, to: null } : null;\r\n }\r\n\r\n // Normalize across modes so form writes, presets, and calendar selections share one shape.\r\n if (mode === 'range') {\r\n if (isRange(value)) {\r\n return {\r\n from: value.from ? cloneDateWithTime(value.from) : null,\r\n to: value.to ? cloneDateWithTime(value.to) : null,\r\n };\r\n }\r\n\r\n return { from: cloneDateWithTime(value), to: null };\r\n }\r\n\r\n return value instanceof Date ? cloneDateWithTime(value) : value.from ? cloneDateWithTime(value.from) : null;\r\n}\r\n\r\nfunction defaultFormatter(value: FrDatePickerValue, locale: string): string {\r\n if (!value) {\r\n return '';\r\n }\r\n\r\n const formatter = new Intl.DateTimeFormat(locale, { dateStyle: 'medium' });\r\n\r\n if (value instanceof Date) {\r\n return formatter.format(value);\r\n }\r\n\r\n if (value.from && value.to) {\r\n return `${formatter.format(value.from)} - ${formatter.format(value.to)}`;\r\n }\r\n\r\n return value.from ? formatter.format(value.from) : '';\r\n}\r\n\r\nfunction defaultParser(value: string): FrDatePickerValue | undefined {\r\n const trimmed = value.trim();\r\n\r\n if (!trimmed) {\r\n return null;\r\n }\r\n\r\n const isoDate = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(trimmed);\r\n\r\n if (isoDate) {\r\n return new Date(Number(isoDate[1]), Number(isoDate[2]) - 1, Number(isoDate[3]));\r\n }\r\n\r\n const parsed = new Date(trimmed);\r\n return Number.isNaN(parsed.getTime()) ? undefined : parsed;\r\n}\r\n\r\nfunction isRange(value: unknown): value is FrCalendarDateRange {\r\n return !!value && typeof value === 'object' && ('from' in value || 'to' in value);\r\n}\r\n\r\nfunction hasValue(value: FrDatePickerValue, mode: FrCalendarMode): boolean {\r\n if (mode === 'range' && isRange(value)) {\r\n return !!value.from || !!value.to;\r\n }\r\n\r\n return value instanceof Date;\r\n}\r\n\r\nfunction isCompleteValue(value: FrDatePickerValue, mode: FrCalendarMode): boolean {\r\n if (mode === 'range' && isRange(value)) {\r\n return !!value.from && !!value.to;\r\n }\r\n\r\n return value instanceof Date;\r\n}\r\n\r\nfunction cloneDateWithTime(date: Date): Date {\r\n return new Date(date.getTime());\r\n}\r\n\r\nfunction mergeTime(date: Date, timeSource: Date): Date {\r\n const next = new Date(date);\r\n next.setHours(timeSource.getHours(), timeSource.getMinutes(), timeSource.getSeconds(), timeSource.getMilliseconds());\r\n return next;\r\n}\r\n\r\n\r\n","import { NgModule } from '@angular/core';\nimport {\n FrDatePicker,\n} from './src/date-picker';\n\n@NgModule({\n imports: [\n FrDatePicker,\n ],\n exports: [\n FrDatePicker,\n ],\n})\nexport class FrDatePickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,293 @@
1
+ import * as i0 from '@angular/core';
2
+ import { inject, input, booleanAttribute, Directive, output, NgModule } from '@angular/core';
3
+ import * as i1 from '@angular/cdk/drag-drop';
4
+ import { CdkDropListGroup, CdkDropList, CdkDrag, CdkDragHandle, CdkDragPreview, CdkDragPlaceholder } from '@angular/cdk/drag-drop';
5
+ export { moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';
6
+ import { Subscription } from 'rxjs';
7
+
8
+ const FR_DROP_LIST_ORIENTATIONS = ['horizontal', 'vertical', 'mixed'];
9
+ /** Connects child drop lists dynamically through the CDK group primitive. */
10
+ class FrDragDropGroup {
11
+ cdkGroup = inject(CdkDropListGroup);
12
+ disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), alias: 'frDragDropGroupDisabled',
13
+ transform: booleanAttribute });
14
+ ngDoCheck() {
15
+ this.cdkGroup.disabled = this.disabled();
16
+ }
17
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrDragDropGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive });
18
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.16", type: FrDragDropGroup, isStandalone: true, selector: "[frDragDropGroup], frame-drag-drop-group", inputs: { disabled: { classPropertyName: "disabled", publicName: "frDragDropGroupDisabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-disabled": "disabled() ? \"\" : null" }, classAttribute: "frame-drag-drop-group" }, hostDirectives: [{ directive: i1.CdkDropListGroup }], ngImport: i0 });
19
+ }
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrDragDropGroup, decorators: [{
21
+ type: Directive,
22
+ args: [{
23
+ selector: '[frDragDropGroup], frame-drag-drop-group',
24
+ hostDirectives: [CdkDropListGroup],
25
+ host: {
26
+ class: 'frame-drag-drop-group',
27
+ '[attr.data-disabled]': 'disabled() ? "" : null',
28
+ },
29
+ }]
30
+ }], propDecorators: { disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "frDragDropGroupDisabled", required: false }] }] } });
31
+ /** Drop target for sortable and transferable draggable items. */
32
+ class FrDropList {
33
+ cdkDropList = inject(CdkDropList);
34
+ subscriptions = new Subscription();
35
+ connectedTo = input([], { ...(ngDevMode ? { debugName: "connectedTo" } : /* istanbul ignore next */ {}), alias: 'frDropListConnectedTo' });
36
+ data = input(null, { ...(ngDevMode ? { debugName: "data" } : /* istanbul ignore next */ {}), alias: 'frDropListData' });
37
+ orientation = input('vertical', { ...(ngDevMode ? { debugName: "orientation" } : /* istanbul ignore next */ {}), alias: 'frDropListOrientation' });
38
+ id = input(null, { ...(ngDevMode ? { debugName: "id" } : /* istanbul ignore next */ {}), alias: 'frDropListId' });
39
+ lockAxis = input(null, { ...(ngDevMode ? { debugName: "lockAxis" } : /* istanbul ignore next */ {}), alias: 'frDropListLockAxis' });
40
+ disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), alias: 'frDropListDisabled',
41
+ transform: booleanAttribute });
42
+ sortingDisabled = input(false, { ...(ngDevMode ? { debugName: "sortingDisabled" } : /* istanbul ignore next */ {}), alias: 'frDropListSortingDisabled',
43
+ transform: booleanAttribute });
44
+ enterPredicate = input(null, { ...(ngDevMode ? { debugName: "enterPredicate" } : /* istanbul ignore next */ {}), alias: 'frDropListEnterPredicate' });
45
+ sortPredicate = input(null, { ...(ngDevMode ? { debugName: "sortPredicate" } : /* istanbul ignore next */ {}), alias: 'frDropListSortPredicate' });
46
+ autoScrollDisabled = input(false, { ...(ngDevMode ? { debugName: "autoScrollDisabled" } : /* istanbul ignore next */ {}), alias: 'frDropListAutoScrollDisabled',
47
+ transform: booleanAttribute });
48
+ autoScrollStep = input(null, { ...(ngDevMode ? { debugName: "autoScrollStep" } : /* istanbul ignore next */ {}), alias: 'frDropListAutoScrollStep' });
49
+ elementContainerSelector = input(null, { ...(ngDevMode ? { debugName: "elementContainerSelector" } : /* istanbul ignore next */ {}), alias: 'frDropListElementContainer' });
50
+ hasAnchor = input(false, { ...(ngDevMode ? { debugName: "hasAnchor" } : /* istanbul ignore next */ {}), alias: 'frDropListHasAnchor',
51
+ transform: booleanAttribute });
52
+ dropped = output({ alias: 'frDropListDropped' });
53
+ entered = output({ alias: 'frDropListEntered' });
54
+ exited = output({ alias: 'frDropListExited' });
55
+ sorted = output({ alias: 'frDropListSorted' });
56
+ constructor() {
57
+ this.forward(this.cdkDropList.dropped, this.dropped);
58
+ this.forward(this.cdkDropList.entered, this.entered);
59
+ this.forward(this.cdkDropList.exited, this.exited);
60
+ this.forward(this.cdkDropList.sorted, this.sorted);
61
+ }
62
+ ngOnDestroy() {
63
+ this.subscriptions.unsubscribe();
64
+ }
65
+ ngDoCheck() {
66
+ // Forward signal inputs into the CDK directive hosted on the same element.
67
+ const id = this.id();
68
+ this.cdkDropList.id = id ?? this.cdkDropList.id;
69
+ this.cdkDropList.connectedTo = this.connectedTo();
70
+ this.cdkDropList.data = this.data();
71
+ this.cdkDropList.orientation = this.orientation();
72
+ this.cdkDropList.lockAxis = this.lockAxis();
73
+ this.cdkDropList.disabled = this.disabled();
74
+ this.cdkDropList.sortingDisabled = this.sortingDisabled();
75
+ this.cdkDropList.autoScrollDisabled = this.autoScrollDisabled();
76
+ this.cdkDropList.hasAnchor = this.hasAnchor();
77
+ const enterPredicate = this.enterPredicate();
78
+ if (enterPredicate) {
79
+ this.cdkDropList.enterPredicate = enterPredicate;
80
+ }
81
+ const sortPredicate = this.sortPredicate();
82
+ if (sortPredicate) {
83
+ this.cdkDropList.sortPredicate = sortPredicate;
84
+ }
85
+ const autoScrollStep = this.autoScrollStep();
86
+ if (autoScrollStep !== null) {
87
+ this.cdkDropList.autoScrollStep = autoScrollStep;
88
+ }
89
+ const elementContainerSelector = this.elementContainerSelector();
90
+ if (elementContainerSelector !== null) {
91
+ this.cdkDropList.elementContainerSelector = elementContainerSelector;
92
+ }
93
+ }
94
+ forward(source, target) {
95
+ this.subscriptions.add(source.subscribe((event) => target.emit(event)));
96
+ }
97
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrDropList, deps: [], target: i0.ɵɵFactoryTarget.Directive });
98
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.16", type: FrDropList, isStandalone: true, selector: "[frDropList], frame-drop-list", inputs: { connectedTo: { classPropertyName: "connectedTo", publicName: "frDropListConnectedTo", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "frDropListData", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "frDropListOrientation", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "frDropListId", isSignal: true, isRequired: false, transformFunction: null }, lockAxis: { classPropertyName: "lockAxis", publicName: "frDropListLockAxis", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "frDropListDisabled", isSignal: true, isRequired: false, transformFunction: null }, sortingDisabled: { classPropertyName: "sortingDisabled", publicName: "frDropListSortingDisabled", isSignal: true, isRequired: false, transformFunction: null }, enterPredicate: { classPropertyName: "enterPredicate", publicName: "frDropListEnterPredicate", isSignal: true, isRequired: false, transformFunction: null }, sortPredicate: { classPropertyName: "sortPredicate", publicName: "frDropListSortPredicate", isSignal: true, isRequired: false, transformFunction: null }, autoScrollDisabled: { classPropertyName: "autoScrollDisabled", publicName: "frDropListAutoScrollDisabled", isSignal: true, isRequired: false, transformFunction: null }, autoScrollStep: { classPropertyName: "autoScrollStep", publicName: "frDropListAutoScrollStep", isSignal: true, isRequired: false, transformFunction: null }, elementContainerSelector: { classPropertyName: "elementContainerSelector", publicName: "frDropListElementContainer", isSignal: true, isRequired: false, transformFunction: null }, hasAnchor: { classPropertyName: "hasAnchor", publicName: "frDropListHasAnchor", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dropped: "frDropListDropped", entered: "frDropListEntered", exited: "frDropListExited", sorted: "frDropListSorted" }, host: { properties: { "attr.data-disabled": "disabled() ? \"\" : null", "attr.data-orientation": "orientation()", "attr.data-sorting-disabled": "sortingDisabled() ? \"\" : null" }, classAttribute: "frame-drop-list" }, hostDirectives: [{ directive: i1.CdkDropList }], ngImport: i0 });
99
+ }
100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrDropList, decorators: [{
101
+ type: Directive,
102
+ args: [{
103
+ selector: '[frDropList], frame-drop-list',
104
+ hostDirectives: [CdkDropList],
105
+ host: {
106
+ class: 'frame-drop-list',
107
+ '[attr.data-disabled]': 'disabled() ? "" : null',
108
+ '[attr.data-orientation]': 'orientation()',
109
+ '[attr.data-sorting-disabled]': 'sortingDisabled() ? "" : null',
110
+ },
111
+ }]
112
+ }], ctorParameters: () => [], propDecorators: { connectedTo: [{ type: i0.Input, args: [{ isSignal: true, alias: "frDropListConnectedTo", required: false }] }], data: [{ type: i0.Input, args: [{ isSignal: true, alias: "frDropListData", required: false }] }], orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "frDropListOrientation", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "frDropListId", required: false }] }], lockAxis: [{ type: i0.Input, args: [{ isSignal: true, alias: "frDropListLockAxis", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "frDropListDisabled", required: false }] }], sortingDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "frDropListSortingDisabled", required: false }] }], enterPredicate: [{ type: i0.Input, args: [{ isSignal: true, alias: "frDropListEnterPredicate", required: false }] }], sortPredicate: [{ type: i0.Input, args: [{ isSignal: true, alias: "frDropListSortPredicate", required: false }] }], autoScrollDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "frDropListAutoScrollDisabled", required: false }] }], autoScrollStep: [{ type: i0.Input, args: [{ isSignal: true, alias: "frDropListAutoScrollStep", required: false }] }], elementContainerSelector: [{ type: i0.Input, args: [{ isSignal: true, alias: "frDropListElementContainer", required: false }] }], hasAnchor: [{ type: i0.Input, args: [{ isSignal: true, alias: "frDropListHasAnchor", required: false }] }], dropped: [{ type: i0.Output, args: ["frDropListDropped"] }], entered: [{ type: i0.Output, args: ["frDropListEntered"] }], exited: [{ type: i0.Output, args: ["frDropListExited"] }], sorted: [{ type: i0.Output, args: ["frDropListSorted"] }] } });
113
+ /** Makes the host element draggable; add a handle to narrow the drag gesture. */
114
+ class FrDrag {
115
+ cdkDrag = inject(CdkDrag);
116
+ subscriptions = new Subscription();
117
+ data = input(null, { ...(ngDevMode ? { debugName: "data" } : /* istanbul ignore next */ {}), alias: 'frDragData' });
118
+ lockAxis = input(null, { ...(ngDevMode ? { debugName: "lockAxis" } : /* istanbul ignore next */ {}), alias: 'frDragLockAxis' });
119
+ rootElementSelector = input(null, { ...(ngDevMode ? { debugName: "rootElementSelector" } : /* istanbul ignore next */ {}), alias: 'frDragRootElement' });
120
+ boundaryElement = input(null, { ...(ngDevMode ? { debugName: "boundaryElement" } : /* istanbul ignore next */ {}), alias: 'frDragBoundary' });
121
+ dragStartDelay = input(null, { ...(ngDevMode ? { debugName: "dragStartDelay" } : /* istanbul ignore next */ {}), alias: 'frDragStartDelay' });
122
+ freeDragPosition = input(null, { ...(ngDevMode ? { debugName: "freeDragPosition" } : /* istanbul ignore next */ {}), alias: 'frDragFreeDragPosition' });
123
+ disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), alias: 'frDragDisabled',
124
+ transform: booleanAttribute });
125
+ constrainPosition = input(null, { ...(ngDevMode ? { debugName: "constrainPosition" } : /* istanbul ignore next */ {}), alias: 'frDragConstrainPosition' });
126
+ previewClass = input(null, { ...(ngDevMode ? { debugName: "previewClass" } : /* istanbul ignore next */ {}), alias: 'frDragPreviewClass' });
127
+ previewContainer = input(null, { ...(ngDevMode ? { debugName: "previewContainer" } : /* istanbul ignore next */ {}), alias: 'frDragPreviewContainer' });
128
+ scale = input(null, { ...(ngDevMode ? { debugName: "scale" } : /* istanbul ignore next */ {}), alias: 'frDragScale' });
129
+ started = output({ alias: 'frDragStarted' });
130
+ released = output({ alias: 'frDragReleased' });
131
+ ended = output({ alias: 'frDragEnded' });
132
+ entered = output({ alias: 'frDragEntered' });
133
+ exited = output({ alias: 'frDragExited' });
134
+ dropped = output({ alias: 'frDragDropped' });
135
+ moved = output({ alias: 'frDragMoved' });
136
+ constructor() {
137
+ this.forward(this.cdkDrag.started, this.started);
138
+ this.forward(this.cdkDrag.released, this.released);
139
+ this.forward(this.cdkDrag.ended, this.ended);
140
+ this.forward(this.cdkDrag.entered, this.entered);
141
+ this.forward(this.cdkDrag.exited, this.exited);
142
+ this.forward(this.cdkDrag.dropped, this.dropped);
143
+ this.forward(this.cdkDrag.moved, this.moved);
144
+ }
145
+ ngOnDestroy() {
146
+ this.subscriptions.unsubscribe();
147
+ }
148
+ ngDoCheck() {
149
+ // Keep FrameUI inputs as the public API while delegating behavior to CDK.
150
+ this.cdkDrag.data = this.data();
151
+ this.cdkDrag.lockAxis = this.lockAxis();
152
+ this.cdkDrag.disabled = this.disabled();
153
+ const rootElementSelector = this.rootElementSelector();
154
+ if (rootElementSelector !== null) {
155
+ this.cdkDrag.rootElementSelector = rootElementSelector;
156
+ }
157
+ const boundaryElement = this.boundaryElement();
158
+ if (boundaryElement !== null) {
159
+ this.cdkDrag.boundaryElement = boundaryElement;
160
+ }
161
+ const dragStartDelay = this.dragStartDelay();
162
+ if (dragStartDelay !== null) {
163
+ this.cdkDrag.dragStartDelay = dragStartDelay;
164
+ }
165
+ const freeDragPosition = this.freeDragPosition();
166
+ if (freeDragPosition !== null) {
167
+ this.cdkDrag.freeDragPosition = freeDragPosition;
168
+ }
169
+ const constrainPosition = this.constrainPosition();
170
+ if (constrainPosition !== null) {
171
+ this.cdkDrag.constrainPosition = constrainPosition;
172
+ }
173
+ const previewClass = this.previewClass();
174
+ if (previewClass !== null) {
175
+ this.cdkDrag.previewClass = previewClass;
176
+ }
177
+ const previewContainer = this.previewContainer();
178
+ if (previewContainer !== null) {
179
+ this.cdkDrag.previewContainer = previewContainer;
180
+ }
181
+ const scale = this.scale();
182
+ if (scale !== null) {
183
+ this.cdkDrag.scale = scale;
184
+ }
185
+ }
186
+ forward(source, target) {
187
+ this.subscriptions.add(source.subscribe((event) => target.emit(event)));
188
+ }
189
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrDrag, deps: [], target: i0.ɵɵFactoryTarget.Directive });
190
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.16", type: FrDrag, isStandalone: true, selector: "[frDrag], frame-drag", inputs: { data: { classPropertyName: "data", publicName: "frDragData", isSignal: true, isRequired: false, transformFunction: null }, lockAxis: { classPropertyName: "lockAxis", publicName: "frDragLockAxis", isSignal: true, isRequired: false, transformFunction: null }, rootElementSelector: { classPropertyName: "rootElementSelector", publicName: "frDragRootElement", isSignal: true, isRequired: false, transformFunction: null }, boundaryElement: { classPropertyName: "boundaryElement", publicName: "frDragBoundary", isSignal: true, isRequired: false, transformFunction: null }, dragStartDelay: { classPropertyName: "dragStartDelay", publicName: "frDragStartDelay", isSignal: true, isRequired: false, transformFunction: null }, freeDragPosition: { classPropertyName: "freeDragPosition", publicName: "frDragFreeDragPosition", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "frDragDisabled", isSignal: true, isRequired: false, transformFunction: null }, constrainPosition: { classPropertyName: "constrainPosition", publicName: "frDragConstrainPosition", isSignal: true, isRequired: false, transformFunction: null }, previewClass: { classPropertyName: "previewClass", publicName: "frDragPreviewClass", isSignal: true, isRequired: false, transformFunction: null }, previewContainer: { classPropertyName: "previewContainer", publicName: "frDragPreviewContainer", isSignal: true, isRequired: false, transformFunction: null }, scale: { classPropertyName: "scale", publicName: "frDragScale", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { started: "frDragStarted", released: "frDragReleased", ended: "frDragEnded", entered: "frDragEntered", exited: "frDragExited", dropped: "frDragDropped", moved: "frDragMoved" }, host: { properties: { "attr.data-disabled": "disabled() ? \"\" : null", "attr.data-lock-axis": "lockAxis()" }, classAttribute: "frame-drag" }, hostDirectives: [{ directive: i1.CdkDrag }], ngImport: i0 });
191
+ }
192
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrDrag, decorators: [{
193
+ type: Directive,
194
+ args: [{
195
+ selector: '[frDrag], frame-drag',
196
+ hostDirectives: [CdkDrag],
197
+ host: {
198
+ class: 'frame-drag',
199
+ '[attr.data-disabled]': 'disabled() ? "" : null',
200
+ '[attr.data-lock-axis]': 'lockAxis()',
201
+ },
202
+ }]
203
+ }], ctorParameters: () => [], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "frDragData", required: false }] }], lockAxis: [{ type: i0.Input, args: [{ isSignal: true, alias: "frDragLockAxis", required: false }] }], rootElementSelector: [{ type: i0.Input, args: [{ isSignal: true, alias: "frDragRootElement", required: false }] }], boundaryElement: [{ type: i0.Input, args: [{ isSignal: true, alias: "frDragBoundary", required: false }] }], dragStartDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "frDragStartDelay", required: false }] }], freeDragPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "frDragFreeDragPosition", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "frDragDisabled", required: false }] }], constrainPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "frDragConstrainPosition", required: false }] }], previewClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "frDragPreviewClass", required: false }] }], previewContainer: [{ type: i0.Input, args: [{ isSignal: true, alias: "frDragPreviewContainer", required: false }] }], scale: [{ type: i0.Input, args: [{ isSignal: true, alias: "frDragScale", required: false }] }], started: [{ type: i0.Output, args: ["frDragStarted"] }], released: [{ type: i0.Output, args: ["frDragReleased"] }], ended: [{ type: i0.Output, args: ["frDragEnded"] }], entered: [{ type: i0.Output, args: ["frDragEntered"] }], exited: [{ type: i0.Output, args: ["frDragExited"] }], dropped: [{ type: i0.Output, args: ["frDragDropped"] }], moved: [{ type: i0.Output, args: ["frDragMoved"] }] } });
204
+ /** Optional projected handle that starts dragging for the nearest draggable host. */
205
+ class FrDragHandle {
206
+ cdkHandle = inject(CdkDragHandle);
207
+ disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), alias: 'frDragHandleDisabled',
208
+ transform: booleanAttribute });
209
+ ngDoCheck() {
210
+ this.cdkHandle.disabled = this.disabled();
211
+ }
212
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrDragHandle, deps: [], target: i0.ɵɵFactoryTarget.Directive });
213
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.16", type: FrDragHandle, isStandalone: true, selector: "[frDragHandle], frame-drag-handle", inputs: { disabled: { classPropertyName: "disabled", publicName: "frDragHandleDisabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-disabled": "disabled() ? \"\" : null" }, classAttribute: "frame-drag-handle" }, hostDirectives: [{ directive: i1.CdkDragHandle }], ngImport: i0 });
214
+ }
215
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrDragHandle, decorators: [{
216
+ type: Directive,
217
+ args: [{
218
+ selector: '[frDragHandle], frame-drag-handle',
219
+ hostDirectives: [CdkDragHandle],
220
+ host: {
221
+ class: 'frame-drag-handle',
222
+ '[attr.data-disabled]': 'disabled() ? "" : null',
223
+ },
224
+ }]
225
+ }], propDecorators: { disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "frDragHandleDisabled", required: false }] }] } });
226
+ /** Custom preview template rendered while an item is being dragged. */
227
+ class FrDragPreview {
228
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrDragPreview, deps: [], target: i0.ɵɵFactoryTarget.Directive });
229
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: FrDragPreview, isStandalone: true, selector: "ng-template[frDragPreview]", hostDirectives: [{ directive: i1.CdkDragPreview }], ngImport: i0 });
230
+ }
231
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrDragPreview, decorators: [{
232
+ type: Directive,
233
+ args: [{
234
+ selector: 'ng-template[frDragPreview]',
235
+ hostDirectives: [CdkDragPreview],
236
+ }]
237
+ }] });
238
+ /** Custom placeholder template rendered in the source list during drag. */
239
+ class FrDragPlaceholder {
240
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrDragPlaceholder, deps: [], target: i0.ɵɵFactoryTarget.Directive });
241
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: FrDragPlaceholder, isStandalone: true, selector: "ng-template[frDragPlaceholder]", hostDirectives: [{ directive: i1.CdkDragPlaceholder }], ngImport: i0 });
242
+ }
243
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrDragPlaceholder, decorators: [{
244
+ type: Directive,
245
+ args: [{
246
+ selector: 'ng-template[frDragPlaceholder]',
247
+ hostDirectives: [CdkDragPlaceholder],
248
+ }]
249
+ }] });
250
+
251
+ class FrDragDropModule {
252
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrDragDropModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
253
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.16", ngImport: i0, type: FrDragDropModule, imports: [FrDrag,
254
+ FrDragDropGroup,
255
+ FrDragHandle,
256
+ FrDragPlaceholder,
257
+ FrDragPreview,
258
+ FrDropList], exports: [FrDrag,
259
+ FrDragDropGroup,
260
+ FrDragHandle,
261
+ FrDragPlaceholder,
262
+ FrDragPreview,
263
+ FrDropList] });
264
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrDragDropModule });
265
+ }
266
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: FrDragDropModule, decorators: [{
267
+ type: NgModule,
268
+ args: [{
269
+ imports: [
270
+ FrDrag,
271
+ FrDragDropGroup,
272
+ FrDragHandle,
273
+ FrDragPlaceholder,
274
+ FrDragPreview,
275
+ FrDropList,
276
+ ],
277
+ exports: [
278
+ FrDrag,
279
+ FrDragDropGroup,
280
+ FrDragHandle,
281
+ FrDragPlaceholder,
282
+ FrDragPreview,
283
+ FrDropList,
284
+ ],
285
+ }]
286
+ }] });
287
+
288
+ /**
289
+ * Generated bundle index. Do not edit.
290
+ */
291
+
292
+ export { FR_DROP_LIST_ORIENTATIONS, FrDrag, FrDragDropGroup, FrDragDropModule, FrDragHandle, FrDragPlaceholder, FrDragPreview, FrDropList };
293
+ //# sourceMappingURL=frame-ui-ng-components-drag-drop.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frame-ui-ng-components-drag-drop.mjs","sources":["../../../projects/components/drag-drop/src/drag-drop.ts","../../../projects/components/drag-drop/drag-drop.module.ts","../../../projects/components/drag-drop/frame-ui-ng-components-drag-drop.ts"],"sourcesContent":["import {\r\n Directive,\r\n DoCheck,\r\n OnDestroy,\r\n booleanAttribute,\r\n inject,\r\n input,\r\n output,\r\n} from '@angular/core';\r\nimport {\r\n CdkDrag,\r\n CdkDragDrop,\r\n CdkDragEnd,\r\n CdkDragEnter,\r\n CdkDragExit,\r\n CdkDragHandle,\r\n CdkDragMove,\r\n CdkDragPlaceholder,\r\n CdkDragPreview,\r\n CdkDragRelease,\r\n CdkDragSortEvent,\r\n CdkDragStart,\r\n CdkDropList,\r\n CdkDropListGroup,\r\n DragAxis,\r\n DragConstrainPosition,\r\n DragStartDelay,\r\n DropListOrientation,\r\n PreviewContainer,\r\n} from '@angular/cdk/drag-drop';\r\nimport { Subscription } from 'rxjs';\r\n\r\nexport const FR_DROP_LIST_ORIENTATIONS = ['horizontal', 'vertical', 'mixed'] as const;\r\n\r\nexport type FrDropListOrientation = (typeof FR_DROP_LIST_ORIENTATIONS)[number];\r\n\r\n/** Connects child drop lists dynamically through the CDK group primitive. */\r\n@Directive({\r\n selector: '[frDragDropGroup], frame-drag-drop-group',\r\n hostDirectives: [CdkDropListGroup],\r\n host: {\r\n class: 'frame-drag-drop-group',\r\n '[attr.data-disabled]': 'disabled() ? \"\" : null',\r\n },\r\n})\r\nexport class FrDragDropGroup implements DoCheck {\r\n private readonly cdkGroup = inject(CdkDropListGroup);\r\n\r\n readonly disabled = input(false, {\r\n alias: 'frDragDropGroupDisabled',\r\n transform: booleanAttribute,\r\n });\r\n\r\n ngDoCheck(): void {\r\n this.cdkGroup.disabled = this.disabled();\r\n }\r\n}\r\n\r\n/** Drop target for sortable and transferable draggable items. */\r\n@Directive({\r\n selector: '[frDropList], frame-drop-list',\r\n hostDirectives: [CdkDropList],\r\n host: {\r\n class: 'frame-drop-list',\r\n '[attr.data-disabled]': 'disabled() ? \"\" : null',\r\n '[attr.data-orientation]': 'orientation()',\r\n '[attr.data-sorting-disabled]': 'sortingDisabled() ? \"\" : null',\r\n },\r\n})\r\nexport class FrDropList<T = unknown> implements DoCheck, OnDestroy {\r\n private readonly cdkDropList = inject<CdkDropList<T>>(CdkDropList);\r\n private readonly subscriptions = new Subscription();\r\n\r\n readonly connectedTo = input<Array<CdkDropList<unknown> | string> | CdkDropList<unknown> | string>([], {\r\n alias: 'frDropListConnectedTo',\r\n });\r\n readonly data = input<T | null>(null, { alias: 'frDropListData' });\r\n readonly orientation = input<FrDropListOrientation>('vertical', {\r\n alias: 'frDropListOrientation',\r\n });\r\n readonly id = input<string | null>(null, { alias: 'frDropListId' });\r\n readonly lockAxis = input<DragAxis | null>(null, { alias: 'frDropListLockAxis' });\r\n readonly disabled = input(false, {\r\n alias: 'frDropListDisabled',\r\n transform: booleanAttribute,\r\n });\r\n readonly sortingDisabled = input(false, {\r\n alias: 'frDropListSortingDisabled',\r\n transform: booleanAttribute,\r\n });\r\n readonly enterPredicate = input<CdkDropList<T>['enterPredicate'] | null>(null, {\r\n alias: 'frDropListEnterPredicate',\r\n });\r\n readonly sortPredicate = input<CdkDropList<T>['sortPredicate'] | null>(null, {\r\n alias: 'frDropListSortPredicate',\r\n });\r\n readonly autoScrollDisabled = input(false, {\r\n alias: 'frDropListAutoScrollDisabled',\r\n transform: booleanAttribute,\r\n });\r\n readonly autoScrollStep = input<number | null>(null, { alias: 'frDropListAutoScrollStep' });\r\n readonly elementContainerSelector = input<string | null>(null, {\r\n alias: 'frDropListElementContainer',\r\n });\r\n readonly hasAnchor = input(false, {\r\n alias: 'frDropListHasAnchor',\r\n transform: booleanAttribute,\r\n });\r\n\r\n readonly dropped = output<CdkDragDrop<T>>({ alias: 'frDropListDropped' });\r\n readonly entered = output<CdkDragEnter<T>>({ alias: 'frDropListEntered' });\r\n readonly exited = output<CdkDragExit<T>>({ alias: 'frDropListExited' });\r\n readonly sorted = output<CdkDragSortEvent<T>>({ alias: 'frDropListSorted' });\r\n\r\n constructor() {\r\n this.forward(this.cdkDropList.dropped, this.dropped);\r\n this.forward(this.cdkDropList.entered, this.entered);\r\n this.forward(this.cdkDropList.exited, this.exited);\r\n this.forward(this.cdkDropList.sorted, this.sorted);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n ngDoCheck(): void {\r\n // Forward signal inputs into the CDK directive hosted on the same element.\r\n const id = this.id();\r\n this.cdkDropList.id = id ?? this.cdkDropList.id;\r\n this.cdkDropList.connectedTo = this.connectedTo();\r\n this.cdkDropList.data = this.data() as T;\r\n this.cdkDropList.orientation = this.orientation() as DropListOrientation;\r\n this.cdkDropList.lockAxis = this.lockAxis();\r\n this.cdkDropList.disabled = this.disabled();\r\n this.cdkDropList.sortingDisabled = this.sortingDisabled();\r\n this.cdkDropList.autoScrollDisabled = this.autoScrollDisabled();\r\n this.cdkDropList.hasAnchor = this.hasAnchor();\r\n\r\n const enterPredicate = this.enterPredicate();\r\n if (enterPredicate) {\r\n this.cdkDropList.enterPredicate = enterPredicate;\r\n }\r\n\r\n const sortPredicate = this.sortPredicate();\r\n if (sortPredicate) {\r\n this.cdkDropList.sortPredicate = sortPredicate;\r\n }\r\n\r\n const autoScrollStep = this.autoScrollStep();\r\n if (autoScrollStep !== null) {\r\n this.cdkDropList.autoScrollStep = autoScrollStep;\r\n }\r\n\r\n const elementContainerSelector = this.elementContainerSelector();\r\n if (elementContainerSelector !== null) {\r\n this.cdkDropList.elementContainerSelector = elementContainerSelector;\r\n }\r\n }\r\n\r\n private forward<Value>(\r\n source: { subscribe(next: (value: Value) => void): { unsubscribe(): void } },\r\n target: { emit(value: Value): void },\r\n ): void {\r\n this.subscriptions.add(source.subscribe((event) => target.emit(event)));\r\n }\r\n}\r\n\r\n/** Makes the host element draggable; add a handle to narrow the drag gesture. */\r\n@Directive({\r\n selector: '[frDrag], frame-drag',\r\n hostDirectives: [CdkDrag],\r\n host: {\r\n class: 'frame-drag',\r\n '[attr.data-disabled]': 'disabled() ? \"\" : null',\r\n '[attr.data-lock-axis]': 'lockAxis()',\r\n },\r\n})\r\nexport class FrDrag<T = unknown> implements DoCheck, OnDestroy {\r\n private readonly cdkDrag = inject<CdkDrag<T>>(CdkDrag);\r\n private readonly subscriptions = new Subscription();\r\n\r\n readonly data = input<T | null>(null, { alias: 'frDragData' });\r\n readonly lockAxis = input<DragAxis | null>(null, { alias: 'frDragLockAxis' });\r\n readonly rootElementSelector = input<string | null>(null, { alias: 'frDragRootElement' });\r\n readonly boundaryElement = input<string | HTMLElement | null>(null, { alias: 'frDragBoundary' });\r\n readonly dragStartDelay = input<DragStartDelay | null>(null, {\r\n alias: 'frDragStartDelay',\r\n });\r\n readonly freeDragPosition = input<{ x: number; y: number } | null>(null, {\r\n alias: 'frDragFreeDragPosition',\r\n });\r\n readonly disabled = input(false, {\r\n alias: 'frDragDisabled',\r\n transform: booleanAttribute,\r\n });\r\n readonly constrainPosition = input<DragConstrainPosition | null>(null, {\r\n alias: 'frDragConstrainPosition',\r\n });\r\n readonly previewClass = input<string | string[] | null>(null, { alias: 'frDragPreviewClass' });\r\n readonly previewContainer = input<PreviewContainer | null>(null, {\r\n alias: 'frDragPreviewContainer',\r\n });\r\n readonly scale = input<number | null>(null, { alias: 'frDragScale' });\r\n\r\n readonly started = output<CdkDragStart<T>>({ alias: 'frDragStarted' });\r\n readonly released = output<CdkDragRelease<T>>({ alias: 'frDragReleased' });\r\n readonly ended = output<CdkDragEnd<T>>({ alias: 'frDragEnded' });\r\n readonly entered = output<CdkDragEnter<T>>({ alias: 'frDragEntered' });\r\n readonly exited = output<CdkDragExit<T>>({ alias: 'frDragExited' });\r\n readonly dropped = output<CdkDragDrop<T>>({ alias: 'frDragDropped' });\r\n readonly moved = output<CdkDragMove<T>>({ alias: 'frDragMoved' });\r\n\r\n constructor() {\r\n this.forward(this.cdkDrag.started, this.started);\r\n this.forward(this.cdkDrag.released, this.released);\r\n this.forward(this.cdkDrag.ended, this.ended);\r\n this.forward(this.cdkDrag.entered, this.entered);\r\n this.forward(this.cdkDrag.exited, this.exited);\r\n this.forward(this.cdkDrag.dropped, this.dropped);\r\n this.forward(this.cdkDrag.moved, this.moved);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n ngDoCheck(): void {\r\n // Keep FrameUI inputs as the public API while delegating behavior to CDK.\r\n this.cdkDrag.data = this.data() as T;\r\n this.cdkDrag.lockAxis = this.lockAxis();\r\n this.cdkDrag.disabled = this.disabled();\r\n\r\n const rootElementSelector = this.rootElementSelector();\r\n if (rootElementSelector !== null) {\r\n this.cdkDrag.rootElementSelector = rootElementSelector;\r\n }\r\n\r\n const boundaryElement = this.boundaryElement();\r\n if (boundaryElement !== null) {\r\n this.cdkDrag.boundaryElement = boundaryElement;\r\n }\r\n\r\n const dragStartDelay = this.dragStartDelay();\r\n if (dragStartDelay !== null) {\r\n this.cdkDrag.dragStartDelay = dragStartDelay;\r\n }\r\n\r\n const freeDragPosition = this.freeDragPosition();\r\n if (freeDragPosition !== null) {\r\n this.cdkDrag.freeDragPosition = freeDragPosition;\r\n }\r\n\r\n const constrainPosition = this.constrainPosition();\r\n if (constrainPosition !== null) {\r\n this.cdkDrag.constrainPosition = constrainPosition;\r\n }\r\n\r\n const previewClass = this.previewClass();\r\n if (previewClass !== null) {\r\n this.cdkDrag.previewClass = previewClass;\r\n }\r\n\r\n const previewContainer = this.previewContainer();\r\n if (previewContainer !== null) {\r\n this.cdkDrag.previewContainer = previewContainer;\r\n }\r\n\r\n const scale = this.scale();\r\n if (scale !== null) {\r\n this.cdkDrag.scale = scale;\r\n }\r\n }\r\n\r\n private forward<Value>(\r\n source: { subscribe(next: (value: Value) => void): { unsubscribe(): void } },\r\n target: { emit(value: Value): void },\r\n ): void {\r\n this.subscriptions.add(source.subscribe((event) => target.emit(event)));\r\n }\r\n}\r\n\r\n/** Optional projected handle that starts dragging for the nearest draggable host. */\r\n@Directive({\r\n selector: '[frDragHandle], frame-drag-handle',\r\n hostDirectives: [CdkDragHandle],\r\n host: {\r\n class: 'frame-drag-handle',\r\n '[attr.data-disabled]': 'disabled() ? \"\" : null',\r\n },\r\n})\r\nexport class FrDragHandle implements DoCheck {\r\n private readonly cdkHandle = inject(CdkDragHandle);\r\n\r\n readonly disabled = input(false, {\r\n alias: 'frDragHandleDisabled',\r\n transform: booleanAttribute,\r\n });\r\n\r\n ngDoCheck(): void {\r\n this.cdkHandle.disabled = this.disabled();\r\n }\r\n}\r\n\r\n/** Custom preview template rendered while an item is being dragged. */\r\n@Directive({\r\n selector: 'ng-template[frDragPreview]',\r\n hostDirectives: [CdkDragPreview],\r\n})\r\nexport class FrDragPreview {}\r\n\r\n/** Custom placeholder template rendered in the source list during drag. */\r\n@Directive({\r\n selector: 'ng-template[frDragPlaceholder]',\r\n hostDirectives: [CdkDragPlaceholder],\r\n})\r\nexport class FrDragPlaceholder {}\r\n","import { NgModule } from '@angular/core';\r\nimport {\r\n FrDrag,\r\n FrDragDropGroup,\r\n FrDragHandle,\r\n FrDragPlaceholder,\r\n FrDragPreview,\r\n FrDropList,\r\n} from './src/drag-drop';\r\n\r\n@NgModule({\r\n imports: [\r\n FrDrag,\r\n FrDragDropGroup,\r\n FrDragHandle,\r\n FrDragPlaceholder,\r\n FrDragPreview,\r\n FrDropList,\r\n ],\r\n exports: [\r\n FrDrag,\r\n FrDragDropGroup,\r\n FrDragHandle,\r\n FrDragPlaceholder,\r\n FrDragPreview,\r\n FrDropList,\r\n ],\r\n})\r\nexport class FrDragDropModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}