@ngbase/adk 0.1.0 → 0.1.2
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/accordion/accordion-item.d.ts +4 -0
- package/accordion/public-api.d.ts +1 -1
- package/autocomplete/autocomplete.d.ts +2 -2
- package/avatar/avatar.d.ts +1 -1
- package/breadcrumb/breadcrumb.d.ts +2 -3
- package/breadcrumb/public-api.d.ts +1 -1
- package/carousel/carousel.d.ts +1 -1
- package/chip/chip.d.ts +2 -2
- package/datepicker/calendar.d.ts +3 -3
- package/datepicker/datepicker.d.ts +2 -2
- package/datepicker/time.d.ts +2 -2
- package/dialog/dialog.d.ts +1 -1
- package/fesm2022/ngbase-adk-accordion.mjs +4 -1
- package/fesm2022/ngbase-adk-accordion.mjs.map +1 -1
- package/fesm2022/ngbase-adk-autocomplete.mjs +7 -36
- package/fesm2022/ngbase-adk-autocomplete.mjs.map +1 -1
- package/fesm2022/ngbase-adk-avatar.mjs +2 -2
- package/fesm2022/ngbase-adk-avatar.mjs.map +1 -1
- package/fesm2022/ngbase-adk-breadcrumb.mjs +2 -2
- package/fesm2022/ngbase-adk-breadcrumb.mjs.map +1 -1
- package/fesm2022/ngbase-adk-carousel.mjs +2 -2
- package/fesm2022/ngbase-adk-carousel.mjs.map +1 -1
- package/fesm2022/ngbase-adk-chip.mjs +4 -2
- package/fesm2022/ngbase-adk-chip.mjs.map +1 -1
- package/fesm2022/ngbase-adk-datepicker.mjs +114 -328
- package/fesm2022/ngbase-adk-datepicker.mjs.map +1 -1
- package/fesm2022/ngbase-adk-dialog.mjs +18 -19
- package/fesm2022/ngbase-adk-dialog.mjs.map +1 -1
- package/fesm2022/ngbase-adk-form-field.mjs +2 -156
- package/fesm2022/ngbase-adk-form-field.mjs.map +1 -1
- package/fesm2022/ngbase-adk-menu.mjs +15 -30
- package/fesm2022/ngbase-adk-menu.mjs.map +1 -1
- package/fesm2022/ngbase-adk-otp.mjs +164 -0
- package/fesm2022/ngbase-adk-otp.mjs.map +1 -0
- package/fesm2022/ngbase-adk-pagination.mjs +8 -65
- package/fesm2022/ngbase-adk-pagination.mjs.map +1 -1
- package/fesm2022/ngbase-adk-popover.mjs +423 -548
- package/fesm2022/ngbase-adk-popover.mjs.map +1 -1
- package/fesm2022/ngbase-adk-portal.mjs +0 -1
- package/fesm2022/ngbase-adk-portal.mjs.map +1 -1
- package/fesm2022/ngbase-adk-radio.mjs +2 -16
- package/fesm2022/ngbase-adk-radio.mjs.map +1 -1
- package/fesm2022/ngbase-adk-resizable.mjs +10 -43
- package/fesm2022/ngbase-adk-resizable.mjs.map +1 -1
- package/fesm2022/ngbase-adk-select.mjs +67 -173
- package/fesm2022/ngbase-adk-select.mjs.map +1 -1
- package/fesm2022/ngbase-adk-sheet.mjs +95 -0
- package/fesm2022/ngbase-adk-sheet.mjs.map +1 -0
- package/fesm2022/ngbase-adk-sidenav.mjs +2 -2
- package/fesm2022/ngbase-adk-sidenav.mjs.map +1 -1
- package/fesm2022/ngbase-adk-slider.mjs +9 -23
- package/fesm2022/ngbase-adk-slider.mjs.map +1 -1
- package/fesm2022/ngbase-adk-sonner.mjs +13 -63
- package/fesm2022/ngbase-adk-sonner.mjs.map +1 -1
- package/fesm2022/ngbase-adk-stepper.mjs +16 -114
- package/fesm2022/ngbase-adk-stepper.mjs.map +1 -1
- package/fesm2022/ngbase-adk-switch.mjs +2 -2
- package/fesm2022/ngbase-adk-switch.mjs.map +1 -1
- package/fesm2022/ngbase-adk-table.mjs +10 -30
- package/fesm2022/ngbase-adk-table.mjs.map +1 -1
- package/fesm2022/ngbase-adk-tabs.mjs +14 -94
- package/fesm2022/ngbase-adk-tabs.mjs.map +1 -1
- package/fesm2022/ngbase-adk-tooltip.mjs +49 -39
- package/fesm2022/ngbase-adk-tooltip.mjs.map +1 -1
- package/fesm2022/ngbase-adk-tour.mjs +1 -1
- package/fesm2022/ngbase-adk-tour.mjs.map +1 -1
- package/fesm2022/ngbase-adk-tree.mjs +11 -43
- package/fesm2022/ngbase-adk-tree.mjs.map +1 -1
- package/form-field/public-api.d.ts +0 -1
- package/menu/menu-trigger.d.ts +2 -2
- package/menu/menu.d.ts +6 -6
- package/otp/index.d.ts +5 -0
- package/{form-field → otp}/otp.d.ts +1 -1
- package/otp/public-api.d.ts +1 -0
- package/package.json +22 -13
- package/pagination/pagination.d.ts +5 -1
- package/popover/popover-arrow.ng.d.ts +34 -0
- package/popover/popover.d.ts +12 -3
- package/popover/popover.service.d.ts +5 -4
- package/popover/public-api.d.ts +1 -0
- package/popover/utils.d.ts +32 -48
- package/portal/dialog-ref.d.ts +0 -1
- package/resizable/resizable-group.d.ts +2 -2
- package/resizable/resizable.d.ts +2 -2
- package/schematics/collection.json +15 -0
- package/schematics/components/files/accordion/accordion.ts.template +53 -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 +44 -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.ts.template +58 -0
- package/schematics/components/files/datepicker/index.ts.template +2 -0
- package/schematics/components/files/datepicker/time.ts.template +54 -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/form-field.ts.template +111 -0
- package/schematics/components/files/form-field/index.ts.template +6 -0
- package/schematics/components/files/form-field/input-style.directive.ts.template +11 -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/otp/index.ts.template +5 -0
- package/schematics/components/files/otp/otp.ts.template +37 -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 +64 -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 +35 -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 +35 -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 +69 -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 +35 -0
- package/schematics/components/files/sonner/index.ts.template +5 -0
- package/schematics/components/files/sonner/sonner.ts.template +59 -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 +92 -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.service.ts.template +33 -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 +45 -0
- package/schematics/components/files/tour/index.ts.template +1 -0
- package/schematics/components/files/tour/tour.ts.template +19 -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 +145 -0
- package/schematics/components/schema.ts +6 -0
- package/select/option-group.d.ts +3 -3
- package/select/select.d.ts +2 -2
- package/sheet/index.d.ts +5 -0
- package/sheet/public-api.d.ts +2 -0
- package/sheet/sheet.d.ts +26 -0
- package/sheet/sheet.service.d.ts +13 -0
- package/sidenav/public-api.d.ts +1 -1
- package/sidenav/sidenav.d.ts +1 -1
- package/slider/public-api.d.ts +1 -1
- package/slider/slider.d.ts +5 -5
- package/sonner/sonner.d.ts +2 -1
- package/stepper/animation.d.ts +1 -1
- package/stepper/step.d.ts +1 -1
- package/stepper/stepper.d.ts +2 -2
- package/switch/switch.d.ts +1 -1
- package/table/body-row.d.ts +3 -3
- package/table/head-row.d.ts +3 -3
- package/table/table.d.ts +1 -1
- package/tabs/tab-group.d.ts +4 -4
- package/tabs/tab.d.ts +2 -2
- package/tooltip/public-api.d.ts +1 -1
- package/tooltip/tooltip.d.ts +5 -1
- package/tooltip/tooltip.directive.d.ts +1 -1
- package/tooltip/tooltip.service.d.ts +4 -2
- package/tour/tour.service.d.ts +3 -4
- package/tree/public-api.d.ts +2 -2
- package/tree/tree-node.d.ts +2 -2
- package/tree/tree.d.ts +2 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { NgTemplateOutlet } from '@angular/common';
|
|
2
1
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { Directive, contentChild, TemplateRef, input, booleanAttribute, signal, computed, Component, ChangeDetectionStrategy,
|
|
2
|
+
import { Directive, contentChild, TemplateRef, input, booleanAttribute, signal, computed, inject, Component, ChangeDetectionStrategy, viewChild, ElementRef, viewChildren, contentChildren, model, output, effect, afterNextRender } from '@angular/core';
|
|
4
3
|
import { uniqueId } from '@ngbase/adk/utils';
|
|
4
|
+
import { NgTemplateOutlet } from '@angular/common';
|
|
5
5
|
import * as i1 from '@ngbase/adk/a11y';
|
|
6
6
|
import { AccessibleGroup, AccessibleItem } from '@ngbase/adk/a11y';
|
|
7
7
|
|
|
@@ -47,29 +47,14 @@ class NgbTab {
|
|
|
47
47
|
});
|
|
48
48
|
this.lazyTemplate = computed(() => this.active() && this.lazy());
|
|
49
49
|
}
|
|
50
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbTab, deps: [], target: i0.ɵɵFactoryTarget.
|
|
51
|
-
static { this.ɵ
|
|
52
|
-
@if (lazyTemplate(); as template) {
|
|
53
|
-
<ng-container *ngTemplateOutlet="template" />
|
|
54
|
-
} @else if (activeMode()) {
|
|
55
|
-
<ng-content />
|
|
56
|
-
}
|
|
57
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
50
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbTab, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
51
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "19.0.0", type: NgbTab, isStandalone: true, selector: "ngb-tab", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "tabpanel" }, properties: { "tabindex": "active() ? 0 : -1", "attr.aria-hidden": "!active()", "attr.aria-labelledby": "id" } }, queries: [{ propertyName: "header", first: true, predicate: NgbTabHeader, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "lazy", first: true, predicate: NgbTabLazy, descendants: true, read: TemplateRef, isSignal: true }], exportAs: ["ngbTab"], ngImport: i0 }); }
|
|
58
52
|
}
|
|
59
53
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbTab, decorators: [{
|
|
60
|
-
type:
|
|
54
|
+
type: Directive,
|
|
61
55
|
args: [{
|
|
62
56
|
selector: 'ngb-tab',
|
|
63
57
|
exportAs: 'ngbTab',
|
|
64
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
65
|
-
imports: [NgTemplateOutlet],
|
|
66
|
-
template: `
|
|
67
|
-
@if (lazyTemplate(); as template) {
|
|
68
|
-
<ng-container *ngTemplateOutlet="template" />
|
|
69
|
-
} @else if (activeMode()) {
|
|
70
|
-
<ng-content />
|
|
71
|
-
}
|
|
72
|
-
`,
|
|
73
58
|
host: {
|
|
74
59
|
role: 'tabpanel',
|
|
75
60
|
'[tabindex]': 'active() ? 0 : -1',
|
|
@@ -78,11 +63,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
|
|
|
78
63
|
},
|
|
79
64
|
}]
|
|
80
65
|
}] });
|
|
81
|
-
function
|
|
82
|
-
return {
|
|
83
|
-
provide: NgbTab,
|
|
84
|
-
useExisting: tab,
|
|
85
|
-
};
|
|
66
|
+
function aliasTab(tab) {
|
|
67
|
+
return { provide: NgbTab, useExisting: tab };
|
|
86
68
|
}
|
|
87
69
|
|
|
88
70
|
class TabButtonsGroup {
|
|
@@ -98,7 +80,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
|
|
|
98
80
|
type: Directive,
|
|
99
81
|
args: [{
|
|
100
82
|
selector: '[ngbTabButtonsGroup]',
|
|
101
|
-
hostDirectives: [
|
|
83
|
+
hostDirectives: [AccessibleGroup],
|
|
102
84
|
host: {
|
|
103
85
|
role: 'tablist',
|
|
104
86
|
style: 'scrollbar-width: none',
|
|
@@ -128,7 +110,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
|
|
|
128
110
|
args: [{
|
|
129
111
|
selector: 'button[ngbTabButton]',
|
|
130
112
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
131
|
-
hostDirectives: [
|
|
113
|
+
hostDirectives: [AccessibleItem],
|
|
132
114
|
imports: [NgTemplateOutlet],
|
|
133
115
|
template: `
|
|
134
116
|
@if (ngbTabButton().header(); as template) {
|
|
@@ -295,79 +277,17 @@ class NgbTabs {
|
|
|
295
277
|
tabList.scrollTo({ left, behavior: 'smooth' });
|
|
296
278
|
}
|
|
297
279
|
}
|
|
298
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbTabs, deps: [], target: i0.ɵɵFactoryTarget.
|
|
299
|
-
static { this.ɵ
|
|
300
|
-
<ng-content select=".tab-start-header-content" />
|
|
301
|
-
<div class="relative flex overflow-hidden">
|
|
302
|
-
<button
|
|
303
|
-
ngbTabScroll="left"
|
|
304
|
-
class="absolute left-0 z-10 h-full place-items-center bg-foreground px-2"
|
|
305
|
-
>
|
|
306
|
-
<
|
|
307
|
-
</button>
|
|
308
|
-
<nav ngbTabButtonsGroup class="overflow-auto">
|
|
309
|
-
<div #tabListContainer class="flex h-full w-max">
|
|
310
|
-
@for (tab of tabs(); track tab.id) {
|
|
311
|
-
<button
|
|
312
|
-
[ngbTabButton]="tab"
|
|
313
|
-
class="whitespace-nowrap border-b-2 border-transparent aria-[disabled=true]:cursor-not-allowed aria-[selected=true]:!border-primary aria-[disabled=true]:text-muted aria-[selected=true]:!text-primary aria-[disabled=true]:opacity-50"
|
|
314
|
-
></button>
|
|
315
|
-
}
|
|
316
|
-
</div>
|
|
317
|
-
</nav>
|
|
318
|
-
<button
|
|
319
|
-
ngbTabScroll="right"
|
|
320
|
-
class="absolute right-0 z-10 h-full place-items-center bg-foreground px-2"
|
|
321
|
-
>
|
|
322
|
-
>
|
|
323
|
-
</button>
|
|
324
|
-
</div>
|
|
325
|
-
<ng-content select=".tab-header-content" />
|
|
326
|
-
</div>
|
|
327
|
-
<ng-content /> `, isInline: true, dependencies: [{ kind: "component", type: TabButton, selector: "button[ngbTabButton]", inputs: ["ngbTabButton"] }, { kind: "directive", type: TabButtonsGroup, selector: "[ngbTabButtonsGroup]" }, { kind: "directive", type: TabScroll, selector: "button[ngbTabScroll]", inputs: ["ngbTabScroll"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
280
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbTabs, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
281
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "19.0.0", type: NgbTabs, isStandalone: true, selector: "ngb-tabs", inputs: { selectedIndex: { classPropertyName: "selectedIndex", publicName: "selectedIndex", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedIndex: "selectedIndexChange", selectedTabChange: "selectedTabChange" }, queries: [{ propertyName: "tabs", predicate: NgbTab, isSignal: true }], viewQueries: [{ propertyName: "tabList", first: true, predicate: TabButtonsGroup, descendants: true, read: ElementRef, isSignal: true }, { propertyName: "tabListContainer", first: true, predicate: ["tabListContainer"], descendants: true, isSignal: true }, { propertyName: "tabButtons", predicate: TabButton, descendants: true, read: ElementRef, isSignal: true }, { propertyName: "scrollButtons", predicate: TabScroll, descendants: true, read: ElementRef, isSignal: true }], exportAs: ["ngbTabs"], ngImport: i0 }); }
|
|
328
282
|
}
|
|
329
283
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbTabs, decorators: [{
|
|
330
|
-
type:
|
|
284
|
+
type: Directive,
|
|
331
285
|
args: [{
|
|
332
286
|
selector: 'ngb-tabs',
|
|
333
287
|
exportAs: 'ngbTabs',
|
|
334
|
-
imports: [TabButton, TabButtonsGroup, TabScroll],
|
|
335
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
336
|
-
template: `<div class="flex items-center border-b">
|
|
337
|
-
<ng-content select=".tab-start-header-content" />
|
|
338
|
-
<div class="relative flex overflow-hidden">
|
|
339
|
-
<button
|
|
340
|
-
ngbTabScroll="left"
|
|
341
|
-
class="absolute left-0 z-10 h-full place-items-center bg-foreground px-2"
|
|
342
|
-
>
|
|
343
|
-
<
|
|
344
|
-
</button>
|
|
345
|
-
<nav ngbTabButtonsGroup class="overflow-auto">
|
|
346
|
-
<div #tabListContainer class="flex h-full w-max">
|
|
347
|
-
@for (tab of tabs(); track tab.id) {
|
|
348
|
-
<button
|
|
349
|
-
[ngbTabButton]="tab"
|
|
350
|
-
class="whitespace-nowrap border-b-2 border-transparent aria-[disabled=true]:cursor-not-allowed aria-[selected=true]:!border-primary aria-[disabled=true]:text-muted aria-[selected=true]:!text-primary aria-[disabled=true]:opacity-50"
|
|
351
|
-
></button>
|
|
352
|
-
}
|
|
353
|
-
</div>
|
|
354
|
-
</nav>
|
|
355
|
-
<button
|
|
356
|
-
ngbTabScroll="right"
|
|
357
|
-
class="absolute right-0 z-10 h-full place-items-center bg-foreground px-2"
|
|
358
|
-
>
|
|
359
|
-
>
|
|
360
|
-
</button>
|
|
361
|
-
</div>
|
|
362
|
-
<ng-content select=".tab-header-content" />
|
|
363
|
-
</div>
|
|
364
|
-
<ng-content /> `,
|
|
365
|
-
host: {
|
|
366
|
-
class: 'bg-foreground flex flex-col',
|
|
367
|
-
},
|
|
368
288
|
}]
|
|
369
289
|
}], ctorParameters: () => [] });
|
|
370
|
-
function
|
|
290
|
+
function aliasTabs(tab) {
|
|
371
291
|
return {
|
|
372
292
|
provide: NgbTabs,
|
|
373
293
|
useExisting: tab,
|
|
@@ -382,5 +302,5 @@ function provideTabs(tab) {
|
|
|
382
302
|
* Generated bundle index. Do not edit.
|
|
383
303
|
*/
|
|
384
304
|
|
|
385
|
-
export { NgbTab, NgbTabHeader, NgbTabLazy, NgbTabs, TabButton, TabButtonsGroup, TabScroll,
|
|
305
|
+
export { NgbTab, NgbTabHeader, NgbTabLazy, NgbTabs, TabButton, TabButtonsGroup, TabScroll, aliasTab, aliasTabs };
|
|
386
306
|
//# sourceMappingURL=ngbase-adk-tabs.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngbase-adk-tabs.mjs","sources":["../../../projects/adk/tabs/tab.ts","../../../projects/adk/tabs/tab-group.ts","../../../projects/adk/tabs/public-api.ts","../../../projects/adk/tabs/ngbase-adk-tabs.ts"],"sourcesContent":["import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Directive,\n TemplateRef,\n booleanAttribute,\n computed,\n contentChild,\n input,\n signal,\n} from '@angular/core';\nimport { uniqueId } from '@ngbase/adk/utils';\n\n@Directive({\n selector: '[ngbTabHeader]',\n})\nexport class NgbTabHeader {}\n\n@Directive({\n selector: '[ngbTabLazy]',\n})\nexport class NgbTabLazy {}\n\n@Component({\n selector: 'ngb-tab',\n exportAs: 'ngbTab',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgTemplateOutlet],\n template: `\n @if (lazyTemplate(); as template) {\n <ng-container *ngTemplateOutlet=\"template\" />\n } @else if (activeMode()) {\n <ng-content />\n }\n `,\n host: {\n role: 'tabpanel',\n '[tabindex]': 'active() ? 0 : -1',\n '[attr.aria-hidden]': '!active()',\n '[attr.aria-labelledby]': 'id',\n },\n})\nexport class NgbTab {\n // Dependencies\n readonly header = contentChild(NgbTabHeader, { read: TemplateRef });\n readonly lazy = contentChild(NgbTabLazy, { read: TemplateRef });\n\n // Inputs\n readonly label = input('Tab');\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly mode = input<'hidden' | 'lazy'>();\n readonly value = input<string | number>();\n readonly id = uniqueId();\n readonly index = signal(0);\n readonly tabId = computed(() => this.value() ?? this.index());\n\n // State\n readonly active = signal(false);\n\n private activated = false;\n readonly activeMode = computed(() => {\n this.activated ||= this.active();\n return this.mode() ? this.activated : this.active();\n });\n readonly lazyTemplate = computed(() => this.active() && this.lazy());\n}\n\nexport function provideTab(tab: typeof NgbTab) {\n return {\n provide: NgbTab,\n useExisting: tab,\n };\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Directive,\n ElementRef,\n afterNextRender,\n booleanAttribute,\n computed,\n contentChildren,\n effect,\n inject,\n input,\n model,\n output,\n viewChild,\n viewChildren,\n} from '@angular/core';\nimport { AccessibleGroup, AccessibleItem } from '@ngbase/adk/a11y';\nimport { uniqueId } from '@ngbase/adk/utils';\nimport { NgbTab } from './tab';\n\nexport interface TabChangeEvent {\n tab: NgbTab;\n index: number;\n}\n\n@Directive({\n selector: '[ngbTabButtonsGroup]',\n hostDirectives: [{ directive: AccessibleGroup }],\n host: {\n role: 'tablist',\n style: 'scrollbar-width: none',\n },\n})\nexport class TabButtonsGroup {\n private readonly tabGroup = inject(NgbTabs);\n private readonly accessibleGroup = inject(AccessibleGroup);\n\n constructor() {\n this.accessibleGroup.ayId.set(this.tabGroup.ayId);\n }\n}\n\n@Component({\n selector: 'button[ngbTabButton]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [{ directive: AccessibleItem }],\n imports: [NgTemplateOutlet],\n template: `\n @if (ngbTabButton().header(); as template) {\n <ng-container *ngTemplateOutlet=\"template\" />\n } @else {\n {{ ngbTabButton().label() }}\n }\n `,\n host: {\n type: 'button',\n role: 'tab',\n '[attr.id]': 'ngbTabButton().id',\n '(click)': '!ngbTabButton().disabled() && tabGroup.setActive(ngbTabButton())',\n },\n})\nexport class TabButton {\n private readonly tabGroup = inject(NgbTabs);\n private readonly accessibleItem = inject(AccessibleItem);\n\n readonly ngbTabButton = input.required<NgbTab>();\n\n constructor() {\n this.accessibleItem._selected = computed(\n () => this.ngbTabButton().tabId() === this.tabGroup.selectedIndex(),\n );\n this.accessibleItem._disabled = computed(() => this.ngbTabButton().disabled());\n this.accessibleItem._ayId.set(this.tabGroup.ayId);\n }\n}\n\n@Directive({\n selector: 'button[ngbTabScroll]',\n host: {\n type: 'button',\n tabindex: '-1',\n style: '{display: none}',\n '(click)': 'tabGroup.scroll(ngbTabScroll())',\n },\n})\nexport class TabScroll {\n readonly ngbTabScroll = input.required<'left' | 'right'>();\n readonly tabGroup = inject(NgbTabs);\n}\n\n@Component({\n selector: 'ngb-tabs',\n exportAs: 'ngbTabs',\n imports: [TabButton, TabButtonsGroup, TabScroll],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `<div class=\"flex items-center border-b\">\n <ng-content select=\".tab-start-header-content\" />\n <div class=\"relative flex overflow-hidden\">\n <button\n ngbTabScroll=\"left\"\n class=\"absolute left-0 z-10 h-full place-items-center bg-foreground px-2\"\n >\n <\n </button>\n <nav ngbTabButtonsGroup class=\"overflow-auto\">\n <div #tabListContainer class=\"flex h-full w-max\">\n @for (tab of tabs(); track tab.id) {\n <button\n [ngbTabButton]=\"tab\"\n class=\"whitespace-nowrap border-b-2 border-transparent aria-[disabled=true]:cursor-not-allowed aria-[selected=true]:!border-primary aria-[disabled=true]:text-muted aria-[selected=true]:!text-primary aria-[disabled=true]:opacity-50\"\n ></button>\n }\n </div>\n </nav>\n <button\n ngbTabScroll=\"right\"\n class=\"absolute right-0 z-10 h-full place-items-center bg-foreground px-2\"\n >\n >\n </button>\n </div>\n <ng-content select=\".tab-header-content\" />\n </div>\n <ng-content /> `,\n host: {\n class: 'bg-foreground flex flex-col',\n },\n})\nexport class NgbTabs<T extends NgbTab = NgbTab> {\n readonly tabList = viewChild.required<TabButtonsGroup, ElementRef<HTMLElement>>(TabButtonsGroup, {\n read: ElementRef,\n });\n readonly tabListContainer = viewChild.required<ElementRef<HTMLElement>>('tabListContainer');\n readonly tabButtons = viewChildren<TabButton, ElementRef<HTMLElement>>(TabButton, {\n read: ElementRef,\n });\n // readonly leftScroll = viewChild<ElementRef<HTMLElement>>('leftScroll');\n // readonly rightScroll = viewChild<ElementRef<HTMLElement>>('rightScroll');\n readonly scrollButtons = viewChildren<TabScroll, ElementRef<HTMLElement>>(TabScroll, {\n read: ElementRef,\n });\n readonly tabs = contentChildren<T>(NgbTab as any);\n\n readonly selectedIndex = model<any>(0);\n readonly selectedTabChange = output<TabChangeEvent>();\n\n private selectedId?: number;\n private readonly tabMap = new Map<number, string>();\n readonly ayId = uniqueId();\n\n constructor() {\n effect(cleanup => {\n const tabList = this.tabList().nativeElement;\n const tabListContainer = this.tabListContainer().nativeElement;\n if (typeof ResizeObserver !== 'undefined') {\n const observer = new ResizeObserver(() => {\n this.updateScrollDisplay(tabList);\n });\n observer.observe(tabListContainer);\n cleanup(() => observer.disconnect());\n }\n });\n\n effect(() => {\n const tabs = this.tabs();\n tabs.forEach((tab, index) => tab.index.set(index));\n });\n\n effect(() => {\n const tabs = this.tabs();\n let activeIndex = this.selectedIndex();\n if (activeIndex === undefined || activeIndex === null) {\n this.setActive(tabs[0]);\n return;\n } else if (activeIndex >= tabs.length) {\n // if the index is out of bounds, set the last tab as active\n this.setActive(tabs[tabs.length - 1]);\n return;\n }\n\n if (this.selectedId !== undefined && activeIndex === this.selectedId) {\n const id = this.tabMap.get(this.selectedId);\n const tab = tabs.find(tab => tab.id === id);\n if (tab && activeIndex !== tab.index()) {\n this.setActive(tab);\n this.selectedId = undefined;\n return;\n }\n }\n\n // make sure the index is not a disabled tab\n // if (tabs[activeIndex]?.disabled()) {\n // const nextIndex = tabs.findIndex((tab, index) => !tab.disabled() && index > activeIndex);\n // activeIndex = nextIndex === -1 ? tabs.length - 1 : nextIndex;\n // this.selectedIndex.set(activeIndex);\n // this.selectedId = activeIndex;\n // return;\n // }\n\n // tabMap is used to keep track of the tab headers\n this.tabMap.clear();\n let activeTab: NgbTab;\n tabs.forEach((tab, index) => {\n tab.active.set(activeIndex === tab.tabId());\n if (activeIndex === tab.tabId()) {\n activeTab = tab;\n }\n this.tabMap.set(index, tab.id);\n });\n\n this.selectedId = activeIndex;\n\n // scroll to the active tab\n this.scrollToActive(activeTab!.index());\n });\n\n afterNextRender(() => {\n const el = this.tabList().nativeElement;\n this.updateScrollDisplay(el);\n el.addEventListener('scroll', () => {\n requestAnimationFrame(() => {\n this.updateScrollDisplay(el);\n });\n });\n });\n }\n\n private updateScrollDisplay(el: HTMLElement) {\n const leftScroll = this.scrollButtons()[0]!.nativeElement;\n const rightScroll = this.scrollButtons()[1]!.nativeElement;\n leftScroll.style.display = el.scrollLeft > 0 ? 'grid' : 'none';\n rightScroll.style.display = el.scrollLeft + el.clientWidth < el.scrollWidth ? 'grid' : 'none';\n }\n\n scroll(direction: 'left' | 'right') {\n const tabList = this.tabList()!.nativeElement;\n const el = this.tabList()!.nativeElement;\n const scroll = el.clientWidth * 0.8;\n const isLeft = direction === 'left';\n tabList.scrollTo({\n left: tabList.scrollLeft + (isLeft ? -scroll : scroll),\n behavior: 'smooth',\n });\n }\n\n setActive(tab: NgbTab) {\n // if the tab is not found, return\n if (!tab) return;\n\n this.selectedIndex.set(tab.tabId());\n this.scrollToActive(tab.index());\n this.selectedTabChange.emit({ tab, index: tab.index() });\n }\n\n private scrollToActive(index: number) {\n const tabList = this.tabList().nativeElement;\n const tabs = this.tabButtons().slice(0, index + 1);\n // ssr does not support getBoundingClientRect\n const totalWidth = tabs.reduce((a, c) => {\n const width = c.nativeElement.getBoundingClientRect?.().width || 0;\n return a + width;\n }, 0);\n\n const { width } = tabList.getBoundingClientRect?.() || { width: 0 };\n const scrollLeft = tabList.scrollLeft;\n const lastTab = tabs[tabs.length - 1]?.nativeElement;\n const lastTabWidth = lastTab?.getBoundingClientRect?.().width || 0;\n const withoutLastTabWidth = totalWidth - lastTabWidth;\n\n const isLeftSide = scrollLeft + width / 2 > withoutLastTabWidth + lastTabWidth / 2;\n const left = isLeftSide ? totalWidth - lastTabWidth : totalWidth - width;\n\n if (withoutLastTabWidth < scrollLeft || totalWidth > scrollLeft + width) {\n tabList.scrollTo({ left, behavior: 'smooth' });\n }\n }\n}\n\nexport function provideTabs<T extends NgbTab>(tab: typeof NgbTabs<T>) {\n return {\n provide: NgbTabs,\n useExisting: tab,\n };\n}\n","/*\n * Public API Surface of tab\n */\n\nexport * from './tab';\nexport * from './tab-group';\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-tabs.mjs","sources":["../../../projects/adk/tabs/tab.ts","../../../projects/adk/tabs/tab-group.ts","../../../projects/adk/tabs/public-api.ts","../../../projects/adk/tabs/ngbase-adk-tabs.ts"],"sourcesContent":["import {\n Directive,\n TemplateRef,\n booleanAttribute,\n computed,\n contentChild,\n input,\n signal,\n} from '@angular/core';\nimport { uniqueId } from '@ngbase/adk/utils';\n\n@Directive({\n selector: '[ngbTabHeader]',\n})\nexport class NgbTabHeader {}\n\n@Directive({\n selector: '[ngbTabLazy]',\n})\nexport class NgbTabLazy {}\n\n@Directive({\n selector: 'ngb-tab',\n exportAs: 'ngbTab',\n host: {\n role: 'tabpanel',\n '[tabindex]': 'active() ? 0 : -1',\n '[attr.aria-hidden]': '!active()',\n '[attr.aria-labelledby]': 'id',\n },\n})\nexport class NgbTab {\n // Dependencies\n readonly header = contentChild(NgbTabHeader, { read: TemplateRef });\n readonly lazy = contentChild(NgbTabLazy, { read: TemplateRef });\n\n // Inputs\n readonly label = input('Tab');\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly mode = input<'hidden' | 'lazy'>();\n readonly value = input<string | number>();\n readonly id = uniqueId();\n readonly index = signal(0);\n readonly tabId = computed(() => this.value() ?? this.index());\n\n // State\n readonly active = signal(false);\n\n private activated = false;\n readonly activeMode = computed(() => {\n this.activated ||= this.active();\n return this.mode() ? this.activated : this.active();\n });\n readonly lazyTemplate = computed(() => this.active() && this.lazy());\n}\n\nexport function aliasTab(tab: typeof NgbTab) {\n return { provide: NgbTab, useExisting: tab };\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Directive,\n ElementRef,\n afterNextRender,\n computed,\n contentChildren,\n effect,\n inject,\n input,\n model,\n output,\n viewChild,\n viewChildren,\n} from '@angular/core';\nimport { AccessibleGroup, AccessibleItem } from '@ngbase/adk/a11y';\nimport { uniqueId } from '@ngbase/adk/utils';\nimport { NgbTab } from './tab';\n\nexport interface NgbTabChangeEvent {\n tab: NgbTab;\n index: number;\n}\n\n@Directive({\n selector: '[ngbTabButtonsGroup]',\n hostDirectives: [AccessibleGroup],\n host: {\n role: 'tablist',\n style: 'scrollbar-width: none',\n },\n})\nexport class TabButtonsGroup {\n private readonly tabGroup = inject(NgbTabs);\n private readonly accessibleGroup = inject(AccessibleGroup);\n\n constructor() {\n this.accessibleGroup.ayId.set(this.tabGroup.ayId);\n }\n}\n\n@Component({\n selector: 'button[ngbTabButton]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [AccessibleItem],\n imports: [NgTemplateOutlet],\n template: `\n @if (ngbTabButton().header(); as template) {\n <ng-container *ngTemplateOutlet=\"template\" />\n } @else {\n {{ ngbTabButton().label() }}\n }\n `,\n host: {\n type: 'button',\n role: 'tab',\n '[attr.id]': 'ngbTabButton().id',\n '(click)': '!ngbTabButton().disabled() && tabGroup.setActive(ngbTabButton())',\n },\n})\nexport class TabButton {\n private readonly tabGroup = inject(NgbTabs);\n private readonly accessibleItem = inject(AccessibleItem);\n\n readonly ngbTabButton = input.required<NgbTab>();\n\n constructor() {\n this.accessibleItem._selected = computed(\n () => this.ngbTabButton().tabId() === this.tabGroup.selectedIndex(),\n );\n this.accessibleItem._disabled = computed(() => this.ngbTabButton().disabled());\n this.accessibleItem._ayId.set(this.tabGroup.ayId);\n }\n}\n\n@Directive({\n selector: 'button[ngbTabScroll]',\n host: {\n type: 'button',\n tabindex: '-1',\n style: '{display: none}',\n '(click)': 'tabGroup.scroll(ngbTabScroll())',\n },\n})\nexport class TabScroll {\n readonly ngbTabScroll = input.required<'left' | 'right'>();\n readonly tabGroup = inject(NgbTabs);\n}\n\n@Directive({\n selector: 'ngb-tabs',\n exportAs: 'ngbTabs',\n})\nexport class NgbTabs<T extends NgbTab = NgbTab> {\n readonly tabList = viewChild.required<TabButtonsGroup, ElementRef<HTMLElement>>(TabButtonsGroup, {\n read: ElementRef,\n });\n readonly tabListContainer = viewChild.required<ElementRef<HTMLElement>>('tabListContainer');\n readonly tabButtons = viewChildren<TabButton, ElementRef<HTMLElement>>(TabButton, {\n read: ElementRef,\n });\n // readonly leftScroll = viewChild<ElementRef<HTMLElement>>('leftScroll');\n // readonly rightScroll = viewChild<ElementRef<HTMLElement>>('rightScroll');\n readonly scrollButtons = viewChildren<TabScroll, ElementRef<HTMLElement>>(TabScroll, {\n read: ElementRef,\n });\n readonly tabs = contentChildren<T>(NgbTab as any);\n\n readonly selectedIndex = model<any>(0);\n readonly selectedTabChange = output<NgbTabChangeEvent>();\n\n private selectedId?: number;\n private readonly tabMap = new Map<number, string>();\n readonly ayId = uniqueId();\n\n constructor() {\n effect(cleanup => {\n const tabList = this.tabList().nativeElement;\n const tabListContainer = this.tabListContainer().nativeElement;\n if (typeof ResizeObserver !== 'undefined') {\n const observer = new ResizeObserver(() => {\n this.updateScrollDisplay(tabList);\n });\n observer.observe(tabListContainer);\n cleanup(() => observer.disconnect());\n }\n });\n\n effect(() => {\n const tabs = this.tabs();\n tabs.forEach((tab, index) => tab.index.set(index));\n });\n\n effect(() => {\n const tabs = this.tabs();\n let activeIndex = this.selectedIndex();\n if (activeIndex === undefined || activeIndex === null) {\n this.setActive(tabs[0]);\n return;\n } else if (activeIndex >= tabs.length) {\n // if the index is out of bounds, set the last tab as active\n this.setActive(tabs[tabs.length - 1]);\n return;\n }\n\n if (this.selectedId !== undefined && activeIndex === this.selectedId) {\n const id = this.tabMap.get(this.selectedId);\n const tab = tabs.find(tab => tab.id === id);\n if (tab && activeIndex !== tab.index()) {\n this.setActive(tab);\n this.selectedId = undefined;\n return;\n }\n }\n\n // make sure the index is not a disabled tab\n // if (tabs[activeIndex]?.disabled()) {\n // const nextIndex = tabs.findIndex((tab, index) => !tab.disabled() && index > activeIndex);\n // activeIndex = nextIndex === -1 ? tabs.length - 1 : nextIndex;\n // this.selectedIndex.set(activeIndex);\n // this.selectedId = activeIndex;\n // return;\n // }\n\n // tabMap is used to keep track of the tab headers\n this.tabMap.clear();\n let activeTab: NgbTab;\n tabs.forEach((tab, index) => {\n tab.active.set(activeIndex === tab.tabId());\n if (activeIndex === tab.tabId()) {\n activeTab = tab;\n }\n this.tabMap.set(index, tab.id);\n });\n\n this.selectedId = activeIndex;\n\n // scroll to the active tab\n this.scrollToActive(activeTab!.index());\n });\n\n afterNextRender(() => {\n const el = this.tabList().nativeElement;\n this.updateScrollDisplay(el);\n el.addEventListener('scroll', () => {\n requestAnimationFrame(() => {\n this.updateScrollDisplay(el);\n });\n });\n });\n }\n\n private updateScrollDisplay(el: HTMLElement) {\n const leftScroll = this.scrollButtons()[0]!.nativeElement;\n const rightScroll = this.scrollButtons()[1]!.nativeElement;\n leftScroll.style.display = el.scrollLeft > 0 ? 'grid' : 'none';\n rightScroll.style.display = el.scrollLeft + el.clientWidth < el.scrollWidth ? 'grid' : 'none';\n }\n\n scroll(direction: 'left' | 'right') {\n const tabList = this.tabList()!.nativeElement;\n const el = this.tabList()!.nativeElement;\n const scroll = el.clientWidth * 0.8;\n const isLeft = direction === 'left';\n tabList.scrollTo({\n left: tabList.scrollLeft + (isLeft ? -scroll : scroll),\n behavior: 'smooth',\n });\n }\n\n setActive(tab: NgbTab) {\n // if the tab is not found, return\n if (!tab) return;\n\n this.selectedIndex.set(tab.tabId());\n this.scrollToActive(tab.index());\n this.selectedTabChange.emit({ tab, index: tab.index() });\n }\n\n private scrollToActive(index: number) {\n const tabList = this.tabList().nativeElement;\n const tabs = this.tabButtons().slice(0, index + 1);\n // ssr does not support getBoundingClientRect\n const totalWidth = tabs.reduce((a, c) => {\n const width = c.nativeElement.getBoundingClientRect?.().width || 0;\n return a + width;\n }, 0);\n\n const { width } = tabList.getBoundingClientRect?.() || { width: 0 };\n const scrollLeft = tabList.scrollLeft;\n const lastTab = tabs[tabs.length - 1]?.nativeElement;\n const lastTabWidth = lastTab?.getBoundingClientRect?.().width || 0;\n const withoutLastTabWidth = totalWidth - lastTabWidth;\n\n const isLeftSide = scrollLeft + width / 2 > withoutLastTabWidth + lastTabWidth / 2;\n const left = isLeftSide ? totalWidth - lastTabWidth : totalWidth - width;\n\n if (withoutLastTabWidth < scrollLeft || totalWidth > scrollLeft + width) {\n tabList.scrollTo({ left, behavior: 'smooth' });\n }\n }\n}\n\nexport function aliasTabs<T extends NgbTab>(tab: typeof NgbTabs<T>) {\n return {\n provide: NgbTabs,\n useExisting: tab,\n };\n}\n","/*\n * Public API Surface of tab\n */\n\nexport * from './tab';\nexport * from './tab-group';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +1,32 @@
|
|
|
1
1
|
import { trigger, state, style, transition, animate } from '@angular/animations';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { inject, ElementRef, signal, afterRenderEffect,
|
|
4
|
-
import { tooltipPosition } from '@ngbase/adk/popover';
|
|
3
|
+
import { inject, ElementRef, signal, afterRenderEffect, Directive, Injectable, InjectionToken, input, computed, untracked } from '@angular/core';
|
|
4
|
+
import { POPOVER_ARROW_TRACKER, tooltipPosition, providePopoverArrowTracker } from '@ngbase/adk/popover';
|
|
5
5
|
import { basePortal } from '@ngbase/adk/portal';
|
|
6
6
|
|
|
7
|
+
const tooltipAnimation = trigger('tooltipAnimation', [
|
|
8
|
+
state('1', style({ transform: 'none', opacity: 1 })),
|
|
9
|
+
state('void', style({ transform: 'translateY(-5px) scale(0.95)', opacity: 0 })),
|
|
10
|
+
state('0', style({ transform: 'translateY(-5px) scale(0.95)', opacity: 0 })),
|
|
11
|
+
transition('* => *', animate('150ms ease-out')),
|
|
12
|
+
]);
|
|
7
13
|
class NgbTooltipTemplate {
|
|
8
14
|
constructor() {
|
|
9
15
|
this.el = inject(ElementRef);
|
|
16
|
+
this.arrowTracker = inject(POPOVER_ARROW_TRACKER, { optional: true });
|
|
10
17
|
this.content = signal('Tooltip');
|
|
18
|
+
this.target = signal(undefined);
|
|
11
19
|
this.position = 'top';
|
|
12
20
|
this.onRemoved = () => {
|
|
13
21
|
this.hide();
|
|
14
22
|
};
|
|
15
23
|
afterRenderEffect(() => {
|
|
16
24
|
const _ = this.content();
|
|
25
|
+
const target = this.target();
|
|
17
26
|
// we need for the content to be set before setting the position
|
|
18
|
-
|
|
27
|
+
if (target) {
|
|
28
|
+
this.setPosition(target);
|
|
29
|
+
}
|
|
19
30
|
});
|
|
20
31
|
}
|
|
21
32
|
update(content, target, position, hide) {
|
|
@@ -28,13 +39,14 @@ class NgbTooltipTemplate {
|
|
|
28
39
|
}
|
|
29
40
|
setTarget(target) {
|
|
30
41
|
this.ngOnDestroy();
|
|
31
|
-
this.target
|
|
42
|
+
this.target.set(target);
|
|
32
43
|
this.listenTarget();
|
|
33
44
|
}
|
|
34
45
|
listenTarget() {
|
|
35
46
|
this.observer = new MutationObserver(() => {
|
|
36
|
-
|
|
37
|
-
|
|
47
|
+
const target = this.target();
|
|
48
|
+
if (target?.isConnected) {
|
|
49
|
+
this.setPosition(target);
|
|
38
50
|
}
|
|
39
51
|
else {
|
|
40
52
|
this.onRemoved();
|
|
@@ -44,54 +56,43 @@ class NgbTooltipTemplate {
|
|
|
44
56
|
}
|
|
45
57
|
setPosition(target) {
|
|
46
58
|
const el = this.el.nativeElement;
|
|
47
|
-
const { top, bottom, left, right } = tooltipPosition({
|
|
59
|
+
const { top, bottom, left, right, position } = tooltipPosition({
|
|
48
60
|
target,
|
|
49
61
|
el,
|
|
50
62
|
position: this.position,
|
|
63
|
+
offset: 8,
|
|
51
64
|
});
|
|
52
65
|
if (bottom != undefined) {
|
|
53
66
|
el.style.bottom = `${bottom}px`;
|
|
67
|
+
el.style.top = '';
|
|
54
68
|
}
|
|
55
69
|
else {
|
|
56
70
|
el.style.top = `${top}px`;
|
|
71
|
+
el.style.bottom = '';
|
|
57
72
|
}
|
|
58
73
|
if (right != undefined) {
|
|
59
74
|
el.style.right = `${right}px`;
|
|
75
|
+
el.style.left = '';
|
|
60
76
|
}
|
|
61
77
|
else {
|
|
62
78
|
el.style.left = `${left}px`;
|
|
79
|
+
el.style.right = '';
|
|
63
80
|
}
|
|
81
|
+
this.arrowTracker?.values.set({ top, bottom, left, right, target, position });
|
|
64
82
|
}
|
|
65
83
|
ngOnDestroy() {
|
|
66
84
|
this.observer?.disconnect();
|
|
67
85
|
}
|
|
68
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbTooltipTemplate, deps: [], target: i0.ɵɵFactoryTarget.
|
|
69
|
-
static { this.ɵ
|
|
70
|
-
trigger('slideInOutAnimation', [
|
|
71
|
-
state('1', style({ transform: 'none', opacity: 1 })),
|
|
72
|
-
state('void', style({ transform: 'translateY(-5px) scale(0.95)', opacity: 0 })),
|
|
73
|
-
state('0', style({ transform: 'translateY(-5px) scale(0.95)', opacity: 0 })),
|
|
74
|
-
transition('* => *', animate('150ms ease-out')),
|
|
75
|
-
]),
|
|
76
|
-
], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
86
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbTooltipTemplate, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
87
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0", type: NgbTooltipTemplate, isStandalone: true, selector: "[ngbTooltip]", host: { properties: { "@tooltipAnimation": "" } }, ngImport: i0 }); }
|
|
77
88
|
}
|
|
78
89
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbTooltipTemplate, decorators: [{
|
|
79
|
-
type:
|
|
90
|
+
type: Directive,
|
|
80
91
|
args: [{
|
|
81
92
|
selector: '[ngbTooltip]',
|
|
82
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
83
|
-
template: `{{ content() }}`,
|
|
84
93
|
host: {
|
|
85
|
-
'[@
|
|
94
|
+
'[@tooltipAnimation]': '',
|
|
86
95
|
},
|
|
87
|
-
animations: [
|
|
88
|
-
trigger('slideInOutAnimation', [
|
|
89
|
-
state('1', style({ transform: 'none', opacity: 1 })),
|
|
90
|
-
state('void', style({ transform: 'translateY(-5px) scale(0.95)', opacity: 0 })),
|
|
91
|
-
state('0', style({ transform: 'translateY(-5px) scale(0.95)', opacity: 0 })),
|
|
92
|
-
transition('* => *', animate('150ms ease-out')),
|
|
93
|
-
]),
|
|
94
|
-
],
|
|
95
96
|
}]
|
|
96
97
|
}], ctorParameters: () => [] });
|
|
97
98
|
|
|
@@ -99,25 +100,33 @@ class TooltipService {
|
|
|
99
100
|
constructor() {
|
|
100
101
|
this.tooltip = tooltipPortal();
|
|
101
102
|
this.delay = 100;
|
|
102
|
-
this.destroy = () => {
|
|
103
|
-
|
|
104
|
-
this.
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
103
|
+
this.destroy = (force) => {
|
|
104
|
+
if (force) {
|
|
105
|
+
this.close();
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
this.timeoutId = setTimeout(() => this.close(), this.delay ?? 100);
|
|
109
|
+
}
|
|
108
110
|
};
|
|
109
111
|
}
|
|
110
112
|
insert(el, content, position, hide, component) {
|
|
111
113
|
clearTimeout(this.timeoutId);
|
|
114
|
+
// destroy immediately if position is different
|
|
115
|
+
if (this.position && this.position !== position)
|
|
116
|
+
this.destroy(true);
|
|
117
|
+
// update if tooltip is open
|
|
112
118
|
if (this.tooltipOpen) {
|
|
113
119
|
this.tooltipOpen.parent.instance.update(content, el, position, hide);
|
|
114
|
-
// setTimeout(() => {
|
|
115
|
-
// this.tooltipOpen.parent.instance.setPosition(el);
|
|
116
|
-
// });
|
|
117
120
|
}
|
|
118
121
|
else {
|
|
119
122
|
this.tooltipOpen = this.tooltip.open(content, el, position, hide, component);
|
|
120
123
|
}
|
|
124
|
+
this.position = position;
|
|
125
|
+
}
|
|
126
|
+
close() {
|
|
127
|
+
this.tooltipOpen?.destroy();
|
|
128
|
+
this.tooltipOpen = undefined;
|
|
129
|
+
this.delay = 100;
|
|
121
130
|
}
|
|
122
131
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: TooltipService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
123
132
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: TooltipService, providedIn: 'root' }); }
|
|
@@ -216,12 +225,13 @@ class NgbTooltip {
|
|
|
216
225
|
this.remove();
|
|
217
226
|
}
|
|
218
227
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbTooltip, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
219
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.0", type: NgbTooltip, isStandalone: true, selector: "[ngbTooltip]", inputs: { ngbTooltip: { classPropertyName: "ngbTooltip", publicName: "ngbTooltip", isSignal: true, isRequired: false, transformFunction: null }, ngbTooltipPosition: { classPropertyName: "ngbTooltipPosition", publicName: "ngbTooltipPosition", isSignal: true, isRequired: false, transformFunction: null }, delay: { classPropertyName: "delay", publicName: "delay", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
|
|
228
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.0", type: NgbTooltip, isStandalone: true, selector: "[ngbTooltip]", inputs: { ngbTooltip: { classPropertyName: "ngbTooltip", publicName: "ngbTooltip", isSignal: true, isRequired: false, transformFunction: null }, ngbTooltipPosition: { classPropertyName: "ngbTooltipPosition", publicName: "ngbTooltipPosition", isSignal: true, isRequired: false, transformFunction: null }, delay: { classPropertyName: "delay", publicName: "delay", isSignal: true, isRequired: false, transformFunction: null } }, providers: [providePopoverArrowTracker()], ngImport: i0 }); }
|
|
220
229
|
}
|
|
221
230
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbTooltip, decorators: [{
|
|
222
231
|
type: Directive,
|
|
223
232
|
args: [{
|
|
224
233
|
selector: '[ngbTooltip]',
|
|
234
|
+
providers: [providePopoverArrowTracker()],
|
|
225
235
|
}]
|
|
226
236
|
}], ctorParameters: () => [] });
|
|
227
237
|
|
|
@@ -233,5 +243,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
|
|
|
233
243
|
* Generated bundle index. Do not edit.
|
|
234
244
|
*/
|
|
235
245
|
|
|
236
|
-
export { NgbTooltip, NgbTooltipTemplate, provideNgbTooltipOptions };
|
|
246
|
+
export { NgbTooltip, NgbTooltipTemplate, provideNgbTooltipOptions, tooltipAnimation };
|
|
237
247
|
//# sourceMappingURL=ngbase-adk-tooltip.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngbase-adk-tooltip.mjs","sources":["../../../projects/adk/tooltip/tooltip.ts","../../../projects/adk/tooltip/tooltip.service.ts","../../../projects/adk/tooltip/tooltip.directive.ts","../../../projects/adk/tooltip/public-api.ts","../../../projects/adk/tooltip/ngbase-adk-tooltip.ts"],"sourcesContent":["import { animate, state, style, transition, trigger } from '@angular/animations';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n OnDestroy,\n afterRenderEffect,\n inject,\n signal,\n} from '@angular/core';\nimport { PopoverPosition, tooltipPosition } from '@ngbase/adk/popover';\n\n@Component({\n selector: '[ngbTooltip]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `{{ content() }}`,\n host: {\n '[@slideInOutAnimation]': '1',\n },\n animations: [\n trigger('slideInOutAnimation', [\n state('1', style({ transform: 'none', opacity: 1 })),\n state('void', style({ transform: 'translateY(-5px) scale(0.95)', opacity: 0 })),\n state('0', style({ transform: 'translateY(-5px) scale(0.95)', opacity: 0 })),\n transition('* => *', animate('150ms ease-out')),\n ]),\n ],\n})\nexport class NgbTooltipTemplate implements OnDestroy {\n readonly el = inject<ElementRef<HTMLElement>>(ElementRef);\n readonly content = signal('Tooltip');\n\n private target!: HTMLElement;\n private position: PopoverPosition = 'top';\n private hide!: VoidFunction;\n private observer?: MutationObserver;\n\n constructor() {\n afterRenderEffect(() => {\n const _ = this.content();\n // we need for the content to be set before setting the position\n this.setPosition(this.target);\n });\n }\n\n update(content: string, target: HTMLElement, position: PopoverPosition, hide: VoidFunction) {\n this.setTarget(target);\n this.hide = hide;\n this.position = position;\n this.el.nativeElement.style.right = '';\n this.el.nativeElement.style.transition = '.15s ease-out all';\n this.content.set(content);\n }\n\n private setTarget(target: HTMLElement) {\n this.ngOnDestroy();\n this.target = target;\n this.listenTarget();\n }\n\n private listenTarget() {\n this.observer = new MutationObserver(() => {\n if (this.target.isConnected) {\n this.setPosition(this.target);\n } else {\n this.onRemoved();\n }\n });\n\n this.observer.observe(document.body, { childList: true, subtree: true });\n }\n\n private onRemoved = () => {\n this.hide();\n };\n\n setPosition(target: HTMLElement) {\n const el = this.el.nativeElement;\n\n const { top, bottom, left, right } = tooltipPosition({\n target,\n el,\n position: this.position,\n });\n if (bottom != undefined) {\n el.style.bottom = `${bottom}px`;\n } else {\n el.style.top = `${top}px`;\n }\n if (right != undefined) {\n el.style.right = `${right}px`;\n } else {\n el.style.left = `${left}px`;\n }\n }\n\n ngOnDestroy(): void {\n this.observer?.disconnect();\n }\n}\n","import { ComponentRef, Injectable, Type } from '@angular/core';\nimport { basePortal, DialogInput } from '@ngbase/adk/portal';\nimport { PopoverPosition } from '@ngbase/adk/popover';\nimport { NgbTooltipTemplate } from './tooltip';\n\n@Injectable({ providedIn: 'root' })\nexport class TooltipService {\n tooltip = tooltipPortal();\n tooltipOpen: TooltipOpen | undefined;\n timeoutId: any;\n delay = 100;\n\n insert(\n el: HTMLElement,\n content: string,\n position: PopoverPosition,\n hide: VoidFunction,\n component?: Type<NgbTooltipTemplate>,\n ) {\n clearTimeout(this.timeoutId);\n if (this.tooltipOpen) {\n this.tooltipOpen.parent.instance.update(content, el, position, hide);\n // setTimeout(() => {\n // this.tooltipOpen.parent.instance.setPosition(el);\n // });\n } else {\n this.tooltipOpen = this.tooltip.open(content, el, position, hide, component);\n }\n }\n\n destroy = () => {\n this.timeoutId = setTimeout(() => {\n this.tooltipOpen?.destroy();\n this.tooltipOpen = undefined;\n this.delay = 100;\n }, this.delay ?? 100);\n };\n}\n\ninterface TooltipOpen {\n destroy: VoidFunction;\n parent: ComponentRef<NgbTooltipTemplate>;\n replace: ((component: DialogInput<NgbTooltipTemplate>) => void) | undefined;\n}\n\nexport function tooltipPortal() {\n const NAME = 'tooltip';\n const base = basePortal(NAME, NgbTooltipTemplate);\n\n function open(\n content: string,\n target: HTMLElement,\n position: PopoverPosition,\n hide: VoidFunction,\n parentComponent?: Type<NgbTooltipTemplate>,\n ) {\n const { diaRef, parent, replace } = base.open<NgbTooltipTemplate>(\n undefined,\n comp => {\n comp.instance.update(content, target, position || 'top', hide);\n },\n undefined,\n false,\n parentComponent,\n );\n\n function destroy() {\n diaRef.close();\n }\n\n return { destroy, parent, replace } as TooltipOpen;\n }\n\n return { open };\n}\n","import {\n Directive,\n ElementRef,\n InjectionToken,\n OnDestroy,\n Type,\n afterRenderEffect,\n computed,\n inject,\n input,\n untracked,\n} from '@angular/core';\nimport { PopoverPosition } from '@ngbase/adk/popover';\nimport { TooltipService } from './tooltip.service';\nimport { NgbTooltipTemplate } from './tooltip';\n\nexport function provideNgbTooltipOptions(options: TooltipOptions) {\n return { provide: TOOLTIP_OPTIONS, useValue: options };\n}\n\nexport const TOOLTIP_OPTIONS = new InjectionToken<TooltipOptions>('TOOLTIP_OPTIONS');\n\nexport interface TooltipOptions {\n showDelay?: number;\n hideDelay?: number;\n position?: PopoverPosition;\n component?: Type<NgbTooltipTemplate>;\n}\n\n@Directive({\n selector: '[ngbTooltip]',\n})\nexport class NgbTooltip implements OnDestroy {\n // Dependencies\n private defaultOptions = inject(TOOLTIP_OPTIONS, { optional: true });\n private el = inject(ElementRef);\n private tooltipService = inject(TooltipService);\n\n // Inputs\n readonly ngbTooltip = input<string>();\n readonly ngbTooltipPosition = input<PopoverPosition>();\n readonly delay = input(0);\n\n // State\n readonly options = computed(() => {\n const o = this.defaultOptions || {};\n const options: TooltipOptions = {\n showDelay: this.delay() || o.showDelay || 0,\n hideDelay: o.hideDelay || 0,\n position: this.ngbTooltipPosition() || o.position || 'top',\n component: this.defaultOptions?.component || o.component,\n };\n return options;\n });\n timer: any;\n\n constructor() {\n let active = false;\n afterRenderEffect(() => {\n const content = this.ngbTooltip();\n untracked(() => {\n if (content) {\n if (!active) {\n this.el.nativeElement.addEventListener('mouseenter', this.show);\n this.el.nativeElement.addEventListener('mouseleave', this.hide);\n active = true;\n }\n } else if (active) {\n this.remove();\n active = false;\n }\n });\n });\n }\n\n show = () => {\n // listen when cursor is over and element is removed\n const options = this.options();\n if (options.showDelay === 0 || this.tooltipService.tooltipOpen) {\n this.tooltipService.insert(\n this.el.nativeElement,\n this.ngbTooltip()!,\n options.position!,\n this.quickHide,\n options.component,\n );\n return;\n }\n this.timer = setTimeout(() => {\n this.tooltipService.insert(\n this.el.nativeElement,\n this.ngbTooltip()!,\n options.position!,\n this.hide,\n options.component,\n );\n }, options.showDelay);\n };\n\n removed = () => {\n this.tooltipService.delay = 0;\n this.hide();\n };\n\n hide = () => {\n clearTimeout(this.timer);\n this.tooltipService.destroy();\n };\n\n quickHide = () => {\n this.tooltipService.delay = 0;\n this.hide();\n };\n\n private remove() {\n this.hide();\n this.el.nativeElement.removeEventListener('mouseenter', this.show);\n this.el.nativeElement.removeEventListener('mouseleave', this.hide);\n }\n\n ngOnDestroy() {\n this.remove();\n }\n}\n","/*\n * Public API Surface of tooltip\n */\n\nexport { NgbTooltipTemplate } from './tooltip';\nexport { NgbTooltip, provideNgbTooltipOptions, type TooltipOptions } from './tooltip.directive';\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-tooltip.mjs","sources":["../../../projects/adk/tooltip/tooltip.ts","../../../projects/adk/tooltip/tooltip.service.ts","../../../projects/adk/tooltip/tooltip.directive.ts","../../../projects/adk/tooltip/public-api.ts","../../../projects/adk/tooltip/ngbase-adk-tooltip.ts"],"sourcesContent":["import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { Directive, ElementRef, OnDestroy, afterRenderEffect, inject, signal } from '@angular/core';\nimport { POPOVER_ARROW_TRACKER, PopoverPosition, tooltipPosition } from '@ngbase/adk/popover';\n\nexport const tooltipAnimation = trigger('tooltipAnimation', [\n state('1', style({ transform: 'none', opacity: 1 })),\n state('void', style({ transform: 'translateY(-5px) scale(0.95)', opacity: 0 })),\n state('0', style({ transform: 'translateY(-5px) scale(0.95)', opacity: 0 })),\n transition('* => *', animate('150ms ease-out')),\n]);\n\n@Directive({\n selector: '[ngbTooltip]',\n host: {\n '[@tooltipAnimation]': '',\n },\n})\nexport class NgbTooltipTemplate implements OnDestroy {\n readonly el = inject<ElementRef<HTMLElement>>(ElementRef);\n readonly arrowTracker = inject(POPOVER_ARROW_TRACKER, { optional: true });\n\n readonly content = signal('Tooltip');\n private target = signal<HTMLElement | undefined>(undefined);\n private position: PopoverPosition = 'top';\n private hide!: VoidFunction;\n private observer?: MutationObserver;\n\n constructor() {\n afterRenderEffect(() => {\n const _ = this.content();\n const target = this.target();\n // we need for the content to be set before setting the position\n if (target) {\n this.setPosition(target);\n }\n });\n }\n\n update(content: string, target: HTMLElement, position: PopoverPosition, hide: VoidFunction) {\n this.setTarget(target);\n this.hide = hide;\n this.position = position;\n this.el.nativeElement.style.right = '';\n this.el.nativeElement.style.transition = '.15s ease-out all';\n this.content.set(content);\n }\n\n private setTarget(target: HTMLElement) {\n this.ngOnDestroy();\n this.target.set(target);\n this.listenTarget();\n }\n\n private listenTarget() {\n this.observer = new MutationObserver(() => {\n const target = this.target();\n if (target?.isConnected) {\n this.setPosition(target);\n } else {\n this.onRemoved();\n }\n });\n\n this.observer.observe(document.body, { childList: true, subtree: true });\n }\n\n private onRemoved = () => {\n this.hide();\n };\n\n setPosition(target: HTMLElement) {\n const el = this.el.nativeElement;\n\n const { top, bottom, left, right, position } = tooltipPosition({\n target,\n el,\n position: this.position,\n offset: 8,\n });\n if (bottom != undefined) {\n el.style.bottom = `${bottom}px`;\n el.style.top = '';\n } else {\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 this.arrowTracker?.values.set({ top, bottom, left, right, target, position });\n }\n\n ngOnDestroy(): void {\n this.observer?.disconnect();\n }\n}\n","import { ComponentRef, Injectable, Type } from '@angular/core';\nimport { basePortal, DialogInput } from '@ngbase/adk/portal';\nimport { PopoverPosition } from '@ngbase/adk/popover';\nimport { NgbTooltipTemplate } from './tooltip';\n\n@Injectable({ providedIn: 'root' })\nexport class TooltipService {\n tooltip = tooltipPortal();\n tooltipOpen: TooltipOpen | undefined;\n private position?: PopoverPosition;\n private timeoutId: any;\n delay = 100;\n\n insert(\n el: HTMLElement,\n content: string,\n position: PopoverPosition,\n hide: VoidFunction,\n component?: Type<NgbTooltipTemplate>,\n ) {\n clearTimeout(this.timeoutId);\n // destroy immediately if position is different\n if (this.position && this.position !== position) this.destroy(true);\n\n // update if tooltip is open\n if (this.tooltipOpen) {\n this.tooltipOpen.parent.instance.update(content, el, position, hide);\n } else {\n this.tooltipOpen = this.tooltip.open(content, el, position, hide, component);\n }\n this.position = position;\n }\n\n destroy = (force?: boolean) => {\n if (force) {\n this.close();\n } else {\n this.timeoutId = setTimeout(() => this.close(), this.delay ?? 100);\n }\n };\n\n private close() {\n this.tooltipOpen?.destroy();\n this.tooltipOpen = undefined;\n this.delay = 100;\n }\n}\n\ninterface TooltipOpen {\n destroy: VoidFunction;\n parent: ComponentRef<NgbTooltipTemplate>;\n replace: ((component: DialogInput<NgbTooltipTemplate>) => void) | undefined;\n}\n\nexport function tooltipPortal() {\n const NAME = 'tooltip';\n const base = basePortal(NAME, NgbTooltipTemplate);\n\n function open(\n content: string,\n target: HTMLElement,\n position: PopoverPosition,\n hide: VoidFunction,\n parentComponent?: Type<NgbTooltipTemplate>,\n ) {\n const { diaRef, parent, replace } = base.open<NgbTooltipTemplate>(\n undefined,\n comp => {\n comp.instance.update(content, target, position || 'top', hide);\n },\n undefined,\n false,\n parentComponent,\n );\n\n function destroy() {\n diaRef.close();\n }\n\n return { destroy, parent, replace } as TooltipOpen;\n }\n\n return { open };\n}\n","import {\n Directive,\n ElementRef,\n InjectionToken,\n OnDestroy,\n Type,\n afterRenderEffect,\n computed,\n inject,\n input,\n untracked,\n} from '@angular/core';\nimport { PopoverPosition, providePopoverArrowTracker } from '@ngbase/adk/popover';\nimport { TooltipService } from './tooltip.service';\nimport { NgbTooltipTemplate } from './tooltip';\n\nexport function provideNgbTooltipOptions(options: TooltipOptions) {\n return { provide: TOOLTIP_OPTIONS, useValue: options };\n}\n\nexport const TOOLTIP_OPTIONS = new InjectionToken<TooltipOptions>('TOOLTIP_OPTIONS');\n\nexport interface TooltipOptions {\n showDelay?: number;\n hideDelay?: number;\n position?: PopoverPosition;\n component?: Type<NgbTooltipTemplate>;\n}\n\n@Directive({\n selector: '[ngbTooltip]',\n providers: [providePopoverArrowTracker()],\n})\nexport class NgbTooltip implements OnDestroy {\n // Dependencies\n private defaultOptions = inject(TOOLTIP_OPTIONS, { optional: true });\n private el = inject(ElementRef);\n private tooltipService = inject(TooltipService);\n\n // Inputs\n readonly ngbTooltip = input<string>();\n readonly ngbTooltipPosition = input<PopoverPosition>();\n readonly delay = input(0);\n\n // State\n readonly options = computed(() => {\n const o = this.defaultOptions || {};\n const options: TooltipOptions = {\n showDelay: this.delay() || o.showDelay || 0,\n hideDelay: o.hideDelay || 0,\n position: this.ngbTooltipPosition() || o.position || 'top',\n component: this.defaultOptions?.component || o.component,\n };\n return options;\n });\n timer: any;\n\n constructor() {\n let active = false;\n afterRenderEffect(() => {\n const content = this.ngbTooltip();\n untracked(() => {\n if (content) {\n if (!active) {\n this.el.nativeElement.addEventListener('mouseenter', this.show);\n this.el.nativeElement.addEventListener('mouseleave', this.hide);\n active = true;\n }\n } else if (active) {\n this.remove();\n active = false;\n }\n });\n });\n }\n\n show = () => {\n // listen when cursor is over and element is removed\n const options = this.options();\n if (options.showDelay === 0 || this.tooltipService.tooltipOpen) {\n this.tooltipService.insert(\n this.el.nativeElement,\n this.ngbTooltip()!,\n options.position!,\n this.quickHide,\n options.component,\n );\n return;\n }\n this.timer = setTimeout(() => {\n this.tooltipService.insert(\n this.el.nativeElement,\n this.ngbTooltip()!,\n options.position!,\n this.hide,\n options.component,\n );\n }, options.showDelay);\n };\n\n removed = () => {\n this.tooltipService.delay = 0;\n this.hide();\n };\n\n hide = () => {\n clearTimeout(this.timer);\n this.tooltipService.destroy();\n };\n\n quickHide = () => {\n this.tooltipService.delay = 0;\n this.hide();\n };\n\n private remove() {\n this.hide();\n this.el.nativeElement.removeEventListener('mouseenter', this.show);\n this.el.nativeElement.removeEventListener('mouseleave', this.hide);\n }\n\n ngOnDestroy() {\n this.remove();\n }\n}\n","/*\n * Public API Surface of tooltip\n */\n\nexport { NgbTooltipTemplate, tooltipAnimation } from './tooltip';\nexport { NgbTooltip, provideNgbTooltipOptions, type TooltipOptions } from './tooltip.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -125,7 +125,7 @@ class NgbTourService {
|
|
|
125
125
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbTourService, decorators: [{
|
|
126
126
|
type: Injectable,
|
|
127
127
|
args: [{ providedIn: 'root' }]
|
|
128
|
-
}]
|
|
128
|
+
}] });
|
|
129
129
|
|
|
130
130
|
class NgbTourStep {
|
|
131
131
|
constructor() {
|