cmat 0.0.78 → 0.0.80

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 (211) hide show
  1. package/fesm2022/cmat-components-adapter.mjs +9 -46
  2. package/fesm2022/cmat-components-adapter.mjs.map +1 -1
  3. package/fesm2022/cmat-components-breadcrumb.mjs +104 -205
  4. package/fesm2022/cmat-components-breadcrumb.mjs.map +1 -1
  5. package/fesm2022/cmat-components-card.mjs +4 -8
  6. package/fesm2022/cmat-components-card.mjs.map +1 -1
  7. package/fesm2022/cmat-components-carousel.mjs +21 -21
  8. package/fesm2022/cmat-components-carousel.mjs.map +1 -1
  9. package/fesm2022/cmat-components-cascade.mjs +18 -24
  10. package/fesm2022/cmat-components-cascade.mjs.map +1 -1
  11. package/fesm2022/cmat-components-chip-input.mjs +21 -21
  12. package/fesm2022/cmat-components-chip-input.mjs.map +1 -1
  13. package/fesm2022/cmat-components-code-editor.mjs +4 -22
  14. package/fesm2022/cmat-components-code-editor.mjs.map +1 -1
  15. package/fesm2022/cmat-components-custom-formly.mjs +181 -245
  16. package/fesm2022/cmat-components-custom-formly.mjs.map +1 -1
  17. package/fesm2022/cmat-components-date-range.mjs +12 -184
  18. package/fesm2022/cmat-components-date-range.mjs.map +1 -1
  19. package/fesm2022/cmat-components-date-time-display.mjs +3 -15
  20. package/fesm2022/cmat-components-date-time-display.mjs.map +1 -1
  21. package/fesm2022/cmat-components-drawer.mjs +10 -100
  22. package/fesm2022/cmat-components-drawer.mjs.map +1 -1
  23. package/fesm2022/cmat-components-empty-state.mjs +4 -25
  24. package/fesm2022/cmat-components-empty-state.mjs.map +1 -1
  25. package/fesm2022/cmat-components-file-preview.mjs +3 -21
  26. package/fesm2022/cmat-components-file-preview.mjs.map +1 -1
  27. package/fesm2022/cmat-components-filter-toolbar.mjs +7 -50
  28. package/fesm2022/cmat-components-filter-toolbar.mjs.map +1 -1
  29. package/fesm2022/cmat-components-form-actions.mjs +3 -9
  30. package/fesm2022/cmat-components-form-actions.mjs.map +1 -1
  31. package/fesm2022/cmat-components-fullscreen.mjs +4 -4
  32. package/fesm2022/cmat-components-fullscreen.mjs.map +1 -1
  33. package/fesm2022/cmat-components-highlight.mjs +6 -32
  34. package/fesm2022/cmat-components-highlight.mjs.map +1 -1
  35. package/fesm2022/cmat-components-image-viewer.mjs +12 -24
  36. package/fesm2022/cmat-components-image-viewer.mjs.map +1 -1
  37. package/fesm2022/cmat-components-inline-loading.mjs +3 -12
  38. package/fesm2022/cmat-components-inline-loading.mjs.map +1 -1
  39. package/fesm2022/cmat-components-json-editor.mjs +11 -16
  40. package/fesm2022/cmat-components-json-editor.mjs.map +1 -1
  41. package/fesm2022/cmat-components-knob-input.mjs +24 -18
  42. package/fesm2022/cmat-components-knob-input.mjs.map +1 -1
  43. package/fesm2022/cmat-components-masonry.mjs +8 -17
  44. package/fesm2022/cmat-components-masonry.mjs.map +1 -1
  45. package/fesm2022/cmat-components-material-color-picker.mjs +13 -34
  46. package/fesm2022/cmat-components-material-color-picker.mjs.map +1 -1
  47. package/fesm2022/cmat-components-material-datetimepicker.mjs +80 -436
  48. package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -1
  49. package/fesm2022/cmat-components-navigation.mjs +266 -816
  50. package/fesm2022/cmat-components-navigation.mjs.map +1 -1
  51. package/fesm2022/cmat-components-opt-input.mjs +7 -10
  52. package/fesm2022/cmat-components-opt-input.mjs.map +1 -1
  53. package/fesm2022/cmat-components-org-chart.mjs +11 -11
  54. package/fesm2022/cmat-components-org-chart.mjs.map +1 -1
  55. package/fesm2022/cmat-components-page-header.mjs +8 -19
  56. package/fesm2022/cmat-components-page-header.mjs.map +1 -1
  57. package/fesm2022/cmat-components-pagination.mjs +113 -108
  58. package/fesm2022/cmat-components-pagination.mjs.map +1 -1
  59. package/fesm2022/cmat-components-password-strength.mjs +13 -16
  60. package/fesm2022/cmat-components-password-strength.mjs.map +1 -1
  61. package/fesm2022/cmat-components-popover.mjs +15 -151
  62. package/fesm2022/cmat-components-popover.mjs.map +1 -1
  63. package/fesm2022/cmat-components-progress-bar.mjs +16 -26
  64. package/fesm2022/cmat-components-progress-bar.mjs.map +1 -1
  65. package/fesm2022/cmat-components-qrcode.mjs +5 -11
  66. package/fesm2022/cmat-components-qrcode.mjs.map +1 -1
  67. package/fesm2022/cmat-components-rating.mjs +14 -14
  68. package/fesm2022/cmat-components-rating.mjs.map +1 -1
  69. package/fesm2022/cmat-components-rich-text-editor.mjs +4 -25
  70. package/fesm2022/cmat-components-rich-text-editor.mjs.map +1 -1
  71. package/fesm2022/cmat-components-select-search.mjs +51 -79
  72. package/fesm2022/cmat-components-select-search.mjs.map +1 -1
  73. package/fesm2022/cmat-components-select-table.mjs +204 -162
  74. package/fesm2022/cmat-components-select-table.mjs.map +1 -1
  75. package/fesm2022/cmat-components-select-tree.mjs +142 -97
  76. package/fesm2022/cmat-components-select-tree.mjs.map +1 -1
  77. package/fesm2022/cmat-components-skeleton.mjs +4 -22
  78. package/fesm2022/cmat-components-skeleton.mjs.map +1 -1
  79. package/fesm2022/cmat-components-speed-dial.mjs +14 -19
  80. package/fesm2022/cmat-components-speed-dial.mjs.map +1 -1
  81. package/fesm2022/cmat-components-status-tag.mjs +3 -18
  82. package/fesm2022/cmat-components-status-tag.mjs.map +1 -1
  83. package/fesm2022/cmat-components-table-toolbar.mjs +3 -15
  84. package/fesm2022/cmat-components-table-toolbar.mjs.map +1 -1
  85. package/fesm2022/cmat-components-timeline.mjs +18 -21
  86. package/fesm2022/cmat-components-timeline.mjs.map +1 -1
  87. package/fesm2022/cmat-components-toast.mjs +20 -20
  88. package/fesm2022/cmat-components-toast.mjs.map +1 -1
  89. package/fesm2022/cmat-components-transfer-picker.mjs +159 -123
  90. package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -1
  91. package/fesm2022/cmat-components-treetable.mjs +17 -19
  92. package/fesm2022/cmat-components-treetable.mjs.map +1 -1
  93. package/fesm2022/cmat-components-upload.mjs +35 -57
  94. package/fesm2022/cmat-components-upload.mjs.map +1 -1
  95. package/fesm2022/cmat-components-x6-angular-shape.mjs +0 -4
  96. package/fesm2022/cmat-components-x6-angular-shape.mjs.map +1 -1
  97. package/fesm2022/cmat-directives-animate-on-scroll.mjs +6 -27
  98. package/fesm2022/cmat-directives-animate-on-scroll.mjs.map +1 -1
  99. package/fesm2022/cmat-directives-arrow-cursor.mjs +7 -9
  100. package/fesm2022/cmat-directives-arrow-cursor.mjs.map +1 -1
  101. package/fesm2022/cmat-directives-autofocus.mjs +3 -3
  102. package/fesm2022/cmat-directives-data-exporter.mjs +24 -33
  103. package/fesm2022/cmat-directives-data-exporter.mjs.map +1 -1
  104. package/fesm2022/cmat-directives-debounce.mjs +14 -17
  105. package/fesm2022/cmat-directives-debounce.mjs.map +1 -1
  106. package/fesm2022/cmat-directives-digit-only.mjs +6 -23
  107. package/fesm2022/cmat-directives-digit-only.mjs.map +1 -1
  108. package/fesm2022/cmat-directives-equal-validator.mjs +3 -3
  109. package/fesm2022/cmat-directives-seamless-auto-scroll.mjs +4 -11
  110. package/fesm2022/cmat-directives-seamless-auto-scroll.mjs.map +1 -1
  111. package/fesm2022/cmat-lib-mock-api.mjs +6 -43
  112. package/fesm2022/cmat-lib-mock-api.mjs.map +1 -1
  113. package/fesm2022/cmat-pipes-bytes.mjs +3 -3
  114. package/fesm2022/cmat-pipes-date-format.mjs +3 -3
  115. package/fesm2022/cmat-pipes-find-by-key.mjs +3 -5
  116. package/fesm2022/cmat-pipes-find-by-key.mjs.map +1 -1
  117. package/fesm2022/cmat-pipes-group-by.mjs +3 -3
  118. package/fesm2022/cmat-pipes-keys.mjs +3 -3
  119. package/fesm2022/cmat-pipes-secure.mjs +8 -12
  120. package/fesm2022/cmat-pipes-secure.mjs.map +1 -1
  121. package/fesm2022/cmat-pipes-uppercase.mjs +3 -3
  122. package/fesm2022/cmat-services-alert.mjs +3 -3
  123. package/fesm2022/cmat-services-config.mjs +50 -26
  124. package/fesm2022/cmat-services-config.mjs.map +1 -1
  125. package/fesm2022/cmat-services-confirmation.mjs +9 -11
  126. package/fesm2022/cmat-services-confirmation.mjs.map +1 -1
  127. package/fesm2022/cmat-services-data.mjs +56 -101
  128. package/fesm2022/cmat-services-data.mjs.map +1 -1
  129. package/fesm2022/cmat-services-export-as.mjs +4 -32
  130. package/fesm2022/cmat-services-export-as.mjs.map +1 -1
  131. package/fesm2022/cmat-services-loading.mjs +49 -40
  132. package/fesm2022/cmat-services-loading.mjs.map +1 -1
  133. package/fesm2022/cmat-services-local-storage.mjs +3 -3
  134. package/fesm2022/cmat-services-media-watcher.mjs +19 -25
  135. package/fesm2022/cmat-services-media-watcher.mjs.map +1 -1
  136. package/fesm2022/cmat-services-platform.mjs +3 -10
  137. package/fesm2022/cmat-services-platform.mjs.map +1 -1
  138. package/fesm2022/cmat-services-splash-screen.mjs +8 -13
  139. package/fesm2022/cmat-services-splash-screen.mjs.map +1 -1
  140. package/fesm2022/cmat-services-title.mjs +8 -12
  141. package/fesm2022/cmat-services-title.mjs.map +1 -1
  142. package/fesm2022/cmat-services-translation.mjs +3 -3
  143. package/fesm2022/cmat-services-utils.mjs +5 -27
  144. package/fesm2022/cmat-services-utils.mjs.map +1 -1
  145. package/fesm2022/cmat-validators.mjs +0 -8
  146. package/fesm2022/cmat-validators.mjs.map +1 -1
  147. package/fesm2022/cmat.mjs +3477 -3795
  148. package/fesm2022/cmat.mjs.map +1 -1
  149. package/package.json +1 -1
  150. package/tailwind/plugins/helpers.js +1 -10
  151. package/tailwind/plugins/scrollbar/index.js +0 -1
  152. package/tailwind/plugins/scrollbar/typedefs.js +1 -7
  153. package/tailwind/plugins/scrollbar/utilities.js +9 -58
  154. package/tailwind/plugins/scrollbar/variants.js +2 -17
  155. package/tailwind/plugins/theming.js +1 -57
  156. package/tailwind/utils/generate-contrasts.js +1 -12
  157. package/tailwind/utils/generate-palette.js +1 -32
  158. package/types/cmat-components-adapter.d.ts +0 -25
  159. package/types/cmat-components-breadcrumb.d.ts +25 -175
  160. package/types/cmat-components-carousel.d.ts +2 -20
  161. package/types/cmat-components-cascade.d.ts +4 -4
  162. package/types/cmat-components-chip-input.d.ts +4 -3
  163. package/types/cmat-components-code-editor.d.ts +0 -18
  164. package/types/cmat-components-custom-formly.d.ts +30 -37
  165. package/types/cmat-components-date-range.d.ts +1 -72
  166. package/types/cmat-components-date-time-display.d.ts +0 -15
  167. package/types/cmat-components-drawer.d.ts +2 -44
  168. package/types/cmat-components-empty-state.d.ts +0 -21
  169. package/types/cmat-components-file-preview.d.ts +0 -18
  170. package/types/cmat-components-filter-toolbar.d.ts +3 -43
  171. package/types/cmat-components-form-actions.d.ts +0 -6
  172. package/types/cmat-components-image-viewer.d.ts +5 -18
  173. package/types/cmat-components-inline-loading.d.ts +0 -9
  174. package/types/cmat-components-json-editor.d.ts +0 -1
  175. package/types/cmat-components-knob-input.d.ts +3 -3
  176. package/types/cmat-components-masonry.d.ts +1 -2
  177. package/types/cmat-components-material-color-picker.d.ts +1 -2
  178. package/types/cmat-components-material-datetimepicker.d.ts +6 -272
  179. package/types/cmat-components-navigation.d.ts +34 -171
  180. package/types/cmat-components-opt-input.d.ts +1 -1
  181. package/types/cmat-components-page-header.d.ts +2 -16
  182. package/types/cmat-components-pagination.d.ts +26 -27
  183. package/types/cmat-components-password-strength.d.ts +1 -2
  184. package/types/cmat-components-popover.d.ts +1 -110
  185. package/types/cmat-components-progress-bar.d.ts +9 -11
  186. package/types/cmat-components-rating.d.ts +6 -7
  187. package/types/cmat-components-rich-text-editor.d.ts +0 -21
  188. package/types/cmat-components-select-search.d.ts +4 -20
  189. package/types/cmat-components-select-table.d.ts +24 -12
  190. package/types/cmat-components-select-tree.d.ts +29 -29
  191. package/types/cmat-components-skeleton.d.ts +0 -18
  192. package/types/cmat-components-speed-dial.d.ts +1 -2
  193. package/types/cmat-components-status-tag.d.ts +0 -15
  194. package/types/cmat-components-table-toolbar.d.ts +0 -12
  195. package/types/cmat-components-timeline.d.ts +3 -4
  196. package/types/cmat-components-toast.d.ts +2 -2
  197. package/types/cmat-components-transfer-picker.d.ts +42 -36
  198. package/types/cmat-components-treetable.d.ts +3 -4
  199. package/types/cmat-components-upload.d.ts +12 -17
  200. package/types/cmat-components-x6-angular-shape.d.ts +0 -1
  201. package/types/cmat-directives-arrow-cursor.d.ts +1 -1
  202. package/types/cmat-directives-debounce.d.ts +3 -4
  203. package/types/cmat-pipes-secure.d.ts +3 -4
  204. package/types/cmat-services-config.d.ts +35 -13
  205. package/types/cmat-services-data.d.ts +13 -12
  206. package/types/cmat-services-export-as.d.ts +0 -22
  207. package/types/cmat-services-loading.d.ts +15 -10
  208. package/types/cmat-services-media-watcher.d.ts +10 -13
  209. package/types/cmat-services-splash-screen.d.ts +2 -4
  210. package/types/cmat-services-title.d.ts +3 -5
  211. package/types/cmat.d.ts +733 -1391
@@ -4,15 +4,12 @@ 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, ChangeDetectorRef, HostListener, Directive } from '@angular/core';
7
+ import { EventEmitter, inject, ElementRef, TemplateRef, Input, HostBinding, ViewChild, Output, ViewEncapsulation, ChangeDetectionStrategy, Component, ViewContainerRef, DestroyRef, HostListener, Directive } from '@angular/core';
8
8
  import { Overlay, OverlayConfig } from '@angular/cdk/overlay';
9
9
  import { TemplatePortal } from '@angular/cdk/portal';
10
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
10
11
  import { Subject } from 'rxjs';
11
- import { takeUntil } from 'rxjs/operators';
12
12
 
13
- /**
14
- * Throws an exception for the case when popover trigger doesn't have a valid cmat-popover instance
15
- */
16
13
  function throwCmatPopoverMissingError() {
17
14
  throw Error(`cmat-popover-trigger: must pass in an cmat-popover instance.
18
15
 
@@ -20,18 +17,10 @@ function throwCmatPopoverMissingError() {
20
17
  <cmat-popover #popover="cmatPopover"></cmat-popover>
21
18
  <button [cmatPopoverTriggerFor]="popover"></button>`);
22
19
  }
23
- /**
24
- * Throws an exception for the case when popover's cmatPopoverPosition[0] value isn't valid.
25
- * In other words, it doesn't match 'above', 'below', 'before' or 'after'.
26
- */
27
20
  function throwCmatPopoverInvalidPositionStart() {
28
21
  throw Error(`cmatPopoverPosition[0] value must be either 'above', 'below', 'before' or 'after'.
29
22
  Example: <cmat-popover [position]="['below', 'after']" #popover="cmatPopover"></cmat-popover>`);
30
23
  }
31
- /**
32
- * Throws an exception for the case when popover's cmatPopoverPosition[1] value isn't valid.
33
- * In other words, it doesn't match 'above', 'below', 'before', 'after' or 'center'.
34
- */
35
24
  function throwCmatPopoverInvalidPositionEnd() {
36
25
  throw Error(`cmatPopoverPosition[1] value must be either 'above', 'below', 'before', 'after' or 'center'.
37
26
  Example: <cmat-popover [position]="['below', 'after']" #popover="cmatPopover"></cmat-popover>`);
@@ -40,26 +29,17 @@ function throwCmatPopoverInvalidPositionEnd() {
40
29
  /* eslint-disable @typescript-eslint/naming-convention */
41
30
  class CmatPopoverComponent {
42
31
  constructor() {
43
- /** Event emitted when the popover is closed. */
44
32
  this.closed = new EventEmitter();
45
33
  this.role = 'dialog';
46
- /** Config object to be passed into the popover's arrow ngStyle */
47
34
  this.popoverPanelStyles = {};
48
- /** Config object to be passed into the popover's arrow ngStyle */
49
35
  this.popoverArrowStyles = {};
50
- /** Config object to be passed into the popover's content ngStyle */
51
36
  this.popoverContentStyles = {};
52
- /** Whether popover's `targetElement` is defined */
53
37
  this.containerPositioning = false;
54
- /** Closing disabled on popover */
55
38
  this.closeDisabled = false;
56
- /** Config object to be passed into the popover's ngClass */
57
39
  this.classList = {};
58
- /** Emits the current animation state whenever it changes. */
59
40
  this._onAnimationStateChange = new EventEmitter();
60
41
  this._dir = inject(Directionality, { optional: true });
61
42
  this._elementRef = inject(ElementRef);
62
- /** Settings for popover, view setters and getters for more detail */
63
43
  this._position = ['below', 'after'];
64
44
  this._triggerEvent = 'hover';
65
45
  this._scrollStrategy = 'reposition';
@@ -81,7 +61,6 @@ class CmatPopoverComponent {
81
61
  get position() {
82
62
  return this._position;
83
63
  }
84
- /** Position of the popover. */
85
64
  set position(value) {
86
65
  if (!['before', 'after', 'above', 'below'].includes(value[0])) {
87
66
  throwCmatPopoverInvalidPositionStart();
@@ -92,7 +71,6 @@ class CmatPopoverComponent {
92
71
  this._position = value;
93
72
  this.setPositionClasses();
94
73
  }
95
- /** Popover trigger event */
96
74
  // eslint-disable-next-line @typescript-eslint/member-ordering
97
75
  get triggerEvent() {
98
76
  return this._triggerEvent;
@@ -100,7 +78,6 @@ class CmatPopoverComponent {
100
78
  set triggerEvent(value) {
101
79
  this._triggerEvent = value;
102
80
  }
103
- /** Popover scroll strategy */
104
81
  // eslint-disable-next-line @typescript-eslint/member-ordering
105
82
  get scrollStrategy() {
106
83
  return this._scrollStrategy;
@@ -108,7 +85,6 @@ class CmatPopoverComponent {
108
85
  set scrollStrategy(value) {
109
86
  this._scrollStrategy = value;
110
87
  }
111
- /** Popover enter delay */
112
88
  // eslint-disable-next-line @typescript-eslint/member-ordering
113
89
  get enterDelay() {
114
90
  return this._enterDelay;
@@ -116,7 +92,6 @@ class CmatPopoverComponent {
116
92
  set enterDelay(value) {
117
93
  this._enterDelay = value;
118
94
  }
119
- /** Popover leave delay */
120
95
  // eslint-disable-next-line @typescript-eslint/member-ordering
121
96
  get leaveDelay() {
122
97
  return this._leaveDelay;
@@ -124,7 +99,6 @@ class CmatPopoverComponent {
124
99
  set leaveDelay(value) {
125
100
  this._leaveDelay = value;
126
101
  }
127
- /** Popover target offset x */
128
102
  // eslint-disable-next-line @typescript-eslint/member-ordering
129
103
  get xOffset() {
130
104
  return this._panelOffsetX;
@@ -132,7 +106,6 @@ class CmatPopoverComponent {
132
106
  set xOffset(value) {
133
107
  this._panelOffsetX = value;
134
108
  }
135
- /** Popover target offset y */
136
109
  // eslint-disable-next-line @typescript-eslint/member-ordering
137
110
  get yOffset() {
138
111
  return this._panelOffsetY;
@@ -140,7 +113,6 @@ class CmatPopoverComponent {
140
113
  set yOffset(value) {
141
114
  this._panelOffsetY = value;
142
115
  }
143
- /** Popover arrow offset x */
144
116
  // eslint-disable-next-line @typescript-eslint/member-ordering
145
117
  get arrowOffsetX() {
146
118
  return this._arrowOffsetX;
@@ -148,7 +120,6 @@ class CmatPopoverComponent {
148
120
  set arrowOffsetX(value) {
149
121
  this._arrowOffsetX = value;
150
122
  }
151
- /** Popover arrow offset y */
152
123
  // eslint-disable-next-line @typescript-eslint/member-ordering
153
124
  get arrowOffsetY() {
154
125
  return this._arrowOffsetY;
@@ -156,7 +127,6 @@ class CmatPopoverComponent {
156
127
  set arrowOffsetY(value) {
157
128
  this._arrowOffsetY = value;
158
129
  }
159
- /** Popover arrow width */
160
130
  // eslint-disable-next-line @typescript-eslint/member-ordering
161
131
  get arrowWidth() {
162
132
  return this._arrowWidth;
@@ -164,7 +134,6 @@ class CmatPopoverComponent {
164
134
  set arrowWidth(value) {
165
135
  this._arrowWidth = value;
166
136
  }
167
- /** Popover arrow height */
168
137
  // eslint-disable-next-line @typescript-eslint/member-ordering
169
138
  get arrowHeight() {
170
139
  return this._arrowHeight;
@@ -172,7 +141,6 @@ class CmatPopoverComponent {
172
141
  set arrowHeight(value) {
173
142
  this._arrowHeight = value;
174
143
  }
175
- /** Popover close on container click */
176
144
  // eslint-disable-next-line @typescript-eslint/member-ordering
177
145
  get closeOnPanelClick() {
178
146
  return this._closeOnPanelClick;
@@ -180,7 +148,6 @@ class CmatPopoverComponent {
180
148
  set closeOnPanelClick(value) {
181
149
  this._closeOnPanelClick = coerceBooleanProperty(value);
182
150
  }
183
- /** Popover close on backdrop click */
184
151
  // eslint-disable-next-line @typescript-eslint/member-ordering
185
152
  get closeOnBackdropClick() {
186
153
  return this._closeOnBackdropClick;
@@ -188,7 +155,6 @@ class CmatPopoverComponent {
188
155
  set closeOnBackdropClick(value) {
189
156
  this._closeOnBackdropClick = coerceBooleanProperty(value);
190
157
  }
191
- /** Disable animations of popover and all child elements */
192
158
  // eslint-disable-next-line @typescript-eslint/member-ordering
193
159
  get disableAnimation() {
194
160
  return this._disableAnimation;
@@ -196,7 +162,6 @@ class CmatPopoverComponent {
196
162
  set disableAnimation(value) {
197
163
  this._disableAnimation = coerceBooleanProperty(value);
198
164
  }
199
- /** Popover focus trap using cdkTrapFocus */
200
165
  // eslint-disable-next-line @typescript-eslint/member-ordering
201
166
  get focusTrapEnabled() {
202
167
  return this._focusTrapEnabled;
@@ -204,7 +169,6 @@ class CmatPopoverComponent {
204
169
  set focusTrapEnabled(value) {
205
170
  this._focusTrapEnabled = coerceBooleanProperty(value);
206
171
  }
207
- /** Popover focus trap auto capture using cdkTrapFocusAutoCapture */
208
172
  // eslint-disable-next-line @typescript-eslint/member-ordering
209
173
  get focusTrapAutoCaptureEnabled() {
210
174
  return this._focusTrapAutoCaptureEnabled;
@@ -212,13 +176,6 @@ class CmatPopoverComponent {
212
176
  set focusTrapAutoCaptureEnabled(value) {
213
177
  this._focusTrapAutoCaptureEnabled = coerceBooleanProperty(value);
214
178
  }
215
- /**
216
- * This method takes classes set on the host md-popover element and applies them on the
217
- * popover template that displays in the overlay container. Otherwise, it's difficult
218
- * to style the containing popover from outside the component.
219
- *
220
- * @param classes list of class names
221
- */
222
179
  set panelClass(classes) {
223
180
  if (classes?.length) {
224
181
  this.classList = classes.split(' ').reduce((obj, className) => {
@@ -233,7 +190,6 @@ class CmatPopoverComponent {
233
190
  this.emitCloseEvent();
234
191
  this.closed.complete();
235
192
  }
236
- /** Handle a keyboard event from the popover, delegating to the appropriate action. */
237
193
  handleKeydown(event) {
238
194
  switch (event.code) {
239
195
  case 'Escape':
@@ -241,42 +197,28 @@ class CmatPopoverComponent {
241
197
  return;
242
198
  }
243
199
  }
244
- /**
245
- * This emits a close event to which the trigger is subscribed. When emitted, the
246
- * trigger will close the popover.
247
- */
248
200
  emitCloseEvent() {
249
201
  this.closed.emit();
250
202
  }
251
- /** Close popover on click if closeOnPanelClick is true */
252
203
  onClick() {
253
204
  if (this.closeOnPanelClick) {
254
205
  this.emitCloseEvent();
255
206
  }
256
207
  }
257
- /**
258
- * TODO: Refactor when @angular/cdk includes feature I mentioned on github see link below.
259
- * https://github.com/angular/material2/pull/5493#issuecomment-313085323
260
- */
261
- /** Disables close of popover when leaving trigger element and mouse over the popover */
262
208
  onMouseOver() {
263
209
  if (this.triggerEvent === 'hover') {
264
210
  this.closeDisabled = true;
265
211
  }
266
212
  }
267
213
  onFocus() {
268
- //do someting
214
+ return;
269
215
  }
270
- /** Enables close of popover when mouse leaving popover element */
271
216
  onMouseLeave() {
272
217
  if (this.triggerEvent === 'hover') {
273
218
  this.closeDisabled = false;
274
219
  this.emitCloseEvent();
275
220
  }
276
221
  }
277
- // TODO: Refactor how styles are set and updated on the component, use best practices.
278
- // TODO: If arrow left and right positioning is requested, see if flex direction can be used to work with order.
279
- /** Sets the current styles for the popover to allow for dynamically changing settings */
280
222
  setCurrentStyles(pos = this.position) {
281
223
  const left = pos[1] === 'after'
282
224
  ? `${this.arrowOffsetX - this.arrowWidth / 2}px`
@@ -301,10 +243,6 @@ class CmatPopoverComponent {
301
243
  bottom,
302
244
  };
303
245
  }
304
- /**
305
- * It's necessary to set position-based classes to ensure the popover panel animation
306
- * folds out from the correct direction.
307
- */
308
246
  setPositionClasses(pos = this.position) {
309
247
  this.classList['cmat-popover-before-above'] = pos[0] === 'before' && pos[1] === 'above';
310
248
  this.classList['cmat-popover-before-center'] = pos[0] === 'before' && pos[1] === 'center';
@@ -319,10 +257,10 @@ class CmatPopoverComponent {
319
257
  this.classList['cmat-popover-below-center'] = pos[0] === 'below' && pos[1] === 'center';
320
258
  this.classList['cmat-popover-below-after'] = pos[0] === 'below' && pos[1] === 'after';
321
259
  }
322
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: CmatPopoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
323
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.7", 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 }); }
260
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CmatPopoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
261
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", 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 }); }
324
262
  }
325
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: CmatPopoverComponent, decorators: [{
263
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CmatPopoverComponent, decorators: [{
326
264
  type: Component,
327
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"] }]
328
266
  }], ctorParameters: () => [], propDecorators: { closed: [{
@@ -375,16 +313,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImpor
375
313
  type: Input
376
314
  }] } });
377
315
 
378
- /**
379
- * This directive is intended to be used in conjunction with an cmat-popover tag. It is
380
- * responsible for toggling the display of the provided popover instance.
381
- */
382
316
  class CmatPopoverTriggerDirective {
383
317
  constructor() {
384
318
  this.ariaHaspopup = true;
385
- /** Event emitted when the associated popover is opened. */
386
319
  this.popoverOpened = new EventEmitter();
387
- /** Event emitted when the associated popover is closed. */
388
320
  this.popoverClosed = new EventEmitter();
389
321
  this.popoverOpened$ = new Subject();
390
322
  this.popoverClosed$ = new Subject();
@@ -392,20 +324,15 @@ class CmatPopoverTriggerDirective {
392
324
  this._elementRef = inject(ElementRef);
393
325
  this._viewContainerRef = inject(ViewContainerRef);
394
326
  this._dir = inject(Directionality, { optional: true });
395
- this._changeDetectorRef = inject(ChangeDetectorRef);
327
+ this._destroyRef = inject(DestroyRef);
396
328
  this._overlayRef = null;
397
329
  this._popoverOpen = false;
398
330
  this._halt = false;
399
- // tracking input type is necessary so it's possible to only auto-focus
400
- // the first item of the list when the popover is opened via the keyboard
401
331
  this._openedByMouse = false;
402
- this._onDestroy = new Subject();
403
332
  }
404
- /** Whether the popover is open. */
405
333
  get popoverOpen() {
406
334
  return this._popoverOpen;
407
335
  }
408
- /** The text direction of the containing app. */
409
336
  get dir() {
410
337
  return this._dir?.value === 'rtl' ? 'rtl' : 'ltr';
411
338
  }
@@ -458,11 +385,9 @@ class CmatPopoverTriggerDirective {
458
385
  ngOnDestroy() {
459
386
  this.destroyPopover();
460
387
  }
461
- /** Toggles the popover between the open and closed states. */
462
388
  togglePopover() {
463
389
  return this._popoverOpen ? this.closePopover() : this.openPopover();
464
390
  }
465
- /** Opens the popover. */
466
391
  openPopover() {
467
392
  if (!this._popoverOpen && !this._halt) {
468
393
  this._createOverlay().attach(this._portal);
@@ -471,7 +396,6 @@ class CmatPopoverTriggerDirective {
471
396
  this._initPopover();
472
397
  }
473
398
  }
474
- /** Closes the popover. */
475
399
  closePopover() {
476
400
  if (this._overlayRef) {
477
401
  this._overlayRef.detach();
@@ -479,7 +403,6 @@ class CmatPopoverTriggerDirective {
479
403
  }
480
404
  this.destroyPopover();
481
405
  }
482
- /** Removes the popover from the DOM. */
483
406
  destroyPopover() {
484
407
  if (this._mouseoverTimer) {
485
408
  clearTimeout(this._mouseoverTimer);
@@ -490,26 +413,16 @@ class CmatPopoverTriggerDirective {
490
413
  this._overlayRef = null;
491
414
  this._cleanUpSubscriptions();
492
415
  }
493
- this._onDestroy.next();
494
- this._onDestroy.complete();
495
416
  }
496
- /** Focuses the popover trigger. */
497
417
  focus() {
498
418
  this._elementRef.nativeElement.focus();
499
419
  }
500
- /**
501
- * This method ensures that the popover closes when the overlay backdrop is clicked.
502
- * We do not use first() here because doing so would not catch clicks from within
503
- * the popover, and it would fail to unsubscribe properly. Instead, we unsubscribe
504
- * explicitly when the popover is closed or destroyed.
505
- */
506
420
  _subscribeToBackdrop() {
507
421
  if (this._overlayRef) {
508
- /** Only subscribe to backdrop if trigger event is click */
509
422
  if (this.triggerEvent === 'click' && this.popover.closeOnBackdropClick === true) {
510
423
  this._overlayRef
511
424
  .backdropClick()
512
- .pipe(takeUntil(this.popoverClosed$), takeUntil(this._onDestroy))
425
+ .pipe(takeUntilDestroyed(this._destroyRef))
513
426
  .subscribe(() => {
514
427
  this.popover.emitCloseEvent();
515
428
  });
@@ -520,33 +433,22 @@ class CmatPopoverTriggerDirective {
520
433
  if (this._overlayRef) {
521
434
  this._overlayRef
522
435
  .detachments()
523
- .pipe(takeUntil(this.popoverClosed$), takeUntil(this._onDestroy))
436
+ .pipe(takeUntilDestroyed(this._destroyRef))
524
437
  .subscribe(() => {
525
438
  this._setPopoverClosed();
526
439
  });
527
440
  }
528
441
  }
529
- /**
530
- * This method sets the popover state to open and focuses the first item if
531
- * the popover was opened via the keyboard.
532
- */
533
442
  _initPopover() {
534
443
  this._setPopoverOpened();
535
444
  }
536
- /**
537
- * This method resets the popover when it's closed, most importantly restoring
538
- * focus to the popover trigger if the popover was opened via the keyboard.
539
- */
540
445
  _resetPopover() {
541
446
  this._setPopoverClosed();
542
- // Focus only needs to be reset to the host element if the popover was opened
543
- // by the keyboard and manually shifted to the first popover item.
544
447
  if (!this._openedByMouse) {
545
448
  this.focus();
546
449
  }
547
450
  this._openedByMouse = false;
548
451
  }
549
- /** set state rather than toggle to support triggers sharing a popover */
550
452
  _setPopoverOpened() {
551
453
  if (!this._popoverOpen) {
552
454
  this._popoverOpen = true;
@@ -554,7 +456,6 @@ class CmatPopoverTriggerDirective {
554
456
  this.popoverOpened.emit();
555
457
  }
556
458
  }
557
- /** set state rather than toggle to support triggers sharing a popover */
558
459
  _setPopoverClosed() {
559
460
  if (this._popoverOpen) {
560
461
  this._popoverOpen = false;
@@ -562,19 +463,11 @@ class CmatPopoverTriggerDirective {
562
463
  this.popoverClosed.emit();
563
464
  }
564
465
  }
565
- /**
566
- * This method checks that a valid instance of MdPopover has been passed into
567
- * mdPopoverTriggerFor. If not, an exception is thrown.
568
- */
569
466
  _checkPopover() {
570
467
  if (!this.popover) {
571
468
  throwCmatPopoverMissingError();
572
469
  }
573
470
  }
574
- /**
575
- * This method creates the overlay from the provided popover's template and saves its
576
- * OverlayRef so that it can be attached to the DOM when openPopover is called.
577
- */
578
471
  _createOverlay() {
579
472
  if (!this._overlayRef) {
580
473
  this._portal = new TemplatePortal(this.popover.templateRef, this._viewContainerRef);
@@ -584,15 +477,9 @@ class CmatPopoverTriggerDirective {
584
477
  }
585
478
  return this._overlayRef;
586
479
  }
587
- /**
588
- * This method builds the configuration object needed to create the overlay, the OverlayConfig.
589
- *
590
- * @returns OverlayConfig
591
- */
592
480
  _getOverlayConfig() {
593
481
  const overlayState = new OverlayConfig();
594
482
  overlayState.positionStrategy = this._getPosition();
595
- /** Display overlay backdrop if trigger event is click */
596
483
  if (this.triggerEvent === 'click') {
597
484
  overlayState.hasBackdrop = true;
598
485
  overlayState.backdropClass = 'cdk-overlay-transparent-backdrop';
@@ -601,9 +488,6 @@ class CmatPopoverTriggerDirective {
601
488
  overlayState.scrollStrategy = this._getOverlayScrollStrategy(this.popover.scrollStrategy);
602
489
  return overlayState;
603
490
  }
604
- /**
605
- * This method returns the scroll strategy used by the cdk/overlay.
606
- */
607
491
  _getOverlayScrollStrategy(strategy) {
608
492
  switch (strategy) {
609
493
  case 'noop':
@@ -617,11 +501,6 @@ class CmatPopoverTriggerDirective {
617
501
  return this._overlay.scrollStrategies.reposition();
618
502
  }
619
503
  }
620
- /**
621
- * Listens to changes in the position of the overlay and sets the correct classes
622
- * on the popover based on the new position. This ensures the animation origin is always
623
- * correct, even if a fallback position is used for the overlay.
624
- */
625
504
  _subscribeToPositions(position) {
626
505
  this._positionSubscription = position.positionChanges.subscribe((change) => {
627
506
  const posX = change.connectionPair.overlayX === 'start'
@@ -637,18 +516,10 @@ class CmatPopoverTriggerDirective {
637
516
  const pos = this.popover.position[0] === 'above' || this.popover.position[0] === 'below'
638
517
  ? [posY, posX]
639
518
  : [posX, posY];
640
- // required for ChangeDetectionStrategy.OnPush
641
- this._changeDetectorRef.markForCheck();
642
519
  this.popover.setCurrentStyles(pos);
643
520
  this.popover.setPositionClasses(pos);
644
521
  });
645
522
  }
646
- /**
647
- * This method builds the position strategy for the overlay, so the popover is properly connected
648
- * to the trigger.
649
- *
650
- * @returns ConnectedPositionStrategy
651
- */
652
523
  _getPosition() {
653
524
  const [originX, origin2ndX, origin3rdX] = this.popover.position[0] === 'before' || this.popover.position[1] === 'after'
654
525
  ? ['start', 'center', 'end']
@@ -678,11 +549,6 @@ class CmatPopoverTriggerDirective {
678
549
  const offsetY = this.popover.yOffset && !isNaN(Number(this.popover.yOffset))
679
550
  ? Number(this.popover.yOffset)
680
551
  : 0;
681
- /**
682
- * For overriding position element, when `cmatPopoverTargetAt` has a valid element reference.
683
- * Useful for sticking popover to parent element and offsetting arrow to trigger element.
684
- * If undefined defaults to the trigger element reference.
685
- */
686
552
  let element = this._elementRef;
687
553
  if (typeof this.targetElement !== 'undefined') {
688
554
  this.popover.containerPositioning = true;
@@ -770,14 +636,13 @@ class CmatPopoverTriggerDirective {
770
636
  }
771
637
  this.popover.setCurrentStyles();
772
638
  }
773
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: CmatPopoverTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
774
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.7", 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 }); }
639
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CmatPopoverTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
640
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", 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 }); }
775
641
  }
776
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: CmatPopoverTriggerDirective, decorators: [{
642
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CmatPopoverTriggerDirective, decorators: [{
777
643
  type: Directive,
778
644
  args: [{
779
645
  selector: '[cmatPopoverTriggerFor],[cmatPopoverTargetAt],[cmatPopoverTriggerOn]',
780
- standalone: true,
781
646
  exportAs: 'cmatPopoverTrigger'
782
647
  }]
783
648
  }], propDecorators: { ariaHaspopup: [{
@@ -814,14 +679,13 @@ class CmatPopoverTargetDirective {
814
679
  constructor() {
815
680
  this.elementRef = inject(ElementRef);
816
681
  }
817
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: CmatPopoverTargetDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
818
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.7", type: CmatPopoverTargetDirective, isStandalone: true, selector: "cmat-popover-target, [cmatPopoverTarget]", exportAs: ["cmatPopoverTarget"], ngImport: i0 }); }
682
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CmatPopoverTargetDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
683
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: CmatPopoverTargetDirective, isStandalone: true, selector: "cmat-popover-target, [cmatPopoverTarget]", exportAs: ["cmatPopoverTarget"], ngImport: i0 }); }
819
684
  }
820
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: CmatPopoverTargetDirective, decorators: [{
685
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CmatPopoverTargetDirective, decorators: [{
821
686
  type: Directive,
822
687
  args: [{
823
688
  selector: 'cmat-popover-target, [cmatPopoverTarget]',
824
- standalone: true,
825
689
  exportAs: 'cmatPopoverTarget',
826
690
  }]
827
691
  }] });