@ngbase/adk 0.1.2 → 0.1.3

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 (203) hide show
  1. package/a11y/accessibility-group.d.ts +2 -5
  2. package/accordion/accordion-item.d.ts +3 -1
  3. package/autocomplete/autocomplete-input.d.ts +2 -4
  4. package/autocomplete/autocomplete.d.ts +12 -3
  5. package/carousel/carousel.d.ts +2 -2
  6. package/checkbox/checkbox.d.ts +11 -3
  7. package/checkbox/public-api.d.ts +1 -1
  8. package/datepicker/datepicker-trigger.d.ts +22 -5
  9. package/datepicker/datepicker.d.ts +2 -1
  10. package/drag/drag.d.ts +1 -2
  11. package/fesm2022/ngbase-adk-a11y.mjs +29 -26
  12. package/fesm2022/ngbase-adk-a11y.mjs.map +1 -1
  13. package/fesm2022/ngbase-adk-accordion.mjs +12 -2
  14. package/fesm2022/ngbase-adk-accordion.mjs.map +1 -1
  15. package/fesm2022/ngbase-adk-autocomplete.mjs +18 -18
  16. package/fesm2022/ngbase-adk-autocomplete.mjs.map +1 -1
  17. package/fesm2022/ngbase-adk-carousel.mjs +5 -5
  18. package/fesm2022/ngbase-adk-carousel.mjs.map +1 -1
  19. package/fesm2022/ngbase-adk-checkbox.mjs +8 -6
  20. package/fesm2022/ngbase-adk-checkbox.mjs.map +1 -1
  21. package/fesm2022/ngbase-adk-datepicker.mjs +76 -25
  22. package/fesm2022/ngbase-adk-datepicker.mjs.map +1 -1
  23. package/fesm2022/ngbase-adk-dialog.mjs +3 -3
  24. package/fesm2022/ngbase-adk-dialog.mjs.map +1 -1
  25. package/fesm2022/ngbase-adk-drag.mjs +1 -2
  26. package/fesm2022/ngbase-adk-drag.mjs.map +1 -1
  27. package/fesm2022/ngbase-adk-list.mjs +2 -2
  28. package/fesm2022/ngbase-adk-list.mjs.map +1 -1
  29. package/fesm2022/ngbase-adk-mask.mjs +5 -3
  30. package/fesm2022/ngbase-adk-mask.mjs.map +1 -1
  31. package/fesm2022/ngbase-adk-menu.mjs +22 -7
  32. package/fesm2022/ngbase-adk-menu.mjs.map +1 -1
  33. package/fesm2022/ngbase-adk-pagination.mjs +3 -3
  34. package/fesm2022/ngbase-adk-pagination.mjs.map +1 -1
  35. package/fesm2022/ngbase-adk-popover.mjs +25 -22
  36. package/fesm2022/ngbase-adk-popover.mjs.map +1 -1
  37. package/fesm2022/ngbase-adk-portal.mjs +5 -9
  38. package/fesm2022/ngbase-adk-portal.mjs.map +1 -1
  39. package/fesm2022/ngbase-adk-radio.mjs +6 -3
  40. package/fesm2022/ngbase-adk-radio.mjs.map +1 -1
  41. package/fesm2022/ngbase-adk-resizable.mjs.map +1 -1
  42. package/fesm2022/ngbase-adk-select.mjs +21 -13
  43. package/fesm2022/ngbase-adk-select.mjs.map +1 -1
  44. package/fesm2022/ngbase-adk-slider.mjs +4 -1
  45. package/fesm2022/ngbase-adk-slider.mjs.map +1 -1
  46. package/fesm2022/ngbase-adk-stepper.mjs.map +1 -1
  47. package/fesm2022/ngbase-adk-table.mjs +8 -6
  48. package/fesm2022/ngbase-adk-table.mjs.map +1 -1
  49. package/fesm2022/ngbase-adk-tabs.mjs.map +1 -1
  50. package/fesm2022/ngbase-adk-test.mjs +11 -1
  51. package/fesm2022/ngbase-adk-test.mjs.map +1 -1
  52. package/fesm2022/ngbase-adk-tour.mjs +2 -2
  53. package/fesm2022/ngbase-adk-tour.mjs.map +1 -1
  54. package/fesm2022/ngbase-adk-utils.mjs +12 -9
  55. package/fesm2022/ngbase-adk-utils.mjs.map +1 -1
  56. package/mask/mask.d.ts +1 -2
  57. package/menu/menu-trigger.d.ts +1 -1
  58. package/menu/menu.d.ts +8 -2
  59. package/package.json +11 -11
  60. package/pagination/pagination.d.ts +3 -3
  61. package/popover/base-popover.service.d.ts +1 -1
  62. package/popover/popover.d.ts +5 -4
  63. package/portal/portal-base.service.d.ts +3 -3
  64. package/portal/portal-close.directive.d.ts +3 -2
  65. package/radio/radio.d.ts +5 -1
  66. package/select/option.d.ts +1 -1
  67. package/select/select-base.d.ts +8 -6
  68. package/select/select.d.ts +5 -2
  69. package/slider/slider.d.ts +1 -0
  70. package/table/table.d.ts +2 -2
  71. package/test/utils.d.ts +19 -3
  72. package/utils/utils.d.ts +5 -4
  73. package/schematics/collection.json +0 -15
  74. package/schematics/components/files/accordion/accordion.ts.template +0 -53
  75. package/schematics/components/files/accordion/index.ts.template +0 -5
  76. package/schematics/components/files/alert/alert.ts.template +0 -62
  77. package/schematics/components/files/alert/index.ts.template +0 -1
  78. package/schematics/components/files/autocomplete/autocomplete.ts.template +0 -44
  79. package/schematics/components/files/autocomplete/index.ts.template +0 -5
  80. package/schematics/components/files/avatar/avatar.ts.template +0 -31
  81. package/schematics/components/files/avatar/index.ts.template +0 -1
  82. package/schematics/components/files/badge/badge.ts.template +0 -11
  83. package/schematics/components/files/badge/index.ts.template +0 -1
  84. package/schematics/components/files/breadcrumb/breadcrumb.ts.template +0 -49
  85. package/schematics/components/files/breadcrumb/index.ts.template +0 -1
  86. package/schematics/components/files/button/button.ts.template +0 -29
  87. package/schematics/components/files/button/index.ts.template +0 -5
  88. package/schematics/components/files/card/card.ts.template +0 -11
  89. package/schematics/components/files/card/index.ts.template +0 -5
  90. package/schematics/components/files/carousel/carousel.ts.template +0 -44
  91. package/schematics/components/files/carousel/index.ts.template +0 -1
  92. package/schematics/components/files/checkbox/checkbox.ts.template +0 -46
  93. package/schematics/components/files/checkbox/focus-style.directive.ts.template +0 -12
  94. package/schematics/components/files/checkbox/index.ts.template +0 -6
  95. package/schematics/components/files/chip/chip.ts.template +0 -36
  96. package/schematics/components/files/chip/index.ts.template +0 -1
  97. package/schematics/components/files/color-picker/color-picker.ts.template +0 -104
  98. package/schematics/components/files/color-picker/index.ts.template +0 -5
  99. package/schematics/components/files/command/command.ts.template +0 -82
  100. package/schematics/components/files/command/index.ts.template +0 -1
  101. package/schematics/components/files/datepicker/calendar.ts.template +0 -117
  102. package/schematics/components/files/datepicker/datepicker.ts.template +0 -58
  103. package/schematics/components/files/datepicker/index.ts.template +0 -2
  104. package/schematics/components/files/datepicker/time.ts.template +0 -54
  105. package/schematics/components/files/dialog/dialog.ts.template +0 -89
  106. package/schematics/components/files/dialog/index.ts.template +0 -5
  107. package/schematics/components/files/drawer/drawer.ts.template +0 -104
  108. package/schematics/components/files/drawer/index.ts.template +0 -5
  109. package/schematics/components/files/form-field/form-field.ts.template +0 -111
  110. package/schematics/components/files/form-field/index.ts.template +0 -6
  111. package/schematics/components/files/form-field/input-style.directive.ts.template +0 -11
  112. package/schematics/components/files/hover-card/hover-card.ts.template +0 -13
  113. package/schematics/components/files/hover-card/index.ts.template +0 -5
  114. package/schematics/components/files/icon/icon.ts.template +0 -16
  115. package/schematics/components/files/icon/index.ts.template +0 -1
  116. package/schematics/components/files/inline-edit/index.ts.template +0 -1
  117. package/schematics/components/files/inline-edit/inline-edit.ts.template +0 -24
  118. package/schematics/components/files/keys/index.ts.template +0 -5
  119. package/schematics/components/files/keys/key.ts.template +0 -35
  120. package/schematics/components/files/list/index.ts.template +0 -5
  121. package/schematics/components/files/list/list.ts.template +0 -28
  122. package/schematics/components/files/mask/index.ts.template +0 -1
  123. package/schematics/components/files/mask/mask.ts.template +0 -8
  124. package/schematics/components/files/menu/context-menu.ts.template +0 -14
  125. package/schematics/components/files/menu/index.ts.template +0 -8
  126. package/schematics/components/files/menu/mention.ts.template +0 -14
  127. package/schematics/components/files/menu/menu.ts.template +0 -37
  128. package/schematics/components/files/menu/navigation-menu.ts.template +0 -8
  129. package/schematics/components/files/otp/index.ts.template +0 -5
  130. package/schematics/components/files/otp/otp.ts.template +0 -37
  131. package/schematics/components/files/pagination/index.ts.template +0 -1
  132. package/schematics/components/files/pagination/pagination.ts.template +0 -71
  133. package/schematics/components/files/picasa/index.ts.template +0 -1
  134. package/schematics/components/files/picasa/picasa-base.component.ts.template +0 -80
  135. package/schematics/components/files/picasa/picasa.component.ts.template +0 -57
  136. package/schematics/components/files/picasa/picasa.directive.ts.template +0 -41
  137. package/schematics/components/files/picasa/picase.service.ts.template +0 -24
  138. package/schematics/components/files/popover/index.ts.template +0 -1
  139. package/schematics/components/files/popover/popover.ts.template +0 -64
  140. package/schematics/components/files/progress/index.ts.template +0 -5
  141. package/schematics/components/files/progress/progress.ts.template +0 -14
  142. package/schematics/components/files/radio/index.ts.template +0 -5
  143. package/schematics/components/files/radio/radio.ts.template +0 -35
  144. package/schematics/components/files/resizable/index.ts.template +0 -5
  145. package/schematics/components/files/resizable/resizable.ts.template +0 -56
  146. package/schematics/components/files/scroll-area/index.ts.template +0 -1
  147. package/schematics/components/files/scroll-area/scroll-area.ts.template +0 -40
  148. package/schematics/components/files/select/index.ts.template +0 -8
  149. package/schematics/components/files/select/list-selection.ts.template +0 -15
  150. package/schematics/components/files/select/option.ts.template +0 -35
  151. package/schematics/components/files/select/select-input.ts.template +0 -21
  152. package/schematics/components/files/select/select.ts.template +0 -96
  153. package/schematics/components/files/selectable/index.ts.template +0 -1
  154. package/schematics/components/files/selectable/selectable.ts.template +0 -34
  155. package/schematics/components/files/separator/index.ts.template +0 -5
  156. package/schematics/components/files/separator/separator.ts.template +0 -19
  157. package/schematics/components/files/sheet/index.ts.template +0 -5
  158. package/schematics/components/files/sheet/sheet.ts.template +0 -69
  159. package/schematics/components/files/sidenav/index.ts.template +0 -1
  160. package/schematics/components/files/sidenav/sidenav.ts.template +0 -48
  161. package/schematics/components/files/skeleton/index.ts.template +0 -1
  162. package/schematics/components/files/skeleton/skeleton.ts.template +0 -15
  163. package/schematics/components/files/slider/index.ts.template +0 -5
  164. package/schematics/components/files/slider/slider.ts.template +0 -35
  165. package/schematics/components/files/sonner/index.ts.template +0 -5
  166. package/schematics/components/files/sonner/sonner.ts.template +0 -59
  167. package/schematics/components/files/spinner/index.ts.template +0 -1
  168. package/schematics/components/files/spinner/spinner.ts.template +0 -79
  169. package/schematics/components/files/stepper/index.ts.template +0 -1
  170. package/schematics/components/files/stepper/stepper.ts.template +0 -88
  171. package/schematics/components/files/switch/index.ts.template +0 -5
  172. package/schematics/components/files/switch/switch.ts.template +0 -29
  173. package/schematics/components/files/table/body-cell.ts.template +0 -19
  174. package/schematics/components/files/table/body-row.ts.template +0 -21
  175. package/schematics/components/files/table/column.ts.template +0 -8
  176. package/schematics/components/files/table/head-cell.ts.template +0 -19
  177. package/schematics/components/files/table/head-row.ts.template +0 -27
  178. package/schematics/components/files/table/index.ts.template +0 -26
  179. package/schematics/components/files/table/table.ts.template +0 -20
  180. package/schematics/components/files/tabs/index.ts.template +0 -5
  181. package/schematics/components/files/tabs/tab.ts.template +0 -92
  182. package/schematics/components/files/theme/index.ts.template +0 -2
  183. package/schematics/components/files/theme/theme-button.component.ts.template +0 -26
  184. package/schematics/components/files/theme/theme.service.ts.template +0 -33
  185. package/schematics/components/files/toggle/index.ts.template +0 -5
  186. package/schematics/components/files/toggle/toggle.ts.template +0 -13
  187. package/schematics/components/files/toggle-group/index.ts.template +0 -5
  188. package/schematics/components/files/toggle-group/toggle-group.ts.template +0 -25
  189. package/schematics/components/files/tooltip/index.ts.template +0 -5
  190. package/schematics/components/files/tooltip/tooltip.ts.template +0 -45
  191. package/schematics/components/files/tour/index.ts.template +0 -1
  192. package/schematics/components/files/tour/tour.ts.template +0 -19
  193. package/schematics/components/files/tree/index.ts.template +0 -1
  194. package/schematics/components/files/tree/tree.ts.template +0 -66
  195. package/schematics/components/index.d.ts +0 -3
  196. package/schematics/components/index.js +0 -17
  197. package/schematics/components/index.js.map +0 -1
  198. package/schematics/components/index.ts +0 -29
  199. package/schematics/components/schema.d.ts +0 -6
  200. package/schematics/components/schema.js +0 -3
  201. package/schematics/components/schema.js.map +0 -1
  202. package/schematics/components/schema.json +0 -145
  203. package/schematics/components/schema.ts +0 -6
@@ -1,117 +0,0 @@
1
- import { NgClass } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component } from '@angular/core';
3
- import { Button } from '<%= basepath %>/button';
4
- import { Icon } from '<%= basepath %>/icon';
5
- import { provideIcons } from '@ng-icons/core';
6
- import { lucideChevronLeft, lucideChevronRight } from '@ng-icons/lucide';
7
- import {
8
- CalendarBtn,
9
- CalendarDayBtn,
10
- CalendarMonthBtn,
11
- CalendarTitle,
12
- CalendarYearBtn,
13
- NgbCalendar,
14
- aliasCalendar,
15
- } from '@ngbase/adk/datepicker';
16
- import { TimePicker } from './time';
17
-
18
- @Component({
19
- selector: '<%= name %>-calendar',
20
- changeDetection: ChangeDetectionStrategy.OnPush,
21
- providers: [aliasCalendar(Calendar)],
22
- viewProviders: [provideIcons({ lucideChevronLeft, lucideChevronRight })],
23
- imports: [
24
- NgClass,
25
- Button,
26
- Icon,
27
- TimePicker,
28
- CalendarBtn,
29
- CalendarTitle,
30
- CalendarYearBtn,
31
- CalendarMonthBtn,
32
- CalendarDayBtn,
33
- ],
34
- template: `
35
- <div class="mb-2 flex items-center justify-between">
36
- <button ngbCalendarBtn="left" <%= name %>Button="outline" class="h-6 w-6 rounded-md !px-0">
37
- <<%= name %>-icon [name]="dir.isRtl() ? 'lucideChevronRight' : 'lucideChevronLeft'" />
38
- </button>
39
- <button ngbCalendarTitle <%= name %>Button="ghost" class="small rounded-md">
40
- {{ title() }}
41
- </button>
42
- <button ngbCalendarBtn="right" <%= name %>Button="outline" class="h-6 w-6 rounded-md !px-0">
43
- <<%= name %>-icon [name]="dir.isRtl() ? 'lucideChevronLeft' : 'lucideChevronRight'" />
44
- </button>
45
- </div>
46
-
47
- @if (datePicker.showType() === 'year') {
48
- <div class="grid grid-cols-3">
49
- @for (year of years(); track year.year) {
50
- <button
51
- [ngbCalYearBtn]="year"
52
- #yearBtn="ngbCalYearBtn"
53
- class="items-center justify-center rounded-md py-2 h-9 w-[84px] {{
54
- year.disabled ? 'cursor-default opacity-50' : 'hover:bg-muted-background'
55
- }}"
56
- [ngClass]="{
57
- 'border bg-muted-background': yearBtn.selected(),
58
- '!bg-primary text-foreground': yearBtn.active(),
59
- }"
60
- >
61
- {{ year.year }}
62
- </button>
63
- }
64
- </div>
65
- } @else if (datePicker.showType() === 'month') {
66
- <div class="grid grid-cols-3">
67
- @for (month of months(); track month.value) {
68
- <button
69
- [ngbCalMonthBtn]="month"
70
- #monthBtn="ngbCalMonthBtn"
71
- class="items-center justify-center rounded-md py-2 h-9 w-[84px] {{
72
- month.disabled ? 'cursor-default opacity-50' : 'hover:bg-muted-background'
73
- }}"
74
- [ngClass]="{
75
- 'border bg-muted-background': monthBtn.selected(),
76
- '!bg-primary text-foreground': monthBtn.active(),
77
- }"
78
- >
79
- {{ month.name }}
80
- </button>
81
- }
82
- </div>
83
- } @else {
84
- <div class="day-names grid grid-cols-7">
85
- @for (dayName of dayNames; track dayName) {
86
- <div class="p-1 text-center text-muted">{{ dayName }}</div>
87
- }
88
- </div>
89
- <div class="grid grid-cols-7 gap-y-2">
90
- @for (day of getDaysArray(); track day.day + '-' + day.mon) {
91
- <button
92
- #days="ngbCalDayBtn"
93
- [ngbCalDayBtn]="day"
94
- class="mx-auto flex h-9 w-9 items-center justify-center text-center {{
95
- day.disabled ? 'cursor-default opacity-50' : 'hover:bg-muted-background'
96
- }}"
97
- [ngClass]="{
98
- 'bg-muted-background': days.selected(),
99
- 'opacity-40': days.dummy(),
100
- '!bg-primary text-foreground': days.active(),
101
- }"
102
- >
103
- {{ day.day }}
104
- </button>
105
- }
106
- </div>
107
- @if (datePicker.time() && datePicker.range()) {
108
- <<%= name %>-time class="mt-5 w-full" [(value)]="time1" (valueChange)="timeChanged(0, time1()!)" />
109
- <<%= name %>-time class="mt-5 w-full" [(value)]="time2" (valueChange)="timeChanged(1, time2()!)" />
110
- }
111
- }
112
- `,
113
- host: {
114
- class: 'inline-flex flex-col min-h-[18.75rem] p-2 w-full',
115
- },
116
- })
117
- export class Calendar<D> extends NgbCalendar<D> {}
@@ -1,58 +0,0 @@
1
- import { NgTemplateOutlet } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, Directive } from '@angular/core';
3
- import {
4
- DatepickerGroup,
5
- NgbDatePicker,
6
- NgbDatepickerTrigger,
7
- aliasDatePicker,
8
- registerDatePicker,
9
- } from '@ngbase/adk/datepicker';
10
- import { RangePipe } from '@ngbase/adk/utils';
11
- import { Calendar } from './calendar';
12
-
13
- @Component({
14
- selector: '<%= name %>-date-picker',
15
- changeDetection: ChangeDetectionStrategy.OnPush,
16
- providers: [aliasDatePicker(DatePicker)],
17
- imports: [Calendar, RangePipe, NgTemplateOutlet, DatepickerGroup],
18
- template: `
19
- <div class="flex" ngbDatepickerGroup>
20
- @for (no of noOfCalendar() | range; track no) {
21
- <<%= name %>-calendar [first]="$first" [last]="$last" [index]="$index" />
22
- }
23
- </div>
24
- @if (template()) {
25
- <div class="px-2 pb-2">
26
- <ng-container *ngTemplateOutlet="template()" />
27
- </div>
28
- }
29
- `,
30
- host: {
31
- class: 'inline-block',
32
- },
33
- })
34
- export class DatePicker<D> extends NgbDatePicker<D> {}
35
-
36
- @Directive({
37
- selector: '[<%= name %>DatepickerTrigger]',
38
- providers: [registerDatePicker(DatePicker)],
39
- hostDirectives: [
40
- {
41
- directive: NgbDatepickerTrigger,
42
- inputs: [
43
- 'noOfCalendars',
44
- 'range',
45
- 'time',
46
- 'format',
47
- 'fieldFormat',
48
- 'dateFilter',
49
- 'pickerType',
50
- 'pickerTemplate',
51
- ],
52
- },
53
- ],
54
- host: {
55
- class: 'cursor-pointer hover:bg-muted-background outline-none',
56
- },
57
- })
58
- export class DatepickerTrigger<D> {}
@@ -1,2 +0,0 @@
1
- export * from './datepicker';
2
- export * from './time';
@@ -1,54 +0,0 @@
1
- import { ChangeDetectionStrategy, Component } from '@angular/core';
2
- import { NgbTimeInput, NgbTimePicker, aliasTimePicker } from '@ngbase/adk/datepicker';
3
- import { Button } from '<%= basepath %>/button';
4
-
5
- @Component({
6
- selector: '<%= name %>-time',
7
- changeDetection: ChangeDetectionStrategy.OnPush,
8
- providers: [aliasTimePicker(TimePicker)],
9
- imports: [Button, NgbTimeInput],
10
- template: `
11
- <input
12
- ngbTimeInput="hours"
13
- [(value)]="hours"
14
- (valueChange)="updateValue()"
15
- class="w-7 px-1 text-center font-semibold focus:bg-muted-background"
16
- />
17
- <span>:</span>
18
- <input
19
- ngbTimeInput="minutes"
20
- [(value)]="minutes"
21
- (valueChange)="updateValue()"
22
- class="w-7 px-1 text-center font-semibold focus:bg-muted-background"
23
- />
24
- <span>:</span>
25
- <input
26
- ngbTimeInput="seconds"
27
- [(value)]="seconds"
28
- (valueChange)="updateValue()"
29
- class="w-7 px-1 text-center font-semibold focus:bg-muted-background"
30
- />
31
- @if (!is24()) {
32
- <div class="ml-1 flex gap-2">
33
- <button
34
- [<%= name %>Button]="am() ? 'primary' : 'ghost'"
35
- class="small !px-1 !py-0"
36
- (click)="changeAm(true)"
37
- >
38
- AM
39
- </button>
40
- <button
41
- [<%= name %>Button]="!am() ? 'primary' : 'ghost'"
42
- class="small !px-1 !py-0"
43
- (click)="changeAm(false)"
44
- >
45
- PM
46
- </button>
47
- </div>
48
- }
49
- `,
50
- host: {
51
- class: 'inline-flex gap-1 items-center justify-center',
52
- },
53
- })
54
- export class TimePicker extends NgbTimePicker {}
@@ -1,89 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Directive } from '@angular/core';
2
- import { Button } from '<%= basepath %>/button';
3
- import { Icon } from '<%= basepath %>/icon';
4
- import { provideIcons } from '@ng-icons/core';
5
- import { lucideX } from '@ng-icons/lucide';
6
- import {
7
- aliasDialog,
8
- NgbDialog,
9
- NgbDialogBackdrop,
10
- NgbDialogClose,
11
- NgbDialogContainer,
12
- NgbDialogMain,
13
- ngbDialogPortal,
14
- } from '@ngbase/adk/dialog';
15
- import { DragMove } from '@ngbase/adk/drag';
16
-
17
- @Component({
18
- selector: '<%= name %>-dialog',
19
- changeDetection: ChangeDetectionStrategy.OnPush,
20
- providers: [aliasDialog(DialogContainer)],
21
- viewProviders: [provideIcons({ lucideX })],
22
- imports: [Button, Icon, DragMove, NgbDialogMain, NgbDialogBackdrop],
23
- template: `
24
- <div class="pointer-events-none flex h-full items-center justify-center">
25
- <div
26
- #myDialog
27
- ngbDialogMain
28
- [@viewAnimation]
29
- class="{{
30
- 'pointer-events-auto relative flex max-w-[100vw] flex-col overflow-hidden border bg-foreground shadow-lg' +
31
- (options().fullWindow
32
- ? ' h-screen w-screen border-none'
33
- : ' max-w-[calc(100vw-30px)] rounded-lg')
34
- }}"
35
- >
36
- @if (!isHideHeader) {
37
- <div
38
- class="flex items-center justify-between border-b px-4 py-2"
39
- ngbDragMove
40
- [target]="myDialog"
41
- >
42
- <h2 class="flex-1 text-base font-bold">{{ options().title }}</h2>
43
- @if (!options().disableClose) {
44
- <button <%= name %>Button="ghost" class="-mr-2 !p-2" (click)="close()">
45
- <<%= name %>-icon name="lucideX" />
46
- </button>
47
- }
48
- </div>
49
- }
50
- <div class="h-full overflow-auto p-4">
51
- <ng-container #contentContainer />
52
- </div>
53
- </div>
54
- @if (showBackdrop()) {
55
- <div
56
- class="pointer-events-auto absolute top-0 -z-10 h-full w-full bg-black bg-opacity-30"
57
- ngbDialogBackdrop
58
- [@fadeAnimation]
59
- ></div>
60
- }
61
- </div>
62
- `,
63
- host: {
64
- class: 'fixed block top-0 bottom-0 left-0 right-0 overflow-auto pointer-events-none z-p',
65
- },
66
- })
67
- export class DialogContainer extends NgbDialogContainer {}
68
-
69
- @Directive({
70
- selector: '[<%= name %>DialogClose]',
71
- hostDirectives: [NgbDialogClose],
72
- })
73
- export class DialogClose {}
74
-
75
- @Component({
76
- selector: '[<%= name %>DialogTitle]',
77
- changeDetection: ChangeDetectionStrategy.OnPush,
78
- template: `<ng-content />`,
79
- host: {
80
- class: 'text-lg font-semibold',
81
- },
82
- })
83
- export class DialogTitle {}
84
-
85
- export function dialogPortal() {
86
- return ngbDialogPortal(DialogContainer);
87
- }
88
-
89
- export type Dialog = NgbDialog;
@@ -1,5 +0,0 @@
1
- /*
2
- * Public API Surface of dialog
3
- */
4
-
5
- export * from './dialog';
@@ -1,104 +0,0 @@
1
- import { animate, state, style, transition, trigger } from '@angular/animations';
2
- import {
3
- ChangeDetectionStrategy,
4
- Component,
5
- ViewContainerRef,
6
- afterNextRender,
7
- viewChild,
8
- } from '@angular/core';
9
- import { FocusTrap } from '@ngbase/adk/a11y';
10
- import { BaseDialog, basePortal, DialogInput, DialogOptions } from '@ngbase/adk/portal';
11
- import { createHostAnimation, fadeAnimation } from '@ngbase/adk/utils';
12
-
13
- @Component({
14
- selector: '<%= name %>-drawer',
15
- template: `
16
- <div class="pointer-events-none flex h-full flex-col justify-end">
17
- <div
18
- class="pointer-events-auto flex max-h-[90vh] flex-col overflow-hidden rounded-tl-2xl rounded-tr-2xl border-t bg-foreground p-4 shadow-2xl"
19
- [@bottomAnimation]
20
- >
21
- <button class="mx-auto h-2 w-20 rounded-full bg-muted"></button>
22
- @if (!isHideHeader) {
23
- <div class="flex h-8 items-center">
24
- <h2 class="flex-1 font-bold">{{ options.title }}</h2>
25
- <!-- <button <%= name %>Button (click)="close()" class="mr-1"></button> -->
26
- </div>
27
- }
28
- <div class="h-full overflow-auto">
29
- <ng-container #myDialog />
30
- </div>
31
- </div>
32
- </div>
33
- @if (backdropColor) {
34
- <div
35
- class="absolute top-0 -z-10 h-full w-full bg-black bg-opacity-30"
36
- [@fadeAnimation]
37
- (click)="close()"
38
- ></div>
39
- }
40
- `,
41
- host: {
42
- class: 'fixed block top-0 bottom-0 left-0 right-0 overflow-hidden z-p',
43
- '[@parentAnimation]': '',
44
- '(@parentAnimation.done)': 'animationDone()',
45
- },
46
- hostDirectives: [FocusTrap],
47
- changeDetection: ChangeDetectionStrategy.OnPush,
48
- animations: [
49
- createHostAnimation(['@bottomAnimation', '@fadeAnimation']),
50
- trigger('bottomAnimation', [
51
- state('1', style({ transform: 'none' })),
52
- state('void', style({ transform: 'translate3d(0, 100%, 0)' })),
53
- state('0', style({ transform: 'translate3d(0, 100%, 0)' })),
54
- transition('* => *', animate('200ms ease')),
55
- ]),
56
- fadeAnimation('200ms'),
57
- ],
58
- })
59
- export class DrawerContainer extends BaseDialog {
60
- myDialog = viewChild('myDialog', { read: ViewContainerRef });
61
- backdropColor = true;
62
- options!: DialogOptions;
63
- classNames = '';
64
- isHideHeader = false;
65
-
66
- constructor() {
67
- super();
68
- afterNextRender(() => {
69
- this._afterViewSource.next(this.myDialog()!);
70
- });
71
- }
72
-
73
- override setOptions(options: DialogOptions): void {
74
- this.options = options;
75
- this.classNames = this.options.classNames?.join(' ') || '';
76
- this.isHideHeader = this.options.header || false;
77
- this.backdropColor = this.options.backdropColor || true;
78
- }
79
- }
80
-
81
- export function drawerPortal() {
82
- const NAME = 'sheet';
83
- const base = basePortal(NAME, DrawerContainer);
84
-
85
- function open<T>(component: DialogInput<T>, opt?: DialogOptions) {
86
- const { diaRef } = base.open(
87
- component,
88
- (comp, options) => {
89
- comp.instance.setOptions(options);
90
- },
91
- opt,
92
- );
93
-
94
- const { afterClosed } = diaRef;
95
- return { afterClosed };
96
- }
97
-
98
- function closeAll() {
99
- base.closeAll();
100
- }
101
- return { open, closeAll };
102
- }
103
-
104
- export type Drawer = ReturnType<typeof drawerPortal>;
@@ -1,5 +0,0 @@
1
- /*
2
- * Public API Surface of drawer
3
- */
4
-
5
- export * from './drawer';
@@ -1,111 +0,0 @@
1
- import {
2
- ChangeDetectionStrategy,
3
- Component,
4
- Directive,
5
- effect,
6
- ElementRef,
7
- inject,
8
- viewChild,
9
- } from '@angular/core';
10
- import {
11
- InputBase,
12
- NgbFormField,
13
- NgbInputError,
14
- NgbLabel,
15
- toggleDiv,
16
- } from '@ngbase/adk/form-field';
17
- import { InputStyle } from './input-style.directive';
18
- import { NgbSelectTarget } from '@ngbase/adk/select';
19
-
20
- @Component({
21
- selector: '<%= name %>-form-field, [<%= name %>FormField]',
22
- changeDetection: ChangeDetectionStrategy.OnPush,
23
- hostDirectives: [NgbFormField, NgbSelectTarget],
24
- imports: [InputStyle],
25
- template: `
26
- <ng-content select="[<%= name %>Label]" />
27
- <ng-content select="[<%= name %>Description]" />
28
- <div class="mt-1 flex items-center" #target <%= name %>InputStyle>
29
- <ng-content select="[<%= name %>InputPrefix]" />
30
- <ng-content />
31
- <ng-content select="[<%= name %>InputSuffix]" />
32
- </div>
33
- <ng-content select="[<%= name %>Error]" />
34
- `,
35
- host: {
36
- class: 'inline-flex flex-col font-medium gap-1',
37
- },
38
- })
39
- export class FormField {
40
- readonly selectTarget = inject(NgbSelectTarget);
41
- readonly target = viewChild.required<ElementRef<HTMLDivElement>>('target');
42
- private _ = effect(() => {
43
- this.selectTarget.target.set(this.target().nativeElement);
44
- });
45
- }
46
-
47
- @Directive({
48
- selector: '[<%= name %>Input]',
49
- hostDirectives: [{ directive: InputBase, inputs: ['value'] }],
50
- host: {
51
- class: 'focus:outline-none',
52
- '[class.border-red-500]': 'formField?.hasErrors()',
53
- },
54
- })
55
- export class Input<T = unknown> {
56
- readonly formField = inject(NgbFormField, { optional: true });
57
- }
58
-
59
- @Component({
60
- selector: '[<%= name %>Label]',
61
- changeDetection: ChangeDetectionStrategy.OnPush,
62
- hostDirectives: [NgbLabel],
63
- template: `<ng-content />`,
64
- host: {
65
- class: 'block font-medium mx-0.5',
66
- },
67
- })
68
- export class Label {}
69
-
70
- @Directive({
71
- selector: '[<%= name %>Description]',
72
- host: {
73
- class: 'text-sm text-muted',
74
- },
75
- })
76
- export class Description {}
77
-
78
- @Directive({
79
- selector: '[<%= name %>InputPrefix]',
80
- host: {
81
- class: 'mr-2.5',
82
- },
83
- })
84
- export class InputPrefix {}
85
-
86
- @Directive({
87
- selector: '[<%= name %>InputSuffix]',
88
- host: {
89
- class: 'ml-2.5',
90
- },
91
- })
92
- export class InputSuffix {}
93
-
94
- @Component({
95
- selector: '[<%= name %>Error]',
96
- hostDirectives: [{ directive: NgbInputError, inputs: ['ngbError: <%= name %>Error'] }],
97
- template: `<ng-content />`,
98
- host: {
99
- class: 'text-red-500 mx-0.5',
100
- '[@toggleDiv]': 'isInvalid() ? "visible" : "hidden"',
101
- },
102
- animations: [toggleDiv],
103
- })
104
- export class InputError {
105
- readonly error = inject(NgbInputError);
106
- readonly isInvalid = this.error.isInvalid;
107
-
108
- constructor() {
109
- this.error.animate.set(true);
110
- }
111
- }
@@ -1,6 +0,0 @@
1
- /*
2
- * Public API Surface of input
3
- */
4
-
5
- export * from './form-field';
6
- export * from './input-style.directive';
@@ -1,11 +0,0 @@
1
- import { Directive } from '@angular/core';
2
- import { ɵFocusStyle as FocusStyle } from '<%= basepath %>/checkbox';
3
-
4
- @Directive({
5
- selector: '[<%= name %>InputStyle]',
6
- hostDirectives: [{ directive: FocusStyle, inputs: ['unfocus'] }],
7
- host: {
8
- class: 'inline-block rounded-lg bg-foreground px-2.5 py-2 border font-normal min-h-10',
9
- },
10
- })
11
- export class InputStyle {}
@@ -1,13 +0,0 @@
1
- import { Directive } from '@angular/core';
2
- import { NgbHoverCard } from '@ngbase/adk/hover-card';
3
-
4
- @Directive({
5
- selector: '[<%= name %>HoverCard]',
6
- hostDirectives: [
7
- {
8
- directive: NgbHoverCard,
9
- inputs: ['ngbHoverCard: <%= name %>HoverCard', 'options', 'delay'],
10
- },
11
- ],
12
- })
13
- export class HoverCard<T = any> {}
@@ -1,5 +0,0 @@
1
- /*
2
- * Public API Surface of hover-card
3
- */
4
-
5
- export * from './hover-card';
@@ -1,16 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, input } from '@angular/core';
2
- import { IconType, NgIconComponent } from '@ng-icons/core';
3
-
4
- @Component({
5
- selector: '<%= name %>-icon',
6
- imports: [NgIconComponent],
7
- changeDetection: ChangeDetectionStrategy.OnPush,
8
- template: `<ng-icon [name]="name()" [size]="size()"></ng-icon>`,
9
- host: {
10
- class: 'inline-flex items-center justify-center',
11
- },
12
- })
13
- export class Icon {
14
- readonly name = input.required<IconType>();
15
- readonly size = input<string>('1rem');
16
- }
@@ -1 +0,0 @@
1
- export * from './icon';
@@ -1 +0,0 @@
1
- export * from './inline-edit';
@@ -1,24 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import {
3
- NgbInlineEdit,
4
- NgbInlineInput,
5
- NgbInlineValue,
6
- provideInlineEdit,
7
- } from '@ngbase/adk/inline-edit';
8
-
9
- @Component({
10
- selector: '<%= name %>-inline-edit',
11
- imports: [NgbInlineInput, NgbInlineValue],
12
- providers: [provideInlineEdit(), { provide: NgbInlineEdit, useExisting: InlineEdit }],
13
- template: `
14
- @if (isEditing()) {
15
- <input
16
- ngbInlineInput
17
- class="rounded p-1 drop-shadow-md focus:border-transparent focus:outline-none"
18
- />
19
- } @else {
20
- <div ngbInlineValue class="cursor-pointer p-1">{{ localValue() }}</div>
21
- }
22
- `,
23
- })
24
- export class InlineEdit extends NgbInlineEdit {}
@@ -1,5 +0,0 @@
1
- /*
2
- * Public API Surface of keys
3
- */
4
-
5
- export * from './key';
@@ -1,35 +0,0 @@
1
- import {
2
- ChangeDetectionStrategy,
3
- Component,
4
- computed,
5
- effect,
6
- ElementRef,
7
- inject,
8
- Injector,
9
- input,
10
- } from '@angular/core';
11
- import { keyMap } from '@ngbase/adk/keys';
12
-
13
- @Component({
14
- selector: '<%= name %>-key, [<%= name %>Key]',
15
- changeDetection: ChangeDetectionStrategy.OnPush,
16
- template: `{{ content() }}`,
17
- host: {
18
- class: 'ml-auto text-xs tracking-widest opacity-60 text-muted',
19
- },
20
- })
21
- export class Key {
22
- readonly el = inject<ElementRef<HTMLButtonElement>>(ElementRef);
23
-
24
- readonly <%= name %>Key = input.required<string>();
25
- readonly content = computed(() => {
26
- return this.<%= name %>Key().replace(/\+/g, ' ');
27
- });
28
-
29
- constructor() {
30
- const injector = inject(Injector);
31
- effect(cleanup => {
32
- keyMap(this.<%= name %>Key(), () => this.el.nativeElement.click(), { cleanup, injector });
33
- });
34
- }
35
- }