@ngbase/adk 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/fesm2022/ngbase-adk-autocomplete.mjs +2 -2
- package/fesm2022/ngbase-adk-autocomplete.mjs.map +1 -1
- package/fesm2022/ngbase-adk-datepicker.mjs +18 -18
- package/fesm2022/ngbase-adk-datepicker.mjs.map +1 -1
- package/fesm2022/ngbase-adk-dialog.mjs +6 -6
- package/fesm2022/ngbase-adk-dialog.mjs.map +1 -1
- package/fesm2022/ngbase-adk-pagination.mjs +18 -18
- package/fesm2022/ngbase-adk-pagination.mjs.map +1 -1
- package/fesm2022/ngbase-adk-popover.mjs +2 -2
- package/fesm2022/ngbase-adk-popover.mjs.map +1 -1
- package/fesm2022/ngbase-adk-radio.mjs +2 -2
- package/fesm2022/ngbase-adk-radio.mjs.map +1 -1
- package/fesm2022/ngbase-adk-resizable.mjs +4 -4
- package/fesm2022/ngbase-adk-resizable.mjs.map +1 -1
- package/fesm2022/ngbase-adk-select.mjs +4 -4
- package/fesm2022/ngbase-adk-select.mjs.map +1 -1
- package/fesm2022/ngbase-adk-sonner.mjs +4 -4
- package/fesm2022/ngbase-adk-sonner.mjs.map +1 -1
- package/fesm2022/ngbase-adk-stepper.mjs +2 -2
- package/fesm2022/ngbase-adk-stepper.mjs.map +1 -1
- package/package.json +26 -25
- package/schematics/collection.json +15 -0
- package/schematics/components/files/accordion/accordion.ts.template +55 -0
- package/schematics/components/files/accordion/index.ts.template +5 -0
- package/schematics/components/files/alert/alert.ts.template +62 -0
- package/schematics/components/files/alert/index.ts.template +1 -0
- package/schematics/components/files/autocomplete/autocomplete.ts.template +48 -0
- package/schematics/components/files/autocomplete/index.ts.template +5 -0
- package/schematics/components/files/avatar/avatar.ts.template +31 -0
- package/schematics/components/files/avatar/index.ts.template +1 -0
- package/schematics/components/files/badge/badge.ts.template +11 -0
- package/schematics/components/files/badge/index.ts.template +1 -0
- package/schematics/components/files/breadcrumb/breadcrumb.ts.template +49 -0
- package/schematics/components/files/breadcrumb/index.ts.template +1 -0
- package/schematics/components/files/button/button.ts.template +29 -0
- package/schematics/components/files/button/index.ts.template +5 -0
- package/schematics/components/files/card/card.ts.template +11 -0
- package/schematics/components/files/card/index.ts.template +5 -0
- package/schematics/components/files/carousel/carousel.ts.template +44 -0
- package/schematics/components/files/carousel/index.ts.template +1 -0
- package/schematics/components/files/checkbox/checkbox.ts.template +46 -0
- package/schematics/components/files/checkbox/focus-style.directive.ts.template +12 -0
- package/schematics/components/files/checkbox/index.ts.template +6 -0
- package/schematics/components/files/chip/chip.ts.template +36 -0
- package/schematics/components/files/chip/index.ts.template +1 -0
- package/schematics/components/files/color-picker/color-picker.ts.template +104 -0
- package/schematics/components/files/color-picker/index.ts.template +5 -0
- package/schematics/components/files/command/command.ts.template +82 -0
- package/schematics/components/files/command/index.ts.template +1 -0
- package/schematics/components/files/datepicker/calendar.ts.template +117 -0
- package/schematics/components/files/datepicker/datepicker-trigger.ts.template +27 -0
- package/schematics/components/files/datepicker/datepicker.ts.template +28 -0
- package/schematics/components/files/datepicker/index.ts.template +3 -0
- package/schematics/components/files/datepicker/time.ts.template +46 -0
- package/schematics/components/files/dialog/dialog.ts.template +89 -0
- package/schematics/components/files/dialog/index.ts.template +5 -0
- package/schematics/components/files/drawer/drawer.ts.template +104 -0
- package/schematics/components/files/drawer/index.ts.template +5 -0
- package/schematics/components/files/form-field/index.ts.template +7 -0
- package/schematics/components/files/form-field/input-style.directive.ts.template +11 -0
- package/schematics/components/files/form-field/input.ts.template +100 -0
- package/schematics/components/files/form-field/otp.ts.template +37 -0
- package/schematics/components/files/hover-card/hover-card.ts.template +13 -0
- package/schematics/components/files/hover-card/index.ts.template +5 -0
- package/schematics/components/files/icon/icon.ts.template +16 -0
- package/schematics/components/files/icon/index.ts.template +1 -0
- package/schematics/components/files/inline-edit/index.ts.template +1 -0
- package/schematics/components/files/inline-edit/inline-edit.ts.template +24 -0
- package/schematics/components/files/keys/index.ts.template +5 -0
- package/schematics/components/files/keys/key.ts.template +35 -0
- package/schematics/components/files/list/index.ts.template +5 -0
- package/schematics/components/files/list/list.ts.template +28 -0
- package/schematics/components/files/mask/index.ts.template +1 -0
- package/schematics/components/files/mask/mask.ts.template +8 -0
- package/schematics/components/files/menu/context-menu.ts.template +14 -0
- package/schematics/components/files/menu/index.ts.template +8 -0
- package/schematics/components/files/menu/mention.ts.template +14 -0
- package/schematics/components/files/menu/menu.ts.template +37 -0
- package/schematics/components/files/menu/navigation-menu.ts.template +8 -0
- package/schematics/components/files/pagination/index.ts.template +1 -0
- package/schematics/components/files/pagination/pagination.ts.template +71 -0
- package/schematics/components/files/picasa/index.ts.template +1 -0
- package/schematics/components/files/picasa/picasa-base.component.ts.template +80 -0
- package/schematics/components/files/picasa/picasa.component.ts.template +57 -0
- package/schematics/components/files/picasa/picasa.directive.ts.template +41 -0
- package/schematics/components/files/picasa/picase.service.ts.template +24 -0
- package/schematics/components/files/popover/index.ts.template +1 -0
- package/schematics/components/files/popover/popover.ts.template +87 -0
- package/schematics/components/files/progress/index.ts.template +5 -0
- package/schematics/components/files/progress/progress.ts.template +14 -0
- package/schematics/components/files/radio/index.ts.template +5 -0
- package/schematics/components/files/radio/radio.ts.template +40 -0
- package/schematics/components/files/resizable/index.ts.template +5 -0
- package/schematics/components/files/resizable/resizable.ts.template +56 -0
- package/schematics/components/files/scroll-area/index.ts.template +1 -0
- package/schematics/components/files/scroll-area/scroll-area.ts.template +40 -0
- package/schematics/components/files/select/index.ts.template +8 -0
- package/schematics/components/files/select/list-selection.ts.template +15 -0
- package/schematics/components/files/select/option.ts.template +34 -0
- package/schematics/components/files/select/select-input.ts.template +21 -0
- package/schematics/components/files/select/select.ts.template +96 -0
- package/schematics/components/files/selectable/index.ts.template +1 -0
- package/schematics/components/files/selectable/selectable.ts.template +34 -0
- package/schematics/components/files/separator/index.ts.template +5 -0
- package/schematics/components/files/separator/separator.ts.template +19 -0
- package/schematics/components/files/sheet/index.ts.template +5 -0
- package/schematics/components/files/sheet/sheet.ts.template +134 -0
- package/schematics/components/files/sidenav/index.ts.template +1 -0
- package/schematics/components/files/sidenav/sidenav.ts.template +48 -0
- package/schematics/components/files/skeleton/index.ts.template +1 -0
- package/schematics/components/files/skeleton/skeleton.ts.template +15 -0
- package/schematics/components/files/slider/index.ts.template +5 -0
- package/schematics/components/files/slider/slider.ts.template +42 -0
- package/schematics/components/files/sonner/index.ts.template +5 -0
- package/schematics/components/files/sonner/sonner.ts.template +58 -0
- package/schematics/components/files/spinner/index.ts.template +1 -0
- package/schematics/components/files/spinner/spinner.ts.template +79 -0
- package/schematics/components/files/stepper/index.ts.template +1 -0
- package/schematics/components/files/stepper/stepper.ts.template +88 -0
- package/schematics/components/files/switch/index.ts.template +5 -0
- package/schematics/components/files/switch/switch.ts.template +29 -0
- package/schematics/components/files/table/body-cell.ts.template +19 -0
- package/schematics/components/files/table/body-row.ts.template +21 -0
- package/schematics/components/files/table/column.ts.template +8 -0
- package/schematics/components/files/table/head-cell.ts.template +19 -0
- package/schematics/components/files/table/head-row.ts.template +27 -0
- package/schematics/components/files/table/index.ts.template +26 -0
- package/schematics/components/files/table/table.ts.template +20 -0
- package/schematics/components/files/tabs/index.ts.template +5 -0
- package/schematics/components/files/tabs/tab.ts.template +89 -0
- package/schematics/components/files/theme/index.ts.template +2 -0
- package/schematics/components/files/theme/theme-button.component.ts.template +26 -0
- package/schematics/components/files/theme/theme.component.ts.template +165 -0
- package/schematics/components/files/theme/theme.service.ts.template +44 -0
- package/schematics/components/files/toggle/index.ts.template +5 -0
- package/schematics/components/files/toggle/toggle.ts.template +13 -0
- package/schematics/components/files/toggle-group/index.ts.template +5 -0
- package/schematics/components/files/toggle-group/toggle-group.ts.template +25 -0
- package/schematics/components/files/tooltip/index.ts.template +5 -0
- package/schematics/components/files/tooltip/tooltip.ts.template +40 -0
- package/schematics/components/files/tour/index.ts.template +3 -0
- package/schematics/components/files/tour/tour-step.ts.template +8 -0
- package/schematics/components/files/tour/tour.service.ts.template +7 -0
- package/schematics/components/files/tour/tour.ts.template +8 -0
- package/schematics/components/files/tree/index.ts.template +1 -0
- package/schematics/components/files/tree/tree.ts.template +66 -0
- package/schematics/components/index.d.ts +3 -0
- package/schematics/components/index.js +17 -0
- package/schematics/components/index.js.map +1 -0
- package/schematics/components/index.ts +29 -0
- package/schematics/components/schema.d.ts +6 -0
- package/schematics/components/schema.js +3 -0
- package/schematics/components/schema.js.map +1 -0
- package/schematics/components/schema.json +137 -0
- package/schematics/components/schema.ts +6 -0
|
@@ -118,15 +118,15 @@ class NgbDialogContainer extends BaseDialog {
|
|
|
118
118
|
'pointer-events-auto relative flex max-w-[100vw] flex-col overflow-hidden border bg-foreground shadow-lg' +
|
|
119
119
|
(options().fullWindow
|
|
120
120
|
? ' h-screen w-screen border-none'
|
|
121
|
-
: ' max-w-[calc(100vw-30px)] rounded-
|
|
121
|
+
: ' max-w-[calc(100vw-30px)] rounded-lg')
|
|
122
122
|
}}"
|
|
123
123
|
>
|
|
124
124
|
@if (!isHideHeader) {
|
|
125
|
-
<div class="flex items-center justify-between border-b px-
|
|
125
|
+
<div class="flex items-center justify-between border-b px-4 py-2">
|
|
126
126
|
<h2>{{ options().title }}</h2>
|
|
127
127
|
</div>
|
|
128
128
|
}
|
|
129
|
-
<div class="h-full overflow-auto p-
|
|
129
|
+
<div class="h-full overflow-auto p-4">
|
|
130
130
|
<ng-container #contentContainer />
|
|
131
131
|
</div>
|
|
132
132
|
</div>
|
|
@@ -160,15 +160,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
|
|
|
160
160
|
'pointer-events-auto relative flex max-w-[100vw] flex-col overflow-hidden border bg-foreground shadow-lg' +
|
|
161
161
|
(options().fullWindow
|
|
162
162
|
? ' h-screen w-screen border-none'
|
|
163
|
-
: ' max-w-[calc(100vw-30px)] rounded-
|
|
163
|
+
: ' max-w-[calc(100vw-30px)] rounded-lg')
|
|
164
164
|
}}"
|
|
165
165
|
>
|
|
166
166
|
@if (!isHideHeader) {
|
|
167
|
-
<div class="flex items-center justify-between border-b px-
|
|
167
|
+
<div class="flex items-center justify-between border-b px-4 py-2">
|
|
168
168
|
<h2>{{ options().title }}</h2>
|
|
169
169
|
</div>
|
|
170
170
|
}
|
|
171
|
-
<div class="h-full overflow-auto p-
|
|
171
|
+
<div class="h-full overflow-auto p-4">
|
|
172
172
|
<ng-container #contentContainer />
|
|
173
173
|
</div>
|
|
174
174
|
</div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngbase-adk-dialog.mjs","sources":["../../../projects/adk/dialog/dialog.service.ts","../../../projects/adk/dialog/dialog.animation.ts","../../../projects/adk/dialog/dialog.ts","../../../projects/adk/dialog/public-api.ts","../../../projects/adk/dialog/ngbase-adk-dialog.ts"],"sourcesContent":["import { basePortal, DialogInput, DialogOptions } from '@ngbase/adk/portal';\nimport { NgbDialogContainer } from './dialog';\n\nexport function ngbDialogPortal(component: typeof NgbDialogContainer) {\n const NAME = 'dialog';\n const base = basePortal(NAME, component);\n\n function open<T>(component: DialogInput, opt?: DialogOptions) {\n const { diaRef } = base.open(\n component,\n (comp, options) => {\n comp.instance.setOptions(options);\n },\n opt,\n );\n\n return diaRef;\n }\n\n function closeAll() {\n base.closeAll();\n }\n return { open, closeAll };\n}\n\nexport type NgbDialog = ReturnType<typeof ngbDialogPortal>;\n","import {\n animate,\n AnimationTriggerMetadata,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\n\nexport const sideAnimation: AnimationTriggerMetadata = trigger('sideAnimation', [\n state('left', style({ transform: 'translate3d(-100%, 0, 0)' })),\n state('right', style({ transform: 'translate3d(100%, 0, 0)' })),\n state('center', style({ transform: 'none' })),\n transition('void => *', animate('0ms')),\n transition('* => *', animate('300ms cubic-bezier(0.55, 0.31, 0.15, 0.93)')),\n]);\n\nexport const viewAnimation: AnimationTriggerMetadata = trigger('viewAnimation', [\n state('1', style({ transform: 'none', opacity: 1 })),\n state('void', style({ transform: 'translate3d(0, 10px, 0) scale(0.99)', opacity: 0 })),\n state('0', style({ transform: 'translate3d(0, 10px, 0)', opacity: 0 })),\n transition('* => *', animate('200ms ease')),\n]);\n// cubic-bezier(0.25, 0.8, 0.25, 1)\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n Directive,\n inject,\n signal,\n viewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { FocusTrap } from '@ngbase/adk/a11y';\nimport { BaseDialog, DialogOptions, NgbPortalClose } from '@ngbase/adk/portal';\nimport { createHostAnimation, fadeAnimation } from '@ngbase/adk/utils';\nimport { Subject } from 'rxjs';\nimport { viewAnimation } from './dialog.animation';\n\n@Directive({\n selector: '[ngbDialogMain]',\n host: {\n '[class]': `classNames()`,\n '[style]': `style()`,\n },\n})\nexport class NgbDialogMain {\n readonly dialog = inject(NgbDialogContainer);\n readonly options = this.dialog.options;\n readonly classNames = computed(() => this.options().classNames?.join(' ') || '');\n readonly style = computed(() => {\n return {\n width: this.options().fullWindow ? '100vw' : this.options().width,\n height: this.options().fullWindow ? '100vh' : this.options().height,\n maxWidth: this.options().fullWindow ? '100vw' : this.options().maxWidth,\n maxHeight: this.options().fullWindow ? '100vh' : this.options().maxHeight || '96vh',\n minHeight: this.options().minHeight,\n minWidth: this.options().minWidth,\n };\n });\n}\n\n@Directive({\n selector: '[ngbDialogBackdrop]',\n host: {\n '(click)': `close()`,\n },\n})\nexport class NgbDialogBackdrop {\n readonly dialog = inject(NgbDialogContainer);\n readonly options = this.dialog.options;\n\n close() {\n if (!this.options().disableClose) {\n this.dialog.close();\n }\n }\n}\n\n@Component({\n selector: '[ngbDialog]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [FocusTrap],\n imports: [NgbDialogMain, NgbDialogBackdrop],\n template: `\n <div class=\"pointer-events-none flex h-full items-center justify-center\">\n <div\n [@viewAnimation]\n ngbDialogMain\n class=\"{{\n 'pointer-events-auto relative flex max-w-[100vw] flex-col overflow-hidden border bg-foreground shadow-lg' +\n (options().fullWindow\n ? ' h-screen w-screen border-none'\n : ' max-w-[calc(100vw-30px)] rounded-base')\n }}\"\n >\n @if (!isHideHeader) {\n <div class=\"flex items-center justify-between border-b px-b4 py-b2\">\n <h2>{{ options().title }}</h2>\n </div>\n }\n <div class=\"h-full overflow-auto p-b4\">\n <ng-container #contentContainer />\n </div>\n </div>\n @if (showBackdrop()) {\n <div\n class=\"pointer-events-auto absolute top-0 -z-10 h-full w-full bg-black bg-opacity-30\"\n ngbDialogBackdrop\n [@fadeAnimation]\n ></div>\n }\n </div>\n `,\n host: {\n '[style]': '{ \"z-index\": options.overrideLowerDialog ? \"982\" : \"980\" }',\n '[@parentAnimation]': '',\n '(@parentAnimation.done)': 'animationDone()',\n },\n animations: [\n createHostAnimation(['@viewAnimation', '@fadeAnimation']),\n fadeAnimation('200ms'),\n viewAnimation,\n ],\n})\nexport class NgbDialogContainer extends BaseDialog {\n readonly myDialog = viewChild('contentContainer', { read: ViewContainerRef });\n\n backdropColor = true;\n isSidePopup = true;\n\n readonly onDone = new Subject<any>();\n readonly options = signal<DialogOptions>(new DialogOptions());\n readonly showBackdrop = computed(() => !this.options().fullWindow && this.options().backdrop);\n isHideHeader = false;\n\n constructor() {\n super();\n afterNextRender(() => {\n this._afterViewSource.next(this.myDialog()!);\n });\n }\n\n override setOptions(options: DialogOptions) {\n this.options.set(options);\n this.isHideHeader = options.header || false;\n this.backdropColor = options.backdropColor || true;\n }\n}\n\n@Directive({\n selector: '[ngbDialogClose]',\n hostDirectives: [{ directive: NgbPortalClose, inputs: ['ngbPortalClose: ngbDialogClose'] }],\n})\nexport class NgbDialogClose {}\n\nexport function provideDialog(dialog: typeof NgbDialogContainer) {\n return {\n provide: NgbDialogContainer,\n useExisting: dialog,\n };\n}\n","/*\n * Public API Surface of dialog\n */\n\nexport * from './dialog.service';\nexport * from './dialog';\nexport * from './dialog.animation';\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":"ngbase-adk-dialog.mjs","sources":["../../../projects/adk/dialog/dialog.service.ts","../../../projects/adk/dialog/dialog.animation.ts","../../../projects/adk/dialog/dialog.ts","../../../projects/adk/dialog/public-api.ts","../../../projects/adk/dialog/ngbase-adk-dialog.ts"],"sourcesContent":["import { basePortal, DialogInput, DialogOptions } from '@ngbase/adk/portal';\nimport { NgbDialogContainer } from './dialog';\n\nexport function ngbDialogPortal(component: typeof NgbDialogContainer) {\n const NAME = 'dialog';\n const base = basePortal(NAME, component);\n\n function open<T>(component: DialogInput, opt?: DialogOptions) {\n const { diaRef } = base.open(\n component,\n (comp, options) => {\n comp.instance.setOptions(options);\n },\n opt,\n );\n\n return diaRef;\n }\n\n function closeAll() {\n base.closeAll();\n }\n return { open, closeAll };\n}\n\nexport type NgbDialog = ReturnType<typeof ngbDialogPortal>;\n","import {\n animate,\n AnimationTriggerMetadata,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\n\nexport const sideAnimation: AnimationTriggerMetadata = trigger('sideAnimation', [\n state('left', style({ transform: 'translate3d(-100%, 0, 0)' })),\n state('right', style({ transform: 'translate3d(100%, 0, 0)' })),\n state('center', style({ transform: 'none' })),\n transition('void => *', animate('0ms')),\n transition('* => *', animate('300ms cubic-bezier(0.55, 0.31, 0.15, 0.93)')),\n]);\n\nexport const viewAnimation: AnimationTriggerMetadata = trigger('viewAnimation', [\n state('1', style({ transform: 'none', opacity: 1 })),\n state('void', style({ transform: 'translate3d(0, 10px, 0) scale(0.99)', opacity: 0 })),\n state('0', style({ transform: 'translate3d(0, 10px, 0)', opacity: 0 })),\n transition('* => *', animate('200ms ease')),\n]);\n// cubic-bezier(0.25, 0.8, 0.25, 1)\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n Directive,\n inject,\n signal,\n viewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { FocusTrap } from '@ngbase/adk/a11y';\nimport { BaseDialog, DialogOptions, NgbPortalClose } from '@ngbase/adk/portal';\nimport { createHostAnimation, fadeAnimation } from '@ngbase/adk/utils';\nimport { Subject } from 'rxjs';\nimport { viewAnimation } from './dialog.animation';\n\n@Directive({\n selector: '[ngbDialogMain]',\n host: {\n '[class]': `classNames()`,\n '[style]': `style()`,\n },\n})\nexport class NgbDialogMain {\n readonly dialog = inject(NgbDialogContainer);\n readonly options = this.dialog.options;\n readonly classNames = computed(() => this.options().classNames?.join(' ') || '');\n readonly style = computed(() => {\n return {\n width: this.options().fullWindow ? '100vw' : this.options().width,\n height: this.options().fullWindow ? '100vh' : this.options().height,\n maxWidth: this.options().fullWindow ? '100vw' : this.options().maxWidth,\n maxHeight: this.options().fullWindow ? '100vh' : this.options().maxHeight || '96vh',\n minHeight: this.options().minHeight,\n minWidth: this.options().minWidth,\n };\n });\n}\n\n@Directive({\n selector: '[ngbDialogBackdrop]',\n host: {\n '(click)': `close()`,\n },\n})\nexport class NgbDialogBackdrop {\n readonly dialog = inject(NgbDialogContainer);\n readonly options = this.dialog.options;\n\n close() {\n if (!this.options().disableClose) {\n this.dialog.close();\n }\n }\n}\n\n@Component({\n selector: '[ngbDialog]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [FocusTrap],\n imports: [NgbDialogMain, NgbDialogBackdrop],\n template: `\n <div class=\"pointer-events-none flex h-full items-center justify-center\">\n <div\n [@viewAnimation]\n ngbDialogMain\n class=\"{{\n 'pointer-events-auto relative flex max-w-[100vw] flex-col overflow-hidden border bg-foreground shadow-lg' +\n (options().fullWindow\n ? ' h-screen w-screen border-none'\n : ' max-w-[calc(100vw-30px)] rounded-lg')\n }}\"\n >\n @if (!isHideHeader) {\n <div class=\"flex items-center justify-between border-b px-4 py-2\">\n <h2>{{ options().title }}</h2>\n </div>\n }\n <div class=\"h-full overflow-auto p-4\">\n <ng-container #contentContainer />\n </div>\n </div>\n @if (showBackdrop()) {\n <div\n class=\"pointer-events-auto absolute top-0 -z-10 h-full w-full bg-black bg-opacity-30\"\n ngbDialogBackdrop\n [@fadeAnimation]\n ></div>\n }\n </div>\n `,\n host: {\n '[style]': '{ \"z-index\": options.overrideLowerDialog ? \"982\" : \"980\" }',\n '[@parentAnimation]': '',\n '(@parentAnimation.done)': 'animationDone()',\n },\n animations: [\n createHostAnimation(['@viewAnimation', '@fadeAnimation']),\n fadeAnimation('200ms'),\n viewAnimation,\n ],\n})\nexport class NgbDialogContainer extends BaseDialog {\n readonly myDialog = viewChild('contentContainer', { read: ViewContainerRef });\n\n backdropColor = true;\n isSidePopup = true;\n\n readonly onDone = new Subject<any>();\n readonly options = signal<DialogOptions>(new DialogOptions());\n readonly showBackdrop = computed(() => !this.options().fullWindow && this.options().backdrop);\n isHideHeader = false;\n\n constructor() {\n super();\n afterNextRender(() => {\n this._afterViewSource.next(this.myDialog()!);\n });\n }\n\n override setOptions(options: DialogOptions) {\n this.options.set(options);\n this.isHideHeader = options.header || false;\n this.backdropColor = options.backdropColor || true;\n }\n}\n\n@Directive({\n selector: '[ngbDialogClose]',\n hostDirectives: [{ directive: NgbPortalClose, inputs: ['ngbPortalClose: ngbDialogClose'] }],\n})\nexport class NgbDialogClose {}\n\nexport function provideDialog(dialog: typeof NgbDialogContainer) {\n return {\n provide: NgbDialogContainer,\n useExisting: dialog,\n };\n}\n","/*\n * Public API Surface of dialog\n */\n\nexport * from './dialog.service';\nexport * from './dialog';\nexport * from './dialog.animation';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -107,10 +107,10 @@ class NgbPagination {
|
|
|
107
107
|
this.valueChanged.emit(this.active());
|
|
108
108
|
}
|
|
109
109
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbPagination, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
110
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.0", type: NgbPagination, isStandalone: true, selector: "[ngbPagination]", inputs: { total: { classPropertyName: "total", publicName: "total", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: true, transformFunction: null }, sizeOptions: { classPropertyName: "sizeOptions", publicName: "sizeOptions", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { size: "sizeChange", active: "activeChange", valueChanged: "valueChanged" }, host: { attributes: { "role": "pagination", "aria-label": "pagination" }, classAttribute: "flex items-center gap-
|
|
111
|
-
<div class="flex items-center gap-
|
|
110
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.0", type: NgbPagination, isStandalone: true, selector: "[ngbPagination]", inputs: { total: { classPropertyName: "total", publicName: "total", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: true, transformFunction: null }, sizeOptions: { classPropertyName: "sizeOptions", publicName: "sizeOptions", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { size: "sizeChange", active: "activeChange", valueChanged: "valueChanged" }, host: { attributes: { "role": "pagination", "aria-label": "pagination" }, classAttribute: "flex items-center gap-8 font-semibold" }, ngImport: i0, template: `
|
|
111
|
+
<div class="flex items-center gap-2">
|
|
112
112
|
<div>Rows per page</div>
|
|
113
|
-
<div ngbSelect [value]="size()" (valueChange)="sizeChanged($event)" class="w-20 !py-
|
|
113
|
+
<div ngbSelect [value]="size()" (valueChange)="sizeChanged($event)" class="w-20 !py-1.5">
|
|
114
114
|
@for (size of sizeOptions(); track size) {
|
|
115
115
|
<div ngbOption [value]="size">
|
|
116
116
|
{{ size }}
|
|
@@ -119,21 +119,21 @@ class NgbPagination {
|
|
|
119
119
|
</div>
|
|
120
120
|
</div>
|
|
121
121
|
<div>Page {{ active() }} of {{ totalSnaps() }}</div>
|
|
122
|
-
<div class="flex items-center gap-
|
|
123
|
-
<button ngbPaginationBtn="prev" class="h-
|
|
124
|
-
<button ngbPaginationBtn="prev" jump="-1" class="h-
|
|
122
|
+
<div class="flex items-center gap-2">
|
|
123
|
+
<button ngbPaginationBtn="prev" class="h-8 w-8 !p-2"><</button>
|
|
124
|
+
<button ngbPaginationBtn="prev" jump="-1" class="h-8 w-8 !p-2"><</button>
|
|
125
125
|
@for (snap of snaps(); track snap) {
|
|
126
126
|
<button
|
|
127
127
|
ngbPaginationBtn="page"
|
|
128
128
|
[jump]="snap"
|
|
129
129
|
[class]="active() === snap ? 'bg-muted-background text-primary' : ''"
|
|
130
|
-
class="min-w-
|
|
130
|
+
class="min-w-9 !p-2 ring-offset-background"
|
|
131
131
|
>
|
|
132
132
|
{{ snap }}
|
|
133
133
|
</button>
|
|
134
134
|
}
|
|
135
|
-
<button ngbPaginationBtn="next" jump="1" class="h-
|
|
136
|
-
<button ngbPaginationBtn="next" class="h-
|
|
135
|
+
<button ngbPaginationBtn="next" jump="1" class="h-8 w-8 !p-2">></button>
|
|
136
|
+
<button ngbPaginationBtn="next" class="h-8 w-8 !p-2">></button>
|
|
137
137
|
</div>
|
|
138
138
|
`, isInline: true, dependencies: [{ kind: "component", type: NgbSelect, selector: "[ngbSelect]", inputs: ["search"], outputs: ["searchChange"] }, { kind: "directive", type: NgbOption, selector: "[ngbOption]", inputs: ["value", "disabled", "ayId"], outputs: ["onSelectionChange"] }, { kind: "directive", type: NgbPaginationBtn, selector: "[ngbPaginationBtn]", inputs: ["ngbPaginationBtn", "jump"] }] }); }
|
|
139
139
|
}
|
|
@@ -143,9 +143,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
|
|
|
143
143
|
selector: '[ngbPagination]',
|
|
144
144
|
imports: [NgbSelect, NgbOption, NgbPaginationBtn],
|
|
145
145
|
template: `
|
|
146
|
-
<div class="flex items-center gap-
|
|
146
|
+
<div class="flex items-center gap-2">
|
|
147
147
|
<div>Rows per page</div>
|
|
148
|
-
<div ngbSelect [value]="size()" (valueChange)="sizeChanged($event)" class="w-20 !py-
|
|
148
|
+
<div ngbSelect [value]="size()" (valueChange)="sizeChanged($event)" class="w-20 !py-1.5">
|
|
149
149
|
@for (size of sizeOptions(); track size) {
|
|
150
150
|
<div ngbOption [value]="size">
|
|
151
151
|
{{ size }}
|
|
@@ -154,25 +154,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
|
|
|
154
154
|
</div>
|
|
155
155
|
</div>
|
|
156
156
|
<div>Page {{ active() }} of {{ totalSnaps() }}</div>
|
|
157
|
-
<div class="flex items-center gap-
|
|
158
|
-
<button ngbPaginationBtn="prev" class="h-
|
|
159
|
-
<button ngbPaginationBtn="prev" jump="-1" class="h-
|
|
157
|
+
<div class="flex items-center gap-2">
|
|
158
|
+
<button ngbPaginationBtn="prev" class="h-8 w-8 !p-2"><</button>
|
|
159
|
+
<button ngbPaginationBtn="prev" jump="-1" class="h-8 w-8 !p-2"><</button>
|
|
160
160
|
@for (snap of snaps(); track snap) {
|
|
161
161
|
<button
|
|
162
162
|
ngbPaginationBtn="page"
|
|
163
163
|
[jump]="snap"
|
|
164
164
|
[class]="active() === snap ? 'bg-muted-background text-primary' : ''"
|
|
165
|
-
class="min-w-
|
|
165
|
+
class="min-w-9 !p-2 ring-offset-background"
|
|
166
166
|
>
|
|
167
167
|
{{ snap }}
|
|
168
168
|
</button>
|
|
169
169
|
}
|
|
170
|
-
<button ngbPaginationBtn="next" jump="1" class="h-
|
|
171
|
-
<button ngbPaginationBtn="next" class="h-
|
|
170
|
+
<button ngbPaginationBtn="next" jump="1" class="h-8 w-8 !p-2">></button>
|
|
171
|
+
<button ngbPaginationBtn="next" class="h-8 w-8 !p-2">></button>
|
|
172
172
|
</div>
|
|
173
173
|
`,
|
|
174
174
|
host: {
|
|
175
|
-
class: 'flex items-center gap-
|
|
175
|
+
class: 'flex items-center gap-8 font-semibold',
|
|
176
176
|
role: 'pagination',
|
|
177
177
|
'aria-label': 'pagination',
|
|
178
178
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngbase-adk-pagination.mjs","sources":["../../../projects/adk/pagination/pagination.ts","../../../projects/adk/pagination/ngbase-adk-pagination.ts"],"sourcesContent":["import {\n Component,\n computed,\n Directive,\n inject,\n input,\n model,\n numberAttribute,\n output,\n} from '@angular/core';\nimport { NgbSelect, NgbOption } from '@ngbase/adk/select';\n\n@Directive({\n selector: '[ngbPaginationBtn]',\n host: {\n type: 'button',\n '[attr.aria-label]': 'ariaLabel()',\n '[disabled]': 'disabled()',\n '(click)': 'clicked()',\n '[attr.aria-current]': 'ariaCurrent()',\n },\n})\nexport class NgbPaginationBtn {\n readonly pagination = inject(NgbPagination);\n\n readonly ngbPaginationBtn = input.required<'next' | 'prev' | 'page'>();\n readonly jump = input(undefined, { transform: numberAttribute });\n\n readonly disabled = computed(() =>\n this.ngbPaginationBtn() === 'page'\n ? false\n : this.ngbPaginationBtn() === 'prev'\n ? !this.pagination.prev()\n : !this.pagination.next(),\n );\n readonly ariaLabel = computed(() => {\n return this.ngbPaginationBtn() === 'page'\n ? 'Go to page'\n : this.ngbPaginationBtn() === 'prev'\n ? 'Go to previous page'\n : 'Go to next page';\n });\n\n readonly ariaCurrent = computed(() =>\n this.ngbPaginationBtn() === 'page' && this.pagination.active() === this.jump()\n ? 'page'\n : undefined,\n );\n\n clicked() {\n if (this.ngbPaginationBtn() === 'page') {\n this.pagination.goto(this.jump()!);\n } else if (this.ngbPaginationBtn() === 'prev') {\n if (this.jump()) {\n this.pagination.jump(-1);\n } else {\n this.pagination.goto(0);\n }\n } else {\n if (this.jump()) {\n this.pagination.jump(1);\n } else {\n this.pagination.goto(this.pagination.total() - 1);\n }\n }\n }\n}\n\n@Component({\n selector: '[ngbPagination]',\n imports: [NgbSelect, NgbOption, NgbPaginationBtn],\n template: `\n <div class=\"flex items-center gap-b2\">\n <div>Rows per page</div>\n <div ngbSelect [value]=\"size()\" (valueChange)=\"sizeChanged($event)\" class=\"w-20 !py-b1.5\">\n @for (size of sizeOptions(); track size) {\n <div ngbOption [value]=\"size\">\n {{ size }}\n </div>\n }\n </div>\n </div>\n <div>Page {{ active() }} of {{ totalSnaps() }}</div>\n <div class=\"flex items-center gap-b2\">\n <button ngbPaginationBtn=\"prev\" class=\"h-b8 w-b8 !p-b2\"><</button>\n <button ngbPaginationBtn=\"prev\" jump=\"-1\" class=\"h-b8 w-b8 !p-b2\"><</button>\n @for (snap of snaps(); track snap) {\n <button\n ngbPaginationBtn=\"page\"\n [jump]=\"snap\"\n [class]=\"active() === snap ? 'bg-muted-background text-primary' : ''\"\n class=\"min-w-b9 !p-b2 ring-offset-background\"\n >\n {{ snap }}\n </button>\n }\n <button ngbPaginationBtn=\"next\" jump=\"1\" class=\"h-b8 w-b8 !p-b2\">></button>\n <button ngbPaginationBtn=\"next\" class=\"h-b8 w-b8 !p-b2\">></button>\n </div>\n `,\n host: {\n class: 'flex items-center gap-b8 font-semibold',\n role: 'pagination',\n 'aria-label': 'pagination',\n },\n})\nexport class NgbPagination {\n // Inputs\n readonly total = input.required<number>();\n readonly size = model.required<number>();\n readonly sizeOptions = input<number[]>([10, 20, 50, 100]);\n readonly active = model.required<number>();\n readonly valueChanged = output<number>();\n\n // State\n readonly totalSnaps = computed(() => Math.ceil(this.total() / this.size()));\n readonly snaps = computed(() => {\n const activeIndex = this.active();\n const total = this.totalSnaps();\n\n const num = [];\n let start = activeIndex - 2 > 1 ? activeIndex - 2 : 1;\n let end = start + 4;\n\n if (end > total) {\n end = total;\n start = total - 4 > 1 ? total - 4 : 1;\n }\n\n for (let i = start; i <= end; i++) {\n num.push(i);\n }\n return num;\n });\n\n readonly prev = computed(() => this.active() > 1);\n readonly next = computed(() => this.active() < this.totalSnaps());\n\n goto(index: number) {\n const total = this.totalSnaps();\n this.active.update(e => {\n e = index <= total ? index : total;\n e = e >= 1 ? e : 1;\n return e;\n });\n this.valueChanged.emit(this.active());\n }\n\n jump(by: number) {\n const active = this.active();\n this.goto(active + by);\n }\n\n sizeChanged(size: number) {\n this.size.set(size);\n this.active.set(1);\n this.valueChanged.emit(this.active());\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAsBa,gBAAgB,CAAA;AAV7B,IAAA,WAAA,GAAA;AAWW,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC;AAElC,QAAA,IAAA,CAAA,gBAAgB,GAAG,KAAK,CAAC,QAAQ,EAA4B;QAC7D,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;QAEvD,IAAQ,CAAA,QAAA,GAAG,QAAQ,CAAC,MAC3B,IAAI,CAAC,gBAAgB,EAAE,KAAK;AAC1B,cAAE;AACF,cAAE,IAAI,CAAC,gBAAgB,EAAE,KAAK;AAC5B,kBAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI;kBACrB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAC9B;AACQ,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAK;AACjC,YAAA,OAAO,IAAI,CAAC,gBAAgB,EAAE,KAAK;AACjC,kBAAE;AACF,kBAAE,IAAI,CAAC,gBAAgB,EAAE,KAAK;AAC5B,sBAAE;sBACA,iBAAiB;AACzB,SAAC,CAAC;QAEO,IAAW,CAAA,WAAA,GAAG,QAAQ,CAAC,MAC9B,IAAI,CAAC,gBAAgB,EAAE,KAAK,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,IAAI;AAC1E,cAAE;cACA,SAAS,CACd;AAmBF;IAjBC,OAAO,GAAA;AACL,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,KAAK,MAAM,EAAE;YACtC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAG,CAAC;;AAC7B,aAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,KAAK,MAAM,EAAE;AAC7C,YAAA,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;gBACf,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;iBACnB;AACL,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;;;aAEpB;AACL,YAAA,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;AACf,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;;iBAClB;AACL,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;;;;8GAxC5C,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAV5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,IAAI,EAAE;AACJ,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,mBAAmB,EAAE,aAAa;AAClC,wBAAA,YAAY,EAAE,YAAY;AAC1B,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,qBAAqB,EAAE,eAAe;AACvC,qBAAA;AACF,iBAAA;;MAqFY,aAAa,CAAA;AAtC1B,IAAA,WAAA,GAAA;;AAwCW,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAU;AAChC,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAU;AAC/B,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AAChD,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAU;QACjC,IAAY,CAAA,YAAA,GAAG,MAAM,EAAU;;QAG/B,IAAU,CAAA,UAAA,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AAClE,QAAA,IAAA,CAAA,KAAK,GAAG,QAAQ,CAAC,MAAK;AAC7B,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE;AACjC,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE;YAE/B,MAAM,GAAG,GAAG,EAAE;AACd,YAAA,IAAI,KAAK,GAAG,WAAW,GAAG,CAAC,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,CAAC;AACrD,YAAA,IAAI,GAAG,GAAG,KAAK,GAAG,CAAC;AAEnB,YAAA,IAAI,GAAG,GAAG,KAAK,EAAE;gBACf,GAAG,GAAG,KAAK;AACX,gBAAA,KAAK,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC;;AAGvC,YAAA,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE;AACjC,gBAAA,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;;AAEb,YAAA,OAAO,GAAG;AACZ,SAAC,CAAC;AAEO,QAAA,IAAA,CAAA,IAAI,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACxC,QAAA,IAAA,CAAA,IAAI,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;AAsBlE;AApBC,IAAA,IAAI,CAAC,KAAa,EAAA;AAChB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE;AAC/B,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAG;AACrB,YAAA,CAAC,GAAG,KAAK,IAAI,KAAK,GAAG,KAAK,GAAG,KAAK;AAClC,YAAA,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AAClB,YAAA,OAAO,CAAC;AACV,SAAC,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;;AAGvC,IAAA,IAAI,CAAC,EAAU,EAAA;AACb,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AAC5B,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;;AAGxB,IAAA,WAAW,CAAC,IAAY,EAAA;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;;8GAlD5B,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,EAnCd,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,YAAA,EAAA,MAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,EAAA,cAAA,EAAA,wCAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EA7BS,SAAS,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,SAAS,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAhDnB,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAoFhB,aAAa,EAAA,UAAA,EAAA,CAAA;kBAtCzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,gBAAgB,CAAC;AACjD,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BT,EAAA,CAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,wCAAwC;AAC/C,wBAAA,IAAI,EAAE,YAAY;AAClB,wBAAA,YAAY,EAAE,YAAY;AAC3B,qBAAA;AACF,iBAAA;;;ACzGD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"ngbase-adk-pagination.mjs","sources":["../../../projects/adk/pagination/pagination.ts","../../../projects/adk/pagination/ngbase-adk-pagination.ts"],"sourcesContent":["import {\n Component,\n computed,\n Directive,\n inject,\n input,\n model,\n numberAttribute,\n output,\n} from '@angular/core';\nimport { NgbSelect, NgbOption } from '@ngbase/adk/select';\n\n@Directive({\n selector: '[ngbPaginationBtn]',\n host: {\n type: 'button',\n '[attr.aria-label]': 'ariaLabel()',\n '[disabled]': 'disabled()',\n '(click)': 'clicked()',\n '[attr.aria-current]': 'ariaCurrent()',\n },\n})\nexport class NgbPaginationBtn {\n readonly pagination = inject(NgbPagination);\n\n readonly ngbPaginationBtn = input.required<'next' | 'prev' | 'page'>();\n readonly jump = input(undefined, { transform: numberAttribute });\n\n readonly disabled = computed(() =>\n this.ngbPaginationBtn() === 'page'\n ? false\n : this.ngbPaginationBtn() === 'prev'\n ? !this.pagination.prev()\n : !this.pagination.next(),\n );\n readonly ariaLabel = computed(() => {\n return this.ngbPaginationBtn() === 'page'\n ? 'Go to page'\n : this.ngbPaginationBtn() === 'prev'\n ? 'Go to previous page'\n : 'Go to next page';\n });\n\n readonly ariaCurrent = computed(() =>\n this.ngbPaginationBtn() === 'page' && this.pagination.active() === this.jump()\n ? 'page'\n : undefined,\n );\n\n clicked() {\n if (this.ngbPaginationBtn() === 'page') {\n this.pagination.goto(this.jump()!);\n } else if (this.ngbPaginationBtn() === 'prev') {\n if (this.jump()) {\n this.pagination.jump(-1);\n } else {\n this.pagination.goto(0);\n }\n } else {\n if (this.jump()) {\n this.pagination.jump(1);\n } else {\n this.pagination.goto(this.pagination.total() - 1);\n }\n }\n }\n}\n\n@Component({\n selector: '[ngbPagination]',\n imports: [NgbSelect, NgbOption, NgbPaginationBtn],\n template: `\n <div class=\"flex items-center gap-2\">\n <div>Rows per page</div>\n <div ngbSelect [value]=\"size()\" (valueChange)=\"sizeChanged($event)\" class=\"w-20 !py-1.5\">\n @for (size of sizeOptions(); track size) {\n <div ngbOption [value]=\"size\">\n {{ size }}\n </div>\n }\n </div>\n </div>\n <div>Page {{ active() }} of {{ totalSnaps() }}</div>\n <div class=\"flex items-center gap-2\">\n <button ngbPaginationBtn=\"prev\" class=\"h-8 w-8 !p-2\"><</button>\n <button ngbPaginationBtn=\"prev\" jump=\"-1\" class=\"h-8 w-8 !p-2\"><</button>\n @for (snap of snaps(); track snap) {\n <button\n ngbPaginationBtn=\"page\"\n [jump]=\"snap\"\n [class]=\"active() === snap ? 'bg-muted-background text-primary' : ''\"\n class=\"min-w-9 !p-2 ring-offset-background\"\n >\n {{ snap }}\n </button>\n }\n <button ngbPaginationBtn=\"next\" jump=\"1\" class=\"h-8 w-8 !p-2\">></button>\n <button ngbPaginationBtn=\"next\" class=\"h-8 w-8 !p-2\">></button>\n </div>\n `,\n host: {\n class: 'flex items-center gap-8 font-semibold',\n role: 'pagination',\n 'aria-label': 'pagination',\n },\n})\nexport class NgbPagination {\n // Inputs\n readonly total = input.required<number>();\n readonly size = model.required<number>();\n readonly sizeOptions = input<number[]>([10, 20, 50, 100]);\n readonly active = model.required<number>();\n readonly valueChanged = output<number>();\n\n // State\n readonly totalSnaps = computed(() => Math.ceil(this.total() / this.size()));\n readonly snaps = computed(() => {\n const activeIndex = this.active();\n const total = this.totalSnaps();\n\n const num = [];\n let start = activeIndex - 2 > 1 ? activeIndex - 2 : 1;\n let end = start + 4;\n\n if (end > total) {\n end = total;\n start = total - 4 > 1 ? total - 4 : 1;\n }\n\n for (let i = start; i <= end; i++) {\n num.push(i);\n }\n return num;\n });\n\n readonly prev = computed(() => this.active() > 1);\n readonly next = computed(() => this.active() < this.totalSnaps());\n\n goto(index: number) {\n const total = this.totalSnaps();\n this.active.update(e => {\n e = index <= total ? index : total;\n e = e >= 1 ? e : 1;\n return e;\n });\n this.valueChanged.emit(this.active());\n }\n\n jump(by: number) {\n const active = this.active();\n this.goto(active + by);\n }\n\n sizeChanged(size: number) {\n this.size.set(size);\n this.active.set(1);\n this.valueChanged.emit(this.active());\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -762,7 +762,7 @@ class NgbPopover extends BaseDialog {
|
|
|
762
762
|
ngbPopoverMain
|
|
763
763
|
[@slideInOutAnimation]
|
|
764
764
|
class="{{
|
|
765
|
-
'menu-container pointer-events-auto fixed z-10 flex flex-col rounded-
|
|
765
|
+
'menu-container pointer-events-auto fixed z-10 flex flex-col rounded-lg border bg-foreground shadow-md ' +
|
|
766
766
|
(options().anchor ? 'popover-anchor ' : 'overflow-auto ')
|
|
767
767
|
}}"
|
|
768
768
|
>
|
|
@@ -816,7 +816,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
|
|
|
816
816
|
ngbPopoverMain
|
|
817
817
|
[@slideInOutAnimation]
|
|
818
818
|
class="{{
|
|
819
|
-
'menu-container pointer-events-auto fixed z-10 flex flex-col rounded-
|
|
819
|
+
'menu-container pointer-events-auto fixed z-10 flex flex-col rounded-lg border bg-foreground shadow-md ' +
|
|
820
820
|
(options().anchor ? 'popover-anchor ' : 'overflow-auto ')
|
|
821
821
|
}}"
|
|
822
822
|
>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngbase-adk-popover.mjs","sources":["../../../projects/adk/popover/base-popover.service.ts","../../../projects/adk/popover/utils.ts","../../../projects/adk/popover/popover.ts","../../../projects/adk/popover/popover.service.ts","../../../projects/adk/popover/popover-trigger.ts","../../../projects/adk/popover/public-api.ts","../../../projects/adk/popover/ngbase-adk-popover.ts"],"sourcesContent":["import { Type } from '@angular/core';\nimport { basePortal, DialogInput } from '@ngbase/adk/portal';\nimport { NgbPopover } from './popover';\nimport { PopoverOptions } from './popover.service';\n\nexport function basePopoverPortal<T>(component: Type<T>) {\n const NAME = 'popover';\n const base = basePortal(NAME, component);\n\n function open<T>(component: DialogInput<T>, options: PopoverOptions) {\n const { diaRef, parent, replace, childSignal } = base.open(\n component,\n (comp, opt) => {\n const compInst = comp.instance as NgbPopover;\n compInst.setOptions(opt as PopoverOptions);\n },\n options,\n );\n\n return {\n diaRef,\n events: (parent.instance as NgbPopover).events,\n parent: parent.instance,\n replace,\n childSignal,\n };\n }\n\n function closeAll() {\n base.closeAll();\n }\n return { open, closeAll };\n}\n","import { PopoverOptions, PopoverPosition } from './popover.service';\n\nconst positionSwap: Record<PopoverPosition, PopoverPosition> = {\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left',\n tl: 'bl',\n tr: 'br',\n bl: 'tl',\n br: 'tr',\n};\n\nexport interface Rect {\n top: number;\n left: number;\n width: number;\n height: number;\n}\n\nexport enum Position {\n Top = 'top',\n Bottom = 'bottom',\n Left = 'left',\n Right = 'right',\n TopLeft = 'tl',\n TopRight = 'tr',\n BottomLeft = 'bl',\n BottomRight = 'br',\n}\nexport interface ConfigObj {\n top: number;\n left: number;\n width: number;\n height: number;\n elWidth: number;\n elHeight: number;\n offset: number;\n priority: PopoverPosition;\n position: PopoverPosition;\n windowWidth: number;\n windowHeight: number;\n scrollWidth: number;\n}\n\nexport interface OverflowData {\n top: boolean;\n bottom: boolean;\n left: boolean;\n right: boolean;\n leftSide: boolean;\n rightSide: boolean;\n any: boolean;\n preferredHorizontal: 'left' | 'right' | undefined;\n preferredVertical: 'top' | 'bottom' | undefined;\n overflowAmount: {\n top: number;\n bottom: number;\n left: number;\n right: number;\n leftSide: number;\n rightSide: number;\n };\n}\n// Enums and Interfaces\n\nexport interface PositionResult {\n top: number;\n left: number;\n bottom?: number;\n right?: number;\n position: Position;\n maxHeight?: number;\n maxWidth?: number;\n}\n\nexport class PopoverPositioner {\n private overflow!: OverflowData;\n private elRect!: Rect;\n private offset = this.config.offset || 5;\n constructor(\n private config: PopoverOptions,\n private windowDimensions: { width: number; height: number },\n private scrollWidth: number,\n ) {}\n\n public calculatePosition(): PositionResult {\n const targetRect = this.getTargetRect();\n const elRect = this.getElementRect();\n this.elRect = elRect;\n const initialPosition = this.getInitialPosition(\n targetRect,\n elRect,\n (this.config.position as Position) || Position.Bottom,\n );\n const adjustedPosition = this.adjustForOverflow(initialPosition, targetRect, elRect);\n return this.finalizePosition(adjustedPosition, elRect);\n }\n\n private getTargetRect(): Rect {\n if (this.config.client) {\n const { x, y, w, h } = this.config.client;\n return { top: y, left: x, width: w, height: h };\n }\n const { top, left, width, height } = this.config.target.getBoundingClientRect();\n // return { top, left, width, height: Math.min(height, this.windowDimensions.height - top) };\n return { top, left, width, height };\n }\n\n private getElementRect(): Rect {\n const el = this.config.el!;\n return {\n top: 0,\n left: 0,\n width: el.clientWidth,\n height: el.clientHeight,\n };\n }\n\n private getInitialPosition(targetRect: Rect, elRect: Rect, position: Position): PositionResult {\n const coords = this.getCoordinatesForPosition(position, targetRect, elRect, this.offset);\n // coords.left = Math.max(0, coords.left);\n // coords.top = Math.max(0, coords.top);\n return { ...coords, position };\n }\n\n private getCoordinatesForPosition(\n position: Position,\n targetRect: Rect,\n elRect: Rect,\n offset: number,\n ): { top: number; left: number } {\n switch (position) {\n case Position.Top:\n return {\n top: targetRect.top - elRect.height - offset,\n left: targetRect.left + (targetRect.width - elRect.width) / 2,\n };\n case Position.Bottom:\n return {\n top: targetRect.top + targetRect.height + offset,\n left: targetRect.left + (targetRect.width - elRect.width) / 2,\n };\n case Position.Left:\n return { top: targetRect.top, left: targetRect.left - elRect.width - offset };\n case Position.Right:\n return { top: targetRect.top, left: targetRect.left + targetRect.width + offset };\n case Position.TopLeft:\n return { top: targetRect.top - elRect.height - offset, left: targetRect.left };\n case Position.TopRight:\n return {\n top: targetRect.top - elRect.height - offset,\n left: targetRect.left - (elRect.width - targetRect.width),\n };\n case Position.BottomLeft:\n return { top: targetRect.top + targetRect.height + offset, left: targetRect.left };\n case Position.BottomRight:\n return {\n top: targetRect.top + targetRect.height + offset,\n left: targetRect.left - (elRect.width - targetRect.width),\n };\n }\n }\n\n private adjustForOverflow(\n position: PositionResult,\n targetRect: Rect,\n elRect: Rect,\n ): PositionResult {\n const overflow = this.checkOverflow(position, elRect, targetRect);\n this.overflow = overflow;\n if (overflow.any) {\n const newPosition = this.getAlternativePosition(position.position, overflow);\n return this.getInitialPosition(targetRect, elRect, newPosition);\n }\n return position;\n }\n\n private checkOverflow(position: PositionResult, elRect: Rect, targetRect: Rect): OverflowData {\n // Calculate available space on all sides\n const topSpace = position.top;\n const bottomSpace = this.windowDimensions.height - position.top;\n const leftSpace = position.left;\n const rightSpace = this.windowDimensions.width - position.left;\n // Calculate overflow amounts (negative means no overflow)\n const topOverflow = -(targetRect.top - elRect.height);\n const bottomOverflow =\n targetRect.top + targetRect.height + elRect.height - this.windowDimensions.height;\n // const leftOverflow = -(position.left - (elRect.width - targetRect.width));\n const leftOverflow = -(targetRect.left + targetRect.width - elRect.width);\n const leftSideOverflow = -(targetRect.left - elRect.width);\n const rightOverflow = targetRect.left + elRect.width - this.windowDimensions.width;\n const rightSideOverflow = -(targetRect.left + targetRect.width - elRect.width);\n\n const isTop = topOverflow > 0;\n const isBottom = bottomOverflow > 0;\n const isLeft = leftOverflow > 0;\n const isRight = rightOverflow > 0;\n const isLeftSide = leftSideOverflow > 0;\n const isRightSide = rightSideOverflow > 0;\n\n let preferredHorizontal: 'left' | 'right' | undefined;\n let preferredVertical: 'top' | 'bottom' | undefined;\n // If both left and right overflow, determine which side has more space\n if (isLeft || isRight) {\n preferredHorizontal = leftOverflow > rightOverflow ? 'right' : 'left';\n } else if (isLeftSide || isRightSide) {\n preferredHorizontal = leftSideOverflow > rightSideOverflow ? 'right' : 'left';\n }\n\n // If both top and bottom overflow, determine which side has more space\n if (isTop || isBottom) {\n preferredVertical = topOverflow > bottomOverflow ? 'bottom' : 'top';\n }\n return {\n top: isTop,\n bottom: isBottom,\n left: isLeft,\n right: isRight,\n leftSide: isLeftSide,\n rightSide: isRightSide,\n any: isTop || isBottom || isLeft || isRight || isLeftSide || isRightSide,\n preferredHorizontal,\n preferredVertical,\n overflowAmount: {\n top: topOverflow,\n bottom: bottomOverflow,\n left: leftOverflow,\n right: rightOverflow,\n leftSide: leftSideOverflow,\n rightSide: rightSideOverflow,\n },\n };\n }\n\n getAlternativePosition(position: Position, overflow: OverflowData): Position {\n // if (overflow.top) {\n // if (position === Position.Top) {\n // return Position.Bottom;\n // }\n // }\n // if (\n // (overflow.preferredVertical === 'top' || !overflow.bottom) &&\n // (overflow.preferredHorizontal === 'left' || !overflow.right)\n // ) {\n // return Position.BottomRight;\n // }\n // if (\n // (overflow.preferredVertical === 'top' || !overflow.bottom) &&\n // (overflow.preferredHorizontal === 'right' || !overflow.left)\n // ) {\n // return Position.BottomLeft;\n // }\n // if (\n // (overflow.preferredVertical === 'bottom' || !overflow.top) &&\n // (overflow.preferredHorizontal === 'left' || !overflow.right)\n // ) {\n // return Position.TopRight;\n // }\n // if (\n // (overflow.preferredVertical === 'bottom' || !overflow.top) &&\n // (overflow.preferredHorizontal === 'right' || !overflow.left)\n // ) {\n // return Position.TopLeft;\n // }\n // if (overflow.bottom) {\n // if (position.includes('bottom')) {\n // return positionSwap[position] as Position;\n // } else if (position.includes('bl') && overflow.preferredVertical === 'top') {\n // return overflow.right && overflow.preferredHorizontal !== 'right'\n // ? Position.TopRight\n // : Position.TopLeft;\n // } else if (position.includes('bl') && overflow.preferredVertical === 'bottom') {\n // return overflow.right && overflow.preferredHorizontal !== 'right'\n // ? Position.BottomRight\n // : Position.BottomLeft;\n // }\n // }\n // if (overflow.left) {\n // if (position === Position.Left) {\n // return Position.Right;\n // }\n // if (overflow.preferredHorizontal === 'left' || !overflow.right) {\n // return overflow.bottom ? Position.TopLeft : Position.BottomLeft;\n // }\n // if (overflow.preferredHorizontal === 'right') {\n // return overflow.bottom ? Position.TopRight : Position.BottomRight;\n // }\n // }\n // if (overflow.right) {\n // if (position.includes('right')) {\n // return !overflow.left\n // ? Position.Left\n // : overflow.bottom && !overflow.left\n // ? (positionSwap[position] as Position)\n // : overflow.left && overflow.bottom\n // ? Position.Top\n // : Position.BottomRight;\n // } else if (position.includes('bl')) {\n // return overflow.bottom ? Position.TopRight : Position.BottomRight;\n // }\n // }\n // return position;\n if (!overflow.any) {\n return position;\n }\n\n // Simple mapping for opposite positions\n const opposites = {\n [Position.Top]: Position.Bottom,\n [Position.Bottom]: Position.Top,\n [Position.Left]: Position.Right,\n [Position.Right]: Position.Left,\n [Position.TopLeft]: Position.BottomRight,\n [Position.TopRight]: Position.BottomLeft,\n [Position.BottomLeft]: Position.TopRight,\n [Position.BottomRight]: Position.TopLeft,\n };\n\n // For cardinal positions (Top, Bottom, Left, Right)\n if ([Position.Top, Position.Bottom].includes(position)) {\n return (overflow.preferredVertical as any) || opposites[position];\n }\n\n if ([Position.Left, Position.Right].includes(position)) {\n return (overflow.preferredHorizontal as any) || opposites[position];\n }\n\n // For corner positions\n const isTop = position.includes('t');\n const isLeft = position.includes('l');\n\n const vertical = overflow.preferredVertical === 'top' ? 't' : 'b';\n const horizontal = overflow.preferredHorizontal === 'left' ? 'r' : 'l';\n\n // If current position overflows, use the preferred directions\n if (\n (isTop && overflow.top) ||\n (!isTop && overflow.bottom) ||\n (isLeft && overflow.left) ||\n (!isLeft && overflow.right) ||\n (horizontal === 'r' && overflow.right) ||\n (horizontal === 'l' && overflow.left)\n ) {\n switch (vertical + horizontal) {\n case 'tl':\n return Position.TopLeft;\n case 'tr':\n return Position.TopRight;\n case 'bl':\n return Position.BottomLeft;\n case 'br':\n return Position.BottomRight;\n default:\n return opposites[position];\n }\n }\n\n return position;\n }\n\n private finalizePosition(position: PositionResult, elRect: Rect): PositionResult {\n const { top, left } = position;\n const bottom = position.position.startsWith('t')\n ? this.windowDimensions.height - (top + elRect.height)\n : undefined;\n // this is required if tooltip is going outside of the screen horizontally\n // this has to be done only if the position is top or bottom\n let right: number | undefined;\n right =\n left + elRect.width > this.windowDimensions.width\n ? 0\n : position.position.endsWith('r')\n ? this.windowDimensions.width - (left + elRect.width) - this.scrollWidth\n : undefined;\n\n let overallOffset = this.getOverallOffset(position);\n let maxHeight: number | undefined;\n if (\n position.position.startsWith('t') &&\n this.overflow.overflowAmount.top > -overallOffset.vertical\n ) {\n maxHeight = this.elRect.height - this.overflow.overflowAmount.top - overallOffset.vertical;\n } else if (\n position.position.startsWith('b') &&\n this.overflow.overflowAmount.bottom > -overallOffset.vertical\n ) {\n maxHeight = this.elRect.height - this.overflow.overflowAmount.bottom - overallOffset.vertical;\n }\n\n let maxWidth: number | undefined;\n if (\n position.position.endsWith('l') &&\n this.overflow.overflowAmount.right > -overallOffset.horizontal\n ) {\n maxWidth = this.elRect.width - this.overflow.overflowAmount.right - overallOffset.horizontal;\n } else if (\n position.position.endsWith('r') &&\n this.overflow.overflowAmount.left > -overallOffset.horizontal\n ) {\n maxWidth = this.elRect.width - this.overflow.overflowAmount.left - overallOffset.horizontal;\n }\n return {\n // top: Math.max(0, Math.min(top, this.windowDimensions.height - (maxHeight || elRect.height))),\n top: Math.max(0, top),\n bottom,\n left: right ? 0 : Math.max(overallOffset.horizontal, left),\n right: right ? Math.max(overallOffset.horizontal, right) : undefined,\n position: position.position,\n maxHeight,\n maxWidth,\n };\n }\n\n private getOverallOffset(position: PositionResult) {\n const overallOffset = this.config.sideOffset ?? 0;\n const isHorizontal = position.position === 'left' || position.position === 'right';\n return {\n horizontal: overallOffset + (isHorizontal ? this.offset : 0),\n vertical: overallOffset + (isHorizontal ? 0 : this.offset),\n };\n }\n}\n\n// Main function to use the class\nexport function tooltipPosition(\n config: PopoverOptions,\n windowDimensions = {\n width: window.innerWidth,\n height: window.innerHeight,\n },\n scrollWidth = window.innerWidth - document.documentElement.clientWidth,\n): PositionResult {\n const positioner = new PopoverPositioner(config, windowDimensions, scrollWidth);\n return positioner.calculatePosition();\n}\n\n// export function tooltipPosition(config: OverlayConfig): {\n// top: number;\n// left: number;\n// bottom?: number;\n// right?: number;\n// position: DialogPosition;\n// } {\n// const { target, el, position: priority = 'bottom', offset = 5, client: clientXY = null } = config;\n// let position: DialogPosition = priority;\n// let { top, left, width, height } = target.getBoundingClientRect();\n// if (clientXY) {\n// top = clientXY.y;\n// left = clientXY.x;\n// width = clientXY.w;\n// height = clientXY.h;\n// }\n// const { clientWidth: elWidth, clientHeight: elHeight } = el!;\n\n// // we need to check whether the height of the target element is greater than the height then we need to adjust the height\n// if (height > window.innerHeight) {\n// height = window.innerHeight - top;\n// }\n\n// return tooltipPositionInternal({\n// top,\n// left,\n// width,\n// height,\n// elWidth,\n// elHeight,\n// offset,\n// priority,\n// position,\n// windowWidth: window.innerWidth,\n// windowHeight: window.innerHeight,\n// scrollWidth: window.innerWidth - document.documentElement.clientWidth,\n// });\n// }\n\n// export function tooltipPositionInternal(data: ConfigObj): {\n// top: number;\n// bottom?: number;\n// left: number;\n// right?: number;\n// position: DialogPosition;\n// } {\n// let { elHeight, position, windowHeight, windowWidth, offset, elWidth, scrollWidth } = data;\n\n// position = positionSwapBasedOnOverflow(data);\n\n// let { top: topPos, left: leftPos } = getTooltipCoordinates(position, data);\n\n// if (topPos <= 0) {\n// topPos = offset;\n// } else if (topPos + elHeight > windowHeight) {\n// topPos = windowHeight - elHeight - offset;\n// } else if (leftPos < 0) {\n// leftPos = 0;\n// }\n\n// const bottomPos = position.startsWith('t') ? windowHeight - (topPos + elHeight) : undefined;\n// const rightPos =\n// leftPos + elWidth > windowWidth\n// ? 0\n// : position.endsWith('r')\n// ? windowWidth - (leftPos + elWidth) - scrollWidth\n// : undefined;\n\n// return {\n// top: topPos,\n// bottom: bottomPos,\n// left: rightPos ? 0 : leftPos,\n// position,\n// right: rightPos,\n// };\n// }\n\n// function getTooltipCoordinates(\n// position: DialogPosition,\n// data: ConfigObj,\n// ): { top: number; left: number } {\n// const { top, left, width, height, elWidth, elHeight, offset } = data;\n// switch (position) {\n// case 'top':\n// return {\n// top: top - elHeight - offset,\n// left: left + (width - elWidth) / 2,\n// };\n// case 'bottom':\n// return { top: top + height + offset, left: left + (width - elWidth) / 2 };\n// case 'left':\n// return { top, left: left - elWidth - offset };\n// case 'right':\n// return { top, left: left + width + offset };\n// case 'tl':\n// return { top: top - elHeight - offset, left };\n// case 'tr':\n// return { top: top - elHeight - offset, left: left - (elWidth - width) };\n// case 'bl':\n// return { top: top + height + offset, left };\n// case 'br':\n// return { top: top + height + offset, left: left - (elWidth - width) };\n// default:\n// return {\n// top: top - elHeight - offset,\n// left: left + (width - elWidth) / 2,\n// };\n// }\n// }\n\n// // function to check the overflow sides for target and element\n// export function checkOverflow(data: ConfigObj) {\n// const isTop = data.top - data.elHeight < 0;\n// const isBottom = data.top + data.height + data.elHeight > data.windowHeight;\n// const isLeft = data.left - data.elWidth < 0;\n// const isRight = data.left + data.width + data.elWidth > data.windowWidth;\n\n// return { top: isTop, bottom: isBottom, left: isLeft, right: isRight };\n// }\n\n// // position swap based on the overflow and priority\n// function positionSwapBasedOnOverflow(data: ConfigObj): DialogPosition {\n// const {\n// bottom: bottomOverflow,\n// left: leftOverflow,\n// right: rightOverflow,\n// top: topOverflow,\n// } = checkOverflow(data);\n// const { priority } = data;\n\n// let position = priority;\n// if (topOverflow) {\n// if (position.includes('top')) {\n// position = positionSwap[position];\n// }\n// }\n// if (bottomOverflow) {\n// if (position.includes('bottom')) {\n// position = positionSwap[position];\n// } else if (position.includes('bl')) {\n// position = rightOverflow ? 'tr' : 'tl';\n// }\n// }\n// if (leftOverflow) {\n// if (position.includes('left')) {\n// position = positionSwap[position];\n// }\n// }\n// if (rightOverflow) {\n// if (position.includes('right')) {\n// position = !leftOverflow\n// ? 'left'\n// : bottomOverflow && !leftOverflow\n// ? positionSwap[position]\n// : leftOverflow && bottomOverflow\n// ? 'top'\n// : 'br';\n// } else if (position.includes('bl')) {\n// position = bottomOverflow ? 'tr' : 'br';\n// }\n// }\n// return position;\n// }\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport {\n ChangeDetectionStrategy,\n Component,\n Directive,\n ElementRef,\n ViewContainerRef,\n afterNextRender,\n effect,\n inject,\n linkedSignal,\n signal,\n viewChild,\n} from '@angular/core';\nimport { FocusTrap } from '@ngbase/adk/a11y';\nimport { BaseDialog, NgbPortalClose } from '@ngbase/adk/portal';\nimport { createHostAnimation, disposals } from '@ngbase/adk/utils';\nimport { EMPTY, Observable, fromEvent, map, startWith, switchMap } from 'rxjs';\nimport { PopoverOptions, PopoverPosition } from './popover.service';\nimport { tooltipPosition } from './utils';\n\n@Directive({\n selector: '[ngbPopoverBackdrop]',\n hostDirectives: [FocusTrap],\n host: {\n '[style.clipPath]': 'popover.options().clipPath?.()',\n '[class]': 'popover.options().backdropClassName',\n '(click)': '!popover.options().disableClose && popover.close()',\n },\n})\nexport class NgbPopoverBackdrop {\n readonly popover = inject(NgbPopover);\n readonly focusTrap = inject(FocusTrap);\n\n constructor() {\n this.focusTrap._focusTrap = linkedSignal(() => this.popover.options().focusTrap ?? true);\n }\n}\n\n@Directive({\n selector: '[ngbPopoverMain]',\n host: {\n '[class]': 'popover.options().className',\n },\n})\nexport class NgbPopoverMain {\n readonly popover = inject(NgbPopover);\n}\n\n@Component({\n selector: 'ngb-popover',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgbPopoverBackdrop, NgbPopoverMain],\n template: ` <style>\n .popover-anchor {\n --action-angle: 180deg;\n --action-left: 50%;\n --action-top: -1rem;\n }\n .popover-anchor::before {\n content: '';\n position: absolute;\n width: 0;\n height: 0;\n border-style: solid;\n border-top: 0.8rem solid;\n @apply border-foreground;\n border-left: 0.5rem solid transparent;\n border-right: 0.5rem solid transparent;\n top: var(--action-top);\n left: var(--action-left);\n transform: translateX(-50%) rotate(var(--action-angle, 180deg));\n }\n </style>\n <div\n ngbPopoverMain\n [@slideInOutAnimation]\n class=\"{{\n 'menu-container pointer-events-auto fixed z-10 flex flex-col rounded-base border bg-foreground shadow-md ' +\n (options().anchor ? 'popover-anchor ' : 'overflow-auto ')\n }}\"\n >\n <div class=\"flex flex-1 flex-col overflow-auto\">\n <ng-container #myDialog />\n </div>\n </div>\n @if (options().backdrop) {\n <div\n ngbPopoverBackdrop\n class=\"popover-backdrop pointer-events-auto fixed top-0 h-full w-full\"\n ></div>\n }`,\n host: {\n class:\n 'fixed top-0 left-0 w-full h-full pointer-events-none z-p flex items-center justify-center',\n '[@parentAnimation]': '',\n '(@parentAnimation.done)': 'animationDone()',\n },\n animations: [\n createHostAnimation(['@slideInOutAnimation']),\n trigger('slideInOutAnimation', [\n state('1', style({ transform: 'none', opacity: 1 })),\n state('void', style({ transform: 'translateY(-10px) scale(0.95)', opacity: 0 })),\n state('0', style({ transform: 'translateY(-10px) scale(0.95)', opacity: 0 })),\n transition('* => *', animate('100ms ease-out')),\n ]),\n ],\n})\nexport class NgbPopover extends BaseDialog {\n private readonly disposals = disposals();\n\n readonly myDialog = viewChild.required('myDialog', { read: ViewContainerRef });\n readonly container = viewChild.required<NgbPopoverMain, ElementRef<HTMLElement>>(NgbPopoverMain, {\n read: ElementRef,\n });\n readonly backdropElement = viewChild<NgbPopoverBackdrop, ElementRef<HTMLElement>>(\n NgbPopoverBackdrop,\n { read: ElementRef },\n );\n\n readonly options = signal<PopoverOptions>({} as PopoverOptions);\n private lastPosition: PopoverPosition = 'top';\n readonly scrolled = signal(0);\n\n readonly events: Observable<{ type: string; value: any }> = this._afterViewSource.pipe(\n switchMap(e => {\n const el = this.container()!.nativeElement;\n const mouseenter = fromEvent(el, 'mouseenter');\n const mouseleave = fromEvent(el, 'mouseleave');\n const event = mouseenter.pipe(\n switchMap(e =>\n mouseleave.pipe(\n map(x => ({ type: 'mouseleave', value: x })),\n startWith({ type: 'mouseenter', value: e }),\n ),\n ),\n );\n return e ? event : EMPTY;\n }),\n );\n\n constructor() {\n super();\n\n const dialog = effect(() => {\n this._afterViewSource.next(this.myDialog()!);\n dialog.destroy();\n });\n\n effect(cleanup => {\n const el = this.container()!.nativeElement;\n const options = this.options();\n const target = this.getTarget();\n if (options.anchor) {\n options.offset = 16;\n }\n this.lastPosition = options.position || 'bottom';\n // this.schedulePopoverUpdate(target, el);\n if (options.smoothScroll) {\n // target.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n\n // fromEvent(window, 'scroll')\n // .pipe(\n // startWith(1),\n // tap((x) => console.count('scroll 50')),\n // debounceTime(50),\n // take(1),\n // )\n // .subscribe(() => {});\n // fromEvent(window, 'scroll')\n // .pipe(\n // startWith(1),\n // tap((x) => console.count('scroll 10')),\n // debounceTime(10),\n // take(1),\n // )\n // .subscribe(() => {\n // this.scrolled.update((x) => x + 1);\n // this.schedulePopoverUpdate(target, el);\n // });\n scrollToElement(target).then(() => {\n this.scrolled.update(x => x + 1);\n this.schedulePopoverUpdate(target, el, options);\n });\n } else {\n this.schedulePopoverUpdate(target, el, options);\n }\n\n // TODO: remove this once we have multi cleanup support\n if (!options.backdrop) {\n window.addEventListener('scroll', this.scheduleUpdateDimension);\n cleanup(() => window.removeEventListener('scroll', this.scheduleUpdateDimension));\n }\n\n // observe the target element position change\n const resizeObserver = new ResizeObserver(() => {\n // console.log('resizeObserver');\n this.schedulePopoverUpdate(target, el, options);\n });\n resizeObserver.observe(target);\n cleanup(() => resizeObserver.disconnect());\n });\n }\n\n override getTarget(): HTMLElement {\n return this.target() || this.options().target;\n }\n\n private scheduleUpdateDimension = () => {\n this.disposals.afterNextRender(() => this.updateDimension());\n };\n\n private schedulePopoverUpdate(target: HTMLElement, el: HTMLElement, options: PopoverOptions) {\n // this.options().target = target;\n // if (options.backdrop) {\n // this.onOpen();\n // }\n if (options.width === 'target') {\n // update the width of the container to be the same as the target\n el.style.width = `${target.offsetWidth}px`;\n } else if (options.width === 'free') {\n el.style.minWidth = `${target.offsetWidth}px`;\n } else if (options.width) {\n el.style.width = options.width;\n }\n if (options.height) {\n el.style.height = options.height;\n }\n if (options.maxHeight) {\n el.style.maxHeight = options.maxHeight;\n }\n\n this.scheduleUpdateDimension();\n }\n\n private updateDimension() {\n const el = this.container()!.nativeElement;\n const target = this.getTarget();\n if (!target) {\n return;\n }\n const { top, bottom, left, right, position, maxHeight, maxWidth } = tooltipPosition({\n target,\n el,\n position: this.lastPosition,\n client: this.options().client,\n offset: this.options().offset,\n sideOffset: this.options().sideOffset,\n });\n // change the anchor position\n if (this.options().anchor) {\n this.updateAnchorPosition(position, el, target);\n }\n this.lastPosition = position;\n // we need to update the values directly instead of signal to avoid too many CD checks\n if (bottom) {\n el.style.bottom = `${bottom}px`;\n el.style.top = '';\n } else if (top) {\n el.style.top = `${top}px`;\n el.style.bottom = '';\n }\n if (right != undefined) {\n el.style.right = `${right}px`;\n el.style.left = '';\n } else {\n el.style.left = `${left}px`;\n el.style.right = '';\n }\n\n if (maxHeight) {\n el.style.maxHeight = `${maxHeight}px`;\n }\n if (maxWidth) {\n el.style.maxWidth = `${maxWidth}px`;\n }\n }\n\n private updateAnchorPosition(position: PopoverPosition, el: HTMLElement, target: HTMLElement) {\n let deg = '0deg';\n let anchorTop = '50%';\n let anchorLeft = '50%';\n const anchorWidth = 12.8;\n\n const thHeight = target.offsetHeight / 2;\n const thWidth = target.offsetWidth / 2;\n\n switch (position) {\n case 'top':\n case 'tl':\n case 'tr':\n anchorTop = '100%';\n break;\n case 'left':\n deg = '270deg';\n anchorLeft = `calc(100% + ${anchorWidth / 2}px)`;\n anchorTop = thHeight > el.clientHeight ? '50%' : `calc(${thHeight}px)`;\n break;\n case 'right':\n deg = '90deg';\n anchorLeft = `-${anchorWidth / 2}px`;\n anchorTop = thHeight > el.clientHeight ? '50%' : `calc(${thHeight}px)`;\n break;\n case 'bottom':\n case 'bl':\n case 'br':\n deg = '180deg';\n anchorTop = '-1rem';\n anchorLeft = thWidth > el.clientWidth ? '50%' : `calc(100% - ${thWidth}px)`;\n break;\n }\n\n el.style.setProperty('--action-angle', deg);\n el.style.setProperty('--action-left', anchorLeft);\n el.style.setProperty('--action-top', anchorTop);\n // console.log('updateAnchorPosition', position, deg);\n }\n\n override setOptions(options: PopoverOptions): void {\n // console.log('setOptions', options);\n this.options.set(options);\n }\n}\n\nfunction scrollToElement(target: HTMLElement) {\n return new Promise(resolve => {\n let lastPos: number;\n let currentPos = null;\n let samePosCount = 0;\n\n const checkIfScrollComplete = () => {\n currentPos = window.pageYOffset || document.documentElement.scrollTop;\n\n if (lastPos !== null && currentPos === lastPos) {\n samePosCount++;\n if (samePosCount > 2) {\n resolve(true);\n return;\n }\n } else {\n samePosCount = 0;\n lastPos = currentPos;\n }\n\n requestAnimationFrame(checkIfScrollComplete);\n };\n // scroll only if the target is not in the view\n // window.scrollTo({\n // top: target.offsetTop - 50,\n // behavior: 'smooth',\n // });\n target.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n requestAnimationFrame(checkIfScrollComplete);\n });\n}\n\n@Directive({\n selector: '[ngbPopoverClose]',\n hostDirectives: [{ directive: NgbPortalClose, inputs: ['ngbPortalClose: ngbPopoverClose'] }],\n})\nexport class NgbPopoverClose {}\n\nexport function providePopover(popover: typeof NgbPopover) {\n return { provide: NgbPopover, useExisting: popover };\n}\n","import { inject, InjectionToken, Signal, Type, WritableSignal } from '@angular/core';\nimport { DialogInput, DialogOptions, DialogRef } from '@ngbase/adk/portal';\nimport { Observable } from 'rxjs';\nimport { basePopoverPortal } from './base-popover.service';\nimport { NgbPopover } from './popover';\n\nexport type PopoverPosition = 'top' | 'bottom' | 'left' | 'right' | 'tl' | 'tr' | 'bl' | 'br';\n\nexport class PopoverOptions extends DialogOptions {\n target!: HTMLElement;\n el?: HTMLElement;\n position?: PopoverPosition;\n offset?: number;\n sideOffset?: number;\n client?: { x: number; y: number; w: number; h: number } | null;\n className?: string;\n backdropClassName?: string;\n clipPath?: Signal<string>;\n anchor?: boolean;\n smoothScroll?: boolean;\n}\n\nexport interface PopoverOpen<T> {\n diaRef: DialogRef<any>;\n events: Observable<{ type: string; value: any }>;\n parent: NgbPopover;\n replace: ((component: DialogInput<T>) => void) | undefined;\n childSignal: WritableSignal<any>;\n}\n\nconst POPOVER_TOKEN = new InjectionToken<Type<NgbPopover>>('POPOVER_TOKEN');\n\nexport type PopoverType = ReturnType<typeof ngbPopoverPortal>;\n\nexport function ngbPopoverPortal() {\n const popover = inject(POPOVER_TOKEN, { optional: true }) ?? NgbPopover;\n const base = basePopoverPortal(popover);\n\n function open<T>(component: DialogInput<T>, options: PopoverOptions): PopoverOpen<T> {\n return base.open(component, options);\n }\n\n return { open, closeAll: base.closeAll };\n}\n\nexport const registerNgbPopover = (popover: Type<NgbPopover>) => {\n return { provide: POPOVER_TOKEN, useValue: popover };\n};\n","import { Directive, ElementRef, TemplateRef, inject, input } from '@angular/core';\nimport { PopoverPosition, ngbPopoverPortal } from './popover.service';\n\n@Directive({\n selector: '[ngbPopoverTrigger]',\n exportAs: 'ngbPopoverTrigger',\n host: {\n '(click)': 'open()',\n },\n})\nexport class NgbPopoverTrigger {\n readonly popoverPortal = ngbPopoverPortal();\n readonly el = inject<ElementRef<HTMLElement>>(ElementRef);\n\n readonly ngbPopoverTrigger = input.required<TemplateRef<any>>();\n readonly ngbPopoverTriggerData = input();\n readonly options = input<{ position?: PopoverPosition; anchor?: boolean }>();\n\n private closeFn: VoidFunction = () => {};\n\n open() {\n const options = this.options();\n const { diaRef } = this.popoverPortal.open(this.ngbPopoverTrigger(), {\n target: this.el.nativeElement,\n anchor: options?.anchor,\n position: options?.position || 'top',\n data: this.ngbPopoverTriggerData(),\n });\n this.closeFn = diaRef.close;\n }\n\n close() {\n this.closeFn();\n }\n}\n","/*\n * Public API Surface of popover\n */\n\nexport * from './popover.service';\nexport * from './popover';\nexport * from './popover-trigger';\nexport * from './base-popover.service';\nexport { tooltipPosition } from './utils';\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":"ngbase-adk-popover.mjs","sources":["../../../projects/adk/popover/base-popover.service.ts","../../../projects/adk/popover/utils.ts","../../../projects/adk/popover/popover.ts","../../../projects/adk/popover/popover.service.ts","../../../projects/adk/popover/popover-trigger.ts","../../../projects/adk/popover/public-api.ts","../../../projects/adk/popover/ngbase-adk-popover.ts"],"sourcesContent":["import { Type } from '@angular/core';\nimport { basePortal, DialogInput } from '@ngbase/adk/portal';\nimport { NgbPopover } from './popover';\nimport { PopoverOptions } from './popover.service';\n\nexport function basePopoverPortal<T>(component: Type<T>) {\n const NAME = 'popover';\n const base = basePortal(NAME, component);\n\n function open<T>(component: DialogInput<T>, options: PopoverOptions) {\n const { diaRef, parent, replace, childSignal } = base.open(\n component,\n (comp, opt) => {\n const compInst = comp.instance as NgbPopover;\n compInst.setOptions(opt as PopoverOptions);\n },\n options,\n );\n\n return {\n diaRef,\n events: (parent.instance as NgbPopover).events,\n parent: parent.instance,\n replace,\n childSignal,\n };\n }\n\n function closeAll() {\n base.closeAll();\n }\n return { open, closeAll };\n}\n","import { PopoverOptions, PopoverPosition } from './popover.service';\n\nconst positionSwap: Record<PopoverPosition, PopoverPosition> = {\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left',\n tl: 'bl',\n tr: 'br',\n bl: 'tl',\n br: 'tr',\n};\n\nexport interface Rect {\n top: number;\n left: number;\n width: number;\n height: number;\n}\n\nexport enum Position {\n Top = 'top',\n Bottom = 'bottom',\n Left = 'left',\n Right = 'right',\n TopLeft = 'tl',\n TopRight = 'tr',\n BottomLeft = 'bl',\n BottomRight = 'br',\n}\nexport interface ConfigObj {\n top: number;\n left: number;\n width: number;\n height: number;\n elWidth: number;\n elHeight: number;\n offset: number;\n priority: PopoverPosition;\n position: PopoverPosition;\n windowWidth: number;\n windowHeight: number;\n scrollWidth: number;\n}\n\nexport interface OverflowData {\n top: boolean;\n bottom: boolean;\n left: boolean;\n right: boolean;\n leftSide: boolean;\n rightSide: boolean;\n any: boolean;\n preferredHorizontal: 'left' | 'right' | undefined;\n preferredVertical: 'top' | 'bottom' | undefined;\n overflowAmount: {\n top: number;\n bottom: number;\n left: number;\n right: number;\n leftSide: number;\n rightSide: number;\n };\n}\n// Enums and Interfaces\n\nexport interface PositionResult {\n top: number;\n left: number;\n bottom?: number;\n right?: number;\n position: Position;\n maxHeight?: number;\n maxWidth?: number;\n}\n\nexport class PopoverPositioner {\n private overflow!: OverflowData;\n private elRect!: Rect;\n private offset = this.config.offset || 5;\n constructor(\n private config: PopoverOptions,\n private windowDimensions: { width: number; height: number },\n private scrollWidth: number,\n ) {}\n\n public calculatePosition(): PositionResult {\n const targetRect = this.getTargetRect();\n const elRect = this.getElementRect();\n this.elRect = elRect;\n const initialPosition = this.getInitialPosition(\n targetRect,\n elRect,\n (this.config.position as Position) || Position.Bottom,\n );\n const adjustedPosition = this.adjustForOverflow(initialPosition, targetRect, elRect);\n return this.finalizePosition(adjustedPosition, elRect);\n }\n\n private getTargetRect(): Rect {\n if (this.config.client) {\n const { x, y, w, h } = this.config.client;\n return { top: y, left: x, width: w, height: h };\n }\n const { top, left, width, height } = this.config.target.getBoundingClientRect();\n // return { top, left, width, height: Math.min(height, this.windowDimensions.height - top) };\n return { top, left, width, height };\n }\n\n private getElementRect(): Rect {\n const el = this.config.el!;\n return {\n top: 0,\n left: 0,\n width: el.clientWidth,\n height: el.clientHeight,\n };\n }\n\n private getInitialPosition(targetRect: Rect, elRect: Rect, position: Position): PositionResult {\n const coords = this.getCoordinatesForPosition(position, targetRect, elRect, this.offset);\n // coords.left = Math.max(0, coords.left);\n // coords.top = Math.max(0, coords.top);\n return { ...coords, position };\n }\n\n private getCoordinatesForPosition(\n position: Position,\n targetRect: Rect,\n elRect: Rect,\n offset: number,\n ): { top: number; left: number } {\n switch (position) {\n case Position.Top:\n return {\n top: targetRect.top - elRect.height - offset,\n left: targetRect.left + (targetRect.width - elRect.width) / 2,\n };\n case Position.Bottom:\n return {\n top: targetRect.top + targetRect.height + offset,\n left: targetRect.left + (targetRect.width - elRect.width) / 2,\n };\n case Position.Left:\n return { top: targetRect.top, left: targetRect.left - elRect.width - offset };\n case Position.Right:\n return { top: targetRect.top, left: targetRect.left + targetRect.width + offset };\n case Position.TopLeft:\n return { top: targetRect.top - elRect.height - offset, left: targetRect.left };\n case Position.TopRight:\n return {\n top: targetRect.top - elRect.height - offset,\n left: targetRect.left - (elRect.width - targetRect.width),\n };\n case Position.BottomLeft:\n return { top: targetRect.top + targetRect.height + offset, left: targetRect.left };\n case Position.BottomRight:\n return {\n top: targetRect.top + targetRect.height + offset,\n left: targetRect.left - (elRect.width - targetRect.width),\n };\n }\n }\n\n private adjustForOverflow(\n position: PositionResult,\n targetRect: Rect,\n elRect: Rect,\n ): PositionResult {\n const overflow = this.checkOverflow(position, elRect, targetRect);\n this.overflow = overflow;\n if (overflow.any) {\n const newPosition = this.getAlternativePosition(position.position, overflow);\n return this.getInitialPosition(targetRect, elRect, newPosition);\n }\n return position;\n }\n\n private checkOverflow(position: PositionResult, elRect: Rect, targetRect: Rect): OverflowData {\n // Calculate available space on all sides\n const topSpace = position.top;\n const bottomSpace = this.windowDimensions.height - position.top;\n const leftSpace = position.left;\n const rightSpace = this.windowDimensions.width - position.left;\n // Calculate overflow amounts (negative means no overflow)\n const topOverflow = -(targetRect.top - elRect.height);\n const bottomOverflow =\n targetRect.top + targetRect.height + elRect.height - this.windowDimensions.height;\n // const leftOverflow = -(position.left - (elRect.width - targetRect.width));\n const leftOverflow = -(targetRect.left + targetRect.width - elRect.width);\n const leftSideOverflow = -(targetRect.left - elRect.width);\n const rightOverflow = targetRect.left + elRect.width - this.windowDimensions.width;\n const rightSideOverflow = -(targetRect.left + targetRect.width - elRect.width);\n\n const isTop = topOverflow > 0;\n const isBottom = bottomOverflow > 0;\n const isLeft = leftOverflow > 0;\n const isRight = rightOverflow > 0;\n const isLeftSide = leftSideOverflow > 0;\n const isRightSide = rightSideOverflow > 0;\n\n let preferredHorizontal: 'left' | 'right' | undefined;\n let preferredVertical: 'top' | 'bottom' | undefined;\n // If both left and right overflow, determine which side has more space\n if (isLeft || isRight) {\n preferredHorizontal = leftOverflow > rightOverflow ? 'right' : 'left';\n } else if (isLeftSide || isRightSide) {\n preferredHorizontal = leftSideOverflow > rightSideOverflow ? 'right' : 'left';\n }\n\n // If both top and bottom overflow, determine which side has more space\n if (isTop || isBottom) {\n preferredVertical = topOverflow > bottomOverflow ? 'bottom' : 'top';\n }\n return {\n top: isTop,\n bottom: isBottom,\n left: isLeft,\n right: isRight,\n leftSide: isLeftSide,\n rightSide: isRightSide,\n any: isTop || isBottom || isLeft || isRight || isLeftSide || isRightSide,\n preferredHorizontal,\n preferredVertical,\n overflowAmount: {\n top: topOverflow,\n bottom: bottomOverflow,\n left: leftOverflow,\n right: rightOverflow,\n leftSide: leftSideOverflow,\n rightSide: rightSideOverflow,\n },\n };\n }\n\n getAlternativePosition(position: Position, overflow: OverflowData): Position {\n // if (overflow.top) {\n // if (position === Position.Top) {\n // return Position.Bottom;\n // }\n // }\n // if (\n // (overflow.preferredVertical === 'top' || !overflow.bottom) &&\n // (overflow.preferredHorizontal === 'left' || !overflow.right)\n // ) {\n // return Position.BottomRight;\n // }\n // if (\n // (overflow.preferredVertical === 'top' || !overflow.bottom) &&\n // (overflow.preferredHorizontal === 'right' || !overflow.left)\n // ) {\n // return Position.BottomLeft;\n // }\n // if (\n // (overflow.preferredVertical === 'bottom' || !overflow.top) &&\n // (overflow.preferredHorizontal === 'left' || !overflow.right)\n // ) {\n // return Position.TopRight;\n // }\n // if (\n // (overflow.preferredVertical === 'bottom' || !overflow.top) &&\n // (overflow.preferredHorizontal === 'right' || !overflow.left)\n // ) {\n // return Position.TopLeft;\n // }\n // if (overflow.bottom) {\n // if (position.includes('bottom')) {\n // return positionSwap[position] as Position;\n // } else if (position.includes('bl') && overflow.preferredVertical === 'top') {\n // return overflow.right && overflow.preferredHorizontal !== 'right'\n // ? Position.TopRight\n // : Position.TopLeft;\n // } else if (position.includes('bl') && overflow.preferredVertical === 'bottom') {\n // return overflow.right && overflow.preferredHorizontal !== 'right'\n // ? Position.BottomRight\n // : Position.BottomLeft;\n // }\n // }\n // if (overflow.left) {\n // if (position === Position.Left) {\n // return Position.Right;\n // }\n // if (overflow.preferredHorizontal === 'left' || !overflow.right) {\n // return overflow.bottom ? Position.TopLeft : Position.BottomLeft;\n // }\n // if (overflow.preferredHorizontal === 'right') {\n // return overflow.bottom ? Position.TopRight : Position.BottomRight;\n // }\n // }\n // if (overflow.right) {\n // if (position.includes('right')) {\n // return !overflow.left\n // ? Position.Left\n // : overflow.bottom && !overflow.left\n // ? (positionSwap[position] as Position)\n // : overflow.left && overflow.bottom\n // ? Position.Top\n // : Position.BottomRight;\n // } else if (position.includes('bl')) {\n // return overflow.bottom ? Position.TopRight : Position.BottomRight;\n // }\n // }\n // return position;\n if (!overflow.any) {\n return position;\n }\n\n // Simple mapping for opposite positions\n const opposites = {\n [Position.Top]: Position.Bottom,\n [Position.Bottom]: Position.Top,\n [Position.Left]: Position.Right,\n [Position.Right]: Position.Left,\n [Position.TopLeft]: Position.BottomRight,\n [Position.TopRight]: Position.BottomLeft,\n [Position.BottomLeft]: Position.TopRight,\n [Position.BottomRight]: Position.TopLeft,\n };\n\n // For cardinal positions (Top, Bottom, Left, Right)\n if ([Position.Top, Position.Bottom].includes(position)) {\n return (overflow.preferredVertical as any) || opposites[position];\n }\n\n if ([Position.Left, Position.Right].includes(position)) {\n return (overflow.preferredHorizontal as any) || opposites[position];\n }\n\n // For corner positions\n const isTop = position.includes('t');\n const isLeft = position.includes('l');\n\n const vertical = overflow.preferredVertical === 'top' ? 't' : 'b';\n const horizontal = overflow.preferredHorizontal === 'left' ? 'r' : 'l';\n\n // If current position overflows, use the preferred directions\n if (\n (isTop && overflow.top) ||\n (!isTop && overflow.bottom) ||\n (isLeft && overflow.left) ||\n (!isLeft && overflow.right) ||\n (horizontal === 'r' && overflow.right) ||\n (horizontal === 'l' && overflow.left)\n ) {\n switch (vertical + horizontal) {\n case 'tl':\n return Position.TopLeft;\n case 'tr':\n return Position.TopRight;\n case 'bl':\n return Position.BottomLeft;\n case 'br':\n return Position.BottomRight;\n default:\n return opposites[position];\n }\n }\n\n return position;\n }\n\n private finalizePosition(position: PositionResult, elRect: Rect): PositionResult {\n const { top, left } = position;\n const bottom = position.position.startsWith('t')\n ? this.windowDimensions.height - (top + elRect.height)\n : undefined;\n // this is required if tooltip is going outside of the screen horizontally\n // this has to be done only if the position is top or bottom\n let right: number | undefined;\n right =\n left + elRect.width > this.windowDimensions.width\n ? 0\n : position.position.endsWith('r')\n ? this.windowDimensions.width - (left + elRect.width) - this.scrollWidth\n : undefined;\n\n let overallOffset = this.getOverallOffset(position);\n let maxHeight: number | undefined;\n if (\n position.position.startsWith('t') &&\n this.overflow.overflowAmount.top > -overallOffset.vertical\n ) {\n maxHeight = this.elRect.height - this.overflow.overflowAmount.top - overallOffset.vertical;\n } else if (\n position.position.startsWith('b') &&\n this.overflow.overflowAmount.bottom > -overallOffset.vertical\n ) {\n maxHeight = this.elRect.height - this.overflow.overflowAmount.bottom - overallOffset.vertical;\n }\n\n let maxWidth: number | undefined;\n if (\n position.position.endsWith('l') &&\n this.overflow.overflowAmount.right > -overallOffset.horizontal\n ) {\n maxWidth = this.elRect.width - this.overflow.overflowAmount.right - overallOffset.horizontal;\n } else if (\n position.position.endsWith('r') &&\n this.overflow.overflowAmount.left > -overallOffset.horizontal\n ) {\n maxWidth = this.elRect.width - this.overflow.overflowAmount.left - overallOffset.horizontal;\n }\n return {\n // top: Math.max(0, Math.min(top, this.windowDimensions.height - (maxHeight || elRect.height))),\n top: Math.max(0, top),\n bottom,\n left: right ? 0 : Math.max(overallOffset.horizontal, left),\n right: right ? Math.max(overallOffset.horizontal, right) : undefined,\n position: position.position,\n maxHeight,\n maxWidth,\n };\n }\n\n private getOverallOffset(position: PositionResult) {\n const overallOffset = this.config.sideOffset ?? 0;\n const isHorizontal = position.position === 'left' || position.position === 'right';\n return {\n horizontal: overallOffset + (isHorizontal ? this.offset : 0),\n vertical: overallOffset + (isHorizontal ? 0 : this.offset),\n };\n }\n}\n\n// Main function to use the class\nexport function tooltipPosition(\n config: PopoverOptions,\n windowDimensions = {\n width: window.innerWidth,\n height: window.innerHeight,\n },\n scrollWidth = window.innerWidth - document.documentElement.clientWidth,\n): PositionResult {\n const positioner = new PopoverPositioner(config, windowDimensions, scrollWidth);\n return positioner.calculatePosition();\n}\n\n// export function tooltipPosition(config: OverlayConfig): {\n// top: number;\n// left: number;\n// bottom?: number;\n// right?: number;\n// position: DialogPosition;\n// } {\n// const { target, el, position: priority = 'bottom', offset = 5, client: clientXY = null } = config;\n// let position: DialogPosition = priority;\n// let { top, left, width, height } = target.getBoundingClientRect();\n// if (clientXY) {\n// top = clientXY.y;\n// left = clientXY.x;\n// width = clientXY.w;\n// height = clientXY.h;\n// }\n// const { clientWidth: elWidth, clientHeight: elHeight } = el!;\n\n// // we need to check whether the height of the target element is greater than the height then we need to adjust the height\n// if (height > window.innerHeight) {\n// height = window.innerHeight - top;\n// }\n\n// return tooltipPositionInternal({\n// top,\n// left,\n// width,\n// height,\n// elWidth,\n// elHeight,\n// offset,\n// priority,\n// position,\n// windowWidth: window.innerWidth,\n// windowHeight: window.innerHeight,\n// scrollWidth: window.innerWidth - document.documentElement.clientWidth,\n// });\n// }\n\n// export function tooltipPositionInternal(data: ConfigObj): {\n// top: number;\n// bottom?: number;\n// left: number;\n// right?: number;\n// position: DialogPosition;\n// } {\n// let { elHeight, position, windowHeight, windowWidth, offset, elWidth, scrollWidth } = data;\n\n// position = positionSwapBasedOnOverflow(data);\n\n// let { top: topPos, left: leftPos } = getTooltipCoordinates(position, data);\n\n// if (topPos <= 0) {\n// topPos = offset;\n// } else if (topPos + elHeight > windowHeight) {\n// topPos = windowHeight - elHeight - offset;\n// } else if (leftPos < 0) {\n// leftPos = 0;\n// }\n\n// const bottomPos = position.startsWith('t') ? windowHeight - (topPos + elHeight) : undefined;\n// const rightPos =\n// leftPos + elWidth > windowWidth\n// ? 0\n// : position.endsWith('r')\n// ? windowWidth - (leftPos + elWidth) - scrollWidth\n// : undefined;\n\n// return {\n// top: topPos,\n// bottom: bottomPos,\n// left: rightPos ? 0 : leftPos,\n// position,\n// right: rightPos,\n// };\n// }\n\n// function getTooltipCoordinates(\n// position: DialogPosition,\n// data: ConfigObj,\n// ): { top: number; left: number } {\n// const { top, left, width, height, elWidth, elHeight, offset } = data;\n// switch (position) {\n// case 'top':\n// return {\n// top: top - elHeight - offset,\n// left: left + (width - elWidth) / 2,\n// };\n// case 'bottom':\n// return { top: top + height + offset, left: left + (width - elWidth) / 2 };\n// case 'left':\n// return { top, left: left - elWidth - offset };\n// case 'right':\n// return { top, left: left + width + offset };\n// case 'tl':\n// return { top: top - elHeight - offset, left };\n// case 'tr':\n// return { top: top - elHeight - offset, left: left - (elWidth - width) };\n// case 'bl':\n// return { top: top + height + offset, left };\n// case 'br':\n// return { top: top + height + offset, left: left - (elWidth - width) };\n// default:\n// return {\n// top: top - elHeight - offset,\n// left: left + (width - elWidth) / 2,\n// };\n// }\n// }\n\n// // function to check the overflow sides for target and element\n// export function checkOverflow(data: ConfigObj) {\n// const isTop = data.top - data.elHeight < 0;\n// const isBottom = data.top + data.height + data.elHeight > data.windowHeight;\n// const isLeft = data.left - data.elWidth < 0;\n// const isRight = data.left + data.width + data.elWidth > data.windowWidth;\n\n// return { top: isTop, bottom: isBottom, left: isLeft, right: isRight };\n// }\n\n// // position swap based on the overflow and priority\n// function positionSwapBasedOnOverflow(data: ConfigObj): DialogPosition {\n// const {\n// bottom: bottomOverflow,\n// left: leftOverflow,\n// right: rightOverflow,\n// top: topOverflow,\n// } = checkOverflow(data);\n// const { priority } = data;\n\n// let position = priority;\n// if (topOverflow) {\n// if (position.includes('top')) {\n// position = positionSwap[position];\n// }\n// }\n// if (bottomOverflow) {\n// if (position.includes('bottom')) {\n// position = positionSwap[position];\n// } else if (position.includes('bl')) {\n// position = rightOverflow ? 'tr' : 'tl';\n// }\n// }\n// if (leftOverflow) {\n// if (position.includes('left')) {\n// position = positionSwap[position];\n// }\n// }\n// if (rightOverflow) {\n// if (position.includes('right')) {\n// position = !leftOverflow\n// ? 'left'\n// : bottomOverflow && !leftOverflow\n// ? positionSwap[position]\n// : leftOverflow && bottomOverflow\n// ? 'top'\n// : 'br';\n// } else if (position.includes('bl')) {\n// position = bottomOverflow ? 'tr' : 'br';\n// }\n// }\n// return position;\n// }\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport {\n ChangeDetectionStrategy,\n Component,\n Directive,\n ElementRef,\n ViewContainerRef,\n afterNextRender,\n effect,\n inject,\n linkedSignal,\n signal,\n viewChild,\n} from '@angular/core';\nimport { FocusTrap } from '@ngbase/adk/a11y';\nimport { BaseDialog, NgbPortalClose } from '@ngbase/adk/portal';\nimport { createHostAnimation, disposals } from '@ngbase/adk/utils';\nimport { EMPTY, Observable, fromEvent, map, startWith, switchMap } from 'rxjs';\nimport { PopoverOptions, PopoverPosition } from './popover.service';\nimport { tooltipPosition } from './utils';\n\n@Directive({\n selector: '[ngbPopoverBackdrop]',\n hostDirectives: [FocusTrap],\n host: {\n '[style.clipPath]': 'popover.options().clipPath?.()',\n '[class]': 'popover.options().backdropClassName',\n '(click)': '!popover.options().disableClose && popover.close()',\n },\n})\nexport class NgbPopoverBackdrop {\n readonly popover = inject(NgbPopover);\n readonly focusTrap = inject(FocusTrap);\n\n constructor() {\n this.focusTrap._focusTrap = linkedSignal(() => this.popover.options().focusTrap ?? true);\n }\n}\n\n@Directive({\n selector: '[ngbPopoverMain]',\n host: {\n '[class]': 'popover.options().className',\n },\n})\nexport class NgbPopoverMain {\n readonly popover = inject(NgbPopover);\n}\n\n@Component({\n selector: 'ngb-popover',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgbPopoverBackdrop, NgbPopoverMain],\n template: ` <style>\n .popover-anchor {\n --action-angle: 180deg;\n --action-left: 50%;\n --action-top: -1rem;\n }\n .popover-anchor::before {\n content: '';\n position: absolute;\n width: 0;\n height: 0;\n border-style: solid;\n border-top: 0.8rem solid;\n @apply border-foreground;\n border-left: 0.5rem solid transparent;\n border-right: 0.5rem solid transparent;\n top: var(--action-top);\n left: var(--action-left);\n transform: translateX(-50%) rotate(var(--action-angle, 180deg));\n }\n </style>\n <div\n ngbPopoverMain\n [@slideInOutAnimation]\n class=\"{{\n 'menu-container pointer-events-auto fixed z-10 flex flex-col rounded-lg border bg-foreground shadow-md ' +\n (options().anchor ? 'popover-anchor ' : 'overflow-auto ')\n }}\"\n >\n <div class=\"flex flex-1 flex-col overflow-auto\">\n <ng-container #myDialog />\n </div>\n </div>\n @if (options().backdrop) {\n <div\n ngbPopoverBackdrop\n class=\"popover-backdrop pointer-events-auto fixed top-0 h-full w-full\"\n ></div>\n }`,\n host: {\n class:\n 'fixed top-0 left-0 w-full h-full pointer-events-none z-p flex items-center justify-center',\n '[@parentAnimation]': '',\n '(@parentAnimation.done)': 'animationDone()',\n },\n animations: [\n createHostAnimation(['@slideInOutAnimation']),\n trigger('slideInOutAnimation', [\n state('1', style({ transform: 'none', opacity: 1 })),\n state('void', style({ transform: 'translateY(-10px) scale(0.95)', opacity: 0 })),\n state('0', style({ transform: 'translateY(-10px) scale(0.95)', opacity: 0 })),\n transition('* => *', animate('100ms ease-out')),\n ]),\n ],\n})\nexport class NgbPopover extends BaseDialog {\n private readonly disposals = disposals();\n\n readonly myDialog = viewChild.required('myDialog', { read: ViewContainerRef });\n readonly container = viewChild.required<NgbPopoverMain, ElementRef<HTMLElement>>(NgbPopoverMain, {\n read: ElementRef,\n });\n readonly backdropElement = viewChild<NgbPopoverBackdrop, ElementRef<HTMLElement>>(\n NgbPopoverBackdrop,\n { read: ElementRef },\n );\n\n readonly options = signal<PopoverOptions>({} as PopoverOptions);\n private lastPosition: PopoverPosition = 'top';\n readonly scrolled = signal(0);\n\n readonly events: Observable<{ type: string; value: any }> = this._afterViewSource.pipe(\n switchMap(e => {\n const el = this.container()!.nativeElement;\n const mouseenter = fromEvent(el, 'mouseenter');\n const mouseleave = fromEvent(el, 'mouseleave');\n const event = mouseenter.pipe(\n switchMap(e =>\n mouseleave.pipe(\n map(x => ({ type: 'mouseleave', value: x })),\n startWith({ type: 'mouseenter', value: e }),\n ),\n ),\n );\n return e ? event : EMPTY;\n }),\n );\n\n constructor() {\n super();\n\n const dialog = effect(() => {\n this._afterViewSource.next(this.myDialog()!);\n dialog.destroy();\n });\n\n effect(cleanup => {\n const el = this.container()!.nativeElement;\n const options = this.options();\n const target = this.getTarget();\n if (options.anchor) {\n options.offset = 16;\n }\n this.lastPosition = options.position || 'bottom';\n // this.schedulePopoverUpdate(target, el);\n if (options.smoothScroll) {\n // target.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n\n // fromEvent(window, 'scroll')\n // .pipe(\n // startWith(1),\n // tap((x) => console.count('scroll 50')),\n // debounceTime(50),\n // take(1),\n // )\n // .subscribe(() => {});\n // fromEvent(window, 'scroll')\n // .pipe(\n // startWith(1),\n // tap((x) => console.count('scroll 10')),\n // debounceTime(10),\n // take(1),\n // )\n // .subscribe(() => {\n // this.scrolled.update((x) => x + 1);\n // this.schedulePopoverUpdate(target, el);\n // });\n scrollToElement(target).then(() => {\n this.scrolled.update(x => x + 1);\n this.schedulePopoverUpdate(target, el, options);\n });\n } else {\n this.schedulePopoverUpdate(target, el, options);\n }\n\n // TODO: remove this once we have multi cleanup support\n if (!options.backdrop) {\n window.addEventListener('scroll', this.scheduleUpdateDimension);\n cleanup(() => window.removeEventListener('scroll', this.scheduleUpdateDimension));\n }\n\n // observe the target element position change\n const resizeObserver = new ResizeObserver(() => {\n // console.log('resizeObserver');\n this.schedulePopoverUpdate(target, el, options);\n });\n resizeObserver.observe(target);\n cleanup(() => resizeObserver.disconnect());\n });\n }\n\n override getTarget(): HTMLElement {\n return this.target() || this.options().target;\n }\n\n private scheduleUpdateDimension = () => {\n this.disposals.afterNextRender(() => this.updateDimension());\n };\n\n private schedulePopoverUpdate(target: HTMLElement, el: HTMLElement, options: PopoverOptions) {\n // this.options().target = target;\n // if (options.backdrop) {\n // this.onOpen();\n // }\n if (options.width === 'target') {\n // update the width of the container to be the same as the target\n el.style.width = `${target.offsetWidth}px`;\n } else if (options.width === 'free') {\n el.style.minWidth = `${target.offsetWidth}px`;\n } else if (options.width) {\n el.style.width = options.width;\n }\n if (options.height) {\n el.style.height = options.height;\n }\n if (options.maxHeight) {\n el.style.maxHeight = options.maxHeight;\n }\n\n this.scheduleUpdateDimension();\n }\n\n private updateDimension() {\n const el = this.container()!.nativeElement;\n const target = this.getTarget();\n if (!target) {\n return;\n }\n const { top, bottom, left, right, position, maxHeight, maxWidth } = tooltipPosition({\n target,\n el,\n position: this.lastPosition,\n client: this.options().client,\n offset: this.options().offset,\n sideOffset: this.options().sideOffset,\n });\n // change the anchor position\n if (this.options().anchor) {\n this.updateAnchorPosition(position, el, target);\n }\n this.lastPosition = position;\n // we need to update the values directly instead of signal to avoid too many CD checks\n if (bottom) {\n el.style.bottom = `${bottom}px`;\n el.style.top = '';\n } else if (top) {\n el.style.top = `${top}px`;\n el.style.bottom = '';\n }\n if (right != undefined) {\n el.style.right = `${right}px`;\n el.style.left = '';\n } else {\n el.style.left = `${left}px`;\n el.style.right = '';\n }\n\n if (maxHeight) {\n el.style.maxHeight = `${maxHeight}px`;\n }\n if (maxWidth) {\n el.style.maxWidth = `${maxWidth}px`;\n }\n }\n\n private updateAnchorPosition(position: PopoverPosition, el: HTMLElement, target: HTMLElement) {\n let deg = '0deg';\n let anchorTop = '50%';\n let anchorLeft = '50%';\n const anchorWidth = 12.8;\n\n const thHeight = target.offsetHeight / 2;\n const thWidth = target.offsetWidth / 2;\n\n switch (position) {\n case 'top':\n case 'tl':\n case 'tr':\n anchorTop = '100%';\n break;\n case 'left':\n deg = '270deg';\n anchorLeft = `calc(100% + ${anchorWidth / 2}px)`;\n anchorTop = thHeight > el.clientHeight ? '50%' : `calc(${thHeight}px)`;\n break;\n case 'right':\n deg = '90deg';\n anchorLeft = `-${anchorWidth / 2}px`;\n anchorTop = thHeight > el.clientHeight ? '50%' : `calc(${thHeight}px)`;\n break;\n case 'bottom':\n case 'bl':\n case 'br':\n deg = '180deg';\n anchorTop = '-1rem';\n anchorLeft = thWidth > el.clientWidth ? '50%' : `calc(100% - ${thWidth}px)`;\n break;\n }\n\n el.style.setProperty('--action-angle', deg);\n el.style.setProperty('--action-left', anchorLeft);\n el.style.setProperty('--action-top', anchorTop);\n // console.log('updateAnchorPosition', position, deg);\n }\n\n override setOptions(options: PopoverOptions): void {\n // console.log('setOptions', options);\n this.options.set(options);\n }\n}\n\nfunction scrollToElement(target: HTMLElement) {\n return new Promise(resolve => {\n let lastPos: number;\n let currentPos = null;\n let samePosCount = 0;\n\n const checkIfScrollComplete = () => {\n currentPos = window.pageYOffset || document.documentElement.scrollTop;\n\n if (lastPos !== null && currentPos === lastPos) {\n samePosCount++;\n if (samePosCount > 2) {\n resolve(true);\n return;\n }\n } else {\n samePosCount = 0;\n lastPos = currentPos;\n }\n\n requestAnimationFrame(checkIfScrollComplete);\n };\n // scroll only if the target is not in the view\n // window.scrollTo({\n // top: target.offsetTop - 50,\n // behavior: 'smooth',\n // });\n target.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n requestAnimationFrame(checkIfScrollComplete);\n });\n}\n\n@Directive({\n selector: '[ngbPopoverClose]',\n hostDirectives: [{ directive: NgbPortalClose, inputs: ['ngbPortalClose: ngbPopoverClose'] }],\n})\nexport class NgbPopoverClose {}\n\nexport function providePopover(popover: typeof NgbPopover) {\n return { provide: NgbPopover, useExisting: popover };\n}\n","import { inject, InjectionToken, Signal, Type, WritableSignal } from '@angular/core';\nimport { DialogInput, DialogOptions, DialogRef } from '@ngbase/adk/portal';\nimport { Observable } from 'rxjs';\nimport { basePopoverPortal } from './base-popover.service';\nimport { NgbPopover } from './popover';\n\nexport type PopoverPosition = 'top' | 'bottom' | 'left' | 'right' | 'tl' | 'tr' | 'bl' | 'br';\n\nexport class PopoverOptions extends DialogOptions {\n target!: HTMLElement;\n el?: HTMLElement;\n position?: PopoverPosition;\n offset?: number;\n sideOffset?: number;\n client?: { x: number; y: number; w: number; h: number } | null;\n className?: string;\n backdropClassName?: string;\n clipPath?: Signal<string>;\n anchor?: boolean;\n smoothScroll?: boolean;\n}\n\nexport interface PopoverOpen<T> {\n diaRef: DialogRef<any>;\n events: Observable<{ type: string; value: any }>;\n parent: NgbPopover;\n replace: ((component: DialogInput<T>) => void) | undefined;\n childSignal: WritableSignal<any>;\n}\n\nconst POPOVER_TOKEN = new InjectionToken<Type<NgbPopover>>('POPOVER_TOKEN');\n\nexport type PopoverType = ReturnType<typeof ngbPopoverPortal>;\n\nexport function ngbPopoverPortal() {\n const popover = inject(POPOVER_TOKEN, { optional: true }) ?? NgbPopover;\n const base = basePopoverPortal(popover);\n\n function open<T>(component: DialogInput<T>, options: PopoverOptions): PopoverOpen<T> {\n return base.open(component, options);\n }\n\n return { open, closeAll: base.closeAll };\n}\n\nexport const registerNgbPopover = (popover: Type<NgbPopover>) => {\n return { provide: POPOVER_TOKEN, useValue: popover };\n};\n","import { Directive, ElementRef, TemplateRef, inject, input } from '@angular/core';\nimport { PopoverPosition, ngbPopoverPortal } from './popover.service';\n\n@Directive({\n selector: '[ngbPopoverTrigger]',\n exportAs: 'ngbPopoverTrigger',\n host: {\n '(click)': 'open()',\n },\n})\nexport class NgbPopoverTrigger {\n readonly popoverPortal = ngbPopoverPortal();\n readonly el = inject<ElementRef<HTMLElement>>(ElementRef);\n\n readonly ngbPopoverTrigger = input.required<TemplateRef<any>>();\n readonly ngbPopoverTriggerData = input();\n readonly options = input<{ position?: PopoverPosition; anchor?: boolean }>();\n\n private closeFn: VoidFunction = () => {};\n\n open() {\n const options = this.options();\n const { diaRef } = this.popoverPortal.open(this.ngbPopoverTrigger(), {\n target: this.el.nativeElement,\n anchor: options?.anchor,\n position: options?.position || 'top',\n data: this.ngbPopoverTriggerData(),\n });\n this.closeFn = diaRef.close;\n }\n\n close() {\n this.closeFn();\n }\n}\n","/*\n * Public API Surface of popover\n */\n\nexport * from './popover.service';\nexport * from './popover';\nexport * from './popover-trigger';\nexport * from './base-popover.service';\nexport { tooltipPosition } from './utils';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -99,11 +99,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
|
|
|
99
99
|
// <button
|
|
100
100
|
// ngbFocusStyle
|
|
101
101
|
// ngbRadioIndicator
|
|
102
|
-
// class="custom-radio relative flex h-
|
|
102
|
+
// class="custom-radio relative flex h-4 w-4 flex-none items-center justify-center rounded-full border border-primary"
|
|
103
103
|
// [class]="disabled() ? 'border-muted' : 'border-primary'"
|
|
104
104
|
// >
|
|
105
105
|
// @if (checked()) {
|
|
106
|
-
// <div class="h-
|
|
106
|
+
// <div class="h-2 w-2 rounded-full" [class]="disabled() ? 'bg-muted' : 'bg-primary'"></div>
|
|
107
107
|
// }
|
|
108
108
|
// </button>
|
|
109
109
|
// <ng-content />
|