@koobiq/components 17.6.1 → 17.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (260) hide show
  1. package/alert/alert.module.d.ts +3 -4
  2. package/autocomplete/autocomplete.module.d.ts +1 -1
  3. package/badge/badge.module.d.ts +3 -4
  4. package/button/button.module.d.ts +4 -5
  5. package/code-block/code-block.module.d.ts +6 -7
  6. package/core/forms/_forms-theme.scss +7 -15
  7. package/core/forms/_forms.scss +3 -9
  8. package/core/forms/forms-tokens.scss +39 -0
  9. package/core/option/_optgroup-theme.scss +4 -10
  10. package/core/option/_option-action-theme.scss +7 -15
  11. package/core/option/_option-theme.scss +13 -24
  12. package/core/option/action.scss +4 -0
  13. package/core/option/optgroup-tokens.scss +26 -0
  14. package/core/option/optgroup.scss +4 -5
  15. package/core/option/option-action-tokens.scss +21 -0
  16. package/core/option/option-module.d.ts +2 -3
  17. package/core/option/option-tokens.scss +115 -0
  18. package/core/option/option.scss +5 -3
  19. package/core/styles/_koobiq-theme.scss +7 -37
  20. package/core/styles/theming/_scrollbar-theme.scss +10 -11
  21. package/core/styles/theming/scrollbar-tokens.scss +34 -0
  22. package/datepicker/datepicker-module.d.ts +8 -8
  23. package/dl/dl.module.d.ts +3 -4
  24. package/dropdown/dropdown.module.d.ts +4 -4
  25. package/empty-state/empty-state.module.d.ts +3 -4
  26. package/esm2022/alert/alert.component.mjs +3 -4
  27. package/esm2022/alert/alert.module.mjs +3 -7
  28. package/esm2022/autocomplete/autocomplete.module.mjs +15 -5
  29. package/esm2022/badge/badge.module.mjs +3 -7
  30. package/esm2022/button/button.module.mjs +3 -7
  31. package/esm2022/code-block/actionbar.component.mjs +6 -7
  32. package/esm2022/code-block/code-block.component.mjs +8 -9
  33. package/esm2022/code-block/code-block.module.mjs +4 -8
  34. package/esm2022/core/option/action.mjs +14 -25
  35. package/esm2022/core/option/optgroup.mjs +3 -3
  36. package/esm2022/core/option/option-module.mjs +4 -5
  37. package/esm2022/core/option/option.mjs +5 -6
  38. package/esm2022/core/version.mjs +2 -2
  39. package/esm2022/datepicker/calendar-body.component.mjs +3 -3
  40. package/esm2022/datepicker/calendar-header.component.mjs +8 -8
  41. package/esm2022/datepicker/datepicker-module.mjs +10 -9
  42. package/esm2022/datepicker/datepicker-toggle.component.mjs +5 -6
  43. package/esm2022/datepicker/month-view.component.mjs +4 -5
  44. package/esm2022/dl/dl.module.mjs +3 -7
  45. package/esm2022/dropdown/dropdown-item.component.mjs +5 -6
  46. package/esm2022/dropdown/dropdown.module.mjs +8 -9
  47. package/esm2022/empty-state/empty-state.module.mjs +3 -7
  48. package/esm2022/file-upload/file-upload.module.mjs +12 -9
  49. package/esm2022/file-upload/multiple-file-upload.component.mjs +10 -10
  50. package/esm2022/file-upload/single-file-upload.component.mjs +10 -10
  51. package/esm2022/form-field/form-field.mjs +7 -8
  52. package/esm2022/form-field/form-field.module.mjs +9 -5
  53. package/esm2022/form-field/password-hint.mjs +3 -3
  54. package/esm2022/form-field/password-toggle.mjs +3 -3
  55. package/esm2022/icon/icon.module.mjs +3 -7
  56. package/esm2022/input/input.module.mjs +3 -7
  57. package/esm2022/link/link.module.mjs +3 -7
  58. package/esm2022/list/list-selection.component.mjs +4 -5
  59. package/esm2022/list/list.module.mjs +3 -7
  60. package/esm2022/loader-overlay/loader-overlay.component.mjs +4 -5
  61. package/esm2022/loader-overlay/loader-overlay.module.mjs +3 -7
  62. package/esm2022/markdown/markdown.module.mjs +4 -5
  63. package/esm2022/modal/modal.component.mjs +7 -7
  64. package/esm2022/modal/modal.module.mjs +12 -9
  65. package/esm2022/navbar/navbar-item.component.mjs +30 -31
  66. package/esm2022/navbar/navbar.module.mjs +3 -7
  67. package/esm2022/popover/popover-confirm.component.mjs +4 -4
  68. package/esm2022/popover/popover.component.mjs +8 -8
  69. package/esm2022/popover/popover.module.mjs +40 -7
  70. package/esm2022/progress-bar/progress-bar.component.mjs +3 -4
  71. package/esm2022/progress-bar/progress-bar.module.mjs +3 -7
  72. package/esm2022/progress-spinner/progress-spinner.component.mjs +3 -3
  73. package/esm2022/progress-spinner/progress-spinner.module.mjs +7 -8
  74. package/esm2022/radio/radio.component.mjs +3 -3
  75. package/esm2022/radio/radio.module.mjs +4 -5
  76. package/esm2022/risk-level/risk-level.component.mjs +3 -3
  77. package/esm2022/risk-level/risk-level.module.mjs +3 -7
  78. package/esm2022/scrollbar/scrollbar.component.mjs +3 -3
  79. package/esm2022/select/select.component.mjs +8 -8
  80. package/esm2022/select/select.module.mjs +11 -13
  81. package/esm2022/sidebar/sidebar.component.mjs +3 -4
  82. package/esm2022/sidepanel/sidepanel-container.component.mjs +5 -6
  83. package/esm2022/sidepanel/sidepanel-directives.mjs +30 -29
  84. package/esm2022/sidepanel/sidepanel.module.mjs +3 -7
  85. package/esm2022/splitter/splitter.component.mjs +3 -4
  86. package/esm2022/splitter/splitter.module.mjs +3 -7
  87. package/esm2022/table/table.module.mjs +3 -7
  88. package/esm2022/tabs/tab-group.component.mjs +9 -10
  89. package/esm2022/tabs/tab-nav-bar/tab-nav-bar.mjs +3 -3
  90. package/esm2022/tabs/tabs.module.mjs +3 -7
  91. package/esm2022/tags/tag-list.component.mjs +3 -4
  92. package/esm2022/tags/tag.module.mjs +4 -5
  93. package/esm2022/textarea/textarea.module.mjs +4 -5
  94. package/esm2022/timepicker/timepicker.module.mjs +3 -7
  95. package/esm2022/timezone/timezone-option.component.mjs +6 -6
  96. package/esm2022/timezone/timezone-select.component.mjs +7 -7
  97. package/esm2022/timezone/timezone.module.mjs +10 -9
  98. package/esm2022/toast/toast.component.mjs +6 -6
  99. package/esm2022/toast/toast.module.mjs +10 -9
  100. package/esm2022/toggle/toggle.module.mjs +4 -5
  101. package/esm2022/tooltip/tooltip.component.mjs +3 -3
  102. package/esm2022/tooltip/tooltip.module.mjs +11 -5
  103. package/esm2022/tree/tree-option.component.mjs +5 -6
  104. package/esm2022/tree/tree.module.mjs +3 -7
  105. package/esm2022/tree-select/tree-select.component.mjs +7 -7
  106. package/esm2022/tree-select/tree-select.module.mjs +11 -12
  107. package/fesm2022/koobiq-components-alert.mjs +4 -9
  108. package/fesm2022/koobiq-components-alert.mjs.map +1 -1
  109. package/fesm2022/koobiq-components-autocomplete.mjs +14 -4
  110. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  111. package/fesm2022/koobiq-components-badge.mjs +2 -6
  112. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  113. package/fesm2022/koobiq-components-button.mjs +2 -6
  114. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  115. package/fesm2022/koobiq-components-code-block.mjs +15 -20
  116. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  117. package/fesm2022/koobiq-components-core.mjs +22 -33
  118. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  119. package/fesm2022/koobiq-components-datepicker.mjs +21 -20
  120. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  121. package/fesm2022/koobiq-components-dl.mjs +2 -6
  122. package/fesm2022/koobiq-components-dl.mjs.map +1 -1
  123. package/fesm2022/koobiq-components-dropdown.mjs +16 -17
  124. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  125. package/fesm2022/koobiq-components-empty-state.mjs +2 -6
  126. package/fesm2022/koobiq-components-empty-state.mjs.map +1 -1
  127. package/fesm2022/koobiq-components-file-upload.mjs +22 -19
  128. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  129. package/fesm2022/koobiq-components-form-field.mjs +17 -13
  130. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  131. package/fesm2022/koobiq-components-icon.mjs +2 -6
  132. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  133. package/fesm2022/koobiq-components-input.mjs +2 -6
  134. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  135. package/fesm2022/koobiq-components-link.mjs +2 -6
  136. package/fesm2022/koobiq-components-link.mjs.map +1 -1
  137. package/fesm2022/koobiq-components-list.mjs +5 -10
  138. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  139. package/fesm2022/koobiq-components-loader-overlay.mjs +5 -10
  140. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
  141. package/fesm2022/koobiq-components-markdown.mjs +3 -4
  142. package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
  143. package/fesm2022/koobiq-components-modal.mjs +18 -15
  144. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  145. package/fesm2022/koobiq-components-navbar.mjs +32 -36
  146. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  147. package/fesm2022/koobiq-components-popover.mjs +47 -14
  148. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  149. package/fesm2022/koobiq-components-progress-bar.mjs +4 -9
  150. package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
  151. package/fesm2022/koobiq-components-progress-spinner.mjs +8 -9
  152. package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
  153. package/fesm2022/koobiq-components-radio.mjs +5 -6
  154. package/fesm2022/koobiq-components-radio.mjs.map +1 -1
  155. package/fesm2022/koobiq-components-risk-level.mjs +4 -8
  156. package/fesm2022/koobiq-components-risk-level.mjs.map +1 -1
  157. package/fesm2022/koobiq-components-scrollbar.mjs +2 -2
  158. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  159. package/fesm2022/koobiq-components-select.mjs +17 -19
  160. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  161. package/fesm2022/koobiq-components-sidebar.mjs +2 -3
  162. package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
  163. package/fesm2022/koobiq-components-sidepanel.mjs +35 -38
  164. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  165. package/fesm2022/koobiq-components-splitter.mjs +4 -9
  166. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  167. package/fesm2022/koobiq-components-table.mjs +2 -6
  168. package/fesm2022/koobiq-components-table.mjs.map +1 -1
  169. package/fesm2022/koobiq-components-tabs.mjs +8 -13
  170. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  171. package/fesm2022/koobiq-components-tags.mjs +5 -7
  172. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  173. package/fesm2022/koobiq-components-textarea.mjs +3 -4
  174. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  175. package/fesm2022/koobiq-components-timepicker.mjs +2 -6
  176. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  177. package/fesm2022/koobiq-components-timezone.mjs +19 -18
  178. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  179. package/fesm2022/koobiq-components-toast.mjs +14 -13
  180. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  181. package/fesm2022/koobiq-components-toggle.mjs +3 -4
  182. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  183. package/fesm2022/koobiq-components-tooltip.mjs +12 -6
  184. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  185. package/fesm2022/koobiq-components-tree-select.mjs +16 -17
  186. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  187. package/fesm2022/koobiq-components-tree.mjs +10 -15
  188. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  189. package/file-upload/file-upload.module.d.ts +12 -12
  190. package/file-upload/single-file-upload.component.d.ts +1 -1
  191. package/form-field/form-field-tokens.scss +12 -0
  192. package/form-field/form-field.module.d.ts +3 -3
  193. package/icon/icon.module.d.ts +3 -4
  194. package/input/input.module.d.ts +5 -6
  195. package/link/link.module.d.ts +2 -3
  196. package/list/list.module.d.ts +3 -4
  197. package/loader-overlay/loader-overlay.module.d.ts +4 -5
  198. package/markdown/markdown.module.d.ts +4 -5
  199. package/modal/modal.module.d.ts +7 -7
  200. package/navbar/navbar.module.d.ts +5 -6
  201. package/package.json +4 -4
  202. package/popover/popover.module.d.ts +7 -7
  203. package/prebuilt-themes/dark-theme.css +1 -1
  204. package/prebuilt-themes/light-theme.css +1 -1
  205. package/progress-bar/_progress-bar-theme.scss +6 -12
  206. package/progress-bar/progress-bar-tokens.scss +36 -0
  207. package/progress-bar/progress-bar.module.d.ts +2 -3
  208. package/progress-bar/progress-bar.scss +4 -4
  209. package/progress-spinner/_progress-spinner-theme.scss +5 -11
  210. package/progress-spinner/progress-spinner-tokens.scss +38 -0
  211. package/progress-spinner/progress-spinner.module.d.ts +3 -3
  212. package/progress-spinner/progress-spinner.scss +4 -4
  213. package/radio/_radio-theme.scss +21 -36
  214. package/radio/radio-tokens.scss +166 -0
  215. package/radio/radio.module.d.ts +3 -4
  216. package/radio/radio.scss +4 -5
  217. package/risk-level/_risk-level-theme.scss +20 -24
  218. package/risk-level/risk-level-tokens.scss +72 -0
  219. package/risk-level/risk-level.component.scss +5 -3
  220. package/risk-level/risk-level.module.d.ts +3 -4
  221. package/schematics/ng-add/index.js +2 -2
  222. package/scrollbar/_scrollbar-component-theme.scss +13 -31
  223. package/scrollbar/scrollbar-tokens.scss +34 -0
  224. package/scrollbar/scrollbar.component.scss +4 -3
  225. package/select/_select-theme.scss +11 -22
  226. package/select/select-tokens.scss +59 -0
  227. package/select/select.component.d.ts +1 -1
  228. package/select/select.module.d.ts +7 -7
  229. package/select/select.scss +5 -3
  230. package/sidepanel/_sidepanel-theme.scss +6 -12
  231. package/sidepanel/sidepanel-tokens.scss +48 -0
  232. package/sidepanel/sidepanel.module.d.ts +8 -9
  233. package/sidepanel/sidepanel.scss +4 -4
  234. package/splitter/_splitter-theme.scss +2 -6
  235. package/splitter/splitter-tokens.scss +7 -0
  236. package/splitter/splitter.module.d.ts +2 -3
  237. package/splitter/splitter.scss +4 -0
  238. package/table/table.module.d.ts +3 -4
  239. package/tabs/_tabs-common.scss +0 -6
  240. package/tabs/_tabs-theme.scss +30 -65
  241. package/tabs/tab-group.scss +0 -3
  242. package/tabs/tab-header.scss +0 -3
  243. package/tabs/tab-nav-bar/tab-nav-bar.scss +0 -2
  244. package/tabs/tabs-tokens.scss +136 -0
  245. package/tabs/tabs.module.d.ts +7 -8
  246. package/tags/_tag-theme.scss +17 -26
  247. package/tags/tag-input-tokens.scss +14 -0
  248. package/tags/tag-list.scss +0 -6
  249. package/tags/tag-tokens.scss +151 -0
  250. package/tags/tag.module.d.ts +2 -3
  251. package/tags/tag.scss +0 -3
  252. package/textarea/textarea.module.d.ts +4 -5
  253. package/timepicker/timepicker.module.d.ts +4 -5
  254. package/timezone/timezone.module.d.ts +9 -9
  255. package/toast/toast.module.d.ts +7 -7
  256. package/toggle/toggle.module.d.ts +3 -4
  257. package/tooltip/tooltip.module.d.ts +3 -3
  258. package/tree/tree.module.d.ts +3 -4
  259. package/tree-select/tree-select.component.d.ts +1 -1
  260. package/tree-select/tree-select.module.d.ts +7 -7
@@ -1,16 +1,16 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { EventEmitter, Component, ViewEncapsulation, ChangeDetectionStrategy, Input, Output, Injectable, Optional, ViewChild, InjectionToken, Inject, forwardRef, Directive, ContentChild, NgModule } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
- import { DOCUMENT, CommonModule } from '@angular/common';
4
+ import { DOCUMENT, NgClass, TitleCasePipe } from '@angular/common';
5
5
  import * as i1$1 from '@koobiq/components/core';
6
6
  import { validationTooltipShowDelay, validationTooltipHideDelay, KBQ_DATE_FORMATS, KBQ_LOCALE_SERVICE } from '@koobiq/components/core';
7
- import * as i3 from '@koobiq/components/button';
7
+ import * as i2 from '@koobiq/components/button';
8
8
  import { KbqButtonModule } from '@koobiq/components/button';
9
- import * as i4 from '@koobiq/components/form-field';
9
+ import * as i3 from '@koobiq/components/form-field';
10
10
  import { KbqFormFieldControl } from '@koobiq/components/form-field';
11
- import * as i5 from '@koobiq/components/select';
11
+ import * as i4 from '@koobiq/components/select';
12
12
  import { KbqSelectModule } from '@koobiq/components/select';
13
- import * as i6 from '@koobiq/components/icon';
13
+ import * as i5 from '@koobiq/components/icon';
14
14
  import { KbqIconModule } from '@koobiq/components/icon';
15
15
  import { Subject, Subscription, merge, of } from 'rxjs';
16
16
  import { trigger, state, style, transition, animate } from '@angular/animations';
@@ -84,13 +84,13 @@ class KbqCalendarBody {
84
84
  return cellNumber === this.activeCell;
85
85
  }
86
86
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqCalendarBody, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
87
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.0", type: KbqCalendarBody, selector: "[kbq-calendar-body]", inputs: { rows: "rows", todayValue: "todayValue", selectedValue: "selectedValue", labelMinRequiredCells: "labelMinRequiredCells", numCols: "numCols", activeCell: "activeCell", cellAspectRatio: "cellAspectRatio" }, outputs: { selectedValueChange: "selectedValueChange" }, host: { classAttribute: "kbq-calendar__body" }, exportAs: ["kbqCalendarBody"], usesOnChanges: true, ngImport: i0, template: "<!-- Create the first row separately so we can include a special spacer cell. -->\n<tr *ngFor=\"let row of rows; let rowIndex = index\">\n <!--\n We mark this cell as aria-hidden so it doesn't get read out as one of the days in the week.\n The aspect ratio of the table cells is maintained by setting the top and bottom padding as a\n percentage of the width (a variant of the trick described here:\n https://www.w3schools.com/howto/howto_css_aspect_ratio.asp).\n -->\n <td\n *ngIf=\"rowIndex === 0 && firstRowOffset\"\n class=\"kbq-calendar__body-label\"\n [attr.colspan]=\"firstRowOffset\"\n ></td>\n\n <td\n *ngFor=\"let item of row; let colIndex = index\"\n class=\"kbq-calendar__body-cell\"\n [class.kbq-calendar__body_active]=\"isActiveCell(rowIndex, colIndex)\"\n [ngClass]=\"item.cssClasses!\"\n [style.paddingBottom]=\"cellPadding\"\n [style.paddingTop]=\"cellPadding\"\n [style.width]=\"cellWidth\"\n [tabindex]=\"isActiveCell(rowIndex, colIndex) ? 0 : -1\"\n (click)=\"cellClicked(item)\"\n >\n <div\n class=\"kbq-calendar__body-cell-content\"\n [class.kbq-calendar__body-today]=\"todayValue === item.value\"\n [class.kbq-disabled]=\"!item.enabled\"\n [class.kbq-selected]=\"selectedValue === item.value\"\n >\n {{ item.displayValue }}\n </div>\n </td>\n</tr>\n", styles: [".kbq-calendar__body-cell{position:relative;height:0;line-height:0;text-align:center;outline:none;cursor:pointer;padding:0}.kbq-disabled{cursor:default}.kbq-calendar__body-cell-content{display:flex;align-items:center;justify-content:center;box-sizing:border-box;height:32px;line-height:1;border-radius:var(--kbq-datepicker-size-grid-cell-border-radius, 8px);margin-bottom:var(--kbq-datepicker-size-grid-content-gap-vertical, 2px)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
87
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.0", type: KbqCalendarBody, selector: "[kbq-calendar-body]", inputs: { rows: "rows", todayValue: "todayValue", selectedValue: "selectedValue", labelMinRequiredCells: "labelMinRequiredCells", numCols: "numCols", activeCell: "activeCell", cellAspectRatio: "cellAspectRatio" }, outputs: { selectedValueChange: "selectedValueChange" }, host: { classAttribute: "kbq-calendar__body" }, exportAs: ["kbqCalendarBody"], usesOnChanges: true, ngImport: i0, template: "<!-- Create the first row separately so we can include a special spacer cell. -->\n@for (row of rows; track row; let rowIndex = $index) {\n <tr>\n <!-- We mark this cell as aria-hidden so it doesn't get read out as one of the days in the week.\n The aspect ratio of the table cells is maintained by setting the top and bottom padding as a\n percentage of the width (a variant of the trick described here:\n https://www.w3schools.com/howto/howto_css_aspect_ratio.asp). -->\n @if (rowIndex === 0 && firstRowOffset) {\n <td\n class=\"kbq-calendar__body-label\"\n [attr.colspan]=\"firstRowOffset\"\n ></td>\n }\n @for (item of row; track item; let colIndex = $index) {\n <td\n class=\"kbq-calendar__body-cell\"\n [class.kbq-calendar__body_active]=\"isActiveCell(rowIndex, colIndex)\"\n [ngClass]=\"item.cssClasses!\"\n [style.paddingBottom]=\"cellPadding\"\n [style.paddingTop]=\"cellPadding\"\n [style.width]=\"cellWidth\"\n [tabindex]=\"isActiveCell(rowIndex, colIndex) ? 0 : -1\"\n (click)=\"cellClicked(item)\"\n >\n <div\n class=\"kbq-calendar__body-cell-content\"\n [class.kbq-calendar__body-today]=\"todayValue === item.value\"\n [class.kbq-disabled]=\"!item.enabled\"\n [class.kbq-selected]=\"selectedValue === item.value\"\n >\n {{ item.displayValue }}\n </div>\n </td>\n }\n </tr>\n}\n", styles: [".kbq-calendar__body-cell{position:relative;height:0;line-height:0;text-align:center;outline:none;cursor:pointer;padding:0}.kbq-disabled{cursor:default}.kbq-calendar__body-cell-content{display:flex;align-items:center;justify-content:center;box-sizing:border-box;height:32px;line-height:1;border-radius:var(--kbq-datepicker-size-grid-cell-border-radius, 8px);margin-bottom:var(--kbq-datepicker-size-grid-content-gap-vertical, 2px)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
88
88
  }
89
89
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqCalendarBody, decorators: [{
90
90
  type: Component,
91
91
  args: [{ selector: '[kbq-calendar-body]', exportAs: 'kbqCalendarBody', host: {
92
92
  class: 'kbq-calendar__body'
93
- }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- Create the first row separately so we can include a special spacer cell. -->\n<tr *ngFor=\"let row of rows; let rowIndex = index\">\n <!--\n We mark this cell as aria-hidden so it doesn't get read out as one of the days in the week.\n The aspect ratio of the table cells is maintained by setting the top and bottom padding as a\n percentage of the width (a variant of the trick described here:\n https://www.w3schools.com/howto/howto_css_aspect_ratio.asp).\n -->\n <td\n *ngIf=\"rowIndex === 0 && firstRowOffset\"\n class=\"kbq-calendar__body-label\"\n [attr.colspan]=\"firstRowOffset\"\n ></td>\n\n <td\n *ngFor=\"let item of row; let colIndex = index\"\n class=\"kbq-calendar__body-cell\"\n [class.kbq-calendar__body_active]=\"isActiveCell(rowIndex, colIndex)\"\n [ngClass]=\"item.cssClasses!\"\n [style.paddingBottom]=\"cellPadding\"\n [style.paddingTop]=\"cellPadding\"\n [style.width]=\"cellWidth\"\n [tabindex]=\"isActiveCell(rowIndex, colIndex) ? 0 : -1\"\n (click)=\"cellClicked(item)\"\n >\n <div\n class=\"kbq-calendar__body-cell-content\"\n [class.kbq-calendar__body-today]=\"todayValue === item.value\"\n [class.kbq-disabled]=\"!item.enabled\"\n [class.kbq-selected]=\"selectedValue === item.value\"\n >\n {{ item.displayValue }}\n </div>\n </td>\n</tr>\n", styles: [".kbq-calendar__body-cell{position:relative;height:0;line-height:0;text-align:center;outline:none;cursor:pointer;padding:0}.kbq-disabled{cursor:default}.kbq-calendar__body-cell-content{display:flex;align-items:center;justify-content:center;box-sizing:border-box;height:32px;line-height:1;border-radius:var(--kbq-datepicker-size-grid-cell-border-radius, 8px);margin-bottom:var(--kbq-datepicker-size-grid-content-gap-vertical, 2px)}\n"] }]
93
+ }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- Create the first row separately so we can include a special spacer cell. -->\n@for (row of rows; track row; let rowIndex = $index) {\n <tr>\n <!-- We mark this cell as aria-hidden so it doesn't get read out as one of the days in the week.\n The aspect ratio of the table cells is maintained by setting the top and bottom padding as a\n percentage of the width (a variant of the trick described here:\n https://www.w3schools.com/howto/howto_css_aspect_ratio.asp). -->\n @if (rowIndex === 0 && firstRowOffset) {\n <td\n class=\"kbq-calendar__body-label\"\n [attr.colspan]=\"firstRowOffset\"\n ></td>\n }\n @for (item of row; track item; let colIndex = $index) {\n <td\n class=\"kbq-calendar__body-cell\"\n [class.kbq-calendar__body_active]=\"isActiveCell(rowIndex, colIndex)\"\n [ngClass]=\"item.cssClasses!\"\n [style.paddingBottom]=\"cellPadding\"\n [style.paddingTop]=\"cellPadding\"\n [style.width]=\"cellWidth\"\n [tabindex]=\"isActiveCell(rowIndex, colIndex) ? 0 : -1\"\n (click)=\"cellClicked(item)\"\n >\n <div\n class=\"kbq-calendar__body-cell-content\"\n [class.kbq-calendar__body-today]=\"todayValue === item.value\"\n [class.kbq-disabled]=\"!item.enabled\"\n [class.kbq-selected]=\"selectedValue === item.value\"\n >\n {{ item.displayValue }}\n </div>\n </td>\n }\n </tr>\n}\n", styles: [".kbq-calendar__body-cell{position:relative;height:0;line-height:0;text-align:center;outline:none;cursor:pointer;padding:0}.kbq-disabled{cursor:default}.kbq-calendar__body-cell-content{display:flex;align-items:center;justify-content:center;box-sizing:border-box;height:32px;line-height:1;border-radius:var(--kbq-datepicker-size-grid-cell-border-radius, 8px);margin-bottom:var(--kbq-datepicker-size-grid-content-gap-vertical, 2px)}\n"] }]
94
94
  }], propDecorators: { rows: [{
95
95
  type: Input
96
96
  }], todayValue: [{
@@ -243,13 +243,13 @@ class KbqCalendarHeader {
243
243
  }
244
244
  }
245
245
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqCalendarHeader, deps: [{ token: i1$1.DateAdapter }], target: i0.ɵɵFactoryTarget.Component }); }
246
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.0", type: KbqCalendarHeader, selector: "kbq-calendar-header", inputs: { activeDate: "activeDate", maxDate: "maxDate", minDate: "minDate" }, outputs: { activeDateChange: "activeDateChange", monthSelected: "monthSelected", yearSelected: "yearSelected" }, host: { classAttribute: "kbq-calendar-header" }, exportAs: ["kbqCalendarHeader"], ngImport: i0, template: "<div class=\"kbq-calendar-header__select-group\">\n <kbq-select\n #monthSelect=\"kbqSelect\"\n class=\"kbq-calendar-header__select\"\n [panelClass]=\"'kbq-calendar-select-panel'\"\n [value]=\"selectedMonth\"\n (selectionChange)=\"onMonthSelected($event.value)\"\n >\n <button\n kbq-button\n kbq-select-matcher\n class=\"layout-padding-right-xs\"\n [class.kbq-active]=\"monthSelect.panelOpen\"\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [tabindex]=\"-1\"\n >\n {{ monthNames[selectedMonth].nameShort | titlecase }}\n\n <i\n kbq-icon=\"mc-angle-down-S_16\"\n class=\"layout-padding-left-3xs\"\n [color]=\"'contrast'\"\n ></i>\n </button>\n\n <kbq-option\n *ngFor=\"let month of monthNames\"\n [disabled]=\"month.disabled\"\n [kbqTooltipDisabled]=\"true\"\n [value]=\"month.value\"\n >\n {{ month.name }}\n </kbq-option>\n </kbq-select>\n\n <kbq-select\n #yearSelect=\"kbqSelect\"\n [panelClass]=\"'kbq-calendar-select-panel'\"\n [value]=\"selectedYear\"\n (selectionChange)=\"onYearSelected($event.value.name)\"\n >\n <button\n kbq-button\n kbq-select-matcher\n class=\"layout-padding-right-xs\"\n [class.kbq-active]=\"yearSelect.panelOpen\"\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [tabindex]=\"-1\"\n >\n {{ selectedYear.value }}\n\n <i\n kbq-icon=\"mc-angle-down-S_16\"\n class=\"layout-padding-left-3xs\"\n ></i>\n </button>\n\n <kbq-option\n *ngFor=\"let year of years\"\n [kbqTooltipDisabled]=\"true\"\n [value]=\"year\"\n >\n {{ year.value }}\n </kbq-option>\n </kbq-select>\n</div>\n\n<div class=\"kbq-calendar-header__button-group\">\n <button\n kbq-button\n class=\"kbq-calendar-header__previous-button\"\n [color]=\"'contrast'\"\n [disabled]=\"previousDisabled\"\n [kbqStyle]=\"'transparent'\"\n [tabindex]=\"-1\"\n (click)=\"selectPreviousMonth()\"\n >\n <i kbq-icon=\"mc-angle-left-L_16\"></i>\n </button>\n\n <button\n kbq-button\n [color]=\"'contrast'\"\n [disabled]=\"currentDisabled\"\n [kbqStyle]=\"'transparent'\"\n [tabindex]=\"-1\"\n (click)=\"selectCurrentDate()\"\n >\n <i kbq-icon=\"mc-circle-8_16\"></i>\n </button>\n\n <button\n kbq-button\n class=\"kbq-calendar-header__next-button\"\n [color]=\"'contrast'\"\n [disabled]=\"nextDisabled\"\n [kbqStyle]=\"'transparent'\"\n [tabindex]=\"-1\"\n (click)=\"selectNextMonth()\"\n >\n <i kbq-icon=\"mc-angle-right-L_16\"></i>\n </button>\n</div>\n", styles: [".kbq-calendar-header{display:flex;flex-direction:row;justify-content:space-between;padding-right:var(--kbq-datepicker-size-header-padding-horizontal, 4px);padding-left:var(--kbq-datepicker-size-header-padding-horizontal, 4px);margin-bottom:var(--kbq-datepicker-size-header-margin-bottom, 2px)}.kbq-calendar-header__select{width:auto!important}.kbq-calendar-header__button-group,.kbq-calendar-header__select-group{display:flex;flex-direction:row}.kbq-calendar-select-panel{margin-top:2px;min-width:98%!important}.kbq-calendar-select-panel .kbq-select__content{max-height:384px;overflow-x:hidden;scrollbar-gutter:auto}.kbq-calendar-select-panel .kbq-select__content .kbq-option{min-width:65px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.KbqButton, selector: "[kbq-button]", inputs: ["color", "tabIndex", "kbqStyle", "disabled"] }, { kind: "directive", type: i3.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "directive", type: i4.KbqValidateDirective, selector: " input[kbqInput], input[kbqInputPassword], input[kbqTimepicker], input[kbqDatepicker], textarea[kbqTextarea], kbq-select, kbq-tree-select, kbq-tag-list ", exportAs: ["KbqValidate"] }, { kind: "component", type: i5.KbqSelect, selector: "kbq-select", inputs: ["disabled", "tabIndex", "hiddenItemsText", "panelClass", "backdropClass", "errorStateMatcher", "sortComparator", "hasBackdrop", "placeholder", "required", "multiple", "compareWith", "value", "id", "hiddenItemsTextFormatter"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["kbqSelect"] }, { kind: "directive", type: i5.KbqOptionTooltip, selector: "kbq-option" }, { kind: "component", type: i1$1.KbqOption, selector: "kbq-option", inputs: ["value", "showCheckbox", "disabled"], outputs: ["onSelectionChange"], exportAs: ["kbqOption"] }, { kind: "directive", type: i1$1.KbqSelectMatcher, selector: "kbq-select-matcher, [kbq-select-matcher]" }, { kind: "component", type: i6.KbqIcon, selector: "[kbq-icon]", inputs: ["color", "small", "autoColor"] }, { kind: "pipe", type: i1.TitleCasePipe, name: "titlecase" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
246
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.0", type: KbqCalendarHeader, selector: "kbq-calendar-header", inputs: { activeDate: "activeDate", maxDate: "maxDate", minDate: "minDate" }, outputs: { activeDateChange: "activeDateChange", monthSelected: "monthSelected", yearSelected: "yearSelected" }, host: { classAttribute: "kbq-calendar-header" }, exportAs: ["kbqCalendarHeader"], ngImport: i0, template: "<div class=\"kbq-calendar-header__select-group\">\n <kbq-select\n #monthSelect=\"kbqSelect\"\n class=\"kbq-calendar-header__select\"\n [panelClass]=\"'kbq-calendar-select-panel'\"\n [value]=\"selectedMonth\"\n (selectionChange)=\"onMonthSelected($event.value)\"\n >\n <button\n kbq-button\n kbq-select-matcher\n class=\"layout-padding-right-xs\"\n [class.kbq-active]=\"monthSelect.panelOpen\"\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [tabindex]=\"-1\"\n >\n {{ monthNames[selectedMonth].nameShort | titlecase }}\n\n <i\n kbq-icon=\"mc-angle-down-S_16\"\n class=\"layout-padding-left-3xs\"\n [color]=\"'contrast'\"\n ></i>\n </button>\n\n @for (month of monthNames; track month) {\n <kbq-option\n [disabled]=\"month.disabled\"\n [kbqTooltipDisabled]=\"true\"\n [value]=\"month.value\"\n >\n {{ month.name }}\n </kbq-option>\n }\n </kbq-select>\n\n <kbq-select\n #yearSelect=\"kbqSelect\"\n [panelClass]=\"'kbq-calendar-select-panel'\"\n [value]=\"selectedYear\"\n (selectionChange)=\"onYearSelected($event.value.name)\"\n >\n <button\n kbq-button\n kbq-select-matcher\n class=\"layout-padding-right-xs\"\n [class.kbq-active]=\"yearSelect.panelOpen\"\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [tabindex]=\"-1\"\n >\n {{ selectedYear.value }}\n\n <i\n kbq-icon=\"mc-angle-down-S_16\"\n class=\"layout-padding-left-3xs\"\n ></i>\n </button>\n\n @for (year of years; track year) {\n <kbq-option\n [kbqTooltipDisabled]=\"true\"\n [value]=\"year\"\n >\n {{ year.value }}\n </kbq-option>\n }\n </kbq-select>\n</div>\n\n<div class=\"kbq-calendar-header__button-group\">\n <button\n kbq-button\n class=\"kbq-calendar-header__previous-button\"\n [color]=\"'contrast'\"\n [disabled]=\"previousDisabled\"\n [kbqStyle]=\"'transparent'\"\n [tabindex]=\"-1\"\n (click)=\"selectPreviousMonth()\"\n >\n <i kbq-icon=\"mc-angle-left-L_16\"></i>\n </button>\n\n <button\n kbq-button\n [color]=\"'contrast'\"\n [disabled]=\"currentDisabled\"\n [kbqStyle]=\"'transparent'\"\n [tabindex]=\"-1\"\n (click)=\"selectCurrentDate()\"\n >\n <i kbq-icon=\"mc-circle-8_16\"></i>\n </button>\n\n <button\n kbq-button\n class=\"kbq-calendar-header__next-button\"\n [color]=\"'contrast'\"\n [disabled]=\"nextDisabled\"\n [kbqStyle]=\"'transparent'\"\n [tabindex]=\"-1\"\n (click)=\"selectNextMonth()\"\n >\n <i kbq-icon=\"mc-angle-right-L_16\"></i>\n </button>\n</div>\n", styles: [".kbq-calendar-header{display:flex;flex-direction:row;justify-content:space-between;padding-right:var(--kbq-datepicker-size-header-padding-horizontal, 4px);padding-left:var(--kbq-datepicker-size-header-padding-horizontal, 4px);margin-bottom:var(--kbq-datepicker-size-header-margin-bottom, 2px)}.kbq-calendar-header__select{width:auto!important}.kbq-calendar-header__button-group,.kbq-calendar-header__select-group{display:flex;flex-direction:row}.kbq-calendar-select-panel{margin-top:2px;min-width:98%!important}.kbq-calendar-select-panel .kbq-select__content{max-height:384px;overflow-x:hidden;scrollbar-gutter:auto}.kbq-calendar-select-panel .kbq-select__content .kbq-option{min-width:65px}\n"], dependencies: [{ kind: "component", type: i2.KbqButton, selector: "[kbq-button]", inputs: ["color", "tabIndex", "kbqStyle", "disabled"] }, { kind: "directive", type: i2.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "directive", type: i3.KbqValidateDirective, selector: " input[kbqInput], input[kbqInputPassword], input[kbqTimepicker], input[kbqDatepicker], textarea[kbqTextarea], kbq-select, kbq-tree-select, kbq-tag-list ", exportAs: ["KbqValidate"] }, { kind: "component", type: i4.KbqSelect, selector: "kbq-select", inputs: ["disabled", "tabIndex", "hiddenItemsText", "panelClass", "backdropClass", "errorStateMatcher", "sortComparator", "hasBackdrop", "placeholder", "required", "multiple", "compareWith", "value", "id", "hiddenItemsTextFormatter"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["kbqSelect"] }, { kind: "directive", type: i4.KbqOptionTooltip, selector: "kbq-option" }, { kind: "component", type: i1$1.KbqOption, selector: "kbq-option", inputs: ["value", "showCheckbox", "disabled"], outputs: ["onSelectionChange"], exportAs: ["kbqOption"] }, { kind: "directive", type: i1$1.KbqSelectMatcher, selector: "kbq-select-matcher, [kbq-select-matcher]" }, { kind: "component", type: i5.KbqIcon, selector: "[kbq-icon]", inputs: ["color", "small", "autoColor"] }, { kind: "pipe", type: i1.TitleCasePipe, name: "titlecase" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
247
247
  }
248
248
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqCalendarHeader, decorators: [{
249
249
  type: Component,
250
250
  args: [{ selector: 'kbq-calendar-header', exportAs: 'kbqCalendarHeader', host: {
251
251
  class: 'kbq-calendar-header'
252
- }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"kbq-calendar-header__select-group\">\n <kbq-select\n #monthSelect=\"kbqSelect\"\n class=\"kbq-calendar-header__select\"\n [panelClass]=\"'kbq-calendar-select-panel'\"\n [value]=\"selectedMonth\"\n (selectionChange)=\"onMonthSelected($event.value)\"\n >\n <button\n kbq-button\n kbq-select-matcher\n class=\"layout-padding-right-xs\"\n [class.kbq-active]=\"monthSelect.panelOpen\"\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [tabindex]=\"-1\"\n >\n {{ monthNames[selectedMonth].nameShort | titlecase }}\n\n <i\n kbq-icon=\"mc-angle-down-S_16\"\n class=\"layout-padding-left-3xs\"\n [color]=\"'contrast'\"\n ></i>\n </button>\n\n <kbq-option\n *ngFor=\"let month of monthNames\"\n [disabled]=\"month.disabled\"\n [kbqTooltipDisabled]=\"true\"\n [value]=\"month.value\"\n >\n {{ month.name }}\n </kbq-option>\n </kbq-select>\n\n <kbq-select\n #yearSelect=\"kbqSelect\"\n [panelClass]=\"'kbq-calendar-select-panel'\"\n [value]=\"selectedYear\"\n (selectionChange)=\"onYearSelected($event.value.name)\"\n >\n <button\n kbq-button\n kbq-select-matcher\n class=\"layout-padding-right-xs\"\n [class.kbq-active]=\"yearSelect.panelOpen\"\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [tabindex]=\"-1\"\n >\n {{ selectedYear.value }}\n\n <i\n kbq-icon=\"mc-angle-down-S_16\"\n class=\"layout-padding-left-3xs\"\n ></i>\n </button>\n\n <kbq-option\n *ngFor=\"let year of years\"\n [kbqTooltipDisabled]=\"true\"\n [value]=\"year\"\n >\n {{ year.value }}\n </kbq-option>\n </kbq-select>\n</div>\n\n<div class=\"kbq-calendar-header__button-group\">\n <button\n kbq-button\n class=\"kbq-calendar-header__previous-button\"\n [color]=\"'contrast'\"\n [disabled]=\"previousDisabled\"\n [kbqStyle]=\"'transparent'\"\n [tabindex]=\"-1\"\n (click)=\"selectPreviousMonth()\"\n >\n <i kbq-icon=\"mc-angle-left-L_16\"></i>\n </button>\n\n <button\n kbq-button\n [color]=\"'contrast'\"\n [disabled]=\"currentDisabled\"\n [kbqStyle]=\"'transparent'\"\n [tabindex]=\"-1\"\n (click)=\"selectCurrentDate()\"\n >\n <i kbq-icon=\"mc-circle-8_16\"></i>\n </button>\n\n <button\n kbq-button\n class=\"kbq-calendar-header__next-button\"\n [color]=\"'contrast'\"\n [disabled]=\"nextDisabled\"\n [kbqStyle]=\"'transparent'\"\n [tabindex]=\"-1\"\n (click)=\"selectNextMonth()\"\n >\n <i kbq-icon=\"mc-angle-right-L_16\"></i>\n </button>\n</div>\n", styles: [".kbq-calendar-header{display:flex;flex-direction:row;justify-content:space-between;padding-right:var(--kbq-datepicker-size-header-padding-horizontal, 4px);padding-left:var(--kbq-datepicker-size-header-padding-horizontal, 4px);margin-bottom:var(--kbq-datepicker-size-header-margin-bottom, 2px)}.kbq-calendar-header__select{width:auto!important}.kbq-calendar-header__button-group,.kbq-calendar-header__select-group{display:flex;flex-direction:row}.kbq-calendar-select-panel{margin-top:2px;min-width:98%!important}.kbq-calendar-select-panel .kbq-select__content{max-height:384px;overflow-x:hidden;scrollbar-gutter:auto}.kbq-calendar-select-panel .kbq-select__content .kbq-option{min-width:65px}\n"] }]
252
+ }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"kbq-calendar-header__select-group\">\n <kbq-select\n #monthSelect=\"kbqSelect\"\n class=\"kbq-calendar-header__select\"\n [panelClass]=\"'kbq-calendar-select-panel'\"\n [value]=\"selectedMonth\"\n (selectionChange)=\"onMonthSelected($event.value)\"\n >\n <button\n kbq-button\n kbq-select-matcher\n class=\"layout-padding-right-xs\"\n [class.kbq-active]=\"monthSelect.panelOpen\"\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [tabindex]=\"-1\"\n >\n {{ monthNames[selectedMonth].nameShort | titlecase }}\n\n <i\n kbq-icon=\"mc-angle-down-S_16\"\n class=\"layout-padding-left-3xs\"\n [color]=\"'contrast'\"\n ></i>\n </button>\n\n @for (month of monthNames; track month) {\n <kbq-option\n [disabled]=\"month.disabled\"\n [kbqTooltipDisabled]=\"true\"\n [value]=\"month.value\"\n >\n {{ month.name }}\n </kbq-option>\n }\n </kbq-select>\n\n <kbq-select\n #yearSelect=\"kbqSelect\"\n [panelClass]=\"'kbq-calendar-select-panel'\"\n [value]=\"selectedYear\"\n (selectionChange)=\"onYearSelected($event.value.name)\"\n >\n <button\n kbq-button\n kbq-select-matcher\n class=\"layout-padding-right-xs\"\n [class.kbq-active]=\"yearSelect.panelOpen\"\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [tabindex]=\"-1\"\n >\n {{ selectedYear.value }}\n\n <i\n kbq-icon=\"mc-angle-down-S_16\"\n class=\"layout-padding-left-3xs\"\n ></i>\n </button>\n\n @for (year of years; track year) {\n <kbq-option\n [kbqTooltipDisabled]=\"true\"\n [value]=\"year\"\n >\n {{ year.value }}\n </kbq-option>\n }\n </kbq-select>\n</div>\n\n<div class=\"kbq-calendar-header__button-group\">\n <button\n kbq-button\n class=\"kbq-calendar-header__previous-button\"\n [color]=\"'contrast'\"\n [disabled]=\"previousDisabled\"\n [kbqStyle]=\"'transparent'\"\n [tabindex]=\"-1\"\n (click)=\"selectPreviousMonth()\"\n >\n <i kbq-icon=\"mc-angle-left-L_16\"></i>\n </button>\n\n <button\n kbq-button\n [color]=\"'contrast'\"\n [disabled]=\"currentDisabled\"\n [kbqStyle]=\"'transparent'\"\n [tabindex]=\"-1\"\n (click)=\"selectCurrentDate()\"\n >\n <i kbq-icon=\"mc-circle-8_16\"></i>\n </button>\n\n <button\n kbq-button\n class=\"kbq-calendar-header__next-button\"\n [color]=\"'contrast'\"\n [disabled]=\"nextDisabled\"\n [kbqStyle]=\"'transparent'\"\n [tabindex]=\"-1\"\n (click)=\"selectNextMonth()\"\n >\n <i kbq-icon=\"mc-angle-right-L_16\"></i>\n </button>\n</div>\n", styles: [".kbq-calendar-header{display:flex;flex-direction:row;justify-content:space-between;padding-right:var(--kbq-datepicker-size-header-padding-horizontal, 4px);padding-left:var(--kbq-datepicker-size-header-padding-horizontal, 4px);margin-bottom:var(--kbq-datepicker-size-header-margin-bottom, 2px)}.kbq-calendar-header__select{width:auto!important}.kbq-calendar-header__button-group,.kbq-calendar-header__select-group{display:flex;flex-direction:row}.kbq-calendar-select-panel{margin-top:2px;min-width:98%!important}.kbq-calendar-select-panel .kbq-select__content{max-height:384px;overflow-x:hidden;scrollbar-gutter:auto}.kbq-calendar-select-panel .kbq-select__content .kbq-option{min-width:65px}\n"] }]
253
253
  }], ctorParameters: () => [{ type: i1$1.DateAdapter }], propDecorators: { activeDate: [{
254
254
  type: Input
255
255
  }], maxDate: [{
@@ -418,11 +418,11 @@ class KbqMonthView {
418
418
  this.adapter.getYear(d1) === this.adapter.getYear(d2));
419
419
  }
420
420
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqMonthView, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$1.DateAdapter, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
421
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.0", type: KbqMonthView, selector: "kbq-month-view", inputs: { activeDate: "activeDate", selected: "selected", minDate: "minDate", maxDate: "maxDate", dateFilter: "dateFilter", dateClass: "dateClass" }, outputs: { selectedChange: "selectedChange", userSelection: "userSelection", activeDateChange: "activeDateChange" }, viewQueries: [{ propertyName: "kbqCalendarBody", first: true, predicate: KbqCalendarBody, descendants: true }], exportAs: ["kbqMonthView"], ngImport: i0, template: "<table class=\"kbq-calendar__table\">\n <thead class=\"kbq-calendar__table-header\">\n <tr>\n <th\n *ngFor=\"let day of weekdays\"\n [attr.aria-label]=\"day.long\"\n >\n {{ day.narrow }}\n </th>\n </tr>\n <tr>\n <th\n colspan=\"7\"\n class=\"kbq-calendar__table-header-divider\"\n ></th>\n </tr>\n </thead>\n <tbody\n kbq-calendar-body\n [activeCell]=\"adapter.getDate(activeDate) - 1\"\n [labelMinRequiredCells]=\"3\"\n [rows]=\"weeks\"\n [selectedValue]=\"selectedDate!\"\n [todayValue]=\"todayDate!\"\n (selectedValueChange)=\"dateSelected($event)\"\n ></tbody>\n</table>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: KbqCalendarBody, selector: "[kbq-calendar-body]", inputs: ["rows", "todayValue", "selectedValue", "labelMinRequiredCells", "numCols", "activeCell", "cellAspectRatio"], outputs: ["selectedValueChange"], exportAs: ["kbqCalendarBody"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
421
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.0", type: KbqMonthView, selector: "kbq-month-view", inputs: { activeDate: "activeDate", selected: "selected", minDate: "minDate", maxDate: "maxDate", dateFilter: "dateFilter", dateClass: "dateClass" }, outputs: { selectedChange: "selectedChange", userSelection: "userSelection", activeDateChange: "activeDateChange" }, viewQueries: [{ propertyName: "kbqCalendarBody", first: true, predicate: KbqCalendarBody, descendants: true }], exportAs: ["kbqMonthView"], ngImport: i0, template: "<table class=\"kbq-calendar__table\">\n <thead class=\"kbq-calendar__table-header\">\n <tr>\n @for (day of weekdays; track day) {\n <th [attr.aria-label]=\"day.long\">\n {{ day.narrow }}\n </th>\n }\n </tr>\n <tr>\n <th\n colspan=\"7\"\n class=\"kbq-calendar__table-header-divider\"\n ></th>\n </tr>\n </thead>\n <tbody\n kbq-calendar-body\n [activeCell]=\"adapter.getDate(activeDate) - 1\"\n [labelMinRequiredCells]=\"3\"\n [rows]=\"weeks\"\n [selectedValue]=\"selectedDate!\"\n [todayValue]=\"todayDate!\"\n (selectedValueChange)=\"dateSelected($event)\"\n ></tbody>\n</table>\n", dependencies: [{ kind: "component", type: KbqCalendarBody, selector: "[kbq-calendar-body]", inputs: ["rows", "todayValue", "selectedValue", "labelMinRequiredCells", "numCols", "activeCell", "cellAspectRatio"], outputs: ["selectedValueChange"], exportAs: ["kbqCalendarBody"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
422
422
  }
423
423
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqMonthView, decorators: [{
424
424
  type: Component,
425
- args: [{ selector: 'kbq-month-view', exportAs: 'kbqMonthView', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<table class=\"kbq-calendar__table\">\n <thead class=\"kbq-calendar__table-header\">\n <tr>\n <th\n *ngFor=\"let day of weekdays\"\n [attr.aria-label]=\"day.long\"\n >\n {{ day.narrow }}\n </th>\n </tr>\n <tr>\n <th\n colspan=\"7\"\n class=\"kbq-calendar__table-header-divider\"\n ></th>\n </tr>\n </thead>\n <tbody\n kbq-calendar-body\n [activeCell]=\"adapter.getDate(activeDate) - 1\"\n [labelMinRequiredCells]=\"3\"\n [rows]=\"weeks\"\n [selectedValue]=\"selectedDate!\"\n [todayValue]=\"todayDate!\"\n (selectedValueChange)=\"dateSelected($event)\"\n ></tbody>\n</table>\n" }]
425
+ args: [{ selector: 'kbq-month-view', exportAs: 'kbqMonthView', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<table class=\"kbq-calendar__table\">\n <thead class=\"kbq-calendar__table-header\">\n <tr>\n @for (day of weekdays; track day) {\n <th [attr.aria-label]=\"day.long\">\n {{ day.narrow }}\n </th>\n }\n </tr>\n <tr>\n <th\n colspan=\"7\"\n class=\"kbq-calendar__table-header-divider\"\n ></th>\n </tr>\n </thead>\n <tbody\n kbq-calendar-body\n [activeCell]=\"adapter.getDate(activeDate) - 1\"\n [labelMinRequiredCells]=\"3\"\n [rows]=\"weeks\"\n [selectedValue]=\"selectedDate!\"\n [todayValue]=\"todayDate!\"\n (selectedValueChange)=\"dateSelected($event)\"\n ></tbody>\n</table>\n" }]
426
426
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1$1.DateAdapter, decorators: [{
427
427
  type: Optional
428
428
  }] }], propDecorators: { activeDate: [{
@@ -2087,14 +2087,14 @@ class KbqDatepickerToggle {
2087
2087
  this.stateChanges = merge(this.intl.changes, datepickerDisabled, inputDisabled, datepickerToggled).subscribe(() => this.changeDetectorRef.markForCheck());
2088
2088
  }
2089
2089
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqDatepickerToggle, deps: [{ token: KbqDatepickerIntl }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
2090
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.0", type: KbqDatepickerToggle, selector: "kbq-datepicker-toggle", inputs: { disabled: "disabled", datepicker: ["for", "datepicker"], tabIndex: "tabIndex" }, host: { properties: { "class.kbq-active": "datepicker && datepicker.opened" }, classAttribute: "kbq-datepicker-toggle" }, queries: [{ propertyName: "customIcon", first: true, predicate: KbqDatepickerToggleIcon, descendants: true }], viewQueries: [{ propertyName: "button", first: true, predicate: ["button"], descendants: true }], exportAs: ["kbqDatepickerToggle"], usesOnChanges: true, ngImport: i0, template: "<!--todo need simplify this-->\n<button\n #button\n aria-haspopup=\"true\"\n kbq-button\n type=\"button\"\n class=\"kbq-datepicker-toggle__button\"\n [attr.aria-label]=\"intl.openCalendarLabel\"\n [disabled]=\"disabled\"\n [tabIndex]=\"tabIndex\"\n (click)=\"open($event)\"\n>\n <i\n *ngIf=\"!customIcon\"\n kbq-icon=\"mc-calendar_16\"\n class=\"kbq-datepicker-toggle__default-icon\"\n ></i>\n\n <ng-content select=\"[kbqDatepickerToggleIcon]\" />\n</button>\n", styles: [".kbq-datepicker-toggle:focus{outline:0}.kbq-datepicker-toggle__button.kbq-button-icon{width:var(--kbq-datepicker-toggle-size-width, );height:var(--kbq-datepicker-toggle-size-height, );margin-left:2px}.kbq-form-field-appearance-legacy .kbq-form-field-prefix .kbq-datepicker-toggle__default-icon,.kbq-form-field-appearance-legacy .kbq-form-field-suffix .kbq-datepicker-toggle__default-icon{width:1em}.kbq-form-field:not(.kbq-form-field-appearance-legacy) .kbq-form-field-prefix .kbq-datepicker-toggle__default-icon,.kbq-form-field:not(.kbq-form-field-appearance-legacy) .kbq-form-field-suffix .kbq-datepicker-toggle__default-icon{display:block;width:1.5em;height:1.5em}.kbq-form-field:not(.kbq-form-field-appearance-legacy) .kbq-form-field-prefix .kbq-button-icon .kbq-datepicker-toggle__default-icon,.kbq-form-field:not(.kbq-form-field-appearance-legacy) .kbq-form-field-suffix .kbq-button-icon .kbq-datepicker-toggle__default-icon{margin:auto}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.KbqButton, selector: "[kbq-button]", inputs: ["color", "tabIndex", "kbqStyle", "disabled"] }, { kind: "directive", type: i3.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "component", type: i6.KbqIcon, selector: "[kbq-icon]", inputs: ["color", "small", "autoColor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
2090
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.0", type: KbqDatepickerToggle, selector: "kbq-datepicker-toggle", inputs: { disabled: "disabled", datepicker: ["for", "datepicker"], tabIndex: "tabIndex" }, host: { properties: { "class.kbq-active": "datepicker && datepicker.opened" }, classAttribute: "kbq-datepicker-toggle" }, queries: [{ propertyName: "customIcon", first: true, predicate: KbqDatepickerToggleIcon, descendants: true }], viewQueries: [{ propertyName: "button", first: true, predicate: ["button"], descendants: true }], exportAs: ["kbqDatepickerToggle"], usesOnChanges: true, ngImport: i0, template: "<!--todo need simplify this-->\n<button\n #button\n aria-haspopup=\"true\"\n kbq-button\n type=\"button\"\n class=\"kbq-datepicker-toggle__button\"\n [attr.aria-label]=\"intl.openCalendarLabel\"\n [disabled]=\"disabled\"\n [tabIndex]=\"tabIndex\"\n (click)=\"open($event)\"\n>\n @if (!customIcon) {\n <i\n kbq-icon=\"mc-calendar_16\"\n class=\"kbq-datepicker-toggle__default-icon\"\n ></i>\n }\n\n <ng-content select=\"[kbqDatepickerToggleIcon]\" />\n</button>\n", styles: [".kbq-datepicker-toggle:focus{outline:0}.kbq-datepicker-toggle__button.kbq-button-icon{width:var(--kbq-datepicker-toggle-size-width, );height:var(--kbq-datepicker-toggle-size-height, );margin-left:2px}.kbq-form-field-appearance-legacy .kbq-form-field-prefix .kbq-datepicker-toggle__default-icon,.kbq-form-field-appearance-legacy .kbq-form-field-suffix .kbq-datepicker-toggle__default-icon{width:1em}.kbq-form-field:not(.kbq-form-field-appearance-legacy) .kbq-form-field-prefix .kbq-datepicker-toggle__default-icon,.kbq-form-field:not(.kbq-form-field-appearance-legacy) .kbq-form-field-suffix .kbq-datepicker-toggle__default-icon{display:block;width:1.5em;height:1.5em}.kbq-form-field:not(.kbq-form-field-appearance-legacy) .kbq-form-field-prefix .kbq-button-icon .kbq-datepicker-toggle__default-icon,.kbq-form-field:not(.kbq-form-field-appearance-legacy) .kbq-form-field-suffix .kbq-button-icon .kbq-datepicker-toggle__default-icon{margin:auto}\n"], dependencies: [{ kind: "component", type: i2.KbqButton, selector: "[kbq-button]", inputs: ["color", "tabIndex", "kbqStyle", "disabled"] }, { kind: "directive", type: i2.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "component", type: i5.KbqIcon, selector: "[kbq-icon]", inputs: ["color", "small", "autoColor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
2091
2091
  }
2092
2092
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqDatepickerToggle, decorators: [{
2093
2093
  type: Component,
2094
2094
  args: [{ selector: 'kbq-datepicker-toggle', host: {
2095
2095
  class: 'kbq-datepicker-toggle',
2096
2096
  '[class.kbq-active]': 'datepicker && datepicker.opened'
2097
- }, exportAs: 'kbqDatepickerToggle', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--todo need simplify this-->\n<button\n #button\n aria-haspopup=\"true\"\n kbq-button\n type=\"button\"\n class=\"kbq-datepicker-toggle__button\"\n [attr.aria-label]=\"intl.openCalendarLabel\"\n [disabled]=\"disabled\"\n [tabIndex]=\"tabIndex\"\n (click)=\"open($event)\"\n>\n <i\n *ngIf=\"!customIcon\"\n kbq-icon=\"mc-calendar_16\"\n class=\"kbq-datepicker-toggle__default-icon\"\n ></i>\n\n <ng-content select=\"[kbqDatepickerToggleIcon]\" />\n</button>\n", styles: [".kbq-datepicker-toggle:focus{outline:0}.kbq-datepicker-toggle__button.kbq-button-icon{width:var(--kbq-datepicker-toggle-size-width, );height:var(--kbq-datepicker-toggle-size-height, );margin-left:2px}.kbq-form-field-appearance-legacy .kbq-form-field-prefix .kbq-datepicker-toggle__default-icon,.kbq-form-field-appearance-legacy .kbq-form-field-suffix .kbq-datepicker-toggle__default-icon{width:1em}.kbq-form-field:not(.kbq-form-field-appearance-legacy) .kbq-form-field-prefix .kbq-datepicker-toggle__default-icon,.kbq-form-field:not(.kbq-form-field-appearance-legacy) .kbq-form-field-suffix .kbq-datepicker-toggle__default-icon{display:block;width:1.5em;height:1.5em}.kbq-form-field:not(.kbq-form-field-appearance-legacy) .kbq-form-field-prefix .kbq-button-icon .kbq-datepicker-toggle__default-icon,.kbq-form-field:not(.kbq-form-field-appearance-legacy) .kbq-form-field-suffix .kbq-button-icon .kbq-datepicker-toggle__default-icon{margin:auto}\n"] }]
2097
+ }, exportAs: 'kbqDatepickerToggle', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--todo need simplify this-->\n<button\n #button\n aria-haspopup=\"true\"\n kbq-button\n type=\"button\"\n class=\"kbq-datepicker-toggle__button\"\n [attr.aria-label]=\"intl.openCalendarLabel\"\n [disabled]=\"disabled\"\n [tabIndex]=\"tabIndex\"\n (click)=\"open($event)\"\n>\n @if (!customIcon) {\n <i\n kbq-icon=\"mc-calendar_16\"\n class=\"kbq-datepicker-toggle__default-icon\"\n ></i>\n }\n\n <ng-content select=\"[kbqDatepickerToggleIcon]\" />\n</button>\n", styles: [".kbq-datepicker-toggle:focus{outline:0}.kbq-datepicker-toggle__button.kbq-button-icon{width:var(--kbq-datepicker-toggle-size-width, );height:var(--kbq-datepicker-toggle-size-height, );margin-left:2px}.kbq-form-field-appearance-legacy .kbq-form-field-prefix .kbq-datepicker-toggle__default-icon,.kbq-form-field-appearance-legacy .kbq-form-field-suffix .kbq-datepicker-toggle__default-icon{width:1em}.kbq-form-field:not(.kbq-form-field-appearance-legacy) .kbq-form-field-prefix .kbq-datepicker-toggle__default-icon,.kbq-form-field:not(.kbq-form-field-appearance-legacy) .kbq-form-field-suffix .kbq-datepicker-toggle__default-icon{display:block;width:1.5em;height:1.5em}.kbq-form-field:not(.kbq-form-field-appearance-legacy) .kbq-form-field-prefix .kbq-button-icon .kbq-datepicker-toggle__default-icon,.kbq-form-field:not(.kbq-form-field-appearance-legacy) .kbq-form-field-suffix .kbq-button-icon .kbq-datepicker-toggle__default-icon{margin:auto}\n"] }]
2098
2098
  }], ctorParameters: () => [{ type: KbqDatepickerIntl }, { type: i0.ChangeDetectorRef }], propDecorators: { disabled: [{
2099
2099
  type: Input
2100
2100
  }], datepicker: [{
@@ -2120,14 +2120,15 @@ class KbqDatepickerModule {
2120
2120
  KbqDatepickerToggle,
2121
2121
  KbqDatepickerToggleIcon,
2122
2122
  KbqMonthView,
2123
- KbqCalendarHeader], imports: [CommonModule,
2124
- KbqButtonModule,
2123
+ KbqCalendarHeader], imports: [KbqButtonModule,
2125
2124
  OverlayModule,
2126
2125
  A11yModule,
2127
2126
  PortalModule,
2128
2127
  KbqButtonModule,
2129
2128
  KbqSelectModule,
2130
- KbqIconModule], exports: [KbqCalendar,
2129
+ KbqIconModule,
2130
+ NgClass,
2131
+ TitleCasePipe], exports: [KbqCalendar,
2131
2132
  KbqCalendarBody,
2132
2133
  KbqDatepicker,
2133
2134
  KbqDatepickerContent,
@@ -2139,8 +2140,7 @@ class KbqDatepickerModule {
2139
2140
  /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqDatepickerModule, providers: [
2140
2141
  KbqDatepickerIntl,
2141
2142
  KBQ_DATEPICKER_SCROLL_STRATEGY_FACTORY_PROVIDER
2142
- ], imports: [CommonModule,
2143
- KbqButtonModule,
2143
+ ], imports: [KbqButtonModule,
2144
2144
  OverlayModule,
2145
2145
  A11yModule,
2146
2146
  PortalModule,
@@ -2152,14 +2152,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImpor
2152
2152
  type: NgModule,
2153
2153
  args: [{
2154
2154
  imports: [
2155
- CommonModule,
2156
2155
  KbqButtonModule,
2157
2156
  OverlayModule,
2158
2157
  A11yModule,
2159
2158
  PortalModule,
2160
2159
  KbqButtonModule,
2161
2160
  KbqSelectModule,
2162
- KbqIconModule
2161
+ KbqIconModule,
2162
+ NgClass,
2163
+ TitleCasePipe
2163
2164
  ],
2164
2165
  exports: [
2165
2166
  KbqCalendar,