cmat 0.0.88 → 0.0.90
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 -9
- package/fesm2022/cmat-components-breadcrumb.mjs +9 -9
- package/fesm2022/cmat-components-card.mjs +3 -3
- package/fesm2022/cmat-components-carousel.mjs +12 -12
- package/fesm2022/cmat-components-cascade.mjs +13 -11
- package/fesm2022/cmat-components-cascade.mjs.map +1 -1
- package/fesm2022/cmat-components-chip-input.mjs +3 -3
- package/fesm2022/cmat-components-code-editor.mjs +3 -3
- package/fesm2022/cmat-components-code-editor.mjs.map +1 -1
- package/fesm2022/cmat-components-color-picker.mjs +27 -27
- package/fesm2022/cmat-components-custom-formly.mjs +99 -98
- package/fesm2022/cmat-components-custom-formly.mjs.map +1 -1
- package/fesm2022/cmat-components-data-picker.mjs +21 -18
- package/fesm2022/cmat-components-data-picker.mjs.map +1 -1
- package/fesm2022/cmat-components-date-range.mjs +3 -3
- package/fesm2022/cmat-components-date-time-display.mjs +3 -3
- package/fesm2022/cmat-components-drawer.mjs +6 -6
- package/fesm2022/cmat-components-empty-state.mjs +3 -3
- package/fesm2022/cmat-components-file-preview.mjs +3 -3
- package/fesm2022/cmat-components-filter-toolbar.mjs +4 -4
- package/fesm2022/cmat-components-filter-toolbar.mjs.map +1 -1
- package/fesm2022/cmat-components-form-actions.mjs +3 -3
- package/fesm2022/cmat-components-fullscreen.mjs +3 -3
- package/fesm2022/cmat-components-highlight.mjs +8 -7
- package/fesm2022/cmat-components-highlight.mjs.map +1 -1
- package/fesm2022/cmat-components-image-viewer.mjs +3 -3
- package/fesm2022/cmat-components-inline-loading.mjs +3 -3
- package/fesm2022/cmat-components-json-editor.mjs +3 -3
- package/fesm2022/cmat-components-knob-input.mjs +3 -3
- package/fesm2022/cmat-components-masonry.mjs +3 -3
- package/fesm2022/cmat-components-material-color-picker.mjs +3 -3
- package/fesm2022/cmat-components-material-datetimepicker.mjs +44 -43
- package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -1
- package/fesm2022/cmat-components-navigation.mjs +39 -39
- package/fesm2022/cmat-components-opt-input.mjs +3 -3
- package/fesm2022/cmat-components-org-chart.mjs +9 -9
- package/fesm2022/cmat-components-page-header.mjs +3 -3
- package/fesm2022/cmat-components-pagination.mjs +12 -12
- package/fesm2022/cmat-components-password-strength.mjs +9 -9
- package/fesm2022/cmat-components-popover.mjs +9 -9
- package/fesm2022/cmat-components-progress-bar.mjs +3 -3
- package/fesm2022/cmat-components-qrcode.mjs +5 -4
- package/fesm2022/cmat-components-qrcode.mjs.map +1 -1
- package/fesm2022/cmat-components-rating.mjs +3 -3
- package/fesm2022/cmat-components-rich-text-editor.mjs +3 -3
- package/fesm2022/cmat-components-select-search.mjs +15 -14
- package/fesm2022/cmat-components-select-search.mjs.map +1 -1
- package/fesm2022/cmat-components-select-table.mjs +5 -5
- package/fesm2022/cmat-components-select-table.mjs.map +1 -1
- package/fesm2022/cmat-components-select-tree.mjs +3 -3
- package/fesm2022/cmat-components-skeleton.mjs +3 -3
- package/fesm2022/cmat-components-speed-dial.mjs +11 -10
- package/fesm2022/cmat-components-speed-dial.mjs.map +1 -1
- package/fesm2022/cmat-components-status-tag.mjs +3 -3
- package/fesm2022/cmat-components-table-toolbar.mjs +3 -3
- package/fesm2022/cmat-components-timeline.mjs +12 -12
- package/fesm2022/cmat-components-toast.mjs +11 -10
- package/fesm2022/cmat-components-toast.mjs.map +1 -1
- package/fesm2022/cmat-components-transfer-picker.mjs +20 -19
- package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -1
- package/fesm2022/cmat-components-treetable.mjs +6 -6
- package/fesm2022/cmat-components-upload.mjs +9 -9
- package/fesm2022/cmat-directives-animate-on-scroll.mjs +6 -6
- package/fesm2022/cmat-directives-arrow-cursor.mjs +3 -3
- package/fesm2022/cmat-directives-autofocus.mjs +3 -3
- package/fesm2022/cmat-directives-data-exporter.mjs +21 -21
- package/fesm2022/cmat-directives-debounce.mjs +9 -9
- package/fesm2022/cmat-directives-digit-only.mjs +6 -6
- package/fesm2022/cmat-directives-equal-validator.mjs +3 -3
- package/fesm2022/cmat-directives-seamless-auto-scroll.mjs +5 -4
- package/fesm2022/cmat-directives-seamless-auto-scroll.mjs.map +1 -1
- package/fesm2022/cmat-lib-mock-api.mjs +6 -6
- 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 -3
- package/fesm2022/cmat-pipes-group-by.mjs +3 -3
- package/fesm2022/cmat-pipes-keys.mjs +3 -3
- package/fesm2022/cmat-pipes-secure.mjs +3 -3
- package/fesm2022/cmat-pipes-uppercase.mjs +3 -3
- package/fesm2022/cmat-services-alert.mjs +17 -6
- package/fesm2022/cmat-services-alert.mjs.map +1 -1
- package/fesm2022/cmat-services-config.mjs +6 -6
- package/fesm2022/cmat-services-confirmation.mjs +6 -6
- package/fesm2022/cmat-services-data.mjs +3 -3
- package/fesm2022/cmat-services-export-as.mjs +3 -3
- package/fesm2022/cmat-services-loading.mjs +6 -6
- package/fesm2022/cmat-services-local-storage.mjs +3 -3
- package/fesm2022/cmat-services-media-watcher.mjs +3 -3
- package/fesm2022/cmat-services-platform.mjs +3 -3
- package/fesm2022/cmat-services-splash-screen.mjs +3 -3
- package/fesm2022/cmat-services-title.mjs +3 -3
- package/fesm2022/cmat-services-translation.mjs +3 -3
- package/fesm2022/cmat-services-utils.mjs +3 -3
- package/fesm2022/cmat.mjs +604 -579
- package/fesm2022/cmat.mjs.map +1 -1
- package/package.json +1 -3
- package/styles/overrides/angular-material.scss +10 -9
- package/styles/user-themes.scss +1 -1
- package/types/cmat-components-code-editor.d.ts +1 -1
- package/types/cmat-components-material-datetimepicker.d.ts +5 -5
- package/types/cmat-components-toast.d.ts +1 -1
- package/types/cmat-services-alert.d.ts +3 -0
- package/types/cmat.d.ts +14 -11
- package/styles/overrides/fullcalendar.scss +0 -552
|
@@ -34,7 +34,8 @@ class CmatQRCodeComponent {
|
|
|
34
34
|
this.title = input(/* @ts-ignore */
|
|
35
35
|
...(ngDevMode ? [undefined, { debugName: "title" }] : /* istanbul ignore next */ []));
|
|
36
36
|
this.qrCodeURL = output();
|
|
37
|
-
this.qrcElement = viewChild.required('qrcElement'
|
|
37
|
+
this.qrcElement = viewChild.required('qrcElement', /* @ts-ignore */
|
|
38
|
+
...(ngDevMode ? [{ debugName: "qrcElement" }] : /* istanbul ignore next */ []));
|
|
38
39
|
this.context = null;
|
|
39
40
|
this._renderer = inject(Renderer2);
|
|
40
41
|
this._sanitizer = inject(DomSanitizer);
|
|
@@ -265,10 +266,10 @@ class CmatQRCodeComponent {
|
|
|
265
266
|
console.error('生成QRCode错误:', e instanceof Error ? e.message : String(e));
|
|
266
267
|
}
|
|
267
268
|
}
|
|
268
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
269
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.
|
|
269
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatQRCodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
270
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.8", type: CmatQRCodeComponent, isStandalone: true, selector: "cmat-qrcode", inputs: { allowEmptyString: { classPropertyName: "allowEmptyString", publicName: "allowEmptyString", isSignal: true, isRequired: false, transformFunction: null }, cssClass: { classPropertyName: "cssClass", publicName: "cssClass", isSignal: true, isRequired: false, transformFunction: null }, elementType: { classPropertyName: "elementType", publicName: "elementType", isSignal: true, isRequired: false, transformFunction: null }, errorCorrectionLevel: { classPropertyName: "errorCorrectionLevel", publicName: "errorCorrectionLevel", isSignal: true, isRequired: false, transformFunction: null }, imageSrc: { classPropertyName: "imageSrc", publicName: "imageSrc", isSignal: true, isRequired: false, transformFunction: null }, imageHeight: { classPropertyName: "imageHeight", publicName: "imageHeight", isSignal: true, isRequired: false, transformFunction: null }, imageWidth: { classPropertyName: "imageWidth", publicName: "imageWidth", isSignal: true, isRequired: false, transformFunction: null }, margin: { classPropertyName: "margin", publicName: "margin", isSignal: true, isRequired: false, transformFunction: null }, qrdata: { classPropertyName: "qrdata", publicName: "qrdata", isSignal: true, isRequired: false, transformFunction: null }, scale: { classPropertyName: "scale", publicName: "scale", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, alt: { classPropertyName: "alt", publicName: "alt", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { qrCodeURL: "qrCodeURL" }, viewQueries: [{ propertyName: "qrcElement", first: true, predicate: ["qrcElement"], descendants: true, isSignal: true }], exportAs: ["cmatQRCode"], ngImport: i0, template: '<div #qrcElement [class]="cssClass()"></div>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
270
271
|
}
|
|
271
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
272
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatQRCodeComponent, decorators: [{
|
|
272
273
|
type: Component,
|
|
273
274
|
args: [{
|
|
274
275
|
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 effect,\r\n ElementRef,\r\n inject,\r\n input,\r\n output,\r\n Renderer2,\r\n untracked,\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 {\r\n readonly allowEmptyString = input<boolean>(false);\r\n readonly cssClass = input<string>('qrcode');\r\n readonly elementType = input<QRCodeElementType>('canvas');\r\n readonly errorCorrectionLevel = input<QRCodeErrorCorrectionLevel>('M');\r\n readonly imageSrc = input<string>();\r\n readonly imageHeight = input<number>();\r\n readonly imageWidth = input<number>();\r\n readonly margin = input<number>(4);\r\n readonly qrdata = input<string>('');\r\n readonly scale = input<number>(4);\r\n readonly width = input<number>(10);\r\n\r\n readonly alt = input<string>();\r\n readonly ariaLabel = input<string>();\r\n readonly title = input<string>();\r\n\r\n readonly qrCodeURL = output<SafeUrl>();\r\n\r\n readonly qrcElement = viewChild.required<ElementRef<HTMLDivElement>>('qrcElement');\r\n\r\n public context: CanvasRenderingContext2D | null = null;\r\n private _centerImage?: HTMLImageElement;\r\n private _renderer = inject(Renderer2);\r\n private _sanitizer = inject(DomSanitizer);\r\n private _currentOperationId = 0;\r\n private _previousObjectUrl: string | null = null;\r\n\r\n constructor() {\r\n // 监听输入变化并重新生成二维码\r\n effect(() => {\r\n // 读取所有 input signal,任何一项变化都会触发重新生成\r\n this.allowEmptyString();\r\n this.elementType();\r\n this.errorCorrectionLevel();\r\n this.imageSrc();\r\n this.imageHeight();\r\n this.imageWidth();\r\n this.margin();\r\n this.qrdata();\r\n this.scale();\r\n this.width();\r\n this.alt();\r\n this.ariaLabel();\r\n this.title();\r\n\r\n untracked(() => {\r\n this._createQRCode();\r\n })\r\n\r\n });\r\n }\r\n\r\n convertBase64ImageUrlToBlob(base64ImageUrl: string): Blob {\r\n const parts = base64ImageUrl.split(';base64,');\r\n const imageType = parts[0].split(':')[1];\r\n const decodedData = atob(parts[1]);\r\n const uInt8Array = new Uint8Array(decodedData.length);\r\n for (let i = 0; i < decodedData.length; ++i) {\r\n uInt8Array[i] = decodedData.charCodeAt(i)\r\n }\r\n return new Blob([uInt8Array], { type: imageType });\r\n }\r\n\r\n emitQRCodeURL(element: HTMLCanvasElement | HTMLImageElement | SVGSVGElement): void {\r\n if (this._previousObjectUrl) {\r\n URL.revokeObjectURL(this._previousObjectUrl);\r\n this._previousObjectUrl = null;\r\n }\r\n const className = element.constructor.name;\r\n if (className === SVGSVGElement.name) {\r\n const svgHTML = element.outerHTML;\r\n const blob = new Blob([svgHTML], { type: 'image/svg+xml' });\r\n const urlSvg = URL.createObjectURL(blob);\r\n this._previousObjectUrl = urlSvg;\r\n const urlSanitized = this._sanitizer.bypassSecurityTrustUrl(urlSvg);\r\n this.qrCodeURL.emit(urlSanitized);\r\n return;\r\n }\r\n\r\n let urlImage = '';\r\n\r\n if (className === HTMLCanvasElement.name) {\r\n urlImage = (element as HTMLCanvasElement).toDataURL('image/png');\r\n }\r\n\r\n if (className === HTMLImageElement.name) {\r\n urlImage = (element as HTMLImageElement).src;\r\n }\r\n\r\n const blobData: Blob = this.convertBase64ImageUrlToBlob(urlImage);\r\n const urlBlob = URL.createObjectURL(blobData);\r\n this._previousObjectUrl = urlBlob;\r\n const urlSanitized = this._sanitizer.bypassSecurityTrustUrl(urlBlob);\r\n this.qrCodeURL.emit(urlSanitized);\r\n }\r\n\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, qrData: string): 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 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 qrData: string\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 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, qrData: string): 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 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 const qrcEl = this.qrcElement();\r\n for (const node of Array.from(qrcEl.nativeElement.childNodes)) {\r\n this._renderer.removeChild(qrcEl.nativeElement, node);\r\n }\r\n\r\n this._renderer.appendChild(qrcEl.nativeElement, element);\r\n }\r\n\r\n private _createQRCode(): void {\r\n const operationId = ++this._currentOperationId;\r\n\r\n try {\r\n let qrData = this.qrdata();\r\n\r\n if (!this._isValidQrCodeText(qrData)) {\r\n throw new Error(\r\n '`qrdata` 配置为空,请设置 `allowEmptyString=\"true\"` 来覆盖此特性。'\r\n );\r\n }\r\n\r\n if (this._isValidQrCodeText(qrData) && qrData === '') {\r\n qrData = ' ';\r\n }\r\n\r\n const config: QRCodeConfigType = {\r\n errorCorrectionLevel: this.errorCorrectionLevel(),\r\n margin: this.margin(),\r\n scale: this.scale(),\r\n width: this.width(),\r\n };\r\n\r\n const centerImageSrc = this.imageSrc();\r\n const centerImageHeight = this.imageHeight() ?? 40;\r\n const centerImageWidth = this.imageWidth() ?? 40;\r\n\r\n switch (this.elementType()) {\r\n case 'canvas': {\r\n const canvasElement = this._renderer.createElement('canvas') as HTMLCanvasElement;\r\n this.context = canvasElement.getContext('2d');\r\n this._toCanvas(canvasElement, config, qrData)\r\n .then(() => {\r\n if (operationId !== this._currentOperationId) {\r\n return;\r\n }\r\n\r\n if (this.ariaLabel()) {\r\n this._renderer.setAttribute(\r\n canvasElement,\r\n 'aria-label',\r\n `${this.ariaLabel()}`\r\n );\r\n }\r\n if (this.title()) {\r\n this._renderer.setAttribute(\r\n canvasElement,\r\n 'title',\r\n `${this.title()}`\r\n );\r\n }\r\n\r\n if (centerImageSrc && this.context) {\r\n this._centerImage = new Image(\r\n centerImageWidth,\r\n centerImageHeight\r\n );\r\n\r\n if (centerImageSrc !== this._centerImage.src) {\r\n this._centerImage.crossOrigin = 'anonymous';\r\n this._centerImage.src = centerImageSrc;\r\n }\r\n\r\n if (centerImageHeight !== this._centerImage.height) {\r\n this._centerImage.height = centerImageHeight;\r\n }\r\n\r\n if (centerImageWidth !== this._centerImage.width) {\r\n this._centerImage.width = centerImageWidth;\r\n }\r\n\r\n const centerImage = this._centerImage;\r\n\r\n if (centerImage) {\r\n centerImage.onload = (): void => {\r\n if (operationId === this._currentOperationId) {\r\n this.context?.drawImage(\r\n centerImage,\r\n canvasElement.width / 2 - centerImageWidth / 2,\r\n canvasElement.height / 2 - centerImageHeight / 2,\r\n centerImageWidth,\r\n centerImageHeight\r\n );\r\n }\r\n }\r\n }\r\n }\r\n\r\n this._renderElement(canvasElement);\r\n this.emitQRCodeURL(canvasElement);\r\n })\r\n .catch((e) => {\r\n console.error('canvas error:', e);\r\n });\r\n break;\r\n }\r\n case 'svg': {\r\n const svgParentElement = this._renderer.createElement('div') as HTMLDivElement;\r\n this._toSVG(config, qrData)\r\n .then((svgString: string) => {\r\n if (operationId !== this._currentOperationId) {\r\n return;\r\n }\r\n\r\n this._renderer.setProperty(\r\n svgParentElement,\r\n 'innerHTML',\r\n svgString\r\n );\r\n const svgElement = svgParentElement.firstChild as SVGSVGElement;\r\n this._renderer.setAttribute(svgElement, 'height', `${this.width()}`);\r\n this._renderer.setAttribute(svgElement, 'width', `${this.width()}`);\r\n this._renderElement(svgElement);\r\n this.emitQRCodeURL(svgElement);\r\n })\r\n .catch((e) => {\r\n console.error('svg error:', e);\r\n })\r\n break;\r\n }\r\n case 'url':\r\n case 'img':\r\n default: {\r\n const imgElement = this._renderer.createElement('img') as HTMLImageElement;\r\n this._toDataURL(config, qrData)\r\n .then((dataUrl: string) => {\r\n if (operationId !== this._currentOperationId) {\r\n return;\r\n }\r\n\r\n if (this.alt()) {\r\n imgElement.setAttribute('alt', this.alt()!);\r\n }\r\n if (this.ariaLabel()) {\r\n imgElement.setAttribute('aria-label', this.ariaLabel()!);\r\n }\r\n imgElement.setAttribute('src', dataUrl);\r\n if (this.title()) {\r\n imgElement.setAttribute('title', this.title()!);\r\n }\r\n this._renderElement(imgElement);\r\n this.emitQRCodeURL(imgElement);\r\n })\r\n .catch((e) => {\r\n console.error('img/url error:', e)\r\n });\r\n }\r\n }\r\n } catch (e: unknown) {\r\n console.error('生成QRCode错误:', e instanceof Error ? e.message : String(e));\r\n }\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cmat-components-qrcode.mjs","sources":["../../../projects/cmat/components/qrcode/qrcode.component.ts","../../../projects/cmat/components/qrcode/cmat-components-qrcode.ts"],"sourcesContent":["import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n effect,\r\n ElementRef,\r\n inject,\r\n input,\r\n output,\r\n Renderer2,\r\n untracked,\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 {\r\n readonly allowEmptyString = input<boolean>(false);\r\n readonly cssClass = input<string>('qrcode');\r\n readonly elementType = input<QRCodeElementType>('canvas');\r\n readonly errorCorrectionLevel = input<QRCodeErrorCorrectionLevel>('M');\r\n readonly imageSrc = input<string>();\r\n readonly imageHeight = input<number>();\r\n readonly imageWidth = input<number>();\r\n readonly margin = input<number>(4);\r\n readonly qrdata = input<string>('');\r\n readonly scale = input<number>(4);\r\n readonly width = input<number>(10);\r\n\r\n readonly alt = input<string>();\r\n readonly ariaLabel = input<string>();\r\n readonly title = input<string>();\r\n\r\n readonly qrCodeURL = output<SafeUrl>();\r\n\r\n readonly qrcElement = viewChild.required<ElementRef<HTMLDivElement>>('qrcElement');\r\n\r\n public context: CanvasRenderingContext2D | null = null;\r\n private _centerImage?: HTMLImageElement;\r\n private _renderer = inject(Renderer2);\r\n private _sanitizer = inject(DomSanitizer);\r\n private _currentOperationId = 0;\r\n private _previousObjectUrl: string | null = null;\r\n\r\n constructor() {\r\n // 监听输入变化并重新生成二维码\r\n effect(() => {\r\n // 读取所有 input signal,任何一项变化都会触发重新生成\r\n this.allowEmptyString();\r\n this.elementType();\r\n this.errorCorrectionLevel();\r\n this.imageSrc();\r\n this.imageHeight();\r\n this.imageWidth();\r\n this.margin();\r\n this.qrdata();\r\n this.scale();\r\n this.width();\r\n this.alt();\r\n this.ariaLabel();\r\n this.title();\r\n\r\n untracked(() => {\r\n this._createQRCode();\r\n })\r\n\r\n });\r\n }\r\n\r\n convertBase64ImageUrlToBlob(base64ImageUrl: string): Blob {\r\n const parts = base64ImageUrl.split(';base64,');\r\n const imageType = parts[0].split(':')[1];\r\n const decodedData = atob(parts[1]);\r\n const uInt8Array = new Uint8Array(decodedData.length);\r\n for (let i = 0; i < decodedData.length; ++i) {\r\n uInt8Array[i] = decodedData.charCodeAt(i)\r\n }\r\n return new Blob([uInt8Array], { type: imageType });\r\n }\r\n\r\n emitQRCodeURL(element: HTMLCanvasElement | HTMLImageElement | SVGSVGElement): void {\r\n if (this._previousObjectUrl) {\r\n URL.revokeObjectURL(this._previousObjectUrl);\r\n this._previousObjectUrl = null;\r\n }\r\n const className = element.constructor.name;\r\n if (className === SVGSVGElement.name) {\r\n const svgHTML = element.outerHTML;\r\n const blob = new Blob([svgHTML], { type: 'image/svg+xml' });\r\n const urlSvg = URL.createObjectURL(blob);\r\n this._previousObjectUrl = urlSvg;\r\n const urlSanitized = this._sanitizer.bypassSecurityTrustUrl(urlSvg);\r\n this.qrCodeURL.emit(urlSanitized);\r\n return;\r\n }\r\n\r\n let urlImage = '';\r\n\r\n if (className === HTMLCanvasElement.name) {\r\n urlImage = (element as HTMLCanvasElement).toDataURL('image/png');\r\n }\r\n\r\n if (className === HTMLImageElement.name) {\r\n urlImage = (element as HTMLImageElement).src;\r\n }\r\n\r\n const blobData: Blob = this.convertBase64ImageUrlToBlob(urlImage);\r\n const urlBlob = URL.createObjectURL(blobData);\r\n this._previousObjectUrl = urlBlob;\r\n const urlSanitized = this._sanitizer.bypassSecurityTrustUrl(urlBlob);\r\n this.qrCodeURL.emit(urlSanitized);\r\n }\r\n\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, qrData: string): 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 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 qrData: string\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 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, qrData: string): 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 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 const qrcEl = this.qrcElement();\r\n for (const node of Array.from(qrcEl.nativeElement.childNodes)) {\r\n this._renderer.removeChild(qrcEl.nativeElement, node);\r\n }\r\n\r\n this._renderer.appendChild(qrcEl.nativeElement, element);\r\n }\r\n\r\n private _createQRCode(): void {\r\n const operationId = ++this._currentOperationId;\r\n\r\n try {\r\n let qrData = this.qrdata();\r\n\r\n if (!this._isValidQrCodeText(qrData)) {\r\n throw new Error(\r\n '`qrdata` 配置为空,请设置 `allowEmptyString=\"true\"` 来覆盖此特性。'\r\n );\r\n }\r\n\r\n if (this._isValidQrCodeText(qrData) && qrData === '') {\r\n qrData = ' ';\r\n }\r\n\r\n const config: QRCodeConfigType = {\r\n errorCorrectionLevel: this.errorCorrectionLevel(),\r\n margin: this.margin(),\r\n scale: this.scale(),\r\n width: this.width(),\r\n };\r\n\r\n const centerImageSrc = this.imageSrc();\r\n const centerImageHeight = this.imageHeight() ?? 40;\r\n const centerImageWidth = this.imageWidth() ?? 40;\r\n\r\n switch (this.elementType()) {\r\n case 'canvas': {\r\n const canvasElement = this._renderer.createElement('canvas') as HTMLCanvasElement;\r\n this.context = canvasElement.getContext('2d');\r\n this._toCanvas(canvasElement, config, qrData)\r\n .then(() => {\r\n if (operationId !== this._currentOperationId) {\r\n return;\r\n }\r\n\r\n if (this.ariaLabel()) {\r\n this._renderer.setAttribute(\r\n canvasElement,\r\n 'aria-label',\r\n `${this.ariaLabel()}`\r\n );\r\n }\r\n if (this.title()) {\r\n this._renderer.setAttribute(\r\n canvasElement,\r\n 'title',\r\n `${this.title()}`\r\n );\r\n }\r\n\r\n if (centerImageSrc && this.context) {\r\n this._centerImage = new Image(\r\n centerImageWidth,\r\n centerImageHeight\r\n );\r\n\r\n if (centerImageSrc !== this._centerImage.src) {\r\n this._centerImage.crossOrigin = 'anonymous';\r\n this._centerImage.src = centerImageSrc;\r\n }\r\n\r\n if (centerImageHeight !== this._centerImage.height) {\r\n this._centerImage.height = centerImageHeight;\r\n }\r\n\r\n if (centerImageWidth !== this._centerImage.width) {\r\n this._centerImage.width = centerImageWidth;\r\n }\r\n\r\n const centerImage = this._centerImage;\r\n\r\n if (centerImage) {\r\n centerImage.onload = (): void => {\r\n if (operationId === this._currentOperationId) {\r\n this.context?.drawImage(\r\n centerImage,\r\n canvasElement.width / 2 - centerImageWidth / 2,\r\n canvasElement.height / 2 - centerImageHeight / 2,\r\n centerImageWidth,\r\n centerImageHeight\r\n );\r\n }\r\n }\r\n }\r\n }\r\n\r\n this._renderElement(canvasElement);\r\n this.emitQRCodeURL(canvasElement);\r\n })\r\n .catch((e) => {\r\n console.error('canvas error:', e);\r\n });\r\n break;\r\n }\r\n case 'svg': {\r\n const svgParentElement = this._renderer.createElement('div') as HTMLDivElement;\r\n this._toSVG(config, qrData)\r\n .then((svgString: string) => {\r\n if (operationId !== this._currentOperationId) {\r\n return;\r\n }\r\n\r\n this._renderer.setProperty(\r\n svgParentElement,\r\n 'innerHTML',\r\n svgString\r\n );\r\n const svgElement = svgParentElement.firstChild as SVGSVGElement;\r\n this._renderer.setAttribute(svgElement, 'height', `${this.width()}`);\r\n this._renderer.setAttribute(svgElement, 'width', `${this.width()}`);\r\n this._renderElement(svgElement);\r\n this.emitQRCodeURL(svgElement);\r\n })\r\n .catch((e) => {\r\n console.error('svg error:', e);\r\n })\r\n break;\r\n }\r\n case 'url':\r\n case 'img':\r\n default: {\r\n const imgElement = this._renderer.createElement('img') as HTMLImageElement;\r\n this._toDataURL(config, qrData)\r\n .then((dataUrl: string) => {\r\n if (operationId !== this._currentOperationId) {\r\n return;\r\n }\r\n\r\n if (this.alt()) {\r\n imgElement.setAttribute('alt', this.alt()!);\r\n }\r\n if (this.ariaLabel()) {\r\n imgElement.setAttribute('aria-label', this.ariaLabel()!);\r\n }\r\n imgElement.setAttribute('src', dataUrl);\r\n if (this.title()) {\r\n imgElement.setAttribute('title', this.title()!);\r\n }\r\n this._renderElement(imgElement);\r\n this.emitQRCodeURL(imgElement);\r\n })\r\n .catch((e) => {\r\n console.error('img/url error:', e)\r\n });\r\n }\r\n }\r\n } catch (e: unknown) {\r\n console.error('生成QRCode错误:', e instanceof Error ? e.message : String(e));\r\n }\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -174,12 +174,12 @@ class CmatRatingComponent {
|
|
|
174
174
|
_initializeStarArray() {
|
|
175
175
|
this.starArray.set(Array.from({ length: this.stars() }, (_, i) => i));
|
|
176
176
|
}
|
|
177
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
178
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.
|
|
177
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatRatingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
178
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: CmatRatingComponent, isStandalone: true, selector: "cmat-rating", inputs: { stars: { classPropertyName: "stars", publicName: "stars", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, hover: { classPropertyName: "hover", publicName: "hover", isSignal: true, isRequired: false, transformFunction: null }, half: { classPropertyName: "half", publicName: "half", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, showMode: { classPropertyName: "showMode", publicName: "showMode", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: false, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, host: { properties: { "attr.id": "id" } }, providers: [
|
|
179
179
|
{ provide: MatFormFieldControl, useExisting: CmatRatingComponent },
|
|
180
180
|
], viewQueries: [{ propertyName: "_ratingElementRef", first: true, predicate: ["rating"], descendants: true, isSignal: true }], exportAs: ["cmatRating"], ngImport: i0, template: "<div\r\n #rating\r\n class=\"flex\"\r\n [class.cmat-rating-readonly]=\"readonly() || disabled\"\r\n [ngClass]=\"{\r\n 'flex-col': showMode() === 'vertical',\r\n 'flex-row': showMode() === 'horizontal',\r\n }\"\r\n (focus)=\"onFocus()\"\r\n (mouseleave)=\"onMouseleave()\"\r\n>\r\n @for (star of starArray(); track $index; let i = $index) {\r\n <div class=\"cmat-rating-item\">\r\n @if (half()) {\r\n <div\r\n role=\"presentation\"\r\n class=\"cmat-rating-half\"\r\n [ngStyle]=\"{ opacity: isIn(i) ? 1 : 0 }\"\r\n (focus)=\"onFocus()\"\r\n (mouseover)=\"onMouseover($event, i, true)\"\r\n (click)=\"onClick($event, i, true)\"\r\n >\r\n <mat-icon\r\n [ngClass]=\"{ 'text-current': !color() }\"\r\n [color]=\"color()\"\r\n [svgIcon]=\"\r\n 'mat_outline:' + (!value || i >= value ? 'star_border' : 'star')\r\n \"\r\n >\r\n </mat-icon>\r\n </div>\r\n }\r\n <div\r\n role=\"presentation\"\r\n (mouseover)=\"onMouseover($event, i)\"\r\n (click)=\"onClick($event, i)\"\r\n (focus)=\"onFocus()\"\r\n >\r\n <mat-icon\r\n [color]=\"color()\"\r\n [ngClass]=\"{ 'text-current': !color() }\"\r\n [svgIcon]=\"\r\n 'mat_outline:' +\r\n ((half() && isIn(i)) || !value || i >= value\r\n ? 'star_border'\r\n : 'star')\r\n \"\r\n >\r\n </mat-icon>\r\n </div>\r\n </div>\r\n }\r\n</div>", styles: ["cmat-rating{display:flex;align-items:center}cmat-rating .cmat-rating-item{position:relative;cursor:pointer;line-height:0}cmat-rating .cmat-rating-item div{display:inline-block;font-size:1rem;padding:0 .1rem}cmat-rating .cmat-rating-item .cmat-rating-half{position:absolute;top:0;left:0;width:45%;z-index:10;opacity:0;overflow:hidden;padding-right:0}cmat-rating .cmat-rating-readonly .cmat-rating-item{cursor:not-allowed}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
181
181
|
}
|
|
182
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
182
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatRatingComponent, decorators: [{
|
|
183
183
|
type: Component,
|
|
184
184
|
args: [{ selector: 'cmat-rating', providers: [
|
|
185
185
|
{ provide: MatFormFieldControl, useExisting: CmatRatingComponent },
|
|
@@ -22,11 +22,11 @@ class CmatRichTextEditorComponent {
|
|
|
22
22
|
this.control.setValue(val ?? '', { emitEvent: false });
|
|
23
23
|
});
|
|
24
24
|
}
|
|
25
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
26
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.
|
|
25
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatRichTextEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: CmatRichTextEditorComponent, isStandalone: true, selector: "cmat-rich-text-editor", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, readOnly: { classPropertyName: "readOnly", publicName: "readOnly", isSignal: true, isRequired: false, transformFunction: null }, theme: { classPropertyName: "theme", publicName: "theme", isSignal: true, isRequired: false, transformFunction: null }, minHeight: { classPropertyName: "minHeight", publicName: "minHeight", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<!-- eslint-disable @angular-eslint/template/no-inline-styles -->\r\n@defer (on viewport) {\r\n <div class=\"rounded-2xl border border-default bg-card shadow-sm\">\r\n <quill-editor class=\"w-full\" [formControl]=\"control\" [placeholder]=\"placeholder()\" [readOnly]=\"readOnly()\" [theme]=\"theme()\" [styles]=\"{ minHeight: minHeight() }\"></quill-editor>\r\n </div>\r\n} @placeholder {\r\n <div class=\"flex items-center justify-center rounded-2xl border border-dashed border-default bg-card px-4 py-6 text-sm text-secondary shadow-sm\" [style.minHeight]=\"minHeight()\">\r\n \u5BCC\u6587\u672C\u7F16\u8F91\u5668\u52A0\u8F7D\u4E2D...\r\n </div>\r\n}\r\n<!-- eslint-enable @angular-eslint/template/no-inline-styles -->\r\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None, deferBlockDependencies: [() => [/* @ts-ignore */
|
|
27
27
|
import('ngx-quill').then(m => m.QuillEditorComponent), i1.NgControlStatus, i1.FormControlDirective]] }); }
|
|
28
28
|
}
|
|
29
|
-
i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "22.0.
|
|
29
|
+
i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "22.0.8", ngImport: i0, type: CmatRichTextEditorComponent, resolveDeferredDeps: () => [/* @ts-ignore */
|
|
30
30
|
import('ngx-quill').then(m => m.QuillEditorComponent)], resolveMetadata: QuillEditorComponent => ({ decorators: [{
|
|
31
31
|
type: Component,
|
|
32
32
|
args: [{ selector: 'cmat-rich-text-editor', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [QuillEditorComponent, ReactiveFormsModule], template: "<!-- eslint-disable @angular-eslint/template/no-inline-styles -->\r\n@defer (on viewport) {\r\n <div class=\"rounded-2xl border border-default bg-card shadow-sm\">\r\n <quill-editor class=\"w-full\" [formControl]=\"control\" [placeholder]=\"placeholder()\" [readOnly]=\"readOnly()\" [theme]=\"theme()\" [styles]=\"{ minHeight: minHeight() }\"></quill-editor>\r\n </div>\r\n} @placeholder {\r\n <div class=\"flex items-center justify-center rounded-2xl border border-dashed border-default bg-card px-4 py-6 text-sm text-secondary shadow-sm\" [style.minHeight]=\"minHeight()\">\r\n \u5BCC\u6587\u672C\u7F16\u8F91\u5668\u52A0\u8F7D\u4E2D...\r\n </div>\r\n}\r\n<!-- eslint-enable @angular-eslint/template/no-inline-styles -->\r\n", styles: [":host{display:block}\n"] }]
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ViewportRuler } from '@angular/cdk/scrolling';
|
|
2
|
-
import { NgClass
|
|
2
|
+
import { NgClass } from '@angular/common';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
4
|
import { InjectionToken, Directive, output, viewChild, contentChild, input, inject, DestroyRef, signal, computed, effect, forwardRef, HostBinding, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
|
|
5
5
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
@@ -37,10 +37,10 @@ const configurableDefaultOptions = [
|
|
|
37
37
|
const MAT_SELECTSEARCH_DEFAULT_OPTIONS = new InjectionToken('mat-selectsearch-default-options');
|
|
38
38
|
|
|
39
39
|
class CmatSelectNoEntriesFoundDirective {
|
|
40
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
41
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.
|
|
40
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatSelectNoEntriesFoundDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
41
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: CmatSelectNoEntriesFoundDirective, isStandalone: true, selector: "[cmatSelectNoEntriesFound]", ngImport: i0 }); }
|
|
42
42
|
}
|
|
43
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
43
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatSelectNoEntriesFoundDirective, decorators: [{
|
|
44
44
|
type: Directive,
|
|
45
45
|
args: [{
|
|
46
46
|
selector: '[cmatSelectNoEntriesFound]'
|
|
@@ -48,10 +48,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImpor
|
|
|
48
48
|
}] });
|
|
49
49
|
|
|
50
50
|
class CmatSelectSearchClearDirective {
|
|
51
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
52
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.
|
|
51
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatSelectSearchClearDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
52
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: CmatSelectSearchClearDirective, isStandalone: true, selector: "[cmatSelectSearchClear]", ngImport: i0 }); }
|
|
53
53
|
}
|
|
54
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
54
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatSelectSearchClearDirective, decorators: [{
|
|
55
55
|
type: Directive,
|
|
56
56
|
args: [{
|
|
57
57
|
selector: '[cmatSelectSearchClear]'
|
|
@@ -62,8 +62,10 @@ const SELECT_PANEL_MAX_HEIGHT = 256;
|
|
|
62
62
|
class CmatSelectSearchComponent {
|
|
63
63
|
constructor() {
|
|
64
64
|
this.toggleAll = output();
|
|
65
|
-
this.searchSelectInput = viewChild.required('searchSelectInput'
|
|
66
|
-
|
|
65
|
+
this.searchSelectInput = viewChild.required('searchSelectInput', /* @ts-ignore */
|
|
66
|
+
...(ngDevMode ? [{ debugName: "searchSelectInput" }] : /* istanbul ignore next */ []));
|
|
67
|
+
this.innerSelectSearch = viewChild.required('innerSelectSearch', /* @ts-ignore */
|
|
68
|
+
...(ngDevMode ? [{ debugName: "innerSelectSearch" }] : /* istanbul ignore next */ []));
|
|
67
69
|
this.clearIcon = contentChild(CmatSelectSearchClearDirective, /* @ts-ignore */
|
|
68
70
|
...(ngDevMode ? [{ debugName: "clearIcon" }] : /* istanbul ignore next */ []));
|
|
69
71
|
this.noEntriesFound = contentChild(CmatSelectNoEntriesFoundDirective, /* @ts-ignore */
|
|
@@ -456,8 +458,8 @@ class CmatSelectSearchComponent {
|
|
|
456
458
|
}
|
|
457
459
|
}
|
|
458
460
|
}
|
|
459
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
460
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.
|
|
461
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatSelectSearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
462
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: CmatSelectSearchComponent, isStandalone: true, selector: "cmat-select-search", inputs: { placeholderLabel: { classPropertyName: "placeholderLabel", publicName: "placeholderLabel", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, noEntriesFoundLabel: { classPropertyName: "noEntriesFoundLabel", publicName: "noEntriesFoundLabel", isSignal: true, isRequired: false, transformFunction: null }, showNoFoundLabel: { classPropertyName: "showNoFoundLabel", publicName: "showNoFoundLabel", isSignal: true, isRequired: false, transformFunction: null }, clearSearchInput: { classPropertyName: "clearSearchInput", publicName: "clearSearchInput", isSignal: true, isRequired: false, transformFunction: null }, searching: { classPropertyName: "searching", publicName: "searching", isSignal: true, isRequired: false, transformFunction: null }, disableInitialFocus: { classPropertyName: "disableInitialFocus", publicName: "disableInitialFocus", isSignal: true, isRequired: false, transformFunction: null }, enableClearOnEscapePressed: { classPropertyName: "enableClearOnEscapePressed", publicName: "enableClearOnEscapePressed", isSignal: true, isRequired: false, transformFunction: null }, preventHomeEndKeyPropagation: { classPropertyName: "preventHomeEndKeyPropagation", publicName: "preventHomeEndKeyPropagation", isSignal: true, isRequired: false, transformFunction: null }, disableScrollToActiveOnOptionsChanged: { classPropertyName: "disableScrollToActiveOnOptionsChanged", publicName: "disableScrollToActiveOnOptionsChanged", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, showToggleAllCheckbox: { classPropertyName: "showToggleAllCheckbox", publicName: "showToggleAllCheckbox", isSignal: true, isRequired: false, transformFunction: null }, toggleAllCheckboxChecked: { classPropertyName: "toggleAllCheckboxChecked", publicName: "toggleAllCheckboxChecked", isSignal: true, isRequired: false, transformFunction: null }, toggleAllCheckboxIndeterminate: { classPropertyName: "toggleAllCheckboxIndeterminate", publicName: "toggleAllCheckboxIndeterminate", isSignal: true, isRequired: false, transformFunction: null }, toggleAllCheckboxTooltipMessage: { classPropertyName: "toggleAllCheckboxTooltipMessage", publicName: "toggleAllCheckboxTooltipMessage", isSignal: true, isRequired: false, transformFunction: null }, toggleAllCheckboxTooltipPosition: { classPropertyName: "toggleAllCheckboxTooltipPosition", publicName: "toggleAllCheckboxTooltipPosition", isSignal: true, isRequired: false, transformFunction: null }, hideClearSearchButton: { classPropertyName: "hideClearSearchButton", publicName: "hideClearSearchButton", isSignal: true, isRequired: false, transformFunction: null }, alwaysRestoreSelectedOptionsMulti: { classPropertyName: "alwaysRestoreSelectedOptionsMulti", publicName: "alwaysRestoreSelectedOptionsMulti", isSignal: true, isRequired: false, transformFunction: null }, debounceTime: { classPropertyName: "debounceTime", publicName: "debounceTime", isSignal: true, isRequired: false, transformFunction: null }, optionsCount: { classPropertyName: "optionsCount", publicName: "optionsCount", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { toggleAll: "toggleAll" }, host: { properties: { "class.cmat-select-search-inside-mat-option": "this.isInsideMatOption" } }, providers: [
|
|
461
463
|
{
|
|
462
464
|
provide: NG_VALUE_ACCESSOR,
|
|
463
465
|
useExisting: forwardRef(() => CmatSelectSearchComponent),
|
|
@@ -465,7 +467,7 @@ class CmatSelectSearchComponent {
|
|
|
465
467
|
},
|
|
466
468
|
], queries: [{ propertyName: "clearIcon", first: true, predicate: CmatSelectSearchClearDirective, descendants: true, isSignal: true }, { propertyName: "noEntriesFound", first: true, predicate: CmatSelectNoEntriesFoundDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "searchSelectInput", first: true, predicate: ["searchSelectInput"], descendants: true, isSignal: true }, { propertyName: "innerSelectSearch", first: true, predicate: ["innerSelectSearch"], descendants: true, isSignal: true }], exportAs: ["cmatSelectSearch"], ngImport: i0, template: "<input matInput class=\"cmat-select-search-input cmat-select-search-hidden\" />\r\n\r\n<div\r\n #innerSelectSearch\r\n class=\"cmat-select-search-inner mat-typography mat-tab-header\"\r\n [ngClass]=\"{\r\n 'cmat-select-search-inner-multiple': matSelect.multiple,\r\n 'cmat-select-search-inner-toggle-all': isToggleAllCheckboxVisible(),\r\n }\"\r\n>\r\n @if (isToggleAllCheckboxVisible()) {\r\n <mat-checkbox\r\n class=\"cmat-select-search-toggle-all-checkbox -mr-4\"\r\n matTooltipClass=\"cmat-select-search-toggle-all-tooltip\"\r\n [color]=\"matFormField?.color\"\r\n [checked]=\"toggleAllCheckboxChecked()\"\r\n [indeterminate]=\"toggleAllCheckboxIndeterminate()\"\r\n [matTooltip]=\"toggleAllCheckboxTooltipMessage()\"\r\n [matTooltipPosition]=\"toggleAllCheckboxTooltipPosition()\"\r\n (change)=\"emitSelectAllBooleanToParent($event.checked)\"\r\n >\r\n </mat-checkbox>\r\n }\r\n <span matPrefix class=\"flex flex-col justify-center pl-2\">\r\n <mat-icon\r\n class=\"cmat-select-search-icon\"\r\n color=\"primary\"\r\n svgIcon=\"heroicons_outline:magnifying-glass\"\r\n ></mat-icon>\r\n </span>\r\n <input\r\n #searchSelectInput\r\n matInput\r\n class=\"cmat-select-search-input cmat-input-element\"\r\n autocomplete=\"off\"\r\n [type]=\"type()\"\r\n [formControl]=\"formControl\"\r\n [placeholder]=\"placeholderLabel()\"\r\n [attr.aria-label]=\"ariaLabel()\"\r\n (keydown)=\"handleKeydown($event)\"\r\n (keyup)=\"handleKeyup($event)\"\r\n (blur)=\"onBlur()\"\r\n />\r\n @if (searching()) {\r\n <mat-spinner class=\"cmat-select-search-spinner\" diameter=\"16\"></mat-spinner>\r\n }\r\n\r\n @if (!hideClearSearchButton() && value && !searching()) {\r\n <button\r\n type=\"button\"\r\n matIconButton\r\n aria-label=\"Clear\"\r\n class=\"cmat-select-search-clear\"\r\n (click)=\"reset(true)\"\r\n >\r\n @if (clearIcon()) {\r\n <ng-content select=\"[cmatSelectSearchClear]\"></ng-content>\r\n } @else {\r\n <mat-icon svgIcon=\"mat_outline:close\"></mat-icon>\r\n }\r\n </button>\r\n }\r\n\r\n <ng-content select=\".cmat-select-search-custom-header-content\"></ng-content>\r\n</div>\r\n\r\n@if (showNoEntriesFound()) {\r\n <div class=\"cmat-select-search-no-entries-found\">\r\n @if (noEntriesFound()) {\r\n <ng-content select=\"[cmatSelectNoEntriesFound]\"></ng-content>\r\n } @else {\r\n {{ noEntriesFoundLabel() }}\r\n }\r\n </div>\r\n}\r\n", styles: ["cmat-select-search .cmat-select-search-hidden{visibility:hidden}cmat-select-search .cmat-select-search-inner{position:absolute;top:0;left:0;width:100%;z-index:100;font-size:inherit;box-shadow:none;display:flex;border-bottom-width:1px;border-bottom-style:solid}cmat-select-search .cmat-select-search-inner.cmat-select-search-inner-multiple.cmat-select-search-inner-toggle-all{display:flex;align-items:center}cmat-select-search .cmat-select-search-inner .cmat-input-element{flex-basis:auto;vertical-align:middle!important}cmat-select-search .cmat-select-search-input{box-sizing:border-box;width:100%;border:none;font-family:inherit;font-size:inherit;color:currentColor;outline:none;background:none;padding:0 44px 0 16px;height:47px!important;line-height:47px!important}:host-context([dir=rtl]) cmat-select-search .cmat-select-search-input{padding-right:16px;padding-left:44px}cmat-select-search .cmat-select-search-no-entries-found{padding-top:8px}cmat-select-search .cmat-select-search-clear{position:absolute;right:4px;top:5px}:host-context([dir=rtl]) cmat-select-search .cmat-select-search-clear{right:auto;left:4px}cmat-select-search .cmat-select-search-spinner{position:absolute;right:16px;top:calc(50% - 8px)}:host-context([dir=rtl]) cmat-select-search .cmat-select-search-spinner{right:auto;left:16px}cmat-select-search .cmat-select-search-toggle-all-checkbox{padding-left:5px;padding-bottom:2px}:host-context([dir=rtl]) cmat-select-search .cmat-select-search-toggle-all-checkbox{padding-left:0;padding-right:5px}cmat-select-search .cmat-select-search-toggle-all-checkbox .mdc-checkbox{opacity:1!important}.mat-mdc-option[aria-disabled=true].contains-cmat-select-search{position:sticky;top:0;z-index:1;opacity:1;pointer-events:all;background:var(--mat-select-panel-background-color)}.mat-mdc-option[aria-disabled=true].contains-cmat-select-search .mat-icon{margin-right:0;margin-left:0}.mat-mdc-option[aria-disabled=true].contains-cmat-select-search mat-pseudo-checkbox{display:none}.mat-mdc-option[aria-disabled=true].contains-cmat-select-search .mdc-list-item__primary-text{opacity:1}.mat-mdc-option[aria-disabled=true].contains-cmat-select-search.cmat-select-search-no-entries-found{height:96px}.cmat-select-search-panel{transform:none!important;overflow-x:hidden;position:relative;padding:0!important}\n"], dependencies: [{ kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: i1.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i2.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i6.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
467
469
|
}
|
|
468
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
470
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatSelectSearchComponent, decorators: [{
|
|
469
471
|
type: Component,
|
|
470
472
|
args: [{ selector: 'cmat-select-search', providers: [
|
|
471
473
|
{
|
|
@@ -483,8 +485,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImpor
|
|
|
483
485
|
FormsModule,
|
|
484
486
|
ReactiveFormsModule,
|
|
485
487
|
MatProgressSpinnerModule,
|
|
486
|
-
MatButtonModule
|
|
487
|
-
AsyncPipe,
|
|
488
|
+
MatButtonModule
|
|
488
489
|
], template: "<input matInput class=\"cmat-select-search-input cmat-select-search-hidden\" />\r\n\r\n<div\r\n #innerSelectSearch\r\n class=\"cmat-select-search-inner mat-typography mat-tab-header\"\r\n [ngClass]=\"{\r\n 'cmat-select-search-inner-multiple': matSelect.multiple,\r\n 'cmat-select-search-inner-toggle-all': isToggleAllCheckboxVisible(),\r\n }\"\r\n>\r\n @if (isToggleAllCheckboxVisible()) {\r\n <mat-checkbox\r\n class=\"cmat-select-search-toggle-all-checkbox -mr-4\"\r\n matTooltipClass=\"cmat-select-search-toggle-all-tooltip\"\r\n [color]=\"matFormField?.color\"\r\n [checked]=\"toggleAllCheckboxChecked()\"\r\n [indeterminate]=\"toggleAllCheckboxIndeterminate()\"\r\n [matTooltip]=\"toggleAllCheckboxTooltipMessage()\"\r\n [matTooltipPosition]=\"toggleAllCheckboxTooltipPosition()\"\r\n (change)=\"emitSelectAllBooleanToParent($event.checked)\"\r\n >\r\n </mat-checkbox>\r\n }\r\n <span matPrefix class=\"flex flex-col justify-center pl-2\">\r\n <mat-icon\r\n class=\"cmat-select-search-icon\"\r\n color=\"primary\"\r\n svgIcon=\"heroicons_outline:magnifying-glass\"\r\n ></mat-icon>\r\n </span>\r\n <input\r\n #searchSelectInput\r\n matInput\r\n class=\"cmat-select-search-input cmat-input-element\"\r\n autocomplete=\"off\"\r\n [type]=\"type()\"\r\n [formControl]=\"formControl\"\r\n [placeholder]=\"placeholderLabel()\"\r\n [attr.aria-label]=\"ariaLabel()\"\r\n (keydown)=\"handleKeydown($event)\"\r\n (keyup)=\"handleKeyup($event)\"\r\n (blur)=\"onBlur()\"\r\n />\r\n @if (searching()) {\r\n <mat-spinner class=\"cmat-select-search-spinner\" diameter=\"16\"></mat-spinner>\r\n }\r\n\r\n @if (!hideClearSearchButton() && value && !searching()) {\r\n <button\r\n type=\"button\"\r\n matIconButton\r\n aria-label=\"Clear\"\r\n class=\"cmat-select-search-clear\"\r\n (click)=\"reset(true)\"\r\n >\r\n @if (clearIcon()) {\r\n <ng-content select=\"[cmatSelectSearchClear]\"></ng-content>\r\n } @else {\r\n <mat-icon svgIcon=\"mat_outline:close\"></mat-icon>\r\n }\r\n </button>\r\n }\r\n\r\n <ng-content select=\".cmat-select-search-custom-header-content\"></ng-content>\r\n</div>\r\n\r\n@if (showNoEntriesFound()) {\r\n <div class=\"cmat-select-search-no-entries-found\">\r\n @if (noEntriesFound()) {\r\n <ng-content select=\"[cmatSelectNoEntriesFound]\"></ng-content>\r\n } @else {\r\n {{ noEntriesFoundLabel() }}\r\n }\r\n </div>\r\n}\r\n", styles: ["cmat-select-search .cmat-select-search-hidden{visibility:hidden}cmat-select-search .cmat-select-search-inner{position:absolute;top:0;left:0;width:100%;z-index:100;font-size:inherit;box-shadow:none;display:flex;border-bottom-width:1px;border-bottom-style:solid}cmat-select-search .cmat-select-search-inner.cmat-select-search-inner-multiple.cmat-select-search-inner-toggle-all{display:flex;align-items:center}cmat-select-search .cmat-select-search-inner .cmat-input-element{flex-basis:auto;vertical-align:middle!important}cmat-select-search .cmat-select-search-input{box-sizing:border-box;width:100%;border:none;font-family:inherit;font-size:inherit;color:currentColor;outline:none;background:none;padding:0 44px 0 16px;height:47px!important;line-height:47px!important}:host-context([dir=rtl]) cmat-select-search .cmat-select-search-input{padding-right:16px;padding-left:44px}cmat-select-search .cmat-select-search-no-entries-found{padding-top:8px}cmat-select-search .cmat-select-search-clear{position:absolute;right:4px;top:5px}:host-context([dir=rtl]) cmat-select-search .cmat-select-search-clear{right:auto;left:4px}cmat-select-search .cmat-select-search-spinner{position:absolute;right:16px;top:calc(50% - 8px)}:host-context([dir=rtl]) cmat-select-search .cmat-select-search-spinner{right:auto;left:16px}cmat-select-search .cmat-select-search-toggle-all-checkbox{padding-left:5px;padding-bottom:2px}:host-context([dir=rtl]) cmat-select-search .cmat-select-search-toggle-all-checkbox{padding-left:0;padding-right:5px}cmat-select-search .cmat-select-search-toggle-all-checkbox .mdc-checkbox{opacity:1!important}.mat-mdc-option[aria-disabled=true].contains-cmat-select-search{position:sticky;top:0;z-index:1;opacity:1;pointer-events:all;background:var(--mat-select-panel-background-color)}.mat-mdc-option[aria-disabled=true].contains-cmat-select-search .mat-icon{margin-right:0;margin-left:0}.mat-mdc-option[aria-disabled=true].contains-cmat-select-search mat-pseudo-checkbox{display:none}.mat-mdc-option[aria-disabled=true].contains-cmat-select-search .mdc-list-item__primary-text{opacity:1}.mat-mdc-option[aria-disabled=true].contains-cmat-select-search.cmat-select-search-no-entries-found{height:96px}.cmat-select-search-panel{transform:none!important;overflow-x:hidden;position:relative;padding:0!important}\n"] }]
|
|
489
490
|
}], ctorParameters: () => [], propDecorators: { toggleAll: [{ type: i0.Output, args: ["toggleAll"] }], searchSelectInput: [{ type: i0.ViewChild, args: ['searchSelectInput', { isSignal: true }] }], innerSelectSearch: [{ type: i0.ViewChild, args: ['innerSelectSearch', { isSignal: true }] }], clearIcon: [{ type: i0.ContentChild, args: [i0.forwardRef(() => CmatSelectSearchClearDirective), { isSignal: true }] }], noEntriesFound: [{ type: i0.ContentChild, args: [i0.forwardRef(() => CmatSelectNoEntriesFoundDirective), { isSignal: true }] }], placeholderLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholderLabel", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], noEntriesFoundLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "noEntriesFoundLabel", required: false }] }], showNoFoundLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "showNoFoundLabel", required: false }] }], clearSearchInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "clearSearchInput", required: false }] }], searching: [{ type: i0.Input, args: [{ isSignal: true, alias: "searching", required: false }] }], disableInitialFocus: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableInitialFocus", required: false }] }], enableClearOnEscapePressed: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableClearOnEscapePressed", required: false }] }], preventHomeEndKeyPropagation: [{ type: i0.Input, args: [{ isSignal: true, alias: "preventHomeEndKeyPropagation", required: false }] }], disableScrollToActiveOnOptionsChanged: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableScrollToActiveOnOptionsChanged", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], showToggleAllCheckbox: [{ type: i0.Input, args: [{ isSignal: true, alias: "showToggleAllCheckbox", required: false }] }], toggleAllCheckboxChecked: [{ type: i0.Input, args: [{ isSignal: true, alias: "toggleAllCheckboxChecked", required: false }] }], toggleAllCheckboxIndeterminate: [{ type: i0.Input, args: [{ isSignal: true, alias: "toggleAllCheckboxIndeterminate", required: false }] }], toggleAllCheckboxTooltipMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "toggleAllCheckboxTooltipMessage", required: false }] }], toggleAllCheckboxTooltipPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "toggleAllCheckboxTooltipPosition", required: false }] }], hideClearSearchButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideClearSearchButton", required: false }] }], alwaysRestoreSelectedOptionsMulti: [{ type: i0.Input, args: [{ isSignal: true, alias: "alwaysRestoreSelectedOptionsMulti", required: false }] }], debounceTime: [{ type: i0.Input, args: [{ isSignal: true, alias: "debounceTime", required: false }] }], optionsCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "optionsCount", required: false }] }], isInsideMatOption: [{
|
|
490
491
|
type: HostBinding,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmat-components-select-search.mjs","sources":["../../../projects/cmat/components/select-search/default-options.ts","../../../projects/cmat/components/select-search/select-no-entries-found.directive.ts","../../../projects/cmat/components/select-search/select-search-clear.directive.ts","../../../projects/cmat/components/select-search/select-search.component.ts","../../../projects/cmat/components/select-search/select-search.component.html","../../../projects/cmat/components/select-search/cmat-components-select-search.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\nimport { CmatSelectSearchComponent } from './select-search.component';\r\n\r\n\r\nexport const configurableDefaultOptions = [\r\n 'ariaLabel',\r\n 'clearSearchInput',\r\n 'disableInitialFocus',\r\n 'disableScrollToActiveOnOptionsChanged',\r\n 'enableClearOnEscapePressed',\r\n 'hideClearSearchButton',\r\n 'noEntriesFoundLabel',\r\n 'placeholderLabel',\r\n 'preventHomeEndKeyPropagation',\r\n 'searching',\r\n] as const;\r\n\r\nexport type ConfigurableDefaultOptions = typeof configurableDefaultOptions[number];\r\n\r\nexport const MAT_SELECTSEARCH_DEFAULT_OPTIONS = new InjectionToken<MatSelectSearchOptions>('mat-selectsearch-default-options');\r\n\r\n\r\nexport type MatSelectSearchOptions = Readonly<Partial<Pick<CmatSelectSearchComponent, ConfigurableDefaultOptions>>>;\r\n","import { Directive } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[cmatSelectNoEntriesFound]'\r\n})\r\nexport class CmatSelectNoEntriesFoundDirective { }\r\n","import { Directive } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[cmatSelectSearchClear]'\r\n})\r\nexport class CmatSelectSearchClearDirective { }\r\n","import { ViewportRuler } from '@angular/cdk/scrolling';\r\nimport { AsyncPipe, NgClass } from '@angular/common';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n contentChild,\r\n DestroyRef,\r\n ElementRef,\r\n forwardRef,\r\n HostBinding,\r\n OnInit,\r\n QueryList,\r\n viewChild,\r\n ViewEncapsulation,\r\n inject,\r\n signal,\r\n input,\r\n output,\r\n computed,\r\n effect,\r\n} from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport {\r\n ControlValueAccessor,\r\n FormControl,\r\n NG_VALUE_ACCESSOR,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n} from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport {\r\n MatOption,\r\n _countGroupLabelsBeforeOption,\r\n} from '@angular/material/core';\r\nimport { MatFormField, MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatSelect } from '@angular/material/select';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { debounceTime, delay, filter, startWith, take, tap } from 'rxjs/operators';\r\nimport {\r\n MatSelectSearchOptions,\r\n MAT_SELECTSEARCH_DEFAULT_OPTIONS,\r\n} from './default-options';\r\nimport { CmatSelectNoEntriesFoundDirective } from './select-no-entries-found.directive';\r\nimport { CmatSelectSearchClearDirective } from './select-search-clear.directive';\r\n\r\nconst SELECT_PANEL_MAX_HEIGHT = 256;\r\n\r\n@Component({\r\n selector: 'cmat-select-search',\r\n templateUrl: './select-search.component.html',\r\n styleUrls: ['./select-search.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => CmatSelectSearchComponent),\r\n multi: true,\r\n },\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatSelectSearch',\r\n imports: [\r\n MatInputModule,\r\n NgClass,\r\n MatCheckboxModule,\r\n MatTooltipModule,\r\n MatFormFieldModule,\r\n MatIconModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatProgressSpinnerModule,\r\n MatButtonModule,\r\n AsyncPipe,\r\n ],\r\n})\r\nexport class CmatSelectSearchComponent implements OnInit, ControlValueAccessor {\r\n readonly toggleAll = output<boolean>();\r\n\r\n readonly searchSelectInput = viewChild.required<ElementRef<HTMLInputElement>>('searchSelectInput');\r\n\r\n readonly innerSelectSearch = viewChild.required<ElementRef<HTMLElement>>('innerSelectSearch');\r\n\r\n readonly clearIcon = contentChild(CmatSelectSearchClearDirective);\r\n readonly noEntriesFound = contentChild(CmatSelectNoEntriesFoundDirective);\r\n\r\n formControl: FormControl<string | null> = new FormControl<string | null>('');\r\n\r\n readonly placeholderLabel = input<string>('搜索');\r\n\r\n readonly type = input<string>('text');\r\n\r\n readonly noEntriesFoundLabel = input<string>('无结果');\r\n\r\n readonly showNoFoundLabel = input<boolean>(true);\r\n\r\n readonly clearSearchInput = input(true);\r\n\r\n readonly searching = input<boolean>(false);\r\n\r\n readonly disableInitialFocus = input<boolean>(false);\r\n\r\n readonly enableClearOnEscapePressed = input(false);\r\n\r\n readonly preventHomeEndKeyPropagation = input<boolean>(false);\r\n\r\n readonly disableScrollToActiveOnOptionsChanged = input<boolean>(false);\r\n\r\n readonly ariaLabel = input<string>('下拉搜索');\r\n\r\n readonly showToggleAllCheckbox = input<boolean>(false);\r\n\r\n readonly toggleAllCheckboxChecked = input<boolean>(false);\r\n\r\n readonly toggleAllCheckboxIndeterminate = input<boolean>(false);\r\n\r\n readonly toggleAllCheckboxTooltipMessage = input<string>('');\r\n\r\n readonly toggleAllCheckboxTooltipPosition = input<\r\n 'left' | 'right' | 'above' | 'below' | 'before' | 'after'\r\n >('below');\r\n\r\n readonly hideClearSearchButton = input<boolean>(false);\r\n\r\n readonly alwaysRestoreSelectedOptionsMulti = input<boolean>(false);\r\n\r\n /**\r\n * 输入框防抖时间(毫秒),默认 300ms\r\n * 设置为 0 可禁用防抖\r\n */\r\n readonly debounceTime = input<number>(300);\r\n\r\n /**\r\n * 可选条目数量(由父组件提供)\r\n * 用于判断是否显示\"无结果\"提示\r\n * 如果未提供,则尝试从 matSelect.options.length 自动获取\r\n */\r\n readonly optionsCount = input<number | null>(null);\r\n\r\n /**\r\n * 自动计算是否显示\"无结果\"提示\r\n * 基于 optionsCount 或 matSelect.options.length 判断\r\n */\r\n readonly showNoEntriesFound: () => boolean;\r\n\r\n protected matSelect = inject<MatSelect>(MatSelect);\r\n protected matFormField =\r\n inject<MatFormField | null>(MatFormField, { optional: true }) ?? null;\r\n private _viewportRuler = inject(ViewportRuler);\r\n private _matOption =\r\n inject<MatOption | null>(MatOption, { optional: true }) ?? null;\r\n private _defaultOptions = inject<MatSelectSearchOptions>(\r\n MAT_SELECTSEARCH_DEFAULT_OPTIONS,\r\n { optional: true },\r\n );\r\n private readonly _destroyRef = inject(DestroyRef);\r\n\r\n private _options$ = signal<QueryList<MatOption> | null>(null);\r\n private _lastExternalInputValue?: string;\r\n\r\n private _previousSelectedValues: unknown[] = [];\r\n\r\n private _activeDescendant?: HTMLElement;\r\n\r\n private readonly _valueSignal = signal('');\r\n\r\n constructor() {\r\n this._applyDefaultOptions(this._defaultOptions);\r\n\r\n this.showNoEntriesFound = computed(() => {\r\n // 优先使用父组件传递的 optionsCount(适用于 mat-table 等特殊情况)\r\n const providedCount = this.optionsCount();\r\n const optionsCount = providedCount ?? (this.matSelect?.options?.length ?? 0);\r\n \r\n const offset = this._getOptionsLengthOffset(); \r\n const hasSearchValue = !!this._valueSignal();\r\n \r\n return !!this.noEntriesFoundLabel() && hasSearchValue && optionsCount <= offset;\r\n });\r\n\r\n // 根据 debounceTime 动态构建 observable\r\n let valueChanges$ = this.formControl.valueChanges.pipe(\r\n startWith(this.formControl.value),\r\n );\r\n\r\n // 如果 debounceTime > 0,添加防抖\r\n if (this.debounceTime() > 0) {\r\n valueChanges$ = valueChanges$.pipe(debounceTime(this.debounceTime()));\r\n }\r\n\r\n valueChanges$\r\n .pipe(takeUntilDestroyed(this._destroyRef))\r\n .subscribe((value): void => {\r\n this._valueSignal.set(value ?? '');\r\n });\r\n\r\n effect((): void => {\r\n const show = this.showNoEntriesFound();\r\n if (this._matOption) {\r\n const el = this._matOption._getHostElement();\r\n if (show) {\r\n el.classList.add('cmat-select-search-no-entries-found');\r\n } else {\r\n el.classList.remove('cmat-select-search-no-entries-found');\r\n }\r\n }\r\n });\r\n }\r\n\r\n @HostBinding('class.cmat-select-search-inside-mat-option')\r\n get isInsideMatOption(): boolean {\r\n return !!this._matOption;\r\n }\r\n\r\n get value(): string {\r\n return this._valueSignal();\r\n }\r\n\r\n public get _options(): QueryList<MatOption> | null {\r\n return this._options$();\r\n }\r\n public set _options(_options: QueryList<MatOption>) {\r\n this._options$.set(_options);\r\n }\r\n\r\n onTouched: () => void = () => {\r\n /* empty */\r\n };\r\n\r\n ngOnInit(): void {\r\n const panelClass = 'cmat-select-search-panel';\r\n if (this.matSelect.panelClass) {\r\n if (Array.isArray(this.matSelect.panelClass)) {\r\n (this.matSelect.panelClass as string[]).push(panelClass);\r\n } else if (typeof this.matSelect.panelClass === 'string') {\r\n this.matSelect.panelClass = [this.matSelect.panelClass, panelClass];\r\n } else if (typeof this.matSelect.panelClass === 'object') {\r\n (this.matSelect.panelClass as Record<string, boolean>)[panelClass] =\r\n true;\r\n }\r\n } else {\r\n this.matSelect.panelClass = panelClass;\r\n }\r\n\r\n if (this._matOption) {\r\n this._matOption.disabled = true;\r\n this._matOption\r\n ._getHostElement()\r\n .classList.add('contains-cmat-select-search');\r\n this._matOption._getHostElement().setAttribute('aria-hidden', 'true');\r\n } else {\r\n console.error(\r\n '<cmat-select-search> must be placed inside a <mat-option> element',\r\n );\r\n }\r\n\r\n this.matSelect.openedChange\r\n .pipe(delay(1), takeUntilDestroyed(this._destroyRef))\r\n .subscribe((opened): void => {\r\n if (opened) {\r\n this.updateInputWidth();\r\n if (!this.disableInitialFocus()) {\r\n this.focus();\r\n }\r\n } else {\r\n if (this.clearSearchInput()) {\r\n this.reset();\r\n }\r\n }\r\n });\r\n\r\n this.matSelect.openedChange\r\n .pipe(take(1))\r\n .pipe(takeUntilDestroyed(this._destroyRef))\r\n .subscribe((): void => {\r\n if (this.matSelect._keyManager) {\r\n this.matSelect._keyManager.change\r\n .pipe(takeUntilDestroyed(this._destroyRef))\r\n .subscribe((): void =>\r\n this._adjustScrollTopToFitActiveOptionIntoView(),\r\n );\r\n } else {\r\n console.warn('_keyManager was not initialized.');\r\n }\r\n\r\n this._options = this.matSelect.options;\r\n let previousFirstOption =\r\n this._options.toArray()[this._getOptionsLengthOffset()];\r\n\r\n this._options.changes\r\n .pipe(takeUntilDestroyed(this._destroyRef))\r\n .subscribe((): void => {\r\n setTimeout((): void => {\r\n if (this._options) {\r\n const options = this._options.toArray();\r\n\r\n const currentFirstOption =\r\n options[this._getOptionsLengthOffset()];\r\n\r\n const keyManager = this.matSelect._keyManager;\r\n if (keyManager && this.matSelect.panelOpen) {\r\n const firstOptionIsChanged = !this.matSelect.compareWith(\r\n previousFirstOption,\r\n currentFirstOption,\r\n );\r\n\r\n if (\r\n firstOptionIsChanged ||\r\n !keyManager.activeItem ||\r\n !options.find((option): boolean =>\r\n this.matSelect.compareWith(option, keyManager.activeItem),\r\n )\r\n ) {\r\n keyManager.setFirstItemActive();\r\n }\r\n setTimeout((): void => {\r\n this.updateInputWidth();\r\n });\r\n\r\n if (!this.disableScrollToActiveOnOptionsChanged()) {\r\n this._adjustScrollTopToFitActiveOptionIntoView();\r\n }\r\n }\r\n previousFirstOption = currentFirstOption;\r\n }\r\n });\r\n });\r\n });\r\n this._viewportRuler\r\n .change()\r\n .pipe(takeUntilDestroyed(this._destroyRef))\r\n .subscribe((): void => {\r\n if (this.matSelect.panelOpen) {\r\n this.updateInputWidth();\r\n }\r\n });\r\n\r\n this._initMultipleHandling();\r\n }\r\n\r\n emitSelectAllBooleanToParent(state: boolean): void {\r\n this.toggleAll.emit(state);\r\n }\r\n\r\n isToggleAllCheckboxVisible(): boolean {\r\n return this.matSelect.multiple && this.showToggleAllCheckbox();\r\n }\r\n\r\n handleKeydown(event: KeyboardEvent): void {\r\n if (\r\n event.key?.length === 1 ||\r\n (this.preventHomeEndKeyPropagation() &&\r\n (event.code === 'Home' || event.code === 'End'))\r\n ) {\r\n event.stopPropagation();\r\n }\r\n\r\n if (this.matSelect.multiple && event.key && event.code === 'Enter') {\r\n setTimeout((): void => this.focus());\r\n }\r\n if (\r\n this.enableClearOnEscapePressed() === true &&\r\n event.code === 'Escape' &&\r\n this.value\r\n ) {\r\n this.reset(true);\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n handleKeyup(event: KeyboardEvent): void {\r\n // 方向键切换时同步当前高亮项\r\n if (event.code === 'ArrowUp' || event.code === 'ArrowDown') {\r\n const ariaActiveDescendantId = this.matSelect._getAriaActiveDescendant();\r\n const index =\r\n this._options\r\n ?.toArray()\r\n .findIndex((item): boolean => item.id === ariaActiveDescendantId) ??\r\n -1;\r\n if (index >= 0) {\r\n this._unselectActiveDescendant();\r\n this._activeDescendant = this._options\r\n ?.toArray()[index]._getHostElement();\r\n this._activeDescendant?.setAttribute('aria-selected', 'true');\r\n if (ariaActiveDescendantId) {\r\n this.searchSelectInput().nativeElement.setAttribute(\r\n 'aria-activedescendant',\r\n ariaActiveDescendantId,\r\n );\r\n } else {\r\n this.searchSelectInput().nativeElement.removeAttribute(\r\n 'aria-activedescendant',\r\n );\r\n }\r\n }\r\n }\r\n }\r\n\r\n writeValue(value: string): void {\r\n this._lastExternalInputValue = value;\r\n this.formControl.setValue(value);\r\n }\r\n\r\n onBlur(): void {\r\n // 失焦时清理高亮并触发 touched\r\n this._unselectActiveDescendant();\r\n this.onTouched();\r\n }\r\n\r\n registerOnChange(fn: (value: string | null) => void): void {\r\n this.formControl.valueChanges\r\n .pipe(\r\n filter((value): boolean => value !== this._lastExternalInputValue),\r\n tap((): void => (this._lastExternalInputValue = undefined)),\r\n takeUntilDestroyed(this._destroyRef),\r\n )\r\n .subscribe(fn);\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n public focus(): void {\r\n // 聚焦并保持面板滚动位置\r\n if (!this.searchSelectInput() || !this.matSelect.panel) {\r\n return;\r\n }\r\n const panel = this.matSelect.panel.nativeElement as HTMLElement;\r\n const scrollTop = panel.scrollTop;\r\n\r\n this.searchSelectInput().nativeElement.focus();\r\n\r\n panel.scrollTop = scrollTop;\r\n }\r\n\r\n public reset(focus?: boolean): void {\r\n this.formControl.setValue('');\r\n if (focus) {\r\n this.focus();\r\n }\r\n }\r\n\r\n public updateInputWidth(): void {\r\n const innerEl = this.innerSelectSearch();\r\n if (!innerEl?.nativeElement) {\r\n return;\r\n }\r\n let currentElement: HTMLElement | null = innerEl.nativeElement;\r\n let panelElement: HTMLElement | null = null;\r\n while (currentElement?.parentElement) {\r\n currentElement = currentElement.parentElement;\r\n if (currentElement.classList.contains('mat-select-panel')) {\r\n panelElement = currentElement;\r\n break;\r\n }\r\n }\r\n if (panelElement) {\r\n innerEl.nativeElement.style.width =\r\n panelElement.clientWidth + 'px';\r\n }\r\n }\r\n\r\n private _getMatOptionHeight(): number {\r\n if (this.matSelect.options.length > 0) {\r\n return this.matSelect.options.first\r\n ._getHostElement()\r\n .getBoundingClientRect().height;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n private _getOptionsLengthOffset(): number {\r\n // 如果嵌套在 mat-option 内,则偏移一个选项\r\n if (this._matOption) {\r\n return 1;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n private _unselectActiveDescendant(): void {\r\n // 清理当前高亮项的 aria 状态\r\n this._activeDescendant?.removeAttribute('aria-selected');\r\n this.searchSelectInput().nativeElement.removeAttribute(\r\n 'aria-activedescendant',\r\n );\r\n }\r\n private _applyDefaultOptions(\r\n defaultOptions?: MatSelectSearchOptions | null,\r\n ): void {\r\n // 应用默认配置\r\n if (!defaultOptions) {\r\n return;\r\n }\r\n const options = defaultOptions;\r\n Object.assign(this, options);\r\n }\r\n private _initMultipleHandling(): void {\r\n if (!this.matSelect.ngControl) {\r\n if (this.matSelect.multiple) {\r\n console.error(\r\n 'the mat-select containing cmat-select-search must have a ngModel or formControl directive when multiple=true',\r\n );\r\n }\r\n return;\r\n }\r\n this._previousSelectedValues = this.matSelect.ngControl.value as unknown[];\r\n\r\n this.matSelect.ngControl.valueChanges\r\n ?.pipe(takeUntilDestroyed(this._destroyRef))\r\n .subscribe((values: unknown): void => {\r\n let restoreSelectedValues = false;\r\n let currentValues: unknown[] = Array.isArray(values) ? values : [];\r\n if (this.matSelect.multiple) {\r\n if (\r\n (this.alwaysRestoreSelectedOptionsMulti() ||\r\n this._valueSignal().length) &&\r\n this._previousSelectedValues &&\r\n Array.isArray(this._previousSelectedValues)\r\n ) {\r\n const optionValues = this.matSelect.options.map(\r\n (option): unknown => option.value,\r\n );\r\n this._previousSelectedValues.forEach((previousValue): void => {\r\n if (\r\n !currentValues.some((v: unknown): boolean =>\r\n this.matSelect.compareWith(v, previousValue),\r\n ) &&\r\n !optionValues.some((v): boolean =>\r\n this.matSelect.compareWith(v, previousValue),\r\n )\r\n ) {\r\n currentValues.push(previousValue);\r\n restoreSelectedValues = true;\r\n }\r\n });\r\n }\r\n }\r\n this._previousSelectedValues = currentValues;\r\n\r\n if (restoreSelectedValues) {\r\n this.matSelect._onChange(currentValues);\r\n }\r\n });\r\n }\r\n\r\n private _adjustScrollTopToFitActiveOptionIntoView(): void {\r\n // 滚动到当前高亮项附近\r\n if (this.matSelect.panel && this.matSelect.options.length > 0) {\r\n const matOptionHeight = this._getMatOptionHeight();\r\n const activeOptionIndex = this.matSelect._keyManager.activeItemIndex ?? 0;\r\n const labelCount = _countGroupLabelsBeforeOption(\r\n activeOptionIndex,\r\n this.matSelect.options,\r\n this.matSelect.optionGroups,\r\n );\r\n const indexOfOptionToFitIntoView =\r\n (this._matOption ? -1 : 0) + labelCount + activeOptionIndex;\r\n const currentScrollTop = (\r\n this.matSelect.panel.nativeElement as HTMLElement\r\n ).scrollTop;\r\n\r\n const innerEl = this.innerSelectSearch();\r\n const searchInputHeight = innerEl.nativeElement.offsetHeight;\r\n const amountOfVisibleOptions = Math.floor(\r\n (SELECT_PANEL_MAX_HEIGHT - searchInputHeight) / matOptionHeight,\r\n );\r\n\r\n const indexOfFirstVisibleOption =\r\n Math.round((currentScrollTop + searchInputHeight) / matOptionHeight) -\r\n 1;\r\n\r\n if (indexOfFirstVisibleOption >= indexOfOptionToFitIntoView) {\r\n (this.matSelect.panel.nativeElement as HTMLElement).scrollTop =\r\n indexOfOptionToFitIntoView * matOptionHeight;\r\n } else if (\r\n indexOfFirstVisibleOption + amountOfVisibleOptions <=\r\n indexOfOptionToFitIntoView\r\n ) {\r\n (this.matSelect.panel.nativeElement as HTMLElement).scrollTop =\r\n (indexOfOptionToFitIntoView + 1) * matOptionHeight -\r\n (SELECT_PANEL_MAX_HEIGHT - searchInputHeight);\r\n }\r\n }\r\n }\r\n}","<input matInput class=\"cmat-select-search-input cmat-select-search-hidden\" />\r\n\r\n<div\r\n #innerSelectSearch\r\n class=\"cmat-select-search-inner mat-typography mat-tab-header\"\r\n [ngClass]=\"{\r\n 'cmat-select-search-inner-multiple': matSelect.multiple,\r\n 'cmat-select-search-inner-toggle-all': isToggleAllCheckboxVisible(),\r\n }\"\r\n>\r\n @if (isToggleAllCheckboxVisible()) {\r\n <mat-checkbox\r\n class=\"cmat-select-search-toggle-all-checkbox -mr-4\"\r\n matTooltipClass=\"cmat-select-search-toggle-all-tooltip\"\r\n [color]=\"matFormField?.color\"\r\n [checked]=\"toggleAllCheckboxChecked()\"\r\n [indeterminate]=\"toggleAllCheckboxIndeterminate()\"\r\n [matTooltip]=\"toggleAllCheckboxTooltipMessage()\"\r\n [matTooltipPosition]=\"toggleAllCheckboxTooltipPosition()\"\r\n (change)=\"emitSelectAllBooleanToParent($event.checked)\"\r\n >\r\n </mat-checkbox>\r\n }\r\n <span matPrefix class=\"flex flex-col justify-center pl-2\">\r\n <mat-icon\r\n class=\"cmat-select-search-icon\"\r\n color=\"primary\"\r\n svgIcon=\"heroicons_outline:magnifying-glass\"\r\n ></mat-icon>\r\n </span>\r\n <input\r\n #searchSelectInput\r\n matInput\r\n class=\"cmat-select-search-input cmat-input-element\"\r\n autocomplete=\"off\"\r\n [type]=\"type()\"\r\n [formControl]=\"formControl\"\r\n [placeholder]=\"placeholderLabel()\"\r\n [attr.aria-label]=\"ariaLabel()\"\r\n (keydown)=\"handleKeydown($event)\"\r\n (keyup)=\"handleKeyup($event)\"\r\n (blur)=\"onBlur()\"\r\n />\r\n @if (searching()) {\r\n <mat-spinner class=\"cmat-select-search-spinner\" diameter=\"16\"></mat-spinner>\r\n }\r\n\r\n @if (!hideClearSearchButton() && value && !searching()) {\r\n <button\r\n type=\"button\"\r\n matIconButton\r\n aria-label=\"Clear\"\r\n class=\"cmat-select-search-clear\"\r\n (click)=\"reset(true)\"\r\n >\r\n @if (clearIcon()) {\r\n <ng-content select=\"[cmatSelectSearchClear]\"></ng-content>\r\n } @else {\r\n <mat-icon svgIcon=\"mat_outline:close\"></mat-icon>\r\n }\r\n </button>\r\n }\r\n\r\n <ng-content select=\".cmat-select-search-custom-header-content\"></ng-content>\r\n</div>\r\n\r\n@if (showNoEntriesFound()) {\r\n <div class=\"cmat-select-search-no-entries-found\">\r\n @if (noEntriesFound()) {\r\n <ng-content select=\"[cmatSelectNoEntriesFound]\"></ng-content>\r\n } @else {\r\n {{ noEntriesFoundLabel() }}\r\n }\r\n </div>\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAIO,MAAM,0BAA0B,GAAG;IACxC,WAAW;IACX,kBAAkB;IAClB,qBAAqB;IACrB,uCAAuC;IACvC,4BAA4B;IAC5B,uBAAuB;IACvB,qBAAqB;IACrB,kBAAkB;IAClB,8BAA8B;IAC9B,WAAW;;MAKA,gCAAgC,GAAG,IAAI,cAAc,CAAyB,kCAAkC;;MCdhH,iCAAiC,CAAA;8GAAjC,iCAAiC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjC,iCAAiC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAjC,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAH7C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE;AACb,iBAAA;;;MCCY,8BAA8B,CAAA;8GAA9B,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA9B,8BAA8B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA9B,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAH1C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE;AACb,iBAAA;;;AC6CD,MAAM,uBAAuB,GAAG,GAAG;MA8BtB,yBAAyB,CAAA;AA0FpC,IAAA,WAAA,GAAA;QAzFS,IAAA,CAAA,SAAS,GAAG,MAAM,EAAW;AAE7B,QAAA,IAAA,CAAA,iBAAiB,GAAG,SAAS,CAAC,QAAQ,CAA+B,mBAAmB,CAAC;AAEzF,QAAA,IAAA,CAAA,iBAAiB,GAAG,SAAS,CAAC,QAAQ,CAA0B,mBAAmB,CAAC;QAEpF,IAAA,CAAA,SAAS,GAAG,YAAY,CAAC,8BAA8B;sFAAC;QACxD,IAAA,CAAA,cAAc,GAAG,YAAY,CAAC,iCAAiC;2FAAC;AAEzE,QAAA,IAAA,CAAA,WAAW,GAA+B,IAAI,WAAW,CAAgB,EAAE,CAAC;QAEnE,IAAA,CAAA,gBAAgB,GAAG,KAAK,CAAS,IAAI;6FAAC;QAEtC,IAAA,CAAA,IAAI,GAAG,KAAK,CAAS,MAAM;iFAAC;QAE5B,IAAA,CAAA,mBAAmB,GAAG,KAAK,CAAS,KAAK;gGAAC;QAE1C,IAAA,CAAA,gBAAgB,GAAG,KAAK,CAAU,IAAI;6FAAC;QAEvC,IAAA,CAAA,gBAAgB,GAAG,KAAK,CAAC,IAAI;6FAAC;QAE9B,IAAA,CAAA,SAAS,GAAG,KAAK,CAAU,KAAK;sFAAC;QAEjC,IAAA,CAAA,mBAAmB,GAAG,KAAK,CAAU,KAAK;gGAAC;QAE3C,IAAA,CAAA,0BAA0B,GAAG,KAAK,CAAC,KAAK;uGAAC;QAEzC,IAAA,CAAA,4BAA4B,GAAG,KAAK,CAAU,KAAK;yGAAC;QAEpD,IAAA,CAAA,qCAAqC,GAAG,KAAK,CAAU,KAAK;kHAAC;QAE7D,IAAA,CAAA,SAAS,GAAG,KAAK,CAAS,MAAM;sFAAC;QAEjC,IAAA,CAAA,qBAAqB,GAAG,KAAK,CAAU,KAAK;kGAAC;QAE7C,IAAA,CAAA,wBAAwB,GAAG,KAAK,CAAU,KAAK;qGAAC;QAEhD,IAAA,CAAA,8BAA8B,GAAG,KAAK,CAAU,KAAK;2GAAC;QAEtD,IAAA,CAAA,+BAA+B,GAAG,KAAK,CAAS,EAAE;4GAAC;QAEnD,IAAA,CAAA,gCAAgC,GAAG,KAAK,CAE/C,OAAO;6GAAC;QAED,IAAA,CAAA,qBAAqB,GAAG,KAAK,CAAU,KAAK;kGAAC;QAE7C,IAAA,CAAA,iCAAiC,GAAG,KAAK,CAAU,KAAK;8GAAC;AAElE;;;AAGG;QACM,IAAA,CAAA,YAAY,GAAG,KAAK,CAAS,GAAG;yFAAC;AAE1C;;;;AAIG;QACM,IAAA,CAAA,YAAY,GAAG,KAAK,CAAgB,IAAI;yFAAC;AAQxC,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAY,SAAS,CAAC;AACxC,QAAA,IAAA,CAAA,YAAY,GACpB,MAAM,CAAsB,YAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI;AAC/D,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC;AACtC,QAAA,IAAA,CAAA,UAAU,GAChB,MAAM,CAAmB,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI;QACzD,IAAA,CAAA,eAAe,GAAG,MAAM,CAC9B,gCAAgC,EAChC,EAAE,QAAQ,EAAE,IAAI,EAAE,CACnB;AACgB,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;QAEzC,IAAA,CAAA,SAAS,GAAG,MAAM,CAA8B,IAAI;sFAAC;QAGrD,IAAA,CAAA,uBAAuB,GAAc,EAAE;QAI9B,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,EAAE;yFAAC;QA6D1C,IAAA,CAAA,SAAS,GAAe,MAAK;;AAE7B,QAAA,CAAC;AA5DC,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,eAAe,CAAC;AAE/C,QAAA,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC,MAAK;;AAEtC,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,EAAE;AACzC,YAAA,MAAM,YAAY,GAAG,aAAa,KAAK,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC;AAE5E,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,uBAAuB,EAAE;YAC7C,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE;AAE5C,YAAA,OAAO,CAAC,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,cAAc,IAAI,YAAY,IAAI,MAAM;QACjF,CAAC;+FAAC;;AAGF,QAAA,IAAI,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CACpD,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAClC;;AAGD,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE;AAC3B,YAAA,aAAa,GAAG,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACvE;QAEA;AACG,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;AACzC,aAAA,SAAS,CAAC,CAAC,KAAK,KAAU;YACzB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;AACpC,QAAA,CAAC,CAAC;QAEJ,MAAM,CAAC,MAAW;AAChB,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,EAAE;AACtC,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE;gBAC5C,IAAI,IAAI,EAAE;AACR,oBAAA,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,qCAAqC,CAAC;gBACzD;qBAAO;AACL,oBAAA,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,qCAAqC,CAAC;gBAC5D;YACF;AACF,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,IACI,iBAAiB,GAAA;AACnB,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU;IAC1B;AAEA,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE;IAC5B;AAEA,IAAA,IAAW,QAAQ,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE;IACzB;IACA,IAAW,QAAQ,CAAC,QAA8B,EAAA;AAChD,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;IAC9B;IAMA,QAAQ,GAAA;QACN,MAAM,UAAU,GAAG,0BAA0B;AAC7C,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE;YAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE;gBAC3C,IAAI,CAAC,SAAS,CAAC,UAAuB,CAAC,IAAI,CAAC,UAAU,CAAC;YAC1D;iBAAO,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,KAAK,QAAQ,EAAE;AACxD,gBAAA,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,UAAU,CAAC;YACrE;iBAAO,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,KAAK,QAAQ,EAAE;AACvD,gBAAA,IAAI,CAAC,SAAS,CAAC,UAAsC,CAAC,UAAU,CAAC;AAChE,oBAAA,IAAI;YACR;QACF;aAAO;AACL,YAAA,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU;QACxC;AAEA,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI;AAC/B,YAAA,IAAI,CAAC;AACF,iBAAA,eAAe;AACf,iBAAA,SAAS,CAAC,GAAG,CAAC,6BAA6B,CAAC;AAC/C,YAAA,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC;QACvE;aAAO;AACL,YAAA,OAAO,CAAC,KAAK,CACX,mEAAmE,CACpE;QACH;QAEA,IAAI,CAAC,SAAS,CAAC;AACZ,aAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;AACnD,aAAA,SAAS,CAAC,CAAC,MAAM,KAAU;YAC1B,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,gBAAgB,EAAE;AACvB,gBAAA,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE;oBAC/B,IAAI,CAAC,KAAK,EAAE;gBACd;YACF;iBAAO;AACL,gBAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;oBAC3B,IAAI,CAAC,KAAK,EAAE;gBACd;YACF;AACF,QAAA,CAAC,CAAC;QAEJ,IAAI,CAAC,SAAS,CAAC;AACZ,aAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACZ,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;aACzC,SAAS,CAAC,MAAW;AACpB,YAAA,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;AAC9B,gBAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;AACxB,qBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;qBACzC,SAAS,CAAC,MACT,IAAI,CAAC,yCAAyC,EAAE,CACjD;YACL;iBAAO;AACL,gBAAA,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC;YAClD;YAEA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO;AACtC,YAAA,IAAI,mBAAmB,GACrB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAEzD,IAAI,CAAC,QAAQ,CAAC;AACX,iBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;iBACzC,SAAS,CAAC,MAAW;gBACpB,UAAU,CAAC,MAAW;AACpB,oBAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;wBACjB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;wBAEvC,MAAM,kBAAkB,GACtB,OAAO,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC;AAEzC,wBAAA,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW;wBAC7C,IAAI,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;AAC1C,4BAAA,MAAM,oBAAoB,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CACtD,mBAAmB,EACnB,kBAAkB,CACnB;AAED,4BAAA,IACE,oBAAoB;gCACpB,CAAC,UAAU,CAAC,UAAU;gCACtB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,KACnB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,UAAU,CAAC,CAC1D,EACD;gCACA,UAAU,CAAC,kBAAkB,EAAE;4BACjC;4BACA,UAAU,CAAC,MAAW;gCACpB,IAAI,CAAC,gBAAgB,EAAE;AACzB,4BAAA,CAAC,CAAC;AAEF,4BAAA,IAAI,CAAC,IAAI,CAAC,qCAAqC,EAAE,EAAE;gCACjD,IAAI,CAAC,yCAAyC,EAAE;4BAClD;wBACF;wBACA,mBAAmB,GAAG,kBAAkB;oBAC1C;AACF,gBAAA,CAAC,CAAC;AACJ,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;AACJ,QAAA,IAAI,CAAC;AACF,aAAA,MAAM;AACN,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;aACzC,SAAS,CAAC,MAAW;AACpB,YAAA,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;gBAC5B,IAAI,CAAC,gBAAgB,EAAE;YACzB;AACF,QAAA,CAAC,CAAC;QAEJ,IAAI,CAAC,qBAAqB,EAAE;IAC9B;AAEA,IAAA,4BAA4B,CAAC,KAAc,EAAA;AACzC,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;IAC5B;IAEA,0BAA0B,GAAA;QACxB,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,qBAAqB,EAAE;IAChE;AAEA,IAAA,aAAa,CAAC,KAAoB,EAAA;AAChC,QAAA,IACE,KAAK,CAAC,GAAG,EAAE,MAAM,KAAK,CAAC;aACtB,IAAI,CAAC,4BAA4B,EAAE;AAClC,iBAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,EAClD;YACA,KAAK,CAAC,eAAe,EAAE;QACzB;AAEA,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;YAClE,UAAU,CAAC,MAAY,IAAI,CAAC,KAAK,EAAE,CAAC;QACtC;AACA,QAAA,IACE,IAAI,CAAC,0BAA0B,EAAE,KAAK,IAAI;YAC1C,KAAK,CAAC,IAAI,KAAK,QAAQ;YACvB,IAAI,CAAC,KAAK,EACV;AACA,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAChB,KAAK,CAAC,eAAe,EAAE;QACzB;IACF;AAEA,IAAA,WAAW,CAAC,KAAoB,EAAA;;AAE9B,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE;YAC1D,MAAM,sBAAsB,GAAG,IAAI,CAAC,SAAS,CAAC,wBAAwB,EAAE;AACxE,YAAA,MAAM,KAAK,GACT,IAAI,CAAC;AACH,kBAAE,OAAO;iBACR,SAAS,CAAC,CAAC,IAAI,KAAc,IAAI,CAAC,EAAE,KAAK,sBAAsB,CAAC;AACnE,gBAAA,CAAC,CAAC;AACJ,YAAA,IAAI,KAAK,IAAI,CAAC,EAAE;gBACd,IAAI,CAAC,yBAAyB,EAAE;AAChC,gBAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;sBAC1B,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,eAAe,EAAE;gBACtC,IAAI,CAAC,iBAAiB,EAAE,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC;gBAC7D,IAAI,sBAAsB,EAAE;AAC1B,oBAAA,IAAI,CAAC,iBAAiB,EAAE,CAAC,aAAa,CAAC,YAAY,CACjD,uBAAuB,EACvB,sBAAsB,CACvB;gBACH;qBAAO;oBACL,IAAI,CAAC,iBAAiB,EAAE,CAAC,aAAa,CAAC,eAAe,CACpD,uBAAuB,CACxB;gBACH;YACF;QACF;IACF;AAEA,IAAA,UAAU,CAAC,KAAa,EAAA;AACtB,QAAA,IAAI,CAAC,uBAAuB,GAAG,KAAK;AACpC,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC;IAClC;IAEA,MAAM,GAAA;;QAEJ,IAAI,CAAC,yBAAyB,EAAE;QAChC,IAAI,CAAC,SAAS,EAAE;IAClB;AAEA,IAAA,gBAAgB,CAAC,EAAkC,EAAA;QACjD,IAAI,CAAC,WAAW,CAAC;AACd,aAAA,IAAI,CACH,MAAM,CAAC,CAAC,KAAK,KAAc,KAAK,KAAK,IAAI,CAAC,uBAAuB,CAAC,EAClE,GAAG,CAAC,OAAa,IAAI,CAAC,uBAAuB,GAAG,SAAS,CAAC,CAAC,EAC3D,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;aAErC,SAAS,CAAC,EAAE,CAAC;IAClB;AAEA,IAAA,iBAAiB,CAAC,EAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACrB;IAEO,KAAK,GAAA;;AAEV,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;YACtD;QACF;QACA,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,aAA4B;AAC/D,QAAA,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS;QAEjC,IAAI,CAAC,iBAAiB,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE;AAE9C,QAAA,KAAK,CAAC,SAAS,GAAG,SAAS;IAC7B;AAEO,IAAA,KAAK,CAAC,KAAe,EAAA;AAC1B,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,KAAK,EAAE;QACd;IACF;IAEO,gBAAgB,GAAA;AACrB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE;AACxC,QAAA,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE;YAC3B;QACF;AACA,QAAA,IAAI,cAAc,GAAuB,OAAO,CAAC,aAAa;QAC9D,IAAI,YAAY,GAAuB,IAAI;AAC3C,QAAA,OAAO,cAAc,EAAE,aAAa,EAAE;AACpC,YAAA,cAAc,GAAG,cAAc,CAAC,aAAa;YAC7C,IAAI,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE;gBACzD,YAAY,GAAG,cAAc;gBAC7B;YACF;QACF;QACA,IAAI,YAAY,EAAE;AAChB,YAAA,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK;AAC/B,gBAAA,YAAY,CAAC,WAAW,GAAG,IAAI;QACnC;IACF;IAEQ,mBAAmB,GAAA;QACzB,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AACrC,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;AAC3B,iBAAA,eAAe;iBACf,qBAAqB,EAAE,CAAC,MAAM;QACnC;AAEA,QAAA,OAAO,CAAC;IACV;IAEQ,uBAAuB,GAAA;;AAE7B,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,OAAO,CAAC;QACV;aAAO;AACL,YAAA,OAAO,CAAC;QACV;IACF;IAEQ,yBAAyB,GAAA;;AAE/B,QAAA,IAAI,CAAC,iBAAiB,EAAE,eAAe,CAAC,eAAe,CAAC;QACxD,IAAI,CAAC,iBAAiB,EAAE,CAAC,aAAa,CAAC,eAAe,CACpD,uBAAuB,CACxB;IACH;AACQ,IAAA,oBAAoB,CAC1B,cAA8C,EAAA;;QAG9C,IAAI,CAAC,cAAc,EAAE;YACnB;QACF;QACA,MAAM,OAAO,GAAG,cAAc;AAC9B,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC;IAC9B;IACQ,qBAAqB,GAAA;AAC3B,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;AAC7B,YAAA,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;AAC3B,gBAAA,OAAO,CAAC,KAAK,CACX,8GAA8G,CAC/G;YACH;YACA;QACF;QACA,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAkB;AAE1E,QAAA,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;cACrB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;AAC1C,aAAA,SAAS,CAAC,CAAC,MAAe,KAAU;YACnC,IAAI,qBAAqB,GAAG,KAAK;AACjC,YAAA,IAAI,aAAa,GAAc,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,EAAE;AAClE,YAAA,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;AAC3B,gBAAA,IACE,CAAC,IAAI,CAAC,iCAAiC,EAAE;AACvC,oBAAA,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM;AAC5B,oBAAA,IAAI,CAAC,uBAAuB;oBAC5B,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,EAC3C;AACA,oBAAA,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAC7C,CAAC,MAAM,KAAc,MAAM,CAAC,KAAK,CAClC;oBACD,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,aAAa,KAAU;wBAC3D,IACE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAU,KAC7B,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,aAAa,CAAC,CAC7C;4BACD,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,KACnB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,aAAa,CAAC,CAC7C,EACD;AACA,4BAAA,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC;4BACjC,qBAAqB,GAAG,IAAI;wBAC9B;AACF,oBAAA,CAAC,CAAC;gBACJ;YACF;AACA,YAAA,IAAI,CAAC,uBAAuB,GAAG,aAAa;YAE5C,IAAI,qBAAqB,EAAE;AACzB,gBAAA,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC;YACzC;AACF,QAAA,CAAC,CAAC;IACN;IAEQ,yCAAyC,GAAA;;AAE/C,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AAC7D,YAAA,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,EAAE;YAClD,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe,IAAI,CAAC;AACzE,YAAA,MAAM,UAAU,GAAG,6BAA6B,CAC9C,iBAAiB,EACjB,IAAI,CAAC,SAAS,CAAC,OAAO,EACtB,IAAI,CAAC,SAAS,CAAC,YAAY,CAC5B;YACD,MAAM,0BAA0B,GAC9B,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,UAAU,GAAG,iBAAiB;YAC7D,MAAM,gBAAgB,GACpB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,aACtB,CAAC,SAAS;AAEX,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE;AACxC,YAAA,MAAM,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC,YAAY;AAC5D,YAAA,MAAM,sBAAsB,GAAG,IAAI,CAAC,KAAK,CACvC,CAAC,uBAAuB,GAAG,iBAAiB,IAAI,eAAe,CAChE;AAED,YAAA,MAAM,yBAAyB,GAC7B,IAAI,CAAC,KAAK,CAAC,CAAC,gBAAgB,GAAG,iBAAiB,IAAI,eAAe,CAAC;AACpE,gBAAA,CAAC;AAEH,YAAA,IAAI,yBAAyB,IAAI,0BAA0B,EAAE;AAC1D,gBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,aAA6B,CAAC,SAAS;oBAC3D,0BAA0B,GAAG,eAAe;YAChD;iBAAO,IACL,yBAAyB,GAAG,sBAAsB;AAClD,gBAAA,0BAA0B,EAC1B;AACC,gBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,aAA6B,CAAC,SAAS;AAC3D,oBAAA,CAAC,0BAA0B,GAAG,CAAC,IAAI,eAAe;AAClD,yBAAC,uBAAuB,GAAG,iBAAiB,CAAC;YACjD;QACF;IACF;8GA9fW,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,mBAAA,EAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,mBAAA,EAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,0BAAA,EAAA,EAAA,iBAAA,EAAA,4BAAA,EAAA,UAAA,EAAA,4BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,4BAAA,EAAA,EAAA,iBAAA,EAAA,8BAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,qCAAA,EAAA,EAAA,iBAAA,EAAA,uCAAA,EAAA,UAAA,EAAA,uCAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,qBAAA,EAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,wBAAA,EAAA,EAAA,iBAAA,EAAA,0BAAA,EAAA,UAAA,EAAA,0BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,8BAAA,EAAA,EAAA,iBAAA,EAAA,gCAAA,EAAA,UAAA,EAAA,gCAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,+BAAA,EAAA,EAAA,iBAAA,EAAA,iCAAA,EAAA,UAAA,EAAA,iCAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gCAAA,EAAA,EAAA,iBAAA,EAAA,kCAAA,EAAA,UAAA,EAAA,kCAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,qBAAA,EAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iCAAA,EAAA,EAAA,iBAAA,EAAA,mCAAA,EAAA,UAAA,EAAA,mCAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,4CAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,SAAA,EAxBzB;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,yBAAyB,CAAC;AACxD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;SACF,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAyBiC,8BAA8B,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACzB,iCAAiC,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECvF1E,2/EA2EA,i0EDTI,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACd,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACP,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,WAAA,EAAA,IAAA,EAAA,UAAA,EAAA,eAAA,EAAA,MAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACjB,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAChB,kBAAkB,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAClB,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,WAAW,gfACX,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACnB,wBAAwB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACxB,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sFAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAIN,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBA5BrC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAAA,SAAA,EAGnB;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,+BAA+B,CAAC;AACxD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;qBACF,EAAA,aAAA,EACc,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EACrC,kBAAkB,EAAA,OAAA,EACnB;wBACP,cAAc;wBACd,OAAO;wBACP,iBAAiB;wBACjB,gBAAgB;wBAChB,kBAAkB;wBAClB,aAAa;wBACb,WAAW;wBACX,mBAAmB;wBACnB,wBAAwB;wBACxB,eAAe;wBACf,SAAS;AACV,qBAAA,EAAA,QAAA,EAAA,2/EAAA,EAAA,MAAA,EAAA,CAAA,0wEAAA,CAAA,EAAA;AAK6E,SAAA,CAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAAA,mBAAmB,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAExB,mBAAmB,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAE1D,8BAA8B,gGACzB,iCAAiC,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,0BAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,4BAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,4BAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,8BAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,qCAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,uCAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,wBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,0BAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,8BAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,gCAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,+BAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,iCAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,gCAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,kCAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,iCAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,mCAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,cAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,cAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,CAAA;sBA6HvE,WAAW;uBAAC,4CAA4C;;;AEpN3D;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"cmat-components-select-search.mjs","sources":["../../../projects/cmat/components/select-search/default-options.ts","../../../projects/cmat/components/select-search/select-no-entries-found.directive.ts","../../../projects/cmat/components/select-search/select-search-clear.directive.ts","../../../projects/cmat/components/select-search/select-search.component.ts","../../../projects/cmat/components/select-search/select-search.component.html","../../../projects/cmat/components/select-search/cmat-components-select-search.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\nimport { CmatSelectSearchComponent } from './select-search.component';\r\n\r\n\r\nexport const configurableDefaultOptions = [\r\n 'ariaLabel',\r\n 'clearSearchInput',\r\n 'disableInitialFocus',\r\n 'disableScrollToActiveOnOptionsChanged',\r\n 'enableClearOnEscapePressed',\r\n 'hideClearSearchButton',\r\n 'noEntriesFoundLabel',\r\n 'placeholderLabel',\r\n 'preventHomeEndKeyPropagation',\r\n 'searching',\r\n] as const;\r\n\r\nexport type ConfigurableDefaultOptions = typeof configurableDefaultOptions[number];\r\n\r\nexport const MAT_SELECTSEARCH_DEFAULT_OPTIONS = new InjectionToken<MatSelectSearchOptions>('mat-selectsearch-default-options');\r\n\r\n\r\nexport type MatSelectSearchOptions = Readonly<Partial<Pick<CmatSelectSearchComponent, ConfigurableDefaultOptions>>>;\r\n","import { Directive } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[cmatSelectNoEntriesFound]'\r\n})\r\nexport class CmatSelectNoEntriesFoundDirective { }\r\n","import { Directive } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[cmatSelectSearchClear]'\r\n})\r\nexport class CmatSelectSearchClearDirective { }\r\n","import { ViewportRuler } from '@angular/cdk/scrolling';\r\nimport { NgClass } from '@angular/common';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n contentChild,\r\n DestroyRef,\r\n ElementRef,\r\n forwardRef,\r\n HostBinding,\r\n OnInit,\r\n QueryList,\r\n viewChild,\r\n ViewEncapsulation,\r\n inject,\r\n signal,\r\n input,\r\n output,\r\n computed,\r\n effect,\r\n} from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport {\r\n ControlValueAccessor,\r\n FormControl,\r\n NG_VALUE_ACCESSOR,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n} from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport {\r\n MatOption,\r\n _countGroupLabelsBeforeOption,\r\n} from '@angular/material/core';\r\nimport { MatFormField, MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatSelect } from '@angular/material/select';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { debounceTime, delay, filter, startWith, take, tap } from 'rxjs/operators';\r\nimport {\r\n MatSelectSearchOptions,\r\n MAT_SELECTSEARCH_DEFAULT_OPTIONS,\r\n} from './default-options';\r\nimport { CmatSelectNoEntriesFoundDirective } from './select-no-entries-found.directive';\r\nimport { CmatSelectSearchClearDirective } from './select-search-clear.directive';\r\n\r\nconst SELECT_PANEL_MAX_HEIGHT = 256;\r\n\r\n@Component({\r\n selector: 'cmat-select-search',\r\n templateUrl: './select-search.component.html',\r\n styleUrls: ['./select-search.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => CmatSelectSearchComponent),\r\n multi: true,\r\n },\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatSelectSearch',\r\n imports: [\r\n MatInputModule,\r\n NgClass,\r\n MatCheckboxModule,\r\n MatTooltipModule,\r\n MatFormFieldModule,\r\n MatIconModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatProgressSpinnerModule,\r\n MatButtonModule\r\n ],\r\n})\r\nexport class CmatSelectSearchComponent implements OnInit, ControlValueAccessor {\r\n readonly toggleAll = output<boolean>();\r\n\r\n readonly searchSelectInput = viewChild.required<ElementRef<HTMLInputElement>>('searchSelectInput');\r\n\r\n readonly innerSelectSearch = viewChild.required<ElementRef<HTMLElement>>('innerSelectSearch');\r\n\r\n readonly clearIcon = contentChild(CmatSelectSearchClearDirective);\r\n readonly noEntriesFound = contentChild(CmatSelectNoEntriesFoundDirective);\r\n\r\n formControl: FormControl<string | null> = new FormControl<string | null>('');\r\n\r\n readonly placeholderLabel = input<string>('搜索');\r\n\r\n readonly type = input<string>('text');\r\n\r\n readonly noEntriesFoundLabel = input<string>('无结果');\r\n\r\n readonly showNoFoundLabel = input<boolean>(true);\r\n\r\n readonly clearSearchInput = input(true);\r\n\r\n readonly searching = input<boolean>(false);\r\n\r\n readonly disableInitialFocus = input<boolean>(false);\r\n\r\n readonly enableClearOnEscapePressed = input(false);\r\n\r\n readonly preventHomeEndKeyPropagation = input<boolean>(false);\r\n\r\n readonly disableScrollToActiveOnOptionsChanged = input<boolean>(false);\r\n\r\n readonly ariaLabel = input<string>('下拉搜索');\r\n\r\n readonly showToggleAllCheckbox = input<boolean>(false);\r\n\r\n readonly toggleAllCheckboxChecked = input<boolean>(false);\r\n\r\n readonly toggleAllCheckboxIndeterminate = input<boolean>(false);\r\n\r\n readonly toggleAllCheckboxTooltipMessage = input<string>('');\r\n\r\n readonly toggleAllCheckboxTooltipPosition = input<\r\n 'left' | 'right' | 'above' | 'below' | 'before' | 'after'\r\n >('below');\r\n\r\n readonly hideClearSearchButton = input<boolean>(false);\r\n\r\n readonly alwaysRestoreSelectedOptionsMulti = input<boolean>(false);\r\n\r\n /**\r\n * 输入框防抖时间(毫秒),默认 300ms\r\n * 设置为 0 可禁用防抖\r\n */\r\n readonly debounceTime = input<number>(300);\r\n\r\n /**\r\n * 可选条目数量(由父组件提供)\r\n * 用于判断是否显示\"无结果\"提示\r\n * 如果未提供,则尝试从 matSelect.options.length 自动获取\r\n */\r\n readonly optionsCount = input<number | null>(null);\r\n\r\n /**\r\n * 自动计算是否显示\"无结果\"提示\r\n * 基于 optionsCount 或 matSelect.options.length 判断\r\n */\r\n readonly showNoEntriesFound: () => boolean;\r\n\r\n protected matSelect = inject<MatSelect>(MatSelect);\r\n protected matFormField =\r\n inject<MatFormField | null>(MatFormField, { optional: true }) ?? null;\r\n private _viewportRuler = inject(ViewportRuler);\r\n private _matOption =\r\n inject<MatOption | null>(MatOption, { optional: true }) ?? null;\r\n private _defaultOptions = inject<MatSelectSearchOptions>(\r\n MAT_SELECTSEARCH_DEFAULT_OPTIONS,\r\n { optional: true },\r\n );\r\n private readonly _destroyRef = inject(DestroyRef);\r\n\r\n private _options$ = signal<QueryList<MatOption> | null>(null);\r\n private _lastExternalInputValue?: string;\r\n\r\n private _previousSelectedValues: unknown[] = [];\r\n\r\n private _activeDescendant?: HTMLElement;\r\n\r\n private readonly _valueSignal = signal('');\r\n\r\n constructor() {\r\n this._applyDefaultOptions(this._defaultOptions);\r\n\r\n this.showNoEntriesFound = computed(() => {\r\n // 优先使用父组件传递的 optionsCount(适用于 mat-table 等特殊情况)\r\n const providedCount = this.optionsCount();\r\n const optionsCount = providedCount ?? (this.matSelect?.options?.length ?? 0);\r\n \r\n const offset = this._getOptionsLengthOffset(); \r\n const hasSearchValue = !!this._valueSignal();\r\n \r\n return !!this.noEntriesFoundLabel() && hasSearchValue && optionsCount <= offset;\r\n });\r\n\r\n // 根据 debounceTime 动态构建 observable\r\n let valueChanges$ = this.formControl.valueChanges.pipe(\r\n startWith(this.formControl.value),\r\n );\r\n\r\n // 如果 debounceTime > 0,添加防抖\r\n if (this.debounceTime() > 0) {\r\n valueChanges$ = valueChanges$.pipe(debounceTime(this.debounceTime()));\r\n }\r\n\r\n valueChanges$\r\n .pipe(takeUntilDestroyed(this._destroyRef))\r\n .subscribe((value): void => {\r\n this._valueSignal.set(value ?? '');\r\n });\r\n\r\n effect((): void => {\r\n const show = this.showNoEntriesFound();\r\n if (this._matOption) {\r\n const el = this._matOption._getHostElement();\r\n if (show) {\r\n el.classList.add('cmat-select-search-no-entries-found');\r\n } else {\r\n el.classList.remove('cmat-select-search-no-entries-found');\r\n }\r\n }\r\n });\r\n }\r\n\r\n @HostBinding('class.cmat-select-search-inside-mat-option')\r\n get isInsideMatOption(): boolean {\r\n return !!this._matOption;\r\n }\r\n\r\n get value(): string {\r\n return this._valueSignal();\r\n }\r\n\r\n public get _options(): QueryList<MatOption> | null {\r\n return this._options$();\r\n }\r\n public set _options(_options: QueryList<MatOption>) {\r\n this._options$.set(_options);\r\n }\r\n\r\n onTouched: () => void = () => {\r\n /* empty */\r\n };\r\n\r\n ngOnInit(): void {\r\n const panelClass = 'cmat-select-search-panel';\r\n if (this.matSelect.panelClass) {\r\n if (Array.isArray(this.matSelect.panelClass)) {\r\n (this.matSelect.panelClass as string[]).push(panelClass);\r\n } else if (typeof this.matSelect.panelClass === 'string') {\r\n this.matSelect.panelClass = [this.matSelect.panelClass, panelClass];\r\n } else if (typeof this.matSelect.panelClass === 'object') {\r\n (this.matSelect.panelClass as Record<string, boolean>)[panelClass] =\r\n true;\r\n }\r\n } else {\r\n this.matSelect.panelClass = panelClass;\r\n }\r\n\r\n if (this._matOption) {\r\n this._matOption.disabled = true;\r\n this._matOption\r\n ._getHostElement()\r\n .classList.add('contains-cmat-select-search');\r\n this._matOption._getHostElement().setAttribute('aria-hidden', 'true');\r\n } else {\r\n console.error(\r\n '<cmat-select-search> must be placed inside a <mat-option> element',\r\n );\r\n }\r\n\r\n this.matSelect.openedChange\r\n .pipe(delay(1), takeUntilDestroyed(this._destroyRef))\r\n .subscribe((opened): void => {\r\n if (opened) {\r\n this.updateInputWidth();\r\n if (!this.disableInitialFocus()) {\r\n this.focus();\r\n }\r\n } else {\r\n if (this.clearSearchInput()) {\r\n this.reset();\r\n }\r\n }\r\n });\r\n\r\n this.matSelect.openedChange\r\n .pipe(take(1))\r\n .pipe(takeUntilDestroyed(this._destroyRef))\r\n .subscribe((): void => {\r\n if (this.matSelect._keyManager) {\r\n this.matSelect._keyManager.change\r\n .pipe(takeUntilDestroyed(this._destroyRef))\r\n .subscribe((): void =>\r\n this._adjustScrollTopToFitActiveOptionIntoView(),\r\n );\r\n } else {\r\n console.warn('_keyManager was not initialized.');\r\n }\r\n\r\n this._options = this.matSelect.options;\r\n let previousFirstOption =\r\n this._options.toArray()[this._getOptionsLengthOffset()];\r\n\r\n this._options.changes\r\n .pipe(takeUntilDestroyed(this._destroyRef))\r\n .subscribe((): void => {\r\n setTimeout((): void => {\r\n if (this._options) {\r\n const options = this._options.toArray();\r\n\r\n const currentFirstOption =\r\n options[this._getOptionsLengthOffset()];\r\n\r\n const keyManager = this.matSelect._keyManager;\r\n if (keyManager && this.matSelect.panelOpen) {\r\n const firstOptionIsChanged = !this.matSelect.compareWith(\r\n previousFirstOption,\r\n currentFirstOption,\r\n );\r\n\r\n if (\r\n firstOptionIsChanged ||\r\n !keyManager.activeItem ||\r\n !options.find((option): boolean =>\r\n this.matSelect.compareWith(option, keyManager.activeItem),\r\n )\r\n ) {\r\n keyManager.setFirstItemActive();\r\n }\r\n setTimeout((): void => {\r\n this.updateInputWidth();\r\n });\r\n\r\n if (!this.disableScrollToActiveOnOptionsChanged()) {\r\n this._adjustScrollTopToFitActiveOptionIntoView();\r\n }\r\n }\r\n previousFirstOption = currentFirstOption;\r\n }\r\n });\r\n });\r\n });\r\n this._viewportRuler\r\n .change()\r\n .pipe(takeUntilDestroyed(this._destroyRef))\r\n .subscribe((): void => {\r\n if (this.matSelect.panelOpen) {\r\n this.updateInputWidth();\r\n }\r\n });\r\n\r\n this._initMultipleHandling();\r\n }\r\n\r\n emitSelectAllBooleanToParent(state: boolean): void {\r\n this.toggleAll.emit(state);\r\n }\r\n\r\n isToggleAllCheckboxVisible(): boolean {\r\n return this.matSelect.multiple && this.showToggleAllCheckbox();\r\n }\r\n\r\n handleKeydown(event: KeyboardEvent): void {\r\n if (\r\n event.key?.length === 1 ||\r\n (this.preventHomeEndKeyPropagation() &&\r\n (event.code === 'Home' || event.code === 'End'))\r\n ) {\r\n event.stopPropagation();\r\n }\r\n\r\n if (this.matSelect.multiple && event.key && event.code === 'Enter') {\r\n setTimeout((): void => this.focus());\r\n }\r\n if (\r\n this.enableClearOnEscapePressed() === true &&\r\n event.code === 'Escape' &&\r\n this.value\r\n ) {\r\n this.reset(true);\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n handleKeyup(event: KeyboardEvent): void {\r\n // 方向键切换时同步当前高亮项\r\n if (event.code === 'ArrowUp' || event.code === 'ArrowDown') {\r\n const ariaActiveDescendantId = this.matSelect._getAriaActiveDescendant();\r\n const index =\r\n this._options\r\n ?.toArray()\r\n .findIndex((item): boolean => item.id === ariaActiveDescendantId) ??\r\n -1;\r\n if (index >= 0) {\r\n this._unselectActiveDescendant();\r\n this._activeDescendant = this._options\r\n ?.toArray()[index]._getHostElement();\r\n this._activeDescendant?.setAttribute('aria-selected', 'true');\r\n if (ariaActiveDescendantId) {\r\n this.searchSelectInput().nativeElement.setAttribute(\r\n 'aria-activedescendant',\r\n ariaActiveDescendantId,\r\n );\r\n } else {\r\n this.searchSelectInput().nativeElement.removeAttribute(\r\n 'aria-activedescendant',\r\n );\r\n }\r\n }\r\n }\r\n }\r\n\r\n writeValue(value: string): void {\r\n this._lastExternalInputValue = value;\r\n this.formControl.setValue(value);\r\n }\r\n\r\n onBlur(): void {\r\n // 失焦时清理高亮并触发 touched\r\n this._unselectActiveDescendant();\r\n this.onTouched();\r\n }\r\n\r\n registerOnChange(fn: (value: string | null) => void): void {\r\n this.formControl.valueChanges\r\n .pipe(\r\n filter((value): boolean => value !== this._lastExternalInputValue),\r\n tap((): void => (this._lastExternalInputValue = undefined)),\r\n takeUntilDestroyed(this._destroyRef),\r\n )\r\n .subscribe(fn);\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n public focus(): void {\r\n // 聚焦并保持面板滚动位置\r\n if (!this.searchSelectInput() || !this.matSelect.panel) {\r\n return;\r\n }\r\n const panel = this.matSelect.panel.nativeElement as HTMLElement;\r\n const scrollTop = panel.scrollTop;\r\n\r\n this.searchSelectInput().nativeElement.focus();\r\n\r\n panel.scrollTop = scrollTop;\r\n }\r\n\r\n public reset(focus?: boolean): void {\r\n this.formControl.setValue('');\r\n if (focus) {\r\n this.focus();\r\n }\r\n }\r\n\r\n public updateInputWidth(): void {\r\n const innerEl = this.innerSelectSearch();\r\n if (!innerEl?.nativeElement) {\r\n return;\r\n }\r\n let currentElement: HTMLElement | null = innerEl.nativeElement;\r\n let panelElement: HTMLElement | null = null;\r\n while (currentElement?.parentElement) {\r\n currentElement = currentElement.parentElement;\r\n if (currentElement.classList.contains('mat-select-panel')) {\r\n panelElement = currentElement;\r\n break;\r\n }\r\n }\r\n if (panelElement) {\r\n innerEl.nativeElement.style.width =\r\n panelElement.clientWidth + 'px';\r\n }\r\n }\r\n\r\n private _getMatOptionHeight(): number {\r\n if (this.matSelect.options.length > 0) {\r\n return this.matSelect.options.first\r\n ._getHostElement()\r\n .getBoundingClientRect().height;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n private _getOptionsLengthOffset(): number {\r\n // 如果嵌套在 mat-option 内,则偏移一个选项\r\n if (this._matOption) {\r\n return 1;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n private _unselectActiveDescendant(): void {\r\n // 清理当前高亮项的 aria 状态\r\n this._activeDescendant?.removeAttribute('aria-selected');\r\n this.searchSelectInput().nativeElement.removeAttribute(\r\n 'aria-activedescendant',\r\n );\r\n }\r\n private _applyDefaultOptions(\r\n defaultOptions?: MatSelectSearchOptions | null,\r\n ): void {\r\n // 应用默认配置\r\n if (!defaultOptions) {\r\n return;\r\n }\r\n const options = defaultOptions;\r\n Object.assign(this, options);\r\n }\r\n private _initMultipleHandling(): void {\r\n if (!this.matSelect.ngControl) {\r\n if (this.matSelect.multiple) {\r\n console.error(\r\n 'the mat-select containing cmat-select-search must have a ngModel or formControl directive when multiple=true',\r\n );\r\n }\r\n return;\r\n }\r\n this._previousSelectedValues = this.matSelect.ngControl.value as unknown[];\r\n\r\n this.matSelect.ngControl.valueChanges\r\n ?.pipe(takeUntilDestroyed(this._destroyRef))\r\n .subscribe((values: unknown): void => {\r\n let restoreSelectedValues = false;\r\n let currentValues: unknown[] = Array.isArray(values) ? values : [];\r\n if (this.matSelect.multiple) {\r\n if (\r\n (this.alwaysRestoreSelectedOptionsMulti() ||\r\n this._valueSignal().length) &&\r\n this._previousSelectedValues &&\r\n Array.isArray(this._previousSelectedValues)\r\n ) {\r\n const optionValues = this.matSelect.options.map(\r\n (option): unknown => option.value,\r\n );\r\n this._previousSelectedValues.forEach((previousValue): void => {\r\n if (\r\n !currentValues.some((v: unknown): boolean =>\r\n this.matSelect.compareWith(v, previousValue),\r\n ) &&\r\n !optionValues.some((v): boolean =>\r\n this.matSelect.compareWith(v, previousValue),\r\n )\r\n ) {\r\n currentValues.push(previousValue);\r\n restoreSelectedValues = true;\r\n }\r\n });\r\n }\r\n }\r\n this._previousSelectedValues = currentValues;\r\n\r\n if (restoreSelectedValues) {\r\n this.matSelect._onChange(currentValues);\r\n }\r\n });\r\n }\r\n\r\n private _adjustScrollTopToFitActiveOptionIntoView(): void {\r\n // 滚动到当前高亮项附近\r\n if (this.matSelect.panel && this.matSelect.options.length > 0) {\r\n const matOptionHeight = this._getMatOptionHeight();\r\n const activeOptionIndex = this.matSelect._keyManager.activeItemIndex ?? 0;\r\n const labelCount = _countGroupLabelsBeforeOption(\r\n activeOptionIndex,\r\n this.matSelect.options,\r\n this.matSelect.optionGroups,\r\n );\r\n const indexOfOptionToFitIntoView =\r\n (this._matOption ? -1 : 0) + labelCount + activeOptionIndex;\r\n const currentScrollTop = (\r\n this.matSelect.panel.nativeElement as HTMLElement\r\n ).scrollTop;\r\n\r\n const innerEl = this.innerSelectSearch();\r\n const searchInputHeight = innerEl.nativeElement.offsetHeight;\r\n const amountOfVisibleOptions = Math.floor(\r\n (SELECT_PANEL_MAX_HEIGHT - searchInputHeight) / matOptionHeight,\r\n );\r\n\r\n const indexOfFirstVisibleOption =\r\n Math.round((currentScrollTop + searchInputHeight) / matOptionHeight) -\r\n 1;\r\n\r\n if (indexOfFirstVisibleOption >= indexOfOptionToFitIntoView) {\r\n (this.matSelect.panel.nativeElement as HTMLElement).scrollTop =\r\n indexOfOptionToFitIntoView * matOptionHeight;\r\n } else if (\r\n indexOfFirstVisibleOption + amountOfVisibleOptions <=\r\n indexOfOptionToFitIntoView\r\n ) {\r\n (this.matSelect.panel.nativeElement as HTMLElement).scrollTop =\r\n (indexOfOptionToFitIntoView + 1) * matOptionHeight -\r\n (SELECT_PANEL_MAX_HEIGHT - searchInputHeight);\r\n }\r\n }\r\n }\r\n}","<input matInput class=\"cmat-select-search-input cmat-select-search-hidden\" />\r\n\r\n<div\r\n #innerSelectSearch\r\n class=\"cmat-select-search-inner mat-typography mat-tab-header\"\r\n [ngClass]=\"{\r\n 'cmat-select-search-inner-multiple': matSelect.multiple,\r\n 'cmat-select-search-inner-toggle-all': isToggleAllCheckboxVisible(),\r\n }\"\r\n>\r\n @if (isToggleAllCheckboxVisible()) {\r\n <mat-checkbox\r\n class=\"cmat-select-search-toggle-all-checkbox -mr-4\"\r\n matTooltipClass=\"cmat-select-search-toggle-all-tooltip\"\r\n [color]=\"matFormField?.color\"\r\n [checked]=\"toggleAllCheckboxChecked()\"\r\n [indeterminate]=\"toggleAllCheckboxIndeterminate()\"\r\n [matTooltip]=\"toggleAllCheckboxTooltipMessage()\"\r\n [matTooltipPosition]=\"toggleAllCheckboxTooltipPosition()\"\r\n (change)=\"emitSelectAllBooleanToParent($event.checked)\"\r\n >\r\n </mat-checkbox>\r\n }\r\n <span matPrefix class=\"flex flex-col justify-center pl-2\">\r\n <mat-icon\r\n class=\"cmat-select-search-icon\"\r\n color=\"primary\"\r\n svgIcon=\"heroicons_outline:magnifying-glass\"\r\n ></mat-icon>\r\n </span>\r\n <input\r\n #searchSelectInput\r\n matInput\r\n class=\"cmat-select-search-input cmat-input-element\"\r\n autocomplete=\"off\"\r\n [type]=\"type()\"\r\n [formControl]=\"formControl\"\r\n [placeholder]=\"placeholderLabel()\"\r\n [attr.aria-label]=\"ariaLabel()\"\r\n (keydown)=\"handleKeydown($event)\"\r\n (keyup)=\"handleKeyup($event)\"\r\n (blur)=\"onBlur()\"\r\n />\r\n @if (searching()) {\r\n <mat-spinner class=\"cmat-select-search-spinner\" diameter=\"16\"></mat-spinner>\r\n }\r\n\r\n @if (!hideClearSearchButton() && value && !searching()) {\r\n <button\r\n type=\"button\"\r\n matIconButton\r\n aria-label=\"Clear\"\r\n class=\"cmat-select-search-clear\"\r\n (click)=\"reset(true)\"\r\n >\r\n @if (clearIcon()) {\r\n <ng-content select=\"[cmatSelectSearchClear]\"></ng-content>\r\n } @else {\r\n <mat-icon svgIcon=\"mat_outline:close\"></mat-icon>\r\n }\r\n </button>\r\n }\r\n\r\n <ng-content select=\".cmat-select-search-custom-header-content\"></ng-content>\r\n</div>\r\n\r\n@if (showNoEntriesFound()) {\r\n <div class=\"cmat-select-search-no-entries-found\">\r\n @if (noEntriesFound()) {\r\n <ng-content select=\"[cmatSelectNoEntriesFound]\"></ng-content>\r\n } @else {\r\n {{ noEntriesFoundLabel() }}\r\n }\r\n </div>\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|