@ngbase/adk 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. package/README.md +1 -1
  2. package/fesm2022/ngbase-adk-autocomplete.mjs +2 -2
  3. package/fesm2022/ngbase-adk-autocomplete.mjs.map +1 -1
  4. package/fesm2022/ngbase-adk-datepicker.mjs +18 -18
  5. package/fesm2022/ngbase-adk-datepicker.mjs.map +1 -1
  6. package/fesm2022/ngbase-adk-dialog.mjs +6 -6
  7. package/fesm2022/ngbase-adk-dialog.mjs.map +1 -1
  8. package/fesm2022/ngbase-adk-pagination.mjs +18 -18
  9. package/fesm2022/ngbase-adk-pagination.mjs.map +1 -1
  10. package/fesm2022/ngbase-adk-popover.mjs +2 -2
  11. package/fesm2022/ngbase-adk-popover.mjs.map +1 -1
  12. package/fesm2022/ngbase-adk-radio.mjs +2 -2
  13. package/fesm2022/ngbase-adk-radio.mjs.map +1 -1
  14. package/fesm2022/ngbase-adk-resizable.mjs +4 -4
  15. package/fesm2022/ngbase-adk-resizable.mjs.map +1 -1
  16. package/fesm2022/ngbase-adk-select.mjs +4 -4
  17. package/fesm2022/ngbase-adk-select.mjs.map +1 -1
  18. package/fesm2022/ngbase-adk-sonner.mjs +4 -4
  19. package/fesm2022/ngbase-adk-sonner.mjs.map +1 -1
  20. package/fesm2022/ngbase-adk-stepper.mjs +2 -2
  21. package/fesm2022/ngbase-adk-stepper.mjs.map +1 -1
  22. package/package.json +26 -25
  23. package/schematics/collection.json +15 -0
  24. package/schematics/components/files/accordion/accordion.ts.template +55 -0
  25. package/schematics/components/files/accordion/index.ts.template +5 -0
  26. package/schematics/components/files/alert/alert.ts.template +62 -0
  27. package/schematics/components/files/alert/index.ts.template +1 -0
  28. package/schematics/components/files/autocomplete/autocomplete.ts.template +48 -0
  29. package/schematics/components/files/autocomplete/index.ts.template +5 -0
  30. package/schematics/components/files/avatar/avatar.ts.template +31 -0
  31. package/schematics/components/files/avatar/index.ts.template +1 -0
  32. package/schematics/components/files/badge/badge.ts.template +11 -0
  33. package/schematics/components/files/badge/index.ts.template +1 -0
  34. package/schematics/components/files/breadcrumb/breadcrumb.ts.template +49 -0
  35. package/schematics/components/files/breadcrumb/index.ts.template +1 -0
  36. package/schematics/components/files/button/button.ts.template +29 -0
  37. package/schematics/components/files/button/index.ts.template +5 -0
  38. package/schematics/components/files/card/card.ts.template +11 -0
  39. package/schematics/components/files/card/index.ts.template +5 -0
  40. package/schematics/components/files/carousel/carousel.ts.template +44 -0
  41. package/schematics/components/files/carousel/index.ts.template +1 -0
  42. package/schematics/components/files/checkbox/checkbox.ts.template +46 -0
  43. package/schematics/components/files/checkbox/focus-style.directive.ts.template +12 -0
  44. package/schematics/components/files/checkbox/index.ts.template +6 -0
  45. package/schematics/components/files/chip/chip.ts.template +36 -0
  46. package/schematics/components/files/chip/index.ts.template +1 -0
  47. package/schematics/components/files/color-picker/color-picker.ts.template +104 -0
  48. package/schematics/components/files/color-picker/index.ts.template +5 -0
  49. package/schematics/components/files/command/command.ts.template +82 -0
  50. package/schematics/components/files/command/index.ts.template +1 -0
  51. package/schematics/components/files/datepicker/calendar.ts.template +117 -0
  52. package/schematics/components/files/datepicker/datepicker-trigger.ts.template +27 -0
  53. package/schematics/components/files/datepicker/datepicker.ts.template +28 -0
  54. package/schematics/components/files/datepicker/index.ts.template +3 -0
  55. package/schematics/components/files/datepicker/time.ts.template +46 -0
  56. package/schematics/components/files/dialog/dialog.ts.template +89 -0
  57. package/schematics/components/files/dialog/index.ts.template +5 -0
  58. package/schematics/components/files/drawer/drawer.ts.template +104 -0
  59. package/schematics/components/files/drawer/index.ts.template +5 -0
  60. package/schematics/components/files/form-field/index.ts.template +7 -0
  61. package/schematics/components/files/form-field/input-style.directive.ts.template +11 -0
  62. package/schematics/components/files/form-field/input.ts.template +100 -0
  63. package/schematics/components/files/form-field/otp.ts.template +37 -0
  64. package/schematics/components/files/hover-card/hover-card.ts.template +13 -0
  65. package/schematics/components/files/hover-card/index.ts.template +5 -0
  66. package/schematics/components/files/icon/icon.ts.template +16 -0
  67. package/schematics/components/files/icon/index.ts.template +1 -0
  68. package/schematics/components/files/inline-edit/index.ts.template +1 -0
  69. package/schematics/components/files/inline-edit/inline-edit.ts.template +24 -0
  70. package/schematics/components/files/keys/index.ts.template +5 -0
  71. package/schematics/components/files/keys/key.ts.template +35 -0
  72. package/schematics/components/files/list/index.ts.template +5 -0
  73. package/schematics/components/files/list/list.ts.template +28 -0
  74. package/schematics/components/files/mask/index.ts.template +1 -0
  75. package/schematics/components/files/mask/mask.ts.template +8 -0
  76. package/schematics/components/files/menu/context-menu.ts.template +14 -0
  77. package/schematics/components/files/menu/index.ts.template +8 -0
  78. package/schematics/components/files/menu/mention.ts.template +14 -0
  79. package/schematics/components/files/menu/menu.ts.template +37 -0
  80. package/schematics/components/files/menu/navigation-menu.ts.template +8 -0
  81. package/schematics/components/files/pagination/index.ts.template +1 -0
  82. package/schematics/components/files/pagination/pagination.ts.template +71 -0
  83. package/schematics/components/files/picasa/index.ts.template +1 -0
  84. package/schematics/components/files/picasa/picasa-base.component.ts.template +80 -0
  85. package/schematics/components/files/picasa/picasa.component.ts.template +57 -0
  86. package/schematics/components/files/picasa/picasa.directive.ts.template +41 -0
  87. package/schematics/components/files/picasa/picase.service.ts.template +24 -0
  88. package/schematics/components/files/popover/index.ts.template +1 -0
  89. package/schematics/components/files/popover/popover.ts.template +87 -0
  90. package/schematics/components/files/progress/index.ts.template +5 -0
  91. package/schematics/components/files/progress/progress.ts.template +14 -0
  92. package/schematics/components/files/radio/index.ts.template +5 -0
  93. package/schematics/components/files/radio/radio.ts.template +40 -0
  94. package/schematics/components/files/resizable/index.ts.template +5 -0
  95. package/schematics/components/files/resizable/resizable.ts.template +56 -0
  96. package/schematics/components/files/scroll-area/index.ts.template +1 -0
  97. package/schematics/components/files/scroll-area/scroll-area.ts.template +40 -0
  98. package/schematics/components/files/select/index.ts.template +8 -0
  99. package/schematics/components/files/select/list-selection.ts.template +15 -0
  100. package/schematics/components/files/select/option.ts.template +34 -0
  101. package/schematics/components/files/select/select-input.ts.template +21 -0
  102. package/schematics/components/files/select/select.ts.template +96 -0
  103. package/schematics/components/files/selectable/index.ts.template +1 -0
  104. package/schematics/components/files/selectable/selectable.ts.template +34 -0
  105. package/schematics/components/files/separator/index.ts.template +5 -0
  106. package/schematics/components/files/separator/separator.ts.template +19 -0
  107. package/schematics/components/files/sheet/index.ts.template +5 -0
  108. package/schematics/components/files/sheet/sheet.ts.template +134 -0
  109. package/schematics/components/files/sidenav/index.ts.template +1 -0
  110. package/schematics/components/files/sidenav/sidenav.ts.template +48 -0
  111. package/schematics/components/files/skeleton/index.ts.template +1 -0
  112. package/schematics/components/files/skeleton/skeleton.ts.template +15 -0
  113. package/schematics/components/files/slider/index.ts.template +5 -0
  114. package/schematics/components/files/slider/slider.ts.template +42 -0
  115. package/schematics/components/files/sonner/index.ts.template +5 -0
  116. package/schematics/components/files/sonner/sonner.ts.template +58 -0
  117. package/schematics/components/files/spinner/index.ts.template +1 -0
  118. package/schematics/components/files/spinner/spinner.ts.template +79 -0
  119. package/schematics/components/files/stepper/index.ts.template +1 -0
  120. package/schematics/components/files/stepper/stepper.ts.template +88 -0
  121. package/schematics/components/files/switch/index.ts.template +5 -0
  122. package/schematics/components/files/switch/switch.ts.template +29 -0
  123. package/schematics/components/files/table/body-cell.ts.template +19 -0
  124. package/schematics/components/files/table/body-row.ts.template +21 -0
  125. package/schematics/components/files/table/column.ts.template +8 -0
  126. package/schematics/components/files/table/head-cell.ts.template +19 -0
  127. package/schematics/components/files/table/head-row.ts.template +27 -0
  128. package/schematics/components/files/table/index.ts.template +26 -0
  129. package/schematics/components/files/table/table.ts.template +20 -0
  130. package/schematics/components/files/tabs/index.ts.template +5 -0
  131. package/schematics/components/files/tabs/tab.ts.template +89 -0
  132. package/schematics/components/files/theme/index.ts.template +2 -0
  133. package/schematics/components/files/theme/theme-button.component.ts.template +26 -0
  134. package/schematics/components/files/theme/theme.component.ts.template +165 -0
  135. package/schematics/components/files/theme/theme.service.ts.template +44 -0
  136. package/schematics/components/files/toggle/index.ts.template +5 -0
  137. package/schematics/components/files/toggle/toggle.ts.template +13 -0
  138. package/schematics/components/files/toggle-group/index.ts.template +5 -0
  139. package/schematics/components/files/toggle-group/toggle-group.ts.template +25 -0
  140. package/schematics/components/files/tooltip/index.ts.template +5 -0
  141. package/schematics/components/files/tooltip/tooltip.ts.template +40 -0
  142. package/schematics/components/files/tour/index.ts.template +3 -0
  143. package/schematics/components/files/tour/tour-step.ts.template +8 -0
  144. package/schematics/components/files/tour/tour.service.ts.template +7 -0
  145. package/schematics/components/files/tour/tour.ts.template +8 -0
  146. package/schematics/components/files/tree/index.ts.template +1 -0
  147. package/schematics/components/files/tree/tree.ts.template +66 -0
  148. package/schematics/components/index.d.ts +3 -0
  149. package/schematics/components/index.js +17 -0
  150. package/schematics/components/index.js.map +1 -0
  151. package/schematics/components/index.ts +29 -0
  152. package/schematics/components/schema.d.ts +6 -0
  153. package/schematics/components/schema.js +3 -0
  154. package/schematics/components/schema.js.map +1 -0
  155. package/schematics/components/schema.json +137 -0
  156. package/schematics/components/schema.ts +6 -0
package/README.md CHANGED
@@ -13,7 +13,7 @@ npm install @ngbase/adk
13
13
  or
14
14
 
15
15
  ```sh
16
- pnpm add @ngbase/adk
16
+ pnpm install @ngbase/adk
17
17
  ```
18
18
 
19
19
  ## 📖 Documentation
@@ -101,7 +101,7 @@ class NgbAutocomplete extends SelectBase {
101
101
  </li>
102
102
  </ul>
103
103
  <ng-template #optionsTemplate>
104
- <div #optionsGroup ngbSelectOptionGroup class="p-b">
104
+ <div #optionsGroup ngbSelectOptionGroup class="p-1">
105
105
  <ng-content />
106
106
  </div>
107
107
  </ng-template>
@@ -123,7 +123,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
123
123
  </li>
124
124
  </ul>
125
125
  <ng-template #optionsTemplate>
126
- <div #optionsGroup ngbSelectOptionGroup class="p-b">
126
+ <div #optionsGroup ngbSelectOptionGroup class="p-1">
127
127
  <ng-content />
128
128
  </div>
129
129
  </ng-template>
@@ -1 +1 @@
1
- {"version":3,"file":"ngbase-adk-autocomplete.mjs","sources":["../../../projects/adk/autocomplete/autocomplete-input.ts","../../../projects/adk/autocomplete/autocomplete.ts","../../../projects/adk/autocomplete/public-api.ts","../../../projects/adk/autocomplete/ngbase-adk-autocomplete.ts"],"sourcesContent":["import {\n Directive,\n ElementRef,\n afterNextRender,\n computed,\n inject,\n input,\n output,\n} from '@angular/core';\nimport { InputBase } from '@ngbase/adk/form-field';\nimport { NgbAutocomplete } from './autocomplete';\n\n@Directive({\n selector: '[ngbAutocompleteInput]',\n exportAs: 'ngbAutocompleteInput',\n hostDirectives: [{ directive: InputBase, inputs: ['value'], outputs: ['valueChange'] }],\n host: {\n '(focus)': 'onFocus()',\n '(blur)': 'close()',\n '(input)': 'updateSearch($event.target.value)',\n autocomplete: 'off',\n },\n})\nexport class NgbAutocompleteInput<T> {\n // Dependencies\n readonly autoComplete = inject(NgbAutocomplete);\n readonly input = inject(InputBase);\n readonly el = inject<ElementRef<HTMLInputElement>>(ElementRef);\n\n // Inputs\n readonly ngbAutocompleteInput = output<string>();\n readonly options = input<T[]>([]);\n readonly filterFn = input<(query: string, value: T, values: T[]) => boolean>();\n\n // State\n readonly filteredOptions = computed(() => {\n const fn = this.filterFn();\n const options = this.options();\n const search = this.input.value();\n const values = search ? options.filter(v => fn!(search, v, options)) : options;\n return values;\n });\n\n constructor() {\n afterNextRender(() => {\n this.el.nativeElement.addEventListener('keydown', event => {\n const value = (event.target as any).value;\n if (event.key === 'Backspace' && value === '') {\n this.autoComplete.popValue();\n }\n });\n // if (this.autoComplete.multiple()) return;\n // this.autoComplete.events.subscribe(event => {\n // if (event === 'close') {\n // const value = this.autoComplete.cValue();\n // this.el.nativeElement.value = value;\n // }\n // });\n });\n }\n\n onFocus() {\n this.autoComplete.open();\n }\n\n close() {\n // this.autoComplete.popClose();\n }\n\n updateValue(value: string) {\n this.el.nativeElement.value = value;\n }\n\n updateSearch(value: string) {\n this.input.setValue(value);\n this.ngbAutocompleteInput.emit(value);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n contentChild,\n contentChildren,\n effect,\n Type,\n} from '@angular/core';\nimport { NgbChip } from '@ngbase/adk/chip';\nimport { NgbSelectOptionGroup, SelectBase } from '@ngbase/adk/select';\nimport { provideValueAccessor } from '@ngbase/adk/utils';\nimport { NgbAutocompleteInput } from './autocomplete-input';\n\n@Component({\n selector: '[ngbAutocomplete]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [_provide(NgbAutocomplete)],\n imports: [NgbSelectOptionGroup],\n template: `\n <ul #container (click)=\"prevent($event)\">\n <ng-content select=\"ngb-chip, ngb-chip-group\" />\n\n <li (click)=\"open()\">\n <ng-content select=\"input\" />\n </li>\n </ul>\n <ng-template #optionsTemplate>\n <div #optionsGroup ngbSelectOptionGroup class=\"p-b\">\n <ng-content />\n </div>\n </ng-template>\n `,\n})\nexport class NgbAutocomplete<T> extends SelectBase<T> {\n searchInput = contentChild(NgbAutocompleteInput);\n chips = contentChildren(NgbChip);\n\n constructor() {\n super(false);\n effect(() => {\n if (this.status() !== 'opened') this.updateInputValue();\n });\n }\n\n prevent(ev: MouseEvent) {\n ev.stopPropagation();\n }\n\n private updateInputValue() {\n const searchInput = this.searchInput();\n if (!this.chips()?.length && searchInput) {\n searchInput.ngbAutocompleteInput.emit('');\n searchInput.updateValue(this.cValue());\n }\n }\n}\n\nfunction _provide<T>(autocomplete: Type<NgbAutocomplete<T>>) {\n return [{ provide: SelectBase, useExisting: autocomplete }, provideValueAccessor(autocomplete)];\n}\n\nexport function provideAutocomplete<T>(autocomplete: Type<NgbAutocomplete<T>>) {\n const deps = [_provide(autocomplete), { provide: NgbAutocomplete, useExisting: autocomplete }];\n return deps;\n}\n","/*\n * Public API Surface of autocomplete\n */\n\nexport * from './autocomplete';\nexport * from './autocomplete-input';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;MAuBa,oBAAoB,CAAA;AAoB/B,IAAA,WAAA,GAAA;;AAlBS,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,eAAe,CAAC;AACtC,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC;AACzB,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAA+B,UAAU,CAAC;;QAGrD,IAAoB,CAAA,oBAAA,GAAG,MAAM,EAAU;AACvC,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAM,EAAE,CAAC;QACxB,IAAQ,CAAA,QAAA,GAAG,KAAK,EAAqD;;AAGrE,QAAA,IAAA,CAAA,eAAe,GAAG,QAAQ,CAAC,MAAK;AACvC,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC1B,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;YACjC,MAAM,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAG,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,OAAO;AAC9E,YAAA,OAAO,MAAM;AACf,SAAC,CAAC;QAGA,eAAe,CAAC,MAAK;YACnB,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,IAAG;AACxD,gBAAA,MAAM,KAAK,GAAI,KAAK,CAAC,MAAc,CAAC,KAAK;gBACzC,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,IAAI,KAAK,KAAK,EAAE,EAAE;AAC7C,oBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;;AAEhC,aAAC,CAAC;;;;;;;;AAQJ,SAAC,CAAC;;IAGJ,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;;IAG1B,KAAK,GAAA;;;AAIL,IAAA,WAAW,CAAC,KAAa,EAAA;QACvB,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,GAAG,KAAK;;AAGrC,IAAA,YAAY,CAAC,KAAa,EAAA;AACxB,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC;;8GApD5B,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,KAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,mCAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAXhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC;AACvF,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,QAAQ,EAAE,SAAS;AACnB,wBAAA,SAAS,EAAE,mCAAmC;AAC9C,wBAAA,YAAY,EAAE,KAAK;AACpB,qBAAA;AACF,iBAAA;;;ACWK,MAAO,eAAmB,SAAQ,UAAa,CAAA;AAInD,IAAA,WAAA,GAAA;QACE,KAAK,CAAC,KAAK,CAAC;AAJd,QAAA,IAAA,CAAA,WAAW,GAAG,YAAY,CAAC,oBAAoB,CAAC;AAChD,QAAA,IAAA,CAAA,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC;QAI9B,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,IAAI,CAAC,MAAM,EAAE,KAAK,QAAQ;gBAAE,IAAI,CAAC,gBAAgB,EAAE;AACzD,SAAC,CAAC;;AAGJ,IAAA,OAAO,CAAC,EAAc,EAAA;QACpB,EAAE,CAAC,eAAe,EAAE;;IAGd,gBAAgB,GAAA;AACtB,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;QACtC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM,IAAI,WAAW,EAAE;AACxC,YAAA,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;;;8GAnB/B,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,SAAA,EAjBf,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,EAkBX,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,oBAAoB,EACvB,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAO,EAjBrB,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;AAaT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAdS,oBAAoB,EAAA,QAAA,EAAA,wBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAgBnB,eAAe,EAAA,UAAA,EAAA,CAAA;kBApB3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;oBAC7B,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,SAAS,EAAE,CAAC,QAAQ,CAAA,eAAA,CAAiB,CAAC;oBACtC,OAAO,EAAE,CAAC,oBAAoB,CAAC;AAC/B,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;AAaT,EAAA,CAAA;AACF,iBAAA;;AAyBD,SAAS,QAAQ,CAAI,YAAsC,EAAA;AACzD,IAAA,OAAO,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,EAAE,oBAAoB,CAAC,YAAY,CAAC,CAAC;AACjG;AAEM,SAAU,mBAAmB,CAAI,YAAsC,EAAA;AAC3E,IAAA,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;AAC9F,IAAA,OAAO,IAAI;AACb;;AChEA;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"ngbase-adk-autocomplete.mjs","sources":["../../../projects/adk/autocomplete/autocomplete-input.ts","../../../projects/adk/autocomplete/autocomplete.ts","../../../projects/adk/autocomplete/public-api.ts","../../../projects/adk/autocomplete/ngbase-adk-autocomplete.ts"],"sourcesContent":["import {\n Directive,\n ElementRef,\n afterNextRender,\n computed,\n inject,\n input,\n output,\n} from '@angular/core';\nimport { InputBase } from '@ngbase/adk/form-field';\nimport { NgbAutocomplete } from './autocomplete';\n\n@Directive({\n selector: '[ngbAutocompleteInput]',\n exportAs: 'ngbAutocompleteInput',\n hostDirectives: [{ directive: InputBase, inputs: ['value'], outputs: ['valueChange'] }],\n host: {\n '(focus)': 'onFocus()',\n '(blur)': 'close()',\n '(input)': 'updateSearch($event.target.value)',\n autocomplete: 'off',\n },\n})\nexport class NgbAutocompleteInput<T> {\n // Dependencies\n readonly autoComplete = inject(NgbAutocomplete);\n readonly input = inject(InputBase);\n readonly el = inject<ElementRef<HTMLInputElement>>(ElementRef);\n\n // Inputs\n readonly ngbAutocompleteInput = output<string>();\n readonly options = input<T[]>([]);\n readonly filterFn = input<(query: string, value: T, values: T[]) => boolean>();\n\n // State\n readonly filteredOptions = computed(() => {\n const fn = this.filterFn();\n const options = this.options();\n const search = this.input.value();\n const values = search ? options.filter(v => fn!(search, v, options)) : options;\n return values;\n });\n\n constructor() {\n afterNextRender(() => {\n this.el.nativeElement.addEventListener('keydown', event => {\n const value = (event.target as any).value;\n if (event.key === 'Backspace' && value === '') {\n this.autoComplete.popValue();\n }\n });\n // if (this.autoComplete.multiple()) return;\n // this.autoComplete.events.subscribe(event => {\n // if (event === 'close') {\n // const value = this.autoComplete.cValue();\n // this.el.nativeElement.value = value;\n // }\n // });\n });\n }\n\n onFocus() {\n this.autoComplete.open();\n }\n\n close() {\n // this.autoComplete.popClose();\n }\n\n updateValue(value: string) {\n this.el.nativeElement.value = value;\n }\n\n updateSearch(value: string) {\n this.input.setValue(value);\n this.ngbAutocompleteInput.emit(value);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n contentChild,\n contentChildren,\n effect,\n Type,\n} from '@angular/core';\nimport { NgbChip } from '@ngbase/adk/chip';\nimport { NgbSelectOptionGroup, SelectBase } from '@ngbase/adk/select';\nimport { provideValueAccessor } from '@ngbase/adk/utils';\nimport { NgbAutocompleteInput } from './autocomplete-input';\n\n@Component({\n selector: '[ngbAutocomplete]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [_provide(NgbAutocomplete)],\n imports: [NgbSelectOptionGroup],\n template: `\n <ul #container (click)=\"prevent($event)\">\n <ng-content select=\"ngb-chip, ngb-chip-group\" />\n\n <li (click)=\"open()\">\n <ng-content select=\"input\" />\n </li>\n </ul>\n <ng-template #optionsTemplate>\n <div #optionsGroup ngbSelectOptionGroup class=\"p-1\">\n <ng-content />\n </div>\n </ng-template>\n `,\n})\nexport class NgbAutocomplete<T> extends SelectBase<T> {\n searchInput = contentChild(NgbAutocompleteInput);\n chips = contentChildren(NgbChip);\n\n constructor() {\n super(false);\n effect(() => {\n if (this.status() !== 'opened') this.updateInputValue();\n });\n }\n\n prevent(ev: MouseEvent) {\n ev.stopPropagation();\n }\n\n private updateInputValue() {\n const searchInput = this.searchInput();\n if (!this.chips()?.length && searchInput) {\n searchInput.ngbAutocompleteInput.emit('');\n searchInput.updateValue(this.cValue());\n }\n }\n}\n\nfunction _provide<T>(autocomplete: Type<NgbAutocomplete<T>>) {\n return [{ provide: SelectBase, useExisting: autocomplete }, provideValueAccessor(autocomplete)];\n}\n\nexport function provideAutocomplete<T>(autocomplete: Type<NgbAutocomplete<T>>) {\n const deps = [_provide(autocomplete), { provide: NgbAutocomplete, useExisting: autocomplete }];\n return deps;\n}\n","/*\n * Public API Surface of autocomplete\n */\n\nexport * from './autocomplete';\nexport * from './autocomplete-input';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -398,7 +398,7 @@ class NgbDatePicker {
398
398
  }
399
399
  </div>
400
400
  @if (template()) {
401
- <div class="px-b2 pb-b2">
401
+ <div class="px-2 pb-2">
402
402
  <ng-container *ngTemplateOutlet="template()" />
403
403
  </div>
404
404
  }
@@ -417,7 +417,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
417
417
  }
418
418
  </div>
419
419
  @if (template()) {
420
- <div class="px-b2 pb-b2">
420
+ <div class="px-2 pb-2">
421
421
  <ng-container *ngTemplateOutlet="template()" />
422
422
  </div>
423
423
  }
@@ -521,14 +521,14 @@ class NgbTimePicker {
521
521
  this.onTouched = fn;
522
522
  }
523
523
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbTimePicker, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
524
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.0", type: NgbTimePicker, isStandalone: true, selector: "[ngbTime]", inputs: { is24: { classPropertyName: "is24", publicName: "is24", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, host: { classAttribute: "inline-flex gap-b items-center justify-center" }, providers: [_provide(NgbTimePicker)], ngImport: i0, template: `
524
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.0", type: NgbTimePicker, isStandalone: true, selector: "[ngbTime]", inputs: { is24: { classPropertyName: "is24", publicName: "is24", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, host: { classAttribute: "inline-flex gap-1 items-center justify-center" }, providers: [_provide(NgbTimePicker)], ngImport: i0, template: `
525
525
  <input ngbTimeInput="hours" [(value)]="hours" (valueChange)="updateValue()" />
526
526
  <span>:</span>
527
527
  <input ngbTimeInput="minutes" [(value)]="minutes" (valueChange)="updateValue()" />
528
528
  <span>:</span>
529
529
  <input ngbTimeInput="seconds" [(value)]="seconds" (valueChange)="updateValue()" />
530
530
  @if (!is24()) {
531
- <div class="ml-b flex gap-b2">
531
+ <div class="ml-1 flex gap-2">
532
532
  <button type="button" class="small" (click)="changeAm(true)">AM</button>
533
533
  <button type="button" class="small" (click)="changeAm(false)">PM</button>
534
534
  </div>
@@ -549,14 +549,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
549
549
  <span>:</span>
550
550
  <input ngbTimeInput="seconds" [(value)]="seconds" (valueChange)="updateValue()" />
551
551
  @if (!is24()) {
552
- <div class="ml-b flex gap-b2">
552
+ <div class="ml-1 flex gap-2">
553
553
  <button type="button" class="small" (click)="changeAm(true)">AM</button>
554
554
  <button type="button" class="small" (click)="changeAm(false)">PM</button>
555
555
  </div>
556
556
  }
557
557
  `,
558
558
  host: {
559
- class: 'inline-flex gap-b items-center justify-center',
559
+ class: 'inline-flex gap-1 items-center justify-center',
560
560
  },
561
561
  }]
562
562
  }], ctorParameters: () => [] });
@@ -953,7 +953,7 @@ class NgbCalendar {
953
953
  }
954
954
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbCalendar, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
955
955
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.0", type: NgbCalendar, isStandalone: true, selector: "ngb-calendar", inputs: { first: { classPropertyName: "first", publicName: "first", isSignal: true, isRequired: false, transformFunction: null }, last: { classPropertyName: "last", publicName: "last", isSignal: true, isRequired: false, transformFunction: null }, index: { classPropertyName: "index", publicName: "index", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "days", predicate: CalendarDayBtn, descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: `
956
- <div class="mb-b2 flex items-center justify-between">
956
+ <div class="mb-2 flex items-center justify-between">
957
957
  <button ngbCalendarBtn="left">{{ dir.isRtl() ? '>' : '<' }}</button>
958
958
  <button ngbCalendarTitle>{{ title() }}</button>
959
959
  <button ngbCalendarBtn="right">{{ dir.isRtl() ? '<' : '>' }}</button>
@@ -965,7 +965,7 @@ class NgbCalendar {
965
965
  <button
966
966
  [ngbCalYearBtn]="year"
967
967
  #yearBtn="ngbCalYearBtn"
968
- class="items-center justify-center rounded-md py-b2 h-9 w-[84px] {{
968
+ class="items-center justify-center rounded-md py-2 h-9 w-[84px] {{
969
969
  year.disabled ? 'cursor-default opacity-50' : 'hover:bg-muted-background'
970
970
  }}"
971
971
  [ngClass]="{
@@ -983,7 +983,7 @@ class NgbCalendar {
983
983
  <button
984
984
  [ngbCalMonthBtn]="month"
985
985
  #monthBtn="ngbCalMonthBtn"
986
- class="items-center justify-center rounded-md py-b2 h-9 w-[84px] {{
986
+ class="items-center justify-center rounded-md py-2 h-9 w-[84px] {{
987
987
  month.disabled ? 'cursor-default opacity-50' : 'hover:bg-muted-background'
988
988
  }}"
989
989
  [ngClass]="{
@@ -998,15 +998,15 @@ class NgbCalendar {
998
998
  } @else {
999
999
  <div class="day-names grid grid-cols-7">
1000
1000
  @for (dayName of dayNames; track dayName) {
1001
- <div class="p-b text-center text-muted">{{ dayName }}</div>
1001
+ <div class="p-1 text-center text-muted">{{ dayName }}</div>
1002
1002
  }
1003
1003
  </div>
1004
- <div class="grid grid-cols-7 gap-y-b2">
1004
+ <div class="grid grid-cols-7 gap-y-2">
1005
1005
  @for (day of getDaysArray(); track day.day + '-' + day.mon) {
1006
1006
  <button
1007
1007
  #days="ngbCalDayBtn"
1008
1008
  [ngbCalDayBtn]="day"
1009
- class="mx-auto flex h-b9 w-b9 items-center justify-center text-center {{
1009
+ class="mx-auto flex h-9 w-9 items-center justify-center text-center {{
1010
1010
  day.disabled ? 'cursor-default opacity-50' : 'hover:bg-muted-background'
1011
1011
  }}"
1012
1012
  [ngClass]="{
@@ -1041,7 +1041,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
1041
1041
  CalendarDayBtn,
1042
1042
  ],
1043
1043
  template: `
1044
- <div class="mb-b2 flex items-center justify-between">
1044
+ <div class="mb-2 flex items-center justify-between">
1045
1045
  <button ngbCalendarBtn="left">{{ dir.isRtl() ? '>' : '<' }}</button>
1046
1046
  <button ngbCalendarTitle>{{ title() }}</button>
1047
1047
  <button ngbCalendarBtn="right">{{ dir.isRtl() ? '<' : '>' }}</button>
@@ -1053,7 +1053,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
1053
1053
  <button
1054
1054
  [ngbCalYearBtn]="year"
1055
1055
  #yearBtn="ngbCalYearBtn"
1056
- class="items-center justify-center rounded-md py-b2 h-9 w-[84px] {{
1056
+ class="items-center justify-center rounded-md py-2 h-9 w-[84px] {{
1057
1057
  year.disabled ? 'cursor-default opacity-50' : 'hover:bg-muted-background'
1058
1058
  }}"
1059
1059
  [ngClass]="{
@@ -1071,7 +1071,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
1071
1071
  <button
1072
1072
  [ngbCalMonthBtn]="month"
1073
1073
  #monthBtn="ngbCalMonthBtn"
1074
- class="items-center justify-center rounded-md py-b2 h-9 w-[84px] {{
1074
+ class="items-center justify-center rounded-md py-2 h-9 w-[84px] {{
1075
1075
  month.disabled ? 'cursor-default opacity-50' : 'hover:bg-muted-background'
1076
1076
  }}"
1077
1077
  [ngClass]="{
@@ -1086,15 +1086,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
1086
1086
  } @else {
1087
1087
  <div class="day-names grid grid-cols-7">
1088
1088
  @for (dayName of dayNames; track dayName) {
1089
- <div class="p-b text-center text-muted">{{ dayName }}</div>
1089
+ <div class="p-1 text-center text-muted">{{ dayName }}</div>
1090
1090
  }
1091
1091
  </div>
1092
- <div class="grid grid-cols-7 gap-y-b2">
1092
+ <div class="grid grid-cols-7 gap-y-2">
1093
1093
  @for (day of getDaysArray(); track day.day + '-' + day.mon) {
1094
1094
  <button
1095
1095
  #days="ngbCalDayBtn"
1096
1096
  [ngbCalDayBtn]="day"
1097
- class="mx-auto flex h-b9 w-b9 items-center justify-center text-center {{
1097
+ class="mx-auto flex h-9 w-9 items-center justify-center text-center {{
1098
1098
  day.disabled ? 'cursor-default opacity-50' : 'hover:bg-muted-background'
1099
1099
  }}"
1100
1100
  [ngClass]="{
@@ -1 +1 @@
1
- {"version":3,"file":"ngbase-adk-datepicker.mjs","sources":["../../../projects/adk/datepicker/native-date-adapter.ts","../../../projects/adk/datepicker/datepicker-trigger.ts","../../../projects/adk/datepicker/datepicker.ts","../../../projects/adk/datepicker/time.ts","../../../projects/adk/datepicker/calendar.ts","../../../projects/adk/datepicker/ngbase-adk-datepicker.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\n\nexport type NgbDateUnits = 'year' | 'month' | 'date' | 'hour' | 'minute' | 'second' | 'millisecond';\n\nexport interface NgbAdpterInterface<D> {\n now(): D;\n compare(first: D, second: D): number;\n getTime(date: D): number;\n getYear(date: D): number;\n getMonth(date: D): number;\n getDate(date: D): number;\n getDay(date: D): number;\n create(year: number, month?: number, date?: number): D;\n format(date: D, displayFormat: any): string;\n parse(value: D | string, parseFormat?: string): D;\n set(date: D, value: number, unit: NgbDateUnits): D;\n longMonthNames(date: D): string;\n}\n\nexport const NgbDateAdapter = new InjectionToken<NgbAdpterInterface<unknown>>('mat-date-formats');\n\nexport function injectNgbDateAdapter<D>() {\n const adapter = inject(NgbDateAdapter, { optional: true }) as NgbAdpterInterface<D>;\n return adapter || (new NgbNativeDateAdapter() as unknown as NgbAdpterInterface<D>);\n}\n\nexport class NgbNativeDateAdapter implements NgbAdpterInterface<Date> {\n now(): Date {\n return new Date();\n }\n\n create(year: number, month = 0, date = 1): Date {\n return new Date(year, month, date);\n }\n\n compare(first: Date, second: Date): number {\n return first.getTime() - second.getTime();\n }\n\n getTime(date: Date): number {\n return date.getTime();\n }\n\n getYear(date: Date): number {\n return date.getFullYear();\n }\n\n getMonth(date: Date): number {\n return date.getMonth();\n }\n\n getDate(date: Date): number {\n return date.getDate();\n }\n\n getDay(date: Date): number {\n return date.getDay();\n }\n\n format(date: Date, format: string): string {\n if (!date) return '';\n const d = new Date(date);\n if (isNaN(d.getTime())) return '';\n\n const formatters: { [key: string]: () => string } = {\n YYYY: () => d.getFullYear().toString(),\n yyyy: () => d.getFullYear().toString(),\n yy: () => d.getFullYear().toString().slice(-2),\n MMM: () => d.toLocaleString('default', { month: 'short' }),\n MM: () => this.pad(d.getMonth() + 1),\n M: () => (d.getMonth() + 1).toString(),\n DD: () => this.pad(d.getDate()),\n dd: () => this.pad(d.getDate()),\n d: () => d.getDate().toString(),\n HH: () => this.pad(d.getHours()),\n H: () => d.getHours().toString(),\n hh: () => this.pad(d.getHours() % 12 || 12),\n h: () => (d.getHours() % 12 || 12).toString(),\n mm: () => this.pad(d.getMinutes()),\n ss: () => this.pad(d.getSeconds()),\n SSS: () => this.pad(d.getMilliseconds(), 3),\n ISO: () => d.toISOString(),\n a: () => (d.getHours() < 12 ? 'AM' : 'PM'),\n };\n\n const regex = /\\b(?:yyyy|YYYY|yy|MMM|MM|M|DD|dd|d|HH|H|hh|h|mm|ss|SSS|a|ISO)\\b/g;\n return format.replace(regex, match => formatters[match]?.() ?? match);\n }\n\n private pad(value: number, length = 2): string {\n return value.toString().padStart(length, '0');\n }\n\n // We have to parse the date string like '2024-10-01T00:00:00.000Z'\n\n parse(value: Date | string, _?: string): Date {\n if (value instanceof Date) return new Date(value.setHours(0, 0, 0, 0));\n if (typeof value !== 'string') return new Date(NaN);\n if (value.includes('T')) {\n return new Date(value);\n }\n\n const parts = value.split(/\\D+/).map(Number);\n if (parts.length !== 3) return new Date(NaN);\n\n const [a, b, c] = parts;\n return a > 31 ? new Date(a, b - 1, c) : new Date(c, b - 1, a);\n }\n\n set(date: Date, value: number, unit: NgbDateUnits): Date {\n const newDate = new Date(date);\n if (unit === 'year') newDate.setFullYear(value);\n else if (unit === 'month') newDate.setMonth(value);\n else if (unit === 'date') newDate.setDate(value);\n else if (unit === 'hour') newDate.setHours(value);\n else if (unit === 'minute') newDate.setMinutes(value);\n else if (unit === 'second') newDate.setSeconds(value);\n else if (unit === 'millisecond') newDate.setMilliseconds(value);\n return newDate;\n }\n\n longMonthNames(date: Date): string {\n return date.toLocaleString('default', { month: 'long' });\n }\n}\n","import {\n Directive,\n ElementRef,\n InjectionToken,\n Injector,\n TemplateRef,\n afterNextRender,\n booleanAttribute,\n computed,\n effect,\n inject,\n input,\n} from '@angular/core';\nimport { InputBase } from '@ngbase/adk/form-field';\nimport { ngbPopoverPortal } from '@ngbase/adk/popover';\nimport { NgbDatePicker } from './datepicker';\nimport { injectNgbDateAdapter } from './native-date-adapter';\n\nconst DEFAULT_FIELD_FORMAT = 'ISO';\nconst DEFAULT_FORMAT = 'M/d/yyyy';\nconst DEFAULT_TIME_FORMAT = 'M/d/yyyy, HH:mm a';\n\nconst DatePicker = new InjectionToken<typeof NgbDatePicker>('DatePicker');\n\n@Directive({\n selector: '[ngbDatepickerTrigger]',\n exportAs: 'ngbDatepickerTrigger',\n hostDirectives: [InputBase],\n host: {\n class: 'cursor-pointer hover:bg-muted-background',\n '(click)': 'open()',\n readonly: 'true',\n },\n})\nexport class NgbDatepickerTrigger<D> {\n readonly el = inject(ElementRef);\n readonly inputS = inject(InputBase);\n private readonly injector = inject(Injector);\n readonly adapter = injectNgbDateAdapter<D>();\n readonly popover = ngbPopoverPortal();\n private datepicker =\n inject<typeof NgbDatePicker<D>>(DatePicker, { optional: true }) ?? NgbDatePicker<D>;\n\n // readonly datepicker = input<NgbDatePicker<D>>();\n readonly noOfCalendars = input(1, { transform: (v: number) => Math.max(1, v) });\n readonly range = input(false, { transform: booleanAttribute });\n readonly time = input(false, { transform: booleanAttribute });\n readonly format = input<string>('');\n readonly fieldFormat = input<string>(DEFAULT_FIELD_FORMAT);\n private displayFormat = computed(() => {\n return this.format() || (this.time() ? DEFAULT_TIME_FORMAT : DEFAULT_FORMAT);\n });\n readonly dateFilter = input<(date: D) => boolean>(() => true);\n readonly pickerType = input<'date' | 'month' | 'year'>('date');\n readonly pickerTemplate = input<TemplateRef<any> | null>(null);\n close?: VoidFunction;\n\n constructor() {\n effect(() => {\n const value = this.getInputValue();\n this.updateField(value);\n });\n }\n\n private getInputValue() {\n const v = this.inputS.value() as never;\n let value: string[] = [];\n if (v) {\n value = this.range() ? v : [v];\n }\n return value.map(x => this.adapter.parse(x));\n }\n\n open() {\n const data: DatePickerOptions<D> = {\n value: this.getInputValue(),\n pickerType: this.pickerType(),\n noOfCalendars: this.noOfCalendars(),\n range: this.range(),\n format: this.displayFormat(),\n fieldFormat: this.fieldFormat(),\n target: this.el.nativeElement,\n template: this.pickerTemplate(),\n dateFilter: this.dateFilter(),\n time: this.time(),\n };\n const { diaRef } = this.popover.open(this.datepicker, {\n target: this.el.nativeElement,\n position: 'bl',\n data,\n width: 'none',\n });\n this.close = diaRef.close;\n }\n\n updateInput(dates: (D | null)[]) {\n const filtered = dates.filter(x => x) as D[];\n const formatDate = dates.map(x => (x ? this.adapter.format(x, this.fieldFormat()) : x));\n if (this.range()) {\n if (filtered.length === 1) {\n return;\n }\n this.inputS?.setValue(formatDate);\n } else if (filtered.length) {\n this.inputS?.setValue(formatDate[0]);\n }\n this.updateField(filtered);\n }\n\n updateField(filtered: D[]) {\n // console.log(this.fieldFormat());\n const d = filtered\n .map(x => this.adapter.format(x, this.displayFormat()))\n .filter(x => x)\n .join(' - ');\n afterNextRender(() => (this.el.nativeElement.value = d), { injector: this.injector });\n }\n}\n\nexport interface DatePickerOptions<D> {\n value: D[];\n pickerType: 'date' | 'month' | 'year';\n noOfCalendars: number;\n range: boolean;\n format: string;\n fieldFormat: string;\n target: any;\n template: TemplateRef<any> | null;\n dateFilter: (date: D) => boolean;\n time: boolean;\n}\n\nexport function registerDatePicker<D>(datePicker: typeof NgbDatePicker<D>) {\n return {\n provide: DatePicker,\n useValue: datePicker,\n };\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n Directive,\n inject,\n input,\n model,\n signal,\n TemplateRef,\n viewChild,\n} from '@angular/core';\nimport { AccessibleGroup } from '@ngbase/adk/a11y';\nimport { DialogRef } from '@ngbase/adk/portal';\nimport { RangePipe, uniqueId } from '@ngbase/adk/utils';\nimport { NgbCalendar } from './calendar';\nimport { DatePickerOptions, NgbDatepickerTrigger } from './datepicker-trigger';\nimport { injectNgbDateAdapter } from './native-date-adapter';\n\n@Directive({\n selector: '[ngbDatepickerGroup]',\n exportAs: 'ngbDatepickerGroup',\n hostDirectives: [AccessibleGroup],\n})\nexport class DatepickerGroup<D> {\n readonly picker = inject(NgbDatePicker<D>);\n readonly allyGroup = inject(AccessibleGroup);\n\n constructor() {\n this.allyGroup._ayId.set(this.picker.ayId);\n this.allyGroup._columns.set(7);\n this.allyGroup._initialFocus.set(false);\n }\n}\n\n@Component({\n selector: '[ngbDatepicker]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgbCalendar, RangePipe, NgTemplateOutlet, AccessibleGroup, DatepickerGroup],\n template: `\n <div class=\"flex\" ngbDatepickerGroup>\n @for (no of noOfCalendar() | range; track no) {\n <ngb-calendar [first]=\"$first\" [last]=\"$last\" [index]=\"$index\" />\n }\n </div>\n @if (template()) {\n <div class=\"px-b2 pb-b2\">\n <ng-container *ngTemplateOutlet=\"template()\" />\n </div>\n }\n `,\n host: {\n class: 'inline-block',\n },\n})\nexport class NgbDatePicker<D> {\n private datepickerTrigger: NgbDatepickerTrigger<D> | null = inject(NgbDatepickerTrigger, {\n optional: true,\n });\n private dialogRef = inject<DialogRef<DatePickerOptions<D>>>(DialogRef, { optional: true });\n readonly adapter = injectNgbDateAdapter<D>();\n readonly dateFilter = input(this.data?.dateFilter || (() => true));\n readonly pickerType = input<'date' | 'month' | 'year'>(this.data?.pickerType || 'date');\n readonly allyGroup = viewChild(AccessibleGroup);\n\n readonly noOfCalendar = model(this.data?.noOfCalendars || 1);\n readonly range = model<boolean>(this.data?.range || false);\n readonly time = signal<boolean>(this.data?.time || false);\n readonly format = signal<string>(\n this.data?.format || `MM-dd-yyyy${this.data?.time ? ' HH:mm a' : ''}`,\n );\n readonly template = signal<TemplateRef<any> | null>(this.data?.template || null);\n\n readonly showType = signal<'date' | 'month' | 'year'>(this.pickerType());\n readonly selectedDates = signal<[D | null, D | null]>([null, null]);\n readonly times = signal<[string | null, string | null]>([null, null]);\n readonly startDate = computed<D>(() => {\n const dates = this.selectedDates();\n return Array.isArray(dates) && dates[0] ? dates[0] : this.adapter.now();\n });\n readonly startMonth = signal(this.adapter.getMonth(this.startDate()));\n readonly startYear = signal(this.adapter.getYear(this.startDate()));\n\n readonly hoveredDate = signal<D | null>(null);\n readonly hoveredCount = computed(() => {\n const date = this.hoveredDate();\n return date ? this.adapter.getTime(date) : 0;\n });\n\n readonly startDateCount = computed(() => {\n const date = this.selectedDates()[0];\n return date ? this.adapter.getTime(date) : 0;\n });\n\n readonly dates = computed(() => {\n const dates = this.selectedDates();\n\n const v = { year: [] as number[], month: [] as string[], day: [] as string[] };\n for (const x of dates) {\n if (x) {\n const year = this.adapter.getYear(x);\n const month = this.adapter.getMonth(x);\n const day = this.adapter.getDate(x);\n v.year.push(year);\n v.month.push(`${month}-${year}`);\n v.day.push(`${day}-${month}-${year}`);\n }\n }\n return v;\n });\n\n readonly ayId = uniqueId();\n\n constructor() {\n this.init();\n // this.allyGroup.focusChanged.subscribe(item => this.focusChanged(item));\n }\n\n private init() {\n const v = this.data?.value?.filter(x => x).map(x => this.adapter.parse(x));\n if (Array.isArray(v) && v.length) {\n let date: D;\n let dates: [D, D | null];\n if (v.length === 2) {\n dates = v as [D, D];\n this.hoveredDate.set(v[1]);\n } else {\n dates = [v[0], null];\n }\n date = dates[0];\n this.selectedDates.set(dates);\n this.startYear.set(this.adapter.getYear(date));\n this.startMonth.set(this.adapter.getMonth(date));\n }\n }\n\n get data() {\n return this.dialogRef?.data;\n }\n\n // focusChanged(_: { current: AccessibleItem; previous?: AccessibleItem }) {\n // const cData = item.current.data();\n // const pData = item.previous?.data();\n // console.log('focusChanged', cData, pData);\n // console.log(data);\n // if (cData.day) {\n // let add = 0;\n // if (pData) {\n // const v = (cData.day - pData.day) / 7;\n // console.log(Math.abs(1));\n // if (1 === Math.abs(v)) {\n // add = 0;\n // } else if (v > 0) {\n // add = -1;\n // } else {\n // add = 1;\n // }\n // }\n // console.log(add);\n // this.startMonth.set(cData.mon + add);\n // }\n // }\n\n updateHoveredDate(date: D) {\n if (this.range()) {\n const single = this.selectedDates().filter(x => x).length === 1;\n this.hoveredDate.set(single ? date : null);\n }\n }\n\n selectDate(date: D, index?: number) {\n let dates = this.selectedDates();\n if (index != undefined) {\n dates[index] = date;\n } else if (this.range()) {\n if ((dates[0] && dates[1]) || !dates[0] || this.adapter.compare(dates[0], date) > 0) {\n dates = [date, null];\n this.hoveredDate.set(null);\n } else if (dates[0]) {\n dates[1] = date;\n this.hoveredDate.set(date);\n }\n } else {\n dates = [date, null];\n }\n this.selectedDates.set([...dates]);\n this.datepickerTrigger?.updateInput(dates as D[]);\n }\n\n selectYear(year: number) {\n this.startYear.set(year);\n if (this.pickerType() !== 'year') {\n this.showType.set('month');\n } else {\n this.selectDate(this.adapter.create(year, this.startMonth()));\n }\n }\n\n selectMonth(month: number, year: number) {\n this.startMonth.set(month);\n this.startYear.set(year);\n if (this.pickerType() === 'date') {\n this.showType.set('date');\n } else {\n this.selectDate(this.adapter.create(year, month));\n }\n }\n\n toggleView() {\n let type = this.showType();\n if (type === 'date') {\n type = 'month';\n } else if (type === 'month' || this.pickerType() === 'year') {\n type = 'year';\n } else if (this.pickerType() === 'date') {\n type = 'date';\n } else {\n type = 'month';\n }\n this.showType.set(type);\n }\n}\n\nexport function provideDatePicker<D>(picker: typeof NgbDatePicker<D>) {\n return {\n provide: NgbDatePicker,\n useExisting: picker,\n };\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n Directive,\n effect,\n inject,\n input,\n output,\n signal,\n untracked,\n} from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { NumberOnly, padString, provideValueAccessor } from '@ngbase/adk/utils';\n\n@Directive({\n selector: '[ngbTimeInput]',\n hostDirectives: [{ directive: NumberOnly, inputs: ['value'], outputs: ['valueChange'] }],\n host: {\n type: 'tel',\n },\n})\nexport class NgbTimeInput {\n readonly numberOnly = inject(NumberOnly);\n readonly timePicker = inject(NgbTimePicker);\n\n readonly ngbTimeInput = input.required<'hours' | 'minutes' | 'seconds'>();\n\n constructor() {\n this.numberOnly._min.set(0);\n this.numberOnly._len.set(2);\n effect(() => {\n const type = this.ngbTimeInput();\n if (type === 'hours') {\n this.numberOnly._max.set(this.timePicker.is24() ? 23 : 11);\n } else {\n this.numberOnly._max.set(59);\n }\n });\n }\n}\n\n@Component({\n selector: '[ngbTime]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [_provide(NgbTimePicker)],\n imports: [NumberOnly, NgbTimeInput],\n template: `\n <input ngbTimeInput=\"hours\" [(value)]=\"hours\" (valueChange)=\"updateValue()\" />\n <span>:</span>\n <input ngbTimeInput=\"minutes\" [(value)]=\"minutes\" (valueChange)=\"updateValue()\" />\n <span>:</span>\n <input ngbTimeInput=\"seconds\" [(value)]=\"seconds\" (valueChange)=\"updateValue()\" />\n @if (!is24()) {\n <div class=\"ml-b flex gap-b2\">\n <button type=\"button\" class=\"small\" (click)=\"changeAm(true)\">AM</button>\n <button type=\"button\" class=\"small\" (click)=\"changeAm(false)\">PM</button>\n </div>\n }\n `,\n host: {\n class: 'inline-flex gap-b items-center justify-center',\n },\n})\nexport class NgbTimePicker implements ControlValueAccessor {\n readonly is24 = input(false);\n readonly value = input<string | null | undefined>();\n readonly valueChange = output<string | null | undefined>();\n private time = computed(() => {\n return (\n `${padString(this.hours())}:${padString(this.minutes())}:${padString(this.seconds())}` +\n (!this.is24() ? ` ${this.am() ? 'AM' : 'PM'}` : '')\n );\n });\n readonly hours = signal('00');\n readonly minutes = signal('00');\n readonly seconds = signal('00');\n readonly am = signal(true);\n\n private onChange = (_: any) => {};\n private onTouched = () => {};\n\n constructor() {\n effect(() => {\n const value = this.value();\n untracked(() => {\n this.parseValue(value);\n });\n });\n }\n\n private parseValue(value: string | null | undefined) {\n if (value) {\n const [time, period] = value.split(' ');\n const [hours, minutes, seconds] = time.split(':');\n const am = period === 'AM';\n\n this.hours.set(padString(hours));\n this.minutes.set(padString(minutes));\n this.seconds.set(padString(seconds));\n this.am.set(am);\n }\n }\n\n changeAm(active: boolean) {\n this.am.set(active);\n this.updateValue();\n }\n\n updateValue() {\n this.notify(this.time());\n }\n\n private notify(time: string) {\n this.valueChange.emit(time);\n this.onChange(time);\n this.onTouched();\n }\n\n writeValue(value: string) {\n if (value) {\n this.parseValue(value);\n }\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(picker: typeof NgbTimePicker) {\n return [provideValueAccessor(picker)];\n}\n\nexport function provideTimePicker(picker: typeof NgbTimePicker) {\n return [_provide(picker), { provide: NgbTimePicker, useExisting: picker }];\n}\n","import { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n OnDestroy,\n signal,\n viewChildren,\n} from '@angular/core';\nimport { AccessibleItem } from '@ngbase/adk/a11y';\nimport { Directionality } from '@ngbase/adk/bidi';\nimport { NgbDatePicker } from './datepicker';\nimport { NgbTimePicker } from './time';\n\n@Directive({\n selector: '[ngbCalendarBtn]',\n host: {\n type: 'button',\n '[class]': '!visible() ? \"invisible\" : \"\"',\n '(click)': 'cal.navigate(ngbCalendarBtn() === \"left\" ? -1 : 1)',\n '[disabled]': 'disabled()',\n '[tabIndex]': 'disabled() ? -1 : 0',\n },\n})\nexport class CalendarBtn<D> {\n readonly cal = inject<NgbCalendar<D>>(NgbCalendar);\n\n readonly ngbCalendarBtn = input.required<'left' | 'right'>();\n\n readonly disabled = computed(() => {\n return this.ngbCalendarBtn() === 'left' ? this.cal.leftBtn() : this.cal.rightBtn();\n });\n readonly visible = computed(() => {\n return this.ngbCalendarBtn() === 'left' ? this.cal.first() : this.cal.last();\n });\n}\n\n@Directive({\n selector: '[ngbCalendarTitle]',\n host: {\n type: 'button',\n '(click)': 'cal.toggleView()',\n '[tabIndex]': '0',\n },\n})\nexport class CalendarTitle<D> {\n readonly cal = inject<NgbCalendar<D>>(NgbCalendar);\n}\n\n@Directive({\n selector: '[ngbCalYearBtn]',\n exportAs: 'ngbCalYearBtn',\n hostDirectives: [AccessibleItem],\n host: {\n type: 'button',\n '(click)': '!ngbCalYearBtn().disabled && cal.selectYear(ngbCalYearBtn().year)',\n },\n})\nexport class CalendarYearBtn<D> {\n readonly cal = inject<NgbCalendar<D>>(NgbCalendar);\n readonly ally = inject(AccessibleItem);\n readonly ngbCalYearBtn = input.required<{ year: number; disabled: boolean }>();\n\n readonly active = computed(() => this.ngbCalYearBtn().year === this.cal.cStartYear());\n readonly selected = computed(() => this.cal.todayDay() && this.active());\n\n constructor() {\n this.ally._ayId.set(this.cal.datePicker.ayId);\n effect(() => {\n this.ally._data.set(this.ngbCalYearBtn());\n });\n }\n}\n\n@Directive({\n selector: '[ngbCalMonthBtn]',\n exportAs: 'ngbCalMonthBtn',\n hostDirectives: [AccessibleItem],\n host: {\n type: 'button',\n '(click)': '!ngbCalMonthBtn().disabled && cal.selectMonth(ngbCalMonthBtn())',\n },\n})\nexport class CalendarMonthBtn<D> {\n readonly cal = inject<NgbCalendar<D>>(NgbCalendar);\n readonly ally = inject(AccessibleItem);\n readonly ngbCalMonthBtn = input.required<{ name: string; value: number; disabled: boolean }>();\n\n readonly active = computed(() =>\n this.cal.datePicker\n .dates()\n .month.includes(this.ngbCalMonthBtn().value + '-' + this.cal.cStartYear()),\n );\n readonly selected = computed(\n () => this.cal.todayDay() && this.cal.cStartMonth() === this.ngbCalMonthBtn().value,\n );\n\n constructor() {\n this.ally._ayId.set(this.cal.datePicker.ayId);\n effect(() => {\n this.ally._data.set(this.ngbCalMonthBtn());\n });\n }\n}\n\n@Directive({\n selector: '[ngbCalDayBtn]',\n exportAs: 'ngbCalDayBtn',\n hostDirectives: [AccessibleItem],\n host: {\n type: 'button',\n '(click)': '!ngbCalDayBtn().disabled && cal.selectDate(ngbCalDayBtn().day, ngbCalDayBtn().mon)',\n },\n})\nexport class CalendarDayBtn<D> {\n readonly cal = inject<NgbCalendar<D>>(NgbCalendar);\n readonly ally = inject(AccessibleItem);\n readonly ngbCalDayBtn = input.required<{\n day: number;\n mon: number;\n disabled: boolean;\n current: boolean;\n count: number;\n }>();\n\n readonly active = computed(() =>\n this.cal.datePicker\n .dates()\n .day.includes(\n this.ngbCalDayBtn().day + '-' + this.ngbCalDayBtn().mon + '-' + this.cal.cStartYear(),\n ),\n );\n readonly dummy = computed(() => !this.ngbCalDayBtn().current || this.ngbCalDayBtn().disabled);\n readonly selected = computed(() => {\n const day = this.ngbCalDayBtn();\n return (\n (day.day === this.cal.todayDay() && day.current) ||\n (day.count <= this.cal.datePicker.hoveredCount() &&\n this.cal.datePicker.startDateCount() &&\n day.count >= this.cal.datePicker.startDateCount())\n );\n });\n\n constructor() {\n this.ally._ayId.set(this.cal.datePicker.ayId);\n effect(() => {\n this.ally._data.set(this.ngbCalDayBtn());\n this.ally._id.set(this.ngbCalDayBtn().day + '-' + this.ngbCalDayBtn().mon);\n this.ally._skip.set(this.ngbCalDayBtn().disabled);\n });\n }\n}\n\n@Component({\n selector: 'ngb-calendar',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgClass,\n NgbTimePicker,\n CalendarBtn,\n CalendarTitle,\n CalendarYearBtn,\n CalendarMonthBtn,\n CalendarDayBtn,\n ],\n template: `\n <div class=\"mb-b2 flex items-center justify-between\">\n <button ngbCalendarBtn=\"left\">{{ dir.isRtl() ? '>' : '<' }}</button>\n <button ngbCalendarTitle>{{ title() }}</button>\n <button ngbCalendarBtn=\"right\">{{ dir.isRtl() ? '<' : '>' }}</button>\n </div>\n\n @if (datePicker.showType() === 'year') {\n <div class=\"grid grid-cols-3\">\n @for (year of years(); track year.year) {\n <button\n [ngbCalYearBtn]=\"year\"\n #yearBtn=\"ngbCalYearBtn\"\n class=\"items-center justify-center rounded-md py-b2 h-9 w-[84px] {{\n year.disabled ? 'cursor-default opacity-50' : 'hover:bg-muted-background'\n }}\"\n [ngClass]=\"{\n 'border bg-muted-background': yearBtn.selected(),\n '!bg-primary text-foreground': yearBtn.active(),\n }\"\n >\n {{ year.year }}\n </button>\n }\n </div>\n } @else if (datePicker.showType() === 'month') {\n <div class=\"grid grid-cols-3\">\n @for (month of months(); track month.value) {\n <button\n [ngbCalMonthBtn]=\"month\"\n #monthBtn=\"ngbCalMonthBtn\"\n class=\"items-center justify-center rounded-md py-b2 h-9 w-[84px] {{\n month.disabled ? 'cursor-default opacity-50' : 'hover:bg-muted-background'\n }}\"\n [ngClass]=\"{\n 'border bg-muted-background': monthBtn.selected(),\n '!bg-primary text-foreground': monthBtn.active(),\n }\"\n >\n {{ month.name }}\n </button>\n }\n </div>\n } @else {\n <div class=\"day-names grid grid-cols-7\">\n @for (dayName of dayNames; track dayName) {\n <div class=\"p-b text-center text-muted\">{{ dayName }}</div>\n }\n </div>\n <div class=\"grid grid-cols-7 gap-y-b2\">\n @for (day of getDaysArray(); track day.day + '-' + day.mon) {\n <button\n #days=\"ngbCalDayBtn\"\n [ngbCalDayBtn]=\"day\"\n class=\"mx-auto flex h-b9 w-b9 items-center justify-center text-center {{\n day.disabled ? 'cursor-default opacity-50' : 'hover:bg-muted-background'\n }}\"\n [ngClass]=\"{\n 'bg-muted-background': days.selected(),\n 'opacity-40': days.dummy(),\n '!bg-primary text-foreground': days.active(),\n }\"\n >\n {{ day.day }}\n </button>\n }\n </div>\n @if (datePicker.time() && datePicker.range()) {\n <div ngbTime [(value)]=\"time1\" (valueChange)=\"timeChanged(0, time1()!)\"></div>\n <div ngbTime [(value)]=\"time2\" (valueChange)=\"timeChanged(1, time2()!)\"></div>\n }\n }\n `,\n})\nexport class NgbCalendar<D> implements OnDestroy {\n readonly dir = inject(Directionality);\n readonly datePicker = inject<NgbDatePicker<D>>(NgbDatePicker);\n readonly days = viewChildren<CalendarDayBtn<D>, ElementRef<HTMLElement>>(CalendarDayBtn, {\n read: ElementRef,\n });\n readonly first = input(false);\n readonly last = input(false);\n readonly index = input(0);\n readonly time1 = signal<string | null>(null);\n readonly time2 = signal<string | null>(null);\n\n readonly cStartMonth = computed(() => {\n const month = this.datePicker.startMonth() + this.index();\n return month > 11 ? 12 - month : month;\n });\n\n readonly cStartYear = computed(() => {\n const year = this.datePicker.startYear();\n const month = this.datePicker.startMonth();\n const showType = this.datePicker.showType();\n const index = this.index();\n if (showType === 'date') {\n return year + Math.floor((month + index) / 12);\n } else if (showType === 'month') {\n return year + index;\n } else {\n return year + index * 24;\n }\n });\n\n readonly selectedMonthName = computed(() => {\n const date = this.adapter.create(this.cStartYear(), this.cStartMonth());\n return this.adapter.longMonthNames(date);\n });\n\n readonly currentYear = signal(this.cStartYear());\n readonly years = computed(() => {\n const year = this.currentYear();\n const filter = this.datePicker.dateFilter();\n return Array.from({ length: 18 }, (_, i) => {\n const y = year - (18 - 6) + i;\n return { year: y, disabled: !filter?.(this.adapter.create(y, 0)) };\n });\n });\n readonly months = computed(() => {\n const filter = this.datePicker.dateFilter();\n return Array.from({ length: 12 }, (_, i) => {\n const date = this.adapter.create(this.cStartYear(), i);\n const isDisabled = !filter?.(date);\n const name = this.adapter.longMonthNames(date);\n return { name: name.substring(0, 3), value: i, disabled: isDisabled };\n });\n });\n\n // computed the title based on the type\n readonly title = computed(() => {\n const type = this.datePicker.showType();\n const month = this.selectedMonthName();\n const year = this.cStartYear();\n const years = this.years();\n const r =\n type === 'year'\n ? `${years[0].year} - ${years[years.length - 1].year} `\n : type === 'month'\n ? year\n : month + ' ' + year;\n return r;\n });\n\n readonly dayNames = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\n\n // get the days array based on the month and year\n getDaysArray = computed(() => {\n const month = this.cStartMonth();\n const year = this.cStartYear();\n const dateFilter = this.datePicker.dateFilter();\n const numDays = this.adapter.getDate(this.adapter.create(year, month + 1, 0));\n const daysArray = Array.from({ length: numDays }, (_, i) => {\n const date = this.adapter.create(year, month, i + 1);\n return {\n mon: month,\n day: i + 1,\n year: this.adapter.getYear(date),\n disabled: !dateFilter?.(date) || false,\n current: true,\n count: this.adapter.getTime(date),\n };\n });\n const startDay = this.adapter.getDay(this.adapter.create(year, month));\n // get the additional days from the previous month\n const prevMonth = this.adapter.getDate(this.adapter.create(year, month, 0));\n const daysArrayPrev = Array.from({ length: startDay }, (_, i) => {\n const date = this.adapter.create(year, month - 1, prevMonth - startDay + i + 1);\n return {\n mon: this.adapter.getMonth(date),\n day: prevMonth - startDay + i + 1,\n year: this.adapter.getYear(date),\n disabled: !dateFilter?.(date) || false,\n current: false,\n count: this.adapter.getTime(date),\n };\n });\n const t = daysArrayPrev.concat(daysArray); // Padding for start day alignment\n // get the additional days from the next month to fill the last row\n // we need to check whether it is divisible by 7 and we have to fill only the remaining days\n const remaining = t.length % 7 === 0 ? 0 : 7 - (t.length % 7);\n const daysArrayNext = Array.from({ length: remaining }, (_, i) => {\n const date = this.adapter.create(year, month + 1, i + 1);\n return {\n mon: this.adapter.getMonth(date),\n day: i + 1,\n year: this.adapter.getYear(date),\n disabled: !dateFilter?.(date) || false,\n current: false,\n count: this.adapter.getTime(date),\n };\n });\n t.push(...daysArrayNext);\n return t;\n });\n\n // whether the left button is disabled based on the type\n // and disabled state\n leftBtn = computed(() => {\n const type = this.datePicker.showType();\n const year = this.cStartYear();\n const filter = this.datePicker.dateFilter();\n if (type === 'year') {\n return !filter?.(this.adapter.create(this.years()[0].year - 1, 11, 31));\n } else if (type === 'month') {\n return !filter?.(this.adapter.create(year - 1, 0));\n } else {\n return !filter?.(this.adapter.create(year, this.cStartMonth() - 1));\n }\n });\n\n // whether the right button is disabled based on the type\n // and disabled state\n rightBtn = computed(() => {\n const type = this.datePicker.showType();\n const year = this.cStartYear();\n const filter = this.datePicker.dateFilter();\n if (type === 'year') {\n return !filter?.(this.adapter.create(this.years()[this.years().length - 1].year + 1, 0));\n } else if (type === 'month') {\n return !filter?.(this.adapter.create(year + 1, 0));\n } else {\n return !filter?.(this.adapter.create(year, this.cStartMonth() + 1));\n }\n });\n\n todayDay = computed(() => {\n const today = this.adapter.now();\n return this.getSelectedDayOfMonth(today);\n });\n\n eventListeners: { element: HTMLElement; listener: () => void }[] = [];\n\n constructor() {\n if (this.datePicker.time() && this.datePicker.range()) {\n const [first, second] = this.datePicker.selectedDates();\n this.time1.set(first ? this.adapter.format(first, 'hh:mm a') : '');\n this.time2.set(second ? this.adapter.format(second, 'hh:mm a') : '');\n }\n effect(() => {\n const days = this.days();\n const range = this.datePicker.range();\n const dates = this.datePicker.selectedDates();\n this.clearListeners();\n\n if (days.length && range && dates[0] && !dates[1]) {\n const arr = this.getDaysArray();\n\n days.forEach((day, i) => {\n const listener = () => {\n this.hoverDate(arr[i].day, arr[i].mon);\n };\n\n day.nativeElement.addEventListener('mouseover', listener);\n this.eventListeners.push({ element: day.nativeElement, listener });\n });\n }\n });\n }\n\n get adapter() {\n return this.datePicker.adapter;\n }\n\n private getSelectedDayOfMonth(date: D) {\n const r =\n this.cStartMonth() === this.adapter.getMonth(date) &&\n this.cStartYear() === this.adapter.getYear(date)\n ? this.adapter.getDate(date)\n : 0;\n return r;\n }\n\n clearListeners() {\n this.eventListeners.forEach(({ element, listener }) => {\n element.removeEventListener('mouseover', listener);\n });\n }\n\n hoverDate(day: number, month: number) {\n this.datePicker.updateHoveredDate(this.adapter.create(this.cStartYear(), month, day));\n }\n\n timeChanged(index: number, timing: string) {\n const [time, period] = timing.split(' ');\n const [hours, min] = time.split(':').map(Number);\n const dates = this.datePicker.selectedDates();\n let date = dates[index]! as D;\n date = this.adapter.set(date, period === 'PM' ? hours + 12 : hours, 'hour');\n date = this.adapter.set(date, min, 'minute');\n\n this.datePicker.selectDate(date, index);\n }\n\n selectDate(day: number, month: number) {\n const date = this.adapter.create(this.cStartYear(), month, day);\n this.datePicker.selectDate(date);\n }\n\n navigate(direction: number) {\n let selectedYear = this.datePicker.startYear();\n let selectedMonth = this.datePicker.startMonth();\n const count = this.datePicker.noOfCalendar();\n direction = direction * count;\n const type = this.datePicker.showType();\n if (type === 'year') {\n selectedYear += direction * 24;\n this.currentYear.set(selectedYear);\n } else if (type === 'month') {\n selectedYear += direction;\n } else {\n selectedMonth += direction;\n if (selectedMonth < 0) {\n selectedMonth = 12 + selectedMonth;\n selectedYear--;\n } else if (selectedMonth > 11) {\n selectedMonth = selectedMonth - 12;\n selectedYear++;\n }\n }\n\n this.datePicker.startYear.set(selectedYear);\n this.datePicker.startMonth.set(selectedMonth);\n }\n\n selectYear(year: number) {\n this.datePicker.selectYear(year);\n }\n\n selectMonth(month: any) {\n this.datePicker.selectMonth(month.value, this.cStartYear());\n }\n\n toggleView() {\n this.datePicker.toggleView();\n }\n\n ngOnDestroy(): void {\n this.clearListeners();\n }\n}\n\nexport function provideCalendar<D>(cal: typeof NgbCalendar) {\n return {\n provide: NgbCalendar,\n useExisting: cal,\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"ngbase-adk-datepicker.mjs","sources":["../../../projects/adk/datepicker/native-date-adapter.ts","../../../projects/adk/datepicker/datepicker-trigger.ts","../../../projects/adk/datepicker/datepicker.ts","../../../projects/adk/datepicker/time.ts","../../../projects/adk/datepicker/calendar.ts","../../../projects/adk/datepicker/ngbase-adk-datepicker.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\n\nexport type NgbDateUnits = 'year' | 'month' | 'date' | 'hour' | 'minute' | 'second' | 'millisecond';\n\nexport interface NgbAdpterInterface<D> {\n now(): D;\n compare(first: D, second: D): number;\n getTime(date: D): number;\n getYear(date: D): number;\n getMonth(date: D): number;\n getDate(date: D): number;\n getDay(date: D): number;\n create(year: number, month?: number, date?: number): D;\n format(date: D, displayFormat: any): string;\n parse(value: D | string, parseFormat?: string): D;\n set(date: D, value: number, unit: NgbDateUnits): D;\n longMonthNames(date: D): string;\n}\n\nexport const NgbDateAdapter = new InjectionToken<NgbAdpterInterface<unknown>>('mat-date-formats');\n\nexport function injectNgbDateAdapter<D>() {\n const adapter = inject(NgbDateAdapter, { optional: true }) as NgbAdpterInterface<D>;\n return adapter || (new NgbNativeDateAdapter() as unknown as NgbAdpterInterface<D>);\n}\n\nexport class NgbNativeDateAdapter implements NgbAdpterInterface<Date> {\n now(): Date {\n return new Date();\n }\n\n create(year: number, month = 0, date = 1): Date {\n return new Date(year, month, date);\n }\n\n compare(first: Date, second: Date): number {\n return first.getTime() - second.getTime();\n }\n\n getTime(date: Date): number {\n return date.getTime();\n }\n\n getYear(date: Date): number {\n return date.getFullYear();\n }\n\n getMonth(date: Date): number {\n return date.getMonth();\n }\n\n getDate(date: Date): number {\n return date.getDate();\n }\n\n getDay(date: Date): number {\n return date.getDay();\n }\n\n format(date: Date, format: string): string {\n if (!date) return '';\n const d = new Date(date);\n if (isNaN(d.getTime())) return '';\n\n const formatters: { [key: string]: () => string } = {\n YYYY: () => d.getFullYear().toString(),\n yyyy: () => d.getFullYear().toString(),\n yy: () => d.getFullYear().toString().slice(-2),\n MMM: () => d.toLocaleString('default', { month: 'short' }),\n MM: () => this.pad(d.getMonth() + 1),\n M: () => (d.getMonth() + 1).toString(),\n DD: () => this.pad(d.getDate()),\n dd: () => this.pad(d.getDate()),\n d: () => d.getDate().toString(),\n HH: () => this.pad(d.getHours()),\n H: () => d.getHours().toString(),\n hh: () => this.pad(d.getHours() % 12 || 12),\n h: () => (d.getHours() % 12 || 12).toString(),\n mm: () => this.pad(d.getMinutes()),\n ss: () => this.pad(d.getSeconds()),\n SSS: () => this.pad(d.getMilliseconds(), 3),\n ISO: () => d.toISOString(),\n a: () => (d.getHours() < 12 ? 'AM' : 'PM'),\n };\n\n const regex = /\\b(?:yyyy|YYYY|yy|MMM|MM|M|DD|dd|d|HH|H|hh|h|mm|ss|SSS|a|ISO)\\b/g;\n return format.replace(regex, match => formatters[match]?.() ?? match);\n }\n\n private pad(value: number, length = 2): string {\n return value.toString().padStart(length, '0');\n }\n\n // We have to parse the date string like '2024-10-01T00:00:00.000Z'\n\n parse(value: Date | string, _?: string): Date {\n if (value instanceof Date) return new Date(value.setHours(0, 0, 0, 0));\n if (typeof value !== 'string') return new Date(NaN);\n if (value.includes('T')) {\n return new Date(value);\n }\n\n const parts = value.split(/\\D+/).map(Number);\n if (parts.length !== 3) return new Date(NaN);\n\n const [a, b, c] = parts;\n return a > 31 ? new Date(a, b - 1, c) : new Date(c, b - 1, a);\n }\n\n set(date: Date, value: number, unit: NgbDateUnits): Date {\n const newDate = new Date(date);\n if (unit === 'year') newDate.setFullYear(value);\n else if (unit === 'month') newDate.setMonth(value);\n else if (unit === 'date') newDate.setDate(value);\n else if (unit === 'hour') newDate.setHours(value);\n else if (unit === 'minute') newDate.setMinutes(value);\n else if (unit === 'second') newDate.setSeconds(value);\n else if (unit === 'millisecond') newDate.setMilliseconds(value);\n return newDate;\n }\n\n longMonthNames(date: Date): string {\n return date.toLocaleString('default', { month: 'long' });\n }\n}\n","import {\n Directive,\n ElementRef,\n InjectionToken,\n Injector,\n TemplateRef,\n afterNextRender,\n booleanAttribute,\n computed,\n effect,\n inject,\n input,\n} from '@angular/core';\nimport { InputBase } from '@ngbase/adk/form-field';\nimport { ngbPopoverPortal } from '@ngbase/adk/popover';\nimport { NgbDatePicker } from './datepicker';\nimport { injectNgbDateAdapter } from './native-date-adapter';\n\nconst DEFAULT_FIELD_FORMAT = 'ISO';\nconst DEFAULT_FORMAT = 'M/d/yyyy';\nconst DEFAULT_TIME_FORMAT = 'M/d/yyyy, HH:mm a';\n\nconst DatePicker = new InjectionToken<typeof NgbDatePicker>('DatePicker');\n\n@Directive({\n selector: '[ngbDatepickerTrigger]',\n exportAs: 'ngbDatepickerTrigger',\n hostDirectives: [InputBase],\n host: {\n class: 'cursor-pointer hover:bg-muted-background',\n '(click)': 'open()',\n readonly: 'true',\n },\n})\nexport class NgbDatepickerTrigger<D> {\n readonly el = inject(ElementRef);\n readonly inputS = inject(InputBase);\n private readonly injector = inject(Injector);\n readonly adapter = injectNgbDateAdapter<D>();\n readonly popover = ngbPopoverPortal();\n private datepicker =\n inject<typeof NgbDatePicker<D>>(DatePicker, { optional: true }) ?? NgbDatePicker<D>;\n\n // readonly datepicker = input<NgbDatePicker<D>>();\n readonly noOfCalendars = input(1, { transform: (v: number) => Math.max(1, v) });\n readonly range = input(false, { transform: booleanAttribute });\n readonly time = input(false, { transform: booleanAttribute });\n readonly format = input<string>('');\n readonly fieldFormat = input<string>(DEFAULT_FIELD_FORMAT);\n private displayFormat = computed(() => {\n return this.format() || (this.time() ? DEFAULT_TIME_FORMAT : DEFAULT_FORMAT);\n });\n readonly dateFilter = input<(date: D) => boolean>(() => true);\n readonly pickerType = input<'date' | 'month' | 'year'>('date');\n readonly pickerTemplate = input<TemplateRef<any> | null>(null);\n close?: VoidFunction;\n\n constructor() {\n effect(() => {\n const value = this.getInputValue();\n this.updateField(value);\n });\n }\n\n private getInputValue() {\n const v = this.inputS.value() as never;\n let value: string[] = [];\n if (v) {\n value = this.range() ? v : [v];\n }\n return value.map(x => this.adapter.parse(x));\n }\n\n open() {\n const data: DatePickerOptions<D> = {\n value: this.getInputValue(),\n pickerType: this.pickerType(),\n noOfCalendars: this.noOfCalendars(),\n range: this.range(),\n format: this.displayFormat(),\n fieldFormat: this.fieldFormat(),\n target: this.el.nativeElement,\n template: this.pickerTemplate(),\n dateFilter: this.dateFilter(),\n time: this.time(),\n };\n const { diaRef } = this.popover.open(this.datepicker, {\n target: this.el.nativeElement,\n position: 'bl',\n data,\n width: 'none',\n });\n this.close = diaRef.close;\n }\n\n updateInput(dates: (D | null)[]) {\n const filtered = dates.filter(x => x) as D[];\n const formatDate = dates.map(x => (x ? this.adapter.format(x, this.fieldFormat()) : x));\n if (this.range()) {\n if (filtered.length === 1) {\n return;\n }\n this.inputS?.setValue(formatDate);\n } else if (filtered.length) {\n this.inputS?.setValue(formatDate[0]);\n }\n this.updateField(filtered);\n }\n\n updateField(filtered: D[]) {\n // console.log(this.fieldFormat());\n const d = filtered\n .map(x => this.adapter.format(x, this.displayFormat()))\n .filter(x => x)\n .join(' - ');\n afterNextRender(() => (this.el.nativeElement.value = d), { injector: this.injector });\n }\n}\n\nexport interface DatePickerOptions<D> {\n value: D[];\n pickerType: 'date' | 'month' | 'year';\n noOfCalendars: number;\n range: boolean;\n format: string;\n fieldFormat: string;\n target: any;\n template: TemplateRef<any> | null;\n dateFilter: (date: D) => boolean;\n time: boolean;\n}\n\nexport function registerDatePicker<D>(datePicker: typeof NgbDatePicker<D>) {\n return {\n provide: DatePicker,\n useValue: datePicker,\n };\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n Directive,\n inject,\n input,\n model,\n signal,\n TemplateRef,\n viewChild,\n} from '@angular/core';\nimport { AccessibleGroup } from '@ngbase/adk/a11y';\nimport { DialogRef } from '@ngbase/adk/portal';\nimport { RangePipe, uniqueId } from '@ngbase/adk/utils';\nimport { NgbCalendar } from './calendar';\nimport { DatePickerOptions, NgbDatepickerTrigger } from './datepicker-trigger';\nimport { injectNgbDateAdapter } from './native-date-adapter';\n\n@Directive({\n selector: '[ngbDatepickerGroup]',\n exportAs: 'ngbDatepickerGroup',\n hostDirectives: [AccessibleGroup],\n})\nexport class DatepickerGroup<D> {\n readonly picker = inject(NgbDatePicker<D>);\n readonly allyGroup = inject(AccessibleGroup);\n\n constructor() {\n this.allyGroup._ayId.set(this.picker.ayId);\n this.allyGroup._columns.set(7);\n this.allyGroup._initialFocus.set(false);\n }\n}\n\n@Component({\n selector: '[ngbDatepicker]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgbCalendar, RangePipe, NgTemplateOutlet, AccessibleGroup, DatepickerGroup],\n template: `\n <div class=\"flex\" ngbDatepickerGroup>\n @for (no of noOfCalendar() | range; track no) {\n <ngb-calendar [first]=\"$first\" [last]=\"$last\" [index]=\"$index\" />\n }\n </div>\n @if (template()) {\n <div class=\"px-2 pb-2\">\n <ng-container *ngTemplateOutlet=\"template()\" />\n </div>\n }\n `,\n host: {\n class: 'inline-block',\n },\n})\nexport class NgbDatePicker<D> {\n private datepickerTrigger: NgbDatepickerTrigger<D> | null = inject(NgbDatepickerTrigger, {\n optional: true,\n });\n private dialogRef = inject<DialogRef<DatePickerOptions<D>>>(DialogRef, { optional: true });\n readonly adapter = injectNgbDateAdapter<D>();\n readonly dateFilter = input(this.data?.dateFilter || (() => true));\n readonly pickerType = input<'date' | 'month' | 'year'>(this.data?.pickerType || 'date');\n readonly allyGroup = viewChild(AccessibleGroup);\n\n readonly noOfCalendar = model(this.data?.noOfCalendars || 1);\n readonly range = model<boolean>(this.data?.range || false);\n readonly time = signal<boolean>(this.data?.time || false);\n readonly format = signal<string>(\n this.data?.format || `MM-dd-yyyy${this.data?.time ? ' HH:mm a' : ''}`,\n );\n readonly template = signal<TemplateRef<any> | null>(this.data?.template || null);\n\n readonly showType = signal<'date' | 'month' | 'year'>(this.pickerType());\n readonly selectedDates = signal<[D | null, D | null]>([null, null]);\n readonly times = signal<[string | null, string | null]>([null, null]);\n readonly startDate = computed<D>(() => {\n const dates = this.selectedDates();\n return Array.isArray(dates) && dates[0] ? dates[0] : this.adapter.now();\n });\n readonly startMonth = signal(this.adapter.getMonth(this.startDate()));\n readonly startYear = signal(this.adapter.getYear(this.startDate()));\n\n readonly hoveredDate = signal<D | null>(null);\n readonly hoveredCount = computed(() => {\n const date = this.hoveredDate();\n return date ? this.adapter.getTime(date) : 0;\n });\n\n readonly startDateCount = computed(() => {\n const date = this.selectedDates()[0];\n return date ? this.adapter.getTime(date) : 0;\n });\n\n readonly dates = computed(() => {\n const dates = this.selectedDates();\n\n const v = { year: [] as number[], month: [] as string[], day: [] as string[] };\n for (const x of dates) {\n if (x) {\n const year = this.adapter.getYear(x);\n const month = this.adapter.getMonth(x);\n const day = this.adapter.getDate(x);\n v.year.push(year);\n v.month.push(`${month}-${year}`);\n v.day.push(`${day}-${month}-${year}`);\n }\n }\n return v;\n });\n\n readonly ayId = uniqueId();\n\n constructor() {\n this.init();\n // this.allyGroup.focusChanged.subscribe(item => this.focusChanged(item));\n }\n\n private init() {\n const v = this.data?.value?.filter(x => x).map(x => this.adapter.parse(x));\n if (Array.isArray(v) && v.length) {\n let date: D;\n let dates: [D, D | null];\n if (v.length === 2) {\n dates = v as [D, D];\n this.hoveredDate.set(v[1]);\n } else {\n dates = [v[0], null];\n }\n date = dates[0];\n this.selectedDates.set(dates);\n this.startYear.set(this.adapter.getYear(date));\n this.startMonth.set(this.adapter.getMonth(date));\n }\n }\n\n get data() {\n return this.dialogRef?.data;\n }\n\n // focusChanged(_: { current: AccessibleItem; previous?: AccessibleItem }) {\n // const cData = item.current.data();\n // const pData = item.previous?.data();\n // console.log('focusChanged', cData, pData);\n // console.log(data);\n // if (cData.day) {\n // let add = 0;\n // if (pData) {\n // const v = (cData.day - pData.day) / 7;\n // console.log(Math.abs(1));\n // if (1 === Math.abs(v)) {\n // add = 0;\n // } else if (v > 0) {\n // add = -1;\n // } else {\n // add = 1;\n // }\n // }\n // console.log(add);\n // this.startMonth.set(cData.mon + add);\n // }\n // }\n\n updateHoveredDate(date: D) {\n if (this.range()) {\n const single = this.selectedDates().filter(x => x).length === 1;\n this.hoveredDate.set(single ? date : null);\n }\n }\n\n selectDate(date: D, index?: number) {\n let dates = this.selectedDates();\n if (index != undefined) {\n dates[index] = date;\n } else if (this.range()) {\n if ((dates[0] && dates[1]) || !dates[0] || this.adapter.compare(dates[0], date) > 0) {\n dates = [date, null];\n this.hoveredDate.set(null);\n } else if (dates[0]) {\n dates[1] = date;\n this.hoveredDate.set(date);\n }\n } else {\n dates = [date, null];\n }\n this.selectedDates.set([...dates]);\n this.datepickerTrigger?.updateInput(dates as D[]);\n }\n\n selectYear(year: number) {\n this.startYear.set(year);\n if (this.pickerType() !== 'year') {\n this.showType.set('month');\n } else {\n this.selectDate(this.adapter.create(year, this.startMonth()));\n }\n }\n\n selectMonth(month: number, year: number) {\n this.startMonth.set(month);\n this.startYear.set(year);\n if (this.pickerType() === 'date') {\n this.showType.set('date');\n } else {\n this.selectDate(this.adapter.create(year, month));\n }\n }\n\n toggleView() {\n let type = this.showType();\n if (type === 'date') {\n type = 'month';\n } else if (type === 'month' || this.pickerType() === 'year') {\n type = 'year';\n } else if (this.pickerType() === 'date') {\n type = 'date';\n } else {\n type = 'month';\n }\n this.showType.set(type);\n }\n}\n\nexport function provideDatePicker<D>(picker: typeof NgbDatePicker<D>) {\n return {\n provide: NgbDatePicker,\n useExisting: picker,\n };\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n Directive,\n effect,\n inject,\n input,\n output,\n signal,\n untracked,\n} from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { NumberOnly, padString, provideValueAccessor } from '@ngbase/adk/utils';\n\n@Directive({\n selector: '[ngbTimeInput]',\n hostDirectives: [{ directive: NumberOnly, inputs: ['value'], outputs: ['valueChange'] }],\n host: {\n type: 'tel',\n },\n})\nexport class NgbTimeInput {\n readonly numberOnly = inject(NumberOnly);\n readonly timePicker = inject(NgbTimePicker);\n\n readonly ngbTimeInput = input.required<'hours' | 'minutes' | 'seconds'>();\n\n constructor() {\n this.numberOnly._min.set(0);\n this.numberOnly._len.set(2);\n effect(() => {\n const type = this.ngbTimeInput();\n if (type === 'hours') {\n this.numberOnly._max.set(this.timePicker.is24() ? 23 : 11);\n } else {\n this.numberOnly._max.set(59);\n }\n });\n }\n}\n\n@Component({\n selector: '[ngbTime]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [_provide(NgbTimePicker)],\n imports: [NumberOnly, NgbTimeInput],\n template: `\n <input ngbTimeInput=\"hours\" [(value)]=\"hours\" (valueChange)=\"updateValue()\" />\n <span>:</span>\n <input ngbTimeInput=\"minutes\" [(value)]=\"minutes\" (valueChange)=\"updateValue()\" />\n <span>:</span>\n <input ngbTimeInput=\"seconds\" [(value)]=\"seconds\" (valueChange)=\"updateValue()\" />\n @if (!is24()) {\n <div class=\"ml-1 flex gap-2\">\n <button type=\"button\" class=\"small\" (click)=\"changeAm(true)\">AM</button>\n <button type=\"button\" class=\"small\" (click)=\"changeAm(false)\">PM</button>\n </div>\n }\n `,\n host: {\n class: 'inline-flex gap-1 items-center justify-center',\n },\n})\nexport class NgbTimePicker implements ControlValueAccessor {\n readonly is24 = input(false);\n readonly value = input<string | null | undefined>();\n readonly valueChange = output<string | null | undefined>();\n private time = computed(() => {\n return (\n `${padString(this.hours())}:${padString(this.minutes())}:${padString(this.seconds())}` +\n (!this.is24() ? ` ${this.am() ? 'AM' : 'PM'}` : '')\n );\n });\n readonly hours = signal('00');\n readonly minutes = signal('00');\n readonly seconds = signal('00');\n readonly am = signal(true);\n\n private onChange = (_: any) => {};\n private onTouched = () => {};\n\n constructor() {\n effect(() => {\n const value = this.value();\n untracked(() => {\n this.parseValue(value);\n });\n });\n }\n\n private parseValue(value: string | null | undefined) {\n if (value) {\n const [time, period] = value.split(' ');\n const [hours, minutes, seconds] = time.split(':');\n const am = period === 'AM';\n\n this.hours.set(padString(hours));\n this.minutes.set(padString(minutes));\n this.seconds.set(padString(seconds));\n this.am.set(am);\n }\n }\n\n changeAm(active: boolean) {\n this.am.set(active);\n this.updateValue();\n }\n\n updateValue() {\n this.notify(this.time());\n }\n\n private notify(time: string) {\n this.valueChange.emit(time);\n this.onChange(time);\n this.onTouched();\n }\n\n writeValue(value: string) {\n if (value) {\n this.parseValue(value);\n }\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(picker: typeof NgbTimePicker) {\n return [provideValueAccessor(picker)];\n}\n\nexport function provideTimePicker(picker: typeof NgbTimePicker) {\n return [_provide(picker), { provide: NgbTimePicker, useExisting: picker }];\n}\n","import { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n OnDestroy,\n signal,\n viewChildren,\n} from '@angular/core';\nimport { AccessibleItem } from '@ngbase/adk/a11y';\nimport { Directionality } from '@ngbase/adk/bidi';\nimport { NgbDatePicker } from './datepicker';\nimport { NgbTimePicker } from './time';\n\n@Directive({\n selector: '[ngbCalendarBtn]',\n host: {\n type: 'button',\n '[class]': '!visible() ? \"invisible\" : \"\"',\n '(click)': 'cal.navigate(ngbCalendarBtn() === \"left\" ? -1 : 1)',\n '[disabled]': 'disabled()',\n '[tabIndex]': 'disabled() ? -1 : 0',\n },\n})\nexport class CalendarBtn<D> {\n readonly cal = inject<NgbCalendar<D>>(NgbCalendar);\n\n readonly ngbCalendarBtn = input.required<'left' | 'right'>();\n\n readonly disabled = computed(() => {\n return this.ngbCalendarBtn() === 'left' ? this.cal.leftBtn() : this.cal.rightBtn();\n });\n readonly visible = computed(() => {\n return this.ngbCalendarBtn() === 'left' ? this.cal.first() : this.cal.last();\n });\n}\n\n@Directive({\n selector: '[ngbCalendarTitle]',\n host: {\n type: 'button',\n '(click)': 'cal.toggleView()',\n '[tabIndex]': '0',\n },\n})\nexport class CalendarTitle<D> {\n readonly cal = inject<NgbCalendar<D>>(NgbCalendar);\n}\n\n@Directive({\n selector: '[ngbCalYearBtn]',\n exportAs: 'ngbCalYearBtn',\n hostDirectives: [AccessibleItem],\n host: {\n type: 'button',\n '(click)': '!ngbCalYearBtn().disabled && cal.selectYear(ngbCalYearBtn().year)',\n },\n})\nexport class CalendarYearBtn<D> {\n readonly cal = inject<NgbCalendar<D>>(NgbCalendar);\n readonly ally = inject(AccessibleItem);\n readonly ngbCalYearBtn = input.required<{ year: number; disabled: boolean }>();\n\n readonly active = computed(() => this.ngbCalYearBtn().year === this.cal.cStartYear());\n readonly selected = computed(() => this.cal.todayDay() && this.active());\n\n constructor() {\n this.ally._ayId.set(this.cal.datePicker.ayId);\n effect(() => {\n this.ally._data.set(this.ngbCalYearBtn());\n });\n }\n}\n\n@Directive({\n selector: '[ngbCalMonthBtn]',\n exportAs: 'ngbCalMonthBtn',\n hostDirectives: [AccessibleItem],\n host: {\n type: 'button',\n '(click)': '!ngbCalMonthBtn().disabled && cal.selectMonth(ngbCalMonthBtn())',\n },\n})\nexport class CalendarMonthBtn<D> {\n readonly cal = inject<NgbCalendar<D>>(NgbCalendar);\n readonly ally = inject(AccessibleItem);\n readonly ngbCalMonthBtn = input.required<{ name: string; value: number; disabled: boolean }>();\n\n readonly active = computed(() =>\n this.cal.datePicker\n .dates()\n .month.includes(this.ngbCalMonthBtn().value + '-' + this.cal.cStartYear()),\n );\n readonly selected = computed(\n () => this.cal.todayDay() && this.cal.cStartMonth() === this.ngbCalMonthBtn().value,\n );\n\n constructor() {\n this.ally._ayId.set(this.cal.datePicker.ayId);\n effect(() => {\n this.ally._data.set(this.ngbCalMonthBtn());\n });\n }\n}\n\n@Directive({\n selector: '[ngbCalDayBtn]',\n exportAs: 'ngbCalDayBtn',\n hostDirectives: [AccessibleItem],\n host: {\n type: 'button',\n '(click)': '!ngbCalDayBtn().disabled && cal.selectDate(ngbCalDayBtn().day, ngbCalDayBtn().mon)',\n },\n})\nexport class CalendarDayBtn<D> {\n readonly cal = inject<NgbCalendar<D>>(NgbCalendar);\n readonly ally = inject(AccessibleItem);\n readonly ngbCalDayBtn = input.required<{\n day: number;\n mon: number;\n disabled: boolean;\n current: boolean;\n count: number;\n }>();\n\n readonly active = computed(() =>\n this.cal.datePicker\n .dates()\n .day.includes(\n this.ngbCalDayBtn().day + '-' + this.ngbCalDayBtn().mon + '-' + this.cal.cStartYear(),\n ),\n );\n readonly dummy = computed(() => !this.ngbCalDayBtn().current || this.ngbCalDayBtn().disabled);\n readonly selected = computed(() => {\n const day = this.ngbCalDayBtn();\n return (\n (day.day === this.cal.todayDay() && day.current) ||\n (day.count <= this.cal.datePicker.hoveredCount() &&\n this.cal.datePicker.startDateCount() &&\n day.count >= this.cal.datePicker.startDateCount())\n );\n });\n\n constructor() {\n this.ally._ayId.set(this.cal.datePicker.ayId);\n effect(() => {\n this.ally._data.set(this.ngbCalDayBtn());\n this.ally._id.set(this.ngbCalDayBtn().day + '-' + this.ngbCalDayBtn().mon);\n this.ally._skip.set(this.ngbCalDayBtn().disabled);\n });\n }\n}\n\n@Component({\n selector: 'ngb-calendar',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgClass,\n NgbTimePicker,\n CalendarBtn,\n CalendarTitle,\n CalendarYearBtn,\n CalendarMonthBtn,\n CalendarDayBtn,\n ],\n template: `\n <div class=\"mb-2 flex items-center justify-between\">\n <button ngbCalendarBtn=\"left\">{{ dir.isRtl() ? '>' : '<' }}</button>\n <button ngbCalendarTitle>{{ title() }}</button>\n <button ngbCalendarBtn=\"right\">{{ dir.isRtl() ? '<' : '>' }}</button>\n </div>\n\n @if (datePicker.showType() === 'year') {\n <div class=\"grid grid-cols-3\">\n @for (year of years(); track year.year) {\n <button\n [ngbCalYearBtn]=\"year\"\n #yearBtn=\"ngbCalYearBtn\"\n class=\"items-center justify-center rounded-md py-2 h-9 w-[84px] {{\n year.disabled ? 'cursor-default opacity-50' : 'hover:bg-muted-background'\n }}\"\n [ngClass]=\"{\n 'border bg-muted-background': yearBtn.selected(),\n '!bg-primary text-foreground': yearBtn.active(),\n }\"\n >\n {{ year.year }}\n </button>\n }\n </div>\n } @else if (datePicker.showType() === 'month') {\n <div class=\"grid grid-cols-3\">\n @for (month of months(); track month.value) {\n <button\n [ngbCalMonthBtn]=\"month\"\n #monthBtn=\"ngbCalMonthBtn\"\n class=\"items-center justify-center rounded-md py-2 h-9 w-[84px] {{\n month.disabled ? 'cursor-default opacity-50' : 'hover:bg-muted-background'\n }}\"\n [ngClass]=\"{\n 'border bg-muted-background': monthBtn.selected(),\n '!bg-primary text-foreground': monthBtn.active(),\n }\"\n >\n {{ month.name }}\n </button>\n }\n </div>\n } @else {\n <div class=\"day-names grid grid-cols-7\">\n @for (dayName of dayNames; track dayName) {\n <div class=\"p-1 text-center text-muted\">{{ dayName }}</div>\n }\n </div>\n <div class=\"grid grid-cols-7 gap-y-2\">\n @for (day of getDaysArray(); track day.day + '-' + day.mon) {\n <button\n #days=\"ngbCalDayBtn\"\n [ngbCalDayBtn]=\"day\"\n class=\"mx-auto flex h-9 w-9 items-center justify-center text-center {{\n day.disabled ? 'cursor-default opacity-50' : 'hover:bg-muted-background'\n }}\"\n [ngClass]=\"{\n 'bg-muted-background': days.selected(),\n 'opacity-40': days.dummy(),\n '!bg-primary text-foreground': days.active(),\n }\"\n >\n {{ day.day }}\n </button>\n }\n </div>\n @if (datePicker.time() && datePicker.range()) {\n <div ngbTime [(value)]=\"time1\" (valueChange)=\"timeChanged(0, time1()!)\"></div>\n <div ngbTime [(value)]=\"time2\" (valueChange)=\"timeChanged(1, time2()!)\"></div>\n }\n }\n `,\n})\nexport class NgbCalendar<D> implements OnDestroy {\n readonly dir = inject(Directionality);\n readonly datePicker = inject<NgbDatePicker<D>>(NgbDatePicker);\n readonly days = viewChildren<CalendarDayBtn<D>, ElementRef<HTMLElement>>(CalendarDayBtn, {\n read: ElementRef,\n });\n readonly first = input(false);\n readonly last = input(false);\n readonly index = input(0);\n readonly time1 = signal<string | null>(null);\n readonly time2 = signal<string | null>(null);\n\n readonly cStartMonth = computed(() => {\n const month = this.datePicker.startMonth() + this.index();\n return month > 11 ? 12 - month : month;\n });\n\n readonly cStartYear = computed(() => {\n const year = this.datePicker.startYear();\n const month = this.datePicker.startMonth();\n const showType = this.datePicker.showType();\n const index = this.index();\n if (showType === 'date') {\n return year + Math.floor((month + index) / 12);\n } else if (showType === 'month') {\n return year + index;\n } else {\n return year + index * 24;\n }\n });\n\n readonly selectedMonthName = computed(() => {\n const date = this.adapter.create(this.cStartYear(), this.cStartMonth());\n return this.adapter.longMonthNames(date);\n });\n\n readonly currentYear = signal(this.cStartYear());\n readonly years = computed(() => {\n const year = this.currentYear();\n const filter = this.datePicker.dateFilter();\n return Array.from({ length: 18 }, (_, i) => {\n const y = year - (18 - 6) + i;\n return { year: y, disabled: !filter?.(this.adapter.create(y, 0)) };\n });\n });\n readonly months = computed(() => {\n const filter = this.datePicker.dateFilter();\n return Array.from({ length: 12 }, (_, i) => {\n const date = this.adapter.create(this.cStartYear(), i);\n const isDisabled = !filter?.(date);\n const name = this.adapter.longMonthNames(date);\n return { name: name.substring(0, 3), value: i, disabled: isDisabled };\n });\n });\n\n // computed the title based on the type\n readonly title = computed(() => {\n const type = this.datePicker.showType();\n const month = this.selectedMonthName();\n const year = this.cStartYear();\n const years = this.years();\n const r =\n type === 'year'\n ? `${years[0].year} - ${years[years.length - 1].year} `\n : type === 'month'\n ? year\n : month + ' ' + year;\n return r;\n });\n\n readonly dayNames = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\n\n // get the days array based on the month and year\n getDaysArray = computed(() => {\n const month = this.cStartMonth();\n const year = this.cStartYear();\n const dateFilter = this.datePicker.dateFilter();\n const numDays = this.adapter.getDate(this.adapter.create(year, month + 1, 0));\n const daysArray = Array.from({ length: numDays }, (_, i) => {\n const date = this.adapter.create(year, month, i + 1);\n return {\n mon: month,\n day: i + 1,\n year: this.adapter.getYear(date),\n disabled: !dateFilter?.(date) || false,\n current: true,\n count: this.adapter.getTime(date),\n };\n });\n const startDay = this.adapter.getDay(this.adapter.create(year, month));\n // get the additional days from the previous month\n const prevMonth = this.adapter.getDate(this.adapter.create(year, month, 0));\n const daysArrayPrev = Array.from({ length: startDay }, (_, i) => {\n const date = this.adapter.create(year, month - 1, prevMonth - startDay + i + 1);\n return {\n mon: this.adapter.getMonth(date),\n day: prevMonth - startDay + i + 1,\n year: this.adapter.getYear(date),\n disabled: !dateFilter?.(date) || false,\n current: false,\n count: this.adapter.getTime(date),\n };\n });\n const t = daysArrayPrev.concat(daysArray); // Padding for start day alignment\n // get the additional days from the next month to fill the last row\n // we need to check whether it is divisible by 7 and we have to fill only the remaining days\n const remaining = t.length % 7 === 0 ? 0 : 7 - (t.length % 7);\n const daysArrayNext = Array.from({ length: remaining }, (_, i) => {\n const date = this.adapter.create(year, month + 1, i + 1);\n return {\n mon: this.adapter.getMonth(date),\n day: i + 1,\n year: this.adapter.getYear(date),\n disabled: !dateFilter?.(date) || false,\n current: false,\n count: this.adapter.getTime(date),\n };\n });\n t.push(...daysArrayNext);\n return t;\n });\n\n // whether the left button is disabled based on the type\n // and disabled state\n leftBtn = computed(() => {\n const type = this.datePicker.showType();\n const year = this.cStartYear();\n const filter = this.datePicker.dateFilter();\n if (type === 'year') {\n return !filter?.(this.adapter.create(this.years()[0].year - 1, 11, 31));\n } else if (type === 'month') {\n return !filter?.(this.adapter.create(year - 1, 0));\n } else {\n return !filter?.(this.adapter.create(year, this.cStartMonth() - 1));\n }\n });\n\n // whether the right button is disabled based on the type\n // and disabled state\n rightBtn = computed(() => {\n const type = this.datePicker.showType();\n const year = this.cStartYear();\n const filter = this.datePicker.dateFilter();\n if (type === 'year') {\n return !filter?.(this.adapter.create(this.years()[this.years().length - 1].year + 1, 0));\n } else if (type === 'month') {\n return !filter?.(this.adapter.create(year + 1, 0));\n } else {\n return !filter?.(this.adapter.create(year, this.cStartMonth() + 1));\n }\n });\n\n todayDay = computed(() => {\n const today = this.adapter.now();\n return this.getSelectedDayOfMonth(today);\n });\n\n eventListeners: { element: HTMLElement; listener: () => void }[] = [];\n\n constructor() {\n if (this.datePicker.time() && this.datePicker.range()) {\n const [first, second] = this.datePicker.selectedDates();\n this.time1.set(first ? this.adapter.format(first, 'hh:mm a') : '');\n this.time2.set(second ? this.adapter.format(second, 'hh:mm a') : '');\n }\n effect(() => {\n const days = this.days();\n const range = this.datePicker.range();\n const dates = this.datePicker.selectedDates();\n this.clearListeners();\n\n if (days.length && range && dates[0] && !dates[1]) {\n const arr = this.getDaysArray();\n\n days.forEach((day, i) => {\n const listener = () => {\n this.hoverDate(arr[i].day, arr[i].mon);\n };\n\n day.nativeElement.addEventListener('mouseover', listener);\n this.eventListeners.push({ element: day.nativeElement, listener });\n });\n }\n });\n }\n\n get adapter() {\n return this.datePicker.adapter;\n }\n\n private getSelectedDayOfMonth(date: D) {\n const r =\n this.cStartMonth() === this.adapter.getMonth(date) &&\n this.cStartYear() === this.adapter.getYear(date)\n ? this.adapter.getDate(date)\n : 0;\n return r;\n }\n\n clearListeners() {\n this.eventListeners.forEach(({ element, listener }) => {\n element.removeEventListener('mouseover', listener);\n });\n }\n\n hoverDate(day: number, month: number) {\n this.datePicker.updateHoveredDate(this.adapter.create(this.cStartYear(), month, day));\n }\n\n timeChanged(index: number, timing: string) {\n const [time, period] = timing.split(' ');\n const [hours, min] = time.split(':').map(Number);\n const dates = this.datePicker.selectedDates();\n let date = dates[index]! as D;\n date = this.adapter.set(date, period === 'PM' ? hours + 12 : hours, 'hour');\n date = this.adapter.set(date, min, 'minute');\n\n this.datePicker.selectDate(date, index);\n }\n\n selectDate(day: number, month: number) {\n const date = this.adapter.create(this.cStartYear(), month, day);\n this.datePicker.selectDate(date);\n }\n\n navigate(direction: number) {\n let selectedYear = this.datePicker.startYear();\n let selectedMonth = this.datePicker.startMonth();\n const count = this.datePicker.noOfCalendar();\n direction = direction * count;\n const type = this.datePicker.showType();\n if (type === 'year') {\n selectedYear += direction * 24;\n this.currentYear.set(selectedYear);\n } else if (type === 'month') {\n selectedYear += direction;\n } else {\n selectedMonth += direction;\n if (selectedMonth < 0) {\n selectedMonth = 12 + selectedMonth;\n selectedYear--;\n } else if (selectedMonth > 11) {\n selectedMonth = selectedMonth - 12;\n selectedYear++;\n }\n }\n\n this.datePicker.startYear.set(selectedYear);\n this.datePicker.startMonth.set(selectedMonth);\n }\n\n selectYear(year: number) {\n this.datePicker.selectYear(year);\n }\n\n selectMonth(month: any) {\n this.datePicker.selectMonth(month.value, this.cStartYear());\n }\n\n toggleView() {\n this.datePicker.toggleView();\n }\n\n ngOnDestroy(): void {\n this.clearListeners();\n }\n}\n\nexport function provideCalendar<D>(cal: typeof NgbCalendar) {\n return {\n provide: NgbCalendar,\n useExisting: cal,\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}