cmat 0.0.87 → 0.0.88

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 (228) hide show
  1. package/fesm2022/cmat-components-adapter.mjs +9 -9
  2. package/fesm2022/cmat-components-adapter.mjs.map +1 -1
  3. package/fesm2022/cmat-components-breadcrumb.mjs +98 -80
  4. package/fesm2022/cmat-components-breadcrumb.mjs.map +1 -1
  5. package/fesm2022/cmat-components-card.mjs +26 -34
  6. package/fesm2022/cmat-components-card.mjs.map +1 -1
  7. package/fesm2022/cmat-components-carousel.mjs +467 -556
  8. package/fesm2022/cmat-components-carousel.mjs.map +1 -1
  9. package/fesm2022/cmat-components-cascade.mjs +270 -259
  10. package/fesm2022/cmat-components-cascade.mjs.map +1 -1
  11. package/fesm2022/cmat-components-chip-input.mjs +200 -116
  12. package/fesm2022/cmat-components-chip-input.mjs.map +1 -1
  13. package/fesm2022/cmat-components-code-editor.mjs +85 -38
  14. package/fesm2022/cmat-components-code-editor.mjs.map +1 -1
  15. package/fesm2022/cmat-components-color-picker.mjs +841 -0
  16. package/fesm2022/cmat-components-color-picker.mjs.map +1 -0
  17. package/fesm2022/cmat-components-custom-formly.mjs +1395 -838
  18. package/fesm2022/cmat-components-custom-formly.mjs.map +1 -1
  19. package/fesm2022/cmat-components-data-picker.mjs +996 -0
  20. package/fesm2022/cmat-components-data-picker.mjs.map +1 -0
  21. package/fesm2022/cmat-components-date-range.mjs +310 -264
  22. package/fesm2022/cmat-components-date-range.mjs.map +1 -1
  23. package/fesm2022/cmat-components-date-time-display.mjs +16 -20
  24. package/fesm2022/cmat-components-date-time-display.mjs.map +1 -1
  25. package/fesm2022/cmat-components-drawer.mjs +120 -137
  26. package/fesm2022/cmat-components-drawer.mjs.map +1 -1
  27. package/fesm2022/cmat-components-empty-state.mjs +17 -24
  28. package/fesm2022/cmat-components-empty-state.mjs.map +1 -1
  29. package/fesm2022/cmat-components-file-preview.mjs +18 -24
  30. package/fesm2022/cmat-components-file-preview.mjs.map +1 -1
  31. package/fesm2022/cmat-components-filter-toolbar.mjs +30 -39
  32. package/fesm2022/cmat-components-filter-toolbar.mjs.map +1 -1
  33. package/fesm2022/cmat-components-form-actions.mjs +12 -12
  34. package/fesm2022/cmat-components-form-actions.mjs.map +1 -1
  35. package/fesm2022/cmat-components-fullscreen.mjs +10 -10
  36. package/fesm2022/cmat-components-fullscreen.mjs.map +1 -1
  37. package/fesm2022/cmat-components-highlight.mjs +48 -41
  38. package/fesm2022/cmat-components-highlight.mjs.map +1 -1
  39. package/fesm2022/cmat-components-image-viewer.mjs +104 -107
  40. package/fesm2022/cmat-components-image-viewer.mjs.map +1 -1
  41. package/fesm2022/cmat-components-inline-loading.mjs +12 -15
  42. package/fesm2022/cmat-components-inline-loading.mjs.map +1 -1
  43. package/fesm2022/cmat-components-json-editor.mjs +118 -75
  44. package/fesm2022/cmat-components-json-editor.mjs.map +1 -1
  45. package/fesm2022/cmat-components-knob-input.mjs +196 -178
  46. package/fesm2022/cmat-components-knob-input.mjs.map +1 -1
  47. package/fesm2022/cmat-components-masonry.mjs +26 -41
  48. package/fesm2022/cmat-components-masonry.mjs.map +1 -1
  49. package/fesm2022/cmat-components-material-color-picker.mjs +81 -80
  50. package/fesm2022/cmat-components-material-color-picker.mjs.map +1 -1
  51. package/fesm2022/cmat-components-material-datetimepicker.mjs +1212 -1287
  52. package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -1
  53. package/fesm2022/cmat-components-navigation.mjs +467 -450
  54. package/fesm2022/cmat-components-navigation.mjs.map +1 -1
  55. package/fesm2022/cmat-components-opt-input.mjs +143 -132
  56. package/fesm2022/cmat-components-opt-input.mjs.map +1 -1
  57. package/fesm2022/cmat-components-org-chart.mjs +68 -83
  58. package/fesm2022/cmat-components-org-chart.mjs.map +1 -1
  59. package/fesm2022/cmat-components-page-header.mjs +18 -24
  60. package/fesm2022/cmat-components-page-header.mjs.map +1 -1
  61. package/fesm2022/cmat-components-pagination.mjs +220 -136
  62. package/fesm2022/cmat-components-pagination.mjs.map +1 -1
  63. package/fesm2022/cmat-components-password-strength.mjs +262 -215
  64. package/fesm2022/cmat-components-password-strength.mjs.map +1 -1
  65. package/fesm2022/cmat-components-popover.mjs +227 -195
  66. package/fesm2022/cmat-components-popover.mjs.map +1 -1
  67. package/fesm2022/cmat-components-progress-bar.mjs +15 -34
  68. package/fesm2022/cmat-components-progress-bar.mjs.map +1 -1
  69. package/fesm2022/cmat-components-qrcode.mjs +95 -88
  70. package/fesm2022/cmat-components-qrcode.mjs.map +1 -1
  71. package/fesm2022/cmat-components-rating.mjs +70 -67
  72. package/fesm2022/cmat-components-rating.mjs.map +1 -1
  73. package/fesm2022/cmat-components-rich-text-editor.mjs +23 -26
  74. package/fesm2022/cmat-components-rich-text-editor.mjs.map +1 -1
  75. package/fesm2022/cmat-components-select-search.mjs +190 -159
  76. package/fesm2022/cmat-components-select-search.mjs.map +1 -1
  77. package/fesm2022/cmat-components-select-table.mjs +276 -213
  78. package/fesm2022/cmat-components-select-table.mjs.map +1 -1
  79. package/fesm2022/cmat-components-select-tree.mjs +178 -128
  80. package/fesm2022/cmat-components-select-tree.mjs.map +1 -1
  81. package/fesm2022/cmat-components-skeleton.mjs +44 -28
  82. package/fesm2022/cmat-components-skeleton.mjs.map +1 -1
  83. package/fesm2022/cmat-components-speed-dial.mjs +107 -163
  84. package/fesm2022/cmat-components-speed-dial.mjs.map +1 -1
  85. package/fesm2022/cmat-components-status-tag.mjs +29 -36
  86. package/fesm2022/cmat-components-status-tag.mjs.map +1 -1
  87. package/fesm2022/cmat-components-table-toolbar.mjs +14 -18
  88. package/fesm2022/cmat-components-table-toolbar.mjs.map +1 -1
  89. package/fesm2022/cmat-components-timeline.mjs +111 -118
  90. package/fesm2022/cmat-components-timeline.mjs.map +1 -1
  91. package/fesm2022/cmat-components-toast.mjs +65 -66
  92. package/fesm2022/cmat-components-toast.mjs.map +1 -1
  93. package/fesm2022/cmat-components-transfer-picker.mjs +130 -160
  94. package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -1
  95. package/fesm2022/cmat-components-treetable.mjs +32 -39
  96. package/fesm2022/cmat-components-treetable.mjs.map +1 -1
  97. package/fesm2022/cmat-components-upload.mjs +186 -176
  98. package/fesm2022/cmat-components-upload.mjs.map +1 -1
  99. package/fesm2022/cmat-directives-animate-on-scroll.mjs +25 -28
  100. package/fesm2022/cmat-directives-animate-on-scroll.mjs.map +1 -1
  101. package/fesm2022/cmat-directives-arrow-cursor.mjs +85 -92
  102. package/fesm2022/cmat-directives-arrow-cursor.mjs.map +1 -1
  103. package/fesm2022/cmat-directives-autofocus.mjs +3 -3
  104. package/fesm2022/cmat-directives-autofocus.mjs.map +1 -1
  105. package/fesm2022/cmat-directives-data-exporter.mjs +49 -50
  106. package/fesm2022/cmat-directives-data-exporter.mjs.map +1 -1
  107. package/fesm2022/cmat-directives-debounce.mjs +16 -19
  108. package/fesm2022/cmat-directives-debounce.mjs.map +1 -1
  109. package/fesm2022/cmat-directives-digit-only.mjs +60 -69
  110. package/fesm2022/cmat-directives-digit-only.mjs.map +1 -1
  111. package/fesm2022/cmat-directives-equal-validator.mjs +3 -3
  112. package/fesm2022/cmat-directives-equal-validator.mjs.map +1 -1
  113. package/fesm2022/cmat-directives-seamless-auto-scroll.mjs +31 -30
  114. package/fesm2022/cmat-directives-seamless-auto-scroll.mjs.map +1 -1
  115. package/fesm2022/cmat-lib-mock-api.mjs +6 -6
  116. package/fesm2022/cmat-lib-mock-api.mjs.map +1 -1
  117. package/fesm2022/cmat-pipes-bytes.mjs +3 -3
  118. package/fesm2022/cmat-pipes-bytes.mjs.map +1 -1
  119. package/fesm2022/cmat-pipes-date-format.mjs +3 -3
  120. package/fesm2022/cmat-pipes-date-format.mjs.map +1 -1
  121. package/fesm2022/cmat-pipes-find-by-key.mjs +3 -3
  122. package/fesm2022/cmat-pipes-find-by-key.mjs.map +1 -1
  123. package/fesm2022/cmat-pipes-group-by.mjs +3 -3
  124. package/fesm2022/cmat-pipes-group-by.mjs.map +1 -1
  125. package/fesm2022/cmat-pipes-keys.mjs +3 -3
  126. package/fesm2022/cmat-pipes-keys.mjs.map +1 -1
  127. package/fesm2022/cmat-pipes-secure.mjs +7 -13
  128. package/fesm2022/cmat-pipes-secure.mjs.map +1 -1
  129. package/fesm2022/cmat-pipes-uppercase.mjs +3 -3
  130. package/fesm2022/cmat-pipes-uppercase.mjs.map +1 -1
  131. package/fesm2022/cmat-services-alert.mjs +26 -27
  132. package/fesm2022/cmat-services-alert.mjs.map +1 -1
  133. package/fesm2022/cmat-services-config.mjs +14 -23
  134. package/fesm2022/cmat-services-config.mjs.map +1 -1
  135. package/fesm2022/cmat-services-confirmation.mjs +8 -8
  136. package/fesm2022/cmat-services-confirmation.mjs.map +1 -1
  137. package/fesm2022/cmat-services-data.mjs +6 -10
  138. package/fesm2022/cmat-services-data.mjs.map +1 -1
  139. package/fesm2022/cmat-services-export-as.mjs +3 -3
  140. package/fesm2022/cmat-services-export-as.mjs.map +1 -1
  141. package/fesm2022/cmat-services-loading.mjs +30 -47
  142. package/fesm2022/cmat-services-loading.mjs.map +1 -1
  143. package/fesm2022/cmat-services-local-storage.mjs +3 -3
  144. package/fesm2022/cmat-services-local-storage.mjs.map +1 -1
  145. package/fesm2022/cmat-services-media-watcher.mjs +43 -34
  146. package/fesm2022/cmat-services-media-watcher.mjs.map +1 -1
  147. package/fesm2022/cmat-services-platform.mjs +3 -3
  148. package/fesm2022/cmat-services-platform.mjs.map +1 -1
  149. package/fesm2022/cmat-services-splash-screen.mjs +3 -3
  150. package/fesm2022/cmat-services-splash-screen.mjs.map +1 -1
  151. package/fesm2022/cmat-services-title.mjs +3 -3
  152. package/fesm2022/cmat-services-title.mjs.map +1 -1
  153. package/fesm2022/cmat-services-translation.mjs +11 -11
  154. package/fesm2022/cmat-services-translation.mjs.map +1 -1
  155. package/fesm2022/cmat-services-utils.mjs +3 -3
  156. package/fesm2022/cmat-services-utils.mjs.map +1 -1
  157. package/fesm2022/cmat.mjs +9228 -7507
  158. package/fesm2022/cmat.mjs.map +1 -1
  159. package/icons/material-icons/heroicons-outline.svg +3 -0
  160. package/icons/material-icons/heroicons-solid.svg +3 -0
  161. package/package.json +10 -1
  162. package/styles/components/bundle.scss +21 -0
  163. package/styles/overrides/angular-material.scss +22 -1
  164. package/tailwind/plugins/theming.js +183 -183
  165. package/types/cmat-components-breadcrumb.d.ts +40 -37
  166. package/types/cmat-components-card.d.ts +11 -13
  167. package/types/cmat-components-carousel.d.ts +87 -113
  168. package/types/cmat-components-cascade.d.ts +84 -65
  169. package/types/cmat-components-chip-input.d.ts +29 -24
  170. package/types/cmat-components-code-editor.d.ts +28 -12
  171. package/types/cmat-components-color-picker.d.ts +236 -0
  172. package/types/cmat-components-custom-formly.d.ts +316 -184
  173. package/types/cmat-components-data-picker.d.ts +372 -0
  174. package/types/cmat-components-date-range.d.ts +31 -36
  175. package/types/cmat-components-date-time-display.d.ts +8 -8
  176. package/types/cmat-components-drawer.d.ts +30 -32
  177. package/types/cmat-components-empty-state.d.ts +9 -10
  178. package/types/cmat-components-file-preview.d.ts +9 -9
  179. package/types/cmat-components-filter-toolbar.d.ts +15 -15
  180. package/types/cmat-components-form-actions.d.ts +5 -5
  181. package/types/cmat-components-fullscreen.d.ts +5 -5
  182. package/types/cmat-components-highlight.d.ts +13 -14
  183. package/types/cmat-components-image-viewer.d.ts +29 -33
  184. package/types/cmat-components-inline-loading.d.ts +6 -6
  185. package/types/cmat-components-json-editor.d.ts +15 -17
  186. package/types/cmat-components-knob-input.d.ts +58 -55
  187. package/types/cmat-components-masonry.d.ts +9 -12
  188. package/types/cmat-components-material-color-picker.d.ts +16 -21
  189. package/types/cmat-components-material-datetimepicker.d.ts +174 -216
  190. package/types/cmat-components-navigation.d.ts +34 -39
  191. package/types/cmat-components-opt-input.d.ts +35 -33
  192. package/types/cmat-components-org-chart.d.ts +8 -9
  193. package/types/cmat-components-page-header.d.ts +9 -9
  194. package/types/cmat-components-pagination.d.ts +36 -40
  195. package/types/cmat-components-password-strength.d.ts +58 -64
  196. package/types/cmat-components-popover.d.ts +22 -32
  197. package/types/cmat-components-progress-bar.d.ts +7 -10
  198. package/types/cmat-components-qrcode.d.ts +22 -22
  199. package/types/cmat-components-rating.d.ts +17 -19
  200. package/types/cmat-components-rich-text-editor.d.ts +11 -12
  201. package/types/cmat-components-select-search.d.ts +48 -36
  202. package/types/cmat-components-select-table.d.ts +38 -34
  203. package/types/cmat-components-select-tree.d.ts +17 -15
  204. package/types/cmat-components-skeleton.d.ts +27 -10
  205. package/types/cmat-components-speed-dial.d.ts +24 -33
  206. package/types/cmat-components-status-tag.d.ts +19 -9
  207. package/types/cmat-components-table-toolbar.d.ts +7 -7
  208. package/types/cmat-components-timeline.d.ts +33 -34
  209. package/types/cmat-components-toast.d.ts +26 -30
  210. package/types/cmat-components-transfer-picker.d.ts +51 -56
  211. package/types/cmat-components-treetable.d.ts +12 -13
  212. package/types/cmat-components-upload.d.ts +33 -38
  213. package/types/cmat-components-x6-angular-shape.d.ts +1 -1
  214. package/types/cmat-directives-animate-on-scroll.d.ts +7 -7
  215. package/types/cmat-directives-arrow-cursor.d.ts +18 -20
  216. package/types/cmat-directives-data-exporter.d.ts +10 -10
  217. package/types/cmat-directives-debounce.d.ts +5 -5
  218. package/types/cmat-directives-digit-only.d.ts +13 -13
  219. package/types/cmat-directives-seamless-auto-scroll.d.ts +7 -7
  220. package/types/cmat-pipes-secure.d.ts +1 -3
  221. package/types/cmat-services-alert.d.ts +11 -12
  222. package/types/cmat-services-config.d.ts +2 -7
  223. package/types/cmat-services-confirmation.d.ts +2 -2
  224. package/types/cmat-services-data.d.ts +0 -1
  225. package/types/cmat-services-loading.d.ts +14 -22
  226. package/types/cmat-services-media-watcher.d.ts +5 -5
  227. package/types/cmat-services-translation.d.ts +4 -5
  228. package/types/cmat.d.ts +2167 -1746
@@ -4,11 +4,10 @@ import { Directionality } from '@angular/cdk/bidi';
4
4
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
5
5
  import { NgStyle, NgClass } from '@angular/common';
6
6
  import * as i0 from '@angular/core';
7
- import { EventEmitter, inject, ElementRef, TemplateRef, Input, HostBinding, ViewChild, Output, ViewEncapsulation, ChangeDetectionStrategy, Component, ViewContainerRef, DestroyRef, HostListener, Directive } from '@angular/core';
7
+ import { output, viewChild, TemplateRef, input, model, EventEmitter, inject, ElementRef, signal, Input, ViewEncapsulation, ChangeDetectionStrategy, Component, ViewContainerRef, DestroyRef, effect, untracked, HostListener, HostBinding, Directive } from '@angular/core';
8
8
  import { Overlay, OverlayConfig } from '@angular/cdk/overlay';
9
9
  import { TemplatePortal } from '@angular/cdk/portal';
10
10
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
11
- import { Subject } from 'rxjs';
12
11
 
13
12
  function throwCmatPopoverMissingError() {
14
13
  throw Error(`cmat-popover-trigger: must pass in an cmat-popover instance.
@@ -26,40 +25,60 @@ function throwCmatPopoverInvalidPositionEnd() {
26
25
  Example: <cmat-popover [position]="['below', 'after']" #popover="cmatPopover"></cmat-popover>`);
27
26
  }
28
27
 
29
- /* eslint-disable @typescript-eslint/naming-convention */
28
+ /* eslint-disable @typescript-eslint/member-ordering */
30
29
  class CmatPopoverComponent {
31
30
  constructor() {
32
- this.closed = new EventEmitter();
33
- this.role = 'dialog';
34
- this.popoverPanelStyles = {};
35
- this.popoverArrowStyles = {};
36
- this.popoverContentStyles = {};
31
+ this.closed = output();
32
+ this.templateRef = viewChild(TemplateRef, /* @ts-ignore */
33
+ ...(ngDevMode ? [{ debugName: "templateRef" }] : /* istanbul ignore next */ []));
34
+ this.popoverPanelStyles = input({}, /* @ts-ignore */
35
+ ...(ngDevMode ? [{ debugName: "popoverPanelStyles" }] : /* istanbul ignore next */ []));
36
+ this.popoverContentStyles = input({}, /* @ts-ignore */
37
+ ...(ngDevMode ? [{ debugName: "popoverContentStyles" }] : /* istanbul ignore next */ []));
38
+ this.popoverArrowStyles = model({}, /* @ts-ignore */
39
+ ...(ngDevMode ? [{ debugName: "popoverArrowStyles" }] : /* istanbul ignore next */ []));
37
40
  this.containerPositioning = false;
38
41
  this.closeDisabled = false;
39
42
  this.classList = {};
40
43
  this._onAnimationStateChange = new EventEmitter();
41
44
  this._hostElementRef = inject(ElementRef);
42
45
  this._dir = inject(Directionality, { optional: true });
43
- this._position = ['below', 'after'];
44
- this._triggerEvent = 'hover';
45
- this._scrollStrategy = 'reposition';
46
- this._enterDelay = 100;
47
- this._leaveDelay = 100;
48
- this._panelOffsetX = 0;
49
- this._panelOffsetY = 0;
50
- this._closeOnPanelClick = false;
51
- this._closeOnBackdropClick = true;
52
- this._disableAnimation = false;
53
- this._focusTrapEnabled = true;
54
- this._focusTrapAutoCaptureEnabled = true;
55
- this._arrowOffsetX = 20;
56
- this._arrowOffsetY = 20;
57
- this._arrowWidth = 16;
58
- this._arrowHeight = 16;
46
+ this._position = signal(['below', 'after'], /* @ts-ignore */
47
+ ...(ngDevMode ? [{ debugName: "_position" }] : /* istanbul ignore next */ []));
48
+ this._triggerEvent = signal('hover', /* @ts-ignore */
49
+ ...(ngDevMode ? [{ debugName: "_triggerEvent" }] : /* istanbul ignore next */ []));
50
+ this._scrollStrategy = signal('reposition', /* @ts-ignore */
51
+ ...(ngDevMode ? [{ debugName: "_scrollStrategy" }] : /* istanbul ignore next */ []));
52
+ this._enterDelay = signal(100, /* @ts-ignore */
53
+ ...(ngDevMode ? [{ debugName: "_enterDelay" }] : /* istanbul ignore next */ []));
54
+ this._leaveDelay = signal(100, /* @ts-ignore */
55
+ ...(ngDevMode ? [{ debugName: "_leaveDelay" }] : /* istanbul ignore next */ []));
56
+ this._panelOffsetX = signal(0, /* @ts-ignore */
57
+ ...(ngDevMode ? [{ debugName: "_panelOffsetX" }] : /* istanbul ignore next */ []));
58
+ this._panelOffsetY = signal(0, /* @ts-ignore */
59
+ ...(ngDevMode ? [{ debugName: "_panelOffsetY" }] : /* istanbul ignore next */ []));
60
+ this._closeOnPanelClick = signal(false, /* @ts-ignore */
61
+ ...(ngDevMode ? [{ debugName: "_closeOnPanelClick" }] : /* istanbul ignore next */ []));
62
+ this._closeOnBackdropClick = signal(true, /* @ts-ignore */
63
+ ...(ngDevMode ? [{ debugName: "_closeOnBackdropClick" }] : /* istanbul ignore next */ []));
64
+ this._disableAnimation = signal(false, /* @ts-ignore */
65
+ ...(ngDevMode ? [{ debugName: "_disableAnimation" }] : /* istanbul ignore next */ []));
66
+ this._focusTrapEnabled = signal(true, /* @ts-ignore */
67
+ ...(ngDevMode ? [{ debugName: "_focusTrapEnabled" }] : /* istanbul ignore next */ []));
68
+ this._focusTrapAutoCaptureEnabled = signal(true, /* @ts-ignore */
69
+ ...(ngDevMode ? [{ debugName: "_focusTrapAutoCaptureEnabled" }] : /* istanbul ignore next */ []));
70
+ this._arrowOffsetX = signal(20, /* @ts-ignore */
71
+ ...(ngDevMode ? [{ debugName: "_arrowOffsetX" }] : /* istanbul ignore next */ []));
72
+ this._arrowOffsetY = signal(20, /* @ts-ignore */
73
+ ...(ngDevMode ? [{ debugName: "_arrowOffsetY" }] : /* istanbul ignore next */ []));
74
+ this._arrowWidth = signal(16, /* @ts-ignore */
75
+ ...(ngDevMode ? [{ debugName: "_arrowWidth" }] : /* istanbul ignore next */ []));
76
+ this._arrowHeight = signal(16, /* @ts-ignore */
77
+ ...(ngDevMode ? [{ debugName: "_arrowHeight" }] : /* istanbul ignore next */ []));
59
78
  this.setPositionClasses();
60
79
  }
61
80
  get position() {
62
- return this._position;
81
+ return this._position();
63
82
  }
64
83
  set position(value) {
65
84
  if (!['before', 'after', 'above', 'below'].includes(value[0])) {
@@ -68,117 +87,104 @@ class CmatPopoverComponent {
68
87
  if (!['before', 'after', 'above', 'below', 'center'].includes(value[1])) {
69
88
  throwCmatPopoverInvalidPositionEnd();
70
89
  }
71
- this._position = value;
90
+ this._position.set(value);
72
91
  this.setPositionClasses();
73
92
  }
74
- // eslint-disable-next-line @typescript-eslint/member-ordering
75
93
  get triggerEvent() {
76
- return this._triggerEvent;
94
+ return this._triggerEvent();
77
95
  }
78
96
  set triggerEvent(value) {
79
- this._triggerEvent = value;
97
+ this._triggerEvent.set(value);
80
98
  }
81
- // eslint-disable-next-line @typescript-eslint/member-ordering
82
99
  get scrollStrategy() {
83
- return this._scrollStrategy;
100
+ return this._scrollStrategy();
84
101
  }
85
102
  set scrollStrategy(value) {
86
- this._scrollStrategy = value;
103
+ this._scrollStrategy.set(value);
87
104
  }
88
- // eslint-disable-next-line @typescript-eslint/member-ordering
89
105
  get enterDelay() {
90
- return this._enterDelay;
106
+ return this._enterDelay();
91
107
  }
92
108
  set enterDelay(value) {
93
- this._enterDelay = value;
109
+ this._enterDelay.set(value);
94
110
  }
95
- // eslint-disable-next-line @typescript-eslint/member-ordering
96
111
  get leaveDelay() {
97
- return this._leaveDelay;
112
+ return this._leaveDelay();
98
113
  }
99
114
  set leaveDelay(value) {
100
- this._leaveDelay = value;
115
+ this._leaveDelay.set(value);
101
116
  }
102
- // eslint-disable-next-line @typescript-eslint/member-ordering
103
117
  get xOffset() {
104
- return this._panelOffsetX;
118
+ return this._panelOffsetX();
105
119
  }
106
120
  set xOffset(value) {
107
- this._panelOffsetX = value;
121
+ this._panelOffsetX.set(value);
108
122
  }
109
- // eslint-disable-next-line @typescript-eslint/member-ordering
110
123
  get yOffset() {
111
- return this._panelOffsetY;
124
+ return this._panelOffsetY();
112
125
  }
113
126
  set yOffset(value) {
114
- this._panelOffsetY = value;
127
+ this._panelOffsetY.set(value);
115
128
  }
116
- // eslint-disable-next-line @typescript-eslint/member-ordering
117
129
  get arrowOffsetX() {
118
- return this._arrowOffsetX;
130
+ return this._arrowOffsetX();
119
131
  }
120
132
  set arrowOffsetX(value) {
121
- this._arrowOffsetX = value;
133
+ this._arrowOffsetX.set(value);
122
134
  }
123
- // eslint-disable-next-line @typescript-eslint/member-ordering
124
135
  get arrowOffsetY() {
125
- return this._arrowOffsetY;
136
+ return this._arrowOffsetY();
126
137
  }
127
138
  set arrowOffsetY(value) {
128
- this._arrowOffsetY = value;
139
+ this._arrowOffsetY.set(value);
129
140
  }
130
- // eslint-disable-next-line @typescript-eslint/member-ordering
131
141
  get arrowWidth() {
132
- return this._arrowWidth;
142
+ return this._arrowWidth();
133
143
  }
134
144
  set arrowWidth(value) {
135
- this._arrowWidth = value;
145
+ this._arrowWidth.set(value);
136
146
  }
137
- // eslint-disable-next-line @typescript-eslint/member-ordering
138
147
  get arrowHeight() {
139
- return this._arrowHeight;
148
+ return this._arrowHeight();
140
149
  }
141
150
  set arrowHeight(value) {
142
- this._arrowHeight = value;
151
+ this._arrowHeight.set(value);
143
152
  }
144
- // eslint-disable-next-line @typescript-eslint/member-ordering
145
153
  get closeOnPanelClick() {
146
- return this._closeOnPanelClick;
154
+ return this._closeOnPanelClick();
147
155
  }
148
156
  set closeOnPanelClick(value) {
149
- this._closeOnPanelClick = coerceBooleanProperty(value);
157
+ this._closeOnPanelClick.set(coerceBooleanProperty(value));
150
158
  }
151
- // eslint-disable-next-line @typescript-eslint/member-ordering
152
159
  get closeOnBackdropClick() {
153
- return this._closeOnBackdropClick;
160
+ return this._closeOnBackdropClick();
154
161
  }
155
162
  set closeOnBackdropClick(value) {
156
- this._closeOnBackdropClick = coerceBooleanProperty(value);
163
+ this._closeOnBackdropClick.set(coerceBooleanProperty(value));
157
164
  }
158
- // eslint-disable-next-line @typescript-eslint/member-ordering
159
165
  get disableAnimation() {
160
- return this._disableAnimation;
166
+ return this._disableAnimation();
161
167
  }
162
168
  set disableAnimation(value) {
163
- this._disableAnimation = coerceBooleanProperty(value);
169
+ this._disableAnimation.set(coerceBooleanProperty(value));
164
170
  }
165
- // eslint-disable-next-line @typescript-eslint/member-ordering
166
171
  get focusTrapEnabled() {
167
- return this._focusTrapEnabled;
172
+ return this._focusTrapEnabled();
168
173
  }
169
174
  set focusTrapEnabled(value) {
170
- this._focusTrapEnabled = coerceBooleanProperty(value);
175
+ this._focusTrapEnabled.set(coerceBooleanProperty(value));
171
176
  }
172
- // eslint-disable-next-line @typescript-eslint/member-ordering
173
177
  get focusTrapAutoCaptureEnabled() {
174
- return this._focusTrapAutoCaptureEnabled;
178
+ return this._focusTrapAutoCaptureEnabled();
175
179
  }
176
180
  set focusTrapAutoCaptureEnabled(value) {
177
- this._focusTrapAutoCaptureEnabled = coerceBooleanProperty(value);
181
+ this._focusTrapAutoCaptureEnabled.set(coerceBooleanProperty(value));
178
182
  }
179
183
  set panelClass(classes) {
180
184
  if (classes?.length) {
181
- this.classList = classes.split(' ').reduce((obj, className) => {
185
+ this.classList = classes
186
+ .split(' ')
187
+ .reduce((obj, className) => {
182
188
  obj[className] = true;
183
189
  return obj;
184
190
  }, {});
@@ -188,7 +194,6 @@ class CmatPopoverComponent {
188
194
  }
189
195
  ngOnDestroy() {
190
196
  this.emitCloseEvent();
191
- this.closed.complete();
192
197
  }
193
198
  handleKeydown(event) {
194
199
  switch (event.code) {
@@ -232,52 +237,49 @@ class CmatPopoverComponent {
232
237
  ? `calc(50% - ${this.arrowHeight / 2}px)`
233
238
  : '';
234
239
  const top = pos[1] === 'below' ? `${this.arrowOffsetY - this.arrowHeight / 2}px` : '';
235
- this.popoverArrowStyles =
236
- pos[0] === 'above' || pos[0] === 'below'
237
- ? {
238
- left: this._dir.value === 'ltr' ? left : right,
239
- right: this._dir.value === 'ltr' ? right : left,
240
- }
241
- : {
242
- top,
243
- bottom,
244
- };
240
+ this.popoverArrowStyles.set(pos[0] === 'above' || pos[0] === 'below'
241
+ ? {
242
+ left: this._dir.value === 'ltr' ? left : right,
243
+ right: this._dir.value === 'ltr' ? right : left,
244
+ }
245
+ : {
246
+ top,
247
+ bottom,
248
+ });
245
249
  }
246
250
  setPositionClasses(pos = this.position) {
247
- this.classList['cmat-popover-before-above'] = pos[0] === 'before' && pos[1] === 'above';
248
- this.classList['cmat-popover-before-center'] = pos[0] === 'before' && pos[1] === 'center';
249
- this.classList['cmat-popover-before-below'] = pos[0] === 'before' && pos[1] === 'below';
250
- this.classList['cmat-popover-after-above'] = pos[0] === 'after' && pos[1] === 'above';
251
- this.classList['cmat-popover-after-center'] = pos[0] === 'after' && pos[1] === 'center';
252
- this.classList['cmat-popover-after-below'] = pos[0] === 'after' && pos[1] === 'below';
253
- this.classList['cmat-popover-above-before'] = pos[0] === 'above' && pos[1] === 'before';
254
- this.classList['cmat-popover-above-center'] = pos[0] === 'above' && pos[1] === 'center';
255
- this.classList['cmat-popover-above-after'] = pos[0] === 'above' && pos[1] === 'after';
256
- this.classList['cmat-popover-below-before'] = pos[0] === 'below' && pos[1] === 'before';
257
- this.classList['cmat-popover-below-center'] = pos[0] === 'below' && pos[1] === 'center';
258
- this.classList['cmat-popover-below-after'] = pos[0] === 'below' && pos[1] === 'after';
259
- }
260
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: CmatPopoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
261
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.11", type: CmatPopoverComponent, isStandalone: true, selector: "cmat-popover", inputs: { popoverPanelStyles: "popoverPanelStyles", popoverArrowStyles: "popoverArrowStyles", popoverContentStyles: "popoverContentStyles", position: "position", triggerEvent: "triggerEvent", scrollStrategy: "scrollStrategy", enterDelay: "enterDelay", leaveDelay: "leaveDelay", xOffset: "xOffset", yOffset: "yOffset", arrowOffsetX: "arrowOffsetX", arrowOffsetY: "arrowOffsetY", arrowWidth: "arrowWidth", arrowHeight: "arrowHeight", closeOnPanelClick: "closeOnPanelClick", closeOnBackdropClick: "closeOnBackdropClick", disableAnimation: "disableAnimation", focusTrapEnabled: "focusTrapEnabled", focusTrapAutoCaptureEnabled: "focusTrapAutoCaptureEnabled", panelClass: "panelClass" }, outputs: { closed: "closed" }, host: { properties: { "attr.role": "this.role" } }, viewQueries: [{ propertyName: "templateRef", first: true, predicate: TemplateRef, descendants: true }], exportAs: ["cmatPopover"], ngImport: i0, template: "<ng-template>\r\n <div class=\"cmat-popover-panel shadow\" role=\"dialog\" [ngClass]=\"classList\" [ngStyle]=\"popoverPanelStyles\"\r\n [class.zoom-in-animation]=\"!disableAnimation\" (keydown)=\"handleKeydown($event)\" (click)=\"onClick()\"\r\n (focus)=\"onFocus()\" (mouseover)=\"onMouseOver()\" (mouseleave)=\"onMouseLeave()\">\r\n <div class=\"cmat-popover-direction-arrow\" [ngStyle]=\"popoverArrowStyles\"></div>\r\n <div class=\"cmat-popover-content\" [ngStyle]=\"popoverContentStyles\" [cdkTrapFocus]=\"focusTrapEnabled\"\r\n [cdkTrapFocusAutoCapture]=\"focusTrapAutoCaptureEnabled\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</ng-template>", styles: [".cmat-popover-panel{max-height:calc(100vh - 48px);padding:.5rem;border-radius:.5rem;font-size:1rem;border-top-width:1px;transform:scale(1)}.cmat-popover-panel[class*=cmat-popover-below]{border-top-width:0;margin-top:calc(.5em + 2px)}.cmat-popover-panel[class*=cmat-popover-above]{margin-bottom:calc(.5em + 2px)}.cmat-popover-panel[class*=cmat-popover-before]{margin-right:calc(.5em + 2px)}[dir=rtl] .cmat-popover-panel[class*=cmat-popover-before]{margin-right:auto;margin-left:calc(.5em + 2px)}.cmat-popover-panel[class*=cmat-popover-after]{margin-left:calc(.5em + 2px)}[dir=rtl] .cmat-popover-panel[class*=cmat-popover-after]{margin-left:auto;margin-right:calc(.5em + 2px)}.cmat-popover-direction-arrow{position:absolute}.cmat-popover-direction-arrow:before,.cmat-popover-direction-arrow:after{position:absolute;display:inline-block;border-style:solid;content:\"\"}.cmat-popover-direction-arrow:before{border-width:.5em;border-color:var(--cmat-divider)}.cmat-popover-direction-arrow:after{border-width:calc(.5em - 1px);border-color:var(--cmat-bg-card)}[class*=cmat-popover-below] .cmat-popover-direction-arrow,[class*=cmat-popover-above] .cmat-popover-direction-arrow{width:1em}[class*=cmat-popover-below] .cmat-popover-direction-arrow:after,[class*=cmat-popover-above] .cmat-popover-direction-arrow:after{left:1px}[dir=rtl] [class*=cmat-popover-below] .cmat-popover-direction-arrow:after,[dir=rtl] [class*=cmat-popover-above] .cmat-popover-direction-arrow:after{right:1px;left:auto}[class*=cmat-popover-below] .cmat-popover-direction-arrow:before,[class*=cmat-popover-below] .cmat-popover-direction-arrow:after,[class*=cmat-popover-above] .cmat-popover-direction-arrow:before,[class*=cmat-popover-above] .cmat-popover-direction-arrow:after{border-left-color:transparent;border-right-color:transparent}[class*=cmat-popover-below] .cmat-popover-direction-arrow{top:0}[class*=cmat-popover-below] .cmat-popover-direction-arrow:before,[class*=cmat-popover-below] .cmat-popover-direction-arrow:after{bottom:0;border-top-width:0}[class*=cmat-popover-above] .cmat-popover-direction-arrow{bottom:0}[class*=cmat-popover-above] .cmat-popover-direction-arrow:before,[class*=cmat-popover-above] .cmat-popover-direction-arrow:after{top:0;border-bottom-width:0}[class*=cmat-popover-before] .cmat-popover-direction-arrow,[class*=cmat-popover-after] .cmat-popover-direction-arrow{height:1em}[class*=cmat-popover-before] .cmat-popover-direction-arrow:after,[class*=cmat-popover-after] .cmat-popover-direction-arrow:after{top:1px}[class*=cmat-popover-before] .cmat-popover-direction-arrow:before,[class*=cmat-popover-before] .cmat-popover-direction-arrow:after,[class*=cmat-popover-after] .cmat-popover-direction-arrow:before,[class*=cmat-popover-after] .cmat-popover-direction-arrow:after{border-top-color:transparent;border-bottom-color:transparent}[class*=cmat-popover-before] .cmat-popover-direction-arrow{right:0}[class*=cmat-popover-before] .cmat-popover-direction-arrow:before,[class*=cmat-popover-before] .cmat-popover-direction-arrow:after{left:0;border-right-width:0}[dir=rtl] [class*=cmat-popover-before] .cmat-popover-direction-arrow{right:auto;left:0}[dir=rtl] [class*=cmat-popover-before] .cmat-popover-direction-arrow:before,[dir=rtl] [class*=cmat-popover-before] .cmat-popover-direction-arrow:after{left:auto;right:0;border-left-width:0}[dir=rtl] [class*=cmat-popover-before] .cmat-popover-direction-arrow:before{border-right-width:.5em}[dir=rtl] [class*=cmat-popover-before] .cmat-popover-direction-arrow:after{border-right-width:calc(.5em - 1px)}[class*=cmat-popover-after] .cmat-popover-direction-arrow{left:0}[class*=cmat-popover-after] .cmat-popover-direction-arrow:before,[class*=cmat-popover-after] .cmat-popover-direction-arrow:after{right:0;border-left-width:0}[dir=rtl] [class*=cmat-popover-after] .cmat-popover-direction-arrow{left:auto;right:0}[dir=rtl] [class*=cmat-popover-after] .cmat-popover-direction-arrow:before,[dir=rtl] [class*=cmat-popover-after] .cmat-popover-direction-arrow:after{right:auto;left:0;border-right-width:0}[dir=rtl] [class*=cmat-popover-after] .cmat-popover-direction-arrow:before{border-left-width:.5em}[dir=rtl] [class*=cmat-popover-after] .cmat-popover-direction-arrow:after{border-left-width:calc(.5em - 1px)}\n", ".zoom-in-animation{opacity:1;transform:scale(1);transition:all 225ms cubic-bezier(0,0,.2,1)}@starting-style{.zoom-in-animation{opacity:0;transform:scale(.5)}}.zoom-out-animation{opacity:0;transform:scale(.5);transition:all 195ms cubic-bezier(.4,0,1,1)}@starting-style{.zoom-out-animation{opacity:1;transform:scale(1)}}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
251
+ this.classList['cmat-popover-before-above'] =
252
+ pos[0] === 'before' && pos[1] === 'above';
253
+ this.classList['cmat-popover-before-center'] =
254
+ pos[0] === 'before' && pos[1] === 'center';
255
+ this.classList['cmat-popover-before-below'] =
256
+ pos[0] === 'before' && pos[1] === 'below';
257
+ this.classList['cmat-popover-after-above'] =
258
+ pos[0] === 'after' && pos[1] === 'above';
259
+ this.classList['cmat-popover-after-center'] =
260
+ pos[0] === 'after' && pos[1] === 'center';
261
+ this.classList['cmat-popover-after-below'] =
262
+ pos[0] === 'after' && pos[1] === 'below';
263
+ this.classList['cmat-popover-above-before'] =
264
+ pos[0] === 'above' && pos[1] === 'before';
265
+ this.classList['cmat-popover-above-center'] =
266
+ pos[0] === 'above' && pos[1] === 'center';
267
+ this.classList['cmat-popover-above-after'] =
268
+ pos[0] === 'above' && pos[1] === 'after';
269
+ this.classList['cmat-popover-below-before'] =
270
+ pos[0] === 'below' && pos[1] === 'before';
271
+ this.classList['cmat-popover-below-center'] =
272
+ pos[0] === 'below' && pos[1] === 'center';
273
+ this.classList['cmat-popover-below-after'] =
274
+ pos[0] === 'below' && pos[1] === 'after';
275
+ }
276
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: CmatPopoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
277
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.2", type: CmatPopoverComponent, isStandalone: true, selector: "cmat-popover", inputs: { popoverPanelStyles: { classPropertyName: "popoverPanelStyles", publicName: "popoverPanelStyles", isSignal: true, isRequired: false, transformFunction: null }, popoverContentStyles: { classPropertyName: "popoverContentStyles", publicName: "popoverContentStyles", isSignal: true, isRequired: false, transformFunction: null }, popoverArrowStyles: { classPropertyName: "popoverArrowStyles", publicName: "popoverArrowStyles", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: false, isRequired: false, transformFunction: null }, triggerEvent: { classPropertyName: "triggerEvent", publicName: "triggerEvent", isSignal: false, isRequired: false, transformFunction: null }, scrollStrategy: { classPropertyName: "scrollStrategy", publicName: "scrollStrategy", isSignal: false, isRequired: false, transformFunction: null }, enterDelay: { classPropertyName: "enterDelay", publicName: "enterDelay", isSignal: false, isRequired: false, transformFunction: null }, leaveDelay: { classPropertyName: "leaveDelay", publicName: "leaveDelay", isSignal: false, isRequired: false, transformFunction: null }, xOffset: { classPropertyName: "xOffset", publicName: "xOffset", isSignal: false, isRequired: false, transformFunction: null }, yOffset: { classPropertyName: "yOffset", publicName: "yOffset", isSignal: false, isRequired: false, transformFunction: null }, arrowOffsetX: { classPropertyName: "arrowOffsetX", publicName: "arrowOffsetX", isSignal: false, isRequired: false, transformFunction: null }, arrowOffsetY: { classPropertyName: "arrowOffsetY", publicName: "arrowOffsetY", isSignal: false, isRequired: false, transformFunction: null }, arrowWidth: { classPropertyName: "arrowWidth", publicName: "arrowWidth", isSignal: false, isRequired: false, transformFunction: null }, arrowHeight: { classPropertyName: "arrowHeight", publicName: "arrowHeight", isSignal: false, isRequired: false, transformFunction: null }, closeOnPanelClick: { classPropertyName: "closeOnPanelClick", publicName: "closeOnPanelClick", isSignal: false, isRequired: false, transformFunction: null }, closeOnBackdropClick: { classPropertyName: "closeOnBackdropClick", publicName: "closeOnBackdropClick", isSignal: false, isRequired: false, transformFunction: null }, disableAnimation: { classPropertyName: "disableAnimation", publicName: "disableAnimation", isSignal: false, isRequired: false, transformFunction: null }, focusTrapEnabled: { classPropertyName: "focusTrapEnabled", publicName: "focusTrapEnabled", isSignal: false, isRequired: false, transformFunction: null }, focusTrapAutoCaptureEnabled: { classPropertyName: "focusTrapAutoCaptureEnabled", publicName: "focusTrapAutoCaptureEnabled", isSignal: false, isRequired: false, transformFunction: null }, panelClass: { classPropertyName: "panelClass", publicName: "panelClass", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { closed: "closed", popoverArrowStyles: "popoverArrowStylesChange" }, viewQueries: [{ propertyName: "templateRef", first: true, predicate: TemplateRef, descendants: true, isSignal: true }], exportAs: ["cmatPopover"], ngImport: i0, template: "<ng-template>\r\n <div\r\n class=\"cmat-popover-panel shadow\"\r\n role=\"dialog\"\r\n [ngClass]=\"classList\"\r\n [ngStyle]=\"popoverPanelStyles()\"\r\n [class.zoom-in-animation]=\"!disableAnimation\"\r\n (keydown)=\"handleKeydown($event)\"\r\n (click)=\"onClick()\"\r\n (focus)=\"onFocus()\"\r\n (mouseover)=\"onMouseOver()\"\r\n (mouseleave)=\"onMouseLeave()\"\r\n >\r\n <div\r\n class=\"cmat-popover-direction-arrow\"\r\n [ngStyle]=\"popoverArrowStyles()\"\r\n ></div>\r\n <div\r\n class=\"cmat-popover-content\"\r\n [ngStyle]=\"popoverContentStyles()\"\r\n [cdkTrapFocus]=\"focusTrapEnabled\"\r\n [cdkTrapFocusAutoCapture]=\"focusTrapAutoCaptureEnabled\"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [".cmat-popover-panel{max-height:calc(100vh - 48px);padding:.5rem;border-radius:.5rem;font-size:1rem;border-top-width:1px;transform:scale(1)}.cmat-popover-panel[class*=cmat-popover-below]{border-top-width:0;margin-top:calc(.5em + 2px)}.cmat-popover-panel[class*=cmat-popover-above]{margin-bottom:calc(.5em + 2px)}.cmat-popover-panel[class*=cmat-popover-before]{margin-right:calc(.5em + 2px)}[dir=rtl] .cmat-popover-panel[class*=cmat-popover-before]{margin-right:auto;margin-left:calc(.5em + 2px)}.cmat-popover-panel[class*=cmat-popover-after]{margin-left:calc(.5em + 2px)}[dir=rtl] .cmat-popover-panel[class*=cmat-popover-after]{margin-left:auto;margin-right:calc(.5em + 2px)}.cmat-popover-direction-arrow{position:absolute}.cmat-popover-direction-arrow:before,.cmat-popover-direction-arrow:after{position:absolute;display:inline-block;border-style:solid;content:\"\"}.cmat-popover-direction-arrow:before{border-width:.5em;border-color:var(--cmat-divider)}.cmat-popover-direction-arrow:after{border-width:calc(.5em - 1px);border-color:var(--cmat-bg-card)}[class*=cmat-popover-below] .cmat-popover-direction-arrow,[class*=cmat-popover-above] .cmat-popover-direction-arrow{width:1em}[class*=cmat-popover-below] .cmat-popover-direction-arrow:after,[class*=cmat-popover-above] .cmat-popover-direction-arrow:after{left:1px}[dir=rtl] [class*=cmat-popover-below] .cmat-popover-direction-arrow:after,[dir=rtl] [class*=cmat-popover-above] .cmat-popover-direction-arrow:after{right:1px;left:auto}[class*=cmat-popover-below] .cmat-popover-direction-arrow:before,[class*=cmat-popover-below] .cmat-popover-direction-arrow:after,[class*=cmat-popover-above] .cmat-popover-direction-arrow:before,[class*=cmat-popover-above] .cmat-popover-direction-arrow:after{border-left-color:transparent;border-right-color:transparent}[class*=cmat-popover-below] .cmat-popover-direction-arrow{top:0}[class*=cmat-popover-below] .cmat-popover-direction-arrow:before,[class*=cmat-popover-below] .cmat-popover-direction-arrow:after{bottom:0;border-top-width:0}[class*=cmat-popover-above] .cmat-popover-direction-arrow{bottom:0}[class*=cmat-popover-above] .cmat-popover-direction-arrow:before,[class*=cmat-popover-above] .cmat-popover-direction-arrow:after{top:0;border-bottom-width:0}[class*=cmat-popover-before] .cmat-popover-direction-arrow,[class*=cmat-popover-after] .cmat-popover-direction-arrow{height:1em}[class*=cmat-popover-before] .cmat-popover-direction-arrow:after,[class*=cmat-popover-after] .cmat-popover-direction-arrow:after{top:1px}[class*=cmat-popover-before] .cmat-popover-direction-arrow:before,[class*=cmat-popover-before] .cmat-popover-direction-arrow:after,[class*=cmat-popover-after] .cmat-popover-direction-arrow:before,[class*=cmat-popover-after] .cmat-popover-direction-arrow:after{border-top-color:transparent;border-bottom-color:transparent}[class*=cmat-popover-before] .cmat-popover-direction-arrow{right:0}[class*=cmat-popover-before] .cmat-popover-direction-arrow:before,[class*=cmat-popover-before] .cmat-popover-direction-arrow:after{left:0;border-right-width:0}[dir=rtl] [class*=cmat-popover-before] .cmat-popover-direction-arrow{right:auto;left:0}[dir=rtl] [class*=cmat-popover-before] .cmat-popover-direction-arrow:before,[dir=rtl] [class*=cmat-popover-before] .cmat-popover-direction-arrow:after{left:auto;right:0;border-left-width:0}[dir=rtl] [class*=cmat-popover-before] .cmat-popover-direction-arrow:before{border-right-width:.5em}[dir=rtl] [class*=cmat-popover-before] .cmat-popover-direction-arrow:after{border-right-width:calc(.5em - 1px)}[class*=cmat-popover-after] .cmat-popover-direction-arrow{left:0}[class*=cmat-popover-after] .cmat-popover-direction-arrow:before,[class*=cmat-popover-after] .cmat-popover-direction-arrow:after{right:0;border-left-width:0}[dir=rtl] [class*=cmat-popover-after] .cmat-popover-direction-arrow{left:auto;right:0}[dir=rtl] [class*=cmat-popover-after] .cmat-popover-direction-arrow:before,[dir=rtl] [class*=cmat-popover-after] .cmat-popover-direction-arrow:after{right:auto;left:0;border-right-width:0}[dir=rtl] [class*=cmat-popover-after] .cmat-popover-direction-arrow:before{border-left-width:.5em}[dir=rtl] [class*=cmat-popover-after] .cmat-popover-direction-arrow:after{border-left-width:calc(.5em - 1px)}\n", ".zoom-in-animation{opacity:1;transform:scale(1);transition:all 225ms cubic-bezier(0,0,.2,1)}@starting-style{.zoom-in-animation{opacity:0;transform:scale(.5)}}.zoom-out-animation{opacity:0;transform:scale(.5);transition:all 195ms cubic-bezier(.4,0,1,1)}@starting-style{.zoom-out-animation{opacity:1;transform:scale(1)}}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
262
278
  }
263
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: CmatPopoverComponent, decorators: [{
279
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: CmatPopoverComponent, decorators: [{
264
280
  type: Component,
265
- args: [{ selector: 'cmat-popover', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, exportAs: 'cmatPopover', imports: [NgStyle, NgClass, A11yModule], template: "<ng-template>\r\n <div class=\"cmat-popover-panel shadow\" role=\"dialog\" [ngClass]=\"classList\" [ngStyle]=\"popoverPanelStyles\"\r\n [class.zoom-in-animation]=\"!disableAnimation\" (keydown)=\"handleKeydown($event)\" (click)=\"onClick()\"\r\n (focus)=\"onFocus()\" (mouseover)=\"onMouseOver()\" (mouseleave)=\"onMouseLeave()\">\r\n <div class=\"cmat-popover-direction-arrow\" [ngStyle]=\"popoverArrowStyles\"></div>\r\n <div class=\"cmat-popover-content\" [ngStyle]=\"popoverContentStyles\" [cdkTrapFocus]=\"focusTrapEnabled\"\r\n [cdkTrapFocusAutoCapture]=\"focusTrapAutoCaptureEnabled\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</ng-template>", styles: [".cmat-popover-panel{max-height:calc(100vh - 48px);padding:.5rem;border-radius:.5rem;font-size:1rem;border-top-width:1px;transform:scale(1)}.cmat-popover-panel[class*=cmat-popover-below]{border-top-width:0;margin-top:calc(.5em + 2px)}.cmat-popover-panel[class*=cmat-popover-above]{margin-bottom:calc(.5em + 2px)}.cmat-popover-panel[class*=cmat-popover-before]{margin-right:calc(.5em + 2px)}[dir=rtl] .cmat-popover-panel[class*=cmat-popover-before]{margin-right:auto;margin-left:calc(.5em + 2px)}.cmat-popover-panel[class*=cmat-popover-after]{margin-left:calc(.5em + 2px)}[dir=rtl] .cmat-popover-panel[class*=cmat-popover-after]{margin-left:auto;margin-right:calc(.5em + 2px)}.cmat-popover-direction-arrow{position:absolute}.cmat-popover-direction-arrow:before,.cmat-popover-direction-arrow:after{position:absolute;display:inline-block;border-style:solid;content:\"\"}.cmat-popover-direction-arrow:before{border-width:.5em;border-color:var(--cmat-divider)}.cmat-popover-direction-arrow:after{border-width:calc(.5em - 1px);border-color:var(--cmat-bg-card)}[class*=cmat-popover-below] .cmat-popover-direction-arrow,[class*=cmat-popover-above] .cmat-popover-direction-arrow{width:1em}[class*=cmat-popover-below] .cmat-popover-direction-arrow:after,[class*=cmat-popover-above] .cmat-popover-direction-arrow:after{left:1px}[dir=rtl] [class*=cmat-popover-below] .cmat-popover-direction-arrow:after,[dir=rtl] [class*=cmat-popover-above] .cmat-popover-direction-arrow:after{right:1px;left:auto}[class*=cmat-popover-below] .cmat-popover-direction-arrow:before,[class*=cmat-popover-below] .cmat-popover-direction-arrow:after,[class*=cmat-popover-above] .cmat-popover-direction-arrow:before,[class*=cmat-popover-above] .cmat-popover-direction-arrow:after{border-left-color:transparent;border-right-color:transparent}[class*=cmat-popover-below] .cmat-popover-direction-arrow{top:0}[class*=cmat-popover-below] .cmat-popover-direction-arrow:before,[class*=cmat-popover-below] .cmat-popover-direction-arrow:after{bottom:0;border-top-width:0}[class*=cmat-popover-above] .cmat-popover-direction-arrow{bottom:0}[class*=cmat-popover-above] .cmat-popover-direction-arrow:before,[class*=cmat-popover-above] .cmat-popover-direction-arrow:after{top:0;border-bottom-width:0}[class*=cmat-popover-before] .cmat-popover-direction-arrow,[class*=cmat-popover-after] .cmat-popover-direction-arrow{height:1em}[class*=cmat-popover-before] .cmat-popover-direction-arrow:after,[class*=cmat-popover-after] .cmat-popover-direction-arrow:after{top:1px}[class*=cmat-popover-before] .cmat-popover-direction-arrow:before,[class*=cmat-popover-before] .cmat-popover-direction-arrow:after,[class*=cmat-popover-after] .cmat-popover-direction-arrow:before,[class*=cmat-popover-after] .cmat-popover-direction-arrow:after{border-top-color:transparent;border-bottom-color:transparent}[class*=cmat-popover-before] .cmat-popover-direction-arrow{right:0}[class*=cmat-popover-before] .cmat-popover-direction-arrow:before,[class*=cmat-popover-before] .cmat-popover-direction-arrow:after{left:0;border-right-width:0}[dir=rtl] [class*=cmat-popover-before] .cmat-popover-direction-arrow{right:auto;left:0}[dir=rtl] [class*=cmat-popover-before] .cmat-popover-direction-arrow:before,[dir=rtl] [class*=cmat-popover-before] .cmat-popover-direction-arrow:after{left:auto;right:0;border-left-width:0}[dir=rtl] [class*=cmat-popover-before] .cmat-popover-direction-arrow:before{border-right-width:.5em}[dir=rtl] [class*=cmat-popover-before] .cmat-popover-direction-arrow:after{border-right-width:calc(.5em - 1px)}[class*=cmat-popover-after] .cmat-popover-direction-arrow{left:0}[class*=cmat-popover-after] .cmat-popover-direction-arrow:before,[class*=cmat-popover-after] .cmat-popover-direction-arrow:after{right:0;border-left-width:0}[dir=rtl] [class*=cmat-popover-after] .cmat-popover-direction-arrow{left:auto;right:0}[dir=rtl] [class*=cmat-popover-after] .cmat-popover-direction-arrow:before,[dir=rtl] [class*=cmat-popover-after] .cmat-popover-direction-arrow:after{right:auto;left:0;border-right-width:0}[dir=rtl] [class*=cmat-popover-after] .cmat-popover-direction-arrow:before{border-left-width:.5em}[dir=rtl] [class*=cmat-popover-after] .cmat-popover-direction-arrow:after{border-left-width:calc(.5em - 1px)}\n", ".zoom-in-animation{opacity:1;transform:scale(1);transition:all 225ms cubic-bezier(0,0,.2,1)}@starting-style{.zoom-in-animation{opacity:0;transform:scale(.5)}}.zoom-out-animation{opacity:0;transform:scale(.5);transition:all 195ms cubic-bezier(.4,0,1,1)}@starting-style{.zoom-out-animation{opacity:1;transform:scale(1)}}\n"] }]
266
- }], ctorParameters: () => [], propDecorators: { closed: [{
267
- type: Output
268
- }], templateRef: [{
269
- type: ViewChild,
270
- args: [TemplateRef]
271
- }], role: [{
272
- type: HostBinding,
273
- args: ['attr.role']
274
- }], popoverPanelStyles: [{
275
- type: Input
276
- }], popoverArrowStyles: [{
277
- type: Input
278
- }], popoverContentStyles: [{
279
- type: Input
280
- }], position: [{
281
+ args: [{ selector: 'cmat-popover', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, exportAs: 'cmatPopover', imports: [NgStyle, NgClass, A11yModule], template: "<ng-template>\r\n <div\r\n class=\"cmat-popover-panel shadow\"\r\n role=\"dialog\"\r\n [ngClass]=\"classList\"\r\n [ngStyle]=\"popoverPanelStyles()\"\r\n [class.zoom-in-animation]=\"!disableAnimation\"\r\n (keydown)=\"handleKeydown($event)\"\r\n (click)=\"onClick()\"\r\n (focus)=\"onFocus()\"\r\n (mouseover)=\"onMouseOver()\"\r\n (mouseleave)=\"onMouseLeave()\"\r\n >\r\n <div\r\n class=\"cmat-popover-direction-arrow\"\r\n [ngStyle]=\"popoverArrowStyles()\"\r\n ></div>\r\n <div\r\n class=\"cmat-popover-content\"\r\n [ngStyle]=\"popoverContentStyles()\"\r\n [cdkTrapFocus]=\"focusTrapEnabled\"\r\n [cdkTrapFocusAutoCapture]=\"focusTrapAutoCaptureEnabled\"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [".cmat-popover-panel{max-height:calc(100vh - 48px);padding:.5rem;border-radius:.5rem;font-size:1rem;border-top-width:1px;transform:scale(1)}.cmat-popover-panel[class*=cmat-popover-below]{border-top-width:0;margin-top:calc(.5em + 2px)}.cmat-popover-panel[class*=cmat-popover-above]{margin-bottom:calc(.5em + 2px)}.cmat-popover-panel[class*=cmat-popover-before]{margin-right:calc(.5em + 2px)}[dir=rtl] .cmat-popover-panel[class*=cmat-popover-before]{margin-right:auto;margin-left:calc(.5em + 2px)}.cmat-popover-panel[class*=cmat-popover-after]{margin-left:calc(.5em + 2px)}[dir=rtl] .cmat-popover-panel[class*=cmat-popover-after]{margin-left:auto;margin-right:calc(.5em + 2px)}.cmat-popover-direction-arrow{position:absolute}.cmat-popover-direction-arrow:before,.cmat-popover-direction-arrow:after{position:absolute;display:inline-block;border-style:solid;content:\"\"}.cmat-popover-direction-arrow:before{border-width:.5em;border-color:var(--cmat-divider)}.cmat-popover-direction-arrow:after{border-width:calc(.5em - 1px);border-color:var(--cmat-bg-card)}[class*=cmat-popover-below] .cmat-popover-direction-arrow,[class*=cmat-popover-above] .cmat-popover-direction-arrow{width:1em}[class*=cmat-popover-below] .cmat-popover-direction-arrow:after,[class*=cmat-popover-above] .cmat-popover-direction-arrow:after{left:1px}[dir=rtl] [class*=cmat-popover-below] .cmat-popover-direction-arrow:after,[dir=rtl] [class*=cmat-popover-above] .cmat-popover-direction-arrow:after{right:1px;left:auto}[class*=cmat-popover-below] .cmat-popover-direction-arrow:before,[class*=cmat-popover-below] .cmat-popover-direction-arrow:after,[class*=cmat-popover-above] .cmat-popover-direction-arrow:before,[class*=cmat-popover-above] .cmat-popover-direction-arrow:after{border-left-color:transparent;border-right-color:transparent}[class*=cmat-popover-below] .cmat-popover-direction-arrow{top:0}[class*=cmat-popover-below] .cmat-popover-direction-arrow:before,[class*=cmat-popover-below] .cmat-popover-direction-arrow:after{bottom:0;border-top-width:0}[class*=cmat-popover-above] .cmat-popover-direction-arrow{bottom:0}[class*=cmat-popover-above] .cmat-popover-direction-arrow:before,[class*=cmat-popover-above] .cmat-popover-direction-arrow:after{top:0;border-bottom-width:0}[class*=cmat-popover-before] .cmat-popover-direction-arrow,[class*=cmat-popover-after] .cmat-popover-direction-arrow{height:1em}[class*=cmat-popover-before] .cmat-popover-direction-arrow:after,[class*=cmat-popover-after] .cmat-popover-direction-arrow:after{top:1px}[class*=cmat-popover-before] .cmat-popover-direction-arrow:before,[class*=cmat-popover-before] .cmat-popover-direction-arrow:after,[class*=cmat-popover-after] .cmat-popover-direction-arrow:before,[class*=cmat-popover-after] .cmat-popover-direction-arrow:after{border-top-color:transparent;border-bottom-color:transparent}[class*=cmat-popover-before] .cmat-popover-direction-arrow{right:0}[class*=cmat-popover-before] .cmat-popover-direction-arrow:before,[class*=cmat-popover-before] .cmat-popover-direction-arrow:after{left:0;border-right-width:0}[dir=rtl] [class*=cmat-popover-before] .cmat-popover-direction-arrow{right:auto;left:0}[dir=rtl] [class*=cmat-popover-before] .cmat-popover-direction-arrow:before,[dir=rtl] [class*=cmat-popover-before] .cmat-popover-direction-arrow:after{left:auto;right:0;border-left-width:0}[dir=rtl] [class*=cmat-popover-before] .cmat-popover-direction-arrow:before{border-right-width:.5em}[dir=rtl] [class*=cmat-popover-before] .cmat-popover-direction-arrow:after{border-right-width:calc(.5em - 1px)}[class*=cmat-popover-after] .cmat-popover-direction-arrow{left:0}[class*=cmat-popover-after] .cmat-popover-direction-arrow:before,[class*=cmat-popover-after] .cmat-popover-direction-arrow:after{right:0;border-left-width:0}[dir=rtl] [class*=cmat-popover-after] .cmat-popover-direction-arrow{left:auto;right:0}[dir=rtl] [class*=cmat-popover-after] .cmat-popover-direction-arrow:before,[dir=rtl] [class*=cmat-popover-after] .cmat-popover-direction-arrow:after{right:auto;left:0;border-right-width:0}[dir=rtl] [class*=cmat-popover-after] .cmat-popover-direction-arrow:before{border-left-width:.5em}[dir=rtl] [class*=cmat-popover-after] .cmat-popover-direction-arrow:after{border-left-width:calc(.5em - 1px)}\n", ".zoom-in-animation{opacity:1;transform:scale(1);transition:all 225ms cubic-bezier(0,0,.2,1)}@starting-style{.zoom-in-animation{opacity:0;transform:scale(.5)}}.zoom-out-animation{opacity:0;transform:scale(.5);transition:all 195ms cubic-bezier(.4,0,1,1)}@starting-style{.zoom-out-animation{opacity:1;transform:scale(1)}}\n"] }]
282
+ }], ctorParameters: () => [], propDecorators: { closed: [{ type: i0.Output, args: ["closed"] }], templateRef: [{ type: i0.ViewChild, args: [i0.forwardRef(() => TemplateRef), { isSignal: true }] }], popoverPanelStyles: [{ type: i0.Input, args: [{ isSignal: true, alias: "popoverPanelStyles", required: false }] }], popoverContentStyles: [{ type: i0.Input, args: [{ isSignal: true, alias: "popoverContentStyles", required: false }] }], popoverArrowStyles: [{ type: i0.Input, args: [{ isSignal: true, alias: "popoverArrowStyles", required: false }] }, { type: i0.Output, args: ["popoverArrowStylesChange"] }], position: [{
281
283
  type: Input
282
284
  }], triggerEvent: [{
283
285
  type: Input
@@ -316,10 +318,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
316
318
  class CmatPopoverTriggerDirective {
317
319
  constructor() {
318
320
  this.ariaHaspopup = true;
319
- this.popoverOpened = new EventEmitter();
320
- this.popoverClosed = new EventEmitter();
321
- this.popoverOpened$ = new Subject();
322
- this.popoverClosed$ = new Subject();
321
+ this.popoverOpened = output();
322
+ this.popoverClosed = output();
323
+ this.popover = input.required({ ...(ngDevMode ? { debugName: "popover" } : /* istanbul ignore next */ {}), alias: 'cmatPopoverTriggerFor' });
324
+ this.targetElement = input(undefined, { ...(ngDevMode ? { debugName: "targetElement" } : /* istanbul ignore next */ {}), alias: 'cmatPopoverTargetAt' });
325
+ this.triggerEvent = input.required({ ...(ngDevMode ? { debugName: "triggerEvent" } : /* istanbul ignore next */ {}), alias: 'cmatPopoverTriggerOn' });
323
326
  this._overlay = inject(Overlay);
324
327
  this._elementRef = inject(ElementRef);
325
328
  this._viewContainerRef = inject(ViewContainerRef);
@@ -332,6 +335,12 @@ class CmatPopoverTriggerDirective {
332
335
  this._leaveTimeoutId = null;
333
336
  this._mouseoverTimer = null;
334
337
  this._openedByMouse = false;
338
+ effect(() => {
339
+ const triggerEvent = this.triggerEvent();
340
+ untracked(() => {
341
+ this._setCurrentConfig(triggerEvent);
342
+ });
343
+ });
335
344
  }
336
345
  get popoverOpen() {
337
346
  return this._popoverOpen;
@@ -340,20 +349,22 @@ class CmatPopoverTriggerDirective {
340
349
  return this._dir?.value === 'rtl' ? 'rtl' : 'ltr';
341
350
  }
342
351
  onClick() {
343
- if (this.popover.triggerEvent === 'click') {
352
+ if (this.popover().triggerEvent === 'click') {
344
353
  this.togglePopover();
345
354
  }
346
355
  }
347
356
  onMouseEnter() {
348
357
  this._halt = false;
349
- if (this.popover.triggerEvent === 'hover') {
358
+ const popover = this.popover();
359
+ if (popover.triggerEvent === 'hover') {
350
360
  this._mouseoverTimer = Number(setTimeout(() => {
351
361
  this.openPopover();
352
- }, this.popover.enterDelay));
362
+ }, popover.enterDelay));
353
363
  }
354
364
  }
355
365
  onMouseLeave() {
356
- if (this.popover.triggerEvent === 'hover') {
366
+ const popover = this.popover();
367
+ if (popover.triggerEvent === 'hover') {
357
368
  if (this._mouseoverTimer !== null) {
358
369
  clearTimeout(this._mouseoverTimer);
359
370
  this._mouseoverTimer = null;
@@ -361,10 +372,10 @@ class CmatPopoverTriggerDirective {
361
372
  if (this._popoverOpen) {
362
373
  this._leaveTimeoutId = window.setTimeout(() => {
363
374
  this._leaveTimeoutId = null;
364
- if (!this.popover.closeDisabled) {
375
+ if (!this.popover().closeDisabled) {
365
376
  this.closePopover();
366
377
  }
367
- }, this.popover.leaveDelay);
378
+ }, popover.leaveDelay);
368
379
  }
369
380
  else {
370
381
  this._halt = true;
@@ -376,23 +387,13 @@ class CmatPopoverTriggerDirective {
376
387
  this._openedByMouse = true;
377
388
  }
378
389
  }
379
- ngOnChanges(changes) {
380
- if (changes['triggerEvent']) {
381
- this._setCurrentConfig();
382
- }
383
- }
384
390
  ngAfterViewInit() {
385
391
  this._checkPopover();
386
- this._setCurrentConfig();
387
- this.popover.closed
388
- .pipe(takeUntilDestroyed(this._destroyRef))
389
- .subscribe(() => this.closePopover());
392
+ this.popover().closed.subscribe(() => this.closePopover());
390
393
  }
391
394
  ngOnDestroy() {
392
395
  this._clearLeaveTimeout();
393
396
  this.destroyPopover();
394
- this.popoverOpened$.complete();
395
- this.popoverClosed$.complete();
396
397
  }
397
398
  togglePopover() {
398
399
  return this._popoverOpen ? this.closePopover() : this.openPopover();
@@ -428,12 +429,13 @@ class CmatPopoverTriggerDirective {
428
429
  }
429
430
  _subscribeToBackdrop() {
430
431
  if (this._overlayRef) {
431
- if (this.triggerEvent === 'click' && this.popover.closeOnBackdropClick === true) {
432
+ if (this.triggerEvent() === 'click' &&
433
+ this.popover().closeOnBackdropClick === true) {
432
434
  this._overlayRef
433
435
  .backdropClick()
434
436
  .pipe(takeUntilDestroyed(this._destroyRef))
435
437
  .subscribe(() => {
436
- this.popover.emitCloseEvent();
438
+ this.popover().emitCloseEvent();
437
439
  });
438
440
  }
439
441
  }
@@ -461,25 +463,27 @@ class CmatPopoverTriggerDirective {
461
463
  _setPopoverOpened() {
462
464
  if (!this._popoverOpen) {
463
465
  this._popoverOpen = true;
464
- this.popoverOpened$.next();
465
466
  this.popoverOpened.emit();
466
467
  }
467
468
  }
468
469
  _setPopoverClosed() {
469
470
  if (this._popoverOpen) {
470
471
  this._popoverOpen = false;
471
- this.popoverClosed$.next();
472
472
  this.popoverClosed.emit();
473
473
  }
474
474
  }
475
475
  _checkPopover() {
476
- if (!this.popover) {
476
+ if (!this.popover()) {
477
477
  throwCmatPopoverMissingError();
478
478
  }
479
479
  }
480
480
  _createOverlay() {
481
481
  if (!this._overlayRef) {
482
- this._portal = new TemplatePortal(this.popover.templateRef, this._viewContainerRef);
482
+ const templateRef = this.popover().templateRef();
483
+ if (!templateRef) {
484
+ throw new Error('Popover templateRef is not available');
485
+ }
486
+ this._portal = new TemplatePortal(templateRef, this._viewContainerRef);
483
487
  const config = this._getOverlayConfig();
484
488
  this._subscribeToPositions(config.positionStrategy);
485
489
  this._overlayRef = this._overlay.create(config);
@@ -489,12 +493,12 @@ class CmatPopoverTriggerDirective {
489
493
  _getOverlayConfig() {
490
494
  const overlayState = new OverlayConfig();
491
495
  overlayState.positionStrategy = this._getPosition();
492
- if (this.triggerEvent === 'click') {
496
+ if (this.triggerEvent() === 'click') {
493
497
  overlayState.hasBackdrop = true;
494
498
  overlayState.backdropClass = 'cdk-overlay-transparent-backdrop';
495
499
  }
496
500
  overlayState.direction = this._dir;
497
- overlayState.scrollStrategy = this._getOverlayScrollStrategy(this.popover.scrollStrategy);
501
+ overlayState.scrollStrategy = this._getOverlayScrollStrategy(this.popover().scrollStrategy);
498
502
  return overlayState;
499
503
  }
500
504
  _getOverlayScrollStrategy(strategy) {
@@ -523,53 +527,80 @@ class CmatPopoverTriggerDirective {
523
527
  : change.connectionPair.overlayY === 'bottom'
524
528
  ? 'above'
525
529
  : 'center';
526
- const pos = this.popover.position[0] === 'above' || this.popover.position[0] === 'below'
530
+ const popover = this.popover();
531
+ const pos = popover.position[0] === 'above' || popover.position[0] === 'below'
527
532
  ? [posY, posX]
528
533
  : [posX, posY];
529
- this.popover.setCurrentStyles(pos);
530
- this.popover.setPositionClasses(pos);
534
+ this.popover().setCurrentStyles(pos);
535
+ this.popover().setPositionClasses(pos);
531
536
  });
532
537
  }
533
538
  _getPosition() {
534
- const [originX, origin2ndX, origin3rdX] = this.popover.position[0] === 'before' || this.popover.position[1] === 'after'
539
+ const popover = this.popover();
540
+ const [originX, origin2ndX, origin3rdX] = popover.position[0] === 'before' || popover.position[1] === 'after'
535
541
  ? ['start', 'center', 'end']
536
- : this.popover.position[0] === 'after' || this.popover.position[1] === 'before'
542
+ : popover.position[0] === 'after' || popover.position[1] === 'before'
537
543
  ? ['end', 'center', 'start']
538
544
  : ['center', 'start', 'end'];
539
- const [originY, origin2ndY, origin3rdY] = this.popover.position[0] === 'above' || this.popover.position[1] === 'below'
545
+ const popoverValue = this.popover();
546
+ const [originY, origin2ndY, origin3rdY] = popoverValue.position[0] === 'above' ||
547
+ popoverValue.position[1] === 'below'
540
548
  ? ['top', 'center', 'bottom']
541
- : this.popover.position[0] === 'below' || this.popover.position[1] === 'above'
549
+ : popoverValue.position[0] === 'below' ||
550
+ popoverValue.position[1] === 'above'
542
551
  ? ['bottom', 'center', 'top']
543
552
  : ['center', 'top', 'bottom'];
544
- const [overlayX, overlayFallbackX] = this.popover.position[0] === 'below' || this.popover.position[0] === 'above'
553
+ const popoverVal = this.popover();
554
+ const [overlayX, overlayFallbackX] = popoverVal.position[0] === 'below' || popoverVal.position[0] === 'above'
545
555
  ? [originX, originX]
546
- : this.popover.position[0] === 'before'
556
+ : popoverVal.position[0] === 'before'
547
557
  ? ['end', 'start']
548
558
  : ['start', 'end'];
549
- const [overlayY, overlayFallbackY] = this.popover.position[0] === 'before' || this.popover.position[0] === 'after'
559
+ const popoverInput = this.popover();
560
+ const [overlayY, overlayFallbackY] = popoverInput.position[0] === 'before' ||
561
+ popoverInput.position[0] === 'after'
550
562
  ? [originY, originY]
551
- : this.popover.position[0] === 'below'
563
+ : popoverInput.position[0] === 'below'
552
564
  ? ['top', 'bottom']
553
565
  : ['bottom', 'top'];
554
566
  const originFallbackX = overlayX;
555
567
  const originFallbackY = overlayY;
556
- const offsetX = this.popover.xOffset && !isNaN(Number(this.popover.xOffset))
557
- ? Number(this.dir === 'ltr' ? this.popover.xOffset : -this.popover.xOffset)
568
+ const popover1 = this.popover();
569
+ const offsetX = popover1.xOffset && !isNaN(Number(popover1.xOffset))
570
+ ? Number(this.dir === 'ltr' ? popover1.xOffset : -popover1.xOffset)
558
571
  : 0;
559
- const offsetY = this.popover.yOffset && !isNaN(Number(this.popover.yOffset))
560
- ? Number(this.popover.yOffset)
572
+ const popover2 = this.popover();
573
+ const offsetY = popover2.yOffset && !isNaN(Number(popover2.yOffset))
574
+ ? Number(popover2.yOffset)
561
575
  : 0;
562
576
  let element = this._elementRef;
563
- if (typeof this.targetElement !== 'undefined') {
564
- this.popover.containerPositioning = true;
565
- element = this.targetElement._elementRef;
577
+ const popover3 = this.popover();
578
+ const targetElement = this.targetElement();
579
+ if (typeof targetElement !== 'undefined') {
580
+ popover3.containerPositioning = true;
581
+ element = targetElement._elementRef;
566
582
  }
567
- let positions = [{ originX, originY, overlayX, overlayY }];
568
- if (this.popover.position[0] === 'above' || this.popover.position[0] === 'below') {
583
+ let positions = [
584
+ { originX, originY, overlayX, overlayY },
585
+ ];
586
+ if (popover3.position[0] === 'above' ||
587
+ popover3.position[0] === 'below') {
569
588
  positions = [
570
589
  { originX, originY, overlayX, overlayY, offsetY },
571
- { originX: origin2ndX, originY, overlayX: origin2ndX, overlayY, offsetY },
572
- { originX: origin3rdX, originY, overlayX: origin3rdX, overlayY, offsetY },
590
+ {
591
+ originX: origin2ndX,
592
+ originY,
593
+ overlayX: origin2ndX,
594
+ overlayY,
595
+ offsetY,
596
+ },
597
+ {
598
+ originX: origin3rdX,
599
+ originY,
600
+ overlayX: origin3rdX,
601
+ overlayY,
602
+ offsetY,
603
+ },
573
604
  {
574
605
  originX,
575
606
  originY: originFallbackY,
@@ -593,11 +624,24 @@ class CmatPopoverTriggerDirective {
593
624
  },
594
625
  ];
595
626
  }
596
- if (this.popover.position[0] === 'before' || this.popover.position[0] === 'after') {
627
+ if (popover3.position[0] === 'before' ||
628
+ popover3.position[0] === 'after') {
597
629
  positions = [
598
630
  { originX, originY, overlayX, overlayY, offsetX },
599
- { originX, originY: origin2ndY, overlayX, overlayY: origin2ndY, offsetX },
600
- { originX, originY: origin3rdY, overlayX, overlayY: origin3rdY, offsetX },
631
+ {
632
+ originX,
633
+ originY: origin2ndY,
634
+ overlayX,
635
+ overlayY: origin2ndY,
636
+ offsetX,
637
+ },
638
+ {
639
+ originX,
640
+ originY: origin3rdY,
641
+ overlayX,
642
+ overlayY: origin3rdY,
643
+ offsetX,
644
+ },
601
645
  {
602
646
  originX: originFallbackX,
603
647
  originY,
@@ -641,38 +685,26 @@ class CmatPopoverTriggerDirective {
641
685
  this._leaveTimeoutId = null;
642
686
  }
643
687
  }
644
- _setCurrentConfig() {
645
- if (this.triggerEvent) {
646
- this.popover.triggerEvent = this.triggerEvent;
688
+ _setCurrentConfig(triggerEvent) {
689
+ const popover = this.popover();
690
+ if (triggerEvent) {
691
+ popover.triggerEvent = triggerEvent;
647
692
  }
648
- this.popover.setCurrentStyles();
693
+ popover.setCurrentStyles();
649
694
  }
650
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: CmatPopoverTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
651
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.11", type: CmatPopoverTriggerDirective, isStandalone: true, selector: "[cmatPopoverTriggerFor],[cmatPopoverTargetAt],[cmatPopoverTriggerOn]", inputs: { popover: ["cmatPopoverTriggerFor", "popover"], targetElement: ["cmatPopoverTargetAt", "targetElement"], triggerEvent: ["cmatPopoverTriggerOn", "triggerEvent"] }, outputs: { popoverOpened: "popoverOpened", popoverClosed: "popoverClosed" }, host: { listeners: { "click": "onClick($event)", "mouseenter": "onMouseEnter($event)", "mouseleave": "onMouseLeave($event)", "mousedown": "handleMousedown($event)" }, properties: { "attr.aria-haspopup": "this.ariaHaspopup" } }, exportAs: ["cmatPopoverTrigger"], usesOnChanges: true, ngImport: i0 }); }
695
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: CmatPopoverTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
696
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.2", type: CmatPopoverTriggerDirective, isStandalone: true, selector: "[cmatPopoverTriggerFor],[cmatPopoverTargetAt],[cmatPopoverTriggerOn]", inputs: { popover: { classPropertyName: "popover", publicName: "cmatPopoverTriggerFor", isSignal: true, isRequired: true, transformFunction: null }, targetElement: { classPropertyName: "targetElement", publicName: "cmatPopoverTargetAt", isSignal: true, isRequired: false, transformFunction: null }, triggerEvent: { classPropertyName: "triggerEvent", publicName: "cmatPopoverTriggerOn", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { popoverOpened: "popoverOpened", popoverClosed: "popoverClosed" }, host: { listeners: { "click": "onClick($event)", "mouseenter": "onMouseEnter($event)", "mouseleave": "onMouseLeave($event)", "mousedown": "handleMousedown($event)" }, properties: { "attr.aria-haspopup": "this.ariaHaspopup" } }, exportAs: ["cmatPopoverTrigger"], ngImport: i0 }); }
652
697
  }
653
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: CmatPopoverTriggerDirective, decorators: [{
698
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: CmatPopoverTriggerDirective, decorators: [{
654
699
  type: Directive,
655
700
  args: [{
656
701
  selector: '[cmatPopoverTriggerFor],[cmatPopoverTargetAt],[cmatPopoverTriggerOn]',
657
- exportAs: 'cmatPopoverTrigger'
702
+ exportAs: 'cmatPopoverTrigger',
658
703
  }]
659
- }], propDecorators: { ariaHaspopup: [{
704
+ }], ctorParameters: () => [], propDecorators: { ariaHaspopup: [{
660
705
  type: HostBinding,
661
706
  args: ['attr.aria-haspopup']
662
- }], popover: [{
663
- type: Input,
664
- args: ['cmatPopoverTriggerFor']
665
- }], targetElement: [{
666
- type: Input,
667
- args: ['cmatPopoverTargetAt']
668
- }], triggerEvent: [{
669
- type: Input,
670
- args: ['cmatPopoverTriggerOn']
671
- }], popoverOpened: [{
672
- type: Output
673
- }], popoverClosed: [{
674
- type: Output
675
- }], onClick: [{
707
+ }], popoverOpened: [{ type: i0.Output, args: ["popoverOpened"] }], popoverClosed: [{ type: i0.Output, args: ["popoverClosed"] }], popover: [{ type: i0.Input, args: [{ isSignal: true, alias: "cmatPopoverTriggerFor", required: true }] }], targetElement: [{ type: i0.Input, args: [{ isSignal: true, alias: "cmatPopoverTargetAt", required: false }] }], triggerEvent: [{ type: i0.Input, args: [{ isSignal: true, alias: "cmatPopoverTriggerOn", required: true }] }], onClick: [{
676
708
  type: HostListener,
677
709
  args: ['click', ['$event']]
678
710
  }], onMouseEnter: [{
@@ -690,10 +722,10 @@ class CmatPopoverTargetDirective {
690
722
  constructor() {
691
723
  this.elementRef = inject(ElementRef);
692
724
  }
693
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: CmatPopoverTargetDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
694
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.11", type: CmatPopoverTargetDirective, isStandalone: true, selector: "cmat-popover-target, [cmatPopoverTarget]", exportAs: ["cmatPopoverTarget"], ngImport: i0 }); }
725
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: CmatPopoverTargetDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
726
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.2", type: CmatPopoverTargetDirective, isStandalone: true, selector: "cmat-popover-target, [cmatPopoverTarget]", exportAs: ["cmatPopoverTarget"], ngImport: i0 }); }
695
727
  }
696
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: CmatPopoverTargetDirective, decorators: [{
728
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: CmatPopoverTargetDirective, decorators: [{
697
729
  type: Directive,
698
730
  args: [{
699
731
  selector: 'cmat-popover-target, [cmatPopoverTarget]',