@ngbase/adk 0.1.1 → 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.
Files changed (152) hide show
  1. package/accordion/accordion-item.d.ts +4 -0
  2. package/accordion/public-api.d.ts +1 -1
  3. package/autocomplete/autocomplete.d.ts +2 -2
  4. package/avatar/avatar.d.ts +1 -1
  5. package/breadcrumb/breadcrumb.d.ts +2 -3
  6. package/breadcrumb/public-api.d.ts +1 -1
  7. package/carousel/carousel.d.ts +1 -1
  8. package/chip/chip.d.ts +2 -2
  9. package/datepicker/calendar.d.ts +3 -3
  10. package/datepicker/datepicker.d.ts +2 -2
  11. package/datepicker/time.d.ts +2 -2
  12. package/dialog/dialog.d.ts +1 -1
  13. package/fesm2022/ngbase-adk-accordion.mjs +4 -1
  14. package/fesm2022/ngbase-adk-accordion.mjs.map +1 -1
  15. package/fesm2022/ngbase-adk-autocomplete.mjs +7 -36
  16. package/fesm2022/ngbase-adk-autocomplete.mjs.map +1 -1
  17. package/fesm2022/ngbase-adk-avatar.mjs +2 -2
  18. package/fesm2022/ngbase-adk-avatar.mjs.map +1 -1
  19. package/fesm2022/ngbase-adk-breadcrumb.mjs +2 -2
  20. package/fesm2022/ngbase-adk-breadcrumb.mjs.map +1 -1
  21. package/fesm2022/ngbase-adk-carousel.mjs +2 -2
  22. package/fesm2022/ngbase-adk-carousel.mjs.map +1 -1
  23. package/fesm2022/ngbase-adk-chip.mjs +4 -2
  24. package/fesm2022/ngbase-adk-chip.mjs.map +1 -1
  25. package/fesm2022/ngbase-adk-datepicker.mjs +114 -328
  26. package/fesm2022/ngbase-adk-datepicker.mjs.map +1 -1
  27. package/fesm2022/ngbase-adk-dialog.mjs +12 -13
  28. package/fesm2022/ngbase-adk-dialog.mjs.map +1 -1
  29. package/fesm2022/ngbase-adk-form-field.mjs +2 -156
  30. package/fesm2022/ngbase-adk-form-field.mjs.map +1 -1
  31. package/fesm2022/ngbase-adk-menu.mjs +15 -30
  32. package/fesm2022/ngbase-adk-menu.mjs.map +1 -1
  33. package/fesm2022/ngbase-adk-otp.mjs +164 -0
  34. package/fesm2022/ngbase-adk-otp.mjs.map +1 -0
  35. package/fesm2022/ngbase-adk-pagination.mjs +8 -65
  36. package/fesm2022/ngbase-adk-pagination.mjs.map +1 -1
  37. package/fesm2022/ngbase-adk-popover.mjs +423 -548
  38. package/fesm2022/ngbase-adk-popover.mjs.map +1 -1
  39. package/fesm2022/ngbase-adk-portal.mjs +0 -1
  40. package/fesm2022/ngbase-adk-portal.mjs.map +1 -1
  41. package/fesm2022/ngbase-adk-radio.mjs +2 -16
  42. package/fesm2022/ngbase-adk-radio.mjs.map +1 -1
  43. package/fesm2022/ngbase-adk-resizable.mjs +10 -43
  44. package/fesm2022/ngbase-adk-resizable.mjs.map +1 -1
  45. package/fesm2022/ngbase-adk-select.mjs +67 -173
  46. package/fesm2022/ngbase-adk-select.mjs.map +1 -1
  47. package/fesm2022/ngbase-adk-sheet.mjs +95 -0
  48. package/fesm2022/ngbase-adk-sheet.mjs.map +1 -0
  49. package/fesm2022/ngbase-adk-sidenav.mjs +2 -2
  50. package/fesm2022/ngbase-adk-sidenav.mjs.map +1 -1
  51. package/fesm2022/ngbase-adk-slider.mjs +9 -23
  52. package/fesm2022/ngbase-adk-slider.mjs.map +1 -1
  53. package/fesm2022/ngbase-adk-sonner.mjs +13 -63
  54. package/fesm2022/ngbase-adk-sonner.mjs.map +1 -1
  55. package/fesm2022/ngbase-adk-stepper.mjs +16 -114
  56. package/fesm2022/ngbase-adk-stepper.mjs.map +1 -1
  57. package/fesm2022/ngbase-adk-switch.mjs +2 -2
  58. package/fesm2022/ngbase-adk-switch.mjs.map +1 -1
  59. package/fesm2022/ngbase-adk-table.mjs +10 -30
  60. package/fesm2022/ngbase-adk-table.mjs.map +1 -1
  61. package/fesm2022/ngbase-adk-tabs.mjs +14 -94
  62. package/fesm2022/ngbase-adk-tabs.mjs.map +1 -1
  63. package/fesm2022/ngbase-adk-tooltip.mjs +49 -39
  64. package/fesm2022/ngbase-adk-tooltip.mjs.map +1 -1
  65. package/fesm2022/ngbase-adk-tour.mjs +1 -1
  66. package/fesm2022/ngbase-adk-tour.mjs.map +1 -1
  67. package/fesm2022/ngbase-adk-tree.mjs +11 -43
  68. package/fesm2022/ngbase-adk-tree.mjs.map +1 -1
  69. package/form-field/public-api.d.ts +0 -1
  70. package/menu/menu-trigger.d.ts +2 -2
  71. package/menu/menu.d.ts +6 -6
  72. package/otp/index.d.ts +5 -0
  73. package/{form-field → otp}/otp.d.ts +1 -1
  74. package/otp/public-api.d.ts +1 -0
  75. package/package.json +25 -17
  76. package/pagination/pagination.d.ts +5 -1
  77. package/popover/popover-arrow.ng.d.ts +34 -0
  78. package/popover/popover.d.ts +12 -3
  79. package/popover/popover.service.d.ts +5 -4
  80. package/popover/public-api.d.ts +1 -0
  81. package/popover/utils.d.ts +32 -48
  82. package/portal/dialog-ref.d.ts +0 -1
  83. package/resizable/resizable-group.d.ts +2 -2
  84. package/resizable/resizable.d.ts +2 -2
  85. package/schematics/components/files/accordion/accordion.ts.template +6 -8
  86. package/schematics/components/files/autocomplete/autocomplete.ts.template +2 -6
  87. package/schematics/components/files/avatar/avatar.ts.template +2 -2
  88. package/schematics/components/files/breadcrumb/breadcrumb.ts.template +5 -5
  89. package/schematics/components/files/carousel/carousel.ts.template +2 -2
  90. package/schematics/components/files/chip/chip.ts.template +2 -2
  91. package/schematics/components/files/datepicker/calendar.ts.template +6 -6
  92. package/schematics/components/files/datepicker/datepicker.ts.template +33 -3
  93. package/schematics/components/files/datepicker/index.ts.template +0 -1
  94. package/schematics/components/files/datepicker/time.ts.template +12 -4
  95. package/schematics/components/files/dialog/dialog.ts.template +8 -8
  96. package/schematics/components/files/form-field/{input.ts.template → form-field.ts.template} +13 -2
  97. package/schematics/components/files/form-field/index.ts.template +1 -2
  98. package/schematics/components/files/form-field/input-style.directive.ts.template +1 -1
  99. package/schematics/components/files/menu/menu.ts.template +3 -3
  100. package/schematics/components/files/otp/index.ts.template +5 -0
  101. package/schematics/components/files/{form-field → otp}/otp.ts.template +3 -3
  102. package/schematics/components/files/pagination/pagination.ts.template +2 -2
  103. package/schematics/components/files/popover/popover.ts.template +7 -30
  104. package/schematics/components/files/radio/radio.ts.template +3 -8
  105. package/schematics/components/files/resizable/resizable.ts.template +7 -7
  106. package/schematics/components/files/select/option.ts.template +1 -0
  107. package/schematics/components/files/select/select.ts.template +8 -8
  108. package/schematics/components/files/sheet/sheet.ts.template +11 -76
  109. package/schematics/components/files/sidenav/sidenav.ts.template +3 -3
  110. package/schematics/components/files/slider/slider.ts.template +3 -10
  111. package/schematics/components/files/sonner/sonner.ts.template +3 -2
  112. package/schematics/components/files/stepper/stepper.ts.template +4 -4
  113. package/schematics/components/files/switch/switch.ts.template +1 -1
  114. package/schematics/components/files/tabs/tab.ts.template +11 -8
  115. package/schematics/components/files/theme/theme.service.ts.template +0 -11
  116. package/schematics/components/files/tooltip/tooltip.ts.template +8 -3
  117. package/schematics/components/files/tour/index.ts.template +0 -2
  118. package/schematics/components/files/tour/tour.ts.template +13 -2
  119. package/schematics/components/files/tree/tree.ts.template +3 -3
  120. package/schematics/components/schema.json +8 -0
  121. package/select/option-group.d.ts +3 -3
  122. package/select/select.d.ts +2 -2
  123. package/sheet/index.d.ts +5 -0
  124. package/sheet/public-api.d.ts +2 -0
  125. package/sheet/sheet.d.ts +26 -0
  126. package/sheet/sheet.service.d.ts +13 -0
  127. package/sidenav/public-api.d.ts +1 -1
  128. package/sidenav/sidenav.d.ts +1 -1
  129. package/slider/public-api.d.ts +1 -1
  130. package/slider/slider.d.ts +5 -5
  131. package/sonner/sonner.d.ts +2 -1
  132. package/stepper/animation.d.ts +1 -1
  133. package/stepper/step.d.ts +1 -1
  134. package/stepper/stepper.d.ts +2 -2
  135. package/switch/switch.d.ts +1 -1
  136. package/table/body-row.d.ts +3 -3
  137. package/table/head-row.d.ts +3 -3
  138. package/table/table.d.ts +1 -1
  139. package/tabs/tab-group.d.ts +4 -4
  140. package/tabs/tab.d.ts +2 -2
  141. package/tooltip/public-api.d.ts +1 -1
  142. package/tooltip/tooltip.d.ts +5 -1
  143. package/tooltip/tooltip.directive.d.ts +1 -1
  144. package/tooltip/tooltip.service.d.ts +4 -2
  145. package/tour/tour.service.d.ts +3 -4
  146. package/tree/public-api.d.ts +2 -2
  147. package/tree/tree-node.d.ts +2 -2
  148. package/tree/tree.d.ts +2 -2
  149. package/schematics/components/files/datepicker/datepicker-trigger.ts.template +0 -27
  150. package/schematics/components/files/theme/theme.component.ts.template +0 -165
  151. package/schematics/components/files/tour/tour-step.ts.template +0 -8
  152. package/schematics/components/files/tour/tour.service.ts.template +0 -7
@@ -0,0 +1,164 @@
1
+ import * as i0 from '@angular/core';
2
+ import { inject, ElementRef, Directive, computed, effect, viewChild, viewChildren, input, booleanAttribute, signal, afterRenderEffect, untracked } from '@angular/core';
3
+ import { provideValueAccessor } from '@ngbase/adk/utils';
4
+
5
+ class NgbOtpInput {
6
+ constructor() {
7
+ this.otp = inject(NgbInputOtp);
8
+ this.el = inject(ElementRef);
9
+ }
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbOtpInput, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
11
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0", type: NgbOtpInput, isStandalone: true, selector: "input[ngbOtpInput]", host: { properties: { "disabled": "otp.disabled() || undefined" }, styleAttribute: "position: absolute; inset: 0; border: none; background: transparent; caret-color: transparent; outline: none; color: transparent; letter-spacing: -0.5rem;" }, ngImport: i0 }); }
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbOtpInput, decorators: [{
14
+ type: Directive,
15
+ args: [{
16
+ selector: 'input[ngbOtpInput]',
17
+ host: {
18
+ '[disabled]': 'otp.disabled() || undefined',
19
+ style: 'position: absolute; inset: 0; border: none; background: transparent; caret-color: transparent; outline: none; color: transparent; letter-spacing: -0.5rem;',
20
+ },
21
+ }]
22
+ }] });
23
+ class NgbOtpValue {
24
+ constructor() {
25
+ this.otp = inject(NgbInputOtp);
26
+ this.el = inject(ElementRef);
27
+ this.index = computed(() => this.otp._otpValues().findIndex(v => this.el === v.el));
28
+ this.value = computed(() => this.otp.values()[this.index()] || '');
29
+ this.focused = computed(() => {
30
+ return (this.otp.focused() && this.index() === Math.min(this.otp.values().length, this.otp.no() - 1));
31
+ });
32
+ effect(() => {
33
+ const value = this.value();
34
+ this.el.nativeElement.textContent = value && this.otp.masked() ? '•' : value;
35
+ });
36
+ }
37
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbOtpValue, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
38
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0", type: NgbOtpValue, isStandalone: true, selector: "[ngbOtpValue]", host: { attributes: { "aria-hidden": "true", "tabindex": "-1" }, properties: { "attr.data-focus": "focused() || undefined", "attr.data-disabled": "otp.disabled() || undefined" }, styleAttribute: "pointer-events: none" }, ngImport: i0 }); }
39
+ }
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbOtpValue, decorators: [{
41
+ type: Directive,
42
+ args: [{
43
+ selector: '[ngbOtpValue]',
44
+ host: {
45
+ style: `pointer-events: none`,
46
+ '[attr.data-focus]': 'focused() || undefined',
47
+ '[attr.data-disabled]': 'otp.disabled() || undefined',
48
+ 'aria-hidden': 'true',
49
+ tabindex: '-1',
50
+ },
51
+ }]
52
+ }], ctorParameters: () => [] });
53
+ class NgbInputOtp {
54
+ constructor() {
55
+ this.inputs = viewChild.required(NgbOtpInput);
56
+ this._otpValues = viewChildren(NgbOtpValue);
57
+ // private readonly
58
+ this.size = input([4]);
59
+ this.masked = input(false, { transform: booleanAttribute });
60
+ this.disabled = input(false);
61
+ this.no = computed(() => this.size().reduce((a, b) => a + b, 0));
62
+ this.lastValue = '';
63
+ this.values = signal('');
64
+ this.focused = signal(false);
65
+ afterRenderEffect(cleanup => {
66
+ const inputEl = this.inputs().el.nativeElement;
67
+ const inputListener = () => {
68
+ const value = inputEl.value;
69
+ this.updateValue(value);
70
+ };
71
+ const keydownListener = (e) => {
72
+ const value = inputEl.value.length === this.no();
73
+ // const isPaste = (e.ctrlKey || e.metaKey) && e.key === 'v';
74
+ // if (isPaste || ['Tab', 'Enter'].includes(e.key)) {
75
+ // // prevent default behavior for tab key
76
+ // return;
77
+ // } else
78
+ if (value && !['Tab', 'Enter', 'Backspace'].includes(e.key)) {
79
+ // prevent default behavior for non-numeric characters
80
+ e.preventDefault();
81
+ }
82
+ };
83
+ const pasteListener = (e) => {
84
+ e.preventDefault();
85
+ const pastedText = e.clipboardData?.getData('text') || '';
86
+ const numbers = pastedText.replace(/\D/g, '');
87
+ // Only process if we have valid numbers
88
+ if (numbers.length === 0)
89
+ return;
90
+ this.updateNewValue(numbers.slice(0, this.no()));
91
+ this.updateValue(inputEl.value);
92
+ };
93
+ const blurListener = () => {
94
+ // We have to use untracked because the blur is triggered by the input element when we make it disabled
95
+ // so we are getting cannot update signal inside computed error
96
+ untracked(() => this.focused.set(false));
97
+ };
98
+ const focusListener = () => {
99
+ this.focused.set(true);
100
+ // set the cursor to the end of the input
101
+ inputEl.selectionStart = inputEl.selectionEnd = inputEl.value.length;
102
+ };
103
+ inputEl.addEventListener('input', inputListener);
104
+ inputEl.addEventListener('focus', focusListener);
105
+ inputEl.addEventListener('blur', blurListener);
106
+ inputEl.addEventListener('keydown', keydownListener);
107
+ inputEl.addEventListener('paste', pasteListener);
108
+ cleanup(() => {
109
+ inputEl.removeEventListener('input', inputListener);
110
+ inputEl.removeEventListener('focus', focusListener);
111
+ inputEl.removeEventListener('blur', blurListener);
112
+ inputEl.removeEventListener('keydown', keydownListener);
113
+ inputEl.removeEventListener('paste', pasteListener);
114
+ });
115
+ });
116
+ }
117
+ updateNewValue(value) {
118
+ this.values.set(value);
119
+ this.inputs().el.nativeElement.value = value;
120
+ }
121
+ writeValue(value) {
122
+ const values = value || '';
123
+ this.lastValue = value;
124
+ this.updateNewValue(values);
125
+ }
126
+ updateValue(values) {
127
+ this.values.set(values);
128
+ // const value = values.length === this.no() ? values : '';
129
+ // if (this.lastValue === value) {
130
+ // return;
131
+ // }
132
+ this.lastValue = values;
133
+ this.onChange?.(values);
134
+ this.onTouched?.();
135
+ }
136
+ registerOnChange(fn) {
137
+ this.onChange = fn;
138
+ }
139
+ registerOnTouched(fn) {
140
+ this.onTouched = fn;
141
+ }
142
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbInputOtp, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
143
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "19.0.0", type: NgbInputOtp, isStandalone: true, selector: "[ngbInputOtp]", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, masked: { classPropertyName: "masked", publicName: "masked", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, providers: [_provide(NgbInputOtp)], viewQueries: [{ propertyName: "inputs", first: true, predicate: NgbOtpInput, descendants: true, isSignal: true }, { propertyName: "_otpValues", predicate: NgbOtpValue, descendants: true, isSignal: true }], ngImport: i0 }); }
144
+ }
145
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbInputOtp, decorators: [{
146
+ type: Directive,
147
+ args: [{
148
+ selector: '[ngbInputOtp]',
149
+ providers: [_provide(NgbInputOtp)],
150
+ }]
151
+ }], ctorParameters: () => [] });
152
+ function _provide(otp) {
153
+ return [provideValueAccessor(otp)];
154
+ }
155
+ function aliasInputOtp(otp) {
156
+ return [_provide(otp), { provide: NgbInputOtp, useExisting: otp }];
157
+ }
158
+
159
+ /**
160
+ * Generated bundle index. Do not edit.
161
+ */
162
+
163
+ export { NgbInputOtp, NgbOtpInput, NgbOtpValue, aliasInputOtp };
164
+ //# sourceMappingURL=ngbase-adk-otp.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ngbase-adk-otp.mjs","sources":["../../../projects/adk/otp/otp.ts","../../../projects/adk/otp/ngbase-adk-otp.ts"],"sourcesContent":["import {\n afterRenderEffect,\n booleanAttribute,\n computed,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n signal,\n untracked,\n viewChild,\n viewChildren,\n} from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { provideValueAccessor } from '@ngbase/adk/utils';\n\n@Directive({\n selector: 'input[ngbOtpInput]',\n host: {\n '[disabled]': 'otp.disabled() || undefined',\n style:\n 'position: absolute; inset: 0; border: none; background: transparent; caret-color: transparent; outline: none; color: transparent; letter-spacing: -0.5rem;',\n },\n})\nexport class NgbOtpInput {\n readonly otp = inject(NgbInputOtp);\n readonly el = inject<ElementRef<HTMLInputElement>>(ElementRef);\n}\n\n@Directive({\n selector: '[ngbOtpValue]',\n host: {\n style: `pointer-events: none`,\n '[attr.data-focus]': 'focused() || undefined',\n '[attr.data-disabled]': 'otp.disabled() || undefined',\n 'aria-hidden': 'true',\n tabindex: '-1',\n },\n})\nexport class NgbOtpValue {\n readonly otp = inject(NgbInputOtp);\n readonly el = inject<ElementRef<HTMLElement>>(ElementRef);\n readonly index = computed(() => this.otp._otpValues().findIndex(v => this.el === v.el));\n readonly value = computed(() => this.otp.values()[this.index()] || '');\n\n readonly focused = computed(() => {\n return (\n this.otp.focused() && this.index() === Math.min(this.otp.values().length, this.otp.no() - 1)\n );\n });\n\n constructor() {\n effect(() => {\n const value = this.value();\n this.el.nativeElement.textContent = value && this.otp.masked() ? '•' : value;\n });\n }\n}\n\n@Directive({\n selector: '[ngbInputOtp]',\n providers: [_provide(NgbInputOtp)],\n})\nexport class NgbInputOtp implements ControlValueAccessor {\n private readonly inputs = viewChild.required<NgbOtpInput>(NgbOtpInput);\n readonly _otpValues = viewChildren<NgbOtpValue>(NgbOtpValue);\n // private readonly\n\n readonly size = input<number[]>([4]);\n readonly masked = input(false, { transform: booleanAttribute });\n readonly disabled = input<boolean>(false);\n\n readonly no = computed(() => this.size().reduce((a, b) => a + b, 0));\n private onChange?: (value: string) => void;\n private onTouched?: () => void;\n private lastValue = '';\n readonly values = signal<string>('');\n readonly focused = signal<boolean>(false);\n\n constructor() {\n afterRenderEffect(cleanup => {\n const inputEl = this.inputs().el.nativeElement;\n\n const inputListener = () => {\n const value = inputEl.value;\n this.updateValue(value);\n };\n\n const keydownListener = (e: KeyboardEvent) => {\n const value = inputEl.value.length === this.no();\n // const isPaste = (e.ctrlKey || e.metaKey) && e.key === 'v';\n // if (isPaste || ['Tab', 'Enter'].includes(e.key)) {\n // // prevent default behavior for tab key\n // return;\n // } else\n if (value && !['Tab', 'Enter', 'Backspace'].includes(e.key)) {\n // prevent default behavior for non-numeric characters\n e.preventDefault();\n }\n };\n\n const pasteListener = (e: ClipboardEvent) => {\n e.preventDefault();\n\n const pastedText = e.clipboardData?.getData('text') || '';\n const numbers = pastedText.replace(/\\D/g, '');\n\n // Only process if we have valid numbers\n if (numbers.length === 0) return;\n\n this.updateNewValue(numbers.slice(0, this.no()));\n this.updateValue(inputEl.value);\n };\n\n const blurListener = () => {\n // We have to use untracked because the blur is triggered by the input element when we make it disabled\n // so we are getting cannot update signal inside computed error\n untracked(() => this.focused.set(false));\n };\n\n const focusListener = () => {\n this.focused.set(true);\n // set the cursor to the end of the input\n inputEl.selectionStart = inputEl.selectionEnd = inputEl.value.length;\n };\n\n inputEl.addEventListener('input', inputListener);\n inputEl.addEventListener('focus', focusListener);\n inputEl.addEventListener('blur', blurListener);\n inputEl.addEventListener('keydown', keydownListener);\n inputEl.addEventListener('paste', pasteListener);\n\n cleanup(() => {\n inputEl.removeEventListener('input', inputListener);\n inputEl.removeEventListener('focus', focusListener);\n inputEl.removeEventListener('blur', blurListener);\n inputEl.removeEventListener('keydown', keydownListener);\n inputEl.removeEventListener('paste', pasteListener);\n });\n });\n }\n\n private updateNewValue(value: string) {\n this.values.set(value);\n this.inputs().el.nativeElement.value = value;\n }\n\n writeValue(value: string) {\n const values = value || '';\n this.lastValue = value;\n this.updateNewValue(values);\n }\n\n updateValue(values: string) {\n this.values.set(values);\n // const value = values.length === this.no() ? values : '';\n // if (this.lastValue === value) {\n // return;\n // }\n this.lastValue = values;\n this.onChange?.(values);\n this.onTouched?.();\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n}\n\nfunction _provide(otp: typeof NgbInputOtp) {\n return [provideValueAccessor(otp)];\n}\n\nexport function aliasInputOtp(otp: typeof NgbInputOtp) {\n return [_provide(otp), { provide: NgbInputOtp, useExisting: otp }];\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, input, numberAttribute, computed, Directive, model, output, Component } from '@angular/core';
3
- import { NgbSelect, NgbOption } from '@ngbase/adk/select';
2
+ import { inject, input, numberAttribute, computed, Directive, model, output } from '@angular/core';
4
3
 
5
4
  class NgbPaginationBtn {
6
5
  constructor() {
@@ -106,82 +105,26 @@ class NgbPagination {
106
105
  this.active.set(1);
107
106
  this.valueChanged.emit(this.active());
108
107
  }
109
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbPagination, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
110
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.0", type: NgbPagination, isStandalone: true, selector: "[ngbPagination]", inputs: { total: { classPropertyName: "total", publicName: "total", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: true, transformFunction: null }, sizeOptions: { classPropertyName: "sizeOptions", publicName: "sizeOptions", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { size: "sizeChange", active: "activeChange", valueChanged: "valueChanged" }, host: { attributes: { "role": "pagination", "aria-label": "pagination" }, classAttribute: "flex items-center gap-8 font-semibold" }, ngImport: i0, template: `
111
- <div class="flex items-center gap-2">
112
- <div>Rows per page</div>
113
- <div ngbSelect [value]="size()" (valueChange)="sizeChanged($event)" class="w-20 !py-1.5">
114
- @for (size of sizeOptions(); track size) {
115
- <div ngbOption [value]="size">
116
- {{ size }}
117
- </div>
118
- }
119
- </div>
120
- </div>
121
- <div>Page {{ active() }} of {{ totalSnaps() }}</div>
122
- <div class="flex items-center gap-2">
123
- <button ngbPaginationBtn="prev" class="h-8 w-8 !p-2"><</button>
124
- <button ngbPaginationBtn="prev" jump="-1" class="h-8 w-8 !p-2"><</button>
125
- @for (snap of snaps(); track snap) {
126
- <button
127
- ngbPaginationBtn="page"
128
- [jump]="snap"
129
- [class]="active() === snap ? 'bg-muted-background text-primary' : ''"
130
- class="min-w-9 !p-2 ring-offset-background"
131
- >
132
- {{ snap }}
133
- </button>
134
- }
135
- <button ngbPaginationBtn="next" jump="1" class="h-8 w-8 !p-2">></button>
136
- <button ngbPaginationBtn="next" class="h-8 w-8 !p-2">></button>
137
- </div>
138
- `, isInline: true, dependencies: [{ kind: "component", type: NgbSelect, selector: "[ngbSelect]", inputs: ["search"], outputs: ["searchChange"] }, { kind: "directive", type: NgbOption, selector: "[ngbOption]", inputs: ["value", "disabled", "ayId"], outputs: ["onSelectionChange"] }, { kind: "directive", type: NgbPaginationBtn, selector: "[ngbPaginationBtn]", inputs: ["ngbPaginationBtn", "jump"] }] }); }
108
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbPagination, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
109
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.0", type: NgbPagination, isStandalone: true, selector: "[ngbPagination]", inputs: { total: { classPropertyName: "total", publicName: "total", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: true, transformFunction: null }, sizeOptions: { classPropertyName: "sizeOptions", publicName: "sizeOptions", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { size: "sizeChange", active: "activeChange", valueChanged: "valueChanged" }, host: { attributes: { "role": "pagination", "aria-label": "pagination" } }, ngImport: i0 }); }
139
110
  }
140
111
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbPagination, decorators: [{
141
- type: Component,
112
+ type: Directive,
142
113
  args: [{
143
114
  selector: '[ngbPagination]',
144
- imports: [NgbSelect, NgbOption, NgbPaginationBtn],
145
- template: `
146
- <div class="flex items-center gap-2">
147
- <div>Rows per page</div>
148
- <div ngbSelect [value]="size()" (valueChange)="sizeChanged($event)" class="w-20 !py-1.5">
149
- @for (size of sizeOptions(); track size) {
150
- <div ngbOption [value]="size">
151
- {{ size }}
152
- </div>
153
- }
154
- </div>
155
- </div>
156
- <div>Page {{ active() }} of {{ totalSnaps() }}</div>
157
- <div class="flex items-center gap-2">
158
- <button ngbPaginationBtn="prev" class="h-8 w-8 !p-2"><</button>
159
- <button ngbPaginationBtn="prev" jump="-1" class="h-8 w-8 !p-2"><</button>
160
- @for (snap of snaps(); track snap) {
161
- <button
162
- ngbPaginationBtn="page"
163
- [jump]="snap"
164
- [class]="active() === snap ? 'bg-muted-background text-primary' : ''"
165
- class="min-w-9 !p-2 ring-offset-background"
166
- >
167
- {{ snap }}
168
- </button>
169
- }
170
- <button ngbPaginationBtn="next" jump="1" class="h-8 w-8 !p-2">></button>
171
- <button ngbPaginationBtn="next" class="h-8 w-8 !p-2">></button>
172
- </div>
173
- `,
174
115
  host: {
175
- class: 'flex items-center gap-8 font-semibold',
176
116
  role: 'pagination',
177
117
  'aria-label': 'pagination',
178
118
  },
179
119
  }]
180
120
  }] });
121
+ function aliasPagination(pagination) {
122
+ return { provide: NgbPagination, useExisting: pagination };
123
+ }
181
124
 
182
125
  /**
183
126
  * Generated bundle index. Do not edit.
184
127
  */
185
128
 
186
- export { NgbPagination, NgbPaginationBtn };
129
+ export { NgbPagination, NgbPaginationBtn, aliasPagination };
187
130
  //# sourceMappingURL=ngbase-adk-pagination.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ngbase-adk-pagination.mjs","sources":["../../../projects/adk/pagination/pagination.ts","../../../projects/adk/pagination/ngbase-adk-pagination.ts"],"sourcesContent":["import {\n Component,\n computed,\n Directive,\n inject,\n input,\n model,\n numberAttribute,\n output,\n} from '@angular/core';\nimport { NgbSelect, NgbOption } from '@ngbase/adk/select';\n\n@Directive({\n selector: '[ngbPaginationBtn]',\n host: {\n type: 'button',\n '[attr.aria-label]': 'ariaLabel()',\n '[disabled]': 'disabled()',\n '(click)': 'clicked()',\n '[attr.aria-current]': 'ariaCurrent()',\n },\n})\nexport class NgbPaginationBtn {\n readonly pagination = inject(NgbPagination);\n\n readonly ngbPaginationBtn = input.required<'next' | 'prev' | 'page'>();\n readonly jump = input(undefined, { transform: numberAttribute });\n\n readonly disabled = computed(() =>\n this.ngbPaginationBtn() === 'page'\n ? false\n : this.ngbPaginationBtn() === 'prev'\n ? !this.pagination.prev()\n : !this.pagination.next(),\n );\n readonly ariaLabel = computed(() => {\n return this.ngbPaginationBtn() === 'page'\n ? 'Go to page'\n : this.ngbPaginationBtn() === 'prev'\n ? 'Go to previous page'\n : 'Go to next page';\n });\n\n readonly ariaCurrent = computed(() =>\n this.ngbPaginationBtn() === 'page' && this.pagination.active() === this.jump()\n ? 'page'\n : undefined,\n );\n\n clicked() {\n if (this.ngbPaginationBtn() === 'page') {\n this.pagination.goto(this.jump()!);\n } else if (this.ngbPaginationBtn() === 'prev') {\n if (this.jump()) {\n this.pagination.jump(-1);\n } else {\n this.pagination.goto(0);\n }\n } else {\n if (this.jump()) {\n this.pagination.jump(1);\n } else {\n this.pagination.goto(this.pagination.total() - 1);\n }\n }\n }\n}\n\n@Component({\n selector: '[ngbPagination]',\n imports: [NgbSelect, NgbOption, NgbPaginationBtn],\n template: `\n <div class=\"flex items-center gap-2\">\n <div>Rows per page</div>\n <div ngbSelect [value]=\"size()\" (valueChange)=\"sizeChanged($event)\" class=\"w-20 !py-1.5\">\n @for (size of sizeOptions(); track size) {\n <div ngbOption [value]=\"size\">\n {{ size }}\n </div>\n }\n </div>\n </div>\n <div>Page {{ active() }} of {{ totalSnaps() }}</div>\n <div class=\"flex items-center gap-2\">\n <button ngbPaginationBtn=\"prev\" class=\"h-8 w-8 !p-2\"><</button>\n <button ngbPaginationBtn=\"prev\" jump=\"-1\" class=\"h-8 w-8 !p-2\"><</button>\n @for (snap of snaps(); track snap) {\n <button\n ngbPaginationBtn=\"page\"\n [jump]=\"snap\"\n [class]=\"active() === snap ? 'bg-muted-background text-primary' : ''\"\n class=\"min-w-9 !p-2 ring-offset-background\"\n >\n {{ snap }}\n </button>\n }\n <button ngbPaginationBtn=\"next\" jump=\"1\" class=\"h-8 w-8 !p-2\">></button>\n <button ngbPaginationBtn=\"next\" class=\"h-8 w-8 !p-2\">></button>\n </div>\n `,\n host: {\n class: 'flex items-center gap-8 font-semibold',\n role: 'pagination',\n 'aria-label': 'pagination',\n },\n})\nexport class NgbPagination {\n // Inputs\n readonly total = input.required<number>();\n readonly size = model.required<number>();\n readonly sizeOptions = input<number[]>([10, 20, 50, 100]);\n readonly active = model.required<number>();\n readonly valueChanged = output<number>();\n\n // State\n readonly totalSnaps = computed(() => Math.ceil(this.total() / this.size()));\n readonly snaps = computed(() => {\n const activeIndex = this.active();\n const total = this.totalSnaps();\n\n const num = [];\n let start = activeIndex - 2 > 1 ? activeIndex - 2 : 1;\n let end = start + 4;\n\n if (end > total) {\n end = total;\n start = total - 4 > 1 ? total - 4 : 1;\n }\n\n for (let i = start; i <= end; i++) {\n num.push(i);\n }\n return num;\n });\n\n readonly prev = computed(() => this.active() > 1);\n readonly next = computed(() => this.active() < this.totalSnaps());\n\n goto(index: number) {\n const total = this.totalSnaps();\n this.active.update(e => {\n e = index <= total ? index : total;\n e = e >= 1 ? e : 1;\n return e;\n });\n this.valueChanged.emit(this.active());\n }\n\n jump(by: number) {\n const active = this.active();\n this.goto(active + by);\n }\n\n sizeChanged(size: number) {\n this.size.set(size);\n this.active.set(1);\n this.valueChanged.emit(this.active());\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngbase-adk-pagination.mjs","sources":["../../../projects/adk/pagination/pagination.ts","../../../projects/adk/pagination/ngbase-adk-pagination.ts"],"sourcesContent":["import { computed, Directive, inject, input, model, numberAttribute, output } from '@angular/core';\n\n@Directive({\n selector: '[ngbPaginationBtn]',\n host: {\n type: 'button',\n '[attr.aria-label]': 'ariaLabel()',\n '[disabled]': 'disabled()',\n '(click)': 'clicked()',\n '[attr.aria-current]': 'ariaCurrent()',\n },\n})\nexport class NgbPaginationBtn {\n readonly pagination = inject(NgbPagination);\n\n readonly ngbPaginationBtn = input.required<'next' | 'prev' | 'page'>();\n readonly jump = input(undefined, { transform: numberAttribute });\n\n readonly disabled = computed(() =>\n this.ngbPaginationBtn() === 'page'\n ? false\n : this.ngbPaginationBtn() === 'prev'\n ? !this.pagination.prev()\n : !this.pagination.next(),\n );\n readonly ariaLabel = computed(() => {\n return this.ngbPaginationBtn() === 'page'\n ? 'Go to page'\n : this.ngbPaginationBtn() === 'prev'\n ? 'Go to previous page'\n : 'Go to next page';\n });\n\n readonly ariaCurrent = computed(() =>\n this.ngbPaginationBtn() === 'page' && this.pagination.active() === this.jump()\n ? 'page'\n : undefined,\n );\n\n clicked() {\n if (this.ngbPaginationBtn() === 'page') {\n this.pagination.goto(this.jump()!);\n } else if (this.ngbPaginationBtn() === 'prev') {\n if (this.jump()) {\n this.pagination.jump(-1);\n } else {\n this.pagination.goto(0);\n }\n } else {\n if (this.jump()) {\n this.pagination.jump(1);\n } else {\n this.pagination.goto(this.pagination.total() - 1);\n }\n }\n }\n}\n\n@Directive({\n selector: '[ngbPagination]',\n host: {\n role: 'pagination',\n 'aria-label': 'pagination',\n },\n})\nexport class NgbPagination {\n // Inputs\n readonly total = input.required<number>();\n readonly size = model.required<number>();\n readonly sizeOptions = input<number[]>([10, 20, 50, 100]);\n readonly active = model.required<number>();\n readonly valueChanged = output<number>();\n\n // State\n readonly totalSnaps = computed(() => Math.ceil(this.total() / this.size()));\n readonly snaps = computed(() => {\n const activeIndex = this.active();\n const total = this.totalSnaps();\n\n const num = [];\n let start = activeIndex - 2 > 1 ? activeIndex - 2 : 1;\n let end = start + 4;\n\n if (end > total) {\n end = total;\n start = total - 4 > 1 ? total - 4 : 1;\n }\n\n for (let i = start; i <= end; i++) {\n num.push(i);\n }\n return num;\n });\n\n readonly prev = computed(() => this.active() > 1);\n readonly next = computed(() => this.active() < this.totalSnaps());\n\n goto(index: number) {\n const total = this.totalSnaps();\n this.active.update(e => {\n e = index <= total ? index : total;\n e = e >= 1 ? e : 1;\n return e;\n });\n this.valueChanged.emit(this.active());\n }\n\n jump(by: number) {\n const active = this.active();\n this.goto(active + by);\n }\n\n sizeChanged(size: number) {\n this.size.set(size);\n this.active.set(1);\n this.valueChanged.emit(this.active());\n }\n}\n\nexport function aliasPagination(pagination: typeof NgbPagination) {\n return { provide: NgbPagination, useExisting: pagination };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}