@frame-ui-ng/components 0.4.0-beta.0 → 0.4.2-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/calendar/src/styles/_vars.css +4 -0
- package/calendar/src/styles/calendar.css +29 -5
- package/confirm-popover/src/styles/confirm-popover.css +20 -0
- package/date-picker/src/styles/date-picker.css +27 -1
- package/drag-drop/src/styles/_vars.css +28 -0
- package/drag-drop/src/styles/drag-drop.css +132 -0
- package/fesm2022/frame-ui-ng-components-accordion.mjs +26 -21
- package/fesm2022/frame-ui-ng-components-accordion.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-alert.mjs +4 -0
- package/fesm2022/frame-ui-ng-components-alert.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-avatar.mjs +7 -0
- package/fesm2022/frame-ui-ng-components-avatar.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-badge.mjs +4 -0
- package/fesm2022/frame-ui-ng-components-badge.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-breadcrumb.mjs +13 -6
- package/fesm2022/frame-ui-ng-components-breadcrumb.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-button-group.mjs +1 -0
- package/fesm2022/frame-ui-ng-components-button-group.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-button.mjs +5 -0
- package/fesm2022/frame-ui-ng-components-button.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-calendar.mjs +24 -1
- package/fesm2022/frame-ui-ng-components-calendar.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-card.mjs +15 -15
- package/fesm2022/frame-ui-ng-components-card.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-carousel.mjs +33 -16
- package/fesm2022/frame-ui-ng-components-carousel.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-checkbox.mjs +7 -9
- package/fesm2022/frame-ui-ng-components-checkbox.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-collapsible.mjs +24 -23
- package/fesm2022/frame-ui-ng-components-collapsible.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-combobox.mjs +66 -18
- package/fesm2022/frame-ui-ng-components-combobox.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-command.mjs +47 -16
- package/fesm2022/frame-ui-ng-components-command.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-confirm-modal.mjs +3 -0
- package/fesm2022/frame-ui-ng-components-confirm-modal.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-confirm-popover.mjs +423 -0
- package/fesm2022/frame-ui-ng-components-confirm-popover.mjs.map +1 -0
- package/fesm2022/frame-ui-ng-components-context-menu.mjs +71 -45
- package/fesm2022/frame-ui-ng-components-context-menu.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-date-picker.mjs +3 -0
- package/fesm2022/frame-ui-ng-components-date-picker.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-drag-drop.mjs +293 -0
- package/fesm2022/frame-ui-ng-components-drag-drop.mjs.map +1 -0
- package/fesm2022/frame-ui-ng-components-dropdown-menu.mjs +73 -36
- package/fesm2022/frame-ui-ng-components-dropdown-menu.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-empty.mjs +6 -0
- package/fesm2022/frame-ui-ng-components-empty.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-field.mjs +21 -12
- package/fesm2022/frame-ui-ng-components-field.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-forms.mjs +1 -0
- package/fesm2022/frame-ui-ng-components-forms.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-hover-card.mjs +49 -43
- package/fesm2022/frame-ui-ng-components-hover-card.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-input-otp.mjs +5 -0
- package/fesm2022/frame-ui-ng-components-input-otp.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-input.mjs +13 -0
- package/fesm2022/frame-ui-ng-components-input.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-item.mjs +10 -0
- package/fesm2022/frame-ui-ng-components-item.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-menubar.mjs +15 -0
- package/fesm2022/frame-ui-ng-components-menubar.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-modal.mjs +167 -128
- package/fesm2022/frame-ui-ng-components-modal.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-navigation-menu.mjs +14 -0
- package/fesm2022/frame-ui-ng-components-navigation-menu.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-pagination.mjs +8 -0
- package/fesm2022/frame-ui-ng-components-pagination.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-popover.mjs +63 -51
- package/fesm2022/frame-ui-ng-components-popover.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-progress.mjs +2 -0
- package/fesm2022/frame-ui-ng-components-progress.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-radio-group.mjs +5 -0
- package/fesm2022/frame-ui-ng-components-radio-group.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-resizable.mjs +6 -0
- package/fesm2022/frame-ui-ng-components-resizable.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-select.mjs +62 -14
- package/fesm2022/frame-ui-ng-components-select.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-separator.mjs +1 -0
- package/fesm2022/frame-ui-ng-components-separator.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-sheet.mjs +99 -88
- package/fesm2022/frame-ui-ng-components-sheet.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-sidebar.mjs +27 -12
- package/fesm2022/frame-ui-ng-components-sidebar.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-skeleton.mjs +1 -0
- package/fesm2022/frame-ui-ng-components-skeleton.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-slider.mjs +29 -16
- package/fesm2022/frame-ui-ng-components-slider.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-spinner.mjs +1 -0
- package/fesm2022/frame-ui-ng-components-spinner.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-switch.mjs +6 -0
- package/fesm2022/frame-ui-ng-components-switch.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-table.mjs +76 -50
- package/fesm2022/frame-ui-ng-components-table.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-tabs.mjs +4 -0
- package/fesm2022/frame-ui-ng-components-tabs.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-textarea.mjs +1 -0
- package/fesm2022/frame-ui-ng-components-textarea.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-toast.mjs +2 -0
- package/fesm2022/frame-ui-ng-components-toast.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-toggle.mjs +23 -16
- package/fesm2022/frame-ui-ng-components-toggle.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-tooltip.mjs +30 -25
- package/fesm2022/frame-ui-ng-components-tooltip.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-utils.mjs +5 -1
- package/fesm2022/frame-ui-ng-components-utils.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components-virtual-scroll.mjs +26 -8
- package/fesm2022/frame-ui-ng-components-virtual-scroll.mjs.map +1 -1
- package/fesm2022/frame-ui-ng-components.mjs +1449 -571
- package/fesm2022/frame-ui-ng-components.mjs.map +1 -1
- package/package.json +10 -2
- package/popover/src/styles/popover.css +106 -101
- package/select/src/styles/select-content.css +27 -19
- package/src/styles/components.css +6 -4
- package/styles/components.css +6 -4
- package/styles.css +6 -4
- package/types/frame-ui-ng-components-accordion.d.ts +11 -4
- package/types/frame-ui-ng-components-alert.d.ts +4 -0
- package/types/frame-ui-ng-components-avatar.d.ts +7 -0
- package/types/frame-ui-ng-components-badge.d.ts +4 -0
- package/types/frame-ui-ng-components-breadcrumb.d.ts +7 -0
- package/types/frame-ui-ng-components-button-group.d.ts +1 -0
- package/types/frame-ui-ng-components-button.d.ts +5 -0
- package/types/frame-ui-ng-components-calendar.d.ts +2 -0
- package/types/frame-ui-ng-components-card.d.ts +8 -3
- package/types/frame-ui-ng-components-carousel.d.ts +11 -2
- package/types/frame-ui-ng-components-checkbox.d.ts +3 -2
- package/types/frame-ui-ng-components-collapsible.d.ts +9 -4
- package/types/frame-ui-ng-components-combobox.d.ts +32 -3
- package/types/frame-ui-ng-components-command.d.ts +26 -4
- package/types/frame-ui-ng-components-confirm-modal.d.ts +2 -0
- package/types/frame-ui-ng-components-confirm-popover.d.ts +87 -0
- package/types/frame-ui-ng-components-context-menu.d.ts +29 -10
- package/types/frame-ui-ng-components-date-picker.d.ts +1 -0
- package/types/frame-ui-ng-components-drag-drop.d.ts +103 -0
- package/types/frame-ui-ng-components-dropdown-menu.d.ts +32 -9
- package/types/frame-ui-ng-components-empty.d.ts +6 -0
- package/types/frame-ui-ng-components-field.d.ts +9 -0
- package/types/frame-ui-ng-components-forms.d.ts +1 -0
- package/types/frame-ui-ng-components-hover-card.d.ts +8 -2
- package/types/frame-ui-ng-components-input-otp.d.ts +4 -0
- package/types/frame-ui-ng-components-input.d.ts +13 -0
- package/types/frame-ui-ng-components-item.d.ts +10 -0
- package/types/frame-ui-ng-components-menubar.d.ts +15 -0
- package/types/frame-ui-ng-components-modal.d.ts +27 -4
- package/types/frame-ui-ng-components-navigation-menu.d.ts +14 -0
- package/types/frame-ui-ng-components-pagination.d.ts +8 -0
- package/types/frame-ui-ng-components-popover.d.ts +14 -2
- package/types/frame-ui-ng-components-progress.d.ts +2 -0
- package/types/frame-ui-ng-components-radio-group.d.ts +5 -0
- package/types/frame-ui-ng-components-resizable.d.ts +3 -0
- package/types/frame-ui-ng-components-select.d.ts +23 -2
- package/types/frame-ui-ng-components-separator.d.ts +1 -0
- package/types/frame-ui-ng-components-sheet.d.ts +11 -0
- package/types/frame-ui-ng-components-sidebar.d.ts +21 -0
- package/types/frame-ui-ng-components-skeleton.d.ts +1 -0
- package/types/frame-ui-ng-components-slider.d.ts +5 -2
- package/types/frame-ui-ng-components-spinner.d.ts +1 -0
- package/types/frame-ui-ng-components-switch.d.ts +6 -0
- package/types/frame-ui-ng-components-table.d.ts +26 -0
- package/types/frame-ui-ng-components-tabs.d.ts +4 -0
- package/types/frame-ui-ng-components-textarea.d.ts +1 -0
- package/types/frame-ui-ng-components-toast.d.ts +2 -0
- package/types/frame-ui-ng-components-toggle.d.ts +8 -2
- package/types/frame-ui-ng-components-tooltip.d.ts +6 -2
- package/types/frame-ui-ng-components-utils.d.ts +3 -1
- package/types/frame-ui-ng-components-virtual-scroll.d.ts +11 -2
- package/types/frame-ui-ng-components.d.ts +507 -80
|
@@ -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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"}
|