@radix-ng/primitives 0.24.0 → 0.26.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/avatar/src/avatar-fallback.directive.d.ts +1 -1
- package/compodoc/documentation.json +14105 -11035
- package/core/index.d.ts +3 -2
- package/core/src/positioning/constants.d.ts +3 -0
- package/core/src/positioning/types.d.ts +42 -0
- package/{popover/src/popover.utils.d.ts → core/src/positioning/utils.d.ts} +4 -4
- package/dialog/src/dialog-trigger.directive.d.ts +12 -0
- package/fesm2022/radix-ng-primitives-accordion.mjs +19 -19
- package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-alert-dialog.mjs +22 -22
- package/fesm2022/radix-ng-primitives-alert-dialog.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-aspect-ratio.mjs +3 -3
- package/fesm2022/radix-ng-primitives-aspect-ratio.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-avatar.mjs +17 -17
- package/fesm2022/radix-ng-primitives-avatar.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-checkbox.mjs +16 -16
- package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-collapsible.mjs +9 -9
- package/fesm2022/radix-ng-primitives-collapsible.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-context-menu.mjs +34 -34
- package/fesm2022/radix-ng-primitives-context-menu.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-core.mjs +224 -236
- package/fesm2022/radix-ng-primitives-core.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-dialog.mjs +31 -26
- package/fesm2022/radix-ng-primitives-dialog.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-dropdown-menu.mjs +34 -34
- package/fesm2022/radix-ng-primitives-dropdown-menu.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-label.mjs +3 -3
- package/fesm2022/radix-ng-primitives-label.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-menu.mjs +22 -22
- package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-menubar.mjs +31 -31
- package/fesm2022/radix-ng-primitives-menubar.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-popover.mjs +75 -277
- package/fesm2022/radix-ng-primitives-popover.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-progress.mjs +10 -10
- package/fesm2022/radix-ng-primitives-progress.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-radio.mjs +12 -12
- package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-roving-focus.mjs +6 -6
- package/fesm2022/radix-ng-primitives-roving-focus.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-select.mjs +34 -35
- package/fesm2022/radix-ng-primitives-select.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-separator.mjs +3 -3
- package/fesm2022/radix-ng-primitives-separator.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-slider.mjs +31 -34
- package/fesm2022/radix-ng-primitives-slider.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-switch.mjs +18 -15
- package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-tabs.mjs +16 -16
- package/fesm2022/radix-ng-primitives-tabs.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-toggle-group.mjs +9 -9
- package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-toggle.mjs +6 -6
- package/fesm2022/radix-ng-primitives-toggle.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-tooltip.mjs +1023 -511
- package/fesm2022/radix-ng-primitives-tooltip.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-visually-hidden.mjs +9 -9
- package/fesm2022/radix-ng-primitives-visually-hidden.mjs.map +1 -1
- package/package.json +3 -57
- package/popover/index.d.ts +0 -1
- package/popover/src/popover-arrow.directive.d.ts +6 -6
- package/popover/src/popover-content.directive.d.ts +9 -8
- package/popover/src/popover-root.directive.d.ts +9 -8
- package/popover/src/popover.types.d.ts +0 -31
- package/popover/src/utils/cdk-event.service.d.ts +1 -0
- package/switch/src/switch-root.directive.d.ts +4 -1
- package/tooltip/README.md +2 -0
- package/tooltip/index.d.ts +9 -6
- package/tooltip/src/tooltip-anchor.directive.d.ts +28 -0
- package/tooltip/src/tooltip-anchor.token.d.ts +3 -0
- package/tooltip/src/tooltip-arrow.directive.d.ts +23 -8
- package/tooltip/src/tooltip-close.directive.d.ts +18 -0
- package/tooltip/src/tooltip-close.token.d.ts +3 -0
- package/tooltip/src/tooltip-content-attributes.component.d.ts +17 -0
- package/tooltip/src/tooltip-content-attributes.token.d.ts +3 -0
- package/tooltip/src/tooltip-content.directive.d.ts +88 -20
- package/tooltip/src/tooltip-root.directive.d.ts +122 -57
- package/tooltip/src/tooltip-root.inject.d.ts +3 -0
- package/tooltip/src/tooltip-trigger.directive.d.ts +11 -11
- package/tooltip/src/tooltip.types.d.ts +16 -16
- package/tooltip/src/utils/cdk-event.service.d.ts +30 -0
- package/tooltip/src/utils/constants.d.ts +1 -0
- package/tooltip/src/utils/types.d.ts +7 -0
- package/core/src/control-value-accessor/index.d.ts +0 -75
- package/core/src/create-inject-context/assert-injector.d.ts +0 -51
- package/core/src/create-inject-context/index.d.ts +0 -68
- package/core/src/types.d.ts +0 -23
- package/esm2022/accordion/index.mjs +0 -40
- package/esm2022/accordion/radix-ng-primitives-accordion.mjs +0 -5
- package/esm2022/accordion/src/accordion-content.directive.mjs +0 -42
- package/esm2022/accordion/src/accordion-header.directive.mjs +0 -23
- package/esm2022/accordion/src/accordion-item.directive.mjs +0 -196
- package/esm2022/accordion/src/accordion-root.directive.mjs +0 -200
- package/esm2022/accordion/src/accordion-trigger.directive.mjs +0 -42
- package/esm2022/alert-dialog/index.mjs +0 -41
- package/esm2022/alert-dialog/radix-ng-primitives-alert-dialog.mjs +0 -5
- package/esm2022/alert-dialog/src/alert-dialog-cancel.directive.mjs +0 -24
- package/esm2022/alert-dialog/src/alert-dialog-content.directive.mjs +0 -34
- package/esm2022/alert-dialog/src/alert-dialog-root.directive.mjs +0 -24
- package/esm2022/alert-dialog/src/alert-dialog-title.directive.mjs +0 -14
- package/esm2022/alert-dialog/src/alert-dialog-trigger.directive.mjs +0 -24
- package/esm2022/alert-dialog/src/alert-dialog.service.mjs +0 -46
- package/esm2022/aspect-ratio/index.mjs +0 -2
- package/esm2022/aspect-ratio/radix-ng-primitives-aspect-ratio.mjs +0 -5
- package/esm2022/aspect-ratio/src/aspect-ratio.directive.mjs +0 -57
- package/esm2022/avatar/index.mjs +0 -31
- package/esm2022/avatar/radix-ng-primitives-avatar.mjs +0 -5
- package/esm2022/avatar/src/avatar-fallback.directive.mjs +0 -67
- package/esm2022/avatar/src/avatar-image.directive.mjs +0 -65
- package/esm2022/avatar/src/avatar-root.directive.mjs +0 -26
- package/esm2022/avatar/src/avatar.config.mjs +0 -17
- package/esm2022/checkbox/index.mjs +0 -36
- package/esm2022/checkbox/radix-ng-primitives-checkbox.mjs +0 -5
- package/esm2022/checkbox/src/checkbox-button.directive.mjs +0 -33
- package/esm2022/checkbox/src/checkbox-indicator.directive.mjs +0 -24
- package/esm2022/checkbox/src/checkbox-input.directive.mjs +0 -44
- package/esm2022/checkbox/src/checkbox.directive.mjs +0 -141
- package/esm2022/checkbox/src/checkbox.token.mjs +0 -6
- package/esm2022/collapsible/index.mjs +0 -4
- package/esm2022/collapsible/radix-ng-primitives-collapsible.mjs +0 -5
- package/esm2022/collapsible/src/collapsible-content.directive.mjs +0 -42
- package/esm2022/collapsible/src/collapsible-content.token.mjs +0 -3
- package/esm2022/collapsible/src/collapsible-root.directive.mjs +0 -127
- package/esm2022/collapsible/src/collapsible-trigger.directive.mjs +0 -49
- package/esm2022/context-menu/index.mjs +0 -65
- package/esm2022/context-menu/radix-ng-primitives-context-menu.mjs +0 -5
- package/esm2022/context-menu/src/context-menu-content.directive.mjs +0 -56
- package/esm2022/context-menu/src/context-menu-item-checkbox.directive.mjs +0 -39
- package/esm2022/context-menu/src/context-menu-item-indicator.directive.mjs +0 -22
- package/esm2022/context-menu/src/context-menu-item-radio-group.directive.mjs +0 -37
- package/esm2022/context-menu/src/context-menu-item-radio.directive.mjs +0 -67
- package/esm2022/context-menu/src/context-menu-item-selectable.mjs +0 -31
- package/esm2022/context-menu/src/context-menu-item.directive.mjs +0 -70
- package/esm2022/context-menu/src/context-menu-label.directive.mjs +0 -14
- package/esm2022/context-menu/src/context-menu-separator.directive.mjs +0 -21
- package/esm2022/context-menu/src/context-menu-trigger.directive.mjs +0 -92
- package/esm2022/core/index.mjs +0 -11
- package/esm2022/core/radix-ng-primitives-core.mjs +0 -5
- package/esm2022/core/src/accessor/provide-value-accessor.mjs +0 -19
- package/esm2022/core/src/auto-focus.directive.mjs +0 -80
- package/esm2022/core/src/control-value-accessor/index.mjs +0 -103
- package/esm2022/core/src/create-inject-context/assert-injector.mjs +0 -15
- package/esm2022/core/src/create-inject-context/index.mjs +0 -116
- package/esm2022/core/src/document.mjs +0 -6
- package/esm2022/core/src/id-generator.mjs +0 -43
- package/esm2022/core/src/inject-ng-control.mjs +0 -17
- package/esm2022/core/src/is-client.mjs +0 -6
- package/esm2022/core/src/is-inside-form.mjs +0 -7
- package/esm2022/core/src/types.mjs +0 -2
- package/esm2022/core/src/window.mjs +0 -15
- package/esm2022/dialog/index.mjs +0 -50
- package/esm2022/dialog/radix-ng-primitives-dialog.mjs +0 -5
- package/esm2022/dialog/src/dialog-close.directive.mjs +0 -25
- package/esm2022/dialog/src/dialog-content.directive.mjs +0 -46
- package/esm2022/dialog/src/dialog-description.directive.mjs +0 -14
- package/esm2022/dialog/src/dialog-dismiss.directive.mjs +0 -25
- package/esm2022/dialog/src/dialog-ref.mjs +0 -46
- package/esm2022/dialog/src/dialog-title.directive.mjs +0 -14
- package/esm2022/dialog/src/dialog-trigger.directive.mjs +0 -54
- package/esm2022/dialog/src/dialog.config.mjs +0 -6
- package/esm2022/dialog/src/dialog.injectors.mjs +0 -10
- package/esm2022/dialog/src/dialog.providers.mjs +0 -26
- package/esm2022/dialog/src/dialog.service.mjs +0 -96
- package/esm2022/dropdown-menu/index.mjs +0 -68
- package/esm2022/dropdown-menu/radix-ng-primitives-dropdown-menu.mjs +0 -5
- package/esm2022/dropdown-menu/src/dropdown-menu-content.directive.mjs +0 -56
- package/esm2022/dropdown-menu/src/dropdown-menu-item-checkbox.directive.mjs +0 -39
- package/esm2022/dropdown-menu/src/dropdown-menu-item-indicator.directive.mjs +0 -22
- package/esm2022/dropdown-menu/src/dropdown-menu-item-radio-group.directive.mjs +0 -37
- package/esm2022/dropdown-menu/src/dropdown-menu-item-radio.directive.mjs +0 -67
- package/esm2022/dropdown-menu/src/dropdown-menu-item-selectable.mjs +0 -31
- package/esm2022/dropdown-menu/src/dropdown-menu-item.directive.mjs +0 -73
- package/esm2022/dropdown-menu/src/dropdown-menu-label.directive.mjs +0 -14
- package/esm2022/dropdown-menu/src/dropdown-menu-separator.directive.mjs +0 -21
- package/esm2022/dropdown-menu/src/dropdown-menu-trigger.directive.mjs +0 -210
- package/esm2022/index.mjs +0 -2
- package/esm2022/label/index.mjs +0 -2
- package/esm2022/label/radix-ng-primitives-label.mjs +0 -5
- package/esm2022/label/src/label.directive.mjs +0 -57
- package/esm2022/menu/index.mjs +0 -45
- package/esm2022/menu/radix-ng-primitives-menu.mjs +0 -5
- package/esm2022/menu/src/menu-content.directive.mjs +0 -17
- package/esm2022/menu/src/menu-directive.mjs +0 -18
- package/esm2022/menu/src/menu-group.directive.mjs +0 -20
- package/esm2022/menu/src/menu-item.directive.mjs +0 -46
- package/esm2022/menu/src/menu-label.directive.mjs +0 -14
- package/esm2022/menu/src/menu-separator.directive.mjs +0 -21
- package/esm2022/menubar/index.mjs +0 -60
- package/esm2022/menubar/radix-ng-primitives-menubar.mjs +0 -5
- package/esm2022/menubar/src/menubar-content.directive.mjs +0 -17
- package/esm2022/menubar/src/menubar-item-checkbox.directive.mjs +0 -34
- package/esm2022/menubar/src/menubar-item-indicator.directive.mjs +0 -17
- package/esm2022/menubar/src/menubar-item-radio.directive.mjs +0 -35
- package/esm2022/menubar/src/menubar-item.directive.mjs +0 -20
- package/esm2022/menubar/src/menubar-radio-group.directive.mjs +0 -17
- package/esm2022/menubar/src/menubar-root.directive.mjs +0 -24
- package/esm2022/menubar/src/menubar-separator.directive.mjs +0 -17
- package/esm2022/menubar/src/menubar-trigger.directive.mjs +0 -45
- package/esm2022/popover/index.mjs +0 -51
- package/esm2022/popover/radix-ng-primitives-popover.mjs +0 -5
- package/esm2022/popover/src/popover-anchor.directive.mjs +0 -75
- package/esm2022/popover/src/popover-anchor.token.mjs +0 -3
- package/esm2022/popover/src/popover-arrow.directive.mjs +0 -117
- package/esm2022/popover/src/popover-arrow.token.mjs +0 -3
- package/esm2022/popover/src/popover-close.directive.mjs +0 -49
- package/esm2022/popover/src/popover-close.token.mjs +0 -3
- package/esm2022/popover/src/popover-content-attributes.component.mjs +0 -70
- package/esm2022/popover/src/popover-content-attributes.token.mjs +0 -3
- package/esm2022/popover/src/popover-content.directive.mjs +0 -270
- package/esm2022/popover/src/popover-root.directive.mjs +0 -320
- package/esm2022/popover/src/popover-root.inject.mjs +0 -7
- package/esm2022/popover/src/popover-trigger.directive.mjs +0 -41
- package/esm2022/popover/src/popover.constants.mjs +0 -90
- package/esm2022/popover/src/popover.types.mjs +0 -31
- package/esm2022/popover/src/popover.utils.mjs +0 -107
- package/esm2022/popover/src/utils/cdk-event.service.mjs +0 -153
- package/esm2022/popover/src/utils/constants.mjs +0 -2
- package/esm2022/popover/src/utils/types.mjs +0 -2
- package/esm2022/progress/index.mjs +0 -25
- package/esm2022/progress/radix-ng-primitives-progress.mjs +0 -5
- package/esm2022/progress/src/progress-indicator.directive.mjs +0 -33
- package/esm2022/progress/src/progress-root.directive.mjs +0 -132
- package/esm2022/radio/index.mjs +0 -5
- package/esm2022/radio/radix-ng-primitives-radio.mjs +0 -5
- package/esm2022/radio/src/radio-indicator.directive.mjs +0 -25
- package/esm2022/radio/src/radio-item-input.directive.mjs +0 -37
- package/esm2022/radio/src/radio-item.directive.mjs +0 -86
- package/esm2022/radio/src/radio-root.directive.mjs +0 -104
- package/esm2022/radio/src/radio-tokens.mjs +0 -3
- package/esm2022/radix-ng-primitives.mjs +0 -5
- package/esm2022/roving-focus/index.mjs +0 -3
- package/esm2022/roving-focus/radix-ng-primitives-roving-focus.mjs +0 -5
- package/esm2022/roving-focus/src/roving-focus-group.directive.mjs +0 -138
- package/esm2022/roving-focus/src/roving-focus-item.directive.mjs +0 -133
- package/esm2022/roving-focus/src/utils.mjs +0 -47
- package/esm2022/select/index.mjs +0 -65
- package/esm2022/select/radix-ng-primitives-select.mjs +0 -5
- package/esm2022/select/src/select-content.directive.mjs +0 -53
- package/esm2022/select/src/select-group.directive.mjs +0 -18
- package/esm2022/select/src/select-icon.directive.mjs +0 -18
- package/esm2022/select/src/select-item-indicator.directive.mjs +0 -23
- package/esm2022/select/src/select-item.directive.mjs +0 -122
- package/esm2022/select/src/select-label.directive.mjs +0 -15
- package/esm2022/select/src/select-separator.directive.mjs +0 -18
- package/esm2022/select/src/select-trigger.directive.mjs +0 -38
- package/esm2022/select/src/select-value.directive.mjs +0 -21
- package/esm2022/select/src/select.component.mjs +0 -234
- package/esm2022/separator/index.mjs +0 -2
- package/esm2022/separator/radix-ng-primitives-separator.mjs +0 -5
- package/esm2022/separator/src/separator.directive.mjs +0 -61
- package/esm2022/slider/index.mjs +0 -28
- package/esm2022/slider/radix-ng-primitives-slider.mjs +0 -5
- package/esm2022/slider/src/slider-horizontal.component.mjs +0 -117
- package/esm2022/slider/src/slider-impl.directive.mjs +0 -89
- package/esm2022/slider/src/slider-orientation-context.service.mjs +0 -27
- package/esm2022/slider/src/slider-range.component.mjs +0 -41
- package/esm2022/slider/src/slider-root.component.mjs +0 -210
- package/esm2022/slider/src/slider-thumb-impl.directive.mjs +0 -106
- package/esm2022/slider/src/slider-thumb.component.mjs +0 -22
- package/esm2022/slider/src/slider-track.component.mjs +0 -27
- package/esm2022/slider/src/slider-vertical.component.mjs +0 -117
- package/esm2022/slider/src/utils.mjs +0 -94
- package/esm2022/switch/index.mjs +0 -30
- package/esm2022/switch/radix-ng-primitives-switch.mjs +0 -5
- package/esm2022/switch/src/switch-input.directive.mjs +0 -44
- package/esm2022/switch/src/switch-root.directive.mjs +0 -145
- package/esm2022/switch/src/switch-thumb.directive.mjs +0 -26
- package/esm2022/tabs/index.mjs +0 -35
- package/esm2022/tabs/radix-ng-primitives-tabs.mjs +0 -5
- package/esm2022/tabs/src/tabs-content.directive.mjs +0 -35
- package/esm2022/tabs/src/tabs-list.directive.mjs +0 -26
- package/esm2022/tabs/src/tabs-root.directive.mjs +0 -57
- package/esm2022/tabs/src/tabs-trigger.directive.mjs +0 -78
- package/esm2022/tabs/src/utils.mjs +0 -7
- package/esm2022/toggle/index.mjs +0 -3
- package/esm2022/toggle/radix-ng-primitives-toggle.mjs +0 -5
- package/esm2022/toggle/src/toggle-visually-hidden-input.directive.mjs +0 -31
- package/esm2022/toggle/src/toggle.directive.mjs +0 -79
- package/esm2022/toggle-group/index.mjs +0 -6
- package/esm2022/toggle-group/radix-ng-primitives-toggle-group.mjs +0 -5
- package/esm2022/toggle-group/src/toggle-group-item.directive.mjs +0 -85
- package/esm2022/toggle-group/src/toggle-group-item.token.mjs +0 -3
- package/esm2022/toggle-group/src/toggle-group-multiple.directive.mjs +0 -185
- package/esm2022/toggle-group/src/toggle-group.directive.mjs +0 -179
- package/esm2022/toggle-group/src/toggle-group.token.mjs +0 -6
- package/esm2022/tooltip/index.mjs +0 -41
- package/esm2022/tooltip/radix-ng-primitives-tooltip.mjs +0 -5
- package/esm2022/tooltip/src/get-content-position.mjs +0 -31
- package/esm2022/tooltip/src/tooltip-arrow.directive.mjs +0 -92
- package/esm2022/tooltip/src/tooltip-arrow.token.mjs +0 -3
- package/esm2022/tooltip/src/tooltip-content-attributes.directive.mjs +0 -24
- package/esm2022/tooltip/src/tooltip-content.directive.mjs +0 -48
- package/esm2022/tooltip/src/tooltip-content.token.mjs +0 -3
- package/esm2022/tooltip/src/tooltip-root.directive.mjs +0 -288
- package/esm2022/tooltip/src/tooltip-trigger.directive.mjs +0 -70
- package/esm2022/tooltip/src/tooltip.config.mjs +0 -18
- package/esm2022/tooltip/src/tooltip.constants.mjs +0 -84
- package/esm2022/tooltip/src/tooltip.types.mjs +0 -14
- package/esm2022/visually-hidden/index.mjs +0 -4
- package/esm2022/visually-hidden/radix-ng-primitives-visually-hidden.mjs +0 -5
- package/esm2022/visually-hidden/src/visually-hidden-input-bubble.directive.mjs +0 -74
- package/esm2022/visually-hidden/src/visually-hidden-input.directive.mjs +0 -74
- package/esm2022/visually-hidden/src/visually-hidden.directive.mjs +0 -42
- package/popover/src/popover.constants.d.ts +0 -8
- package/tooltip/src/get-content-position.d.ts +0 -3
- package/tooltip/src/tooltip-content-attributes.directive.d.ts +0 -8
- package/tooltip/src/tooltip-content.token.d.ts +0 -3
- package/tooltip/src/tooltip.config.d.ts +0 -6
- package/tooltip/src/tooltip.constants.d.ts +0 -9
@@ -1,7 +1,6 @@
|
|
1
|
-
import { NG_VALUE_ACCESSOR,
|
1
|
+
import { NG_VALUE_ACCESSOR, NgControl, FormControlDirective, FormControlName, NgModel } from '@angular/forms';
|
2
2
|
import * as i0 from '@angular/core';
|
3
|
-
import { inject, ElementRef, NgZone, booleanAttribute, Directive, Input,
|
4
|
-
import { toObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
3
|
+
import { inject, ElementRef, NgZone, booleanAttribute, Directive, Input, APP_ID, Injectable, InjectionToken } from '@angular/core';
|
5
4
|
import { DOCUMENT } from '@angular/common';
|
6
5
|
import { Platform } from '@angular/cdk/platform';
|
7
6
|
|
@@ -57,10 +56,10 @@ class RdxAutoFocusDirective {
|
|
57
56
|
set autoSelect(value) {
|
58
57
|
this._autoSelect = value;
|
59
58
|
}
|
60
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
61
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "
|
59
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: RdxAutoFocusDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
60
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.0.5", type: RdxAutoFocusDirective, isStandalone: true, selector: "[rdxAutoFocus]", inputs: { autoFocus: ["rdxAutoFocus", "autoFocus", booleanAttribute], autoSelect: ["autoSelect", "autoSelect", booleanAttribute] }, ngImport: i0 }); }
|
62
61
|
}
|
63
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
62
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: RdxAutoFocusDirective, decorators: [{
|
64
63
|
type: Directive,
|
65
64
|
args: [{
|
66
65
|
selector: '[rdxAutoFocus]',
|
@@ -101,232 +100,6 @@ function getRequestAnimationFrame() {
|
|
101
100
|
// Get the requestAnimationFrame function or its polyfill.
|
102
101
|
const reqAnimationFrame = getRequestAnimationFrame();
|
103
102
|
|
104
|
-
/**
|
105
|
-
* This code is adapted from the original implementation by the ngxTension team.
|
106
|
-
* Source: https://github.com/ngxtension/ngxtension-platform/blob/main/libs/ngxtension/assert-injector/src/assert-injector.ts
|
107
|
-
*
|
108
|
-
* Copyright (c) ngxtension Authors. Licensed under the MIT License.
|
109
|
-
*/
|
110
|
-
function assertInjector(fn, injector, runner) {
|
111
|
-
!injector && assertInInjectionContext(fn);
|
112
|
-
const assertedInjector = injector ?? inject(Injector);
|
113
|
-
if (!runner)
|
114
|
-
return assertedInjector;
|
115
|
-
return runInInjectionContext(assertedInjector, runner);
|
116
|
-
}
|
117
|
-
|
118
|
-
/**
|
119
|
-
*
|
120
|
-
* Copyright (c) ngxtension Authors. Licensed under the MIT License.
|
121
|
-
*/
|
122
|
-
function createInjectFn(token) {
|
123
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
|
124
|
-
return function ({ injector, ...injectOptions } = {}) {
|
125
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
126
|
-
// @ts-expect-error
|
127
|
-
injector = assertInjector(this, injector);
|
128
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
129
|
-
// @ts-expect-error
|
130
|
-
return runInInjectionContext(injector, () => inject(token, injectOptions));
|
131
|
-
};
|
132
|
-
}
|
133
|
-
function createProvideFn(token, factory, opts = {}) {
|
134
|
-
const { deps = [], multi = false, extraProviders = [], isFunctionValue: isFunctionValueFromOpts = false } = opts;
|
135
|
-
return (value, isFunctionValue = isFunctionValueFromOpts) => {
|
136
|
-
let provider;
|
137
|
-
if (typeof value !== 'undefined') {
|
138
|
-
// TODO: (chau) maybe this can be made better
|
139
|
-
const factory = typeof value === 'function' ? (isFunctionValue ? () => value : value) : () => value;
|
140
|
-
provider = {
|
141
|
-
provide: token,
|
142
|
-
useFactory: factory,
|
143
|
-
multi
|
144
|
-
};
|
145
|
-
}
|
146
|
-
else {
|
147
|
-
provider = {
|
148
|
-
provide: token,
|
149
|
-
useFactory: factory,
|
150
|
-
deps: deps,
|
151
|
-
multi
|
152
|
-
};
|
153
|
-
}
|
154
|
-
return [extraProviders, provider];
|
155
|
-
};
|
156
|
-
}
|
157
|
-
/**
|
158
|
-
* `createInjectionToken` accepts a factory function and returns a tuple of `injectFn`, `provideFn`, and the `InjectionToken`
|
159
|
-
* that the factory function is for.
|
160
|
-
*
|
161
|
-
* @param {Function} factory - Factory Function that returns the value for the `InjectionToken`
|
162
|
-
* @param {CreateInjectionTokenOptions} options - object to control how the `InjectionToken` behaves
|
163
|
-
* @returns {CreateInjectionTokenReturn}
|
164
|
-
*
|
165
|
-
* @example
|
166
|
-
* ```ts
|
167
|
-
* const [injectCounter, provideCounter, COUNTER] = createInjectionToken(() => signal(0));
|
168
|
-
*
|
169
|
-
* export class Counter {
|
170
|
-
* counter = injectCounter(); // WritableSignal<number>
|
171
|
-
* }
|
172
|
-
* ```
|
173
|
-
*/
|
174
|
-
function createInjectionToken(factory, options) {
|
175
|
-
const tokenName = factory.name || factory.toString();
|
176
|
-
const opts = options ?? { isRoot: true };
|
177
|
-
opts.isRoot ??= true;
|
178
|
-
// NOTE: multi tokens cannot be a root token. It has to be provided (provideFn needs to be invoked)
|
179
|
-
// for the 'multi' flag to work properly
|
180
|
-
if (opts.multi) {
|
181
|
-
opts.isRoot = false;
|
182
|
-
}
|
183
|
-
if (opts.isRoot) {
|
184
|
-
if (opts.token) {
|
185
|
-
throw new Error(`\
|
186
|
-
createInjectionToken is creating a root InjectionToken but an external token is passed in.
|
187
|
-
`);
|
188
|
-
}
|
189
|
-
const token = new InjectionToken(`Token for ${tokenName}`, {
|
190
|
-
factory: () => {
|
191
|
-
if (opts.deps && Array.isArray(opts.deps)) {
|
192
|
-
return factory(...opts.deps.map((dep) => {
|
193
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
194
|
-
// @ts-ignore
|
195
|
-
dep = (Array.isArray(dep) ? dep.at(-1) : dep);
|
196
|
-
return inject(dep);
|
197
|
-
}));
|
198
|
-
}
|
199
|
-
return factory();
|
200
|
-
}
|
201
|
-
});
|
202
|
-
const injectFn = createInjectFn(token);
|
203
|
-
return [
|
204
|
-
injectFn,
|
205
|
-
createProvideFn(token, factory, opts),
|
206
|
-
token,
|
207
|
-
() => ({
|
208
|
-
provide: ENVIRONMENT_INITIALIZER,
|
209
|
-
useValue: () => injectFn(),
|
210
|
-
multi: true
|
211
|
-
})
|
212
|
-
];
|
213
|
-
}
|
214
|
-
const token = opts.token || new InjectionToken(`Token for ${tokenName}`);
|
215
|
-
return [
|
216
|
-
createInjectFn(token),
|
217
|
-
createProvideFn(token, factory, opts),
|
218
|
-
token,
|
219
|
-
() => []
|
220
|
-
];
|
221
|
-
}
|
222
|
-
function createNoopInjectionToken(description, options) {
|
223
|
-
const token = options?.token || new InjectionToken(description);
|
224
|
-
return [
|
225
|
-
createInjectFn(token),
|
226
|
-
createProvideFn(token, () => null, (options || {})),
|
227
|
-
token,
|
228
|
-
() => []
|
229
|
-
];
|
230
|
-
}
|
231
|
-
|
232
|
-
const noop = () => undefined;
|
233
|
-
const [injectCvaCompareTo, provideCvaCompareTo] = createInjectionToken(() => Object.is);
|
234
|
-
/**
|
235
|
-
* Provides a {@link RdxControlValueAccessorCompareTo comparator} based on a property of `T`.
|
236
|
-
*
|
237
|
-
* @example
|
238
|
-
* ```ts
|
239
|
-
* interface User {
|
240
|
-
* id: string;
|
241
|
-
* name: string;
|
242
|
-
* }
|
243
|
-
*
|
244
|
-
* provideCvaCompareToByProp<User>('id');
|
245
|
-
* ```
|
246
|
-
*/
|
247
|
-
const provideCvaCompareToByProp = (prop) => provideCvaCompareTo((a, b) => Object.is(a?.[prop], b?.[prop]), true);
|
248
|
-
class RdxControlValueAccessor {
|
249
|
-
/**
|
250
|
-
* `NgModel` sets up the control in `ngOnChanges`. Idk if bug or on purpose, but `writeValue` and `setDisabledState` are called before the inputs are set.
|
251
|
-
* {@link https://github.com/angular/angular/blob/main/packages/forms/src/directives/ng_model.ts#L223}
|
252
|
-
*
|
253
|
-
* @ignore
|
254
|
-
*/
|
255
|
-
get registered() {
|
256
|
-
return this.ngControl instanceof NgModel
|
257
|
-
? this.ngControl._registered
|
258
|
-
: true;
|
259
|
-
}
|
260
|
-
constructor() {
|
261
|
-
this.ngControl = inject(NgControl, { self: true, optional: true });
|
262
|
-
this.destroyRef = inject(DestroyRef);
|
263
|
-
this.injector = inject(Injector);
|
264
|
-
/**
|
265
|
-
* A comparator, which determines value changes. Should return true, if two values are considered semantic equal.
|
266
|
-
*
|
267
|
-
* Defaults to {@link Object.is} in order to align with change detection behavior for inputs.
|
268
|
-
*/
|
269
|
-
this.compareTo = injectCvaCompareTo();
|
270
|
-
/** Whether this is disabled. If a control is present, it reflects it's disabled state. */
|
271
|
-
this.inputDisabled = model(this.ngControl?.disabled ?? false, { alias: 'disabled' });
|
272
|
-
this.disabled = computed(() => booleanAttribute(this.inputDisabled()));
|
273
|
-
/** The value of this. If a control is present, it reflects it's value. */
|
274
|
-
this.value = model(this.ngControl?.value ?? undefined);
|
275
|
-
this._onChange = noop;
|
276
|
-
this._onTouched = noop;
|
277
|
-
if (this.ngControl != null)
|
278
|
-
this.ngControl.valueAccessor = this;
|
279
|
-
toObservable(this.value, { injector: this.injector })
|
280
|
-
.pipe(takeUntilDestroyed(this.destroyRef))
|
281
|
-
.subscribe((value) => {
|
282
|
-
if (this.compareTo(this.ngControl?.value, value))
|
283
|
-
return;
|
284
|
-
this._onChange(value);
|
285
|
-
});
|
286
|
-
// sync disabled state
|
287
|
-
toObservable(this.inputDisabled, { injector: this.injector })
|
288
|
-
.pipe(takeUntilDestroyed(this.destroyRef))
|
289
|
-
.subscribe((disabled) => {
|
290
|
-
if (this.ngControl == null || this.ngControl.control == null || this.ngControl.disabled === disabled)
|
291
|
-
return;
|
292
|
-
this.ngControl.control[disabled ? 'disable' : 'enable']();
|
293
|
-
});
|
294
|
-
}
|
295
|
-
/**
|
296
|
-
* This function should be called when this host is considered `touched`.
|
297
|
-
*
|
298
|
-
* NOTE: Whenever a `blur` event is triggered on this host, this function is called.
|
299
|
-
*
|
300
|
-
* @see {@link RdxControlValueAccessor.registerOnTouched}
|
301
|
-
* @see {@link RdxControlValueAccessor._ngControl}
|
302
|
-
*/
|
303
|
-
markAsTouched() {
|
304
|
-
this._onTouched();
|
305
|
-
}
|
306
|
-
setDisabledState(disabled) {
|
307
|
-
if (!this.registered)
|
308
|
-
return;
|
309
|
-
this.inputDisabled.set(disabled);
|
310
|
-
}
|
311
|
-
writeValue(value) {
|
312
|
-
if (!this.registered || this.compareTo(value, this.value()))
|
313
|
-
return;
|
314
|
-
this.value.set(value);
|
315
|
-
}
|
316
|
-
registerOnChange(onChange) {
|
317
|
-
this._onChange = onChange;
|
318
|
-
}
|
319
|
-
registerOnTouched(onTouched) {
|
320
|
-
this._onTouched = onTouched;
|
321
|
-
}
|
322
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxControlValueAccessor, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
323
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.11", type: RdxControlValueAccessor, isStandalone: true, inputs: { inputDisabled: { classPropertyName: "inputDisabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { inputDisabled: "disabledChange", value: "valueChange" }, ngImport: i0 }); }
|
324
|
-
}
|
325
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxControlValueAccessor, decorators: [{
|
326
|
-
type: Directive,
|
327
|
-
args: [{ standalone: true }]
|
328
|
-
}], ctorParameters: () => [] });
|
329
|
-
|
330
103
|
function injectDocument() {
|
331
104
|
return inject(DOCUMENT);
|
332
105
|
}
|
@@ -364,10 +137,10 @@ class _IdGenerator {
|
|
364
137
|
}
|
365
138
|
return `${prefix}${counters[prefix]++}`;
|
366
139
|
}
|
367
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
368
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
140
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: _IdGenerator, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
141
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: _IdGenerator, providedIn: 'root' }); }
|
369
142
|
}
|
370
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
143
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: _IdGenerator, decorators: [{
|
371
144
|
type: Injectable,
|
372
145
|
args: [{ providedIn: 'root' }]
|
373
146
|
}] });
|
@@ -411,9 +184,224 @@ function injectWindow() {
|
|
411
184
|
return inject(WINDOW);
|
412
185
|
}
|
413
186
|
|
187
|
+
var RdxPositionSide;
|
188
|
+
(function (RdxPositionSide) {
|
189
|
+
RdxPositionSide["Top"] = "top";
|
190
|
+
RdxPositionSide["Right"] = "right";
|
191
|
+
RdxPositionSide["Bottom"] = "bottom";
|
192
|
+
RdxPositionSide["Left"] = "left";
|
193
|
+
})(RdxPositionSide || (RdxPositionSide = {}));
|
194
|
+
var RdxPositionAlign;
|
195
|
+
(function (RdxPositionAlign) {
|
196
|
+
RdxPositionAlign["Start"] = "start";
|
197
|
+
RdxPositionAlign["Center"] = "center";
|
198
|
+
RdxPositionAlign["End"] = "end";
|
199
|
+
})(RdxPositionAlign || (RdxPositionAlign = {}));
|
200
|
+
|
201
|
+
const RDX_POSITIONS = {
|
202
|
+
[RdxPositionSide.Top]: {
|
203
|
+
[RdxPositionAlign.Center]: {
|
204
|
+
originX: 'center',
|
205
|
+
originY: 'top',
|
206
|
+
overlayX: 'center',
|
207
|
+
overlayY: 'bottom'
|
208
|
+
},
|
209
|
+
[RdxPositionAlign.Start]: {
|
210
|
+
originX: 'start',
|
211
|
+
originY: 'top',
|
212
|
+
overlayX: 'start',
|
213
|
+
overlayY: 'bottom'
|
214
|
+
},
|
215
|
+
[RdxPositionAlign.End]: {
|
216
|
+
originX: 'end',
|
217
|
+
originY: 'top',
|
218
|
+
overlayX: 'end',
|
219
|
+
overlayY: 'bottom'
|
220
|
+
}
|
221
|
+
},
|
222
|
+
[RdxPositionSide.Right]: {
|
223
|
+
[RdxPositionAlign.Center]: {
|
224
|
+
originX: 'end',
|
225
|
+
originY: 'center',
|
226
|
+
overlayX: 'start',
|
227
|
+
overlayY: 'center'
|
228
|
+
},
|
229
|
+
[RdxPositionAlign.Start]: {
|
230
|
+
originX: 'end',
|
231
|
+
originY: 'top',
|
232
|
+
overlayX: 'start',
|
233
|
+
overlayY: 'top'
|
234
|
+
},
|
235
|
+
[RdxPositionAlign.End]: {
|
236
|
+
originX: 'end',
|
237
|
+
originY: 'bottom',
|
238
|
+
overlayX: 'start',
|
239
|
+
overlayY: 'bottom'
|
240
|
+
}
|
241
|
+
},
|
242
|
+
[RdxPositionSide.Bottom]: {
|
243
|
+
[RdxPositionAlign.Center]: {
|
244
|
+
originX: 'center',
|
245
|
+
originY: 'bottom',
|
246
|
+
overlayX: 'center',
|
247
|
+
overlayY: 'top'
|
248
|
+
},
|
249
|
+
[RdxPositionAlign.Start]: {
|
250
|
+
originX: 'start',
|
251
|
+
originY: 'bottom',
|
252
|
+
overlayX: 'start',
|
253
|
+
overlayY: 'top'
|
254
|
+
},
|
255
|
+
[RdxPositionAlign.End]: {
|
256
|
+
originX: 'end',
|
257
|
+
originY: 'bottom',
|
258
|
+
overlayX: 'end',
|
259
|
+
overlayY: 'top'
|
260
|
+
}
|
261
|
+
},
|
262
|
+
[RdxPositionSide.Left]: {
|
263
|
+
[RdxPositionAlign.Center]: {
|
264
|
+
originX: 'start',
|
265
|
+
originY: 'center',
|
266
|
+
overlayX: 'end',
|
267
|
+
overlayY: 'center'
|
268
|
+
},
|
269
|
+
[RdxPositionAlign.Start]: {
|
270
|
+
originX: 'start',
|
271
|
+
originY: 'top',
|
272
|
+
overlayX: 'end',
|
273
|
+
overlayY: 'top'
|
274
|
+
},
|
275
|
+
[RdxPositionAlign.End]: {
|
276
|
+
originX: 'start',
|
277
|
+
originY: 'bottom',
|
278
|
+
overlayX: 'end',
|
279
|
+
overlayY: 'bottom'
|
280
|
+
}
|
281
|
+
}
|
282
|
+
};
|
283
|
+
const RDX_POSITIONING_DEFAULTS = {
|
284
|
+
offsets: {
|
285
|
+
side: 10,
|
286
|
+
align: 0
|
287
|
+
},
|
288
|
+
arrow: {
|
289
|
+
width: 8,
|
290
|
+
height: 6
|
291
|
+
}
|
292
|
+
};
|
293
|
+
|
294
|
+
function getContentPosition(sideAndAlignWithOffsets) {
|
295
|
+
const { side, align, sideOffset, alignOffset } = sideAndAlignWithOffsets;
|
296
|
+
const position = {
|
297
|
+
...(RDX_POSITIONS[side]?.[align] ?? RDX_POSITIONS[RdxPositionSide.Top][RdxPositionAlign.Center])
|
298
|
+
};
|
299
|
+
if (sideOffset || alignOffset) {
|
300
|
+
if ([RdxPositionSide.Top, RdxPositionSide.Bottom].includes(side)) {
|
301
|
+
if (sideOffset) {
|
302
|
+
position.offsetY = side === RdxPositionSide.Top ? -sideOffset : sideOffset;
|
303
|
+
}
|
304
|
+
if (alignOffset) {
|
305
|
+
position.offsetX = alignOffset;
|
306
|
+
}
|
307
|
+
}
|
308
|
+
else {
|
309
|
+
if (sideOffset) {
|
310
|
+
position.offsetX = side === RdxPositionSide.Left ? -sideOffset : sideOffset;
|
311
|
+
}
|
312
|
+
if (alignOffset) {
|
313
|
+
position.offsetY = alignOffset;
|
314
|
+
}
|
315
|
+
}
|
316
|
+
}
|
317
|
+
return position;
|
318
|
+
}
|
319
|
+
let allPossibleConnectedPositions;
|
320
|
+
function getAllPossibleConnectedPositions() {
|
321
|
+
if (!allPossibleConnectedPositions) {
|
322
|
+
allPossibleConnectedPositions = new Map();
|
323
|
+
}
|
324
|
+
if (allPossibleConnectedPositions.size < 1) {
|
325
|
+
for (const [side, aligns] of Object.entries(RDX_POSITIONS)) {
|
326
|
+
for (const [align, position] of Object.entries(aligns)) {
|
327
|
+
allPossibleConnectedPositions.set(`${side}|${align}`, position);
|
328
|
+
}
|
329
|
+
}
|
330
|
+
}
|
331
|
+
return allPossibleConnectedPositions;
|
332
|
+
}
|
333
|
+
function getSideAndAlignFromAllPossibleConnectedPositions(position) {
|
334
|
+
const allPossibleConnectedPositions = getAllPossibleConnectedPositions();
|
335
|
+
let sideAndAlign;
|
336
|
+
allPossibleConnectedPositions.forEach((value, key) => {
|
337
|
+
if (position.originX === value.originX &&
|
338
|
+
position.originY === value.originY &&
|
339
|
+
position.overlayX === value.overlayX &&
|
340
|
+
position.overlayY === value.overlayY) {
|
341
|
+
const sideAndAlignArray = key.split('|');
|
342
|
+
sideAndAlign = {
|
343
|
+
side: sideAndAlignArray[0],
|
344
|
+
align: sideAndAlignArray[1]
|
345
|
+
};
|
346
|
+
}
|
347
|
+
});
|
348
|
+
if (!sideAndAlign) {
|
349
|
+
throw Error(`[Rdx positioning] cannot infer both side and align from the given position (${JSON.stringify(position)})`);
|
350
|
+
}
|
351
|
+
return sideAndAlign;
|
352
|
+
}
|
353
|
+
function getArrowPositionParams(sideAndAlign, arrowWidthAndHeight, triggerWidthAndHeight) {
|
354
|
+
const posParams = {
|
355
|
+
top: '',
|
356
|
+
left: '',
|
357
|
+
transform: '',
|
358
|
+
transformOrigin: 'center center 0px'
|
359
|
+
};
|
360
|
+
if ([RdxPositionSide.Top, RdxPositionSide.Bottom].includes(sideAndAlign.side)) {
|
361
|
+
if (sideAndAlign.side === RdxPositionSide.Top) {
|
362
|
+
posParams.top = '100%';
|
363
|
+
}
|
364
|
+
else {
|
365
|
+
posParams.top = `-${arrowWidthAndHeight.height}px`;
|
366
|
+
posParams.transform = `rotate(180deg)`;
|
367
|
+
}
|
368
|
+
if (sideAndAlign.align === RdxPositionAlign.Start) {
|
369
|
+
posParams.left = `${(triggerWidthAndHeight.width - arrowWidthAndHeight.width) / 2}px`;
|
370
|
+
}
|
371
|
+
else if (sideAndAlign.align === RdxPositionAlign.Center) {
|
372
|
+
posParams.left = `calc(50% - ${arrowWidthAndHeight.width / 2}px)`;
|
373
|
+
}
|
374
|
+
else if (sideAndAlign.align === RdxPositionAlign.End) {
|
375
|
+
posParams.left = `calc(100% - ${(triggerWidthAndHeight.width + arrowWidthAndHeight.width) / 2}px)`;
|
376
|
+
}
|
377
|
+
}
|
378
|
+
else if ([RdxPositionSide.Left, RdxPositionSide.Right].includes(sideAndAlign.side)) {
|
379
|
+
if (sideAndAlign.side === RdxPositionSide.Left) {
|
380
|
+
posParams.left = `calc(100% - ${arrowWidthAndHeight.width}px)`;
|
381
|
+
posParams.transform = `rotate(-90deg)`;
|
382
|
+
posParams.transformOrigin = 'top right 0px';
|
383
|
+
}
|
384
|
+
else {
|
385
|
+
posParams.left = `0`;
|
386
|
+
posParams.transform = `rotate(90deg)`;
|
387
|
+
posParams.transformOrigin = 'top left 0px';
|
388
|
+
}
|
389
|
+
if (sideAndAlign.align === RdxPositionAlign.Start) {
|
390
|
+
posParams.top = `${(triggerWidthAndHeight.height - arrowWidthAndHeight.width) / 2}px`;
|
391
|
+
}
|
392
|
+
else if (sideAndAlign.align === RdxPositionAlign.Center) {
|
393
|
+
posParams.top = `calc(50% - ${arrowWidthAndHeight.width / 2}px)`;
|
394
|
+
}
|
395
|
+
else if (sideAndAlign.align === RdxPositionAlign.End) {
|
396
|
+
posParams.top = `calc(100% - ${(triggerWidthAndHeight.height + arrowWidthAndHeight.width) / 2}px)`;
|
397
|
+
}
|
398
|
+
}
|
399
|
+
return posParams;
|
400
|
+
}
|
401
|
+
|
414
402
|
/**
|
415
403
|
* Generated bundle index. Do not edit.
|
416
404
|
*/
|
417
405
|
|
418
|
-
export { RdxAutoFocusDirective,
|
406
|
+
export { RDX_POSITIONING_DEFAULTS, RDX_POSITIONS, RdxAutoFocusDirective, RdxPositionAlign, RdxPositionSide, WINDOW, _IdGenerator, getAllPossibleConnectedPositions, getArrowPositionParams, getContentPosition, getSideAndAlignFromAllPossibleConnectedPositions, injectDocument, injectIsClient, injectNgControl, injectWindow, isInsideForm, provideValueAccessor };
|
419
407
|
//# sourceMappingURL=radix-ng-primitives-core.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"radix-ng-primitives-core.mjs","sources":["../../../packages/primitives/core/src/accessor/provide-value-accessor.ts","../../../packages/primitives/core/src/auto-focus.directive.ts","../../../packages/primitives/core/src/create-inject-context/assert-injector.ts","../../../packages/primitives/core/src/create-inject-context/index.ts","../../../packages/primitives/core/src/control-value-accessor/index.ts","../../../packages/primitives/core/src/document.ts","../../../packages/primitives/core/src/id-generator.ts","../../../packages/primitives/core/src/inject-ng-control.ts","../../../packages/primitives/core/src/is-client.ts","../../../packages/primitives/core/src/is-inside-form.ts","../../../packages/primitives/core/src/window.ts","../../../packages/primitives/core/radix-ng-primitives-core.ts"],"sourcesContent":["import { Provider, Type } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\n/**\n * Include in the providers section of a component which utilizes ControlValueAccessor to redundant code.\n *\n * ```ts\n * @Directive({\n * providers: [provideValueAccessor(ExampleDirective)]\n *}\n * export class ExampleDirective{}\n * ```\n */\nexport function provideValueAccessor(type: Type<never>): Provider {\n return {\n provide: NG_VALUE_ACCESSOR,\n useExisting: type,\n multi: true\n };\n}\n","import { booleanAttribute, Directive, ElementRef, inject, Input, NgZone } from '@angular/core';\n\n/*\n * <div [rdxAutoFocus]=\"true\"></div>\n */\n\n@Directive({\n selector: '[rdxAutoFocus]',\n standalone: true\n})\nexport class RdxAutoFocusDirective {\n #elementRef = inject(ElementRef);\n #ngZone = inject(NgZone);\n\n private _autoSelect = false;\n\n /**\n * @default false\n */\n @Input({ alias: 'rdxAutoFocus', transform: booleanAttribute })\n set autoFocus(value: boolean) {\n if (value) {\n // Note: Running this outside Angular's zone because `element.focus()` does not trigger change detection.\n this.#ngZone.runOutsideAngular(() =>\n // Note: `element.focus()` causes re-layout which might lead to frame drops on slower devices.\n // https://gist.github.com/paulirish/5d52fb081b3570c81e3a#setting-focus\n // `setTimeout` is a macrotask executed within the current rendering frame.\n // Animation tasks are executed in the next rendering frame.\n reqAnimationFrame(() => {\n this.#elementRef.nativeElement.focus();\n if (this._autoSelect && this.#elementRef.nativeElement.select) {\n this.#elementRef.nativeElement.select();\n }\n })\n );\n }\n }\n\n // Setter for autoSelect attribute to enable text selection when autoFocus is true.\n @Input({ transform: booleanAttribute })\n set autoSelect(value: boolean) {\n this._autoSelect = value;\n }\n}\n\nconst availablePrefixes = ['moz', 'ms', 'webkit'];\n\nfunction requestAnimationFramePolyfill(): typeof requestAnimationFrame {\n let lastTime = 0;\n\n return function (callback: FrameRequestCallback): number {\n const currTime = new Date().getTime();\n const timeToCall = Math.max(0, 16 - (currTime - lastTime));\n\n const id = setTimeout(() => {\n callback(currTime + timeToCall);\n }, timeToCall) as any;\n\n lastTime = currTime + timeToCall;\n\n return id;\n };\n}\n\n// Function to get the appropriate requestAnimationFrame method with fallback to polyfill.\nfunction getRequestAnimationFrame(): typeof requestAnimationFrame {\n if (typeof window === 'undefined') {\n return () => 0;\n }\n if (window.requestAnimationFrame) {\n // https://github.com/vuejs/vue/issues/4465\n return window.requestAnimationFrame.bind(window);\n }\n\n const prefix = availablePrefixes.filter((key) => `${key}RequestAnimationFrame` in window)[0];\n\n return prefix ? (window as any)[`${prefix}RequestAnimationFrame`] : requestAnimationFramePolyfill();\n}\n\n// Get the requestAnimationFrame function or its polyfill.\nconst reqAnimationFrame = getRequestAnimationFrame();\n","/**\n * This code is adapted from the original implementation by the ngxTension team.\n * Source: https://github.com/ngxtension/ngxtension-platform/blob/main/libs/ngxtension/assert-injector/src/assert-injector.ts\n *\n * Copyright (c) ngxtension Authors. Licensed under the MIT License.\n */\nimport { assertInInjectionContext, inject, Injector, runInInjectionContext } from '@angular/core';\nimport { Nullable, SafeFunction } from '../types';\n\n/**\n * `assertInjector` extends `assertInInjectionContext` with an optional `Injector`\n * After assertion, `assertInjector` runs the `runner` function with the guaranteed `Injector`\n * whether it is the default `Injector` within the current **Injection Context**\n * or the custom `Injector` that was passed in.\n *\n * @template {() => unknown} Runner - Runner is a function that can return anything\n * @param {SafeFunction} fn - the Function to pass in `assertInInjectionContext`\n * @param {Nullable<Injector>} injector - the optional \"custom\" Injector\n * @param {Runner} runner - the runner fn\n * @returns {ReturnType<Runner>} result - returns the result of the Runner\n *\n * @example\n * ```ts\n * function injectValue(injector?: Injector) {\n * return assertInjector(injectValue, injector, () => 'value');\n * }\n *\n * injectValue(); // string\n * ```\n */\nexport function assertInjector<Runner extends () => unknown>(\n fn: SafeFunction,\n injector: Nullable<Injector>,\n runner: Runner\n): ReturnType<Runner>;\n/**\n * `assertInjector` extends `assertInInjectionContext` with an optional `Injector`\n * After assertion, `assertInjector` returns a guaranteed `Injector` whether it is the default `Injector`\n * within the current **Injection Context** or the custom `Injector` that was passed in.\n *\n * @param {SafeFunction} fn - the Function to pass in `assertInInjectionContext`\n * @param {Nullable<Injector>} injector - the optional \"custom\" Injector\n * @returns Injector\n *\n * @example\n * ```ts\n * function injectDestroy(injector?: Injector) {\n * injector = assertInjector(injectDestroy, injector);\n *\n * return runInInjectionContext(injector, () => {\n * // code\n * })\n * }\n * ```\n */\nexport function assertInjector(fn: SafeFunction, injector: Nullable<Injector>): Injector;\nexport function assertInjector<Runner extends () => unknown>(\n fn: SafeFunction,\n injector: Nullable<Injector>,\n runner?: () => unknown\n): Injector | ReturnType<Runner> {\n !injector && assertInInjectionContext(fn);\n\n const assertedInjector = injector ?? inject(Injector);\n\n if (!runner) return assertedInjector;\n\n return runInInjectionContext(assertedInjector, runner) as ReturnType<Runner>;\n}\n","/**\n *\n * Copyright (c) ngxtension Authors. Licensed under the MIT License.\n */\nimport {\n ENVIRONMENT_INITIALIZER,\n InjectionToken,\n inject,\n runInInjectionContext,\n type EnvironmentProviders,\n type FactoryProvider,\n type Host,\n type InjectOptions,\n type Injector,\n type Optional,\n type Provider,\n type Self,\n type SkipSelf,\n type Type\n} from '@angular/core';\nimport { assertInjector } from './assert-injector';\n\ntype CreateInjectionTokenDep<TTokenType> =\n | Type<TTokenType>\n // NOTE: we don't have an AbstractType\n | (abstract new (...args: any[]) => TTokenType)\n | InjectionToken<TTokenType>;\n\ntype CreateInjectionTokenDeps<\n TFactory extends (...args: any[]) => any,\n TFactoryDeps extends Parameters<TFactory> = Parameters<TFactory>\n> = {\n [Index in keyof TFactoryDeps]:\n | CreateInjectionTokenDep<TFactoryDeps[Index]>\n | [...modifiers: Array<Optional | Self | SkipSelf | Host>, token: CreateInjectionTokenDep<TFactoryDeps[Index]>];\n} & { length: TFactoryDeps['length'] };\n\nexport type CreateInjectionTokenOptions<\n TFactory extends (...args: any[]) => any,\n TFactoryDeps extends Parameters<TFactory> = Parameters<TFactory>\n> =\n // this means TFunction has no parameters\n (TFactoryDeps[0] extends undefined\n ? { deps?: never }\n : { deps: CreateInjectionTokenDeps<TFactory, TFactoryDeps> }) & {\n isRoot?: boolean;\n isFunctionValue?: boolean;\n multi?: boolean;\n token?: InjectionToken<ReturnType<TFactory>>;\n extraProviders?: Provider | EnvironmentProviders;\n };\n\ntype CreateProvideFnOptions<\n TFactory extends (...args: any[]) => any,\n TFactoryDeps extends Parameters<TFactory> = Parameters<TFactory>\n> = Pick<CreateInjectionTokenOptions<TFactory, TFactoryDeps>, 'deps' | 'extraProviders' | 'multi' | 'isFunctionValue'>;\n\ntype InjectFn<TFactoryReturn> = {\n (): TFactoryReturn;\n (\n injectOptions: InjectOptions & { optional?: false } & {\n injector?: Injector;\n }\n ): TFactoryReturn;\n (injectOptions: InjectOptions & { injector?: Injector }): TFactoryReturn | null;\n};\n\ntype ProvideFn<\n TNoop extends boolean,\n TFactoryReturn,\n TReturn = TFactoryReturn extends Array<infer Item> ? Item : TFactoryReturn\n> = (TNoop extends true ? (value: TReturn | (() => TReturn)) => Provider : () => Provider) &\n // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\n (TReturn extends Function\n ? (value: TReturn | (() => TReturn), isFunctionValue: boolean) => Provider\n : (value: TReturn | (() => TReturn)) => Provider);\n\nexport type CreateInjectionTokenReturn<TFactoryReturn, TNoop extends boolean = false> = [\n InjectFn<TFactoryReturn>,\n ProvideFn<TNoop, TFactoryReturn>,\n InjectionToken<TFactoryReturn>,\n () => Provider\n];\n\nfunction createInjectFn<TValue>(token: InjectionToken<TValue>) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\n return function (this: Function, { injector, ...injectOptions }: InjectOptions & { injector?: Injector } = {}) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n injector = assertInjector(this, injector);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n return runInInjectionContext(injector, () => inject(token, injectOptions as InjectOptions));\n };\n}\n\nfunction createProvideFn<\n TValue,\n TFactory extends (...args: any[]) => any = (...args: any[]) => TValue,\n TFactoryDeps extends Parameters<TFactory> = Parameters<TFactory>\n>(\n token: InjectionToken<TValue>,\n factory: (...args: any[]) => TValue,\n opts: CreateProvideFnOptions<TFactory, TFactoryDeps> = {}\n) {\n const { deps = [], multi = false, extraProviders = [], isFunctionValue: isFunctionValueFromOpts = false } = opts;\n return (value?: TValue | (() => TValue), isFunctionValue = isFunctionValueFromOpts) => {\n let provider: Provider;\n if (typeof value !== 'undefined') {\n // TODO: (chau) maybe this can be made better\n const factory = typeof value === 'function' ? (isFunctionValue ? () => value : value) : () => value;\n\n provider = {\n provide: token,\n useFactory: factory,\n multi\n };\n } else {\n provider = {\n provide: token,\n useFactory: factory,\n deps: deps as FactoryProvider['deps'],\n multi\n };\n }\n\n return [extraProviders, provider];\n };\n}\n\n/**\n * `createInjectionToken` accepts a factory function and returns a tuple of `injectFn`, `provideFn`, and the `InjectionToken`\n * that the factory function is for.\n *\n * @param {Function} factory - Factory Function that returns the value for the `InjectionToken`\n * @param {CreateInjectionTokenOptions} options - object to control how the `InjectionToken` behaves\n * @returns {CreateInjectionTokenReturn}\n *\n * @example\n * ```ts\n * const [injectCounter, provideCounter, COUNTER] = createInjectionToken(() => signal(0));\n *\n * export class Counter {\n * counter = injectCounter(); // WritableSignal<number>\n * }\n * ```\n */\nexport function createInjectionToken<\n TFactory extends (...args: any[]) => any,\n TFactoryDeps extends Parameters<TFactory> = Parameters<TFactory>,\n TOptions extends CreateInjectionTokenOptions<TFactory, TFactoryDeps> = CreateInjectionTokenOptions<\n TFactory,\n TFactoryDeps\n >,\n TFactoryReturn = TOptions['multi'] extends true ? Array<ReturnType<TFactory>> : ReturnType<TFactory>\n>(factory: TFactory, options?: TOptions): CreateInjectionTokenReturn<TFactoryReturn> {\n const tokenName = factory.name || factory.toString();\n const opts = options ?? ({ isRoot: true } as CreateInjectionTokenOptions<TFactory, TFactoryDeps>);\n\n opts.isRoot ??= true;\n\n // NOTE: multi tokens cannot be a root token. It has to be provided (provideFn needs to be invoked)\n // for the 'multi' flag to work properly\n if (opts.multi) {\n opts.isRoot = false;\n }\n\n if (opts.isRoot) {\n if (opts.token) {\n throw new Error(`\\\ncreateInjectionToken is creating a root InjectionToken but an external token is passed in.\n`);\n }\n\n const token = new InjectionToken<TFactoryReturn>(`Token for ${tokenName}`, {\n factory: () => {\n if (opts.deps && Array.isArray(opts.deps)) {\n return factory(\n ...opts.deps.map((dep) => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n dep = (Array.isArray(dep) ? dep.at(-1) : dep) as CreateInjectionTokenDep<any>;\n return inject(dep);\n })\n );\n }\n return factory();\n }\n });\n\n const injectFn = createInjectFn(token) as CreateInjectionTokenReturn<TFactoryReturn>[0];\n\n return [\n injectFn,\n createProvideFn(\n token,\n factory,\n opts as CreateProvideFnOptions<TFactory, TFactoryDeps>\n ) as CreateInjectionTokenReturn<TFactoryReturn>[1],\n token,\n () => ({\n provide: ENVIRONMENT_INITIALIZER,\n useValue: () => injectFn(),\n multi: true\n })\n\n ];\n }\n\n const token = opts.token || new InjectionToken<TFactoryReturn>(`Token for ${tokenName}`);\n return [\n createInjectFn(token) as CreateInjectionTokenReturn<TFactoryReturn>[0],\n createProvideFn(\n token,\n factory,\n opts as CreateProvideFnOptions<TFactory, TFactoryDeps>\n ) as CreateInjectionTokenReturn<TFactoryReturn>[1],\n token,\n () => []\n ];\n}\n\nexport function createNoopInjectionToken<\n TValue,\n TMulti extends boolean = false,\n TOptions = Pick<CreateInjectionTokenOptions<() => void, []>, 'extraProviders'> &\n (TValue extends (...args: any[]) => any ? { isFunctionValue: true } : { isFunctionValue?: never }) &\n (TMulti extends true ? { multi: true } : { multi?: never })\n>(description: string, options?: TOptions) {\n type TReturn = TMulti extends true ? Array<TValue> : TValue;\n\n const token =\n (options as CreateInjectionTokenOptions<() => void, []>)?.token || new InjectionToken<TReturn>(description);\n return [\n createInjectFn(token) as CreateInjectionTokenReturn<TReturn,\n true>[0],\n createProvideFn(\n token,\n () => null!,\n (options || {}) as CreateProvideFnOptions<() => void, []>\n ) as CreateInjectionTokenReturn<TReturn,\n true>[1],\n token,\n () => []\n ] as CreateInjectionTokenReturn<TReturn, true>;\n}\n","/**\n * Based On:\n * Copyright (c) flebee Authors. Licensed under the MIT License.\n */\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, computed, DestroyRef, Directive, inject, Injector, model } from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor, NgControl, NgModel } from '@angular/forms';\nimport { createInjectionToken } from '../create-inject-context';\n\nconst noop = () => undefined;\n\nexport type RdxControlValueAccessorCompareTo<T = any> = (a?: T, b?: T) => boolean;\n\nexport const [injectCvaCompareTo, provideCvaCompareTo] = createInjectionToken<() => RdxControlValueAccessorCompareTo>(\n () => Object.is\n);\n\n/**\n * Provides a {@link RdxControlValueAccessorCompareTo comparator} based on a property of `T`.\n *\n * @example\n * ```ts\n * interface User {\n * \tid: string;\n * \tname: string;\n * }\n *\n * provideCvaCompareToByProp<User>('id');\n * ```\n */\nexport const provideCvaCompareToByProp = <T>(prop: keyof T) =>\n provideCvaCompareTo((a, b) => Object.is(a?.[prop], b?.[prop]), true);\n\n@Directive({ standalone: true })\nexport class RdxControlValueAccessor<Value> implements ControlValueAccessor {\n private readonly ngControl = inject(NgControl, { self: true, optional: true });\n private readonly destroyRef = inject(DestroyRef);\n private readonly injector = inject(Injector);\n\n /**\n * A comparator, which determines value changes. Should return true, if two values are considered semantic equal.\n *\n * Defaults to {@link Object.is} in order to align with change detection behavior for inputs.\n */\n public readonly compareTo: RdxControlValueAccessorCompareTo<Value> = injectCvaCompareTo();\n /** Whether this is disabled. If a control is present, it reflects it's disabled state. */\n public inputDisabled = model<BooleanInput>(this.ngControl?.disabled ?? false, { alias: 'disabled' });\n public disabled = computed(() => booleanAttribute(this.inputDisabled()));\n /** The value of this. If a control is present, it reflects it's value. */\n public value = model<Value>(this.ngControl?.value ?? undefined);\n\n /**\n * `NgModel` sets up the control in `ngOnChanges`. Idk if bug or on purpose, but `writeValue` and `setDisabledState` are called before the inputs are set.\n * {@link https://github.com/angular/angular/blob/main/packages/forms/src/directives/ng_model.ts#L223}\n *\n * @ignore\n */\n private get registered() {\n return this.ngControl instanceof NgModel\n ? (this.ngControl as unknown as { _registered: boolean })._registered\n : true;\n }\n\n constructor() {\n if (this.ngControl != null) this.ngControl.valueAccessor = this;\n\n toObservable(this.value, { injector: this.injector })\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => {\n if (this.compareTo(this.ngControl?.value, value)) return;\n\n this._onChange(value);\n });\n\n // sync disabled state\n toObservable(this.inputDisabled, { injector: this.injector })\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((disabled) => {\n if (this.ngControl == null || this.ngControl.control == null || this.ngControl.disabled === disabled)\n return;\n\n this.ngControl.control[disabled ? 'disable' : 'enable']();\n });\n }\n\n private _onChange: (value: Value) => void = noop;\n private _onTouched: () => void = noop;\n\n /**\n * This function should be called when this host is considered `touched`.\n *\n * NOTE: Whenever a `blur` event is triggered on this host, this function is called.\n *\n * @see {@link RdxControlValueAccessor.registerOnTouched}\n * @see {@link RdxControlValueAccessor._ngControl}\n */\n markAsTouched() {\n this._onTouched();\n }\n\n setDisabledState(disabled: boolean) {\n if (!this.registered) return;\n\n this.inputDisabled.set(disabled);\n }\n\n writeValue(value: Value) {\n if (!this.registered || this.compareTo(value, this.value())) return;\n\n this.value.set(value);\n }\n\n registerOnChange(onChange: (value: Value) => void) {\n this._onChange = onChange;\n }\n\n registerOnTouched(onTouched: () => void) {\n this._onTouched = onTouched;\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { inject } from '@angular/core';\n\nexport function injectDocument(): Document {\n return inject(DOCUMENT);\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport { APP_ID, inject, Injectable } from '@angular/core';\n\n/**\n * Keeps track of the ID count per prefix. This helps us make the IDs a bit more deterministic\n * like they were before the service was introduced. Note that ideally we wouldn't have to do\n * this, but there are some internal tests that rely on the IDs.\n */\nconst counters: Record<string, number> = {};\n\n/** Service that generates unique IDs for DOM nodes. */\n@Injectable({ providedIn: 'root' })\nexport class _IdGenerator {\n private readonly _appId = inject(APP_ID);\n\n /**\n * Generates a unique ID with a specific prefix.\n * @param prefix Prefix to add to the ID.\n */\n getId(prefix: string): string {\n // Omit the app ID if it's the default `ng`. Since the vast majority of pages have one\n // Angular app on them, we can reduce the amount of breakages by not adding it.\n if (this._appId !== 'ng') {\n prefix += this._appId;\n }\n\n if (!Object.prototype.hasOwnProperty.call(counters, prefix)) {\n counters[prefix] = 0;\n }\n\n return `${prefix}${counters[prefix]++}`;\n }\n}\n","import { inject } from '@angular/core';\nimport { FormControlDirective, FormControlName, NgControl, NgModel } from '@angular/forms';\n\nexport function injectNgControl(params: {\n optional: true;\n}): FormControlDirective | FormControlName | NgModel | undefined;\nexport function injectNgControl(params: { optional: false }): FormControlDirective | FormControlName | NgModel;\nexport function injectNgControl(): FormControlDirective | FormControlName | NgModel;\n\nexport function injectNgControl(params?: { optional: true } | { optional: false }) {\n const ngControl = inject(NgControl, { self: true, optional: true });\n\n if (!params?.optional && !ngControl) throw new Error('NgControl not found');\n\n if (\n ngControl instanceof FormControlDirective ||\n ngControl instanceof FormControlName ||\n ngControl instanceof NgModel\n ) {\n return ngControl;\n }\n\n if (params?.optional) {\n return undefined;\n }\n\n throw new Error('NgControl is not an instance of FormControlDirective, FormControlName or NgModel');\n}\n","import { Platform } from '@angular/cdk/platform';\nimport { inject } from '@angular/core';\n\nexport function injectIsClient() {\n return inject(Platform).isBrowser;\n}\n","import { ElementRef } from '@angular/core';\n\nexport function isInsideForm(el: ElementRef<HTMLElement> | null): boolean {\n if (!el || !el.nativeElement) {\n return true;\n }\n return Boolean(el.nativeElement.closest('form'));\n}\n","import { inject, InjectionToken } from '@angular/core';\nimport { injectDocument } from './document';\n\nexport const WINDOW = new InjectionToken<Window & typeof globalThis>('An abstraction over global window object', {\n factory: () => {\n const { defaultView } = injectDocument();\n if (!defaultView) {\n throw new Error('Window is not available');\n }\n return defaultView;\n }\n});\n\nexport function injectWindow(): Window & typeof globalThis {\n return inject(WINDOW);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"radix-ng-primitives-core.mjs","sources":["../../../packages/primitives/core/src/accessor/provide-value-accessor.ts","../../../packages/primitives/core/src/auto-focus.directive.ts","../../../packages/primitives/core/src/document.ts","../../../packages/primitives/core/src/id-generator.ts","../../../packages/primitives/core/src/inject-ng-control.ts","../../../packages/primitives/core/src/is-client.ts","../../../packages/primitives/core/src/is-inside-form.ts","../../../packages/primitives/core/src/window.ts","../../../packages/primitives/core/src/positioning/types.ts","../../../packages/primitives/core/src/positioning/constants.ts","../../../packages/primitives/core/src/positioning/utils.ts","../../../packages/primitives/core/radix-ng-primitives-core.ts"],"sourcesContent":["import { Provider, Type } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\n/**\n * Include in the providers section of a component which utilizes ControlValueAccessor to redundant code.\n *\n * ```ts\n * @Directive({\n * providers: [provideValueAccessor(ExampleDirective)]\n *}\n * export class ExampleDirective{}\n * ```\n */\nexport function provideValueAccessor(type: Type<never>): Provider {\n return {\n provide: NG_VALUE_ACCESSOR,\n useExisting: type,\n multi: true\n };\n}\n","import { booleanAttribute, Directive, ElementRef, inject, Input, NgZone } from '@angular/core';\n\n/*\n * <div [rdxAutoFocus]=\"true\"></div>\n */\n\n@Directive({\n selector: '[rdxAutoFocus]',\n standalone: true\n})\nexport class RdxAutoFocusDirective {\n #elementRef = inject(ElementRef);\n #ngZone = inject(NgZone);\n\n private _autoSelect = false;\n\n /**\n * @default false\n */\n @Input({ alias: 'rdxAutoFocus', transform: booleanAttribute })\n set autoFocus(value: boolean) {\n if (value) {\n // Note: Running this outside Angular's zone because `element.focus()` does not trigger change detection.\n this.#ngZone.runOutsideAngular(() =>\n // Note: `element.focus()` causes re-layout which might lead to frame drops on slower devices.\n // https://gist.github.com/paulirish/5d52fb081b3570c81e3a#setting-focus\n // `setTimeout` is a macrotask executed within the current rendering frame.\n // Animation tasks are executed in the next rendering frame.\n reqAnimationFrame(() => {\n this.#elementRef.nativeElement.focus();\n if (this._autoSelect && this.#elementRef.nativeElement.select) {\n this.#elementRef.nativeElement.select();\n }\n })\n );\n }\n }\n\n // Setter for autoSelect attribute to enable text selection when autoFocus is true.\n @Input({ transform: booleanAttribute })\n set autoSelect(value: boolean) {\n this._autoSelect = value;\n }\n}\n\nconst availablePrefixes = ['moz', 'ms', 'webkit'];\n\nfunction requestAnimationFramePolyfill(): typeof requestAnimationFrame {\n let lastTime = 0;\n\n return function (callback: FrameRequestCallback): number {\n const currTime = new Date().getTime();\n const timeToCall = Math.max(0, 16 - (currTime - lastTime));\n\n const id = setTimeout(() => {\n callback(currTime + timeToCall);\n }, timeToCall) as any;\n\n lastTime = currTime + timeToCall;\n\n return id;\n };\n}\n\n// Function to get the appropriate requestAnimationFrame method with fallback to polyfill.\nfunction getRequestAnimationFrame(): typeof requestAnimationFrame {\n if (typeof window === 'undefined') {\n return () => 0;\n }\n if (window.requestAnimationFrame) {\n // https://github.com/vuejs/vue/issues/4465\n return window.requestAnimationFrame.bind(window);\n }\n\n const prefix = availablePrefixes.filter((key) => `${key}RequestAnimationFrame` in window)[0];\n\n return prefix ? (window as any)[`${prefix}RequestAnimationFrame`] : requestAnimationFramePolyfill();\n}\n\n// Get the requestAnimationFrame function or its polyfill.\nconst reqAnimationFrame = getRequestAnimationFrame();\n","import { DOCUMENT } from '@angular/common';\nimport { inject } from '@angular/core';\n\nexport function injectDocument(): Document {\n return inject(DOCUMENT);\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport { APP_ID, inject, Injectable } from '@angular/core';\n\n/**\n * Keeps track of the ID count per prefix. This helps us make the IDs a bit more deterministic\n * like they were before the service was introduced. Note that ideally we wouldn't have to do\n * this, but there are some internal tests that rely on the IDs.\n */\nconst counters: Record<string, number> = {};\n\n/** Service that generates unique IDs for DOM nodes. */\n@Injectable({ providedIn: 'root' })\nexport class _IdGenerator {\n private readonly _appId = inject(APP_ID);\n\n /**\n * Generates a unique ID with a specific prefix.\n * @param prefix Prefix to add to the ID.\n */\n getId(prefix: string): string {\n // Omit the app ID if it's the default `ng`. Since the vast majority of pages have one\n // Angular app on them, we can reduce the amount of breakages by not adding it.\n if (this._appId !== 'ng') {\n prefix += this._appId;\n }\n\n if (!Object.prototype.hasOwnProperty.call(counters, prefix)) {\n counters[prefix] = 0;\n }\n\n return `${prefix}${counters[prefix]++}`;\n }\n}\n","import { inject } from '@angular/core';\nimport { FormControlDirective, FormControlName, NgControl, NgModel } from '@angular/forms';\n\nexport function injectNgControl(params: {\n optional: true;\n}): FormControlDirective | FormControlName | NgModel | undefined;\nexport function injectNgControl(params: { optional: false }): FormControlDirective | FormControlName | NgModel;\nexport function injectNgControl(): FormControlDirective | FormControlName | NgModel;\n\nexport function injectNgControl(params?: { optional: true } | { optional: false }) {\n const ngControl = inject(NgControl, { self: true, optional: true });\n\n if (!params?.optional && !ngControl) throw new Error('NgControl not found');\n\n if (\n ngControl instanceof FormControlDirective ||\n ngControl instanceof FormControlName ||\n ngControl instanceof NgModel\n ) {\n return ngControl;\n }\n\n if (params?.optional) {\n return undefined;\n }\n\n throw new Error('NgControl is not an instance of FormControlDirective, FormControlName or NgModel');\n}\n","import { Platform } from '@angular/cdk/platform';\nimport { inject } from '@angular/core';\n\nexport function injectIsClient() {\n return inject(Platform).isBrowser;\n}\n","import { ElementRef } from '@angular/core';\n\nexport function isInsideForm(el: ElementRef<HTMLElement> | null): boolean {\n if (!el || !el.nativeElement) {\n return true;\n }\n return Boolean(el.nativeElement.closest('form'));\n}\n","import { inject, InjectionToken } from '@angular/core';\nimport { injectDocument } from './document';\n\nexport const WINDOW = new InjectionToken<Window & typeof globalThis>('An abstraction over global window object', {\n factory: () => {\n const { defaultView } = injectDocument();\n if (!defaultView) {\n throw new Error('Window is not available');\n }\n return defaultView;\n }\n});\n\nexport function injectWindow(): Window & typeof globalThis {\n return inject(WINDOW);\n}\n","import { ConnectionPositionPair } from '@angular/cdk/overlay';\n\nexport enum RdxPositionSide {\n Top = 'top',\n Right = 'right',\n Bottom = 'bottom',\n Left = 'left'\n}\n\nexport enum RdxPositionAlign {\n Start = 'start',\n Center = 'center',\n End = 'end'\n}\n\nexport type RdxPositionSideAndAlign = { side: RdxPositionSide; align: RdxPositionAlign };\nexport type RdxPositionSideAndAlignOffsets = { sideOffset: number; alignOffset: number };\n\nexport type RdxPositions = Readonly<{\n [key in RdxPositionSide]: Readonly<{\n [key in RdxPositionAlign]: Readonly<ConnectionPositionPair>;\n }>;\n}>;\n\nexport type RdxPositioningDefaults = Readonly<{\n offsets: Readonly<{\n side: number;\n align: number;\n }>;\n arrow: Readonly<{\n width: number;\n height: number;\n }>;\n}>;\n\nexport type RdxAllPossibleConnectedPositions = ReadonlyMap<\n `${RdxPositionSide}|${RdxPositionAlign}`,\n ConnectionPositionPair\n>;\nexport type RdxArrowPositionParams = {\n top: string;\n left: string;\n transform: string;\n transformOrigin: string;\n};\n","import { RdxPositionAlign, RdxPositioningDefaults, RdxPositions, RdxPositionSide } from './types';\n\nexport const RDX_POSITIONS: RdxPositions = {\n [RdxPositionSide.Top]: {\n [RdxPositionAlign.Center]: {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom'\n },\n [RdxPositionAlign.Start]: {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom'\n },\n [RdxPositionAlign.End]: {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom'\n }\n },\n [RdxPositionSide.Right]: {\n [RdxPositionAlign.Center]: {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center'\n },\n [RdxPositionAlign.Start]: {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top'\n },\n [RdxPositionAlign.End]: {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom'\n }\n },\n [RdxPositionSide.Bottom]: {\n [RdxPositionAlign.Center]: {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top'\n },\n [RdxPositionAlign.Start]: {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top'\n },\n [RdxPositionAlign.End]: {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top'\n }\n },\n [RdxPositionSide.Left]: {\n [RdxPositionAlign.Center]: {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center'\n },\n [RdxPositionAlign.Start]: {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top'\n },\n [RdxPositionAlign.End]: {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom'\n }\n }\n} as const;\n\nexport const RDX_POSITIONING_DEFAULTS: RdxPositioningDefaults = {\n offsets: {\n side: 10,\n align: 0\n },\n arrow: {\n width: 8,\n height: 6\n }\n} as const;\n","import { ConnectedPosition, ConnectionPositionPair } from '@angular/cdk/overlay';\nimport { RDX_POSITIONS } from './constants';\nimport {\n RdxAllPossibleConnectedPositions,\n RdxArrowPositionParams,\n RdxPositionAlign,\n RdxPositionSide,\n RdxPositionSideAndAlign,\n RdxPositionSideAndAlignOffsets\n} from './types';\n\nexport function getContentPosition(\n sideAndAlignWithOffsets: RdxPositionSideAndAlign & RdxPositionSideAndAlignOffsets\n): ConnectedPosition {\n const { side, align, sideOffset, alignOffset } = sideAndAlignWithOffsets;\n const position: ConnectedPosition = {\n ...(RDX_POSITIONS[side]?.[align] ?? RDX_POSITIONS[RdxPositionSide.Top][RdxPositionAlign.Center])\n };\n if (sideOffset || alignOffset) {\n if ([RdxPositionSide.Top, RdxPositionSide.Bottom].includes(side)) {\n if (sideOffset) {\n position.offsetY = side === RdxPositionSide.Top ? -sideOffset : sideOffset;\n }\n if (alignOffset) {\n position.offsetX = alignOffset;\n }\n } else {\n if (sideOffset) {\n position.offsetX = side === RdxPositionSide.Left ? -sideOffset : sideOffset;\n }\n if (alignOffset) {\n position.offsetY = alignOffset;\n }\n }\n }\n return position;\n}\n\nlet allPossibleConnectedPositions: RdxAllPossibleConnectedPositions;\nexport function getAllPossibleConnectedPositions() {\n if (!allPossibleConnectedPositions) {\n allPossibleConnectedPositions = new Map();\n }\n if (allPossibleConnectedPositions.size < 1) {\n for (const [side, aligns] of Object.entries(RDX_POSITIONS)) {\n for (const [align, position] of Object.entries(aligns)) {\n (allPossibleConnectedPositions as Map<any, any>).set(`${side}|${align}`, position);\n }\n }\n }\n return allPossibleConnectedPositions;\n}\n\nexport function getSideAndAlignFromAllPossibleConnectedPositions(\n position: ConnectionPositionPair\n): RdxPositionSideAndAlign {\n const allPossibleConnectedPositions = getAllPossibleConnectedPositions();\n let sideAndAlign: RdxPositionSideAndAlign | undefined;\n allPossibleConnectedPositions.forEach((value, key) => {\n if (\n position.originX === value.originX &&\n position.originY === value.originY &&\n position.overlayX === value.overlayX &&\n position.overlayY === value.overlayY\n ) {\n const sideAndAlignArray = key.split('|');\n sideAndAlign = {\n side: sideAndAlignArray[0] as RdxPositionSide,\n align: sideAndAlignArray[1] as RdxPositionAlign\n };\n }\n });\n if (!sideAndAlign) {\n throw Error(\n `[Rdx positioning] cannot infer both side and align from the given position (${JSON.stringify(position)})`\n );\n }\n return sideAndAlign;\n}\n\nexport function getArrowPositionParams(\n sideAndAlign: RdxPositionSideAndAlign,\n arrowWidthAndHeight: { width: number; height: number },\n triggerWidthAndHeight: { width: number; height: number }\n): RdxArrowPositionParams {\n const posParams: RdxArrowPositionParams = {\n top: '',\n left: '',\n transform: '',\n transformOrigin: 'center center 0px'\n };\n\n if ([RdxPositionSide.Top, RdxPositionSide.Bottom].includes(sideAndAlign.side)) {\n if (sideAndAlign.side === RdxPositionSide.Top) {\n posParams.top = '100%';\n } else {\n posParams.top = `-${arrowWidthAndHeight.height}px`;\n posParams.transform = `rotate(180deg)`;\n }\n\n if (sideAndAlign.align === RdxPositionAlign.Start) {\n posParams.left = `${(triggerWidthAndHeight.width - arrowWidthAndHeight.width) / 2}px`;\n } else if (sideAndAlign.align === RdxPositionAlign.Center) {\n posParams.left = `calc(50% - ${arrowWidthAndHeight.width / 2}px)`;\n } else if (sideAndAlign.align === RdxPositionAlign.End) {\n posParams.left = `calc(100% - ${(triggerWidthAndHeight.width + arrowWidthAndHeight.width) / 2}px)`;\n }\n } else if ([RdxPositionSide.Left, RdxPositionSide.Right].includes(sideAndAlign.side)) {\n if (sideAndAlign.side === RdxPositionSide.Left) {\n posParams.left = `calc(100% - ${arrowWidthAndHeight.width}px)`;\n posParams.transform = `rotate(-90deg)`;\n posParams.transformOrigin = 'top right 0px';\n } else {\n posParams.left = `0`;\n posParams.transform = `rotate(90deg)`;\n posParams.transformOrigin = 'top left 0px';\n }\n\n if (sideAndAlign.align === RdxPositionAlign.Start) {\n posParams.top = `${(triggerWidthAndHeight.height - arrowWidthAndHeight.width) / 2}px`;\n } else if (sideAndAlign.align === RdxPositionAlign.Center) {\n posParams.top = `calc(50% - ${arrowWidthAndHeight.width / 2}px)`;\n } else if (sideAndAlign.align === RdxPositionAlign.End) {\n posParams.top = `calc(100% - ${(triggerWidthAndHeight.height + arrowWidthAndHeight.width) / 2}px)`;\n }\n }\n\n return posParams;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAGA;;;;;;;;;AASG;AACG,SAAU,oBAAoB,CAAC,IAAiB,EAAA;IAClD,OAAO;AACH,QAAA,OAAO,EAAE,iBAAiB;AAC1B,QAAA,WAAW,EAAE,IAAI;AACjB,QAAA,KAAK,EAAE;KACV;AACL;;ACjBA;;AAEG;MAMU,qBAAqB,CAAA;AAJlC,IAAA,WAAA,GAAA;AAKI,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AAChC,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;QAEhB,IAAW,CAAA,WAAA,GAAG,KAAK;AA6B9B;AAhCG,IAAA,WAAW;AACX,IAAA,OAAO;AAIP;;AAEG;IACH,IACI,SAAS,CAAC,KAAc,EAAA;QACxB,IAAI,KAAK,EAAE;;AAEP,YAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;;;;;YAK3B,iBAAiB,CAAC,MAAK;AACnB,gBAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,EAAE;AACtC,gBAAA,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,EAAE;AAC3D,oBAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,EAAE;;aAE9C,CAAC,CACL;;;;IAKT,IACI,UAAU,CAAC,KAAc,EAAA;AACzB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;;8GA/BnB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,CAAA,cAAA,EAAA,WAAA,EASa,gBAAgB,CAAA,EAAA,UAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAoBvC,gBAAgB,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FA7B3B,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,UAAU,EAAE;AACf,iBAAA;8BAWO,SAAS,EAAA,CAAA;sBADZ,KAAK;AAAC,gBAAA,IAAA,EAAA,CAAA,EAAE,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAqBzD,UAAU,EAAA,CAAA;sBADb,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;;AAM1C,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC;AAEjD,SAAS,6BAA6B,GAAA;IAClC,IAAI,QAAQ,GAAG,CAAC;AAEhB,IAAA,OAAO,UAAU,QAA8B,EAAA;QAC3C,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;AACrC,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,IAAI,QAAQ,GAAG,QAAQ,CAAC,CAAC;AAE1D,QAAA,MAAM,EAAE,GAAG,UAAU,CAAC,MAAK;AACvB,YAAA,QAAQ,CAAC,QAAQ,GAAG,UAAU,CAAC;SAClC,EAAE,UAAU,CAAQ;AAErB,QAAA,QAAQ,GAAG,QAAQ,GAAG,UAAU;AAEhC,QAAA,OAAO,EAAE;AACb,KAAC;AACL;AAEA;AACA,SAAS,wBAAwB,GAAA;AAC7B,IAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AAC/B,QAAA,OAAO,MAAM,CAAC;;AAElB,IAAA,IAAI,MAAM,CAAC,qBAAqB,EAAE;;QAE9B,OAAO,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC;;IAGpD,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAG,EAAA,GAAG,uBAAuB,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;AAE5F,IAAA,OAAO,MAAM,GAAI,MAAc,CAAC,CAAA,EAAG,MAAM,CAAA,qBAAA,CAAuB,CAAC,GAAG,6BAA6B,EAAE;AACvG;AAEA;AACA,MAAM,iBAAiB,GAAG,wBAAwB,EAAE;;SC7EpC,cAAc,GAAA;AAC1B,IAAA,OAAO,MAAM,CAAC,QAAQ,CAAC;AAC3B;;ACLA;;;;;;AAMG;AAIH;;;;AAIG;AACH,MAAM,QAAQ,GAA2B,EAAE;AAE3C;MAEa,YAAY,CAAA;AADzB,IAAA,WAAA,GAAA;AAEqB,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAmB3C;AAjBG;;;AAGG;AACH,IAAA,KAAK,CAAC,MAAc,EAAA;;;AAGhB,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE;AACtB,YAAA,MAAM,IAAI,IAAI,CAAC,MAAM;;AAGzB,QAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;AACzD,YAAA,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC;;QAGxB,OAAO,CAAA,EAAG,MAAM,CAAG,EAAA,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAA,CAAE;;8GAlBlC,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cADC,MAAM,EAAA,CAAA,CAAA;;2FACnB,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACT5B,SAAU,eAAe,CAAC,MAAiD,EAAA;AAC7E,IAAA,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAEnE,IAAA,IAAI,CAAC,MAAM,EAAE,QAAQ,IAAI,CAAC,SAAS;AAAE,QAAA,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC;IAE3E,IACI,SAAS,YAAY,oBAAoB;AACzC,QAAA,SAAS,YAAY,eAAe;QACpC,SAAS,YAAY,OAAO,EAC9B;AACE,QAAA,OAAO,SAAS;;AAGpB,IAAA,IAAI,MAAM,EAAE,QAAQ,EAAE;AAClB,QAAA,OAAO,SAAS;;AAGpB,IAAA,MAAM,IAAI,KAAK,CAAC,kFAAkF,CAAC;AACvG;;SCxBgB,cAAc,GAAA;AAC1B,IAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS;AACrC;;ACHM,SAAU,YAAY,CAAC,EAAkC,EAAA;IAC3D,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;AAC1B,QAAA,OAAO,IAAI;;IAEf,OAAO,OAAO,CAAC,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACpD;;MCJa,MAAM,GAAG,IAAI,cAAc,CAA6B,0CAA0C,EAAE;IAC7G,OAAO,EAAE,MAAK;AACV,QAAA,MAAM,EAAE,WAAW,EAAE,GAAG,cAAc,EAAE;QACxC,IAAI,CAAC,WAAW,EAAE;AACd,YAAA,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC;;AAE9C,QAAA,OAAO,WAAW;;AAEzB,CAAA;SAEe,YAAY,GAAA;AACxB,IAAA,OAAO,MAAM,CAAC,MAAM,CAAC;AACzB;;ICbY;AAAZ,CAAA,UAAY,eAAe,EAAA;AACvB,IAAA,eAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,eAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,eAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,eAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACjB,CAAC,EALW,eAAe,KAAf,eAAe,GAK1B,EAAA,CAAA,CAAA;IAEW;AAAZ,CAAA,UAAY,gBAAgB,EAAA;AACxB,IAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACf,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,GAI3B,EAAA,CAAA,CAAA;;ACXY,MAAA,aAAa,GAAiB;AACvC,IAAA,CAAC,eAAe,CAAC,GAAG,GAAG;AACnB,QAAA,CAAC,gBAAgB,CAAC,MAAM,GAAG;AACvB,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,QAAQ,EAAE;AACb,SAAA;AACD,QAAA,CAAC,gBAAgB,CAAC,KAAK,GAAG;AACtB,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,QAAQ,EAAE;AACb,SAAA;AACD,QAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG;AACpB,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,QAAQ,EAAE;AACb;AACJ,KAAA;AACD,IAAA,CAAC,eAAe,CAAC,KAAK,GAAG;AACrB,QAAA,CAAC,gBAAgB,CAAC,MAAM,GAAG;AACvB,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,QAAQ,EAAE;AACb,SAAA;AACD,QAAA,CAAC,gBAAgB,CAAC,KAAK,GAAG;AACtB,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,QAAQ,EAAE;AACb,SAAA;AACD,QAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG;AACpB,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,QAAQ,EAAE;AACb;AACJ,KAAA;AACD,IAAA,CAAC,eAAe,CAAC,MAAM,GAAG;AACtB,QAAA,CAAC,gBAAgB,CAAC,MAAM,GAAG;AACvB,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,QAAQ,EAAE;AACb,SAAA;AACD,QAAA,CAAC,gBAAgB,CAAC,KAAK,GAAG;AACtB,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,QAAQ,EAAE;AACb,SAAA;AACD,QAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG;AACpB,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,QAAQ,EAAE;AACb;AACJ,KAAA;AACD,IAAA,CAAC,eAAe,CAAC,IAAI,GAAG;AACpB,QAAA,CAAC,gBAAgB,CAAC,MAAM,GAAG;AACvB,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,QAAQ,EAAE;AACb,SAAA;AACD,QAAA,CAAC,gBAAgB,CAAC,KAAK,GAAG;AACtB,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,QAAQ,EAAE;AACb,SAAA;AACD,QAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG;AACpB,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,QAAQ,EAAE;AACb;AACJ;;AAGQ,MAAA,wBAAwB,GAA2B;AAC5D,IAAA,OAAO,EAAE;AACL,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,KAAK,EAAE;AACV,KAAA;AACD,IAAA,KAAK,EAAE;AACH,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,MAAM,EAAE;AACX;;;AClFC,SAAU,kBAAkB,CAC9B,uBAAiF,EAAA;IAEjF,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,uBAAuB;AACxE,IAAA,MAAM,QAAQ,GAAsB;QAChC,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC;KAClG;AACD,IAAA,IAAI,UAAU,IAAI,WAAW,EAAE;AAC3B,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YAC9D,IAAI,UAAU,EAAE;AACZ,gBAAA,QAAQ,CAAC,OAAO,GAAG,IAAI,KAAK,eAAe,CAAC,GAAG,GAAG,CAAC,UAAU,GAAG,UAAU;;YAE9E,IAAI,WAAW,EAAE;AACb,gBAAA,QAAQ,CAAC,OAAO,GAAG,WAAW;;;aAE/B;YACH,IAAI,UAAU,EAAE;AACZ,gBAAA,QAAQ,CAAC,OAAO,GAAG,IAAI,KAAK,eAAe,CAAC,IAAI,GAAG,CAAC,UAAU,GAAG,UAAU;;YAE/E,IAAI,WAAW,EAAE;AACb,gBAAA,QAAQ,CAAC,OAAO,GAAG,WAAW;;;;AAI1C,IAAA,OAAO,QAAQ;AACnB;AAEA,IAAI,6BAA+D;SACnD,gCAAgC,GAAA;IAC5C,IAAI,CAAC,6BAA6B,EAAE;AAChC,QAAA,6BAA6B,GAAG,IAAI,GAAG,EAAE;;AAE7C,IAAA,IAAI,6BAA6B,CAAC,IAAI,GAAG,CAAC,EAAE;AACxC,QAAA,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;AACxD,YAAA,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBACnD,6BAA+C,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAI,CAAA,EAAA,KAAK,CAAE,CAAA,EAAE,QAAQ,CAAC;;;;AAI9F,IAAA,OAAO,6BAA6B;AACxC;AAEM,SAAU,gDAAgD,CAC5D,QAAgC,EAAA;AAEhC,IAAA,MAAM,6BAA6B,GAAG,gCAAgC,EAAE;AACxE,IAAA,IAAI,YAAiD;IACrD,6BAA6B,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,KAAI;AACjD,QAAA,IACI,QAAQ,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO;AAClC,YAAA,QAAQ,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO;AAClC,YAAA,QAAQ,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ;AACpC,YAAA,QAAQ,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,EACtC;YACE,MAAM,iBAAiB,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;AACxC,YAAA,YAAY,GAAG;AACX,gBAAA,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAoB;AAC7C,gBAAA,KAAK,EAAE,iBAAiB,CAAC,CAAC;aAC7B;;AAET,KAAC,CAAC;IACF,IAAI,CAAC,YAAY,EAAE;QACf,MAAM,KAAK,CACP,CAAA,4EAAA,EAA+E,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAG,CAAA,CAAA,CAC7G;;AAEL,IAAA,OAAO,YAAY;AACvB;SAEgB,sBAAsB,CAClC,YAAqC,EACrC,mBAAsD,EACtD,qBAAwD,EAAA;AAExD,IAAA,MAAM,SAAS,GAA2B;AACtC,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,SAAS,EAAE,EAAE;AACb,QAAA,eAAe,EAAE;KACpB;AAED,IAAA,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;QAC3E,IAAI,YAAY,CAAC,IAAI,KAAK,eAAe,CAAC,GAAG,EAAE;AAC3C,YAAA,SAAS,CAAC,GAAG,GAAG,MAAM;;aACnB;YACH,SAAS,CAAC,GAAG,GAAG,CAAA,CAAA,EAAI,mBAAmB,CAAC,MAAM,IAAI;AAClD,YAAA,SAAS,CAAC,SAAS,GAAG,CAAA,cAAA,CAAgB;;QAG1C,IAAI,YAAY,CAAC,KAAK,KAAK,gBAAgB,CAAC,KAAK,EAAE;AAC/C,YAAA,SAAS,CAAC,IAAI,GAAG,CAAG,EAAA,CAAC,qBAAqB,CAAC,KAAK,GAAG,mBAAmB,CAAC,KAAK,IAAI,CAAC,IAAI;;aAClF,IAAI,YAAY,CAAC,KAAK,KAAK,gBAAgB,CAAC,MAAM,EAAE;YACvD,SAAS,CAAC,IAAI,GAAG,CAAc,WAAA,EAAA,mBAAmB,CAAC,KAAK,GAAG,CAAC,CAAA,GAAA,CAAK;;aAC9D,IAAI,YAAY,CAAC,KAAK,KAAK,gBAAgB,CAAC,GAAG,EAAE;AACpD,YAAA,SAAS,CAAC,IAAI,GAAG,CAAe,YAAA,EAAA,CAAC,qBAAqB,CAAC,KAAK,GAAG,mBAAmB,CAAC,KAAK,IAAI,CAAC,KAAK;;;AAEnG,SAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;QAClF,IAAI,YAAY,CAAC,IAAI,KAAK,eAAe,CAAC,IAAI,EAAE;YAC5C,SAAS,CAAC,IAAI,GAAG,CAAA,YAAA,EAAe,mBAAmB,CAAC,KAAK,KAAK;AAC9D,YAAA,SAAS,CAAC,SAAS,GAAG,CAAA,cAAA,CAAgB;AACtC,YAAA,SAAS,CAAC,eAAe,GAAG,eAAe;;aACxC;AACH,YAAA,SAAS,CAAC,IAAI,GAAG,CAAA,CAAA,CAAG;AACpB,YAAA,SAAS,CAAC,SAAS,GAAG,CAAA,aAAA,CAAe;AACrC,YAAA,SAAS,CAAC,eAAe,GAAG,cAAc;;QAG9C,IAAI,YAAY,CAAC,KAAK,KAAK,gBAAgB,CAAC,KAAK,EAAE;AAC/C,YAAA,SAAS,CAAC,GAAG,GAAG,CAAG,EAAA,CAAC,qBAAqB,CAAC,MAAM,GAAG,mBAAmB,CAAC,KAAK,IAAI,CAAC,IAAI;;aAClF,IAAI,YAAY,CAAC,KAAK,KAAK,gBAAgB,CAAC,MAAM,EAAE;YACvD,SAAS,CAAC,GAAG,GAAG,CAAc,WAAA,EAAA,mBAAmB,CAAC,KAAK,GAAG,CAAC,CAAA,GAAA,CAAK;;aAC7D,IAAI,YAAY,CAAC,KAAK,KAAK,gBAAgB,CAAC,GAAG,EAAE;AACpD,YAAA,SAAS,CAAC,GAAG,GAAG,CAAe,YAAA,EAAA,CAAC,qBAAqB,CAAC,MAAM,GAAG,mBAAmB,CAAC,KAAK,IAAI,CAAC,KAAK;;;AAI1G,IAAA,OAAO,SAAS;AACpB;;AChIA;;AAEG;;;;"}
|