@radix-ng/primitives 0.30.0 → 0.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/config/index.d.ts +2 -0
- package/config/src/config.d.ts +21 -0
- package/config/src/config.provider.d.ts +10 -0
- package/core/index.d.ts +3 -2
- package/core/src/kbd-constants.d.ts +40 -0
- package/dropdown-menu/src/dropdown-menu-label.directive.d.ts +2 -1
- package/dropdown-menu/src/dropdown-menu-separator.directive.d.ts +2 -2
- package/fesm2022/radix-ng-primitives-accordion.mjs +19 -19
- package/fesm2022/radix-ng-primitives-alert-dialog.mjs +22 -22
- package/fesm2022/radix-ng-primitives-aspect-ratio.mjs +3 -3
- package/fesm2022/radix-ng-primitives-avatar.mjs +16 -16
- package/fesm2022/radix-ng-primitives-checkbox.mjs +16 -16
- package/fesm2022/radix-ng-primitives-collapsible.mjs +9 -9
- package/fesm2022/radix-ng-primitives-config.mjs +54 -0
- package/fesm2022/radix-ng-primitives-config.mjs.map +1 -0
- package/fesm2022/radix-ng-primitives-context-menu.mjs +34 -34
- package/fesm2022/radix-ng-primitives-core.mjs +50 -9
- package/fesm2022/radix-ng-primitives-core.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-dialog.mjs +25 -25
- package/fesm2022/radix-ng-primitives-dropdown-menu.mjs +38 -43
- package/fesm2022/radix-ng-primitives-dropdown-menu.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-hover-card.mjs +28 -28
- package/fesm2022/radix-ng-primitives-label.mjs +7 -10
- package/fesm2022/radix-ng-primitives-label.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-menu.mjs +37 -37
- package/fesm2022/radix-ng-primitives-menubar.mjs +31 -31
- package/fesm2022/radix-ng-primitives-pagination.mjs +327 -0
- package/fesm2022/radix-ng-primitives-pagination.mjs.map +1 -0
- package/fesm2022/radix-ng-primitives-popover.mjs +28 -28
- package/fesm2022/radix-ng-primitives-progress.mjs +10 -10
- package/fesm2022/radix-ng-primitives-radio.mjs +12 -12
- package/fesm2022/radix-ng-primitives-roving-focus.mjs +6 -6
- package/fesm2022/radix-ng-primitives-select.mjs +34 -34
- package/fesm2022/radix-ng-primitives-separator.mjs +21 -9
- package/fesm2022/radix-ng-primitives-separator.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-slider.mjs +31 -31
- package/fesm2022/radix-ng-primitives-stepper.mjs +473 -0
- package/fesm2022/radix-ng-primitives-stepper.mjs.map +1 -0
- package/fesm2022/radix-ng-primitives-switch.mjs +13 -13
- package/fesm2022/radix-ng-primitives-tabs.mjs +16 -16
- package/fesm2022/radix-ng-primitives-toggle-group.mjs +9 -9
- package/fesm2022/radix-ng-primitives-toggle.mjs +6 -6
- package/fesm2022/radix-ng-primitives-toolbar.mjs +22 -22
- package/fesm2022/radix-ng-primitives-tooltip.mjs +28 -28
- package/fesm2022/radix-ng-primitives-visually-hidden.mjs +9 -9
- package/hover-card/src/hover-card-root.directive.d.ts +4 -4
- package/label/src/label.directive.d.ts +4 -7
- package/package.json +1 -1
- package/pagination/README.md +1 -0
- package/pagination/index.d.ts +23 -0
- package/pagination/src/pagination-context.token.d.ts +11 -0
- package/pagination/src/pagination-ellipsis.directive.d.ts +5 -0
- package/pagination/src/pagination-first.directive.d.ts +8 -0
- package/pagination/src/pagination-last.directive.d.ts +8 -0
- package/pagination/src/pagination-list-item.directive.d.ts +10 -0
- package/pagination/src/pagination-list.directive.d.ts +12 -0
- package/pagination/src/pagination-next.directive.d.ts +8 -0
- package/pagination/src/pagination-prev.directive.d.ts +8 -0
- package/pagination/src/pagination-root.directive.d.ts +18 -0
- package/pagination/src/utils.d.ts +9 -0
- package/popover/src/popover-root.directive.d.ts +4 -4
- package/separator/src/separator.directive.d.ts +4 -1
- package/stepper/README.md +1 -0
- package/stepper/index.d.ts +22 -0
- package/stepper/src/stepper-description.directive.d.ts +6 -0
- package/stepper/src/stepper-indicator.directive.d.ts +6 -0
- package/stepper/src/stepper-item-context.token.d.ts +13 -0
- package/stepper/src/stepper-item.directive.d.ts +21 -0
- package/stepper/src/stepper-root-context.token.d.ts +12 -0
- package/stepper/src/stepper-root.directive.d.ts +32 -0
- package/stepper/src/stepper-separator.directive.d.ts +10 -0
- package/stepper/src/stepper-title.directive.d.ts +6 -0
- package/stepper/src/stepper-trigger.directive.d.ts +14 -0
- package/stepper/src/types.d.ts +1 -0
- package/stepper/src/utils/getActiveElement.d.ts +1 -0
- package/stepper/src/utils/useArrowNavigation.d.ts +65 -0
- package/tooltip/src/tooltip-root.directive.d.ts +4 -4
- /package/core/src/{nullish.d.ts → is-nullish.d.ts} +0 -0
- /package/core/src/{isNumber.d.ts → is-number.d.ts} +0 -0
@@ -6,10 +6,10 @@ import * as i1$1 from '@angular/cdk/menu';
|
|
6
6
|
import { CdkMenuGroup, CdkMenuBar } from '@angular/cdk/menu';
|
7
7
|
|
8
8
|
class RdxMenuBarContentDirective {
|
9
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.
|
10
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: RdxMenuBarContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
10
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.6", type: RdxMenuBarContentDirective, isStandalone: true, selector: "[RdxMenuBarContent]", hostDirectives: [{ directive: i1.RdxMenuContentDirective }], ngImport: i0 }); }
|
11
11
|
}
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: RdxMenuBarContentDirective, decorators: [{
|
13
13
|
type: Directive,
|
14
14
|
args: [{
|
15
15
|
selector: '[RdxMenuBarContent]',
|
@@ -18,10 +18,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImpor
|
|
18
18
|
}] });
|
19
19
|
|
20
20
|
class RdxMenubarItemCheckboxDirective {
|
21
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.
|
22
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.
|
21
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: RdxMenubarItemCheckboxDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
22
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.6", type: RdxMenubarItemCheckboxDirective, isStandalone: true, selector: "[RdxMenuBarCheckboxItem]", hostDirectives: [{ directive: i1.RdxMenuItemCheckboxDirective, inputs: ["checked", "checked", "disabled", "disabled"] }], ngImport: i0 }); }
|
23
23
|
}
|
24
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: RdxMenubarItemCheckboxDirective, decorators: [{
|
25
25
|
type: Directive,
|
26
26
|
args: [{
|
27
27
|
selector: '[RdxMenuBarCheckboxItem]',
|
@@ -35,10 +35,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImpor
|
|
35
35
|
}] });
|
36
36
|
|
37
37
|
class RdxMenubarItemIndicatorDirective {
|
38
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.
|
39
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.
|
38
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: RdxMenubarItemIndicatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
39
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.6", type: RdxMenubarItemIndicatorDirective, isStandalone: true, selector: "[RdxMenuBarItemIndicator]", hostDirectives: [{ directive: i1.RdxMenuItemIndicatorDirective }], ngImport: i0 }); }
|
40
40
|
}
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: RdxMenubarItemIndicatorDirective, decorators: [{
|
42
42
|
type: Directive,
|
43
43
|
args: [{
|
44
44
|
selector: '[RdxMenuBarItemIndicator]',
|
@@ -47,10 +47,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImpor
|
|
47
47
|
}] });
|
48
48
|
|
49
49
|
class RdxMenubarItemRadioDirective {
|
50
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.
|
51
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.
|
50
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: RdxMenubarItemRadioDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
51
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.6", type: RdxMenubarItemRadioDirective, isStandalone: true, selector: "[RdxMenuBarItemRadio]", hostDirectives: [{ directive: i1.RdxMenuItemRadioDirective, inputs: ["disabled", "disabled", "checked", "checked"] }], ngImport: i0 }); }
|
52
52
|
}
|
53
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: RdxMenubarItemRadioDirective, decorators: [{
|
54
54
|
type: Directive,
|
55
55
|
args: [{
|
56
56
|
selector: '[RdxMenuBarItemRadio]',
|
@@ -64,10 +64,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImpor
|
|
64
64
|
}] });
|
65
65
|
|
66
66
|
class RdxMenuBarItemDirective {
|
67
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.
|
68
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.
|
67
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: RdxMenuBarItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
68
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.6", type: RdxMenuBarItemDirective, isStandalone: true, selector: "[RdxMenuBarItem]", hostDirectives: [{ directive: i1.RdxMenuItemDirective, inputs: ["disabled", "disabled"], outputs: ["onSelect", "onSelect"] }], ngImport: i0 }); }
|
69
69
|
}
|
70
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: RdxMenuBarItemDirective, decorators: [{
|
71
71
|
type: Directive,
|
72
72
|
args: [{
|
73
73
|
selector: '[RdxMenuBarItem]',
|
@@ -82,10 +82,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImpor
|
|
82
82
|
}] });
|
83
83
|
|
84
84
|
class RdxMenubarRadioGroupDirective {
|
85
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.
|
86
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.
|
85
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: RdxMenubarRadioGroupDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
86
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.6", type: RdxMenubarRadioGroupDirective, isStandalone: true, selector: "[RdxMenuBarRadioGroup]", hostDirectives: [{ directive: i1$1.CdkMenuGroup }], ngImport: i0 }); }
|
87
87
|
}
|
88
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.
|
88
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: RdxMenubarRadioGroupDirective, decorators: [{
|
89
89
|
type: Directive,
|
90
90
|
args: [{
|
91
91
|
selector: '[RdxMenuBarRadioGroup]',
|
@@ -94,10 +94,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImpor
|
|
94
94
|
}] });
|
95
95
|
|
96
96
|
class RdxMenuBarRootDirective {
|
97
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.
|
98
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.
|
97
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: RdxMenuBarRootDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
98
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.6", type: RdxMenuBarRootDirective, isStandalone: true, selector: "[RdxMenuBarRoot]", host: { attributes: { "tabindex": "0" }, properties: { "attr.data-orientation": "\"horizontal\"" } }, hostDirectives: [{ directive: i1$1.CdkMenuBar }], ngImport: i0 }); }
|
99
99
|
}
|
100
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.
|
100
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: RdxMenuBarRootDirective, decorators: [{
|
101
101
|
type: Directive,
|
102
102
|
args: [{
|
103
103
|
selector: '[RdxMenuBarRoot]',
|
@@ -110,10 +110,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImpor
|
|
110
110
|
}] });
|
111
111
|
|
112
112
|
class RdxMenubarSeparatorDirective {
|
113
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.
|
114
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.
|
113
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: RdxMenubarSeparatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
114
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.6", type: RdxMenubarSeparatorDirective, isStandalone: true, selector: "[RdxMenuBarSeparator]", hostDirectives: [{ directive: i1.RdxMenuSeparatorDirective }], ngImport: i0 }); }
|
115
115
|
}
|
116
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.
|
116
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: RdxMenubarSeparatorDirective, decorators: [{
|
117
117
|
type: Directive,
|
118
118
|
args: [{
|
119
119
|
selector: '[RdxMenuBarSeparator]',
|
@@ -122,10 +122,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImpor
|
|
122
122
|
}] });
|
123
123
|
|
124
124
|
class RdxMenuBarTriggerDirective {
|
125
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.
|
126
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.
|
125
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: RdxMenuBarTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
126
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.6", type: RdxMenuBarTriggerDirective, isStandalone: true, selector: "[RdxMenuBarTrigger]", hostDirectives: [{ directive: i1.RdxMenuTriggerDirective, inputs: ["disabled", "disabled", "menuTriggerFor", "menuTriggerFor", "sideOffset", "sideOffset", "side", "side", "align", "align", "alignOffset", "alignOffset"] }], ngImport: i0 }); }
|
127
127
|
}
|
128
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.
|
128
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: RdxMenuBarTriggerDirective, decorators: [{
|
129
129
|
type: Directive,
|
130
130
|
args: [{
|
131
131
|
selector: '[RdxMenuBarTrigger]',
|
@@ -157,8 +157,8 @@ const menubarImports = [
|
|
157
157
|
RdxMenubarRadioGroupDirective
|
158
158
|
];
|
159
159
|
class MenubarModule {
|
160
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.
|
161
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.
|
160
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: MenubarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
161
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.6", ngImport: i0, type: MenubarModule, imports: [RdxMenuBarContentDirective,
|
162
162
|
RdxMenuBarTriggerDirective,
|
163
163
|
RdxMenubarSeparatorDirective,
|
164
164
|
RdxMenubarItemCheckboxDirective,
|
@@ -175,9 +175,9 @@ class MenubarModule {
|
|
175
175
|
RdxMenubarItemIndicatorDirective,
|
176
176
|
RdxMenubarItemRadioDirective,
|
177
177
|
RdxMenubarRadioGroupDirective] }); }
|
178
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.
|
178
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: MenubarModule }); }
|
179
179
|
}
|
180
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.
|
180
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: MenubarModule, decorators: [{
|
181
181
|
type: NgModule,
|
182
182
|
args: [{
|
183
183
|
imports: [...menubarImports],
|
@@ -0,0 +1,327 @@
|
|
1
|
+
import * as i0 from '@angular/core';
|
2
|
+
import { Directive, InjectionToken, inject, computed, input, numberAttribute, model, booleanAttribute, output, forwardRef, NgModule } from '@angular/core';
|
3
|
+
|
4
|
+
class RdxPaginationEllipsisDirective {
|
5
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: RdxPaginationEllipsisDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
6
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.6", type: RdxPaginationEllipsisDirective, isStandalone: true, selector: "[rdxPaginationEllipsis]", host: { properties: { "attr.data-type": "\"ellipsis\"" } }, ngImport: i0 }); }
|
7
|
+
}
|
8
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: RdxPaginationEllipsisDirective, decorators: [{
|
9
|
+
type: Directive,
|
10
|
+
args: [{
|
11
|
+
selector: '[rdxPaginationEllipsis]',
|
12
|
+
host: {
|
13
|
+
'[attr.data-type]': '"ellipsis"'
|
14
|
+
}
|
15
|
+
}]
|
16
|
+
}] });
|
17
|
+
|
18
|
+
const PAGINATION_ROOT_CONTEXT = new InjectionToken('PaginationRootContext');
|
19
|
+
function injectPaginationRootContext() {
|
20
|
+
return inject(PAGINATION_ROOT_CONTEXT);
|
21
|
+
}
|
22
|
+
|
23
|
+
// as Button
|
24
|
+
class RdxPaginationFirstDirective {
|
25
|
+
constructor() {
|
26
|
+
this.rootContext = injectPaginationRootContext();
|
27
|
+
this.disabled = computed(() => this.rootContext.page() === 1 || this.rootContext.disabled());
|
28
|
+
}
|
29
|
+
onClick() {
|
30
|
+
if (!this.disabled()) {
|
31
|
+
this.rootContext.onPageChange(1);
|
32
|
+
}
|
33
|
+
}
|
34
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: RdxPaginationFirstDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
35
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.6", type: RdxPaginationFirstDirective, isStandalone: true, selector: "[rdxPaginationFirst]", host: { listeners: { "click": "onClick()" }, properties: { "attr.aria-label": "\"First Page\"", "disabled": "disabled()" } }, ngImport: i0 }); }
|
36
|
+
}
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: RdxPaginationFirstDirective, decorators: [{
|
38
|
+
type: Directive,
|
39
|
+
args: [{
|
40
|
+
selector: '[rdxPaginationFirst]',
|
41
|
+
host: {
|
42
|
+
'[attr.aria-label]': '"First Page"',
|
43
|
+
'[disabled]': 'disabled()',
|
44
|
+
'(click)': 'onClick()'
|
45
|
+
}
|
46
|
+
}]
|
47
|
+
}] });
|
48
|
+
|
49
|
+
// as Button
|
50
|
+
class RdxPaginationLastDirective {
|
51
|
+
constructor() {
|
52
|
+
this.rootContext = injectPaginationRootContext();
|
53
|
+
this.disabled = computed(() => this.rootContext.page() === this.rootContext.pageCount() || this.rootContext.disabled());
|
54
|
+
}
|
55
|
+
onClick() {
|
56
|
+
if (!this.disabled()) {
|
57
|
+
this.rootContext.onPageChange(this.rootContext.pageCount());
|
58
|
+
}
|
59
|
+
}
|
60
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: RdxPaginationLastDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
61
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.6", type: RdxPaginationLastDirective, isStandalone: true, selector: "[rdxPaginationLast]", host: { listeners: { "click": "onClick()" }, properties: { "attr.aria-label": "\"Last Page\"", "disabled": "disabled()" } }, ngImport: i0 }); }
|
62
|
+
}
|
63
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: RdxPaginationLastDirective, decorators: [{
|
64
|
+
type: Directive,
|
65
|
+
args: [{
|
66
|
+
selector: '[rdxPaginationLast]',
|
67
|
+
host: {
|
68
|
+
'[attr.aria-label]': '"Last Page"',
|
69
|
+
'[disabled]': 'disabled()',
|
70
|
+
'(click)': 'onClick()'
|
71
|
+
}
|
72
|
+
}]
|
73
|
+
}] });
|
74
|
+
|
75
|
+
// as Button
|
76
|
+
class RdxPaginationListItemDirective {
|
77
|
+
constructor() {
|
78
|
+
this.rootContext = injectPaginationRootContext();
|
79
|
+
this.value = input();
|
80
|
+
this.disabled = computed(() => this.rootContext.disabled());
|
81
|
+
this.isSelected = computed(() => this.rootContext.page() === this.value());
|
82
|
+
}
|
83
|
+
onClick() {
|
84
|
+
const pageValue = this.value();
|
85
|
+
if (!this.disabled() && typeof pageValue === 'number') {
|
86
|
+
this.rootContext.onPageChange(pageValue);
|
87
|
+
}
|
88
|
+
}
|
89
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: RdxPaginationListItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
90
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.1.6", type: RdxPaginationListItemDirective, isStandalone: true, selector: "[rdxPaginationListItem]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "onClick()" }, properties: { "data-type": "\"page\"", "attr.aria-label": "\"Page \" + value()", "attr.aria-current": "isSelected() ? \"page\" : undefined", "attr.data-selected": "isSelected() ? true : undefined", "disabled": "disabled()" } }, ngImport: i0 }); }
|
91
|
+
}
|
92
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: RdxPaginationListItemDirective, decorators: [{
|
93
|
+
type: Directive,
|
94
|
+
args: [{
|
95
|
+
selector: '[rdxPaginationListItem]',
|
96
|
+
host: {
|
97
|
+
'[data-type]': '"page"',
|
98
|
+
'[attr.aria-label]': '"Page " + value()',
|
99
|
+
'[attr.aria-current]': 'isSelected() ? "page" : undefined',
|
100
|
+
'[attr.data-selected]': 'isSelected() ? true : undefined',
|
101
|
+
'[disabled]': 'disabled()',
|
102
|
+
'(click)': 'onClick()'
|
103
|
+
}
|
104
|
+
}]
|
105
|
+
}] });
|
106
|
+
|
107
|
+
// reference https://github.com/chakra-ui/zag/blob/main/packages/machines/pagination/src/pagination.utils.ts
|
108
|
+
function range(start, end) {
|
109
|
+
const length = end - start + 1;
|
110
|
+
return Array.from({ length }, (_, idx) => idx + start);
|
111
|
+
}
|
112
|
+
function transform(items) {
|
113
|
+
return items.map((value) => {
|
114
|
+
if (typeof value === 'number')
|
115
|
+
return { type: 'page', value };
|
116
|
+
return { type: 'ellipsis' };
|
117
|
+
});
|
118
|
+
}
|
119
|
+
const ELLIPSIS = 'ellipsis';
|
120
|
+
function getRange(currentPage, pageCount, siblingCount, showEdges) {
|
121
|
+
const firstPageIndex = 1;
|
122
|
+
const lastPageIndex = pageCount;
|
123
|
+
const leftSiblingIndex = Math.max(currentPage - siblingCount, firstPageIndex);
|
124
|
+
const rightSiblingIndex = Math.min(currentPage + siblingCount, lastPageIndex);
|
125
|
+
if (showEdges) {
|
126
|
+
/**
|
127
|
+
* `2 * siblingCount + 5` explanation:
|
128
|
+
* 2 * siblingCount for left/right siblings
|
129
|
+
* 5 for 2x left/right ellipsis, 2x first/last page + 1x current page
|
130
|
+
*
|
131
|
+
* For some page counts (e.g. totalPages: 8, siblingCount: 2),
|
132
|
+
* calculated max page is higher than total pages,
|
133
|
+
* so we need to take the minimum of both.
|
134
|
+
*/
|
135
|
+
const totalPageNumbers = Math.min(2 * siblingCount + 5, pageCount);
|
136
|
+
const itemCount = totalPageNumbers - 2; // 2 stands for one ellipsis and either first or last page
|
137
|
+
const showLeftEllipsis =
|
138
|
+
// default condition
|
139
|
+
leftSiblingIndex > firstPageIndex + 2 &&
|
140
|
+
// if the current page is towards the end of the list
|
141
|
+
Math.abs(lastPageIndex - itemCount - firstPageIndex + 1) > 2 &&
|
142
|
+
// if the current page is towards the middle of the list
|
143
|
+
Math.abs(leftSiblingIndex - firstPageIndex) > 2;
|
144
|
+
const showRightEllipsis =
|
145
|
+
// default condition
|
146
|
+
rightSiblingIndex < lastPageIndex - 2 &&
|
147
|
+
// if the current page is towards the start of the list
|
148
|
+
Math.abs(lastPageIndex - itemCount) > 2 &&
|
149
|
+
// if the current page is towards the middle of the list
|
150
|
+
Math.abs(lastPageIndex - rightSiblingIndex) > 2;
|
151
|
+
if (!showLeftEllipsis && showRightEllipsis) {
|
152
|
+
const leftRange = range(1, itemCount);
|
153
|
+
return [...leftRange, ELLIPSIS, lastPageIndex];
|
154
|
+
}
|
155
|
+
if (showLeftEllipsis && !showRightEllipsis) {
|
156
|
+
const rightRange = range(lastPageIndex - itemCount + 1, lastPageIndex);
|
157
|
+
return [firstPageIndex, ELLIPSIS, ...rightRange];
|
158
|
+
}
|
159
|
+
if (showLeftEllipsis && showRightEllipsis) {
|
160
|
+
const middleRange = range(leftSiblingIndex, rightSiblingIndex);
|
161
|
+
return [firstPageIndex, ELLIPSIS, ...middleRange, ELLIPSIS, lastPageIndex];
|
162
|
+
}
|
163
|
+
const fullRange = range(firstPageIndex, lastPageIndex);
|
164
|
+
return fullRange;
|
165
|
+
}
|
166
|
+
else {
|
167
|
+
const itemCount = siblingCount * 2 + 1;
|
168
|
+
if (pageCount < itemCount)
|
169
|
+
return range(1, lastPageIndex);
|
170
|
+
else if (currentPage <= siblingCount + 1)
|
171
|
+
return range(firstPageIndex, itemCount);
|
172
|
+
else if (pageCount - currentPage <= siblingCount)
|
173
|
+
return range(pageCount - itemCount + 1, lastPageIndex);
|
174
|
+
else
|
175
|
+
return range(leftSiblingIndex, rightSiblingIndex);
|
176
|
+
}
|
177
|
+
}
|
178
|
+
|
179
|
+
class RdxPaginationListDirective {
|
180
|
+
constructor() {
|
181
|
+
this.rootContext = injectPaginationRootContext();
|
182
|
+
this.transformedRange = computed(() => {
|
183
|
+
return transform(getRange(this.rootContext.page(), this.rootContext.pageCount(), this.rootContext.siblingCount(), this.rootContext.showEdges()));
|
184
|
+
});
|
185
|
+
}
|
186
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: RdxPaginationListDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
187
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.6", type: RdxPaginationListDirective, isStandalone: true, selector: "[rdxPaginationList]", exportAs: ["rdxPaginationList"], ngImport: i0 }); }
|
188
|
+
}
|
189
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: RdxPaginationListDirective, decorators: [{
|
190
|
+
type: Directive,
|
191
|
+
args: [{
|
192
|
+
selector: '[rdxPaginationList]',
|
193
|
+
exportAs: 'rdxPaginationList'
|
194
|
+
}]
|
195
|
+
}] });
|
196
|
+
|
197
|
+
// as Button
|
198
|
+
class RdxPaginationNextDirective {
|
199
|
+
constructor() {
|
200
|
+
this.rootContext = injectPaginationRootContext();
|
201
|
+
this.disabled = computed(() => this.rootContext.page() === this.rootContext.pageCount() || this.rootContext.disabled());
|
202
|
+
}
|
203
|
+
onClick() {
|
204
|
+
if (!this.disabled()) {
|
205
|
+
this.rootContext.onPageChange(this.rootContext.page() + 1);
|
206
|
+
}
|
207
|
+
}
|
208
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: RdxPaginationNextDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
209
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.6", type: RdxPaginationNextDirective, isStandalone: true, selector: "[rdxPaginationNext]", host: { listeners: { "click": "onClick()" }, properties: { "attr.aria-label": "\"Next Page\"", "disabled": "disabled()" } }, ngImport: i0 }); }
|
210
|
+
}
|
211
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: RdxPaginationNextDirective, decorators: [{
|
212
|
+
type: Directive,
|
213
|
+
args: [{
|
214
|
+
selector: '[rdxPaginationNext]',
|
215
|
+
host: {
|
216
|
+
'[attr.aria-label]': '"Next Page"',
|
217
|
+
'[disabled]': 'disabled()',
|
218
|
+
'(click)': 'onClick()'
|
219
|
+
}
|
220
|
+
}]
|
221
|
+
}] });
|
222
|
+
|
223
|
+
// as Button
|
224
|
+
class RdxPaginationPrevDirective {
|
225
|
+
constructor() {
|
226
|
+
this.rootContext = injectPaginationRootContext();
|
227
|
+
this.disabled = computed(() => this.rootContext.page() === 1 || this.rootContext.disabled());
|
228
|
+
}
|
229
|
+
onClick() {
|
230
|
+
if (!this.disabled()) {
|
231
|
+
this.rootContext.onPageChange(this.rootContext.page() - 1);
|
232
|
+
}
|
233
|
+
}
|
234
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: RdxPaginationPrevDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
235
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.6", type: RdxPaginationPrevDirective, isStandalone: true, selector: "[rdxPaginationPrev]", host: { listeners: { "click": "onClick()" }, properties: { "attr.aria-label": "\"Previous Page\"", "disabled": "disabled()" } }, ngImport: i0 }); }
|
236
|
+
}
|
237
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: RdxPaginationPrevDirective, decorators: [{
|
238
|
+
type: Directive,
|
239
|
+
args: [{
|
240
|
+
selector: '[rdxPaginationPrev]',
|
241
|
+
host: {
|
242
|
+
'[attr.aria-label]': '"Previous Page"',
|
243
|
+
'[disabled]': 'disabled()',
|
244
|
+
'(click)': 'onClick()'
|
245
|
+
}
|
246
|
+
}]
|
247
|
+
}] });
|
248
|
+
|
249
|
+
class RdxPaginationRootDirective {
|
250
|
+
constructor() {
|
251
|
+
this.defaultPage = input(1, { transform: numberAttribute });
|
252
|
+
this.page = model(this.defaultPage());
|
253
|
+
this.itemsPerPage = input(undefined, { transform: numberAttribute });
|
254
|
+
this.total = input(0, { transform: numberAttribute });
|
255
|
+
this.siblingCount = input(2, { transform: numberAttribute });
|
256
|
+
this.disabled = input(false, { transform: booleanAttribute });
|
257
|
+
this.showEdges = input(false, { transform: booleanAttribute });
|
258
|
+
this.updatePage = output();
|
259
|
+
/** @ignore */
|
260
|
+
this.pageCount = computed(() => Math.max(1, Math.ceil(this.total() / (this.itemsPerPage() || 1))));
|
261
|
+
}
|
262
|
+
/** @ignore */
|
263
|
+
onPageChange(value) {
|
264
|
+
if (!this.disabled()) {
|
265
|
+
this.page.set(value);
|
266
|
+
this.updatePage.emit(value);
|
267
|
+
}
|
268
|
+
}
|
269
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: RdxPaginationRootDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
270
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.1.6", type: RdxPaginationRootDirective, isStandalone: true, selector: "[rdxPaginationRoot]", inputs: { defaultPage: { classPropertyName: "defaultPage", publicName: "defaultPage", isSignal: true, isRequired: false, transformFunction: null }, page: { classPropertyName: "page", publicName: "page", isSignal: true, isRequired: false, transformFunction: null }, itemsPerPage: { classPropertyName: "itemsPerPage", publicName: "itemsPerPage", isSignal: true, isRequired: false, transformFunction: null }, total: { classPropertyName: "total", publicName: "total", isSignal: true, isRequired: false, transformFunction: null }, siblingCount: { classPropertyName: "siblingCount", publicName: "siblingCount", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, showEdges: { classPropertyName: "showEdges", publicName: "showEdges", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { page: "pageChange", updatePage: "updatePage" }, providers: [
|
271
|
+
{ provide: PAGINATION_ROOT_CONTEXT, useExisting: forwardRef(() => RdxPaginationRootDirective) }
|
272
|
+
], exportAs: ["rdxPaginationRoot"], ngImport: i0 }); }
|
273
|
+
}
|
274
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: RdxPaginationRootDirective, decorators: [{
|
275
|
+
type: Directive,
|
276
|
+
args: [{
|
277
|
+
selector: '[rdxPaginationRoot]',
|
278
|
+
exportAs: 'rdxPaginationRoot',
|
279
|
+
providers: [
|
280
|
+
{ provide: PAGINATION_ROOT_CONTEXT, useExisting: forwardRef(() => RdxPaginationRootDirective) }
|
281
|
+
]
|
282
|
+
}]
|
283
|
+
}] });
|
284
|
+
|
285
|
+
const paginationImports = [
|
286
|
+
RdxPaginationRootDirective,
|
287
|
+
RdxPaginationListDirective,
|
288
|
+
RdxPaginationFirstDirective,
|
289
|
+
RdxPaginationPrevDirective,
|
290
|
+
RdxPaginationLastDirective,
|
291
|
+
RdxPaginationNextDirective,
|
292
|
+
RdxPaginationListItemDirective,
|
293
|
+
RdxPaginationEllipsisDirective
|
294
|
+
];
|
295
|
+
class RdxPaginationModule {
|
296
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: RdxPaginationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
297
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.6", ngImport: i0, type: RdxPaginationModule, imports: [RdxPaginationRootDirective,
|
298
|
+
RdxPaginationListDirective,
|
299
|
+
RdxPaginationFirstDirective,
|
300
|
+
RdxPaginationPrevDirective,
|
301
|
+
RdxPaginationLastDirective,
|
302
|
+
RdxPaginationNextDirective,
|
303
|
+
RdxPaginationListItemDirective,
|
304
|
+
RdxPaginationEllipsisDirective], exports: [RdxPaginationRootDirective,
|
305
|
+
RdxPaginationListDirective,
|
306
|
+
RdxPaginationFirstDirective,
|
307
|
+
RdxPaginationPrevDirective,
|
308
|
+
RdxPaginationLastDirective,
|
309
|
+
RdxPaginationNextDirective,
|
310
|
+
RdxPaginationListItemDirective,
|
311
|
+
RdxPaginationEllipsisDirective] }); }
|
312
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: RdxPaginationModule }); }
|
313
|
+
}
|
314
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: RdxPaginationModule, decorators: [{
|
315
|
+
type: NgModule,
|
316
|
+
args: [{
|
317
|
+
imports: [...paginationImports],
|
318
|
+
exports: [...paginationImports]
|
319
|
+
}]
|
320
|
+
}] });
|
321
|
+
|
322
|
+
/**
|
323
|
+
* Generated bundle index. Do not edit.
|
324
|
+
*/
|
325
|
+
|
326
|
+
export { PAGINATION_ROOT_CONTEXT, RdxPaginationEllipsisDirective, RdxPaginationFirstDirective, RdxPaginationLastDirective, RdxPaginationListDirective, RdxPaginationListItemDirective, RdxPaginationModule, RdxPaginationNextDirective, RdxPaginationPrevDirective, RdxPaginationRootDirective, injectPaginationRootContext };
|
327
|
+
//# sourceMappingURL=radix-ng-primitives-pagination.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"radix-ng-primitives-pagination.mjs","sources":["../../../packages/primitives/pagination/src/pagination-ellipsis.directive.ts","../../../packages/primitives/pagination/src/pagination-context.token.ts","../../../packages/primitives/pagination/src/pagination-first.directive.ts","../../../packages/primitives/pagination/src/pagination-last.directive.ts","../../../packages/primitives/pagination/src/pagination-list-item.directive.ts","../../../packages/primitives/pagination/src/utils.ts","../../../packages/primitives/pagination/src/pagination-list.directive.ts","../../../packages/primitives/pagination/src/pagination-next.directive.ts","../../../packages/primitives/pagination/src/pagination-prev.directive.ts","../../../packages/primitives/pagination/src/pagination-root.directive.ts","../../../packages/primitives/pagination/index.ts","../../../packages/primitives/pagination/radix-ng-primitives-pagination.ts"],"sourcesContent":["import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[rdxPaginationEllipsis]',\n host: {\n '[attr.data-type]': '\"ellipsis\"'\n }\n})\nexport class RdxPaginationEllipsisDirective {}\n","import { computed, inject, InjectionToken, model } from '@angular/core';\n\nexport interface PaginationRootContext {\n page: ReturnType<typeof model<number>>;\n onPageChange: (value: number) => void;\n pageCount: ReturnType<typeof computed<number>>;\n siblingCount: ReturnType<typeof computed<number>>;\n disabled: ReturnType<typeof computed<boolean>>;\n showEdges: ReturnType<typeof computed<boolean>>;\n}\n\nexport const PAGINATION_ROOT_CONTEXT = new InjectionToken<PaginationRootContext>('PaginationRootContext');\n\nexport function injectPaginationRootContext(): PaginationRootContext {\n return inject(PAGINATION_ROOT_CONTEXT);\n}\n","import { computed, Directive } from '@angular/core';\nimport { injectPaginationRootContext } from './pagination-context.token';\n\n// as Button\n@Directive({\n selector: '[rdxPaginationFirst]',\n host: {\n '[attr.aria-label]': '\"First Page\"',\n\n '[disabled]': 'disabled()',\n '(click)': 'onClick()'\n }\n})\nexport class RdxPaginationFirstDirective {\n private readonly rootContext = injectPaginationRootContext();\n\n readonly disabled = computed(() => this.rootContext.page() === 1 || this.rootContext.disabled());\n\n onClick() {\n if (!this.disabled()) {\n this.rootContext.onPageChange(1);\n }\n }\n}\n","import { computed, Directive } from '@angular/core';\nimport { injectPaginationRootContext } from './pagination-context.token';\n\n// as Button\n@Directive({\n selector: '[rdxPaginationLast]',\n host: {\n '[attr.aria-label]': '\"Last Page\"',\n\n '[disabled]': 'disabled()',\n '(click)': 'onClick()'\n }\n})\nexport class RdxPaginationLastDirective {\n private readonly rootContext = injectPaginationRootContext();\n\n readonly disabled = computed(\n () => this.rootContext.page() === this.rootContext.pageCount() || this.rootContext.disabled()\n );\n\n onClick() {\n if (!this.disabled()) {\n this.rootContext.onPageChange(this.rootContext.pageCount());\n }\n }\n}\n","import { computed, Directive, input } from '@angular/core';\nimport { injectPaginationRootContext } from './pagination-context.token';\n\n// as Button\n@Directive({\n selector: '[rdxPaginationListItem]',\n host: {\n '[data-type]': '\"page\"',\n\n '[attr.aria-label]': '\"Page \" + value()',\n '[attr.aria-current]': 'isSelected() ? \"page\" : undefined',\n '[attr.data-selected]': 'isSelected() ? true : undefined',\n\n '[disabled]': 'disabled()',\n '(click)': 'onClick()'\n }\n})\nexport class RdxPaginationListItemDirective {\n private readonly rootContext = injectPaginationRootContext();\n\n readonly value = input<number>();\n\n readonly disabled = computed(() => this.rootContext.disabled());\n\n readonly isSelected = computed(() => this.rootContext.page() === this.value());\n\n onClick() {\n const pageValue = this.value();\n if (!this.disabled() && typeof pageValue === 'number') {\n this.rootContext.onPageChange(pageValue);\n }\n }\n}\n","// reference https://github.com/chakra-ui/zag/blob/main/packages/machines/pagination/src/pagination.utils.ts\n\ntype Pages = Array<{ type: 'ellipsis' } | { type: 'page'; value: number }>;\n\nfunction range(start: number, end: number) {\n const length = end - start + 1;\n return Array.from({ length }, (_, idx) => idx + start);\n}\n\nexport function transform(items: (string | number)[]): Pages {\n return items.map((value) => {\n if (typeof value === 'number') return { type: 'page', value };\n return { type: 'ellipsis' };\n });\n}\n\nconst ELLIPSIS = 'ellipsis';\n\nexport function getRange(currentPage: number, pageCount: number, siblingCount: number, showEdges: boolean) {\n const firstPageIndex = 1;\n const lastPageIndex = pageCount;\n\n const leftSiblingIndex = Math.max(currentPage - siblingCount, firstPageIndex);\n const rightSiblingIndex = Math.min(currentPage + siblingCount, lastPageIndex);\n\n if (showEdges) {\n /**\n * `2 * siblingCount + 5` explanation:\n * 2 * siblingCount for left/right siblings\n * 5 for 2x left/right ellipsis, 2x first/last page + 1x current page\n *\n * For some page counts (e.g. totalPages: 8, siblingCount: 2),\n * calculated max page is higher than total pages,\n * so we need to take the minimum of both.\n */\n const totalPageNumbers = Math.min(2 * siblingCount + 5, pageCount);\n\n const itemCount = totalPageNumbers - 2; // 2 stands for one ellipsis and either first or last page\n\n const showLeftEllipsis =\n // default condition\n leftSiblingIndex > firstPageIndex + 2 &&\n // if the current page is towards the end of the list\n Math.abs(lastPageIndex - itemCount - firstPageIndex + 1) > 2 &&\n // if the current page is towards the middle of the list\n Math.abs(leftSiblingIndex - firstPageIndex) > 2;\n\n const showRightEllipsis =\n // default condition\n rightSiblingIndex < lastPageIndex - 2 &&\n // if the current page is towards the start of the list\n Math.abs(lastPageIndex - itemCount) > 2 &&\n // if the current page is towards the middle of the list\n Math.abs(lastPageIndex - rightSiblingIndex) > 2;\n\n if (!showLeftEllipsis && showRightEllipsis) {\n const leftRange = range(1, itemCount);\n\n return [...leftRange, ELLIPSIS, lastPageIndex];\n }\n\n if (showLeftEllipsis && !showRightEllipsis) {\n const rightRange = range(lastPageIndex - itemCount + 1, lastPageIndex);\n\n return [firstPageIndex, ELLIPSIS, ...rightRange];\n }\n\n if (showLeftEllipsis && showRightEllipsis) {\n const middleRange = range(leftSiblingIndex, rightSiblingIndex);\n\n return [firstPageIndex, ELLIPSIS, ...middleRange, ELLIPSIS, lastPageIndex];\n }\n\n const fullRange = range(firstPageIndex, lastPageIndex);\n return fullRange;\n } else {\n const itemCount = siblingCount * 2 + 1;\n\n if (pageCount < itemCount) return range(1, lastPageIndex);\n else if (currentPage <= siblingCount + 1) return range(firstPageIndex, itemCount);\n else if (pageCount - currentPage <= siblingCount) return range(pageCount - itemCount + 1, lastPageIndex);\n else return range(leftSiblingIndex, rightSiblingIndex);\n }\n}\n","import { computed, Directive } from '@angular/core';\nimport { injectPaginationRootContext } from './pagination-context.token';\nimport { getRange, transform } from './utils';\n\n@Directive({\n selector: '[rdxPaginationList]',\n exportAs: 'rdxPaginationList'\n})\nexport class RdxPaginationListDirective {\n private readonly rootContext = injectPaginationRootContext();\n\n readonly transformedRange = computed(() => {\n return transform(\n getRange(\n this.rootContext.page(),\n this.rootContext.pageCount(),\n this.rootContext.siblingCount(),\n this.rootContext.showEdges()\n )\n );\n });\n}\n","import { computed, Directive } from '@angular/core';\nimport { injectPaginationRootContext } from './pagination-context.token';\n\n// as Button\n@Directive({\n selector: '[rdxPaginationNext]',\n host: {\n '[attr.aria-label]': '\"Next Page\"',\n\n '[disabled]': 'disabled()',\n '(click)': 'onClick()'\n }\n})\nexport class RdxPaginationNextDirective {\n private readonly rootContext = injectPaginationRootContext();\n\n readonly disabled = computed(\n () => this.rootContext.page() === this.rootContext.pageCount() || this.rootContext.disabled()\n );\n\n onClick() {\n if (!this.disabled()) {\n this.rootContext.onPageChange(this.rootContext.page() + 1);\n }\n }\n}\n","import { computed, Directive } from '@angular/core';\nimport { injectPaginationRootContext } from './pagination-context.token';\n\n// as Button\n@Directive({\n selector: '[rdxPaginationPrev]',\n host: {\n '[attr.aria-label]': '\"Previous Page\"',\n\n '[disabled]': 'disabled()',\n '(click)': 'onClick()'\n }\n})\nexport class RdxPaginationPrevDirective {\n private readonly rootContext = injectPaginationRootContext();\n\n readonly disabled = computed(() => this.rootContext.page() === 1 || this.rootContext.disabled());\n\n onClick() {\n if (!this.disabled()) {\n this.rootContext.onPageChange(this.rootContext.page() - 1);\n }\n }\n}\n","import { BooleanInput, NumberInput } from '@angular/cdk/coercion';\nimport {\n booleanAttribute,\n computed,\n Directive,\n forwardRef,\n input,\n model,\n numberAttribute,\n output\n} from '@angular/core';\nimport { PAGINATION_ROOT_CONTEXT } from './pagination-context.token';\n\n@Directive({\n selector: '[rdxPaginationRoot]',\n exportAs: 'rdxPaginationRoot',\n providers: [\n { provide: PAGINATION_ROOT_CONTEXT, useExisting: forwardRef(() => RdxPaginationRootDirective) }]\n})\nexport class RdxPaginationRootDirective {\n readonly defaultPage = input<number, NumberInput>(1, { transform: numberAttribute });\n\n readonly page = model<number>(this.defaultPage());\n\n readonly itemsPerPage = input<number, NumberInput>(undefined, { transform: numberAttribute });\n\n readonly total = input<number, NumberInput>(0, { transform: numberAttribute });\n\n readonly siblingCount = input<number, NumberInput>(2, { transform: numberAttribute });\n\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n readonly showEdges = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n readonly updatePage = output<number>();\n\n /** @ignore */\n readonly pageCount = computed(() => Math.max(1, Math.ceil(this.total() / (this.itemsPerPage() || 1))));\n\n /** @ignore */\n onPageChange(value: number) {\n if (!this.disabled()) {\n this.page.set(value);\n this.updatePage.emit(value);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RdxPaginationEllipsisDirective } from './src/pagination-ellipsis.directive';\nimport { RdxPaginationFirstDirective } from './src/pagination-first.directive';\nimport { RdxPaginationLastDirective } from './src/pagination-last.directive';\nimport { RdxPaginationListItemDirective } from './src/pagination-list-item.directive';\nimport { RdxPaginationListDirective } from './src/pagination-list.directive';\nimport { RdxPaginationNextDirective } from './src/pagination-next.directive';\nimport { RdxPaginationPrevDirective } from './src/pagination-prev.directive';\nimport { RdxPaginationRootDirective } from './src/pagination-root.directive';\n\nexport * from './src/pagination-context.token';\nexport * from './src/pagination-ellipsis.directive';\nexport * from './src/pagination-first.directive';\nexport * from './src/pagination-last.directive';\nexport * from './src/pagination-list-item.directive';\nexport * from './src/pagination-list.directive';\nexport * from './src/pagination-next.directive';\nexport * from './src/pagination-prev.directive';\nexport * from './src/pagination-root.directive';\n\nconst paginationImports = [\n RdxPaginationRootDirective,\n RdxPaginationListDirective,\n RdxPaginationFirstDirective,\n RdxPaginationPrevDirective,\n RdxPaginationLastDirective,\n RdxPaginationNextDirective,\n RdxPaginationListItemDirective,\n RdxPaginationEllipsisDirective\n];\n\n@NgModule({\n imports: [...paginationImports],\n exports: [...paginationImports]\n})\nexport class RdxPaginationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|