cmat 0.0.85 → 0.0.86

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 (163) 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 +9 -9
  4. package/fesm2022/cmat-components-breadcrumb.mjs.map +1 -1
  5. package/fesm2022/cmat-components-card.mjs +3 -3
  6. package/fesm2022/cmat-components-card.mjs.map +1 -1
  7. package/fesm2022/cmat-components-carousel.mjs +12 -12
  8. package/fesm2022/cmat-components-carousel.mjs.map +1 -1
  9. package/fesm2022/cmat-components-cascade.mjs +9 -9
  10. package/fesm2022/cmat-components-cascade.mjs.map +1 -1
  11. package/fesm2022/cmat-components-chip-input.mjs +3 -3
  12. package/fesm2022/cmat-components-chip-input.mjs.map +1 -1
  13. package/fesm2022/cmat-components-code-editor.mjs +3 -3
  14. package/fesm2022/cmat-components-code-editor.mjs.map +1 -1
  15. package/fesm2022/cmat-components-custom-formly.mjs +90 -90
  16. package/fesm2022/cmat-components-custom-formly.mjs.map +1 -1
  17. package/fesm2022/cmat-components-date-range.mjs +3 -3
  18. package/fesm2022/cmat-components-date-range.mjs.map +1 -1
  19. package/fesm2022/cmat-components-date-time-display.mjs +3 -3
  20. package/fesm2022/cmat-components-date-time-display.mjs.map +1 -1
  21. package/fesm2022/cmat-components-drawer.mjs +6 -6
  22. package/fesm2022/cmat-components-drawer.mjs.map +1 -1
  23. package/fesm2022/cmat-components-empty-state.mjs +3 -3
  24. package/fesm2022/cmat-components-empty-state.mjs.map +1 -1
  25. package/fesm2022/cmat-components-file-preview.mjs +3 -3
  26. package/fesm2022/cmat-components-file-preview.mjs.map +1 -1
  27. package/fesm2022/cmat-components-filter-toolbar.mjs +3 -3
  28. package/fesm2022/cmat-components-filter-toolbar.mjs.map +1 -1
  29. package/fesm2022/cmat-components-form-actions.mjs +3 -3
  30. package/fesm2022/cmat-components-form-actions.mjs.map +1 -1
  31. package/fesm2022/cmat-components-fullscreen.mjs +3 -3
  32. package/fesm2022/cmat-components-fullscreen.mjs.map +1 -1
  33. package/fesm2022/cmat-components-highlight.mjs +6 -6
  34. package/fesm2022/cmat-components-highlight.mjs.map +1 -1
  35. package/fesm2022/cmat-components-image-viewer.mjs +3 -3
  36. package/fesm2022/cmat-components-image-viewer.mjs.map +1 -1
  37. package/fesm2022/cmat-components-inline-loading.mjs +3 -3
  38. package/fesm2022/cmat-components-inline-loading.mjs.map +1 -1
  39. package/fesm2022/cmat-components-json-editor.mjs +3 -3
  40. package/fesm2022/cmat-components-json-editor.mjs.map +1 -1
  41. package/fesm2022/cmat-components-knob-input.mjs +3 -3
  42. package/fesm2022/cmat-components-knob-input.mjs.map +1 -1
  43. package/fesm2022/cmat-components-masonry.mjs +3 -3
  44. package/fesm2022/cmat-components-masonry.mjs.map +1 -1
  45. package/fesm2022/cmat-components-material-color-picker.mjs +3 -3
  46. package/fesm2022/cmat-components-material-color-picker.mjs.map +1 -1
  47. package/fesm2022/cmat-components-material-datetimepicker.mjs +42 -42
  48. package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -1
  49. package/fesm2022/cmat-components-navigation.mjs +39 -39
  50. package/fesm2022/cmat-components-navigation.mjs.map +1 -1
  51. package/fesm2022/cmat-components-opt-input.mjs +3 -3
  52. package/fesm2022/cmat-components-opt-input.mjs.map +1 -1
  53. package/fesm2022/cmat-components-org-chart.mjs +9 -9
  54. package/fesm2022/cmat-components-org-chart.mjs.map +1 -1
  55. package/fesm2022/cmat-components-page-header.mjs +3 -3
  56. package/fesm2022/cmat-components-page-header.mjs.map +1 -1
  57. package/fesm2022/cmat-components-pagination.mjs +12 -12
  58. package/fesm2022/cmat-components-pagination.mjs.map +1 -1
  59. package/fesm2022/cmat-components-password-strength.mjs +9 -9
  60. package/fesm2022/cmat-components-password-strength.mjs.map +1 -1
  61. package/fesm2022/cmat-components-popover.mjs +9 -9
  62. package/fesm2022/cmat-components-popover.mjs.map +1 -1
  63. package/fesm2022/cmat-components-progress-bar.mjs +3 -3
  64. package/fesm2022/cmat-components-progress-bar.mjs.map +1 -1
  65. package/fesm2022/cmat-components-qrcode.mjs +3 -3
  66. package/fesm2022/cmat-components-qrcode.mjs.map +1 -1
  67. package/fesm2022/cmat-components-rating.mjs +3 -3
  68. package/fesm2022/cmat-components-rating.mjs.map +1 -1
  69. package/fesm2022/cmat-components-rich-text-editor.mjs +3 -3
  70. package/fesm2022/cmat-components-rich-text-editor.mjs.map +1 -1
  71. package/fesm2022/cmat-components-select-search.mjs +9 -9
  72. package/fesm2022/cmat-components-select-search.mjs.map +1 -1
  73. package/fesm2022/cmat-components-select-table.mjs +3 -3
  74. package/fesm2022/cmat-components-select-table.mjs.map +1 -1
  75. package/fesm2022/cmat-components-select-tree.mjs +3 -3
  76. package/fesm2022/cmat-components-select-tree.mjs.map +1 -1
  77. package/fesm2022/cmat-components-skeleton.mjs +3 -3
  78. package/fesm2022/cmat-components-skeleton.mjs.map +1 -1
  79. package/fesm2022/cmat-components-speed-dial.mjs +9 -9
  80. package/fesm2022/cmat-components-speed-dial.mjs.map +1 -1
  81. package/fesm2022/cmat-components-status-tag.mjs +3 -3
  82. package/fesm2022/cmat-components-status-tag.mjs.map +1 -1
  83. package/fesm2022/cmat-components-table-toolbar.mjs +3 -3
  84. package/fesm2022/cmat-components-table-toolbar.mjs.map +1 -1
  85. package/fesm2022/cmat-components-timeline.mjs +12 -12
  86. package/fesm2022/cmat-components-timeline.mjs.map +1 -1
  87. package/fesm2022/cmat-components-toast.mjs +9 -9
  88. package/fesm2022/cmat-components-toast.mjs.map +1 -1
  89. package/fesm2022/cmat-components-transfer-picker.mjs +18 -18
  90. package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -1
  91. package/fesm2022/cmat-components-treetable.mjs +6 -6
  92. package/fesm2022/cmat-components-treetable.mjs.map +1 -1
  93. package/fesm2022/cmat-components-upload.mjs +9 -9
  94. package/fesm2022/cmat-components-upload.mjs.map +1 -1
  95. package/fesm2022/cmat-components-x6-angular-shape.mjs.map +1 -1
  96. package/fesm2022/cmat-directives-animate-on-scroll.mjs +6 -6
  97. package/fesm2022/cmat-directives-animate-on-scroll.mjs.map +1 -1
  98. package/fesm2022/cmat-directives-arrow-cursor.mjs +3 -3
  99. package/fesm2022/cmat-directives-arrow-cursor.mjs.map +1 -1
  100. package/fesm2022/cmat-directives-autofocus.mjs +3 -3
  101. package/fesm2022/cmat-directives-autofocus.mjs.map +1 -1
  102. package/fesm2022/cmat-directives-data-exporter.mjs +21 -21
  103. package/fesm2022/cmat-directives-data-exporter.mjs.map +1 -1
  104. package/fesm2022/cmat-directives-debounce.mjs +9 -9
  105. package/fesm2022/cmat-directives-debounce.mjs.map +1 -1
  106. package/fesm2022/cmat-directives-digit-only.mjs +6 -6
  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-equal-validator.mjs.map +1 -1
  110. package/fesm2022/cmat-directives-seamless-auto-scroll.mjs +3 -3
  111. package/fesm2022/cmat-directives-seamless-auto-scroll.mjs.map +1 -1
  112. package/fesm2022/cmat-lib-mock-api.mjs +6 -6
  113. package/fesm2022/cmat-lib-mock-api.mjs.map +1 -1
  114. package/fesm2022/cmat-pipes-bytes.mjs +3 -3
  115. package/fesm2022/cmat-pipes-bytes.mjs.map +1 -1
  116. package/fesm2022/cmat-pipes-date-format.mjs +3 -3
  117. package/fesm2022/cmat-pipes-date-format.mjs.map +1 -1
  118. package/fesm2022/cmat-pipes-find-by-key.mjs +3 -3
  119. package/fesm2022/cmat-pipes-find-by-key.mjs.map +1 -1
  120. package/fesm2022/cmat-pipes-group-by.mjs +3 -3
  121. package/fesm2022/cmat-pipes-group-by.mjs.map +1 -1
  122. package/fesm2022/cmat-pipes-keys.mjs +3 -3
  123. package/fesm2022/cmat-pipes-keys.mjs.map +1 -1
  124. package/fesm2022/cmat-pipes-secure.mjs +3 -3
  125. package/fesm2022/cmat-pipes-secure.mjs.map +1 -1
  126. package/fesm2022/cmat-pipes-uppercase.mjs +3 -3
  127. package/fesm2022/cmat-pipes-uppercase.mjs.map +1 -1
  128. package/fesm2022/cmat-services-alert.mjs +3 -3
  129. package/fesm2022/cmat-services-alert.mjs.map +1 -1
  130. package/fesm2022/cmat-services-config.mjs +6 -6
  131. package/fesm2022/cmat-services-config.mjs.map +1 -1
  132. package/fesm2022/cmat-services-confirmation.mjs +6 -6
  133. package/fesm2022/cmat-services-confirmation.mjs.map +1 -1
  134. package/fesm2022/cmat-services-data.mjs +3 -3
  135. package/fesm2022/cmat-services-data.mjs.map +1 -1
  136. package/fesm2022/cmat-services-export-as.mjs +3 -3
  137. package/fesm2022/cmat-services-export-as.mjs.map +1 -1
  138. package/fesm2022/cmat-services-loading.mjs +6 -6
  139. package/fesm2022/cmat-services-loading.mjs.map +1 -1
  140. package/fesm2022/cmat-services-local-storage.mjs +3 -3
  141. package/fesm2022/cmat-services-local-storage.mjs.map +1 -1
  142. package/fesm2022/cmat-services-media-watcher.mjs +3 -3
  143. package/fesm2022/cmat-services-media-watcher.mjs.map +1 -1
  144. package/fesm2022/cmat-services-platform.mjs +3 -3
  145. package/fesm2022/cmat-services-platform.mjs.map +1 -1
  146. package/fesm2022/cmat-services-splash-screen.mjs +3 -3
  147. package/fesm2022/cmat-services-splash-screen.mjs.map +1 -1
  148. package/fesm2022/cmat-services-title.mjs +3 -3
  149. package/fesm2022/cmat-services-title.mjs.map +1 -1
  150. package/fesm2022/cmat-services-translation.mjs +3 -3
  151. package/fesm2022/cmat-services-translation.mjs.map +1 -1
  152. package/fesm2022/cmat-services-utils.mjs +3 -3
  153. package/fesm2022/cmat-services-utils.mjs.map +1 -1
  154. package/fesm2022/cmat.mjs +534 -534
  155. package/fesm2022/cmat.mjs.map +1 -1
  156. package/package.json +1 -1
  157. package/types/cmat-components-custom-formly.d.ts +2 -2
  158. package/types/cmat-components-fullscreen.d.ts +1 -1
  159. package/types/cmat-components-highlight.d.ts +1 -1
  160. package/types/cmat-components-popover.d.ts +2 -2
  161. package/types/cmat-components-x6-angular-shape.d.ts +2 -2
  162. package/types/cmat-pipes-find-by-key.d.ts +1 -0
  163. package/types/cmat.d.ts +9 -9
@@ -257,10 +257,10 @@ class CmatPopoverComponent {
257
257
  this.classList['cmat-popover-below-center'] = pos[0] === 'below' && pos[1] === 'center';
258
258
  this.classList['cmat-popover-below-after'] = pos[0] === 'below' && pos[1] === 'after';
259
259
  }
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 }); }
260
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: CmatPopoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
261
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.10", 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 }); }
262
262
  }
263
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CmatPopoverComponent, decorators: [{
263
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: CmatPopoverComponent, decorators: [{
264
264
  type: Component,
265
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
266
  }], ctorParameters: () => [], propDecorators: { closed: [{
@@ -647,10 +647,10 @@ class CmatPopoverTriggerDirective {
647
647
  }
648
648
  this.popover.setCurrentStyles();
649
649
  }
650
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CmatPopoverTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
651
- 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 }); }
650
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: CmatPopoverTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
651
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.10", 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 }); }
652
652
  }
653
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CmatPopoverTriggerDirective, decorators: [{
653
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: CmatPopoverTriggerDirective, decorators: [{
654
654
  type: Directive,
655
655
  args: [{
656
656
  selector: '[cmatPopoverTriggerFor],[cmatPopoverTargetAt],[cmatPopoverTriggerOn]',
@@ -690,10 +690,10 @@ class CmatPopoverTargetDirective {
690
690
  constructor() {
691
691
  this.elementRef = inject(ElementRef);
692
692
  }
693
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CmatPopoverTargetDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
694
- 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 }); }
693
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: CmatPopoverTargetDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
694
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.10", type: CmatPopoverTargetDirective, isStandalone: true, selector: "cmat-popover-target, [cmatPopoverTarget]", exportAs: ["cmatPopoverTarget"], ngImport: i0 }); }
695
695
  }
696
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CmatPopoverTargetDirective, decorators: [{
696
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: CmatPopoverTargetDirective, decorators: [{
697
697
  type: Directive,
698
698
  args: [{
699
699
  selector: 'cmat-popover-target, [cmatPopoverTarget]',
@@ -1 +1 @@
1
- {"version":3,"file":"cmat-components-popover.mjs","sources":["../../../projects/cmat/components/popover/popover.errors.ts","../../../projects/cmat/components/popover/popover.component.ts","../../../projects/cmat/components/popover/popover.component.html","../../../projects/cmat/components/popover/popover-trigger.ts","../../../projects/cmat/components/popover/popover.target.ts","../../../projects/cmat/components/popover/cmat-components-popover.ts"],"sourcesContent":["\r\n\r\nexport function throwCmatPopoverMissingError(): void {\r\n throw Error(`cmat-popover-trigger: must pass in an cmat-popover instance.\r\n\r\n Example:\r\n <cmat-popover #popover=\"cmatPopover\"></cmat-popover>\r\n <button [cmatPopoverTriggerFor]=\"popover\"></button>`);\r\n}\r\n\r\n\r\nexport function throwCmatPopoverInvalidPositionStart(): void {\r\n throw Error(`cmatPopoverPosition[0] value must be either 'above', 'below', 'before' or 'after'.\r\n Example: <cmat-popover [position]=\"['below', 'after']\" #popover=\"cmatPopover\"></cmat-popover>`);\r\n}\r\n\r\n\r\nexport function throwCmatPopoverInvalidPositionEnd(): void {\r\n throw Error(`cmatPopoverPosition[1] value must be either 'above', 'below', 'before', 'after' or 'center'.\r\n Example: <cmat-popover [position]=\"['below', 'after']\" #popover=\"cmatPopover\"></cmat-popover>`);\r\n}\r\n","/* eslint-disable @typescript-eslint/naming-convention */\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\nimport { Directionality } from '@angular/cdk/bidi';\r\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { NgClass, NgStyle } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, HostBinding, Input, OnDestroy, Output, TemplateRef, ViewChild, ViewEncapsulation, inject } from '@angular/core';\r\nimport { throwCmatPopoverInvalidPositionEnd, throwCmatPopoverInvalidPositionStart } from './popover.errors';\r\nimport { CmatPopoverPanel } from './popover.interfaces';\r\nimport { CmatPopoverPosition, CmatPopoverScrollStrategy, CmatPopoverTriggerEvent } from './popover.type';\r\n\r\n@Component({\r\n selector: 'cmat-popover',\r\n templateUrl: './popover.component.html',\r\n styleUrls: ['./popover.component.scss','../../animations/zoom.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n exportAs: 'cmatPopover',\r\n imports: [NgStyle, NgClass, A11yModule]\r\n})\r\nexport class CmatPopoverComponent implements CmatPopoverPanel, OnDestroy {\r\n static ngAcceptInputType_closeOnPanelClick: BooleanInput;\r\n static ngAcceptInputType_closeOnBackdropClick: BooleanInput;\r\n static ngAcceptInputType_disableAnimation: BooleanInput;\r\n static ngAcceptInputType_focusTrapEnabled: BooleanInput;\r\n static ngAcceptInputType_focusTrapAutoCaptureEnabled: BooleanInput;\r\n\r\n @Output() closed = new EventEmitter<void>();\r\n\r\n @ViewChild(TemplateRef) templateRef!: TemplateRef<any>;\r\n\r\n @HostBinding('attr.role') role = 'dialog';\r\n\r\n @Input()\r\n popoverPanelStyles = {};\r\n\r\n @Input()\r\n public popoverArrowStyles = {};\r\n\r\n @Input()\r\n public popoverContentStyles = {};\r\n\r\n public containerPositioning = false;\r\n\r\n public closeDisabled = false;\r\n\r\n classList: Record<string, boolean> = {};\r\n\r\n _onAnimationStateChange = new EventEmitter<AnimationEvent>();\r\n\r\n private readonly _hostElementRef = inject<ElementRef<HTMLElement>>(ElementRef);\r\n private _dir = inject(Directionality, { optional: true })!;\r\n\r\n \r\n private _position: CmatPopoverPosition = ['below', 'after'];\r\n private _triggerEvent: CmatPopoverTriggerEvent = 'hover';\r\n private _scrollStrategy: CmatPopoverScrollStrategy = 'reposition';\r\n private _enterDelay = 100;\r\n private _leaveDelay = 100;\r\n private _panelOffsetX = 0;\r\n private _panelOffsetY = 0;\r\n private _closeOnPanelClick = false;\r\n private _closeOnBackdropClick = true;\r\n private _disableAnimation = false;\r\n private _focusTrapEnabled = true;\r\n private _focusTrapAutoCaptureEnabled = true;\r\n private _arrowOffsetX = 20;\r\n private _arrowOffsetY = 20;\r\n private _arrowWidth = 16;\r\n private _arrowHeight = 16;\r\n\r\n\r\n\r\n constructor() {\r\n this.setPositionClasses();\r\n }\r\n\r\n get position(): CmatPopoverPosition {\r\n return this._position;\r\n }\r\n \r\n @Input()\r\n set position(value: CmatPopoverPosition) {\r\n if (!['before', 'after', 'above', 'below'].includes(value[0])) {\r\n throwCmatPopoverInvalidPositionStart();\r\n }\r\n if (!['before', 'after', 'above', 'below', 'center'].includes(value[1])) {\r\n throwCmatPopoverInvalidPositionEnd();\r\n }\r\n this._position = value;\r\n this.setPositionClasses();\r\n }\r\n\r\n \r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get triggerEvent(): CmatPopoverTriggerEvent {\r\n return this._triggerEvent;\r\n }\r\n @Input()\r\n set triggerEvent(value: CmatPopoverTriggerEvent) {\r\n this._triggerEvent = value;\r\n }\r\n\r\n \r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get scrollStrategy(): CmatPopoverScrollStrategy {\r\n return this._scrollStrategy;\r\n }\r\n @Input()\r\n set scrollStrategy(value: CmatPopoverScrollStrategy) {\r\n this._scrollStrategy = value;\r\n }\r\n\r\n \r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get enterDelay(): number {\r\n return this._enterDelay;\r\n }\r\n\r\n @Input()\r\n set enterDelay(value: number) {\r\n this._enterDelay = value;\r\n }\r\n\r\n \r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get leaveDelay(): number {\r\n return this._leaveDelay;\r\n }\r\n\r\n @Input()\r\n set leaveDelay(value: number) {\r\n this._leaveDelay = value;\r\n }\r\n\r\n \r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get xOffset(): number {\r\n return this._panelOffsetX;\r\n }\r\n @Input()\r\n set xOffset(value: number) {\r\n this._panelOffsetX = value;\r\n }\r\n\r\n \r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get yOffset(): number {\r\n return this._panelOffsetY;\r\n }\r\n\r\n @Input()\r\n set yOffset(value: number) {\r\n this._panelOffsetY = value;\r\n }\r\n\r\n \r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get arrowOffsetX(): number {\r\n return this._arrowOffsetX;\r\n }\r\n\r\n @Input()\r\n set arrowOffsetX(value: number) {\r\n this._arrowOffsetX = value;\r\n }\r\n\r\n \r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get arrowOffsetY(): number {\r\n return this._arrowOffsetY;\r\n }\r\n\r\n @Input()\r\n set arrowOffsetY(value: number) {\r\n this._arrowOffsetY = value;\r\n }\r\n\r\n \r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get arrowWidth(): number {\r\n return this._arrowWidth;\r\n }\r\n\r\n @Input()\r\n set arrowWidth(value: number) {\r\n this._arrowWidth = value;\r\n }\r\n\r\n \r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get arrowHeight(): number {\r\n return this._arrowHeight;\r\n }\r\n @Input()\r\n set arrowHeight(value: number) {\r\n this._arrowHeight = value;\r\n }\r\n\r\n \r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get closeOnPanelClick(): boolean {\r\n return this._closeOnPanelClick;\r\n }\r\n\r\n @Input()\r\n set closeOnPanelClick(value: boolean) {\r\n this._closeOnPanelClick = coerceBooleanProperty(value);\r\n }\r\n\r\n \r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get closeOnBackdropClick(): boolean {\r\n return this._closeOnBackdropClick;\r\n }\r\n @Input()\r\n set closeOnBackdropClick(value: boolean) {\r\n this._closeOnBackdropClick = coerceBooleanProperty(value);\r\n }\r\n\r\n \r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get disableAnimation(): boolean {\r\n return this._disableAnimation;\r\n }\r\n\r\n @Input()\r\n set disableAnimation(value: boolean) {\r\n this._disableAnimation = coerceBooleanProperty(value);\r\n }\r\n\r\n \r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get focusTrapEnabled(): boolean {\r\n return this._focusTrapEnabled;\r\n }\r\n\r\n @Input()\r\n set focusTrapEnabled(value: boolean) {\r\n this._focusTrapEnabled = coerceBooleanProperty(value);\r\n }\r\n\r\n \r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get focusTrapAutoCaptureEnabled(): boolean {\r\n return this._focusTrapAutoCaptureEnabled;\r\n }\r\n\r\n @Input()\r\n set focusTrapAutoCaptureEnabled(value: boolean) {\r\n this._focusTrapAutoCaptureEnabled = coerceBooleanProperty(value);\r\n }\r\n\r\n \r\n @Input()\r\n set panelClass(classes: string) {\r\n if (classes?.length) {\r\n this.classList = classes.split(' ').reduce((obj: Record<string, boolean>, className: string) => {\r\n obj[className] = true;\r\n return obj;\r\n }, {});\r\n\r\n this._hostElementRef.nativeElement.setAttribute('class', '');\r\n this.setPositionClasses();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.emitCloseEvent();\r\n this.closed.complete();\r\n }\r\n\r\n \r\n handleKeydown(event: KeyboardEvent): void {\r\n switch (event.code) {\r\n case 'Escape':\r\n this.emitCloseEvent();\r\n return;\r\n }\r\n }\r\n\r\n \r\n emitCloseEvent(): void {\r\n this.closed.emit();\r\n }\r\n\r\n \r\n onClick(): void {\r\n if (this.closeOnPanelClick) {\r\n this.emitCloseEvent();\r\n }\r\n }\r\n\r\n \r\n \r\n onMouseOver(): void {\r\n if (this.triggerEvent === 'hover') {\r\n this.closeDisabled = true;\r\n }\r\n }\r\n\r\n onFocus(): void {\r\n return;\r\n }\r\n\r\n \r\n onMouseLeave(): void {\r\n if (this.triggerEvent === 'hover') {\r\n this.closeDisabled = false;\r\n this.emitCloseEvent();\r\n }\r\n }\r\n \r\n setCurrentStyles(pos = this.position): void {\r\n const left =\r\n pos[1] === 'after'\r\n ? `${this.arrowOffsetX - this.arrowWidth / 2}px`\r\n : pos[1] === 'center'\r\n ? `calc(50% - ${this.arrowWidth / 2}px)`\r\n : '';\r\n const right = pos[1] === 'before' ? `${this.arrowOffsetX - this.arrowWidth / 2}px` : '';\r\n\r\n const bottom =\r\n pos[1] === 'above'\r\n ? `${this.arrowOffsetY - this.arrowHeight / 2}px`\r\n : pos[1] === 'center'\r\n ? `calc(50% - ${this.arrowHeight / 2}px)`\r\n : '';\r\n const top = pos[1] === 'below' ? `${this.arrowOffsetY - this.arrowHeight / 2}px` : '';\r\n\r\n this.popoverArrowStyles =\r\n pos[0] === 'above' || pos[0] === 'below'\r\n ? {\r\n left: this._dir.value === 'ltr' ? left : right,\r\n right: this._dir.value === 'ltr' ? right : left,\r\n }\r\n : {\r\n top,\r\n bottom,\r\n };\r\n }\r\n\r\n \r\n setPositionClasses(pos = this.position): void {\r\n this.classList['cmat-popover-before-above'] = pos[0] === 'before' && pos[1] === 'above';\r\n this.classList['cmat-popover-before-center'] = pos[0] === 'before' && pos[1] === 'center';\r\n this.classList['cmat-popover-before-below'] = pos[0] === 'before' && pos[1] === 'below';\r\n this.classList['cmat-popover-after-above'] = pos[0] === 'after' && pos[1] === 'above';\r\n this.classList['cmat-popover-after-center'] = pos[0] === 'after' && pos[1] === 'center';\r\n this.classList['cmat-popover-after-below'] = pos[0] === 'after' && pos[1] === 'below';\r\n this.classList['cmat-popover-above-before'] = pos[0] === 'above' && pos[1] === 'before';\r\n this.classList['cmat-popover-above-center'] = pos[0] === 'above' && pos[1] === 'center';\r\n this.classList['cmat-popover-above-after'] = pos[0] === 'above' && pos[1] === 'after';\r\n this.classList['cmat-popover-below-before'] = pos[0] === 'below' && pos[1] === 'before';\r\n this.classList['cmat-popover-below-center'] = pos[0] === 'below' && pos[1] === 'center';\r\n this.classList['cmat-popover-below-after'] = pos[0] === 'below' && pos[1] === 'after';\r\n }\r\n}\r\n","<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>","\r\nimport { isFakeMousedownFromScreenReader } from '@angular/cdk/a11y';\r\nimport { Direction, Directionality } from '@angular/cdk/bidi';\r\nimport {\r\n ConnectedPosition,\r\n FlexibleConnectedPositionStrategy,\r\n HorizontalConnectionPos,\r\n Overlay,\r\n OverlayConfig,\r\n OverlayRef,\r\n ScrollStrategy,\r\n VerticalConnectionPos,\r\n} from '@angular/cdk/overlay';\r\nimport { TemplatePortal } from '@angular/cdk/portal';\r\nimport { AfterViewInit, DestroyRef, Directive, ElementRef, EventEmitter, HostBinding, HostListener, Input, OnChanges, OnDestroy, Output, SimpleChanges, ViewContainerRef, inject } from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { Subject, Subscription } from 'rxjs';\r\nimport { throwCmatPopoverMissingError } from './popover.errors';\r\nimport { CmatPopoverPanel, CmatTarget } from './popover.interfaces';\r\nimport {\r\n CmatPopoverPosition,\r\n CmatPopoverPositionStart,\r\n CmatPopoverScrollStrategy,\r\n CmatPopoverTriggerEvent,\r\n} from './popover.type';\r\n\r\n\r\n\r\n@Directive({\r\n selector: '[cmatPopoverTriggerFor],[cmatPopoverTargetAt],[cmatPopoverTriggerOn]',\r\n exportAs: 'cmatPopoverTrigger'\r\n})\r\nexport class CmatPopoverTriggerDirective implements OnChanges,AfterViewInit, OnDestroy {\r\n @HostBinding('attr.aria-haspopup') ariaHaspopup = true;\r\n \r\n @Input('cmatPopoverTriggerFor') popover!: CmatPopoverPanel;\r\n\r\n \r\n @Input('cmatPopoverTargetAt') targetElement!: CmatTarget;\r\n\r\n \r\n @Input('cmatPopoverTriggerOn') triggerEvent!: CmatPopoverTriggerEvent;\r\n\r\n \r\n @Output() popoverOpened = new EventEmitter<void>();\r\n\r\n \r\n @Output() popoverClosed = new EventEmitter<void>();\r\n\r\n popoverOpened$ = new Subject<void>();\r\n popoverClosed$ = new Subject<void>();\r\n\r\n private _overlay = inject(Overlay);\r\n private _elementRef = inject(ElementRef);\r\n private _viewContainerRef = inject(ViewContainerRef);\r\n private _dir = inject(Directionality, { optional: true })!;\r\n private readonly _destroyRef = inject(DestroyRef);\r\n\r\n private _portal!: TemplatePortal;\r\n private _overlayRef: OverlayRef | null = null;\r\n private _popoverOpen = false;\r\n private _halt = false;\r\n private _positionSubscription: Subscription | null = null;\r\n private _leaveTimeoutId: number | null = null;\r\n private _mouseoverTimer: number | null = null;\r\n private _openedByMouse = false;\r\n\r\n \r\n get popoverOpen(): boolean {\r\n return this._popoverOpen;\r\n }\r\n \r\n get dir(): Direction {\r\n return this._dir?.value === 'rtl' ? 'rtl' : 'ltr';\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n onClick(): void {\r\n if (this.popover.triggerEvent === 'click') {\r\n this.togglePopover();\r\n }\r\n }\r\n\r\n @HostListener('mouseenter', ['$event'])\r\n onMouseEnter(): void {\r\n this._halt = false;\r\n if (this.popover.triggerEvent === 'hover') {\r\n this._mouseoverTimer = Number(setTimeout(() => {\r\n this.openPopover();\r\n }, this.popover.enterDelay));\r\n }\r\n }\r\n\r\n @HostListener('mouseleave', ['$event'])\r\n onMouseLeave(): void {\r\n if (this.popover.triggerEvent === 'hover') {\r\n if (this._mouseoverTimer !== null) {\r\n clearTimeout(this._mouseoverTimer);\r\n this._mouseoverTimer = null;\r\n }\r\n if (this._popoverOpen) {\r\n this._leaveTimeoutId = window.setTimeout(() => {\r\n this._leaveTimeoutId = null;\r\n if (!this.popover.closeDisabled) {\r\n this.closePopover();\r\n }\r\n }, this.popover.leaveDelay);\r\n } else {\r\n this._halt = true;\r\n }\r\n }\r\n }\r\n @HostListener('mousedown', ['$event'])\r\n handleMousedown(event: MouseEvent): void {\r\n if (event && !isFakeMousedownFromScreenReader(event)) {\r\n this._openedByMouse = true;\r\n }\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['triggerEvent']) {\r\n this._setCurrentConfig();\r\n }\r\n }\r\n ngAfterViewInit(): void {\r\n this._checkPopover();\r\n this._setCurrentConfig();\r\n this.popover.closed\r\n .pipe(takeUntilDestroyed(this._destroyRef))\r\n .subscribe(() => this.closePopover());\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._clearLeaveTimeout();\r\n this.destroyPopover();\r\n this.popoverOpened$.complete();\r\n this.popoverClosed$.complete();\r\n }\r\n\r\n\r\n\r\n \r\n togglePopover(): void {\r\n return this._popoverOpen ? this.closePopover() : this.openPopover();\r\n }\r\n\r\n \r\n openPopover(): void {\r\n if (!this._popoverOpen && !this._halt) {\r\n this._createOverlay().attach(this._portal);\r\n\r\n this._subscribeToBackdrop();\r\n this._subscribeToDetachments();\r\n\r\n this._initPopover();\r\n }\r\n }\r\n\r\n \r\n closePopover(): void {\r\n if (this._overlayRef) {\r\n this._overlayRef.detach();\r\n this._resetPopover();\r\n }\r\n }\r\n\r\n \r\n destroyPopover(): void {\r\n if (this._mouseoverTimer !== null) {\r\n clearTimeout(this._mouseoverTimer);\r\n this._mouseoverTimer = null;\r\n }\r\n this._clearLeaveTimeout();\r\n this._cleanUpPositionSubscription();\r\n if (this._overlayRef) {\r\n this._overlayRef.dispose();\r\n this._overlayRef = null;\r\n }\r\n }\r\n\r\n \r\n focus(): void {\r\n (this._elementRef.nativeElement as HTMLElement).focus();\r\n }\r\n\r\n \r\n private _subscribeToBackdrop(): void {\r\n if (this._overlayRef) {\r\n \r\n if (this.triggerEvent === 'click' && this.popover.closeOnBackdropClick === true) {\r\n this._overlayRef\r\n .backdropClick()\r\n .pipe(takeUntilDestroyed(this._destroyRef))\r\n .subscribe(() => {\r\n this.popover.emitCloseEvent();\r\n });\r\n }\r\n }\r\n }\r\n\r\n private _subscribeToDetachments(): void {\r\n if (this._overlayRef) {\r\n this._overlayRef\r\n .detachments()\r\n .pipe(takeUntilDestroyed(this._destroyRef))\r\n .subscribe(() => {\r\n this._setPopoverClosed();\r\n });\r\n }\r\n }\r\n\r\n \r\n private _initPopover(): void {\r\n this._setPopoverOpened();\r\n }\r\n\r\n \r\n private _resetPopover(): void {\r\n this._setPopoverClosed();\r\n if (!this._openedByMouse) {\r\n this.focus();\r\n }\r\n this._openedByMouse = false;\r\n }\r\n\r\n \r\n private _setPopoverOpened(): void {\r\n if (!this._popoverOpen) {\r\n this._popoverOpen = true;\r\n\r\n this.popoverOpened$.next();\r\n this.popoverOpened.emit();\r\n }\r\n }\r\n\r\n \r\n private _setPopoverClosed(): void {\r\n if (this._popoverOpen) {\r\n this._popoverOpen = false;\r\n\r\n this.popoverClosed$.next();\r\n this.popoverClosed.emit();\r\n }\r\n }\r\n\r\n \r\n private _checkPopover(): void {\r\n if (!this.popover) {\r\n throwCmatPopoverMissingError();\r\n }\r\n }\r\n\r\n \r\n private _createOverlay(): OverlayRef {\r\n if (!this._overlayRef) {\r\n this._portal = new TemplatePortal(this.popover.templateRef, this._viewContainerRef);\r\n const config = this._getOverlayConfig();\r\n this._subscribeToPositions(config.positionStrategy as FlexibleConnectedPositionStrategy);\r\n this._overlayRef = this._overlay.create(config);\r\n }\r\n\r\n return this._overlayRef;\r\n }\r\n\r\n \r\n private _getOverlayConfig(): OverlayConfig {\r\n const overlayState = new OverlayConfig();\r\n overlayState.positionStrategy = this._getPosition();\r\n\r\n \r\n if (this.triggerEvent === 'click') {\r\n overlayState.hasBackdrop = true;\r\n overlayState.backdropClass = 'cdk-overlay-transparent-backdrop';\r\n }\r\n\r\n overlayState.direction = this._dir;\r\n overlayState.scrollStrategy = this._getOverlayScrollStrategy(this.popover.scrollStrategy);\r\n\r\n return overlayState;\r\n }\r\n\r\n \r\n private _getOverlayScrollStrategy(strategy: CmatPopoverScrollStrategy): ScrollStrategy {\r\n switch (strategy) {\r\n case 'noop':\r\n return this._overlay.scrollStrategies.noop();\r\n case 'close':\r\n return this._overlay.scrollStrategies.close();\r\n case 'block':\r\n return this._overlay.scrollStrategies.block();\r\n case 'reposition':\r\n default:\r\n return this._overlay.scrollStrategies.reposition();\r\n }\r\n }\r\n\r\n \r\n private _subscribeToPositions(position: FlexibleConnectedPositionStrategy): void {\r\n this._cleanUpPositionSubscription();\r\n this._positionSubscription = position.positionChanges.subscribe((change) => {\r\n const posX =\r\n change.connectionPair.overlayX === 'start'\r\n ? 'after'\r\n : change.connectionPair.overlayX === 'end'\r\n ? 'before'\r\n : 'center';\r\n const posY =\r\n change.connectionPair.overlayY === 'top'\r\n ? 'below'\r\n : change.connectionPair.overlayY === 'bottom'\r\n ? 'above'\r\n : 'center';\r\n\r\n const pos: CmatPopoverPosition =\r\n this.popover.position[0] === 'above' || this.popover.position[0] === 'below'\r\n ? [posY as CmatPopoverPositionStart, posX]\r\n : [posX as CmatPopoverPositionStart, posY];\r\n\r\n this.popover.setCurrentStyles(pos);\r\n this.popover.setPositionClasses(pos);\r\n });\r\n }\r\n\r\n \r\n private _getPosition(): FlexibleConnectedPositionStrategy {\r\n const [originX, origin2ndX, origin3rdX]: HorizontalConnectionPos[] =\r\n this.popover.position[0] === 'before' || this.popover.position[1] === 'after'\r\n ? ['start', 'center', 'end']\r\n : this.popover.position[0] === 'after' || this.popover.position[1] === 'before'\r\n ? ['end', 'center', 'start']\r\n : ['center', 'start', 'end'];\r\n\r\n const [originY, origin2ndY, origin3rdY]: VerticalConnectionPos[] =\r\n this.popover.position[0] === 'above' || this.popover.position[1] === 'below'\r\n ? ['top', 'center', 'bottom']\r\n : this.popover.position[0] === 'below' || this.popover.position[1] === 'above'\r\n ? ['bottom', 'center', 'top']\r\n : ['center', 'top', 'bottom'];\r\n\r\n const [overlayX, overlayFallbackX]: HorizontalConnectionPos[] =\r\n this.popover.position[0] === 'below' || this.popover.position[0] === 'above'\r\n ? [originX, originX]\r\n : this.popover.position[0] === 'before'\r\n ? ['end', 'start']\r\n : ['start', 'end'];\r\n\r\n const [overlayY, overlayFallbackY]: VerticalConnectionPos[] =\r\n this.popover.position[0] === 'before' || this.popover.position[0] === 'after'\r\n ? [originY, originY]\r\n : this.popover.position[0] === 'below'\r\n ? ['top', 'bottom']\r\n : ['bottom', 'top'];\r\n\r\n const originFallbackX = overlayX;\r\n const originFallbackY = overlayY;\r\n\r\n const offsetX =\r\n this.popover.xOffset && !isNaN(Number(this.popover.xOffset))\r\n ? Number(this.dir === 'ltr' ? this.popover.xOffset : -this.popover.xOffset)\r\n : 0;\r\n const offsetY =\r\n this.popover.yOffset && !isNaN(Number(this.popover.yOffset))\r\n ? Number(this.popover.yOffset)\r\n : 0;\r\n\r\n \r\n let element = this._elementRef;\r\n if (typeof this.targetElement !== 'undefined') {\r\n this.popover.containerPositioning = true;\r\n element = this.targetElement._elementRef;\r\n }\r\n\r\n let positions: ConnectedPosition[] = [{ originX, originY, overlayX, overlayY }];\r\n\r\n if (this.popover.position[0] === 'above' || this.popover.position[0] === 'below') {\r\n positions = [\r\n { originX, originY, overlayX, overlayY, offsetY },\r\n { originX: origin2ndX, originY, overlayX: origin2ndX, overlayY, offsetY },\r\n { originX: origin3rdX, originY, overlayX: origin3rdX, overlayY, offsetY },\r\n {\r\n originX,\r\n originY: originFallbackY,\r\n overlayX,\r\n overlayY: overlayFallbackY,\r\n offsetY: -offsetY,\r\n },\r\n {\r\n originX: origin2ndX,\r\n originY: originFallbackY,\r\n overlayX: origin2ndX,\r\n overlayY: overlayFallbackY,\r\n offsetY: -offsetY,\r\n },\r\n {\r\n originX: origin3rdX,\r\n originY: originFallbackY,\r\n overlayX: origin3rdX,\r\n overlayY: overlayFallbackY,\r\n offsetY: -offsetY,\r\n },\r\n ];\r\n }\r\n\r\n if (this.popover.position[0] === 'before' || this.popover.position[0] === 'after') {\r\n positions = [\r\n { originX, originY, overlayX, overlayY, offsetX },\r\n { originX, originY: origin2ndY, overlayX, overlayY: origin2ndY, offsetX },\r\n { originX, originY: origin3rdY, overlayX, overlayY: origin3rdY, offsetX },\r\n {\r\n originX: originFallbackX,\r\n originY,\r\n overlayX: overlayFallbackX,\r\n overlayY,\r\n offsetX: -offsetX,\r\n },\r\n {\r\n originX: originFallbackX,\r\n originY: origin2ndY,\r\n overlayX: overlayFallbackX,\r\n overlayY: origin2ndY,\r\n offsetX: -offsetX,\r\n },\r\n {\r\n originX: originFallbackX,\r\n originY: origin3rdY,\r\n overlayX: overlayFallbackX,\r\n overlayY: origin3rdY,\r\n offsetX: -offsetX,\r\n },\r\n ];\r\n }\r\n\r\n return this._overlay\r\n .position()\r\n .flexibleConnectedTo(element)\r\n .withLockedPosition()\r\n .withPositions(positions)\r\n .withDefaultOffsetX(offsetX)\r\n .withDefaultOffsetY(offsetY);\r\n }\r\n\r\n private _cleanUpPositionSubscription(): void {\r\n if (this._positionSubscription) {\r\n this._positionSubscription.unsubscribe();\r\n this._positionSubscription = null;\r\n }\r\n }\r\n\r\n private _clearLeaveTimeout(): void {\r\n if (this._leaveTimeoutId !== null) {\r\n clearTimeout(this._leaveTimeoutId);\r\n this._leaveTimeoutId = null;\r\n }\r\n }\r\n\r\n private _setCurrentConfig(): void {\r\n if (this.triggerEvent) {\r\n this.popover.triggerEvent = this.triggerEvent;\r\n }\r\n\r\n this.popover.setCurrentStyles();\r\n }\r\n\r\n}\r\n","import { Directive, ElementRef, inject } from '@angular/core';\r\n\r\n@Directive({\r\n selector: 'cmat-popover-target, [cmatPopoverTarget]',\r\n exportAs: 'cmatPopoverTarget',\r\n})\r\nexport class CmatPopoverTargetDirective {\r\n elementRef = inject(ElementRef);\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cmat-components-popover.mjs","sources":["../../../projects/cmat/components/popover/popover.errors.ts","../../../projects/cmat/components/popover/popover.component.ts","../../../projects/cmat/components/popover/popover.component.html","../../../projects/cmat/components/popover/popover-trigger.ts","../../../projects/cmat/components/popover/popover.target.ts","../../../projects/cmat/components/popover/cmat-components-popover.ts"],"sourcesContent":["\r\n\r\nexport function throwCmatPopoverMissingError(): void {\r\n throw Error(`cmat-popover-trigger: must pass in an cmat-popover instance.\r\n\r\n Example:\r\n <cmat-popover #popover=\"cmatPopover\"></cmat-popover>\r\n <button [cmatPopoverTriggerFor]=\"popover\"></button>`);\r\n}\r\n\r\n\r\nexport function throwCmatPopoverInvalidPositionStart(): void {\r\n throw Error(`cmatPopoverPosition[0] value must be either 'above', 'below', 'before' or 'after'.\r\n Example: <cmat-popover [position]=\"['below', 'after']\" #popover=\"cmatPopover\"></cmat-popover>`);\r\n}\r\n\r\n\r\nexport function throwCmatPopoverInvalidPositionEnd(): void {\r\n throw Error(`cmatPopoverPosition[1] value must be either 'above', 'below', 'before', 'after' or 'center'.\r\n Example: <cmat-popover [position]=\"['below', 'after']\" #popover=\"cmatPopover\"></cmat-popover>`);\r\n}\r\n","/* eslint-disable @typescript-eslint/naming-convention */\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\nimport { Directionality } from '@angular/cdk/bidi';\r\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { NgClass, NgStyle } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, HostBinding, Input, OnDestroy, Output, TemplateRef, ViewChild, ViewEncapsulation, inject } from '@angular/core';\r\nimport { throwCmatPopoverInvalidPositionEnd, throwCmatPopoverInvalidPositionStart } from './popover.errors';\r\nimport { CmatPopoverPanel } from './popover.interfaces';\r\nimport { CmatPopoverPosition, CmatPopoverScrollStrategy, CmatPopoverTriggerEvent } from './popover.type';\r\n\r\n@Component({\r\n selector: 'cmat-popover',\r\n templateUrl: './popover.component.html',\r\n styleUrls: ['./popover.component.scss','../../animations/zoom.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n exportAs: 'cmatPopover',\r\n imports: [NgStyle, NgClass, A11yModule]\r\n})\r\nexport class CmatPopoverComponent implements CmatPopoverPanel, OnDestroy {\r\n static ngAcceptInputType_closeOnPanelClick: BooleanInput;\r\n static ngAcceptInputType_closeOnBackdropClick: BooleanInput;\r\n static ngAcceptInputType_disableAnimation: BooleanInput;\r\n static ngAcceptInputType_focusTrapEnabled: BooleanInput;\r\n static ngAcceptInputType_focusTrapAutoCaptureEnabled: BooleanInput;\r\n\r\n @Output() closed = new EventEmitter<void>();\r\n\r\n @ViewChild(TemplateRef) templateRef!: TemplateRef<unknown>;\r\n\r\n @HostBinding('attr.role') role = 'dialog';\r\n\r\n @Input()\r\n popoverPanelStyles = {};\r\n\r\n @Input()\r\n public popoverArrowStyles = {};\r\n\r\n @Input()\r\n public popoverContentStyles = {};\r\n\r\n public containerPositioning = false;\r\n\r\n public closeDisabled = false;\r\n\r\n classList: Record<string, boolean> = {};\r\n\r\n _onAnimationStateChange = new EventEmitter<AnimationEvent>();\r\n\r\n private readonly _hostElementRef = inject<ElementRef<HTMLElement>>(ElementRef);\r\n private _dir = inject(Directionality, { optional: true })!;\r\n\r\n \r\n private _position: CmatPopoverPosition = ['below', 'after'];\r\n private _triggerEvent: CmatPopoverTriggerEvent = 'hover';\r\n private _scrollStrategy: CmatPopoverScrollStrategy = 'reposition';\r\n private _enterDelay = 100;\r\n private _leaveDelay = 100;\r\n private _panelOffsetX = 0;\r\n private _panelOffsetY = 0;\r\n private _closeOnPanelClick = false;\r\n private _closeOnBackdropClick = true;\r\n private _disableAnimation = false;\r\n private _focusTrapEnabled = true;\r\n private _focusTrapAutoCaptureEnabled = true;\r\n private _arrowOffsetX = 20;\r\n private _arrowOffsetY = 20;\r\n private _arrowWidth = 16;\r\n private _arrowHeight = 16;\r\n\r\n\r\n\r\n constructor() {\r\n this.setPositionClasses();\r\n }\r\n\r\n get position(): CmatPopoverPosition {\r\n return this._position;\r\n }\r\n \r\n @Input()\r\n set position(value: CmatPopoverPosition) {\r\n if (!['before', 'after', 'above', 'below'].includes(value[0])) {\r\n throwCmatPopoverInvalidPositionStart();\r\n }\r\n if (!['before', 'after', 'above', 'below', 'center'].includes(value[1])) {\r\n throwCmatPopoverInvalidPositionEnd();\r\n }\r\n this._position = value;\r\n this.setPositionClasses();\r\n }\r\n\r\n \r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get triggerEvent(): CmatPopoverTriggerEvent {\r\n return this._triggerEvent;\r\n }\r\n @Input()\r\n set triggerEvent(value: CmatPopoverTriggerEvent) {\r\n this._triggerEvent = value;\r\n }\r\n\r\n \r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get scrollStrategy(): CmatPopoverScrollStrategy {\r\n return this._scrollStrategy;\r\n }\r\n @Input()\r\n set scrollStrategy(value: CmatPopoverScrollStrategy) {\r\n this._scrollStrategy = value;\r\n }\r\n\r\n \r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get enterDelay(): number {\r\n return this._enterDelay;\r\n }\r\n\r\n @Input()\r\n set enterDelay(value: number) {\r\n this._enterDelay = value;\r\n }\r\n\r\n \r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get leaveDelay(): number {\r\n return this._leaveDelay;\r\n }\r\n\r\n @Input()\r\n set leaveDelay(value: number) {\r\n this._leaveDelay = value;\r\n }\r\n\r\n \r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get xOffset(): number {\r\n return this._panelOffsetX;\r\n }\r\n @Input()\r\n set xOffset(value: number) {\r\n this._panelOffsetX = value;\r\n }\r\n\r\n \r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get yOffset(): number {\r\n return this._panelOffsetY;\r\n }\r\n\r\n @Input()\r\n set yOffset(value: number) {\r\n this._panelOffsetY = value;\r\n }\r\n\r\n \r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get arrowOffsetX(): number {\r\n return this._arrowOffsetX;\r\n }\r\n\r\n @Input()\r\n set arrowOffsetX(value: number) {\r\n this._arrowOffsetX = value;\r\n }\r\n\r\n \r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get arrowOffsetY(): number {\r\n return this._arrowOffsetY;\r\n }\r\n\r\n @Input()\r\n set arrowOffsetY(value: number) {\r\n this._arrowOffsetY = value;\r\n }\r\n\r\n \r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get arrowWidth(): number {\r\n return this._arrowWidth;\r\n }\r\n\r\n @Input()\r\n set arrowWidth(value: number) {\r\n this._arrowWidth = value;\r\n }\r\n\r\n \r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get arrowHeight(): number {\r\n return this._arrowHeight;\r\n }\r\n @Input()\r\n set arrowHeight(value: number) {\r\n this._arrowHeight = value;\r\n }\r\n\r\n \r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get closeOnPanelClick(): boolean {\r\n return this._closeOnPanelClick;\r\n }\r\n\r\n @Input()\r\n set closeOnPanelClick(value: boolean) {\r\n this._closeOnPanelClick = coerceBooleanProperty(value);\r\n }\r\n\r\n \r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get closeOnBackdropClick(): boolean {\r\n return this._closeOnBackdropClick;\r\n }\r\n @Input()\r\n set closeOnBackdropClick(value: boolean) {\r\n this._closeOnBackdropClick = coerceBooleanProperty(value);\r\n }\r\n\r\n \r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get disableAnimation(): boolean {\r\n return this._disableAnimation;\r\n }\r\n\r\n @Input()\r\n set disableAnimation(value: boolean) {\r\n this._disableAnimation = coerceBooleanProperty(value);\r\n }\r\n\r\n \r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get focusTrapEnabled(): boolean {\r\n return this._focusTrapEnabled;\r\n }\r\n\r\n @Input()\r\n set focusTrapEnabled(value: boolean) {\r\n this._focusTrapEnabled = coerceBooleanProperty(value);\r\n }\r\n\r\n \r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get focusTrapAutoCaptureEnabled(): boolean {\r\n return this._focusTrapAutoCaptureEnabled;\r\n }\r\n\r\n @Input()\r\n set focusTrapAutoCaptureEnabled(value: boolean) {\r\n this._focusTrapAutoCaptureEnabled = coerceBooleanProperty(value);\r\n }\r\n\r\n \r\n @Input()\r\n set panelClass(classes: string) {\r\n if (classes?.length) {\r\n this.classList = classes.split(' ').reduce((obj: Record<string, boolean>, className: string) => {\r\n obj[className] = true;\r\n return obj;\r\n }, {});\r\n\r\n this._hostElementRef.nativeElement.setAttribute('class', '');\r\n this.setPositionClasses();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.emitCloseEvent();\r\n this.closed.complete();\r\n }\r\n\r\n \r\n handleKeydown(event: KeyboardEvent): void {\r\n switch (event.code) {\r\n case 'Escape':\r\n this.emitCloseEvent();\r\n return;\r\n }\r\n }\r\n\r\n \r\n emitCloseEvent(): void {\r\n this.closed.emit();\r\n }\r\n\r\n \r\n onClick(): void {\r\n if (this.closeOnPanelClick) {\r\n this.emitCloseEvent();\r\n }\r\n }\r\n\r\n \r\n \r\n onMouseOver(): void {\r\n if (this.triggerEvent === 'hover') {\r\n this.closeDisabled = true;\r\n }\r\n }\r\n\r\n onFocus(): void {\r\n return;\r\n }\r\n\r\n \r\n onMouseLeave(): void {\r\n if (this.triggerEvent === 'hover') {\r\n this.closeDisabled = false;\r\n this.emitCloseEvent();\r\n }\r\n }\r\n \r\n setCurrentStyles(pos = this.position): void {\r\n const left =\r\n pos[1] === 'after'\r\n ? `${this.arrowOffsetX - this.arrowWidth / 2}px`\r\n : pos[1] === 'center'\r\n ? `calc(50% - ${this.arrowWidth / 2}px)`\r\n : '';\r\n const right = pos[1] === 'before' ? `${this.arrowOffsetX - this.arrowWidth / 2}px` : '';\r\n\r\n const bottom =\r\n pos[1] === 'above'\r\n ? `${this.arrowOffsetY - this.arrowHeight / 2}px`\r\n : pos[1] === 'center'\r\n ? `calc(50% - ${this.arrowHeight / 2}px)`\r\n : '';\r\n const top = pos[1] === 'below' ? `${this.arrowOffsetY - this.arrowHeight / 2}px` : '';\r\n\r\n this.popoverArrowStyles =\r\n pos[0] === 'above' || pos[0] === 'below'\r\n ? {\r\n left: this._dir.value === 'ltr' ? left : right,\r\n right: this._dir.value === 'ltr' ? right : left,\r\n }\r\n : {\r\n top,\r\n bottom,\r\n };\r\n }\r\n\r\n \r\n setPositionClasses(pos = this.position): void {\r\n this.classList['cmat-popover-before-above'] = pos[0] === 'before' && pos[1] === 'above';\r\n this.classList['cmat-popover-before-center'] = pos[0] === 'before' && pos[1] === 'center';\r\n this.classList['cmat-popover-before-below'] = pos[0] === 'before' && pos[1] === 'below';\r\n this.classList['cmat-popover-after-above'] = pos[0] === 'after' && pos[1] === 'above';\r\n this.classList['cmat-popover-after-center'] = pos[0] === 'after' && pos[1] === 'center';\r\n this.classList['cmat-popover-after-below'] = pos[0] === 'after' && pos[1] === 'below';\r\n this.classList['cmat-popover-above-before'] = pos[0] === 'above' && pos[1] === 'before';\r\n this.classList['cmat-popover-above-center'] = pos[0] === 'above' && pos[1] === 'center';\r\n this.classList['cmat-popover-above-after'] = pos[0] === 'above' && pos[1] === 'after';\r\n this.classList['cmat-popover-below-before'] = pos[0] === 'below' && pos[1] === 'before';\r\n this.classList['cmat-popover-below-center'] = pos[0] === 'below' && pos[1] === 'center';\r\n this.classList['cmat-popover-below-after'] = pos[0] === 'below' && pos[1] === 'after';\r\n }\r\n}\r\n","<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>","\r\nimport { isFakeMousedownFromScreenReader } from '@angular/cdk/a11y';\r\nimport { Direction, Directionality } from '@angular/cdk/bidi';\r\nimport {\r\n ConnectedPosition,\r\n FlexibleConnectedPositionStrategy,\r\n HorizontalConnectionPos,\r\n Overlay,\r\n OverlayConfig,\r\n OverlayRef,\r\n ScrollStrategy,\r\n VerticalConnectionPos,\r\n} from '@angular/cdk/overlay';\r\nimport { TemplatePortal } from '@angular/cdk/portal';\r\nimport { AfterViewInit, DestroyRef, Directive, ElementRef, EventEmitter, HostBinding, HostListener, Input, OnChanges, OnDestroy, Output, SimpleChanges, ViewContainerRef, inject } from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { Subject, Subscription } from 'rxjs';\r\nimport { throwCmatPopoverMissingError } from './popover.errors';\r\nimport { CmatPopoverPanel, CmatTarget } from './popover.interfaces';\r\nimport {\r\n CmatPopoverPosition,\r\n CmatPopoverPositionStart,\r\n CmatPopoverScrollStrategy,\r\n CmatPopoverTriggerEvent,\r\n} from './popover.type';\r\n\r\n\r\n\r\n@Directive({\r\n selector: '[cmatPopoverTriggerFor],[cmatPopoverTargetAt],[cmatPopoverTriggerOn]',\r\n exportAs: 'cmatPopoverTrigger'\r\n})\r\nexport class CmatPopoverTriggerDirective implements OnChanges,AfterViewInit, OnDestroy {\r\n @HostBinding('attr.aria-haspopup') ariaHaspopup = true;\r\n \r\n @Input('cmatPopoverTriggerFor') popover!: CmatPopoverPanel;\r\n\r\n \r\n @Input('cmatPopoverTargetAt') targetElement!: CmatTarget;\r\n\r\n \r\n @Input('cmatPopoverTriggerOn') triggerEvent!: CmatPopoverTriggerEvent;\r\n\r\n \r\n @Output() popoverOpened = new EventEmitter<void>();\r\n\r\n \r\n @Output() popoverClosed = new EventEmitter<void>();\r\n\r\n popoverOpened$ = new Subject<void>();\r\n popoverClosed$ = new Subject<void>();\r\n\r\n private _overlay = inject(Overlay);\r\n private _elementRef = inject(ElementRef);\r\n private _viewContainerRef = inject(ViewContainerRef);\r\n private _dir = inject(Directionality, { optional: true })!;\r\n private readonly _destroyRef = inject(DestroyRef);\r\n\r\n private _portal!: TemplatePortal;\r\n private _overlayRef: OverlayRef | null = null;\r\n private _popoverOpen = false;\r\n private _halt = false;\r\n private _positionSubscription: Subscription | null = null;\r\n private _leaveTimeoutId: number | null = null;\r\n private _mouseoverTimer: number | null = null;\r\n private _openedByMouse = false;\r\n\r\n \r\n get popoverOpen(): boolean {\r\n return this._popoverOpen;\r\n }\r\n \r\n get dir(): Direction {\r\n return this._dir?.value === 'rtl' ? 'rtl' : 'ltr';\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n onClick(): void {\r\n if (this.popover.triggerEvent === 'click') {\r\n this.togglePopover();\r\n }\r\n }\r\n\r\n @HostListener('mouseenter', ['$event'])\r\n onMouseEnter(): void {\r\n this._halt = false;\r\n if (this.popover.triggerEvent === 'hover') {\r\n this._mouseoverTimer = Number(setTimeout(() => {\r\n this.openPopover();\r\n }, this.popover.enterDelay));\r\n }\r\n }\r\n\r\n @HostListener('mouseleave', ['$event'])\r\n onMouseLeave(): void {\r\n if (this.popover.triggerEvent === 'hover') {\r\n if (this._mouseoverTimer !== null) {\r\n clearTimeout(this._mouseoverTimer);\r\n this._mouseoverTimer = null;\r\n }\r\n if (this._popoverOpen) {\r\n this._leaveTimeoutId = window.setTimeout(() => {\r\n this._leaveTimeoutId = null;\r\n if (!this.popover.closeDisabled) {\r\n this.closePopover();\r\n }\r\n }, this.popover.leaveDelay);\r\n } else {\r\n this._halt = true;\r\n }\r\n }\r\n }\r\n @HostListener('mousedown', ['$event'])\r\n handleMousedown(event: MouseEvent): void {\r\n if (event && !isFakeMousedownFromScreenReader(event)) {\r\n this._openedByMouse = true;\r\n }\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['triggerEvent']) {\r\n this._setCurrentConfig();\r\n }\r\n }\r\n ngAfterViewInit(): void {\r\n this._checkPopover();\r\n this._setCurrentConfig();\r\n this.popover.closed\r\n .pipe(takeUntilDestroyed(this._destroyRef))\r\n .subscribe(() => this.closePopover());\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._clearLeaveTimeout();\r\n this.destroyPopover();\r\n this.popoverOpened$.complete();\r\n this.popoverClosed$.complete();\r\n }\r\n\r\n\r\n\r\n \r\n togglePopover(): void {\r\n return this._popoverOpen ? this.closePopover() : this.openPopover();\r\n }\r\n\r\n \r\n openPopover(): void {\r\n if (!this._popoverOpen && !this._halt) {\r\n this._createOverlay().attach(this._portal);\r\n\r\n this._subscribeToBackdrop();\r\n this._subscribeToDetachments();\r\n\r\n this._initPopover();\r\n }\r\n }\r\n\r\n \r\n closePopover(): void {\r\n if (this._overlayRef) {\r\n this._overlayRef.detach();\r\n this._resetPopover();\r\n }\r\n }\r\n\r\n \r\n destroyPopover(): void {\r\n if (this._mouseoverTimer !== null) {\r\n clearTimeout(this._mouseoverTimer);\r\n this._mouseoverTimer = null;\r\n }\r\n this._clearLeaveTimeout();\r\n this._cleanUpPositionSubscription();\r\n if (this._overlayRef) {\r\n this._overlayRef.dispose();\r\n this._overlayRef = null;\r\n }\r\n }\r\n\r\n \r\n focus(): void {\r\n (this._elementRef.nativeElement as HTMLElement).focus();\r\n }\r\n\r\n \r\n private _subscribeToBackdrop(): void {\r\n if (this._overlayRef) {\r\n \r\n if (this.triggerEvent === 'click' && this.popover.closeOnBackdropClick === true) {\r\n this._overlayRef\r\n .backdropClick()\r\n .pipe(takeUntilDestroyed(this._destroyRef))\r\n .subscribe(() => {\r\n this.popover.emitCloseEvent();\r\n });\r\n }\r\n }\r\n }\r\n\r\n private _subscribeToDetachments(): void {\r\n if (this._overlayRef) {\r\n this._overlayRef\r\n .detachments()\r\n .pipe(takeUntilDestroyed(this._destroyRef))\r\n .subscribe(() => {\r\n this._setPopoverClosed();\r\n });\r\n }\r\n }\r\n\r\n \r\n private _initPopover(): void {\r\n this._setPopoverOpened();\r\n }\r\n\r\n \r\n private _resetPopover(): void {\r\n this._setPopoverClosed();\r\n if (!this._openedByMouse) {\r\n this.focus();\r\n }\r\n this._openedByMouse = false;\r\n }\r\n\r\n \r\n private _setPopoverOpened(): void {\r\n if (!this._popoverOpen) {\r\n this._popoverOpen = true;\r\n\r\n this.popoverOpened$.next();\r\n this.popoverOpened.emit();\r\n }\r\n }\r\n\r\n \r\n private _setPopoverClosed(): void {\r\n if (this._popoverOpen) {\r\n this._popoverOpen = false;\r\n\r\n this.popoverClosed$.next();\r\n this.popoverClosed.emit();\r\n }\r\n }\r\n\r\n \r\n private _checkPopover(): void {\r\n if (!this.popover) {\r\n throwCmatPopoverMissingError();\r\n }\r\n }\r\n\r\n \r\n private _createOverlay(): OverlayRef {\r\n if (!this._overlayRef) {\r\n this._portal = new TemplatePortal(this.popover.templateRef, this._viewContainerRef);\r\n const config = this._getOverlayConfig();\r\n this._subscribeToPositions(config.positionStrategy as FlexibleConnectedPositionStrategy);\r\n this._overlayRef = this._overlay.create(config);\r\n }\r\n\r\n return this._overlayRef;\r\n }\r\n\r\n \r\n private _getOverlayConfig(): OverlayConfig {\r\n const overlayState = new OverlayConfig();\r\n overlayState.positionStrategy = this._getPosition();\r\n\r\n \r\n if (this.triggerEvent === 'click') {\r\n overlayState.hasBackdrop = true;\r\n overlayState.backdropClass = 'cdk-overlay-transparent-backdrop';\r\n }\r\n\r\n overlayState.direction = this._dir;\r\n overlayState.scrollStrategy = this._getOverlayScrollStrategy(this.popover.scrollStrategy);\r\n\r\n return overlayState;\r\n }\r\n\r\n \r\n private _getOverlayScrollStrategy(strategy: CmatPopoverScrollStrategy): ScrollStrategy {\r\n switch (strategy) {\r\n case 'noop':\r\n return this._overlay.scrollStrategies.noop();\r\n case 'close':\r\n return this._overlay.scrollStrategies.close();\r\n case 'block':\r\n return this._overlay.scrollStrategies.block();\r\n case 'reposition':\r\n default:\r\n return this._overlay.scrollStrategies.reposition();\r\n }\r\n }\r\n\r\n \r\n private _subscribeToPositions(position: FlexibleConnectedPositionStrategy): void {\r\n this._cleanUpPositionSubscription();\r\n this._positionSubscription = position.positionChanges.subscribe((change) => {\r\n const posX =\r\n change.connectionPair.overlayX === 'start'\r\n ? 'after'\r\n : change.connectionPair.overlayX === 'end'\r\n ? 'before'\r\n : 'center';\r\n const posY =\r\n change.connectionPair.overlayY === 'top'\r\n ? 'below'\r\n : change.connectionPair.overlayY === 'bottom'\r\n ? 'above'\r\n : 'center';\r\n\r\n const pos: CmatPopoverPosition =\r\n this.popover.position[0] === 'above' || this.popover.position[0] === 'below'\r\n ? [posY as CmatPopoverPositionStart, posX]\r\n : [posX as CmatPopoverPositionStart, posY];\r\n\r\n this.popover.setCurrentStyles(pos);\r\n this.popover.setPositionClasses(pos);\r\n });\r\n }\r\n\r\n \r\n private _getPosition(): FlexibleConnectedPositionStrategy {\r\n const [originX, origin2ndX, origin3rdX]: HorizontalConnectionPos[] =\r\n this.popover.position[0] === 'before' || this.popover.position[1] === 'after'\r\n ? ['start', 'center', 'end']\r\n : this.popover.position[0] === 'after' || this.popover.position[1] === 'before'\r\n ? ['end', 'center', 'start']\r\n : ['center', 'start', 'end'];\r\n\r\n const [originY, origin2ndY, origin3rdY]: VerticalConnectionPos[] =\r\n this.popover.position[0] === 'above' || this.popover.position[1] === 'below'\r\n ? ['top', 'center', 'bottom']\r\n : this.popover.position[0] === 'below' || this.popover.position[1] === 'above'\r\n ? ['bottom', 'center', 'top']\r\n : ['center', 'top', 'bottom'];\r\n\r\n const [overlayX, overlayFallbackX]: HorizontalConnectionPos[] =\r\n this.popover.position[0] === 'below' || this.popover.position[0] === 'above'\r\n ? [originX, originX]\r\n : this.popover.position[0] === 'before'\r\n ? ['end', 'start']\r\n : ['start', 'end'];\r\n\r\n const [overlayY, overlayFallbackY]: VerticalConnectionPos[] =\r\n this.popover.position[0] === 'before' || this.popover.position[0] === 'after'\r\n ? [originY, originY]\r\n : this.popover.position[0] === 'below'\r\n ? ['top', 'bottom']\r\n : ['bottom', 'top'];\r\n\r\n const originFallbackX = overlayX;\r\n const originFallbackY = overlayY;\r\n\r\n const offsetX =\r\n this.popover.xOffset && !isNaN(Number(this.popover.xOffset))\r\n ? Number(this.dir === 'ltr' ? this.popover.xOffset : -this.popover.xOffset)\r\n : 0;\r\n const offsetY =\r\n this.popover.yOffset && !isNaN(Number(this.popover.yOffset))\r\n ? Number(this.popover.yOffset)\r\n : 0;\r\n\r\n \r\n let element = this._elementRef;\r\n if (typeof this.targetElement !== 'undefined') {\r\n this.popover.containerPositioning = true;\r\n element = this.targetElement._elementRef;\r\n }\r\n\r\n let positions: ConnectedPosition[] = [{ originX, originY, overlayX, overlayY }];\r\n\r\n if (this.popover.position[0] === 'above' || this.popover.position[0] === 'below') {\r\n positions = [\r\n { originX, originY, overlayX, overlayY, offsetY },\r\n { originX: origin2ndX, originY, overlayX: origin2ndX, overlayY, offsetY },\r\n { originX: origin3rdX, originY, overlayX: origin3rdX, overlayY, offsetY },\r\n {\r\n originX,\r\n originY: originFallbackY,\r\n overlayX,\r\n overlayY: overlayFallbackY,\r\n offsetY: -offsetY,\r\n },\r\n {\r\n originX: origin2ndX,\r\n originY: originFallbackY,\r\n overlayX: origin2ndX,\r\n overlayY: overlayFallbackY,\r\n offsetY: -offsetY,\r\n },\r\n {\r\n originX: origin3rdX,\r\n originY: originFallbackY,\r\n overlayX: origin3rdX,\r\n overlayY: overlayFallbackY,\r\n offsetY: -offsetY,\r\n },\r\n ];\r\n }\r\n\r\n if (this.popover.position[0] === 'before' || this.popover.position[0] === 'after') {\r\n positions = [\r\n { originX, originY, overlayX, overlayY, offsetX },\r\n { originX, originY: origin2ndY, overlayX, overlayY: origin2ndY, offsetX },\r\n { originX, originY: origin3rdY, overlayX, overlayY: origin3rdY, offsetX },\r\n {\r\n originX: originFallbackX,\r\n originY,\r\n overlayX: overlayFallbackX,\r\n overlayY,\r\n offsetX: -offsetX,\r\n },\r\n {\r\n originX: originFallbackX,\r\n originY: origin2ndY,\r\n overlayX: overlayFallbackX,\r\n overlayY: origin2ndY,\r\n offsetX: -offsetX,\r\n },\r\n {\r\n originX: originFallbackX,\r\n originY: origin3rdY,\r\n overlayX: overlayFallbackX,\r\n overlayY: origin3rdY,\r\n offsetX: -offsetX,\r\n },\r\n ];\r\n }\r\n\r\n return this._overlay\r\n .position()\r\n .flexibleConnectedTo(element)\r\n .withLockedPosition()\r\n .withPositions(positions)\r\n .withDefaultOffsetX(offsetX)\r\n .withDefaultOffsetY(offsetY);\r\n }\r\n\r\n private _cleanUpPositionSubscription(): void {\r\n if (this._positionSubscription) {\r\n this._positionSubscription.unsubscribe();\r\n this._positionSubscription = null;\r\n }\r\n }\r\n\r\n private _clearLeaveTimeout(): void {\r\n if (this._leaveTimeoutId !== null) {\r\n clearTimeout(this._leaveTimeoutId);\r\n this._leaveTimeoutId = null;\r\n }\r\n }\r\n\r\n private _setCurrentConfig(): void {\r\n if (this.triggerEvent) {\r\n this.popover.triggerEvent = this.triggerEvent;\r\n }\r\n\r\n this.popover.setCurrentStyles();\r\n }\r\n\r\n}\r\n","import { Directive, ElementRef, inject } from '@angular/core';\r\n\r\n@Directive({\r\n selector: 'cmat-popover-target, [cmatPopoverTarget]',\r\n exportAs: 'cmatPopoverTarget',\r\n})\r\nexport class CmatPopoverTargetDirective {\r\n elementRef = inject(ElementRef);\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -37,10 +37,10 @@ class CmatProgressBarComponent {
37
37
  this.show.set(value);
38
38
  });
39
39
  }
40
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CmatProgressBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
41
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: CmatProgressBarComponent, isStandalone: true, selector: "cmat-progress-bar", inputs: { autoMode: "autoMode" }, exportAs: ["cmatProgressBar"], usesOnChanges: true, ngImport: i0, template: "@if (show()) {\r\n <mat-progress-bar [mode]=\"mode()\" [value]=\"progress()\"></mat-progress-bar>\r\n}\r\n", styles: ["cmat-progress-bar{position:fixed;top:0;left:0;z-index:999;width:100%;height:6px}\n"], dependencies: [{ kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i1.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
40
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: CmatProgressBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
41
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.10", type: CmatProgressBarComponent, isStandalone: true, selector: "cmat-progress-bar", inputs: { autoMode: "autoMode" }, exportAs: ["cmatProgressBar"], usesOnChanges: true, ngImport: i0, template: "@if (show()) {\r\n <mat-progress-bar [mode]=\"mode()\" [value]=\"progress()\"></mat-progress-bar>\r\n}\r\n", styles: ["cmat-progress-bar{position:fixed;top:0;left:0;z-index:999;width:100%;height:6px}\n"], dependencies: [{ kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i1.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
42
42
  }
43
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CmatProgressBarComponent, decorators: [{
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: CmatProgressBarComponent, decorators: [{
44
44
  type: Component,
45
45
  args: [{ selector: 'cmat-progress-bar', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatProgressBar', imports: [MatProgressBarModule], template: "@if (show()) {\r\n <mat-progress-bar [mode]=\"mode()\" [value]=\"progress()\"></mat-progress-bar>\r\n}\r\n", styles: ["cmat-progress-bar{position:fixed;top:0;left:0;z-index:999;width:100%;height:6px}\n"] }]
46
46
  }], propDecorators: { autoMode: [{
@@ -1 +1 @@
1
- {"version":3,"file":"cmat-components-progress-bar.mjs","sources":["../../../projects/cmat/components/progress-bar/progress-bar.component.ts","../../../projects/cmat/components/progress-bar/progress-bar.component.html","../../../projects/cmat/components/progress-bar/cmat-components-progress-bar.ts"],"sourcesContent":["import { coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { ChangeDetectionStrategy, Component, DestroyRef, Input, OnChanges, OnInit, SimpleChanges, ViewEncapsulation, inject, signal } from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { CmatLoadingService } from 'cmat/services/loading';\r\n\r\n\r\n@Component({\r\n selector: 'cmat-progress-bar',\r\n templateUrl: './progress-bar.component.html',\r\n styleUrls: ['./progress-bar.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatProgressBar',\r\n imports: [MatProgressBarModule]\r\n})\r\nexport class CmatProgressBarComponent implements OnChanges, OnInit {\r\n\r\n @Input() autoMode: boolean = true;\r\n readonly mode = signal<'determinate' | 'indeterminate'>('determinate');\r\n readonly progress = signal<number | null>(0);\r\n readonly show = signal(false);\r\n\r\n private _cmatLoadingService = inject(CmatLoadingService);\r\n private readonly _destroyRef = inject(DestroyRef);\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if ('autoMode' in changes) {\r\n this._cmatLoadingService.setAutoMode(coerceBooleanProperty(changes['autoMode'].currentValue));\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this._cmatLoadingService.mode$\r\n .pipe(takeUntilDestroyed(this._destroyRef))\r\n .subscribe((value) => {\r\n this.mode.set(value);\r\n });\r\n\r\n this._cmatLoadingService.progress$\r\n .pipe(takeUntilDestroyed(this._destroyRef))\r\n .subscribe((value) => {\r\n this.progress.set(value);\r\n });\r\n\r\n this._cmatLoadingService.show$\r\n .pipe(takeUntilDestroyed(this._destroyRef))\r\n .subscribe((value) => {\r\n this.show.set(value);\r\n });\r\n\r\n }\r\n\r\n}\r\n","@if (show()) {\r\n <mat-progress-bar [mode]=\"mode()\" [value]=\"progress()\"></mat-progress-bar>\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cmat-components-progress-bar.mjs","sources":["../../../projects/cmat/components/progress-bar/progress-bar.component.ts","../../../projects/cmat/components/progress-bar/progress-bar.component.html","../../../projects/cmat/components/progress-bar/cmat-components-progress-bar.ts"],"sourcesContent":["import { coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { ChangeDetectionStrategy, Component, DestroyRef, Input, OnChanges, OnInit, SimpleChanges, ViewEncapsulation, inject, signal } from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { CmatLoadingService } from 'cmat/services/loading';\r\n\r\n\r\n@Component({\r\n selector: 'cmat-progress-bar',\r\n templateUrl: './progress-bar.component.html',\r\n styleUrls: ['./progress-bar.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatProgressBar',\r\n imports: [MatProgressBarModule]\r\n})\r\nexport class CmatProgressBarComponent implements OnChanges, OnInit {\r\n\r\n @Input() autoMode: boolean = true;\r\n readonly mode = signal<'determinate' | 'indeterminate'>('determinate');\r\n readonly progress = signal<number | null>(0);\r\n readonly show = signal(false);\r\n\r\n private _cmatLoadingService = inject(CmatLoadingService);\r\n private readonly _destroyRef = inject(DestroyRef);\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if ('autoMode' in changes) {\r\n this._cmatLoadingService.setAutoMode(coerceBooleanProperty(changes['autoMode'].currentValue));\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this._cmatLoadingService.mode$\r\n .pipe(takeUntilDestroyed(this._destroyRef))\r\n .subscribe((value) => {\r\n this.mode.set(value);\r\n });\r\n\r\n this._cmatLoadingService.progress$\r\n .pipe(takeUntilDestroyed(this._destroyRef))\r\n .subscribe((value) => {\r\n this.progress.set(value);\r\n });\r\n\r\n this._cmatLoadingService.show$\r\n .pipe(takeUntilDestroyed(this._destroyRef))\r\n .subscribe((value) => {\r\n this.show.set(value);\r\n });\r\n\r\n }\r\n\r\n}\r\n","@if (show()) {\r\n <mat-progress-bar [mode]=\"mode()\" [value]=\"progress()\"></mat-progress-bar>\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -225,10 +225,10 @@ class CmatQRCodeComponent {
225
225
  console.error('生成QRCode错误:', e instanceof Error ? e.message : String(e));
226
226
  }
227
227
  }
228
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CmatQRCodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
229
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: CmatQRCodeComponent, isStandalone: true, selector: "cmat-qrcode", inputs: { allowEmptyString: "allowEmptyString", cssClass: "cssClass", elementType: "elementType", errorCorrectionLevel: "errorCorrectionLevel", imageSrc: "imageSrc", imageHeight: "imageHeight", imageWidth: "imageWidth", margin: "margin", qrdata: "qrdata", scale: "scale", width: "width", alt: "alt", ariaLabel: "ariaLabel", title: "title" }, outputs: { qrCodeURL: "qrCodeURL" }, viewQueries: [{ propertyName: "qrcElement", first: true, predicate: ["qrcElement"], descendants: true, static: true }], exportAs: ["cmatQRCode"], usesOnChanges: true, ngImport: i0, template: '<div #qrcElement [class]="cssClass"></div>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
228
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: CmatQRCodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
229
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.10", type: CmatQRCodeComponent, isStandalone: true, selector: "cmat-qrcode", inputs: { allowEmptyString: "allowEmptyString", cssClass: "cssClass", elementType: "elementType", errorCorrectionLevel: "errorCorrectionLevel", imageSrc: "imageSrc", imageHeight: "imageHeight", imageWidth: "imageWidth", margin: "margin", qrdata: "qrdata", scale: "scale", width: "width", alt: "alt", ariaLabel: "ariaLabel", title: "title" }, outputs: { qrCodeURL: "qrCodeURL" }, viewQueries: [{ propertyName: "qrcElement", first: true, predicate: ["qrcElement"], descendants: true, static: true }], exportAs: ["cmatQRCode"], usesOnChanges: true, ngImport: i0, template: '<div #qrcElement [class]="cssClass"></div>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
230
230
  }
231
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CmatQRCodeComponent, decorators: [{
231
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: CmatQRCodeComponent, decorators: [{
232
232
  type: Component,
233
233
  args: [{
234
234
  selector: 'cmat-qrcode',
@@ -1 +1 @@
1
- {"version":3,"file":"cmat-components-qrcode.mjs","sources":["../../../projects/cmat/components/qrcode/qrcode.component.ts","../../../projects/cmat/components/qrcode/cmat-components-qrcode.ts"],"sourcesContent":["import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n inject,\r\n Input,\r\n OnChanges,\r\n Output,\r\n Renderer2,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\r\nimport {\r\n QRCodeRenderersOptions,\r\n QRCodeToDataURLOptions,\r\n QRCodeToStringOptions,\r\n toCanvas,\r\n toDataURL,\r\n toString\r\n} from 'qrcode';\r\nimport { FixMeLater, QRCodeConfigType, QRCodeElementType, QRCodeErrorCorrectionLevel } from './qrcode.types';\r\n\r\n@Component({\r\n selector: 'cmat-qrcode',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n template: '<div #qrcElement [class]=\"cssClass\"></div>',\r\n exportAs: 'cmatQRCode',\r\n})\r\nexport class CmatQRCodeComponent implements OnChanges {\r\n @Input() public allowEmptyString: boolean = false;\r\n @Input() public cssClass: string = 'qrcode';\r\n @Input() public elementType: QRCodeElementType = 'canvas';\r\n @Input()\r\n public errorCorrectionLevel: QRCodeErrorCorrectionLevel = 'M';\r\n @Input() public imageSrc?: string;\r\n @Input() public imageHeight?: number;\r\n @Input() public imageWidth?: number;\r\n @Input() public margin:number = 4;\r\n @Input() public qrdata: string = '';\r\n @Input() public scale: number = 4;\r\n @Input() public width: number = 10;\r\n\r\n @Input() public alt?: string;\r\n @Input() public ariaLabel?: string;\r\n @Input() public title?: string;\r\n\r\n @Output() qrCodeURL = new EventEmitter<SafeUrl>();\r\n\r\n @ViewChild('qrcElement', { static: true }) public qrcElement!: ElementRef<HTMLDivElement>;\r\n\r\n public context: CanvasRenderingContext2D | null = null;\r\n private _centerImage?: HTMLImageElement;\r\n private _renderer = inject(Renderer2);\r\n private _sanitizer = inject(DomSanitizer);\r\n private _currentOperationId = 0;\r\n private _previousObjectUrl: string | null = null;\r\n\r\n ngOnChanges(): void {\r\n this._createQRCode();\r\n }\r\n\r\n convertBase64ImageUrlToBlob(base64ImageUrl: string): Blob {\r\n const parts = base64ImageUrl.split(';base64,');\r\n const imageType = parts[0].split(':')[1];\r\n const decodedData = atob(parts[1]);\r\n const uInt8Array = new Uint8Array(decodedData.length);\r\n for (let i = 0; i < decodedData.length; ++i) {\r\n uInt8Array[i] = decodedData.charCodeAt(i)\r\n }\r\n return new Blob([uInt8Array], { type: imageType });\r\n }\r\n\r\n emitQRCodeURL(element: HTMLCanvasElement | HTMLImageElement | SVGSVGElement): void {\r\n if (this._previousObjectUrl) {\r\n URL.revokeObjectURL(this._previousObjectUrl);\r\n this._previousObjectUrl = null;\r\n }\r\n const className = element.constructor.name;\r\n if (className === SVGSVGElement.name) {\r\n const svgHTML = element.outerHTML;\r\n const blob = new Blob([svgHTML], { type: 'image/svg+xml' });\r\n const urlSvg = URL.createObjectURL(blob);\r\n this._previousObjectUrl = urlSvg;\r\n const urlSanitized = this._sanitizer.bypassSecurityTrustUrl(urlSvg);\r\n this.qrCodeURL.emit(urlSanitized);\r\n return;\r\n }\r\n\r\n let urlImage = '';\r\n\r\n if (className === HTMLCanvasElement.name) {\r\n urlImage = (element as HTMLCanvasElement).toDataURL('image/png');\r\n }\r\n\r\n if (className === HTMLImageElement.name) {\r\n urlImage = (element as HTMLImageElement).src;\r\n }\r\n\r\n const blobData: Blob = this.convertBase64ImageUrlToBlob(urlImage);\r\n const urlBlob = URL.createObjectURL(blobData);\r\n this._previousObjectUrl = urlBlob;\r\n const urlSanitized = this._sanitizer.bypassSecurityTrustUrl(urlBlob);\r\n this.qrCodeURL.emit(urlSanitized);\r\n }\r\n private _isValidQrCodeText(data: string | null): boolean {\r\n if (this.allowEmptyString === false) {\r\n return !(\r\n typeof data === 'undefined' ||\r\n data === '' ||\r\n data === 'null' ||\r\n data === null\r\n );\r\n }\r\n return !(typeof data === 'undefined');\r\n }\r\n\r\n private _toDataURL(qrCodeConfig: QRCodeToDataURLOptions): Promise<FixMeLater> {\r\n return new Promise(\r\n (\r\n resolve: (arg: FixMeLater) => FixMeLater,\r\n reject: (arg: FixMeLater) => FixMeLater\r\n ) => {\r\n toDataURL(\r\n this.qrdata,\r\n qrCodeConfig,\r\n (err: Error | null | undefined, url: string) => {\r\n if (err) {\r\n reject(err);\r\n } else {\r\n resolve(url);\r\n }\r\n }\r\n );\r\n }\r\n );\r\n }\r\n\r\n private _toCanvas(\r\n canvas: HTMLCanvasElement,\r\n qrCodeConfig: QRCodeRenderersOptions\r\n ): Promise<FixMeLater> {\r\n return new Promise(\r\n (\r\n resolve: (arg: FixMeLater) => FixMeLater,\r\n reject: (arg: FixMeLater) => FixMeLater\r\n ) => {\r\n toCanvas(\r\n canvas,\r\n this.qrdata,\r\n qrCodeConfig,\r\n (error: Error | null | undefined) => {\r\n if (error) {\r\n reject(error);\r\n } else {\r\n resolve('success');\r\n }\r\n }\r\n )\r\n }\r\n );\r\n }\r\n\r\n private _toSVG(qrCodeConfig: QRCodeToStringOptions): Promise<FixMeLater> {\r\n return new Promise(\r\n (\r\n resolve: (arg: FixMeLater) => FixMeLater,\r\n reject: (arg: FixMeLater) => FixMeLater\r\n ) => {\r\n toString(\r\n this.qrdata,\r\n qrCodeConfig,\r\n (err: Error | null | undefined, url: string) => {\r\n if (err) {\r\n reject(err);\r\n } else {\r\n resolve(url);\r\n }\r\n }\r\n )\r\n }\r\n );\r\n }\r\n\r\n private _renderElement(element: Element): void {\r\n for (const node of Array.from(this.qrcElement.nativeElement.childNodes)) {\r\n this._renderer.removeChild(this.qrcElement.nativeElement, node);\r\n }\r\n\r\n this._renderer.appendChild(this.qrcElement.nativeElement, element);\r\n\r\n }\r\n\r\n private _createQRCode(): void {\r\n const operationId = ++this._currentOperationId;\r\n\r\n try {\r\n if (!this._isValidQrCodeText(this.qrdata)) {\r\n throw new Error(\r\n '`qrdata` 配置为空,请设置 `allowEmptyString=\"true\"` 来覆盖此特性。'\r\n );\r\n }\r\n\r\n if (this._isValidQrCodeText(this.qrdata) && this.qrdata === '') {\r\n this.qrdata = ' ';\r\n }\r\n\r\n const config: QRCodeConfigType = {\r\n errorCorrectionLevel: this.errorCorrectionLevel,\r\n margin: this.margin,\r\n scale: this.scale,\r\n width: this.width,\r\n };\r\n\r\n const centerImageSrc = this.imageSrc;\r\n const centerImageHeight = this.imageHeight ?? 40;\r\n const centerImageWidth = this.imageWidth ?? 40;\r\n\r\n switch (this.elementType) {\r\n case 'canvas': {\r\n const canvasElement = this._renderer.createElement('canvas') as HTMLCanvasElement;\r\n this.context = canvasElement.getContext('2d');\r\n this._toCanvas(canvasElement, config)\r\n .then(() => {\r\n if (operationId !== this._currentOperationId) {\r\n return; // 不是最新操作,直接返回\r\n }\r\n\r\n if (this.ariaLabel) {\r\n this._renderer.setAttribute(\r\n canvasElement,\r\n 'aria-label',\r\n `${this.ariaLabel}`\r\n );\r\n }\r\n if (this.title) {\r\n this._renderer.setAttribute(\r\n canvasElement,\r\n 'title',\r\n `${this.title}`\r\n );\r\n }\r\n\r\n if (centerImageSrc && this.context) {\r\n this._centerImage = new Image(\r\n centerImageWidth,\r\n centerImageHeight\r\n );\r\n\r\n if (centerImageSrc !== this._centerImage.src) {\r\n this._centerImage.crossOrigin = 'anonymous';\r\n this._centerImage.src = centerImageSrc;\r\n }\r\n\r\n if (centerImageHeight !== this._centerImage.height) {\r\n this._centerImage.height = centerImageHeight;\r\n }\r\n\r\n if (centerImageWidth !== this._centerImage.width) {\r\n this._centerImage.width = centerImageWidth;\r\n }\r\n\r\n const centerImage = this._centerImage;\r\n\r\n if (centerImage) {\r\n centerImage.onload = (): void => {\r\n if (operationId === this._currentOperationId) {\r\n this.context?.drawImage(\r\n centerImage,\r\n canvasElement.width / 2 - centerImageWidth / 2,\r\n canvasElement.height / 2 - centerImageHeight / 2,\r\n centerImageWidth,\r\n centerImageHeight\r\n );\r\n }\r\n }\r\n }\r\n }\r\n\r\n this._renderElement(canvasElement);\r\n this.emitQRCodeURL(canvasElement);\r\n })\r\n .catch((e) => {\r\n console.error('canvas error:', e);\r\n });\r\n break;\r\n }\r\n case 'svg': {\r\n const svgParentElement = this._renderer.createElement('div') as HTMLDivElement;\r\n this._toSVG(config)\r\n .then((svgString: string) => {\r\n if (operationId !== this._currentOperationId) {\r\n return;\r\n }\r\n\r\n this._renderer.setProperty(\r\n svgParentElement,\r\n 'innerHTML',\r\n svgString\r\n );\r\n const svgElement = svgParentElement.firstChild as SVGSVGElement;\r\n this._renderer.setAttribute(svgElement, 'height', `${this.width}`);\r\n this._renderer.setAttribute(svgElement, 'width', `${this.width}`);\r\n this._renderElement(svgElement);\r\n this.emitQRCodeURL(svgElement);\r\n })\r\n .catch((e) => {\r\n console.error('svg error:', e);\r\n })\r\n break;\r\n }\r\n case 'url':\r\n case 'img':\r\n default: {\r\n const imgElement = this._renderer.createElement('img') as HTMLImageElement;\r\n this._toDataURL(config)\r\n .then((dataUrl: string) => {\r\n if (operationId !== this._currentOperationId) {\r\n return;\r\n }\r\n\r\n if (this.alt) {\r\n imgElement.setAttribute('alt', this.alt);\r\n }\r\n if (this.ariaLabel) {\r\n imgElement.setAttribute('aria-label', this.ariaLabel);\r\n }\r\n imgElement.setAttribute('src', dataUrl);\r\n if (this.title) {\r\n imgElement.setAttribute('title', this.title);\r\n }\r\n this._renderElement(imgElement);\r\n this.emitQRCodeURL(imgElement);\r\n })\r\n .catch((e) => {\r\n console.error('img/url error:', e)\r\n });\r\n }\r\n }\r\n } catch (e: unknown) {\r\n console.error('生成QRCode错误:', e instanceof Error ? e.message : String(e));\r\n }\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cmat-components-qrcode.mjs","sources":["../../../projects/cmat/components/qrcode/qrcode.component.ts","../../../projects/cmat/components/qrcode/cmat-components-qrcode.ts"],"sourcesContent":["import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n inject,\r\n Input,\r\n OnChanges,\r\n Output,\r\n Renderer2,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\r\nimport {\r\n QRCodeRenderersOptions,\r\n QRCodeToDataURLOptions,\r\n QRCodeToStringOptions,\r\n toCanvas,\r\n toDataURL,\r\n toString\r\n} from 'qrcode';\r\nimport { FixMeLater, QRCodeConfigType, QRCodeElementType, QRCodeErrorCorrectionLevel } from './qrcode.types';\r\n\r\n@Component({\r\n selector: 'cmat-qrcode',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n template: '<div #qrcElement [class]=\"cssClass\"></div>',\r\n exportAs: 'cmatQRCode',\r\n})\r\nexport class CmatQRCodeComponent implements OnChanges {\r\n @Input() public allowEmptyString: boolean = false;\r\n @Input() public cssClass: string = 'qrcode';\r\n @Input() public elementType: QRCodeElementType = 'canvas';\r\n @Input()\r\n public errorCorrectionLevel: QRCodeErrorCorrectionLevel = 'M';\r\n @Input() public imageSrc?: string;\r\n @Input() public imageHeight?: number;\r\n @Input() public imageWidth?: number;\r\n @Input() public margin:number = 4;\r\n @Input() public qrdata: string = '';\r\n @Input() public scale: number = 4;\r\n @Input() public width: number = 10;\r\n\r\n @Input() public alt?: string;\r\n @Input() public ariaLabel?: string;\r\n @Input() public title?: string;\r\n\r\n @Output() qrCodeURL = new EventEmitter<SafeUrl>();\r\n\r\n @ViewChild('qrcElement', { static: true }) public qrcElement!: ElementRef<HTMLDivElement>;\r\n\r\n public context: CanvasRenderingContext2D | null = null;\r\n private _centerImage?: HTMLImageElement;\r\n private _renderer = inject(Renderer2);\r\n private _sanitizer = inject(DomSanitizer);\r\n private _currentOperationId = 0;\r\n private _previousObjectUrl: string | null = null;\r\n\r\n ngOnChanges(): void {\r\n this._createQRCode();\r\n }\r\n\r\n convertBase64ImageUrlToBlob(base64ImageUrl: string): Blob {\r\n const parts = base64ImageUrl.split(';base64,');\r\n const imageType = parts[0].split(':')[1];\r\n const decodedData = atob(parts[1]);\r\n const uInt8Array = new Uint8Array(decodedData.length);\r\n for (let i = 0; i < decodedData.length; ++i) {\r\n uInt8Array[i] = decodedData.charCodeAt(i)\r\n }\r\n return new Blob([uInt8Array], { type: imageType });\r\n }\r\n\r\n emitQRCodeURL(element: HTMLCanvasElement | HTMLImageElement | SVGSVGElement): void {\r\n if (this._previousObjectUrl) {\r\n URL.revokeObjectURL(this._previousObjectUrl);\r\n this._previousObjectUrl = null;\r\n }\r\n const className = element.constructor.name;\r\n if (className === SVGSVGElement.name) {\r\n const svgHTML = element.outerHTML;\r\n const blob = new Blob([svgHTML], { type: 'image/svg+xml' });\r\n const urlSvg = URL.createObjectURL(blob);\r\n this._previousObjectUrl = urlSvg;\r\n const urlSanitized = this._sanitizer.bypassSecurityTrustUrl(urlSvg);\r\n this.qrCodeURL.emit(urlSanitized);\r\n return;\r\n }\r\n\r\n let urlImage = '';\r\n\r\n if (className === HTMLCanvasElement.name) {\r\n urlImage = (element as HTMLCanvasElement).toDataURL('image/png');\r\n }\r\n\r\n if (className === HTMLImageElement.name) {\r\n urlImage = (element as HTMLImageElement).src;\r\n }\r\n\r\n const blobData: Blob = this.convertBase64ImageUrlToBlob(urlImage);\r\n const urlBlob = URL.createObjectURL(blobData);\r\n this._previousObjectUrl = urlBlob;\r\n const urlSanitized = this._sanitizer.bypassSecurityTrustUrl(urlBlob);\r\n this.qrCodeURL.emit(urlSanitized);\r\n }\r\n private _isValidQrCodeText(data: string | null): boolean {\r\n if (this.allowEmptyString === false) {\r\n return !(\r\n typeof data === 'undefined' ||\r\n data === '' ||\r\n data === 'null' ||\r\n data === null\r\n );\r\n }\r\n return !(typeof data === 'undefined');\r\n }\r\n\r\n private _toDataURL(qrCodeConfig: QRCodeToDataURLOptions): Promise<FixMeLater> {\r\n return new Promise(\r\n (\r\n resolve: (arg: FixMeLater) => FixMeLater,\r\n reject: (arg: FixMeLater) => FixMeLater\r\n ) => {\r\n toDataURL(\r\n this.qrdata,\r\n qrCodeConfig,\r\n (err: Error | null | undefined, url: string) => {\r\n if (err) {\r\n reject(err);\r\n } else {\r\n resolve(url);\r\n }\r\n }\r\n );\r\n }\r\n );\r\n }\r\n\r\n private _toCanvas(\r\n canvas: HTMLCanvasElement,\r\n qrCodeConfig: QRCodeRenderersOptions\r\n ): Promise<FixMeLater> {\r\n return new Promise(\r\n (\r\n resolve: (arg: FixMeLater) => FixMeLater,\r\n reject: (arg: FixMeLater) => FixMeLater\r\n ) => {\r\n toCanvas(\r\n canvas,\r\n this.qrdata,\r\n qrCodeConfig,\r\n (error: Error | null | undefined) => {\r\n if (error) {\r\n reject(error);\r\n } else {\r\n resolve('success');\r\n }\r\n }\r\n )\r\n }\r\n );\r\n }\r\n\r\n private _toSVG(qrCodeConfig: QRCodeToStringOptions): Promise<FixMeLater> {\r\n return new Promise(\r\n (\r\n resolve: (arg: FixMeLater) => FixMeLater,\r\n reject: (arg: FixMeLater) => FixMeLater\r\n ) => {\r\n toString(\r\n this.qrdata,\r\n qrCodeConfig,\r\n (err: Error | null | undefined, url: string) => {\r\n if (err) {\r\n reject(err);\r\n } else {\r\n resolve(url);\r\n }\r\n }\r\n )\r\n }\r\n );\r\n }\r\n\r\n private _renderElement(element: Element): void {\r\n for (const node of Array.from(this.qrcElement.nativeElement.childNodes)) {\r\n this._renderer.removeChild(this.qrcElement.nativeElement, node);\r\n }\r\n\r\n this._renderer.appendChild(this.qrcElement.nativeElement, element);\r\n\r\n }\r\n\r\n private _createQRCode(): void {\r\n const operationId = ++this._currentOperationId;\r\n\r\n try {\r\n if (!this._isValidQrCodeText(this.qrdata)) {\r\n throw new Error(\r\n '`qrdata` 配置为空,请设置 `allowEmptyString=\"true\"` 来覆盖此特性。'\r\n );\r\n }\r\n\r\n if (this._isValidQrCodeText(this.qrdata) && this.qrdata === '') {\r\n this.qrdata = ' ';\r\n }\r\n\r\n const config: QRCodeConfigType = {\r\n errorCorrectionLevel: this.errorCorrectionLevel,\r\n margin: this.margin,\r\n scale: this.scale,\r\n width: this.width,\r\n };\r\n\r\n const centerImageSrc = this.imageSrc;\r\n const centerImageHeight = this.imageHeight ?? 40;\r\n const centerImageWidth = this.imageWidth ?? 40;\r\n\r\n switch (this.elementType) {\r\n case 'canvas': {\r\n const canvasElement = this._renderer.createElement('canvas') as HTMLCanvasElement;\r\n this.context = canvasElement.getContext('2d');\r\n this._toCanvas(canvasElement, config)\r\n .then(() => {\r\n if (operationId !== this._currentOperationId) {\r\n return; // 不是最新操作,直接返回\r\n }\r\n\r\n if (this.ariaLabel) {\r\n this._renderer.setAttribute(\r\n canvasElement,\r\n 'aria-label',\r\n `${this.ariaLabel}`\r\n );\r\n }\r\n if (this.title) {\r\n this._renderer.setAttribute(\r\n canvasElement,\r\n 'title',\r\n `${this.title}`\r\n );\r\n }\r\n\r\n if (centerImageSrc && this.context) {\r\n this._centerImage = new Image(\r\n centerImageWidth,\r\n centerImageHeight\r\n );\r\n\r\n if (centerImageSrc !== this._centerImage.src) {\r\n this._centerImage.crossOrigin = 'anonymous';\r\n this._centerImage.src = centerImageSrc;\r\n }\r\n\r\n if (centerImageHeight !== this._centerImage.height) {\r\n this._centerImage.height = centerImageHeight;\r\n }\r\n\r\n if (centerImageWidth !== this._centerImage.width) {\r\n this._centerImage.width = centerImageWidth;\r\n }\r\n\r\n const centerImage = this._centerImage;\r\n\r\n if (centerImage) {\r\n centerImage.onload = (): void => {\r\n if (operationId === this._currentOperationId) {\r\n this.context?.drawImage(\r\n centerImage,\r\n canvasElement.width / 2 - centerImageWidth / 2,\r\n canvasElement.height / 2 - centerImageHeight / 2,\r\n centerImageWidth,\r\n centerImageHeight\r\n );\r\n }\r\n }\r\n }\r\n }\r\n\r\n this._renderElement(canvasElement);\r\n this.emitQRCodeURL(canvasElement);\r\n })\r\n .catch((e) => {\r\n console.error('canvas error:', e);\r\n });\r\n break;\r\n }\r\n case 'svg': {\r\n const svgParentElement = this._renderer.createElement('div') as HTMLDivElement;\r\n this._toSVG(config)\r\n .then((svgString: string) => {\r\n if (operationId !== this._currentOperationId) {\r\n return;\r\n }\r\n\r\n this._renderer.setProperty(\r\n svgParentElement,\r\n 'innerHTML',\r\n svgString\r\n );\r\n const svgElement = svgParentElement.firstChild as SVGSVGElement;\r\n this._renderer.setAttribute(svgElement, 'height', `${this.width}`);\r\n this._renderer.setAttribute(svgElement, 'width', `${this.width}`);\r\n this._renderElement(svgElement);\r\n this.emitQRCodeURL(svgElement);\r\n })\r\n .catch((e) => {\r\n console.error('svg error:', e);\r\n })\r\n break;\r\n }\r\n case 'url':\r\n case 'img':\r\n default: {\r\n const imgElement = this._renderer.createElement('img') as HTMLImageElement;\r\n this._toDataURL(config)\r\n .then((dataUrl: string) => {\r\n if (operationId !== this._currentOperationId) {\r\n return;\r\n }\r\n\r\n if (this.alt) {\r\n imgElement.setAttribute('alt', this.alt);\r\n }\r\n if (this.ariaLabel) {\r\n imgElement.setAttribute('aria-label', this.ariaLabel);\r\n }\r\n imgElement.setAttribute('src', dataUrl);\r\n if (this.title) {\r\n imgElement.setAttribute('title', this.title);\r\n }\r\n this._renderElement(imgElement);\r\n this.emitQRCodeURL(imgElement);\r\n })\r\n .catch((e) => {\r\n console.error('img/url error:', e)\r\n });\r\n }\r\n }\r\n } catch (e: unknown) {\r\n console.error('生成QRCode错误:', e instanceof Error ? e.message : String(e));\r\n }\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -156,10 +156,10 @@ class CmatRatingComponent {
156
156
  _initializeStarArray() {
157
157
  this.starArray.set(Array.from({ length: this.stars }, (_, i) => i));
158
158
  }
159
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CmatRatingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
160
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: CmatRatingComponent, isStandalone: true, selector: "cmat-rating", inputs: { id: "id", stars: "stars", readonly: "readonly", hover: "hover", half: "half", color: "color", showMode: "showMode", placeholder: "placeholder", value: "value", required: "required", disabled: "disabled" }, outputs: { valueChange: "valueChange" }, host: { properties: { "attr.id": "this.id" } }, providers: [{ provide: MatFormFieldControl, useExisting: CmatRatingComponent }], viewQueries: [{ propertyName: "_ratingElementRef", first: true, predicate: ["rating"], descendants: true }], exportAs: ["cmatRating"], usesOnChanges: true, ngImport: i0, template: "<div #rating class=\"flex\" [class.cmat-rating-readonly]=\"readonly||disabled\" [ngClass]=\"{'flex-col':showMode==='vertical','flex-row':showMode==='horizontal'}\"\r\n (focus)=\"onFocus()\" (mouseleave)=\"onMouseleave()\">\r\n @for (star of starArray(); track $index; let i = $index) {\r\n <div class=\"cmat-rating-item\">\r\n @if (half) {\r\n <div role=\"presentation\" class=\"cmat-rating-half\" [ngStyle]=\"{'opacity': isIn(i)?1:0}\" (focus)=\"onFocus()\"\r\n (mouseover)=\"onMouseover($event, i, true)\" (click)=\"onClick($event, i, true)\">\r\n <mat-icon [ngClass]=\"{'text-current': !color}\" [color]=\"color\"\r\n [svgIcon]=\"'mat_outline:'+((!value || i >= value)?'star_border':'star')\">\r\n </mat-icon>\r\n </div>\r\n }\r\n <div role=\"presentation\" (mouseover)=\"onMouseover($event, i)\" (click)=\"onClick($event, i)\" (focus)=\"onFocus()\">\r\n <mat-icon [color]=\"color\" [ngClass]=\"{'text-current': !color}\"\r\n [svgIcon]=\"'mat_outline:'+((half && isIn(i)) || (!value || i >= value)?'star_border':'star')\">\r\n </mat-icon>\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n", styles: ["cmat-rating{display:flex;align-items:center}cmat-rating .cmat-rating-item{position:relative;cursor:pointer;line-height:0}cmat-rating .cmat-rating-item div{display:inline-block;font-size:1rem;padding:0 .1rem}cmat-rating .cmat-rating-item .cmat-rating-half{position:absolute;top:0;left:0;width:45%;z-index:10;opacity:0;overflow:hidden;padding-right:0}cmat-rating .cmat-rating-readonly .cmat-rating-item{cursor:not-allowed}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
159
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: CmatRatingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
160
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.10", type: CmatRatingComponent, isStandalone: true, selector: "cmat-rating", inputs: { id: "id", stars: "stars", readonly: "readonly", hover: "hover", half: "half", color: "color", showMode: "showMode", placeholder: "placeholder", value: "value", required: "required", disabled: "disabled" }, outputs: { valueChange: "valueChange" }, host: { properties: { "attr.id": "this.id" } }, providers: [{ provide: MatFormFieldControl, useExisting: CmatRatingComponent }], viewQueries: [{ propertyName: "_ratingElementRef", first: true, predicate: ["rating"], descendants: true }], exportAs: ["cmatRating"], usesOnChanges: true, ngImport: i0, template: "<div #rating class=\"flex\" [class.cmat-rating-readonly]=\"readonly||disabled\" [ngClass]=\"{'flex-col':showMode==='vertical','flex-row':showMode==='horizontal'}\"\r\n (focus)=\"onFocus()\" (mouseleave)=\"onMouseleave()\">\r\n @for (star of starArray(); track $index; let i = $index) {\r\n <div class=\"cmat-rating-item\">\r\n @if (half) {\r\n <div role=\"presentation\" class=\"cmat-rating-half\" [ngStyle]=\"{'opacity': isIn(i)?1:0}\" (focus)=\"onFocus()\"\r\n (mouseover)=\"onMouseover($event, i, true)\" (click)=\"onClick($event, i, true)\">\r\n <mat-icon [ngClass]=\"{'text-current': !color}\" [color]=\"color\"\r\n [svgIcon]=\"'mat_outline:'+((!value || i >= value)?'star_border':'star')\">\r\n </mat-icon>\r\n </div>\r\n }\r\n <div role=\"presentation\" (mouseover)=\"onMouseover($event, i)\" (click)=\"onClick($event, i)\" (focus)=\"onFocus()\">\r\n <mat-icon [color]=\"color\" [ngClass]=\"{'text-current': !color}\"\r\n [svgIcon]=\"'mat_outline:'+((half && isIn(i)) || (!value || i >= value)?'star_border':'star')\">\r\n </mat-icon>\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n", styles: ["cmat-rating{display:flex;align-items:center}cmat-rating .cmat-rating-item{position:relative;cursor:pointer;line-height:0}cmat-rating .cmat-rating-item div{display:inline-block;font-size:1rem;padding:0 .1rem}cmat-rating .cmat-rating-item .cmat-rating-half{position:absolute;top:0;left:0;width:45%;z-index:10;opacity:0;overflow:hidden;padding-right:0}cmat-rating .cmat-rating-readonly .cmat-rating-item{cursor:not-allowed}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
161
161
  }
162
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CmatRatingComponent, decorators: [{
162
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: CmatRatingComponent, decorators: [{
163
163
  type: Component,
164
164
  args: [{ selector: 'cmat-rating', providers: [{ provide: MatFormFieldControl, useExisting: CmatRatingComponent }], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatRating', imports: [MatIconModule, NgStyle, NgClass], template: "<div #rating class=\"flex\" [class.cmat-rating-readonly]=\"readonly||disabled\" [ngClass]=\"{'flex-col':showMode==='vertical','flex-row':showMode==='horizontal'}\"\r\n (focus)=\"onFocus()\" (mouseleave)=\"onMouseleave()\">\r\n @for (star of starArray(); track $index; let i = $index) {\r\n <div class=\"cmat-rating-item\">\r\n @if (half) {\r\n <div role=\"presentation\" class=\"cmat-rating-half\" [ngStyle]=\"{'opacity': isIn(i)?1:0}\" (focus)=\"onFocus()\"\r\n (mouseover)=\"onMouseover($event, i, true)\" (click)=\"onClick($event, i, true)\">\r\n <mat-icon [ngClass]=\"{'text-current': !color}\" [color]=\"color\"\r\n [svgIcon]=\"'mat_outline:'+((!value || i >= value)?'star_border':'star')\">\r\n </mat-icon>\r\n </div>\r\n }\r\n <div role=\"presentation\" (mouseover)=\"onMouseover($event, i)\" (click)=\"onClick($event, i)\" (focus)=\"onFocus()\">\r\n <mat-icon [color]=\"color\" [ngClass]=\"{'text-current': !color}\"\r\n [svgIcon]=\"'mat_outline:'+((half && isIn(i)) || (!value || i >= value)?'star_border':'star')\">\r\n </mat-icon>\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n", styles: ["cmat-rating{display:flex;align-items:center}cmat-rating .cmat-rating-item{position:relative;cursor:pointer;line-height:0}cmat-rating .cmat-rating-item div{display:inline-block;font-size:1rem;padding:0 .1rem}cmat-rating .cmat-rating-item .cmat-rating-half{position:absolute;top:0;left:0;width:45%;z-index:10;opacity:0;overflow:hidden;padding-right:0}cmat-rating .cmat-rating-readonly .cmat-rating-item{cursor:not-allowed}\n"] }]
165
165
  }], ctorParameters: () => [], propDecorators: { id: [{