cmat 0.0.78 → 0.0.80
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/cmat-components-adapter.mjs +9 -46
- package/fesm2022/cmat-components-adapter.mjs.map +1 -1
- package/fesm2022/cmat-components-breadcrumb.mjs +104 -205
- package/fesm2022/cmat-components-breadcrumb.mjs.map +1 -1
- package/fesm2022/cmat-components-card.mjs +4 -8
- package/fesm2022/cmat-components-card.mjs.map +1 -1
- package/fesm2022/cmat-components-carousel.mjs +21 -21
- package/fesm2022/cmat-components-carousel.mjs.map +1 -1
- package/fesm2022/cmat-components-cascade.mjs +18 -24
- package/fesm2022/cmat-components-cascade.mjs.map +1 -1
- package/fesm2022/cmat-components-chip-input.mjs +21 -21
- package/fesm2022/cmat-components-chip-input.mjs.map +1 -1
- package/fesm2022/cmat-components-code-editor.mjs +4 -22
- package/fesm2022/cmat-components-code-editor.mjs.map +1 -1
- package/fesm2022/cmat-components-custom-formly.mjs +181 -245
- package/fesm2022/cmat-components-custom-formly.mjs.map +1 -1
- package/fesm2022/cmat-components-date-range.mjs +12 -184
- package/fesm2022/cmat-components-date-range.mjs.map +1 -1
- package/fesm2022/cmat-components-date-time-display.mjs +3 -15
- package/fesm2022/cmat-components-date-time-display.mjs.map +1 -1
- package/fesm2022/cmat-components-drawer.mjs +10 -100
- package/fesm2022/cmat-components-drawer.mjs.map +1 -1
- package/fesm2022/cmat-components-empty-state.mjs +4 -25
- package/fesm2022/cmat-components-empty-state.mjs.map +1 -1
- package/fesm2022/cmat-components-file-preview.mjs +3 -21
- package/fesm2022/cmat-components-file-preview.mjs.map +1 -1
- package/fesm2022/cmat-components-filter-toolbar.mjs +7 -50
- package/fesm2022/cmat-components-filter-toolbar.mjs.map +1 -1
- package/fesm2022/cmat-components-form-actions.mjs +3 -9
- package/fesm2022/cmat-components-form-actions.mjs.map +1 -1
- package/fesm2022/cmat-components-fullscreen.mjs +4 -4
- package/fesm2022/cmat-components-fullscreen.mjs.map +1 -1
- package/fesm2022/cmat-components-highlight.mjs +6 -32
- package/fesm2022/cmat-components-highlight.mjs.map +1 -1
- package/fesm2022/cmat-components-image-viewer.mjs +12 -24
- package/fesm2022/cmat-components-image-viewer.mjs.map +1 -1
- package/fesm2022/cmat-components-inline-loading.mjs +3 -12
- package/fesm2022/cmat-components-inline-loading.mjs.map +1 -1
- package/fesm2022/cmat-components-json-editor.mjs +11 -16
- package/fesm2022/cmat-components-json-editor.mjs.map +1 -1
- package/fesm2022/cmat-components-knob-input.mjs +24 -18
- package/fesm2022/cmat-components-knob-input.mjs.map +1 -1
- package/fesm2022/cmat-components-masonry.mjs +8 -17
- package/fesm2022/cmat-components-masonry.mjs.map +1 -1
- package/fesm2022/cmat-components-material-color-picker.mjs +13 -34
- package/fesm2022/cmat-components-material-color-picker.mjs.map +1 -1
- package/fesm2022/cmat-components-material-datetimepicker.mjs +80 -436
- package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -1
- package/fesm2022/cmat-components-navigation.mjs +266 -816
- package/fesm2022/cmat-components-navigation.mjs.map +1 -1
- package/fesm2022/cmat-components-opt-input.mjs +7 -10
- package/fesm2022/cmat-components-opt-input.mjs.map +1 -1
- package/fesm2022/cmat-components-org-chart.mjs +11 -11
- package/fesm2022/cmat-components-org-chart.mjs.map +1 -1
- package/fesm2022/cmat-components-page-header.mjs +8 -19
- package/fesm2022/cmat-components-page-header.mjs.map +1 -1
- package/fesm2022/cmat-components-pagination.mjs +113 -108
- package/fesm2022/cmat-components-pagination.mjs.map +1 -1
- package/fesm2022/cmat-components-password-strength.mjs +13 -16
- package/fesm2022/cmat-components-password-strength.mjs.map +1 -1
- package/fesm2022/cmat-components-popover.mjs +15 -151
- package/fesm2022/cmat-components-popover.mjs.map +1 -1
- package/fesm2022/cmat-components-progress-bar.mjs +16 -26
- package/fesm2022/cmat-components-progress-bar.mjs.map +1 -1
- package/fesm2022/cmat-components-qrcode.mjs +5 -11
- package/fesm2022/cmat-components-qrcode.mjs.map +1 -1
- package/fesm2022/cmat-components-rating.mjs +14 -14
- package/fesm2022/cmat-components-rating.mjs.map +1 -1
- package/fesm2022/cmat-components-rich-text-editor.mjs +4 -25
- package/fesm2022/cmat-components-rich-text-editor.mjs.map +1 -1
- package/fesm2022/cmat-components-select-search.mjs +51 -79
- package/fesm2022/cmat-components-select-search.mjs.map +1 -1
- package/fesm2022/cmat-components-select-table.mjs +204 -162
- package/fesm2022/cmat-components-select-table.mjs.map +1 -1
- package/fesm2022/cmat-components-select-tree.mjs +142 -97
- package/fesm2022/cmat-components-select-tree.mjs.map +1 -1
- package/fesm2022/cmat-components-skeleton.mjs +4 -22
- package/fesm2022/cmat-components-skeleton.mjs.map +1 -1
- package/fesm2022/cmat-components-speed-dial.mjs +14 -19
- package/fesm2022/cmat-components-speed-dial.mjs.map +1 -1
- package/fesm2022/cmat-components-status-tag.mjs +3 -18
- package/fesm2022/cmat-components-status-tag.mjs.map +1 -1
- package/fesm2022/cmat-components-table-toolbar.mjs +3 -15
- package/fesm2022/cmat-components-table-toolbar.mjs.map +1 -1
- package/fesm2022/cmat-components-timeline.mjs +18 -21
- package/fesm2022/cmat-components-timeline.mjs.map +1 -1
- package/fesm2022/cmat-components-toast.mjs +20 -20
- package/fesm2022/cmat-components-toast.mjs.map +1 -1
- package/fesm2022/cmat-components-transfer-picker.mjs +159 -123
- package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -1
- package/fesm2022/cmat-components-treetable.mjs +17 -19
- package/fesm2022/cmat-components-treetable.mjs.map +1 -1
- package/fesm2022/cmat-components-upload.mjs +35 -57
- package/fesm2022/cmat-components-upload.mjs.map +1 -1
- package/fesm2022/cmat-components-x6-angular-shape.mjs +0 -4
- package/fesm2022/cmat-components-x6-angular-shape.mjs.map +1 -1
- package/fesm2022/cmat-directives-animate-on-scroll.mjs +6 -27
- package/fesm2022/cmat-directives-animate-on-scroll.mjs.map +1 -1
- package/fesm2022/cmat-directives-arrow-cursor.mjs +7 -9
- package/fesm2022/cmat-directives-arrow-cursor.mjs.map +1 -1
- package/fesm2022/cmat-directives-autofocus.mjs +3 -3
- package/fesm2022/cmat-directives-data-exporter.mjs +24 -33
- package/fesm2022/cmat-directives-data-exporter.mjs.map +1 -1
- package/fesm2022/cmat-directives-debounce.mjs +14 -17
- package/fesm2022/cmat-directives-debounce.mjs.map +1 -1
- package/fesm2022/cmat-directives-digit-only.mjs +6 -23
- package/fesm2022/cmat-directives-digit-only.mjs.map +1 -1
- package/fesm2022/cmat-directives-equal-validator.mjs +3 -3
- package/fesm2022/cmat-directives-seamless-auto-scroll.mjs +4 -11
- package/fesm2022/cmat-directives-seamless-auto-scroll.mjs.map +1 -1
- package/fesm2022/cmat-lib-mock-api.mjs +6 -43
- package/fesm2022/cmat-lib-mock-api.mjs.map +1 -1
- package/fesm2022/cmat-pipes-bytes.mjs +3 -3
- package/fesm2022/cmat-pipes-date-format.mjs +3 -3
- package/fesm2022/cmat-pipes-find-by-key.mjs +3 -5
- package/fesm2022/cmat-pipes-find-by-key.mjs.map +1 -1
- package/fesm2022/cmat-pipes-group-by.mjs +3 -3
- package/fesm2022/cmat-pipes-keys.mjs +3 -3
- package/fesm2022/cmat-pipes-secure.mjs +8 -12
- package/fesm2022/cmat-pipes-secure.mjs.map +1 -1
- package/fesm2022/cmat-pipes-uppercase.mjs +3 -3
- package/fesm2022/cmat-services-alert.mjs +3 -3
- package/fesm2022/cmat-services-config.mjs +50 -26
- package/fesm2022/cmat-services-config.mjs.map +1 -1
- package/fesm2022/cmat-services-confirmation.mjs +9 -11
- package/fesm2022/cmat-services-confirmation.mjs.map +1 -1
- package/fesm2022/cmat-services-data.mjs +56 -101
- package/fesm2022/cmat-services-data.mjs.map +1 -1
- package/fesm2022/cmat-services-export-as.mjs +4 -32
- package/fesm2022/cmat-services-export-as.mjs.map +1 -1
- package/fesm2022/cmat-services-loading.mjs +49 -40
- package/fesm2022/cmat-services-loading.mjs.map +1 -1
- package/fesm2022/cmat-services-local-storage.mjs +3 -3
- package/fesm2022/cmat-services-media-watcher.mjs +19 -25
- package/fesm2022/cmat-services-media-watcher.mjs.map +1 -1
- package/fesm2022/cmat-services-platform.mjs +3 -10
- package/fesm2022/cmat-services-platform.mjs.map +1 -1
- package/fesm2022/cmat-services-splash-screen.mjs +8 -13
- package/fesm2022/cmat-services-splash-screen.mjs.map +1 -1
- package/fesm2022/cmat-services-title.mjs +8 -12
- package/fesm2022/cmat-services-title.mjs.map +1 -1
- package/fesm2022/cmat-services-translation.mjs +3 -3
- package/fesm2022/cmat-services-utils.mjs +5 -27
- package/fesm2022/cmat-services-utils.mjs.map +1 -1
- package/fesm2022/cmat-validators.mjs +0 -8
- package/fesm2022/cmat-validators.mjs.map +1 -1
- package/fesm2022/cmat.mjs +3477 -3795
- package/fesm2022/cmat.mjs.map +1 -1
- package/package.json +1 -1
- package/tailwind/plugins/helpers.js +1 -10
- package/tailwind/plugins/scrollbar/index.js +0 -1
- package/tailwind/plugins/scrollbar/typedefs.js +1 -7
- package/tailwind/plugins/scrollbar/utilities.js +9 -58
- package/tailwind/plugins/scrollbar/variants.js +2 -17
- package/tailwind/plugins/theming.js +1 -57
- package/tailwind/utils/generate-contrasts.js +1 -12
- package/tailwind/utils/generate-palette.js +1 -32
- package/types/cmat-components-adapter.d.ts +0 -25
- package/types/cmat-components-breadcrumb.d.ts +25 -175
- package/types/cmat-components-carousel.d.ts +2 -20
- package/types/cmat-components-cascade.d.ts +4 -4
- package/types/cmat-components-chip-input.d.ts +4 -3
- package/types/cmat-components-code-editor.d.ts +0 -18
- package/types/cmat-components-custom-formly.d.ts +30 -37
- package/types/cmat-components-date-range.d.ts +1 -72
- package/types/cmat-components-date-time-display.d.ts +0 -15
- package/types/cmat-components-drawer.d.ts +2 -44
- package/types/cmat-components-empty-state.d.ts +0 -21
- package/types/cmat-components-file-preview.d.ts +0 -18
- package/types/cmat-components-filter-toolbar.d.ts +3 -43
- package/types/cmat-components-form-actions.d.ts +0 -6
- package/types/cmat-components-image-viewer.d.ts +5 -18
- package/types/cmat-components-inline-loading.d.ts +0 -9
- package/types/cmat-components-json-editor.d.ts +0 -1
- package/types/cmat-components-knob-input.d.ts +3 -3
- package/types/cmat-components-masonry.d.ts +1 -2
- package/types/cmat-components-material-color-picker.d.ts +1 -2
- package/types/cmat-components-material-datetimepicker.d.ts +6 -272
- package/types/cmat-components-navigation.d.ts +34 -171
- package/types/cmat-components-opt-input.d.ts +1 -1
- package/types/cmat-components-page-header.d.ts +2 -16
- package/types/cmat-components-pagination.d.ts +26 -27
- package/types/cmat-components-password-strength.d.ts +1 -2
- package/types/cmat-components-popover.d.ts +1 -110
- package/types/cmat-components-progress-bar.d.ts +9 -11
- package/types/cmat-components-rating.d.ts +6 -7
- package/types/cmat-components-rich-text-editor.d.ts +0 -21
- package/types/cmat-components-select-search.d.ts +4 -20
- package/types/cmat-components-select-table.d.ts +24 -12
- package/types/cmat-components-select-tree.d.ts +29 -29
- package/types/cmat-components-skeleton.d.ts +0 -18
- package/types/cmat-components-speed-dial.d.ts +1 -2
- package/types/cmat-components-status-tag.d.ts +0 -15
- package/types/cmat-components-table-toolbar.d.ts +0 -12
- package/types/cmat-components-timeline.d.ts +3 -4
- package/types/cmat-components-toast.d.ts +2 -2
- package/types/cmat-components-transfer-picker.d.ts +42 -36
- package/types/cmat-components-treetable.d.ts +3 -4
- package/types/cmat-components-upload.d.ts +12 -17
- package/types/cmat-components-x6-angular-shape.d.ts +0 -1
- package/types/cmat-directives-arrow-cursor.d.ts +1 -1
- package/types/cmat-directives-debounce.d.ts +3 -4
- package/types/cmat-pipes-secure.d.ts +3 -4
- package/types/cmat-services-config.d.ts +35 -13
- package/types/cmat-services-data.d.ts +13 -12
- package/types/cmat-services-export-as.d.ts +0 -22
- package/types/cmat-services-loading.d.ts +15 -10
- package/types/cmat-services-media-watcher.d.ts +10 -13
- package/types/cmat-services-splash-screen.d.ts +2 -4
- package/types/cmat-services-title.d.ts +3 -5
- package/types/cmat.d.ts +733 -1391
|
@@ -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\n * Throws an exception for the case when popover trigger doesn't have a valid cmat-popover instance\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\n * Throws an exception for the case when popover's cmatPopoverPosition[0] value isn't valid.\r\n * In other words, it doesn't match 'above', 'below', 'before' or 'after'.\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\n * Throws an exception for the case when popover's cmatPopoverPosition[1] value isn't valid.\r\n * In other words, it doesn't match 'above', 'below', 'before', 'after' or 'center'.\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 /** Event emitted when the popover is closed. */\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 /** Config object to be passed into the popover's arrow ngStyle */\r\n @Input()\r\n popoverPanelStyles = {};\r\n\r\n /** Config object to be passed into the popover's arrow ngStyle */\r\n @Input()\r\n public popoverArrowStyles = {};\r\n\r\n /** Config object to be passed into the popover's content ngStyle */\r\n @Input()\r\n public popoverContentStyles = {};\r\n /** Whether popover's `targetElement` is defined */\r\n public containerPositioning = false;\r\n\r\n /** Closing disabled on popover */\r\n public closeDisabled = false;\r\n\r\n /** Config object to be passed into the popover's ngClass */\r\n classList: Record<string, boolean> = {};\r\n\r\n /** Emits the current animation state whenever it changes. */\r\n _onAnimationStateChange = new EventEmitter<AnimationEvent>();\r\n\r\n private _dir = inject(Directionality, { optional: true })!;\r\n private _elementRef = inject(ElementRef);\r\n\r\n /** Settings for popover, view setters and getters for more detail */\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 /** Position of the popover. */\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 /** Popover trigger event */\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 /** Popover scroll strategy */\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 /** Popover enter delay */\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 /** Popover leave delay */\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 /** Popover target offset x */\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 /** Popover target offset y */\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 /** Popover arrow offset x */\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 /** Popover arrow offset y */\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 /** Popover arrow width */\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 /** Popover arrow height */\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 /** Popover close on container click */\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 /** Popover close on backdrop click */\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 /** Disable animations of popover and all child elements */\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 /** Popover focus trap using cdkTrapFocus */\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 /** Popover focus trap auto capture using cdkTrapFocusAutoCapture */\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 * This method takes classes set on the host md-popover element and applies them on the\r\n * popover template that displays in the overlay container. Otherwise, it's difficult\r\n * to style the containing popover from outside the component.\r\n *\r\n * @param classes list of class names\r\n */\r\n @Input()\r\n set panelClass(classes: string) {\r\n if (classes?.length) {\r\n this.classList = classes.split(' ').reduce((obj: any, className: string) => {\r\n obj[className] = true;\r\n return obj;\r\n }, {});\r\n\r\n this._elementRef.nativeElement.className = '';\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 /** Handle a keyboard event from the popover, delegating to the appropriate action. */\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 * This emits a close event to which the trigger is subscribed. When emitted, the\r\n * trigger will close the popover.\r\n */\r\n emitCloseEvent(): void {\r\n this.closed.emit();\r\n }\r\n\r\n /** Close popover on click if closeOnPanelClick is true */\r\n onClick(): void {\r\n if (this.closeOnPanelClick) {\r\n this.emitCloseEvent();\r\n }\r\n }\r\n\r\n /**\r\n * TODO: Refactor when @angular/cdk includes feature I mentioned on github see link below.\r\n * https://github.com/angular/material2/pull/5493#issuecomment-313085323\r\n */\r\n /** Disables close of popover when leaving trigger element and mouse over the popover */\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 //do someting\r\n }\r\n\r\n /** Enables close of popover when mouse leaving popover element */\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 // TODO: Refactor how styles are set and updated on the component, use best practices.\r\n // TODO: If arrow left and right positioning is requested, see if flex direction can be used to work with order.\r\n /** Sets the current styles for the popover to allow for dynamically changing settings */\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 * It's necessary to set position-based classes to ensure the popover panel animation\r\n * folds out from the correct direction.\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, ChangeDetectorRef, Directive, ElementRef, EventEmitter, HostBinding, HostListener, Input, OnChanges, OnDestroy, Output, SimpleChanges, ViewContainerRef, inject } from '@angular/core';\r\nimport { Subject, Subscription } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\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 * This directive is intended to be used in conjunction with an cmat-popover tag. It is\r\n * responsible for toggling the display of the provided popover instance.\r\n */\r\n\r\n@Directive({\r\n selector: '[cmatPopoverTriggerFor],[cmatPopoverTargetAt],[cmatPopoverTriggerOn]',\r\n standalone: true,\r\n exportAs: 'cmatPopoverTrigger'\r\n})\r\nexport class CmatPopoverTriggerDirective implements OnChanges,AfterViewInit, OnDestroy {\r\n @HostBinding('attr.aria-haspopup') ariaHaspopup = true;\r\n /** References the popover instance that the trigger is associated with. */\r\n @Input('cmatPopoverTriggerFor') popover!: CmatPopoverPanel;\r\n\r\n /** References the popover target instance that the trigger is associated with. */\r\n @Input('cmatPopoverTargetAt') targetElement!: CmatTarget;\r\n\r\n /** Popover trigger event */\r\n @Input('cmatPopoverTriggerOn') triggerEvent!: CmatPopoverTriggerEvent;\r\n\r\n /** Event emitted when the associated popover is opened. */\r\n @Output() popoverOpened = new EventEmitter<void>();\r\n\r\n /** Event emitted when the associated popover is closed. */\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 _changeDetectorRef = inject(ChangeDetectorRef);\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 _backdropSubscription!: Subscription;\r\n private _positionSubscription!: Subscription;\r\n private _detachmentsSubscription!: Subscription;\r\n\r\n private _mouseoverTimer: any;\r\n\r\n // tracking input type is necessary so it's possible to only auto-focus\r\n // the first item of the list when the popover is opened via the keyboard\r\n private _openedByMouse = false;\r\n\r\n private _onDestroy = new Subject<void>();\r\n\r\n\r\n /** Whether the popover is open. */\r\n get popoverOpen(): boolean {\r\n return this._popoverOpen;\r\n }\r\n /** The text direction of the containing app. */\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 = 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) {\r\n clearTimeout(this._mouseoverTimer);\r\n this._mouseoverTimer = null;\r\n }\r\n if (this._popoverOpen) {\r\n setTimeout(() => {\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.subscribe(() => this.closePopover());\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroyPopover();\r\n }\r\n\r\n\r\n\r\n /** Toggles the popover between the open and closed states. */\r\n togglePopover(): void {\r\n return this._popoverOpen ? this.closePopover() : this.openPopover();\r\n }\r\n\r\n /** Opens the popover. */\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 /** Closes the popover. */\r\n closePopover(): void {\r\n if (this._overlayRef) {\r\n this._overlayRef.detach();\r\n this._resetPopover();\r\n }\r\n\r\n this.destroyPopover();\r\n }\r\n\r\n /** Removes the popover from the DOM. */\r\n destroyPopover(): void {\r\n if (this._mouseoverTimer) {\r\n clearTimeout(this._mouseoverTimer);\r\n this._mouseoverTimer = null;\r\n }\r\n if (this._overlayRef) {\r\n this._overlayRef.dispose();\r\n this._overlayRef = null;\r\n this._cleanUpSubscriptions();\r\n }\r\n\r\n this._onDestroy.next();\r\n this._onDestroy.complete();\r\n }\r\n\r\n /** Focuses the popover trigger. */\r\n focus(): void {\r\n this._elementRef.nativeElement.focus();\r\n }\r\n\r\n /**\r\n * This method ensures that the popover closes when the overlay backdrop is clicked.\r\n * We do not use first() here because doing so would not catch clicks from within\r\n * the popover, and it would fail to unsubscribe properly. Instead, we unsubscribe\r\n * explicitly when the popover is closed or destroyed.\r\n */\r\n private _subscribeToBackdrop(): void {\r\n if (this._overlayRef) {\r\n /** Only subscribe to backdrop if trigger event is click */\r\n if (this.triggerEvent === 'click' && this.popover.closeOnBackdropClick === true) {\r\n this._overlayRef\r\n .backdropClick()\r\n .pipe(takeUntil(this.popoverClosed$), takeUntil(this._onDestroy))\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(takeUntil(this.popoverClosed$), takeUntil(this._onDestroy))\r\n .subscribe(() => {\r\n this._setPopoverClosed();\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * This method sets the popover state to open and focuses the first item if\r\n * the popover was opened via the keyboard.\r\n */\r\n private _initPopover(): void {\r\n this._setPopoverOpened();\r\n }\r\n\r\n /**\r\n * This method resets the popover when it's closed, most importantly restoring\r\n * focus to the popover trigger if the popover was opened via the keyboard.\r\n */\r\n private _resetPopover(): void {\r\n this._setPopoverClosed();\r\n\r\n // Focus only needs to be reset to the host element if the popover was opened\r\n // by the keyboard and manually shifted to the first popover item.\r\n if (!this._openedByMouse) {\r\n this.focus();\r\n }\r\n this._openedByMouse = false;\r\n }\r\n\r\n /** set state rather than toggle to support triggers sharing a popover */\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 /** set state rather than toggle to support triggers sharing a popover */\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 * This method checks that a valid instance of MdPopover has been passed into\r\n * mdPopoverTriggerFor. If not, an exception is thrown.\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 * This method creates the overlay from the provided popover's template and saves its\r\n * OverlayRef so that it can be attached to the DOM when openPopover is called.\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 * This method builds the configuration object needed to create the overlay, the OverlayConfig.\r\n *\r\n * @returns OverlayConfig\r\n */\r\n private _getOverlayConfig(): OverlayConfig {\r\n const overlayState = new OverlayConfig();\r\n overlayState.positionStrategy = this._getPosition();\r\n\r\n /** Display overlay backdrop if trigger event is click */\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 * This method returns the scroll strategy used by the cdk/overlay.\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 * Listens to changes in the position of the overlay and sets the correct classes\r\n * on the popover based on the new position. This ensures the animation origin is always\r\n * correct, even if a fallback position is used for the overlay.\r\n */\r\n private _subscribeToPositions(position: FlexibleConnectedPositionStrategy): void {\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 // required for ChangeDetectionStrategy.OnPush\r\n this._changeDetectorRef.markForCheck();\r\n\r\n this.popover.setCurrentStyles(pos);\r\n this.popover.setPositionClasses(pos);\r\n });\r\n }\r\n\r\n /**\r\n * This method builds the position strategy for the overlay, so the popover is properly connected\r\n * to the trigger.\r\n *\r\n * @returns ConnectedPositionStrategy\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 * For overriding position element, when `cmatPopoverTargetAt` has a valid element reference.\r\n * Useful for sticking popover to parent element and offsetting arrow to trigger element.\r\n * If undefined defaults to the trigger element reference.\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 _cleanUpSubscriptions(): void {\r\n if (this._backdropSubscription) {\r\n this._backdropSubscription.unsubscribe();\r\n }\r\n if (this._positionSubscription) {\r\n this._positionSubscription.unsubscribe();\r\n }\r\n if (this._detachmentsSubscription) {\r\n this._detachmentsSubscription.unsubscribe();\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 standalone:true,\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":";;;;;;;;;;;;AACA;;AAEG;SACa,4BAA4B,GAAA;AACxC,IAAA,MAAM,KAAK,CAAC,CAAA;;;;AAI0C,yDAAA,CAAA,CAAC;AAC3D;AAEA;;;AAGG;SACa,oCAAoC,GAAA;AAChD,IAAA,MAAM,KAAK,CAAC,CAAA;AACkF,iGAAA,CAAA,CAAC;AACnG;AAEA;;;AAGG;SACa,kCAAkC,GAAA;AAC9C,IAAA,MAAM,KAAK,CAAC,CAAA;AACkF,iGAAA,CAAA,CAAC;AACnG;;AC5BA;MAmBa,oBAAoB,CAAA;AA2D7B,IAAA,WAAA,GAAA;;AAnDU,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAQ;QAIjB,IAAA,CAAA,IAAI,GAAG,QAAQ;;QAGzC,IAAA,CAAA,kBAAkB,GAAG,EAAE;;QAIhB,IAAA,CAAA,kBAAkB,GAAG,EAAE;;QAIvB,IAAA,CAAA,oBAAoB,GAAG,EAAE;;QAEzB,IAAA,CAAA,oBAAoB,GAAG,KAAK;;QAG5B,IAAA,CAAA,aAAa,GAAG,KAAK;;QAG5B,IAAA,CAAA,SAAS,GAA4B,EAAE;;AAGvC,QAAA,IAAA,CAAA,uBAAuB,GAAG,IAAI,YAAY,EAAkB;QAEpD,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAE;AAClD,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;;AAGhC,QAAA,IAAA,CAAA,SAAS,GAAwB,CAAC,OAAO,EAAE,OAAO,CAAC;QACnD,IAAA,CAAA,aAAa,GAA4B,OAAO;QAChD,IAAA,CAAA,eAAe,GAA8B,YAAY;QACzD,IAAA,CAAA,WAAW,GAAG,GAAG;QACjB,IAAA,CAAA,WAAW,GAAG,GAAG;QACjB,IAAA,CAAA,aAAa,GAAG,CAAC;QACjB,IAAA,CAAA,aAAa,GAAG,CAAC;QACjB,IAAA,CAAA,kBAAkB,GAAG,KAAK;QAC1B,IAAA,CAAA,qBAAqB,GAAG,IAAI;QAC5B,IAAA,CAAA,iBAAiB,GAAG,KAAK;QACzB,IAAA,CAAA,iBAAiB,GAAG,IAAI;QACxB,IAAA,CAAA,4BAA4B,GAAG,IAAI;QACnC,IAAA,CAAA,aAAa,GAAG,EAAE;QAClB,IAAA,CAAA,aAAa,GAAG,EAAE;QAClB,IAAA,CAAA,WAAW,GAAG,EAAE;QAChB,IAAA,CAAA,YAAY,GAAG,EAAE;QAKrB,IAAI,CAAC,kBAAkB,EAAE;IAC7B;AAEA,IAAA,IAAI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,SAAS;IACzB;;IAEA,IACI,QAAQ,CAAC,KAA0B,EAAA;AACnC,QAAA,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;AAC3D,YAAA,oCAAoC,EAAE;QAC1C;QACA,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;AACrE,YAAA,kCAAkC,EAAE;QACxC;AACA,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;QACtB,IAAI,CAAC,kBAAkB,EAAE;IAC7B;;;AAIA,IAAA,IAAI,YAAY,GAAA;QACZ,OAAO,IAAI,CAAC,aAAa;IAC7B;IACA,IACI,YAAY,CAAC,KAA8B,EAAA;AAC3C,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;IAC9B;;;AAIA,IAAA,IAAI,cAAc,GAAA;QACd,OAAO,IAAI,CAAC,eAAe;IAC/B;IACA,IACI,cAAc,CAAC,KAAgC,EAAA;AAC/C,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK;IAChC;;;AAIA,IAAA,IAAI,UAAU,GAAA;QACV,OAAO,IAAI,CAAC,WAAW;IAC3B;IAEA,IACI,UAAU,CAAC,KAAa,EAAA;AACxB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;IAC5B;;;AAIA,IAAA,IAAI,UAAU,GAAA;QACV,OAAO,IAAI,CAAC,WAAW;IAC3B;IAEA,IACI,UAAU,CAAC,KAAa,EAAA;AACxB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;IAC5B;;;AAIA,IAAA,IAAI,OAAO,GAAA;QACP,OAAO,IAAI,CAAC,aAAa;IAC7B;IACA,IACI,OAAO,CAAC,KAAa,EAAA;AACrB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;IAC9B;;;AAIA,IAAA,IAAI,OAAO,GAAA;QACP,OAAO,IAAI,CAAC,aAAa;IAC7B;IAEA,IACI,OAAO,CAAC,KAAa,EAAA;AACrB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;IAC9B;;;AAIA,IAAA,IAAI,YAAY,GAAA;QACZ,OAAO,IAAI,CAAC,aAAa;IAC7B;IAEA,IACI,YAAY,CAAC,KAAa,EAAA;AAC1B,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;IAC9B;;;AAIA,IAAA,IAAI,YAAY,GAAA;QACZ,OAAO,IAAI,CAAC,aAAa;IAC7B;IAEA,IACI,YAAY,CAAC,KAAa,EAAA;AAC1B,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;IAC9B;;;AAIA,IAAA,IAAI,UAAU,GAAA;QACV,OAAO,IAAI,CAAC,WAAW;IAC3B;IAEA,IACI,UAAU,CAAC,KAAa,EAAA;AACxB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;IAC5B;;;AAIA,IAAA,IAAI,WAAW,GAAA;QACX,OAAO,IAAI,CAAC,YAAY;IAC5B;IACA,IACI,WAAW,CAAC,KAAa,EAAA;AACzB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;IAC7B;;;AAIA,IAAA,IAAI,iBAAiB,GAAA;QACjB,OAAO,IAAI,CAAC,kBAAkB;IAClC;IAEA,IACI,iBAAiB,CAAC,KAAc,EAAA;AAChC,QAAA,IAAI,CAAC,kBAAkB,GAAG,qBAAqB,CAAC,KAAK,CAAC;IAC1D;;;AAIA,IAAA,IAAI,oBAAoB,GAAA;QACpB,OAAO,IAAI,CAAC,qBAAqB;IACrC;IACA,IACI,oBAAoB,CAAC,KAAc,EAAA;AACnC,QAAA,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC,KAAK,CAAC;IAC7D;;;AAIA,IAAA,IAAI,gBAAgB,GAAA;QAChB,OAAO,IAAI,CAAC,iBAAiB;IACjC;IAEA,IACI,gBAAgB,CAAC,KAAc,EAAA;AAC/B,QAAA,IAAI,CAAC,iBAAiB,GAAG,qBAAqB,CAAC,KAAK,CAAC;IACzD;;;AAIA,IAAA,IAAI,gBAAgB,GAAA;QAChB,OAAO,IAAI,CAAC,iBAAiB;IACjC;IAEA,IACI,gBAAgB,CAAC,KAAc,EAAA;AAC/B,QAAA,IAAI,CAAC,iBAAiB,GAAG,qBAAqB,CAAC,KAAK,CAAC;IACzD;;;AAIA,IAAA,IAAI,2BAA2B,GAAA;QAC3B,OAAO,IAAI,CAAC,4BAA4B;IAC5C;IAEA,IACI,2BAA2B,CAAC,KAAc,EAAA;AAC1C,QAAA,IAAI,CAAC,4BAA4B,GAAG,qBAAqB,CAAC,KAAK,CAAC;IACpE;AAEA;;;;;;AAMG;IACH,IACI,UAAU,CAAC,OAAe,EAAA;AAC1B,QAAA,IAAI,OAAO,EAAE,MAAM,EAAE;AACjB,YAAA,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAQ,EAAE,SAAiB,KAAI;AACvE,gBAAA,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI;AACrB,gBAAA,OAAO,GAAG;YACd,CAAC,EAAE,EAAE,CAAC;YAEN,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,GAAG,EAAE;YAC7C,IAAI,CAAC,kBAAkB,EAAE;QAC7B;IACJ;IAEA,WAAW,GAAA;QACP,IAAI,CAAC,cAAc,EAAE;AACrB,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;IAC1B;;AAGA,IAAA,aAAa,CAAC,KAAoB,EAAA;AAC9B,QAAA,QAAQ,KAAK,CAAC,IAAI;AACd,YAAA,KAAK,QAAQ;gBACT,IAAI,CAAC,cAAc,EAAE;gBACrB;;IAEZ;AAEA;;;AAGG;IACH,cAAc,GAAA;AACV,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;IACtB;;IAGA,OAAO,GAAA;AACH,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,cAAc,EAAE;QACzB;IACJ;AAEA;;;AAGG;;IAEH,WAAW,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,OAAO,EAAE;AAC/B,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI;QAC7B;IACJ;IAEA,OAAO,GAAA;;IAEP;;IAGA,YAAY,GAAA;AACR,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,OAAO,EAAE;AAC/B,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK;YAC1B,IAAI,CAAC,cAAc,EAAE;QACzB;IACJ;;;;AAKA,IAAA,gBAAgB,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAA;AAChC,QAAA,MAAM,IAAI,GACN,GAAG,CAAC,CAAC,CAAC,KAAK;cACL,CAAA,EAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAA,EAAA;AAC5C,cAAE,GAAG,CAAC,CAAC,CAAC,KAAK;AACT,kBAAE,CAAA,WAAA,EAAc,IAAI,CAAC,UAAU,GAAG,CAAC,CAAA,GAAA;kBACjC,EAAE;QAChB,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ,GAAG,CAAA,EAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAA,EAAA,CAAI,GAAG,EAAE;AAEvF,QAAA,MAAM,MAAM,GACR,GAAG,CAAC,CAAC,CAAC,KAAK;cACL,CAAA,EAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAA,EAAA;AAC7C,cAAE,GAAG,CAAC,CAAC,CAAC,KAAK;AACT,kBAAE,CAAA,WAAA,EAAc,IAAI,CAAC,WAAW,GAAG,CAAC,CAAA,GAAA;kBAClC,EAAE;QAChB,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,GAAG,CAAA,EAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAA,EAAA,CAAI,GAAG,EAAE;AAErF,QAAA,IAAI,CAAC,kBAAkB;YACnB,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK;AAC7B,kBAAE;AACE,oBAAA,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,KAAK;AAC9C,oBAAA,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,GAAG,KAAK,GAAG,IAAI;AAClD;AACD,kBAAE;oBACE,GAAG;oBACH,MAAM;iBACT;IACb;AAEA;;;AAGG;AACH,IAAA,kBAAkB,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAA;AAClC,QAAA,IAAI,CAAC,SAAS,CAAC,2BAA2B,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO;AACvF,QAAA,IAAI,CAAC,SAAS,CAAC,4BAA4B,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ;AACzF,QAAA,IAAI,CAAC,SAAS,CAAC,2BAA2B,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO;AACvF,QAAA,IAAI,CAAC,SAAS,CAAC,0BAA0B,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO;AACrF,QAAA,IAAI,CAAC,SAAS,CAAC,2BAA2B,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ;AACvF,QAAA,IAAI,CAAC,SAAS,CAAC,0BAA0B,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO;AACrF,QAAA,IAAI,CAAC,SAAS,CAAC,2BAA2B,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ;AACvF,QAAA,IAAI,CAAC,SAAS,CAAC,2BAA2B,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ;AACvF,QAAA,IAAI,CAAC,SAAS,CAAC,0BAA0B,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO;AACrF,QAAA,IAAI,CAAC,SAAS,CAAC,2BAA2B,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ;AACvF,QAAA,IAAI,CAAC,SAAS,CAAC,2BAA2B,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ;AACvF,QAAA,IAAI,CAAC,SAAS,CAAC,0BAA0B,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO;IACzF;8GAxWS,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,2BAAA,EAAA,6BAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,WAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAUlB,WAAW,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC7B1B,utBAUc,0hJDOA,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,UAAU,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,yBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAE7B,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAThC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,mBAGP,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAC3B,aAAa,WACd,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,EAAA,QAAA,EAAA,utBAAA,EAAA,MAAA,EAAA,CAAA,8pIAAA,EAAA,kUAAA,CAAA,EAAA;;sBAUtC;;sBAEA,SAAS;uBAAC,WAAW;;sBAErB,WAAW;uBAAC,WAAW;;sBAEvB;;sBAIA;;sBAIA;;sBA6CA;;sBAiBA;;sBAUA;;sBAWA;;sBAWA;;sBAUA;;sBAWA;;sBAWA;;sBAWA;;sBAWA;;sBAUA;;sBAWA;;sBAUA;;sBAWA;;sBAWA;;sBAWA;;sBAYA;;;AE/OL;;;AAGG;MAOU,2BAA2B,CAAA;AALxC,IAAA,WAAA,GAAA;QAMuC,IAAA,CAAA,YAAY,GAAG,IAAI;;AAW5C,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAQ;;AAGxC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAQ;AAElD,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAAQ;AACpC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAAQ;AAE5B,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;AAC1B,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AAChC,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAC5C,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAE;AAClD,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAG9C,IAAA,CAAA,WAAW,GAAsB,IAAI;QACrC,IAAA,CAAA,YAAY,GAAG,KAAK;QACpB,IAAA,CAAA,KAAK,GAAG,KAAK;;;QASb,IAAA,CAAA,cAAc,GAAG,KAAK;AAEtB,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,OAAO,EAAQ;AAkb3C,IAAA;;AA9aG,IAAA,IAAI,WAAW,GAAA;QACX,OAAO,IAAI,CAAC,YAAY;IAC5B;;AAEA,IAAA,IAAI,GAAG,GAAA;AACH,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,KAAK,KAAK,KAAK,GAAG,KAAK,GAAG,KAAK;IACrD;IAGA,OAAO,GAAA;QACH,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,KAAK,OAAO,EAAE;YACvC,IAAI,CAAC,aAAa,EAAE;QACxB;IACJ;IAGA,YAAY,GAAA;AACR,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;QAClB,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,KAAK,OAAO,EAAE;AACvC,YAAA,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,MAAK;gBACnC,IAAI,CAAC,WAAW,EAAE;AACtB,YAAA,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;QAC/B;IACJ;IAGA,YAAY,GAAA;QACR,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,KAAK,OAAO,EAAE;AACvC,YAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,gBAAA,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC;AAClC,gBAAA,IAAI,CAAC,eAAe,GAAG,IAAI;YAC/B;AACA,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE;gBACnB,UAAU,CAAC,MAAK;AACZ,oBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;wBAC7B,IAAI,CAAC,YAAY,EAAE;oBACvB;AACJ,gBAAA,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;YAC/B;iBAAO;AACH,gBAAA,IAAI,CAAC,KAAK,GAAG,IAAI;YACrB;QACJ;IACJ;AAEA,IAAA,eAAe,CAAC,KAAiB,EAAA;QAC7B,IAAI,KAAK,IAAI,CAAC,+BAA+B,CAAC,KAAK,CAAC,EAAE;AAClD,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI;QAC9B;IACJ;AACA,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,IAAI,OAAO,CAAC,cAAc,CAAC,EAAE;YACzB,IAAI,CAAC,iBAAiB,EAAE;QAC5B;IACJ;IACA,eAAe,GAAA;QACX,IAAI,CAAC,aAAa,EAAE;QACpB,IAAI,CAAC,iBAAiB,EAAE;AACxB,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;IAC5D;IAEA,WAAW,GAAA;QACP,IAAI,CAAC,cAAc,EAAE;IACzB;;IAKA,aAAa,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE;IACvE;;IAGA,WAAW,GAAA;QACP,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACnC,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;YAE1C,IAAI,CAAC,oBAAoB,EAAE;YAC3B,IAAI,CAAC,uBAAuB,EAAE;YAE9B,IAAI,CAAC,YAAY,EAAE;QACvB;IACJ;;IAGA,YAAY,GAAA;AACR,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AAClB,YAAA,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;YACzB,IAAI,CAAC,aAAa,EAAE;QACxB;QAEA,IAAI,CAAC,cAAc,EAAE;IACzB;;IAGA,cAAc,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,YAAA,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC;AAClC,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI;QAC/B;AACA,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AAClB,YAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;AAC1B,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI;YACvB,IAAI,CAAC,qBAAqB,EAAE;QAChC;AAEA,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;AACtB,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE;IAC9B;;IAGA,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,EAAE;IAC1C;AAEA;;;;;AAKG;IACK,oBAAoB,GAAA;AACxB,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;;AAElB,YAAA,IAAI,IAAI,CAAC,YAAY,KAAK,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,oBAAoB,KAAK,IAAI,EAAE;AAC7E,gBAAA,IAAI,CAAC;AACA,qBAAA,aAAa;AACb,qBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;qBAC/D,SAAS,CAAC,MAAK;AACZ,oBAAA,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;AACjC,gBAAA,CAAC,CAAC;YACV;QACJ;IACJ;IAEQ,uBAAuB,GAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AAClB,YAAA,IAAI,CAAC;AACA,iBAAA,WAAW;AACX,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;iBAC/D,SAAS,CAAC,MAAK;gBACZ,IAAI,CAAC,iBAAiB,EAAE;AAC5B,YAAA,CAAC,CAAC;QACV;IACJ;AAEA;;;AAGG;IACK,YAAY,GAAA;QAChB,IAAI,CAAC,iBAAiB,EAAE;IAC5B;AAEA;;;AAGG;IACK,aAAa,GAAA;QACjB,IAAI,CAAC,iBAAiB,EAAE;;;AAIxB,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACtB,IAAI,CAAC,KAAK,EAAE;QAChB;AACA,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK;IAC/B;;IAGQ,iBAAiB,GAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACpB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AAExB,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;AAC1B,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;QAC7B;IACJ;;IAGQ,iBAAiB,GAAA;AACrB,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AAEzB,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;AAC1B,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;QAC7B;IACJ;AAEA;;;AAGG;IACK,aAAa,GAAA;AACjB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACf,YAAA,4BAA4B,EAAE;QAClC;IACJ;AAEA;;;AAGG;IACK,cAAc,GAAA;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACnB,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,iBAAiB,CAAC;AACnF,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,EAAE;AACvC,YAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,gBAAqD,CAAC;YACxF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;QACnD;QAEA,OAAO,IAAI,CAAC,WAAW;IAC3B;AAEA;;;;AAIG;IACK,iBAAiB,GAAA;AACrB,QAAA,MAAM,YAAY,GAAG,IAAI,aAAa,EAAE;AACxC,QAAA,YAAY,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,EAAE;;AAGnD,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,OAAO,EAAE;AAC/B,YAAA,YAAY,CAAC,WAAW,GAAG,IAAI;AAC/B,YAAA,YAAY,CAAC,aAAa,GAAG,kCAAkC;QACnE;AAEA,QAAA,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI;AAClC,QAAA,YAAY,CAAC,cAAc,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;AAEzF,QAAA,OAAO,YAAY;IACvB;AAEA;;AAEG;AACK,IAAA,yBAAyB,CAAC,QAAmC,EAAA;QACjE,QAAQ,QAAQ;AACZ,YAAA,KAAK,MAAM;gBACP,OAAO,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE;AAChD,YAAA,KAAK,OAAO;gBACR,OAAO,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,EAAE;AACjD,YAAA,KAAK,OAAO;gBACR,OAAO,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,EAAE;AACjD,YAAA,KAAK,YAAY;AACjB,YAAA;gBACI,OAAO,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE;;IAE9D;AAEA;;;;AAIG;AACK,IAAA,qBAAqB,CAAC,QAA2C,EAAA;AACrE,QAAA,IAAI,CAAC,qBAAqB,GAAG,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,MAAM,KAAI;YACvE,MAAM,IAAI,GACN,MAAM,CAAC,cAAc,CAAC,QAAQ,KAAK;AAC/B,kBAAE;AACF,kBAAE,MAAM,CAAC,cAAc,CAAC,QAAQ,KAAK;AACjC,sBAAE;sBACA,QAAQ;YACtB,MAAM,IAAI,GACN,MAAM,CAAC,cAAc,CAAC,QAAQ,KAAK;AAC/B,kBAAE;AACF,kBAAE,MAAM,CAAC,cAAc,CAAC,QAAQ,KAAK;AACjC,sBAAE;sBACA,QAAQ;YAEtB,MAAM,GAAG,GACL,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;AACjE,kBAAE,CAAC,IAAgC,EAAE,IAAI;AACzC,kBAAE,CAAC,IAAgC,EAAE,IAAI,CAAC;;AAGlD,YAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;AAEtC,YAAA,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC;AAClC,YAAA,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC;AACxC,QAAA,CAAC,CAAC;IACN;AAEA;;;;;AAKG;IACK,YAAY,GAAA;AAChB,QAAA,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,GACnC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;AAClE,cAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK;cACzB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;AACnE,kBAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO;kBACzB,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC;AAExC,QAAA,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,GACnC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;AACjE,cAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ;cAC1B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;AACnE,kBAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK;kBAC1B,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC;QAEzC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC,GAC9B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;AACjE,cAAE,CAAC,OAAO,EAAE,OAAO;cACjB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;AAC3B,kBAAE,CAAC,KAAK,EAAE,OAAO;AACjB,kBAAE,CAAC,OAAO,EAAE,KAAK,CAAC;QAE9B,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC,GAC9B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;AAClE,cAAE,CAAC,OAAO,EAAE,OAAO;cACjB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;AAC3B,kBAAE,CAAC,KAAK,EAAE,QAAQ;AAClB,kBAAE,CAAC,QAAQ,EAAE,KAAK,CAAC;QAE/B,MAAM,eAAe,GAAG,QAAQ;QAChC,MAAM,eAAe,GAAG,QAAQ;AAEhC,QAAA,MAAM,OAAO,GACT,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;cACrD,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO;cACxE,CAAC;AACX,QAAA,MAAM,OAAO,GACT,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;cACrD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO;cAC3B,CAAC;AAEX;;;;AAIG;AACH,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,WAAW;AAC9B,QAAA,IAAI,OAAO,IAAI,CAAC,aAAa,KAAK,WAAW,EAAE;AAC3C,YAAA,IAAI,CAAC,OAAO,CAAC,oBAAoB,GAAG,IAAI;AACxC,YAAA,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW;QAC5C;AAEA,QAAA,IAAI,SAAS,GAAwB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;QAE/E,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;AAC9E,YAAA,SAAS,GAAG;gBACR,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE;AACjD,gBAAA,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE;AACzE,gBAAA,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE;AACzE,gBAAA;oBACI,OAAO;AACP,oBAAA,OAAO,EAAE,eAAe;oBACxB,QAAQ;AACR,oBAAA,QAAQ,EAAE,gBAAgB;oBAC1B,OAAO,EAAE,CAAC,OAAO;AACpB,iBAAA;AACD,gBAAA;AACI,oBAAA,OAAO,EAAE,UAAU;AACnB,oBAAA,OAAO,EAAE,eAAe;AACxB,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,QAAQ,EAAE,gBAAgB;oBAC1B,OAAO,EAAE,CAAC,OAAO;AACpB,iBAAA;AACD,gBAAA;AACI,oBAAA,OAAO,EAAE,UAAU;AACnB,oBAAA,OAAO,EAAE,eAAe;AACxB,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,QAAQ,EAAE,gBAAgB;oBAC1B,OAAO,EAAE,CAAC,OAAO;AACpB,iBAAA;aACJ;QACL;QAEA,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;AAC/E,YAAA,SAAS,GAAG;gBACR,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE;AACjD,gBAAA,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE;AACzE,gBAAA,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE;AACzE,gBAAA;AACI,oBAAA,OAAO,EAAE,eAAe;oBACxB,OAAO;AACP,oBAAA,QAAQ,EAAE,gBAAgB;oBAC1B,QAAQ;oBACR,OAAO,EAAE,CAAC,OAAO;AACpB,iBAAA;AACD,gBAAA;AACI,oBAAA,OAAO,EAAE,eAAe;AACxB,oBAAA,OAAO,EAAE,UAAU;AACnB,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,QAAQ,EAAE,UAAU;oBACpB,OAAO,EAAE,CAAC,OAAO;AACpB,iBAAA;AACD,gBAAA;AACI,oBAAA,OAAO,EAAE,eAAe;AACxB,oBAAA,OAAO,EAAE,UAAU;AACnB,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,QAAQ,EAAE,UAAU;oBACpB,OAAO,EAAE,CAAC,OAAO;AACpB,iBAAA;aACJ;QACL;QAEA,OAAO,IAAI,CAAC;AACP,aAAA,QAAQ;aACR,mBAAmB,CAAC,OAAO;AAC3B,aAAA,kBAAkB;aAClB,aAAa,CAAC,SAAS;aACvB,kBAAkB,CAAC,OAAO;aAC1B,kBAAkB,CAAC,OAAO,CAAC;IACpC;IAEQ,qBAAqB,GAAA;AACzB,QAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE;AAC5B,YAAA,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE;QAC5C;AACA,QAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE;AAC5B,YAAA,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE;QAC5C;AACA,QAAA,IAAI,IAAI,CAAC,wBAAwB,EAAE;AAC/B,YAAA,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE;QAC/C;IACJ;IACQ,iBAAiB,GAAA;AACrB,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY;QACjD;AAEA,QAAA,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE;IACnC;8GAxdS,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sEAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,CAAA,uBAAA,EAAA,SAAA,CAAA,EAAA,aAAA,EAAA,CAAA,qBAAA,EAAA,eAAA,CAAA,EAAA,YAAA,EAAA,CAAA,sBAAA,EAAA,cAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,WAAA,EAAA,yBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,sEAAsE;AAChF,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE;AACb,iBAAA;;sBAEI,WAAW;uBAAC,oBAAoB;;sBAEhC,KAAK;uBAAC,uBAAuB;;sBAG7B,KAAK;uBAAC,qBAAqB;;sBAG3B,KAAK;uBAAC,sBAAsB;;sBAG5B;;sBAGA;;sBAqCA,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;sBAOhC,YAAY;uBAAC,YAAY,EAAE,CAAC,QAAQ,CAAC;;sBAUrC,YAAY;uBAAC,YAAY,EAAE,CAAC,QAAQ,CAAC;;sBAkBrC,YAAY;uBAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;;;MCpH5B,0BAA0B,CAAA;AALvC,IAAA,WAAA,GAAA;AAMI,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAClC,IAAA;8GAFY,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA1B,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,0CAA0C;AACpD,oBAAA,UAAU,EAAC,IAAI;AACf,oBAAA,QAAQ,EAAE,mBAAmB;AAChC,iBAAA;;;ACND;;AAEG;;;;"}
|
|
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 \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 \r\n @Input()\r\n public popoverArrowStyles = {};\r\n\r\n \r\n @Input()\r\n public popoverContentStyles = {};\r\n \r\n public containerPositioning = false;\r\n\r\n \r\n public closeDisabled = false;\r\n\r\n \r\n classList: Record<string, boolean> = {};\r\n\r\n \r\n _onAnimationStateChange = new EventEmitter<AnimationEvent>();\r\n\r\n private _dir = inject(Directionality, { optional: true })!;\r\n private _elementRef = inject(ElementRef);\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: any, className: string) => {\r\n obj[className] = true;\r\n return obj;\r\n }, {});\r\n\r\n this._elementRef.nativeElement.className = '';\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 _backdropSubscription!: Subscription;\r\n private _positionSubscription!: Subscription;\r\n private _detachmentsSubscription!: Subscription;\r\n\r\n private _mouseoverTimer: any;\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 = 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) {\r\n clearTimeout(this._mouseoverTimer);\r\n this._mouseoverTimer = null;\r\n }\r\n if (this._popoverOpen) {\r\n setTimeout(() => {\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.subscribe(() => this.closePopover());\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroyPopover();\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 this.destroyPopover();\r\n }\r\n\r\n \r\n destroyPopover(): void {\r\n if (this._mouseoverTimer) {\r\n clearTimeout(this._mouseoverTimer);\r\n this._mouseoverTimer = null;\r\n }\r\n if (this._overlayRef) {\r\n this._overlayRef.dispose();\r\n this._overlayRef = null;\r\n this._cleanUpSubscriptions();\r\n }\r\n }\r\n\r\n \r\n focus(): void {\r\n this._elementRef.nativeElement.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._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 _cleanUpSubscriptions(): void {\r\n if (this._backdropSubscription) {\r\n this._backdropSubscription.unsubscribe();\r\n }\r\n if (this._positionSubscription) {\r\n this._positionSubscription.unsubscribe();\r\n }\r\n if (this._detachmentsSubscription) {\r\n this._detachmentsSubscription.unsubscribe();\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,58 +1,48 @@
|
|
|
1
1
|
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { inject,
|
|
3
|
+
import { signal, inject, DestroyRef, Input, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
|
|
4
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
5
|
import * as i1 from '@angular/material/progress-bar';
|
|
5
6
|
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
6
7
|
import { CmatLoadingService } from 'cmat/services/loading';
|
|
7
|
-
import { Subject } from 'rxjs';
|
|
8
|
-
import { takeUntil } from 'rxjs/operators';
|
|
9
8
|
|
|
10
9
|
class CmatProgressBarComponent {
|
|
11
10
|
constructor() {
|
|
12
11
|
this.autoMode = true;
|
|
13
|
-
this.
|
|
14
|
-
this.
|
|
12
|
+
this.mode = signal('determinate', ...(ngDevMode ? [{ debugName: "mode" }] : /* istanbul ignore next */ []));
|
|
13
|
+
this.progress = signal(0, ...(ngDevMode ? [{ debugName: "progress" }] : /* istanbul ignore next */ []));
|
|
14
|
+
this.show = signal(false, ...(ngDevMode ? [{ debugName: "show" }] : /* istanbul ignore next */ []));
|
|
15
15
|
this._cmatLoadingService = inject(CmatLoadingService);
|
|
16
|
-
this.
|
|
17
|
-
this._unsubscribeAll = new Subject();
|
|
16
|
+
this._destroyRef = inject(DestroyRef);
|
|
18
17
|
}
|
|
19
18
|
ngOnChanges(changes) {
|
|
20
|
-
// Auto mode
|
|
21
19
|
if ('autoMode' in changes) {
|
|
22
|
-
// Set the auto mode in the service
|
|
23
20
|
this._cmatLoadingService.setAutoMode(coerceBooleanProperty(changes['autoMode'].currentValue));
|
|
24
21
|
}
|
|
25
22
|
}
|
|
26
23
|
ngOnInit() {
|
|
27
24
|
this._cmatLoadingService.mode$
|
|
28
|
-
.pipe(
|
|
25
|
+
.pipe(takeUntilDestroyed(this._destroyRef))
|
|
29
26
|
.subscribe((value) => {
|
|
30
|
-
this.mode
|
|
31
|
-
this._changeDetectorRef.markForCheck();
|
|
27
|
+
this.mode.set(value);
|
|
32
28
|
});
|
|
33
29
|
this._cmatLoadingService.progress$
|
|
34
|
-
.pipe(
|
|
30
|
+
.pipe(takeUntilDestroyed(this._destroyRef))
|
|
35
31
|
.subscribe((value) => {
|
|
36
|
-
this.progress
|
|
37
|
-
this._changeDetectorRef.markForCheck();
|
|
32
|
+
this.progress.set(value);
|
|
38
33
|
});
|
|
39
34
|
this._cmatLoadingService.show$
|
|
40
|
-
.pipe(
|
|
35
|
+
.pipe(takeUntilDestroyed(this._destroyRef))
|
|
41
36
|
.subscribe((value) => {
|
|
42
|
-
this.show
|
|
43
|
-
this._changeDetectorRef.markForCheck();
|
|
37
|
+
this.show.set(value);
|
|
44
38
|
});
|
|
45
39
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
this._unsubscribeAll.complete();
|
|
49
|
-
}
|
|
50
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.7", ngImport: i0, type: CmatProgressBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
51
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.7", 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\r\n [mode]=\"mode\"\r\n [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.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 }); }
|
|
52
42
|
}
|
|
53
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
43
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CmatProgressBarComponent, decorators: [{
|
|
54
44
|
type: Component,
|
|
55
|
-
args: [{ selector: 'cmat-progress-bar', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatProgressBar', imports: [MatProgressBarModule], template: "@if (show) {\r\n <mat-progress-bar
|
|
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"] }]
|
|
56
46
|
}], propDecorators: { autoMode: [{
|
|
57
47
|
type: Input
|
|
58
48
|
}] } });
|
|
@@ -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,
|
|
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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"}
|
|
@@ -23,19 +23,13 @@ class CmatQRCodeComponent {
|
|
|
23
23
|
this._createQRCode();
|
|
24
24
|
}
|
|
25
25
|
convertBase64ImageUrlToBlob(base64ImageUrl) {
|
|
26
|
-
// split into two parts
|
|
27
26
|
const parts = base64ImageUrl.split(';base64,');
|
|
28
|
-
// hold the content/mime type f.e. image/png
|
|
29
27
|
const imageType = parts[0].split(':')[1];
|
|
30
|
-
// decode base64 string
|
|
31
28
|
const decodedData = atob(parts[1]);
|
|
32
|
-
// create unit8array of size same as row data length
|
|
33
29
|
const uInt8Array = new Uint8Array(decodedData.length);
|
|
34
|
-
// insert all character code into uint8array
|
|
35
30
|
for (let i = 0; i < decodedData.length; ++i) {
|
|
36
31
|
uInt8Array[i] = decodedData.charCodeAt(i);
|
|
37
32
|
}
|
|
38
|
-
// return blob image after conversion
|
|
39
33
|
return new Blob([uInt8Array], { type: imageType });
|
|
40
34
|
}
|
|
41
35
|
emitQRCodeURL(element) {
|
|
@@ -115,7 +109,7 @@ class CmatQRCodeComponent {
|
|
|
115
109
|
const operationId = ++this._currentOperationId;
|
|
116
110
|
try {
|
|
117
111
|
if (!this._isValidQrCodeText(this.qrdata)) {
|
|
118
|
-
throw new Error('`qrdata
|
|
112
|
+
throw new Error('`qrdata` 配置为空,请设置 `allowEmptyString="true"` 来覆盖此特性。');
|
|
119
113
|
}
|
|
120
114
|
if (this._isValidQrCodeText(this.qrdata) && this.qrdata === '') {
|
|
121
115
|
this.qrdata = ' ';
|
|
@@ -221,13 +215,13 @@ class CmatQRCodeComponent {
|
|
|
221
215
|
}
|
|
222
216
|
}
|
|
223
217
|
catch (e) {
|
|
224
|
-
console.error('
|
|
218
|
+
console.error('鐢熸垚QRCode閿欒:', e.message);
|
|
225
219
|
}
|
|
226
220
|
}
|
|
227
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
228
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
221
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CmatQRCodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
222
|
+
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 }); }
|
|
229
223
|
}
|
|
230
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
224
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CmatQRCodeComponent, decorators: [{
|
|
231
225
|
type: Component,
|
|
232
226
|
args: [{
|
|
233
227
|
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 = 4;\r\n @Input() public qrdata = '';\r\n @Input() public scale = 4;\r\n @Input() public width = 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;\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\r\n ngOnChanges(): void {\r\n this._createQRCode();\r\n }\r\n\r\n convertBase64ImageUrlToBlob(base64ImageUrl: string): Blob {\r\n // split into two parts\r\n const parts = base64ImageUrl.split(';base64,');\r\n // hold the content/mime type f.e. image/png\r\n const imageType = parts[0].split(':')[1];\r\n // decode base64 string\r\n const decodedData = atob(parts[1]);\r\n // create unit8array of size same as row data length\r\n const uInt8Array = new Uint8Array(decodedData.length);\r\n // insert all character code into uint8array\r\n for (let i = 0; i < decodedData.length; ++i) {\r\n uInt8Array[i] = decodedData.charCodeAt(i)\r\n }\r\n // return blob image after conversion\r\n return new Blob([uInt8Array], { type: imageType });\r\n }\r\n\r\n emitQRCodeURL(element: HTMLCanvasElement | HTMLImageElement | SVGSVGElement): void {\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 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 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 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: HTMLCanvasElement =\r\n this._renderer.createElement('canvas');\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: HTMLElement =\r\n this._renderer.createElement('div');\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: HTMLImageElement =\r\n this._renderer.createElement('img');\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: FixMeLater) {\r\n console.error('生成QRCode错误:', e.message);\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 = 4;\r\n @Input() public qrdata = '';\r\n @Input() public scale = 4;\r\n @Input() public width = 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;\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\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 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 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 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 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: HTMLCanvasElement =\r\n this._renderer.createElement('canvas');\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: HTMLElement =\r\n this._renderer.createElement('div');\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: HTMLImageElement =\r\n this._renderer.createElement('img');\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: FixMeLater) {\r\n console.error('鐢熸垚QRCode閿欒:', e.message);\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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"}
|