cmat 0.0.88 → 0.0.89
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 +9 -9
- 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 +3 -3
- 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 +588 -575
- package/fesm2022/cmat.mjs.map +1 -1
- package/package.json +1 -1
- package/styles/overrides/angular-material.scss +10 -9
- package/types/cmat-components-code-editor.d.ts +1 -1
- package/types/cmat.d.ts +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmat-components-cascade.mjs","sources":["../../../projects/cmat/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.ts","../../../projects/cmat/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.html","../../../projects/cmat/components/cascade/cascade-menu/cascade-menu.component.ts","../../../projects/cmat/components/cascade/cascade-menu/cascade-menu.component.html","../../../projects/cmat/components/cascade/cascade-list/cascade-list.component.ts","../../../projects/cmat/components/cascade/cascade-list/cascade-list.component.html","../../../projects/cmat/components/cascade/cmat-components-cascade.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, inject, signal } from '@angular/core';\r\nimport { MAT_BOTTOM_SHEET_DATA, MatBottomSheetRef } from '@angular/material/bottom-sheet';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { CascadeBottomSheetData, CmatCascadeStepItem } from '../options.interface';\r\n\r\n@Component({\r\n selector: 'cmat-cascade-bottom-sheet',\r\n templateUrl: './cascade-bottom-sheet.component.html',\r\n styleUrls: ['./cascade-bottom-sheet.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatCascadeBottomSheet',\r\n imports: [MatButtonModule, MatTabsModule, MatListModule, MatIconModule]\r\n})\r\nexport class CmatCascadeBottomSheetComponent {\r\n readonly data = inject<CascadeBottomSheetData>(MAT_BOTTOM_SHEET_DATA);\r\n\r\n readonly selectedTab = signal(0);\r\n\r\n readonly labels = computed(() => {\r\n return this.data.steps().map((step) => {\r\n const activeItem = step.find((item: CmatCascadeStepItem) => item.active);\r\n return activeItem?.label ?? '选择';\r\n });\r\n });\r\n\r\n private readonly _bottomSheetRef = inject(MatBottomSheetRef<CmatCascadeBottomSheetComponent>);\r\n\r\n constructor() {\r\n this.resetTabIndex();\r\n }\r\n\r\n resetTabIndex(): void {\r\n const hasValue = this.data.currentLabels().length > 0;\r\n this.selectedTab.set(hasValue ? this.data.currentLabels().length - 1 : 0);\r\n }\r\n\r\n clickHandle(event: Event): void {\r\n event.stopPropagation();\r\n }\r\n\r\n dismiss(): void {\r\n this._bottomSheetRef.dismiss();\r\n }\r\n\r\n\r\n select(disabled: boolean | undefined): void {\r\n if (!disabled) {\r\n const currentIndex = this.selectedTab();\r\n if (currentIndex < this.data.steps().length - 1) {\r\n this.selectedTab.set(currentIndex + 1);\r\n }\r\n }\r\n }\r\n}","<div role=\"presentation\" class=\"cmat-cascade-bottom-sheet\" (click)=\"clickHandle($event)\">\r\n <div class=\"sheet-header flex items-center\">\r\n <p class=\"sheet-title\">{{data.placeholder}}</p>\r\n <button type=\"button\" matIconButton (click)=\"dismiss()\">\r\n <mat-icon [svgIcon]=\"'heroicons_outline:x-mark'\"></mat-icon>\r\n </button>\r\n </div>\r\n <mat-tab-group [selectedIndex]=\"selectedTab()\" (selectedIndexChange)=\"selectedTab.set($event)\">\r\n @for (menuItem of data.steps(); track $index; let step = $index) {\r\n <mat-tab [label]=\"labels()[step]\">\r\n <mat-list class=\"menu-list overflow-y-auto scrollbar-custom\">\r\n @for (listItem of menuItem; track listItem.value; let i = $index) {\r\n <mat-list-item class=\"menu-item\"\r\n [class.active]=\"listItem.active\" [class.disabled]=\"listItem.disabled\"\r\n (click)=\"data.selectHandle($event, step, i); select(listItem.disabled);\">\r\n <div matLine>{{listItem.label}}</div>\r\n </mat-list-item>\r\n }\r\n </mat-list>\r\n </mat-tab>\r\n }\r\n </mat-tab-group>\r\n</div>","\r\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { CmatCascadeListComponent } from '../cascade-list/cascade-list.component';\r\n\r\n@Component({\r\n selector: 'cmat-cascade-menu',\r\n templateUrl: './cascade-menu.component.html',\r\n styleUrls: ['./cascade-menu.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatCascadeMenu',\r\n imports: [MatListModule, MatIconModule]\r\n})\r\nexport class CmatCascadeMenuComponent {\r\n root = inject(CmatCascadeListComponent, { optional: true })!;\r\n}\r\n","@for (menuItem of root.steps(); track $index; let step = $index) {\r\n <mat-list class=\"menu-list overflow-y-auto scrollbar-custom\">\r\n @for (listItem of menuItem; track listItem.value; let i = $index) {\r\n <mat-list-item class=\"menu-item\"\r\n [class.active]=\"listItem.active\" [class.disabled]=\"listItem.disabled\"\r\n (click)=\"root.selectHandle($event, step, i);\">\r\n <div matLine>{{listItem.label}}</div>\r\n @if (listItem.children && listItem.children.length) {\r\n <mat-icon class=\"item-icon\" [svgIcon]=\"'mat_outline:chevron_right'\"></mat-icon>\r\n }\r\n </mat-list-item>\r\n }\r\n </mat-list>\r\n}","/* eslint-disable @typescript-eslint/member-ordering */\r\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\r\nimport { CdkOverlayOrigin, Overlay, OverlayConfig, OverlayModule, OverlayRef } from '@angular/cdk/overlay';\r\nimport { CdkPortal, PortalModule } from '@angular/cdk/portal';\r\nimport { NgClass } from '@angular/common';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n DestroyRef,\r\n ElementRef,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n ViewEncapsulation,\r\n computed,\r\n effect,\r\n inject,\r\n input,\r\n signal,\r\n viewChild,\r\n} from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\r\nimport { MatBottomSheet, MatBottomSheetRef } from '@angular/material/bottom-sheet';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatFormFieldControl } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { Subject } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { CmatCascadeBottomSheetComponent } from '../cascade-bottom-sheet/cascade-bottom-sheet.component';\r\nimport { CmatCascadeMenuComponent } from '../cascade-menu/cascade-menu.component';\r\nimport { CascadeBottomSheetData, CmatCascadeOptionsInterface, CmatCascadeStepItem } from '../options.interface';\r\n\r\nlet NEXT_ID = 0;\r\n\r\n\r\n@Component({\r\n selector: 'cmat-cascade-list',\r\n templateUrl: './cascade-list.component.html',\r\n styleUrls: ['./cascade-list.component.scss'],\r\n providers: [{ provide: MatFormFieldControl, useExisting: CmatCascadeListComponent }],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatCascadeList',\r\n imports: [MatIconModule, NgClass, CmatCascadeMenuComponent, MatInputModule,\r\n OverlayModule, PortalModule, MatButtonModule],\r\n host: {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n '[attr.id]': 'id',\r\n }\r\n})\r\nexport class CmatCascadeListComponent implements MatFormFieldControl<any>, OnDestroy, OnInit, ControlValueAccessor {\r\n\r\n readonly id = `cmat-cascade-list-${NEXT_ID++}`;\r\n\r\n readonly options = input.required<CmatCascadeOptionsInterface[]>();\r\n readonly clearable = input(false);\r\n readonly fullLevels = input(true);\r\n readonly changeOnSelect = input(false);\r\n readonly allowLabelValue = input(false);\r\n readonly touchUi = input(false, { transform: coerceBooleanProperty });\r\n\r\n readonly overlayOrigin = viewChild.required(CdkOverlayOrigin);\r\n readonly menuTemplate = viewChild.required(CdkPortal);\r\n readonly _inputElement = viewChild<ElementRef<HTMLInputElement>>('inputElement');\r\n\r\n private readonly _placeholderSignal = signal('请选择');\r\n private readonly _disabledSignal = signal(false);\r\n private readonly _requiredSignal = signal(false);\r\n\r\n @Input()\r\n get placeholder(): string {\r\n return this._placeholderSignal();\r\n }\r\n\r\n set placeholder(value: string) {\r\n this._placeholderSignal.set(value);\r\n this.stateChanges.next();\r\n }\r\n\r\n\r\n @Input()\r\n get disabled(): boolean {\r\n if (this.ngControl?.disabled != null) {\r\n return this.ngControl.disabled;\r\n }\r\n\r\n return this._disabledSignal();\r\n }\r\n\r\n set disabled(value: BooleanInput) {\r\n this._disabledSignal.set(coerceBooleanProperty(value));\r\n this.stateChanges.next();\r\n }\r\n\r\n @Input()\r\n get required(): boolean {\r\n return this._requiredSignal();\r\n }\r\n\r\n set required(value: BooleanInput) {\r\n this._requiredSignal.set(coerceBooleanProperty(value));\r\n }\r\n\r\n readonly ngControl = inject(NgControl, { optional: true, self: true });\r\n readonly stateChanges: Subject<void> = new Subject<void>();\r\n controlType = 'cmat-cascade-list';\r\n overlayRef!: OverlayRef;\r\n bottomSheetRef!: MatBottomSheetRef;\r\n\r\n private readonly _overlay = inject(Overlay);\r\n private readonly _breakpointObserver = inject(BreakpointObserver);\r\n private readonly _bottomSheet = inject(MatBottomSheet);\r\n private readonly _destroyRef = inject(DestroyRef);\r\n\r\n private readonly _value = signal<CmatCascadeOptionsInterface[] | null>(null);\r\n private readonly _focused = signal(false);\r\n private readonly _touched = signal(false);\r\n\r\n readonly currentLabels = computed(() => {\r\n const value = this._value();\r\n const opts = this.options();\r\n if (!value?.length || !opts.length) {\r\n return [];\r\n }\r\n return this._findLabelsByValue(value, opts);\r\n });\r\n\r\n readonly steps = computed(() => {\r\n const labels = this.currentLabels();\r\n const opts = this.options();\r\n if (!labels.length) {\r\n const step1 = opts.map(item => ({ ...item, active: false }));\r\n return [step1];\r\n }\r\n return this._buildStepsFromLabels(labels, opts);\r\n });\r\n\r\n\r\n readonly showClearIcon = computed(() => {\r\n return this.clearable() && this.currentLabels().length > 0 && !this.disabled;\r\n });\r\n\r\n readonly menuVisible = computed(() => {\r\n return !this.touchUi() && (this.overlayRef?.hasAttached() ?? false);\r\n });\r\n\r\n get empty(): boolean {\r\n return !this._value();\r\n }\r\n\r\n get shouldLabelFloat(): boolean {\r\n return this.focused || !this.empty;\r\n }\r\n\r\n get errorState(): boolean {\r\n if (this.ngControl == null) {\r\n return false;\r\n }\r\n return (this.touched && this.ngControl.invalid) ?? false;\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n private _onChange: (value: CmatCascadeOptionsInterface[] | null) => void = () => { };\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n private _onTouched: () => void = () => { };\r\n\r\n constructor() {\r\n if (this.ngControl != null) {\r\n this.ngControl.valueAccessor = this;\r\n }\r\n\r\n effect(() => {\r\n const labels = this.currentLabels();\r\n if (this._inputElement()?.nativeElement.value !== this._getLabelText(labels)) {\r\n this._updateInputValue(labels);\r\n }\r\n });\r\n }\r\n\r\n\r\n @Input()\r\n get value(): CmatCascadeOptionsInterface[] | null {\r\n return this._value();\r\n }\r\n\r\n set value(val: CmatCascadeOptionsInterface[] | null) {\r\n this._value.set(val);\r\n }\r\n\r\n\r\n get focused(): boolean {\r\n return this._focused();\r\n }\r\n\r\n set focused(val: boolean) {\r\n this._focused.set(val);\r\n this.stateChanges.next();\r\n }\r\n\r\n get touched(): boolean {\r\n return this._touched();\r\n }\r\n\r\n set touched(val: boolean) {\r\n this._touched.set(val);\r\n }\r\n\r\n ngOnInit(): void {\r\n const config = new OverlayConfig({\r\n hasBackdrop: true,\r\n backdropClass: 'cdk-overlay-transparent-backdrop',\r\n scrollStrategy: this._overlay.scrollStrategies.reposition(),\r\n positionStrategy: this._overlay\r\n .position()\r\n .flexibleConnectedTo(this.overlayOrigin().elementRef)\r\n .withPositions([\r\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top' },\r\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom' }\r\n ])\r\n });\r\n\r\n this._breakpointObserver.observe(Breakpoints.Handset).pipe(\r\n takeUntilDestroyed(this._destroyRef),\r\n map(match => match.matches)\r\n ).subscribe((matches) => {\r\n if (this.touchUi() !== matches) {\r\n if (!matches && this.bottomSheetRef) {\r\n // 从移动切换到桌面:关闭 BottomSheet\r\n this.bottomSheetRef.dismiss();\r\n // 可选:自动打开 Overlay\r\n if (this.focused) {\r\n setTimeout(() => this.overlayRef.attach(this.menuTemplate()));\r\n }\r\n } else if (matches && this.overlayRef?.hasAttached()) {\r\n // 从桌面切换到移动:关闭 Overlay\r\n this.overlayRef.detach();\r\n // 可选:自动打开 BottomSheet\r\n this._openBottomSheet();\r\n }\r\n }\r\n });\r\n\r\n this.overlayRef = this._overlay.create(config);\r\n\r\n this.overlayRef.backdropClick().subscribe(() => {\r\n this.overlayRef.detach();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.stateChanges.complete();\r\n if (this.overlayRef) {\r\n this.overlayRef.dispose();\r\n }\r\n }\r\n\r\n writeValue(value: CmatCascadeOptionsInterface[] | null): void {\r\n this._value.set(value);\r\n }\r\n\r\n registerOnChange(fn: (value: CmatCascadeOptionsInterface[] | null) => void): void {\r\n this._onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this._onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this._disabledSignal.set(isDisabled);\r\n }\r\n\r\n setDescribedByIds(ids: string[]): void {\r\n if (ids.length) {\r\n this._inputElement()?.nativeElement.setAttribute('aria-describedby', ids.join(' '));\r\n } else {\r\n this._inputElement()?.nativeElement.removeAttribute('aria-describedby');\r\n }\r\n }\r\n\r\n onContainerClick(): void {\r\n if (!this.focused) {\r\n this._inputElement()?.nativeElement.focus();\r\n }\r\n }\r\n\r\n clickHandle(event: MouseEvent): void {\r\n if (this.disabled || this.options().length === 0) {\r\n return;\r\n }\r\n const element = event.target as HTMLElement;\r\n const cascadeListElement = this._inputElement()?.nativeElement.closest('.cmat-cascade-list');\r\n\r\n if (!cascadeListElement?.contains(element)) {\r\n return;\r\n }\r\n\r\n if (this.touchUi()) {\r\n if (this.overlayRef?.hasAttached()) {\r\n this.overlayRef.detach();\r\n }\r\n this._openBottomSheet();\r\n } else {\r\n this.overlayRef.attach(this.menuTemplate());\r\n }\r\n }\r\n\r\n clearValue(event?: Event): void {\r\n if (event) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }\r\n this._value.set(null);\r\n this._onChange(null);\r\n this._onTouched();\r\n }\r\n\r\n selectHandle(event: Event, step: number, index: number): void {\r\n event.stopPropagation();\r\n\r\n const currentSteps = this.steps();\r\n const selectedItem = currentSteps[step][index];\r\n\r\n if (selectedItem.disabled) {\r\n return;\r\n }\r\n\r\n this._value.update((values) => {\r\n const newValues = values ? values.slice(0, step) : [];\r\n newValues.push({\r\n value: selectedItem.value,\r\n label: selectedItem.label\r\n });\r\n return newValues;\r\n });\r\n\r\n this._onChange(this._value());\r\n this._onTouched();\r\n\r\n if (selectedItem.children?.length && !this.changeOnSelect()) {\r\n return;\r\n }\r\n\r\n if (this.overlayRef?.hasAttached()) {\r\n this.overlayRef.detach();\r\n }\r\n if (this.touchUi() && this.bottomSheetRef) {\r\n this.bottomSheetRef.dismiss();\r\n }\r\n }\r\n\r\n onFocusIn(): void {\r\n if (!this.focused) {\r\n this.focused = true;\r\n }\r\n }\r\n\r\n onFocusOut(event: FocusEvent): void {\r\n const relatedTarget = event.relatedTarget as Element;\r\n const isMenuClick = relatedTarget?.closest('.cmat-cascade-menu, .cmat-cascade-bottom-sheet');\r\n\r\n if (!isMenuClick && !this._inputElement()?.nativeElement.contains(relatedTarget)) {\r\n this.touched = true;\r\n this.focused = false;\r\n this._onTouched();\r\n }\r\n }\r\n\r\n private _findLabelsByValue(value: CmatCascadeOptionsInterface[], options: CmatCascadeOptionsInterface[]): CmatCascadeOptionsInterface[] {\r\n const result: CmatCascadeOptionsInterface[] = [];\r\n let currentOptions = options;\r\n\r\n for (const val of value) {\r\n const found = this.allowLabelValue()\r\n ? currentOptions.find(item => item.value === val.value || item.label === val.label)\r\n : currentOptions.find(item => item.value === val.value);\r\n\r\n if (found) {\r\n result.push(found);\r\n currentOptions = found.children ?? [];\r\n } else {\r\n break;\r\n }\r\n }\r\n return result;\r\n }\r\n private _buildStepsFromLabels(labels: CmatCascadeOptionsInterface[], rootOptions: CmatCascadeOptionsInterface[]): CmatCascadeStepItem[][] {\r\n const steps: CmatCascadeStepItem[][] = [];\r\n let currentOptions = rootOptions;\r\n\r\n for (const label of labels) {\r\n const stepItems = currentOptions.map(item => ({\r\n ...item,\r\n active: item.value === label.value\r\n }));\r\n steps.push(stepItems);\r\n currentOptions = label.children ?? [];\r\n }\r\n\r\n\r\n if (currentOptions.length > 0) {\r\n steps.push(currentOptions.map(item => ({ ...item, active: false })));\r\n }\r\n\r\n return steps;\r\n }\r\n\r\n private _updateInputValue(labels: CmatCascadeOptionsInterface[]): void {\r\n if (!this._inputElement) {\r\n return;\r\n }\r\n\r\n let text: string;\r\n if (this.fullLevels()) {\r\n text = labels.map((l, i) => `${l.label}${i < labels.length - 1 ? ' / ' : ''}`).join('');\r\n } else {\r\n text = labels[labels.length - 1]?.label ?? '';\r\n }\r\n this._inputElement()!.nativeElement.value = text;\r\n }\r\n\r\n private _openBottomSheet(): void {\r\n const data: CascadeBottomSheetData = {\r\n options: this.options(),\r\n steps: this.steps,\r\n currentLabels: this.currentLabels,\r\n selectHandle: this.selectHandle.bind(this),\r\n changeOnSelect: this.changeOnSelect(),\r\n placeholder: this.placeholder\r\n };\r\n\r\n this.bottomSheetRef = this._bottomSheet.open(CmatCascadeBottomSheetComponent, {\r\n data\r\n });\r\n }\r\n\r\n private _getLabelText(labels: CmatCascadeOptionsInterface[]): string {\r\n if (this.fullLevels()) {\r\n return labels.map((l, i) => `${l.label}${i < labels.length - 1 ? ' / ' : ''}`).join('');\r\n }\r\n return labels[labels.length - 1]?.label ?? '';\r\n }\r\n}","<span role=\"presentation\" class=\"cmat-cascade-list\" cdk-overlay-origin\r\n [ngClass]=\"{'opened': menuVisible(), 'disabled': disabled, 'error-state': errorState}\">\r\n <input #inputElement matInput readonly [required]='required' [placeholder]=\"currentLabels().length>0 ? '' : placeholder\" (click)=\"clickHandle($event)\"\r\n (focusin)=\"onFocusIn()\" (focusout)=\"onFocusOut($event)\">\r\n\r\n @if (showClearIcon()) {\r\n <button type=\"button\" matSuffix matIconButton aria-label=\"Clear\" (click)=\"clearValue($event)\">\r\n <mat-icon [svgIcon]=\"'heroicons_outline:x-mark'\"></mat-icon>\r\n </button>\r\n }\r\n @else {\r\n <mat-icon matSuffix [svgIcon]=\"'mat_outline:arrow_drop_down'\"></mat-icon>\r\n }\r\n</span>\r\n\r\n<ng-template #menuTemplate=\"cdkPortal\" cdkPortal>\r\n <cmat-cascade-menu></cmat-cascade-menu>\r\n</ng-template>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i1","i3","i5"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cmat-components-cascade.mjs","sources":["../../../projects/cmat/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.ts","../../../projects/cmat/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.html","../../../projects/cmat/components/cascade/cascade-menu/cascade-menu.component.ts","../../../projects/cmat/components/cascade/cascade-menu/cascade-menu.component.html","../../../projects/cmat/components/cascade/cascade-list/cascade-list.component.ts","../../../projects/cmat/components/cascade/cascade-list/cascade-list.component.html","../../../projects/cmat/components/cascade/cmat-components-cascade.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, inject, signal } from '@angular/core';\r\nimport { MAT_BOTTOM_SHEET_DATA, MatBottomSheetRef } from '@angular/material/bottom-sheet';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { CascadeBottomSheetData, CmatCascadeStepItem } from '../options.interface';\r\n\r\n@Component({\r\n selector: 'cmat-cascade-bottom-sheet',\r\n templateUrl: './cascade-bottom-sheet.component.html',\r\n styleUrls: ['./cascade-bottom-sheet.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatCascadeBottomSheet',\r\n imports: [MatButtonModule, MatTabsModule, MatListModule, MatIconModule]\r\n})\r\nexport class CmatCascadeBottomSheetComponent {\r\n readonly data = inject<CascadeBottomSheetData>(MAT_BOTTOM_SHEET_DATA);\r\n\r\n readonly selectedTab = signal(0);\r\n\r\n readonly labels = computed(() => {\r\n return this.data.steps().map((step) => {\r\n const activeItem = step.find((item: CmatCascadeStepItem) => item.active);\r\n return activeItem?.label ?? '选择';\r\n });\r\n });\r\n\r\n private readonly _bottomSheetRef = inject(MatBottomSheetRef<CmatCascadeBottomSheetComponent>);\r\n\r\n constructor() {\r\n this.resetTabIndex();\r\n }\r\n\r\n resetTabIndex(): void {\r\n const hasValue = this.data.currentLabels().length > 0;\r\n this.selectedTab.set(hasValue ? this.data.currentLabels().length - 1 : 0);\r\n }\r\n\r\n clickHandle(event: Event): void {\r\n event.stopPropagation();\r\n }\r\n\r\n dismiss(): void {\r\n this._bottomSheetRef.dismiss();\r\n }\r\n\r\n\r\n select(disabled: boolean | undefined): void {\r\n if (!disabled) {\r\n const currentIndex = this.selectedTab();\r\n if (currentIndex < this.data.steps().length - 1) {\r\n this.selectedTab.set(currentIndex + 1);\r\n }\r\n }\r\n }\r\n}","<div role=\"presentation\" class=\"cmat-cascade-bottom-sheet\" (click)=\"clickHandle($event)\">\r\n <div class=\"sheet-header flex items-center\">\r\n <p class=\"sheet-title\">{{data.placeholder}}</p>\r\n <button type=\"button\" matIconButton (click)=\"dismiss()\">\r\n <mat-icon [svgIcon]=\"'heroicons_outline:x-mark'\"></mat-icon>\r\n </button>\r\n </div>\r\n <mat-tab-group [selectedIndex]=\"selectedTab()\" (selectedIndexChange)=\"selectedTab.set($event)\">\r\n @for (menuItem of data.steps(); track $index; let step = $index) {\r\n <mat-tab [label]=\"labels()[step]\">\r\n <mat-list class=\"menu-list overflow-y-auto scrollbar-custom\">\r\n @for (listItem of menuItem; track listItem.value; let i = $index) {\r\n <mat-list-item class=\"menu-item\"\r\n [class.active]=\"listItem.active\" [class.disabled]=\"listItem.disabled\"\r\n (click)=\"data.selectHandle($event, step, i); select(listItem.disabled);\">\r\n <div matLine>{{listItem.label}}</div>\r\n </mat-list-item>\r\n }\r\n </mat-list>\r\n </mat-tab>\r\n }\r\n </mat-tab-group>\r\n</div>","\r\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { CmatCascadeListComponent } from '../cascade-list/cascade-list.component';\r\n\r\n@Component({\r\n selector: 'cmat-cascade-menu',\r\n templateUrl: './cascade-menu.component.html',\r\n styleUrls: ['./cascade-menu.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatCascadeMenu',\r\n imports: [MatListModule, MatIconModule]\r\n})\r\nexport class CmatCascadeMenuComponent {\r\n root = inject(CmatCascadeListComponent, { optional: true })!;\r\n}\r\n","@for (menuItem of root.steps(); track $index; let step = $index) {\r\n <mat-list class=\"menu-list overflow-y-auto scrollbar-custom\">\r\n @for (listItem of menuItem; track listItem.value; let i = $index) {\r\n <mat-list-item class=\"menu-item\"\r\n [class.active]=\"listItem.active\" [class.disabled]=\"listItem.disabled\"\r\n (click)=\"root.selectHandle($event, step, i);\">\r\n <div matLine>{{listItem.label}}</div>\r\n @if (listItem.children && listItem.children.length) {\r\n <mat-icon class=\"item-icon\" [svgIcon]=\"'mat_outline:chevron_right'\"></mat-icon>\r\n }\r\n </mat-list-item>\r\n }\r\n </mat-list>\r\n}","/* eslint-disable @typescript-eslint/member-ordering */\r\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\r\nimport { CdkOverlayOrigin, Overlay, OverlayConfig, OverlayModule, OverlayRef } from '@angular/cdk/overlay';\r\nimport { CdkPortal, PortalModule } from '@angular/cdk/portal';\r\nimport { NgClass } from '@angular/common';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n DestroyRef,\r\n ElementRef,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n ViewEncapsulation,\r\n computed,\r\n effect,\r\n inject,\r\n input,\r\n signal,\r\n viewChild,\r\n} from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\r\nimport { MatBottomSheet, MatBottomSheetRef } from '@angular/material/bottom-sheet';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatFormFieldControl } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { Subject } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { CmatCascadeBottomSheetComponent } from '../cascade-bottom-sheet/cascade-bottom-sheet.component';\r\nimport { CmatCascadeMenuComponent } from '../cascade-menu/cascade-menu.component';\r\nimport { CascadeBottomSheetData, CmatCascadeOptionsInterface, CmatCascadeStepItem } from '../options.interface';\r\n\r\nlet NEXT_ID = 0;\r\n\r\n\r\n@Component({\r\n selector: 'cmat-cascade-list',\r\n templateUrl: './cascade-list.component.html',\r\n styleUrls: ['./cascade-list.component.scss'],\r\n providers: [{ provide: MatFormFieldControl, useExisting: CmatCascadeListComponent }],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatCascadeList',\r\n imports: [MatIconModule, NgClass, CmatCascadeMenuComponent, MatInputModule,\r\n OverlayModule, PortalModule, MatButtonModule],\r\n host: {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n '[attr.id]': 'id',\r\n }\r\n})\r\nexport class CmatCascadeListComponent implements MatFormFieldControl<any>, OnDestroy, OnInit, ControlValueAccessor {\r\n\r\n readonly id = `cmat-cascade-list-${NEXT_ID++}`;\r\n\r\n readonly options = input.required<CmatCascadeOptionsInterface[]>();\r\n readonly clearable = input(false);\r\n readonly fullLevels = input(true);\r\n readonly changeOnSelect = input(false);\r\n readonly allowLabelValue = input(false);\r\n readonly touchUi = input(false, { transform: coerceBooleanProperty });\r\n\r\n readonly overlayOrigin = viewChild.required(CdkOverlayOrigin);\r\n readonly menuTemplate = viewChild.required(CdkPortal);\r\n readonly _inputElement = viewChild<ElementRef<HTMLInputElement>>('inputElement');\r\n\r\n private readonly _placeholderSignal = signal('请选择');\r\n private readonly _disabledSignal = signal(false);\r\n private readonly _requiredSignal = signal(false);\r\n\r\n @Input()\r\n get placeholder(): string {\r\n return this._placeholderSignal();\r\n }\r\n\r\n set placeholder(value: string) {\r\n this._placeholderSignal.set(value);\r\n this.stateChanges.next();\r\n }\r\n\r\n\r\n @Input()\r\n get disabled(): boolean {\r\n if (this.ngControl?.disabled != null) {\r\n return this.ngControl.disabled;\r\n }\r\n\r\n return this._disabledSignal();\r\n }\r\n\r\n set disabled(value: BooleanInput) {\r\n this._disabledSignal.set(coerceBooleanProperty(value));\r\n this.stateChanges.next();\r\n }\r\n\r\n @Input()\r\n get required(): boolean {\r\n return this._requiredSignal();\r\n }\r\n\r\n set required(value: BooleanInput) {\r\n this._requiredSignal.set(coerceBooleanProperty(value));\r\n }\r\n\r\n readonly ngControl = inject(NgControl, { optional: true, self: true });\r\n readonly stateChanges: Subject<void> = new Subject<void>();\r\n controlType = 'cmat-cascade-list';\r\n overlayRef!: OverlayRef;\r\n bottomSheetRef!: MatBottomSheetRef;\r\n\r\n private readonly _overlay = inject(Overlay);\r\n private readonly _breakpointObserver = inject(BreakpointObserver);\r\n private readonly _bottomSheet = inject(MatBottomSheet);\r\n private readonly _destroyRef = inject(DestroyRef);\r\n\r\n private readonly _value = signal<CmatCascadeOptionsInterface[] | null>(null);\r\n private readonly _focused = signal(false);\r\n private readonly _touched = signal(false);\r\n\r\n readonly currentLabels = computed(() => {\r\n const value = this._value();\r\n const opts = this.options();\r\n if (!value?.length || !opts.length) {\r\n return [];\r\n }\r\n return this._findLabelsByValue(value, opts);\r\n });\r\n\r\n readonly steps = computed(() => {\r\n const labels = this.currentLabels();\r\n const opts = this.options();\r\n if (!labels.length) {\r\n const step1 = opts.map(item => ({ ...item, active: false }));\r\n return [step1];\r\n }\r\n return this._buildStepsFromLabels(labels, opts);\r\n });\r\n\r\n\r\n readonly showClearIcon = computed(() => {\r\n return this.clearable() && this.currentLabels().length > 0 && !this.disabled;\r\n });\r\n\r\n readonly menuVisible = computed(() => {\r\n return !this.touchUi() && (this.overlayRef?.hasAttached() ?? false);\r\n });\r\n\r\n get empty(): boolean {\r\n return !this._value();\r\n }\r\n\r\n get shouldLabelFloat(): boolean {\r\n return this.focused || !this.empty;\r\n }\r\n\r\n get errorState(): boolean {\r\n if (this.ngControl == null) {\r\n return false;\r\n }\r\n return (this.touched && this.ngControl.invalid) ?? false;\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n private _onChange: (value: CmatCascadeOptionsInterface[] | null) => void = () => { };\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n private _onTouched: () => void = () => { };\r\n\r\n constructor() {\r\n if (this.ngControl != null) {\r\n this.ngControl.valueAccessor = this;\r\n }\r\n\r\n effect(() => {\r\n const labels = this.currentLabels();\r\n if (this._inputElement()?.nativeElement.value !== this._getLabelText(labels)) {\r\n this._updateInputValue(labels);\r\n }\r\n });\r\n }\r\n\r\n\r\n @Input()\r\n get value(): CmatCascadeOptionsInterface[] | null {\r\n return this._value();\r\n }\r\n\r\n set value(val: CmatCascadeOptionsInterface[] | null) {\r\n this._value.set(val);\r\n }\r\n\r\n\r\n get focused(): boolean {\r\n return this._focused();\r\n }\r\n\r\n set focused(val: boolean) {\r\n this._focused.set(val);\r\n this.stateChanges.next();\r\n }\r\n\r\n get touched(): boolean {\r\n return this._touched();\r\n }\r\n\r\n set touched(val: boolean) {\r\n this._touched.set(val);\r\n }\r\n\r\n ngOnInit(): void {\r\n const config = new OverlayConfig({\r\n hasBackdrop: true,\r\n backdropClass: 'cdk-overlay-transparent-backdrop',\r\n scrollStrategy: this._overlay.scrollStrategies.reposition(),\r\n positionStrategy: this._overlay\r\n .position()\r\n .flexibleConnectedTo(this.overlayOrigin().elementRef)\r\n .withPositions([\r\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top' },\r\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom' }\r\n ])\r\n });\r\n\r\n this._breakpointObserver.observe(Breakpoints.Handset).pipe(\r\n takeUntilDestroyed(this._destroyRef),\r\n map(match => match.matches)\r\n ).subscribe((matches) => {\r\n if (this.touchUi() !== matches) {\r\n if (!matches && this.bottomSheetRef) {\r\n // 从移动切换到桌面:关闭 BottomSheet\r\n this.bottomSheetRef.dismiss();\r\n // 可选:自动打开 Overlay\r\n if (this.focused) {\r\n setTimeout(() => this.overlayRef.attach(this.menuTemplate()));\r\n }\r\n } else if (matches && this.overlayRef?.hasAttached()) {\r\n // 从桌面切换到移动:关闭 Overlay\r\n this.overlayRef.detach();\r\n // 可选:自动打开 BottomSheet\r\n this._openBottomSheet();\r\n }\r\n }\r\n });\r\n\r\n this.overlayRef = this._overlay.create(config);\r\n\r\n this.overlayRef.backdropClick().subscribe(() => {\r\n this.overlayRef.detach();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.stateChanges.complete();\r\n if (this.overlayRef) {\r\n this.overlayRef.dispose();\r\n }\r\n }\r\n\r\n writeValue(value: CmatCascadeOptionsInterface[] | null): void {\r\n this._value.set(value);\r\n }\r\n\r\n registerOnChange(fn: (value: CmatCascadeOptionsInterface[] | null) => void): void {\r\n this._onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this._onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this._disabledSignal.set(isDisabled);\r\n }\r\n\r\n setDescribedByIds(ids: string[]): void {\r\n if (ids.length) {\r\n this._inputElement()?.nativeElement.setAttribute('aria-describedby', ids.join(' '));\r\n } else {\r\n this._inputElement()?.nativeElement.removeAttribute('aria-describedby');\r\n }\r\n }\r\n\r\n onContainerClick(): void {\r\n if (!this.focused) {\r\n this._inputElement()?.nativeElement.focus();\r\n }\r\n }\r\n\r\n clickHandle(event: MouseEvent): void {\r\n if (this.disabled || this.options().length === 0) {\r\n return;\r\n }\r\n const element = event.target as HTMLElement;\r\n const cascadeListElement = this._inputElement()?.nativeElement.closest('.cmat-cascade-list');\r\n\r\n if (!cascadeListElement?.contains(element)) {\r\n return;\r\n }\r\n\r\n if (this.touchUi()) {\r\n if (this.overlayRef?.hasAttached()) {\r\n this.overlayRef.detach();\r\n }\r\n this._openBottomSheet();\r\n } else {\r\n this.overlayRef.attach(this.menuTemplate());\r\n }\r\n }\r\n\r\n clearValue(event?: Event): void {\r\n if (event) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }\r\n this._value.set(null);\r\n this._onChange(null);\r\n this._onTouched();\r\n }\r\n\r\n selectHandle(event: Event, step: number, index: number): void {\r\n event.stopPropagation();\r\n\r\n const currentSteps = this.steps();\r\n const selectedItem = currentSteps[step][index];\r\n\r\n if (selectedItem.disabled) {\r\n return;\r\n }\r\n\r\n this._value.update((values) => {\r\n const newValues = values ? values.slice(0, step) : [];\r\n newValues.push({\r\n value: selectedItem.value,\r\n label: selectedItem.label\r\n });\r\n return newValues;\r\n });\r\n\r\n this._onChange(this._value());\r\n this._onTouched();\r\n\r\n if (selectedItem.children?.length && !this.changeOnSelect()) {\r\n return;\r\n }\r\n\r\n if (this.overlayRef?.hasAttached()) {\r\n this.overlayRef.detach();\r\n }\r\n if (this.touchUi() && this.bottomSheetRef) {\r\n this.bottomSheetRef.dismiss();\r\n }\r\n }\r\n\r\n onFocusIn(): void {\r\n if (!this.focused) {\r\n this.focused = true;\r\n }\r\n }\r\n\r\n onFocusOut(event: FocusEvent): void {\r\n const relatedTarget = event.relatedTarget as Element;\r\n const isMenuClick = relatedTarget?.closest('.cmat-cascade-menu, .cmat-cascade-bottom-sheet');\r\n\r\n if (!isMenuClick && !this._inputElement()?.nativeElement.contains(relatedTarget)) {\r\n this.touched = true;\r\n this.focused = false;\r\n this._onTouched();\r\n }\r\n }\r\n\r\n private _findLabelsByValue(value: CmatCascadeOptionsInterface[], options: CmatCascadeOptionsInterface[]): CmatCascadeOptionsInterface[] {\r\n const result: CmatCascadeOptionsInterface[] = [];\r\n let currentOptions = options;\r\n\r\n for (const val of value) {\r\n const found = this.allowLabelValue()\r\n ? currentOptions.find(item => item.value === val.value || item.label === val.label)\r\n : currentOptions.find(item => item.value === val.value);\r\n\r\n if (found) {\r\n result.push(found);\r\n currentOptions = found.children ?? [];\r\n } else {\r\n break;\r\n }\r\n }\r\n return result;\r\n }\r\n private _buildStepsFromLabels(labels: CmatCascadeOptionsInterface[], rootOptions: CmatCascadeOptionsInterface[]): CmatCascadeStepItem[][] {\r\n const steps: CmatCascadeStepItem[][] = [];\r\n let currentOptions = rootOptions;\r\n\r\n for (const label of labels) {\r\n const stepItems = currentOptions.map(item => ({\r\n ...item,\r\n active: item.value === label.value\r\n }));\r\n steps.push(stepItems);\r\n currentOptions = label.children ?? [];\r\n }\r\n\r\n\r\n if (currentOptions.length > 0) {\r\n steps.push(currentOptions.map(item => ({ ...item, active: false })));\r\n }\r\n\r\n return steps;\r\n }\r\n\r\n private _updateInputValue(labels: CmatCascadeOptionsInterface[]): void {\r\n if (!this._inputElement) {\r\n return;\r\n }\r\n\r\n let text: string;\r\n if (this.fullLevels()) {\r\n text = labels.map((l, i) => `${l.label}${i < labels.length - 1 ? ' / ' : ''}`).join('');\r\n } else {\r\n text = labels[labels.length - 1]?.label ?? '';\r\n }\r\n this._inputElement()!.nativeElement.value = text;\r\n }\r\n\r\n private _openBottomSheet(): void {\r\n const data: CascadeBottomSheetData = {\r\n options: this.options(),\r\n steps: this.steps,\r\n currentLabels: this.currentLabels,\r\n selectHandle: this.selectHandle.bind(this),\r\n changeOnSelect: this.changeOnSelect(),\r\n placeholder: this.placeholder\r\n };\r\n\r\n this.bottomSheetRef = this._bottomSheet.open(CmatCascadeBottomSheetComponent, {\r\n data\r\n });\r\n }\r\n\r\n private _getLabelText(labels: CmatCascadeOptionsInterface[]): string {\r\n if (this.fullLevels()) {\r\n return labels.map((l, i) => `${l.label}${i < labels.length - 1 ? ' / ' : ''}`).join('');\r\n }\r\n return labels[labels.length - 1]?.label ?? '';\r\n }\r\n}","<span role=\"presentation\" class=\"cmat-cascade-list\" cdk-overlay-origin\r\n [ngClass]=\"{'opened': menuVisible(), 'disabled': disabled, 'error-state': errorState}\">\r\n <input #inputElement matInput readonly [required]='required' [placeholder]=\"currentLabels().length>0 ? '' : placeholder\" (click)=\"clickHandle($event)\"\r\n (focusin)=\"onFocusIn()\" (focusout)=\"onFocusOut($event)\">\r\n\r\n @if (showClearIcon()) {\r\n <button type=\"button\" matSuffix matIconButton aria-label=\"Clear\" (click)=\"clearValue($event)\">\r\n <mat-icon [svgIcon]=\"'heroicons_outline:x-mark'\"></mat-icon>\r\n </button>\r\n }\r\n @else {\r\n <mat-icon matSuffix [svgIcon]=\"'mat_outline:arrow_drop_down'\"></mat-icon>\r\n }\r\n</span>\r\n\r\n<ng-template #menuTemplate=\"cdkPortal\" cdkPortal>\r\n <cmat-cascade-menu></cmat-cascade-menu>\r\n</ng-template>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i1","i3","i5"],"mappings":"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"}
|
|
@@ -300,12 +300,12 @@ class CmatChipInputComponent {
|
|
|
300
300
|
const filterValue = value.toLowerCase();
|
|
301
301
|
return this.selectableOptions()?.filter(v => v.toLowerCase().includes(filterValue)) ?? [];
|
|
302
302
|
}
|
|
303
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
304
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.
|
|
303
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatChipInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
304
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: CmatChipInputComponent, isStandalone: true, selector: "cmat-chip-input", inputs: { selectableOptions: { classPropertyName: "selectableOptions", publicName: "selectableOptions", isSignal: true, isRequired: false, transformFunction: null }, hasAutocomplete: { classPropertyName: "hasAutocomplete", publicName: "hasAutocomplete", isSignal: true, isRequired: false, transformFunction: null }, outputIsString: { classPropertyName: "outputIsString", publicName: "outputIsString", isSignal: true, isRequired: false, transformFunction: null }, separatorKey: { classPropertyName: "separatorKey", publicName: "separatorKey", 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 } }, host: { properties: { "attr.id": "id" } }, providers: [
|
|
305
305
|
{ provide: MatFormFieldControl, useExisting: CmatChipInputComponent },
|
|
306
306
|
], viewQueries: [{ propertyName: "_inputElementRef", first: true, predicate: ["input"], descendants: true, isSignal: true }, { propertyName: "_autoTrigger", first: true, predicate: ["autoTrigger"], descendants: true, isSignal: true }], exportAs: ["cmatChipInput"], ngImport: i0, template: "<mat-chip-grid #chipList class=\"items-center\" (focusin)=\"onFocusIn($event)\" (focusout)=\"onFocusOut($event)\">\r\n @for (option of selectedOptions(); track option) {\r\n <mat-chip-row (removed)=\"onRemove(option)\" (click)=\"$event.stopPropagation()\">\r\n {{ option }}\r\n <button matChipRemove class=\"print:hidden\" (click)=\"$event.stopPropagation()\">\r\n <mat-icon class=\"icon-size-5\" [svgIcon]=\"'mat_solid:cancel'\"></mat-icon>\r\n </button>\r\n </mat-chip-row>\r\n }\r\n\r\n @if (hasAutocomplete()) {\r\n <input #input #autoTrigger=\"matAutocompleteTrigger\" matInput [formControl]=\"inputControl\" [placeholder]=\"placeholder?placeholder:'\u5F00\u59CB\u9009\u62E9...'\"\r\n [matAutocomplete]=\"autoComplete\" [required]=\"required\" [matChipInputFor]=\"chipList\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\" (matChipInputTokenEnd)=\"onAdd($event)\" />\r\n <mat-autocomplete #autoComplete=\"matAutocomplete\" (optionSelected)=\"onSelected($event)\"\r\n (optionActivated)=\"onActivated($event)\">\r\n @for (option of filteredOptions(); track option) {\r\n <mat-option [value]=\"option\">\r\n {{ option }}\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n } @else {\r\n <input #input [formControl]=\"inputControl\" [placeholder]=\"placeholder?placeholder:'\u5F00\u59CB\u586B\u5199...'\" [matChipInputFor]=\"chipList\"\r\n [required]=\"required\" [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\" (matChipInputTokenEnd)=\"onAdd($event)\" />\r\n }\r\n</mat-chip-grid>", dependencies: [{ kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i1.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i1.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled", "readonly", "matChipInputDisabledInteractive"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i1.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i1.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.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: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i3.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i3.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
307
307
|
}
|
|
308
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
308
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatChipInputComponent, decorators: [{
|
|
309
309
|
type: Component,
|
|
310
310
|
args: [{ selector: 'cmat-chip-input', providers: [
|
|
311
311
|
{ provide: MatFormFieldControl, useExisting: CmatChipInputComponent },
|
|
@@ -89,11 +89,11 @@ class CmatCodeEditorComponent {
|
|
|
89
89
|
this.valueChange.emit(newValue);
|
|
90
90
|
});
|
|
91
91
|
}
|
|
92
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
93
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.
|
|
92
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatCodeEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
93
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: CmatCodeEditorComponent, isStandalone: true, selector: "cmat-code-editor", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, language: { classPropertyName: "language", publicName: "language", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, readOnly: { classPropertyName: "readOnly", publicName: "readOnly", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, 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 p-2 shadow-sm\">\r\n <ngx-monaco-editor \r\n class=\"block\" \r\n [style.height]=\"height()\" \r\n [options]=\"editorOptions()\" \r\n [model]=\"model()\"\r\n (onInit)=\"onEditorInit($event)\"\r\n ></ngx-monaco-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]=\"height()\">\r\n \u4EE3\u7801\u7F16\u8F91\u5668\u52A0\u8F7D\u4E2D...\r\n </div>\r\n}", styles: [":host{display:block}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, deferBlockDependencies: [() => [/* @ts-ignore */
|
|
94
94
|
import('ngx-monaco-editor-v2').then(m => m.EditorComponent)]] }); }
|
|
95
95
|
}
|
|
96
|
-
i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "22.0.
|
|
96
|
+
i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "22.0.6", ngImport: i0, type: CmatCodeEditorComponent, resolveDeferredDeps: () => [/* @ts-ignore */
|
|
97
97
|
import('ngx-monaco-editor-v2').then(m => m.EditorComponent)], resolveMetadata: EditorComponent => ({ decorators: [{
|
|
98
98
|
type: Component,
|
|
99
99
|
args: [{ selector: 'cmat-code-editor', changeDetection: ChangeDetectionStrategy.OnPush, imports: [EditorComponent], 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 p-2 shadow-sm\">\r\n <ngx-monaco-editor \r\n class=\"block\" \r\n [style.height]=\"height()\" \r\n [options]=\"editorOptions()\" \r\n [model]=\"model()\"\r\n (onInit)=\"onEditorInit($event)\"\r\n ></ngx-monaco-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]=\"height()\">\r\n \u4EE3\u7801\u7F16\u8F91\u5668\u52A0\u8F7D\u4E2D...\r\n </div>\r\n}", styles: [":host{display:block}\n"] }]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmat-components-code-editor.mjs","sources":["../../../projects/cmat/components/code-editor/code-editor.component.ts","../../../projects/cmat/components/code-editor/code-editor.component.html","../../../projects/cmat/components/code-editor/cmat-components-code-editor.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, effect, input, output, OnDestroy, inject, DOCUMENT } from '@angular/core';\r\nimport type { editor, IDisposable } from 'monaco-editor';\r\nimport { EditorComponent } from 'ngx-monaco-editor-v2';\r\n\r\nlet NEXT_ID = 0;\r\n\r\n@Component({\r\n selector: 'cmat-code-editor',\r\n templateUrl: './code-editor.component.html',\r\n styleUrls: ['./code-editor.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [EditorComponent]\r\n})\r\nexport class CmatCodeEditorComponent implements OnDestroy {\r\n readonly id = `cmat-code-editor-${NEXT_ID++}`;\r\n\r\n readonly value = input<string>('');\r\n readonly language = input<string>('typescript');\r\n readonly height = input<string>('320px');\r\n readonly readOnly = input<boolean>(false);\r\n\r\n readonly valueChange = output<string>();\r\n\r\n readonly options = input<Record<string, unknown>>({\r\n minimap: { enabled: false },\r\n fontSize: 14,\r\n automaticLayout: true,\r\n scrollBeyondLastLine: false,\r\n wordWrap: 'on'\r\n });\r\n\r\n readonly model = computed(() => ({\r\n value: this.value(),\r\n language: this.language(),\r\n uri: `inmemory://${this.id}`\r\n }));\r\n\r\n readonly editorOptions = computed(() => ({\r\n ...this.options(),\r\n readOnly: this.readOnly(),\r\n theme: this.options()?.theme ?? (this._isDarkTheme ? 'vs-dark' : 'vs')\r\n }));\r\n\r\n private _editorInstance: editor.IStandaloneCodeEditor | null = null;\r\n private _contentChangeDisposable: IDisposable | null = null;\r\n private _isUpdatingFromOutside = false;\r\n private readonly _document = inject(DOCUMENT);\r\n\r\n constructor() {\r\n // 同步外部 value 变化到编辑器\r\n effect(() => {\r\n const newVal = this.value();\r\n const editor = this._editorInstance;\r\n\r\n if (editor) {\r\n // 防止在模型未就绪时操作\r\n if (!editor.getModel()) return;\r\n\r\n const currentVal = editor.getValue();\r\n\r\n // 只有当值真正不同且不是由内部输入引起时才设置\r\n if (currentVal !== newVal && !this._isUpdatingFromOutside) {\r\n // 保存光标位置\r\n const position = editor.getPosition();\r\n\r\n this._isUpdatingFromOutside = true;\r\n editor.setValue(newVal);\r\n\r\n // 恢复光标位置\r\n if (position) {\r\n editor.setPosition(position);\r\n }\r\n this._isUpdatingFromOutside = false;\r\n }\r\n }\r\n });\r\n }\r\n\r\n private get _isDarkTheme(): boolean {\r\n return this._document.documentElement.classList.contains('dark') || this._document.body.classList.contains('dark');\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this._contentChangeDisposable) {\r\n this._contentChangeDisposable.dispose();\r\n this._contentChangeDisposable = null;\r\n }\r\n this._editorInstance = null;\r\n }\r\n\r\n onEditorInit(editor: editor.IStandaloneCodeEditor): void {\r\n this._editorInstance = editor;\r\n\r\n // 1. 初始化时设置值\r\n const initialValue = this.value();\r\n if (initialValue) {\r\n editor.setValue(initialValue);\r\n }\r\n\r\n this._contentChangeDisposable = editor.onDidChangeModelContent(() => {\r\n // 如果是外部更新引起的,不发出事件,避免循环\r\n if (this._isUpdatingFromOutside) {\r\n return;\r\n }\r\n\r\n // 直接从编辑器实例获取最新值\r\n const newValue = editor.getValue();\r\n this.valueChange.emit(newValue);\r\n });\r\n }\r\n\r\n\r\n}","<!-- eslint-disable @angular-eslint/template/no-inline-styles -->\r\n@defer (on viewport) {\r\n <div class=\"rounded-2xl border border-default bg-card p-2 shadow-sm\">\r\n <ngx-monaco-editor \r\n class=\"block\" \r\n [style.height]=\"height()\" \r\n [options]=\"editorOptions()\" \r\n [model]=\"model()\"\r\n (onInit)=\"onEditorInit($event)\"\r\n ></ngx-monaco-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]=\"height()\">\r\n 代码编辑器加载中...\r\n </div>\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;AAIA,IAAI,OAAO,GAAG,CAAC;MASF,uBAAuB,CAAA;AAmChC,IAAA,WAAA,GAAA;AAlCS,QAAA,IAAA,CAAA,EAAE,GAAG,CAAA,iBAAA,EAAoB,OAAO,EAAE,EAAE;QAEpC,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,EAAE;kFAAC;QACzB,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAS,YAAY;qFAAC;QACtC,IAAA,CAAA,MAAM,GAAG,KAAK,CAAS,OAAO;mFAAC;QAC/B,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAU,KAAK;qFAAC;QAEhC,IAAA,CAAA,WAAW,GAAG,MAAM,EAAU;QAE9B,IAAA,CAAA,OAAO,GAAG,KAAK,CAA0B;AAC9C,YAAA,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;AAC3B,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,eAAe,EAAE,IAAI;AACrB,YAAA,oBAAoB,EAAE,KAAK;AAC3B,YAAA,QAAQ,EAAE;AACb,SAAA;oFAAC;AAEO,QAAA,IAAA,CAAA,KAAK,GAAG,QAAQ,CAAC,OAAO;AAC7B,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AACnB,YAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;AACzB,YAAA,GAAG,EAAE,CAAA,WAAA,EAAc,IAAI,CAAC,EAAE,CAAA;SAC7B,CAAC;kFAAC;AAEM,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAC,OAAO;YACrC,GAAG,IAAI,CAAC,OAAO,EAAE;AACjB,YAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;YACzB,KAAK,
|
|
1
|
+
{"version":3,"file":"cmat-components-code-editor.mjs","sources":["../../../projects/cmat/components/code-editor/code-editor.component.ts","../../../projects/cmat/components/code-editor/code-editor.component.html","../../../projects/cmat/components/code-editor/cmat-components-code-editor.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, effect, input, output, OnDestroy, inject, DOCUMENT } from '@angular/core';\r\nimport type { editor, IDisposable } from 'monaco-editor';\r\nimport { EditorComponent } from 'ngx-monaco-editor-v2';\r\n\r\nlet NEXT_ID = 0;\r\n\r\n@Component({\r\n selector: 'cmat-code-editor',\r\n templateUrl: './code-editor.component.html',\r\n styleUrls: ['./code-editor.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [EditorComponent]\r\n})\r\nexport class CmatCodeEditorComponent implements OnDestroy {\r\n readonly id = `cmat-code-editor-${NEXT_ID++}`;\r\n\r\n readonly value = input<string>('');\r\n readonly language = input<string>('typescript');\r\n readonly height = input<string>('320px');\r\n readonly readOnly = input<boolean>(false);\r\n\r\n readonly valueChange = output<string>();\r\n\r\n readonly options = input<Record<string, unknown>>({\r\n minimap: { enabled: false },\r\n fontSize: 14,\r\n automaticLayout: true,\r\n scrollBeyondLastLine: false,\r\n wordWrap: 'on'\r\n });\r\n\r\n readonly model = computed(() => ({\r\n value: this.value(),\r\n language: this.language(),\r\n uri: `inmemory://${this.id}`\r\n }));\r\n\r\n readonly editorOptions = computed(() => ({\r\n ...this.options(),\r\n readOnly: this.readOnly(),\r\n theme: (this.options()?.theme as string) ?? (this._isDarkTheme ? 'vs-dark' : 'vs')\r\n }));\r\n\r\n private _editorInstance: editor.IStandaloneCodeEditor | null = null;\r\n private _contentChangeDisposable: IDisposable | null = null;\r\n private _isUpdatingFromOutside = false;\r\n private readonly _document = inject(DOCUMENT);\r\n\r\n constructor() {\r\n // 同步外部 value 变化到编辑器\r\n effect(() => {\r\n const newVal = this.value();\r\n const editor = this._editorInstance;\r\n\r\n if (editor) {\r\n // 防止在模型未就绪时操作\r\n if (!editor.getModel()) return;\r\n\r\n const currentVal = editor.getValue();\r\n\r\n // 只有当值真正不同且不是由内部输入引起时才设置\r\n if (currentVal !== newVal && !this._isUpdatingFromOutside) {\r\n // 保存光标位置\r\n const position = editor.getPosition();\r\n\r\n this._isUpdatingFromOutside = true;\r\n editor.setValue(newVal);\r\n\r\n // 恢复光标位置\r\n if (position) {\r\n editor.setPosition(position);\r\n }\r\n this._isUpdatingFromOutside = false;\r\n }\r\n }\r\n });\r\n }\r\n\r\n private get _isDarkTheme(): boolean {\r\n return this._document.documentElement.classList.contains('dark') || this._document.body.classList.contains('dark');\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this._contentChangeDisposable) {\r\n this._contentChangeDisposable.dispose();\r\n this._contentChangeDisposable = null;\r\n }\r\n this._editorInstance = null;\r\n }\r\n\r\n onEditorInit(editor: editor.IStandaloneCodeEditor): void {\r\n this._editorInstance = editor;\r\n\r\n // 1. 初始化时设置值\r\n const initialValue = this.value();\r\n if (initialValue) {\r\n editor.setValue(initialValue);\r\n }\r\n\r\n this._contentChangeDisposable = editor.onDidChangeModelContent(() => {\r\n // 如果是外部更新引起的,不发出事件,避免循环\r\n if (this._isUpdatingFromOutside) {\r\n return;\r\n }\r\n\r\n // 直接从编辑器实例获取最新值\r\n const newValue = editor.getValue();\r\n this.valueChange.emit(newValue);\r\n });\r\n }\r\n\r\n\r\n}","<!-- eslint-disable @angular-eslint/template/no-inline-styles -->\r\n@defer (on viewport) {\r\n <div class=\"rounded-2xl border border-default bg-card p-2 shadow-sm\">\r\n <ngx-monaco-editor \r\n class=\"block\" \r\n [style.height]=\"height()\" \r\n [options]=\"editorOptions()\" \r\n [model]=\"model()\"\r\n (onInit)=\"onEditorInit($event)\"\r\n ></ngx-monaco-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]=\"height()\">\r\n 代码编辑器加载中...\r\n </div>\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -103,10 +103,10 @@ class CmatColorCoordinates {
|
|
|
103
103
|
top,
|
|
104
104
|
});
|
|
105
105
|
}
|
|
106
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
107
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.
|
|
106
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatColorCoordinates, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
107
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.6", type: CmatColorCoordinates, isStandalone: true, selector: "[cmat-color-coordinates], [cmatColorCoordinates]", inputs: { percentX: { classPropertyName: "percentX", publicName: "percentX", isSignal: true, isRequired: false, transformFunction: null }, percentY: { classPropertyName: "percentY", publicName: "percentY", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { coordinatesChange: "coordinatesChange" }, host: { listeners: { "pointerdown": "onDragStart($event)", "keydown": "onKeyDown($event)" } }, ngImport: i0 }); }
|
|
108
108
|
}
|
|
109
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
109
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatColorCoordinates, decorators: [{
|
|
110
110
|
type: Directive,
|
|
111
111
|
args: [{
|
|
112
112
|
selector: '[cmat-color-coordinates], [cmatColorCoordinates]',
|
|
@@ -172,10 +172,10 @@ class CmatColorAlphaSlider {
|
|
|
172
172
|
this.change.emit({ ...hsl, a, source: 'rgb' });
|
|
173
173
|
}
|
|
174
174
|
}
|
|
175
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
176
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.
|
|
175
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatColorAlphaSlider, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
176
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.6", type: CmatColorAlphaSlider, isStandalone: true, selector: "cmat-color-alpha-slider", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: true, transformFunction: null }, direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { change: "change" }, host: { properties: { "class.cmat-color-alpha-vertical": "direction()=== \"vertical\"", "class.cmat-color-alpha-horizontal": "direction() === \"horizontal\"" }, classAttribute: "cmat-color-alpha-slider" }, ngImport: i0, template: "<!-- eslint-disable @angular-eslint/template/no-inline-styles -->\r\n<div class=\"cmat-color-alpha-slider-track\" cmatColorCoordinates [style.background-image]=\"gradient()\" [percentX]=\"posX()\"\r\n [percentY]=\"posY()\" (coordinatesChange)=\"handleChange($event)\">\r\n <div class=\"cmat-color-alpha-slider-pointer\" [style.left.%]=\"posX()\" [style.top.%]=\"posY()\">\r\n <button class=\"cmat-color-alpha-slider-thumb\" type=\"button\">\r\n <!-- -->\r\n </button>\r\n </div>\r\n</div>", styles: [".cmat-color-alpha-slider{position:relative;display:block;width:var(--cp-slider-width, auto);height:var(--cp-slider-height, 10px);border-radius:var(--cp-slider-shape, 2px);background-color:#fff;background-image:conic-gradient(transparent 25%,#ccc 25% 50%,transparent 50% 75%,#ccc 75%);background-size:10px 10px}.cmat-color-alpha-slider.cmat-color-alpha-vertical{width:var(--cp-slider-width, 10px);height:var(--cp-slider-height, auto)}.cmat-color-alpha-slider-track{position:relative;width:100%;height:100%;border-radius:var(--cp-slider-shape, 2px);touch-action:none}.cmat-color-alpha-slider-pointer{position:absolute}.cmat-color-alpha-slider-thumb{display:block;width:var(--cp-slider-thumb-width, 12px);height:var(--cp-slider-thumb-height, 12px);padding:0;border:none;border-radius:var(--cp-slider-thumb-shape, 6px);transform:translate(-50%,calc((var(--cp-slider-thumb-height, 12px) - var(--cp-slider-height, 10px)) / -2));background-color:var(--cp-slider-thumb-background-color, #f2f2f2);outline:1px solid var(--cp-slider-thumb-outline-color, rgba(0, 0, 0, .04));box-shadow:var(--cp-slider-thumb-shadow, 0 1px 4px 0 rgba(0, 0, 0, .32), 0 2px 8px 0 rgba(0, 0, 0, .16))}.cmat-color-alpha-slider-thumb:focus-visible{outline-color:var(--cp-slider-thumb-focus-outline-color, var(--cp-input-focus-outline-color, #0d99ff))}.cmat-color-alpha-vertical .cmat-color-alpha-slider-thumb{transform:translate(calc((var(--cp-slider-thumb-width, 12px) - var(--cp-slider-width, 10px)) / -2),-50%)}\n"], dependencies: [{ kind: "directive", type: CmatColorCoordinates, selector: "[cmat-color-coordinates], [cmatColorCoordinates]", inputs: ["percentX", "percentY"], outputs: ["coordinatesChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
177
177
|
}
|
|
178
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
178
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatColorAlphaSlider, decorators: [{
|
|
179
179
|
type: Component,
|
|
180
180
|
args: [{ selector: 'cmat-color-alpha-slider', imports: [CmatColorCoordinates], host: {
|
|
181
181
|
'class': 'cmat-color-alpha-slider',
|
|
@@ -232,10 +232,10 @@ class CmatColorHueSlider {
|
|
|
232
232
|
this.change.emit({ ...hsl, h, source: 'rgb' });
|
|
233
233
|
}
|
|
234
234
|
}
|
|
235
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
236
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.
|
|
235
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatColorHueSlider, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
236
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.6", type: CmatColorHueSlider, isStandalone: true, selector: "cmat-color-hue-slider", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: true, transformFunction: null }, direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { change: "change" }, host: { properties: { "class.cmat-color-hue-vertical": "direction() === \"vertical\"", "class.cmat-color-hue-horizontal": "direction() === \"horizontal\"" }, classAttribute: "cmat-color-hue-slider" }, ngImport: i0, template: "<!-- eslint-disable @angular-eslint/template/no-inline-styles -->\r\n<div class=\"cmat-color-hue-slider-track\" cmatColorCoordinates [percentX]=\"posX()\" [percentY]=\"posY()\"\r\n (coordinatesChange)=\"handleChange($event)\">\r\n <div class=\"cmat-color-hue-slider-pointer\" [style.left.%]=\"posX()\" [style.top.%]=\"posY()\">\r\n <button class=\"cmat-color-hue-slider-thumb\" type=\"button\">\r\n <!-- -->\r\n </button>\r\n </div>\r\n</div>", styles: [".cmat-color-hue-slider{position:relative;display:block;width:var(--cp-slider-width, auto);height:var(--cp-slider-height, 10px);border-radius:var(--cp-slider-shape, 2px);background-image:linear-gradient(to right,red,#ff0 17%,#0f0 33%,#0ff,#00f 67%,#f0f 83%,red)}.cmat-color-hue-slider.cmat-color-hue-vertical{width:var(--cp-slider-width, 10px);height:var(--cp-slider-height, auto);background-image:linear-gradient(to top,red,#ff0 17%,#0f0 33%,#0ff,#00f 67%,#f0f 83%,red)}.cmat-color-hue-slider-track{position:relative;width:100%;height:100%;border-radius:var(--cp-slider-shape, 2px);touch-action:none}.cmat-color-hue-slider-pointer{position:absolute}.cmat-color-hue-slider-thumb{display:block;width:var(--cp-slider-thumb-width, 12px);height:var(--cp-slider-thumb-height, 12px);padding:0;border:none;border-radius:var(--cp-slider-thumb-shape, 6px);transform:translate(-50%,calc((var(--cp-slider-thumb-height, 12px) - var(--cp-slider-height, 10px)) / -2));background-color:var(--cp-slider-thumb-background-color, #f2f2f2);outline:1px solid var(--cp-slider-thumb-outline-color, rgba(0, 0, 0, .04));box-shadow:var(--cp-slider-thumb-shadow, 0 1px 4px 0 rgba(0, 0, 0, .32), 0 2px 8px 0 rgba(0, 0, 0, .16))}.cmat-color-hue-slider-thumb:focus-visible{outline-color:var(--cp-slider-thumb-focus-outline-color, var(--cp-input-focus-outline-color, #0d99ff))}.cmat-color-hue-vertical .cmat-color-hue-slider-thumb{transform:translate(calc((var(--cp-slider-thumb-width, 12px) - var(--cp-slider-width, 10px)) / -2),-50%)}\n"], dependencies: [{ kind: "directive", type: CmatColorCoordinates, selector: "[cmat-color-coordinates], [cmatColorCoordinates]", inputs: ["percentX", "percentY"], outputs: ["coordinatesChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
237
237
|
}
|
|
238
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
238
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatColorHueSlider, decorators: [{
|
|
239
239
|
type: Component,
|
|
240
240
|
args: [{ selector: 'cmat-color-hue-slider', imports: [CmatColorCoordinates], host: {
|
|
241
241
|
'class': 'cmat-color-hue-slider',
|
|
@@ -247,12 +247,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImpor
|
|
|
247
247
|
}], ctorParameters: () => [], propDecorators: { color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: true }] }], direction: [{ type: i0.Input, args: [{ isSignal: true, alias: "direction", required: false }] }], change: [{ type: i0.Output, args: ["change"] }] } });
|
|
248
248
|
|
|
249
249
|
class CmatColorIconButton {
|
|
250
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
251
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.
|
|
250
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatColorIconButton, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
251
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.6", type: CmatColorIconButton, isStandalone: true, selector: "cmat-color-icon-button", host: { classAttribute: "cmat-color-icon-button" }, ngImport: i0, template: `
|
|
252
252
|
<ng-content />
|
|
253
253
|
`, isInline: true, styles: [".cmat-color-icon-button{display:inline-block;width:24px;height:24px}.cmat-color-icon-button button{width:100%;height:100%;padding:2px;color:var(--cp-icon-button-text-color, inherit);background-color:var(--cp-icon-button-background-color, transparent);border:none;border-radius:var(--cp-icon-button-shape, 4px)}.cmat-color-icon-button button:hover{background-color:var(--cp-icon-button-hover-background-color, rgba(0, 0, 0, .06))}.cmat-color-icon-button button:active{background-color:var(--cp-icon-button-active-background-color, rgba(0, 0, 0, .12))}.cmat-color-icon-button button:focus-visible{background-color:var(--cp-icon-button-focus-background-color, transparent);outline:1px solid var(--cp-icon-button-focus-outline-color, #0d99ff);outline-offset:-1px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
254
254
|
}
|
|
255
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
255
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatColorIconButton, decorators: [{
|
|
256
256
|
type: Component,
|
|
257
257
|
args: [{ selector: 'cmat-color-icon-button', imports: [], template: `
|
|
258
258
|
<ng-content />
|
|
@@ -352,10 +352,10 @@ class CmatColorInputField {
|
|
|
352
352
|
this.valueChange.emit(target.value);
|
|
353
353
|
}
|
|
354
354
|
}
|
|
355
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
356
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.
|
|
355
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatColorInputField, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
356
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: CmatColorInputField, isStandalone: true, selector: "cmat-color-input-field", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, host: { classAttribute: "cmat-color-input-field" }, ngImport: i0, template: "<input spellCheck=\"false\" [value]=\"currentValue()\" [placeholder]=\"placeholder()\" [attr.aria-labelledby]=\"uniqueId\"\r\n (keydown)=\"handleKeydown($event)\" (keyup)=\"handleKeyup($event)\" (focus)=\"handleFocus($event)\"\r\n (focusout)=\"handleFocusOut($event)\" />\r\n@if (label()) {\r\n<span [id]=\"uniqueId\">{{ label() }}</span>\r\n}", styles: [".cmat-color-input-field{font-size:11px;text-align:center}.cmat-color-input-field input{box-sizing:border-box;width:100%;height:24px;border:none;border-radius:var(--cp-input-shape, 4px);background-color:var(--cp-input-background-color, transparent);outline:1px solid var(--cp-input-outline-color, #e6e6e6);font-family:var(--cp-input-text-font, monospace);font-size:inherit;text-align:inherit}.cmat-color-input-field input:hover{outline-color:var(--cp-input-hover-outline-color, #d6d6d6)}.cmat-color-input-field input:focus{outline-color:var(--cp-input-focus-outline-color, #0d99ff)}.cmat-color-input-field span{display:block;margin-top:8px;color:#969696;text-transform:uppercase}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
357
357
|
}
|
|
358
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
358
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatColorInputField, decorators: [{
|
|
359
359
|
type: Component,
|
|
360
360
|
args: [{ selector: 'cmat-color-input-field', host: {
|
|
361
361
|
class: 'cmat-color-input-field',
|
|
@@ -564,10 +564,10 @@ class CmatColorInputFields {
|
|
|
564
564
|
});
|
|
565
565
|
}
|
|
566
566
|
}
|
|
567
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
568
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.
|
|
567
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatColorInputFields, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
568
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: CmatColorInputFields, isStandalone: true, selector: "cmat-color-input-fields", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: true, transformFunction: null }, format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, hideAlpha: { classPropertyName: "hideAlpha", publicName: "hideAlpha", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { format: "formatChange", formatChanged: "formatChanged", valueChange: "valueChange" }, host: { classAttribute: "cmat-color-input-fields" }, ngImport: i0, template: "<div class=\"cmat-color-input-field-wrapper\">\r\n @if (format() === 'hex') {\r\n <cmat-color-input-field label=\"hex\" [value]=\"hex()\" (valueChange)=\"handleChange($event)\" />\r\n }\r\n @if (format() === 'rgb') {\r\n <cmat-color-input-field label=\"r\" [value]=\"rgb()!.r\" (valueChange)=\"handleChange($event)\" />\r\n <cmat-color-input-field label=\"g\" [value]=\"rgb()!.g\" (valueChange)=\"handleChange($event)\" />\r\n <cmat-color-input-field label=\"b\" [value]=\"rgb()!.b\" (valueChange)=\"handleChange($event)\" />\r\n\r\n @if (!hideAlpha()) {\r\n <cmat-color-input-field label=\"a\" [step]=\"0.01\" [value]=\"rgb()!.a\" (valueChange)=\"handleChange($event)\" />\r\n }\r\n }\r\n @if (format() === 'hsl') {\r\n <cmat-color-input-field label=\"h\" [value]=\"round(hsl()!.h)\" (valueChange)=\"handleChange($event)\" />\r\n <cmat-color-input-field label=\"s\" [value]=\"round(hsl()!.s * 100) + '%'\" (valueChange)=\"handleChange($event)\" />\r\n <cmat-color-input-field label=\"l\" [value]=\"round(hsl()!.l * 100) + '%'\" (valueChange)=\"handleChange($event)\" />\r\n\r\n @if (!hideAlpha()) {\r\n <cmat-color-input-field label=\"a\" [step]=\"0.01\" [value]=\"hsl()!.a\" (valueChange)=\"handleChange($event)\" />\r\n }\r\n }\r\n</div>\r\n\r\n<cmat-color-icon-button>\r\n <button type=\"button\" (click)=\"toggleColorFormat()\">\r\n <svg viewBox=\"0 0 24 24\">\r\n <path fill=\"currentColor\"\r\n d=\"M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z\" />\r\n </svg>\r\n </button>\r\n</cmat-color-icon-button>", styles: [".cmat-color-input-fields{display:flex;align-items:center;gap:8px;width:100%}.cmat-color-input-field-wrapper{flex:1;display:flex;gap:8px}.cmat-color-input-field-wrapper .cmat-color-input-field{flex:1}\n"], dependencies: [{ kind: "component", type: CmatColorInputField, selector: "cmat-color-input-field", inputs: ["label", "step", "placeholder", "value"], outputs: ["valueChange"] }, { kind: "component", type: CmatColorIconButton, selector: "cmat-color-icon-button" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
569
569
|
}
|
|
570
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
570
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatColorInputFields, decorators: [{
|
|
571
571
|
type: Component,
|
|
572
572
|
args: [{ selector: 'cmat-color-input-fields', imports: [CmatColorInputField, CmatColorIconButton], host: {
|
|
573
573
|
class: 'cmat-color-input-fields',
|
|
@@ -621,10 +621,10 @@ class CmatColorSaturationPicker {
|
|
|
621
621
|
el.scrollLeft = 0;
|
|
622
622
|
}
|
|
623
623
|
}
|
|
624
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
625
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.
|
|
624
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatColorSaturationPicker, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
625
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.6", type: CmatColorSaturationPicker, isStandalone: true, selector: "cmat-color-saturation-picker", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { change: "change" }, host: { listeners: { "scroll": "onScroll()" }, classAttribute: "cmat-color-saturation-picker" }, ngImport: i0, template: "<!-- eslint-disable @angular-eslint/template/no-inline-styles -->\r\n<div class=\"cmat-color-saturation-picker-content\" cmatColorCoordinates [percentX]=\"posX()\" [percentY]=\"posY()\"\r\n [style.background-color]=\"bgColor()\" (coordinatesChange)=\"handleChange($event)\">\r\n <div class=\"cmat-color-saturation-picker-pointer\"\r\n [style.left.%]=\"posX()\" [style.top.%]=\"posY()\">\r\n <button class=\"cmat-color-saturation-picker-thumb\" type=\"button\">\r\n <!-- -->\r\n </button>\r\n </div>\r\n</div>", styles: [".cmat-color-saturation-picker{position:relative;display:block;width:100%;padding-bottom:55%;border-radius:var(--cp-saturation-picker-shape, 4px);overflow:hidden;box-shadow:0 0 0 1px #ffffff1f,0 0 0 1px #0000001f}.cmat-color-saturation-picker-content{position:absolute;inset:0;touch-action:none;background-image:linear-gradient(to top,#000,#0000),linear-gradient(to right,#fff,#fff0)}.cmat-color-saturation-picker-pointer{position:absolute}.cmat-color-saturation-picker-thumb{display:block;width:var(--cp-saturation-picker-thumb-size, 12px);height:var(--cp-saturation-picker-thumb-size, 12px);padding:0;border-radius:var(--cp-saturation-picker-thumb-shape, 6px);border:none;background:none;outline:1px solid var(--cp-saturation-picker-thumb-outline-color, #fff);outline-offset:-1px;transform:translate(-50%,-50%);box-shadow:var(--cp-saturation-picker-thumb-shadow, 0 2px 6px 0 rgba(0, 0, 0, .32))}.cmat-color-saturation-picker-thumb:focus-visible{outline-color:var(--cp-saturation-picker-thumb-focus-outline-color, var(--cp-input-focus-outline-color, #0d99ff))}\n"], dependencies: [{ kind: "directive", type: CmatColorCoordinates, selector: "[cmat-color-coordinates], [cmatColorCoordinates]", inputs: ["percentX", "percentY"], outputs: ["coordinatesChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
626
626
|
}
|
|
627
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
627
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatColorSaturationPicker, decorators: [{
|
|
628
628
|
type: Component,
|
|
629
629
|
args: [{ selector: 'cmat-color-saturation-picker', imports: [CmatColorCoordinates], host: {
|
|
630
630
|
'class': 'cmat-color-saturation-picker',
|
|
@@ -767,8 +767,8 @@ class CmatColorPickerComponent {
|
|
|
767
767
|
console.warn(err);
|
|
768
768
|
}
|
|
769
769
|
}
|
|
770
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
771
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.
|
|
770
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatColorPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
771
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: CmatColorPickerComponent, isStandalone: true, selector: "cmat-color-picker", inputs: { format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, hideAlpha: { classPropertyName: "hideAlpha", publicName: "hideAlpha", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { format: "formatChange", value: "valueChange", disabled: "disabledChange", formatChanged: "formatChanged", valueChanged: "valueChanged", colorChanged: "colorChanged" }, host: { classAttribute: "cmat-color-picker" }, providers: [
|
|
772
772
|
{
|
|
773
773
|
provide: NG_VALUE_ACCESSOR,
|
|
774
774
|
useExisting: forwardRef(() => CmatColorPickerComponent),
|
|
@@ -776,7 +776,7 @@ class CmatColorPickerComponent {
|
|
|
776
776
|
},
|
|
777
777
|
], ngImport: i0, template: "<cmat-color-saturation-picker [color]=\"parsedColor()!\" (change)=\"handleChange($event)\" />\r\n\r\n<div class=\"cmat-color-picker-controls\">\r\n @if (supportEyeDropper) {\r\n <cmat-color-icon-button>\r\n <button type=\"button\" (click)=\"openEyeDropper($event)\">\r\n <svg viewBox=\"0 0 24 24\">\r\n <path fill=\"currentColor\"\r\n d=\"M19.35,11.72L17.22,13.85L15.81,12.43L8.1,20.14L3.5,22L2,20.5L3.86,15.9L11.57,8.19L10.15,6.78L12.28,4.65L19.35,11.72M16.76,3C17.93,1.83 19.83,1.83 21,3C22.17,4.17 22.17,6.07 21,7.24L19.08,9.16L14.84,4.92L16.76,3M5.56,17.03L4.5,19.5L6.97,18.44L14.4,11L13,9.6L5.56,17.03Z\" />\r\n </svg>\r\n </button>\r\n </cmat-color-icon-button>\r\n }\r\n\r\n <button class=\"cmat-color-preview\" type=\"button\" (click)=\"copyColor()\">\r\n <div class=\"cmat-color-preview-bg\" [ngStyle]=\"{'background-color':value()}\"></div>\r\n <div class=\"cmat-color-preview-backdrop\">\r\n @if (this.isCopied()) {\r\n <svg viewBox=\"0 0 24 24\">\r\n <path fill=\"currentColor\" d=\"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\" />\r\n </svg>\r\n } @else {\r\n <svg viewBox=\"0 0 24 24\">\r\n <path fill=\"currentColor\"\r\n d=\"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z\" />\r\n </svg>\r\n }\r\n </div>\r\n </button>\r\n\r\n <div class=\"cmat-color-hue-alpha\">\r\n <cmat-color-hue-slider [color]=\"parsedColor()!\" (change)=\"handleChange($event)\" />\r\n\r\n @if (!hideAlpha()) {\r\n <cmat-color-alpha-slider [color]=\"parsedColor()!\" (change)=\"handleChange($event)\" />\r\n }\r\n </div>\r\n</div>\r\n\r\n<div class=\"cmat-color-picker-controls\">\r\n <cmat-color-input-fields [color]=\"parsedColor()!\" [hideAlpha]=\"hideAlpha()\" [(format)]=\"format\"\r\n (valueChange)=\"handleChange($event)\" (formatChange)=\"handleFormatChange()\" />\r\n</div>", styles: [".cmat-color-picker{--cp-container-text-color: rgba(0, 0, 0, .9);--cp-container-background-color: #fff;--cp-input-outline-color: #e6e6e6;--cp-input-hover-outline-color: #d6d6d6;--cp-input-focus-outline-color: #0d99ff;--cp-icon-button-hover-background-color: rgba(0, 0, 0, .06);--cp-icon-button-active-background-color: rgba(0, 0, 0, .12);--cp-slider-thumb-background-color: #f2f2f2;--cp-slider-thumb-outline-color: rgba(0, 0, 0, .04)}.cmat-color-picker:is(.dark *){--cp-container-text-color: #fff;--cp-container-background-color: #2c2c2c;--cp-input-outline-color: #444;--cp-input-hover-outline-color: #545454;--cp-input-focus-outline-color: #0c8ce9;--cp-icon-button-hover-background-color: rgba(255, 255, 255, .06);--cp-icon-button-active-background-color: rgba(255, 255, 255, .12);--cp-slider-thumb-background-color: #3c3c3c;--cp-slider-thumb-outline-color: rgba(255, 255, 255, .24)}.cmat-color-picker{box-sizing:border-box;display:block;width:var(--cp-container-width, 240px);padding:var(--cp-container-padding, 12px);margin:var(--cp-container-margin, 0);color:var(--cp-container-text-color);background-color:var(--cp-container-background-color);border-radius:var(--cp-container-shape, 8px);box-shadow:var(--cp-container-elevation-shadow, inset 0 0 1px 0 rgba(255, 255, 255, .64), 0 2px 4px 0 rgba(0, 0, 0, .16), 0 8px 16px 0 rgba(0, 0, 0, .12), 0 0 1px 0 rgba(0, 0, 0, .12))}.cmat-color-picker-controls{display:flex;align-items:center;gap:10px;margin-top:16px}.cmat-color-preview{width:32px;height:32px;border-radius:16px;position:relative;overflow:hidden;border:none;outline:none;background-color:#fff;background-image:conic-gradient(transparent 25%,#ccc 25% 50%,transparent 50% 75%,#ccc 75%);background-size:10px 10px;box-shadow:0 0 0 1px #ffffff1f,0 0 0 1px #0000001f;cursor:pointer}.cmat-color-preview:hover .cmat-color-preview-backdrop,.cmat-color-preview:focus-visible .cmat-color-preview-backdrop{opacity:1}.cmat-color-preview-bg{position:absolute;inset:0}.cmat-color-preview-backdrop{position:absolute;inset:0;padding:6px;background-color:#00000052;color:#fff;opacity:0;pointer-events:none}.cmat-color-hue-alpha{flex:1;display:flex;flex-direction:column;gap:8px}\n"], dependencies: [{ kind: "component", type: CmatColorSaturationPicker, selector: "cmat-color-saturation-picker", inputs: ["color"], outputs: ["change"] }, { kind: "component", type: CmatColorHueSlider, selector: "cmat-color-hue-slider", inputs: ["color", "direction"], outputs: ["change"] }, { kind: "component", type: CmatColorAlphaSlider, selector: "cmat-color-alpha-slider", inputs: ["color", "direction"], outputs: ["change"] }, { kind: "component", type: CmatColorInputFields, selector: "cmat-color-input-fields", inputs: ["color", "format", "hideAlpha"], outputs: ["formatChange", "formatChanged", "valueChange"] }, { kind: "component", type: CmatColorIconButton, selector: "cmat-color-icon-button" }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
778
778
|
}
|
|
779
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
779
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatColorPickerComponent, decorators: [{
|
|
780
780
|
type: Component,
|
|
781
781
|
args: [{ selector: 'cmat-color-picker', imports: [
|
|
782
782
|
CmatColorSaturationPicker,
|
|
@@ -822,10 +822,10 @@ class CmatColorPickerButtonComponent {
|
|
|
822
822
|
closeMenu() {
|
|
823
823
|
this.isOpen.set(false);
|
|
824
824
|
}
|
|
825
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.
|
|
826
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.
|
|
825
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatColorPickerButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
826
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.6", type: CmatColorPickerButtonComponent, isStandalone: true, selector: "cmat-color-picker-button", inputs: { format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, hideAlpha: { classPropertyName: "hideAlpha", publicName: "hideAlpha", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { format: "formatChange", value: "valueChange", disabled: "disabledChange", formatChanged: "formatChanged", valueChanged: "valueChanged", colorChanged: "colorChanged" }, ngImport: i0, template: "<!-- eslint-disable @angular-eslint/template/no-inline-styles -->\r\n<section>\r\n <mat-form-field class=\"w-full\">\r\n <mat-label>{{ label() }}</mat-label>\r\n <input matInput type=\"text\" [placeholder]=\"placeholder()\" [disabled]=\"disabled()\" [(ngModel)]=\"value\"\r\n (ngModelChange)=\"valueChanged.emit($event);colorChanged.emit($event);\" />\r\n <button #trigger=\"cdkOverlayOrigin\" matPrefix cdkOverlayOrigin class=\"ml-2\"\r\n [ngClass]=\"{'pointer-events-none':disabled()}\"\r\n [style.color]=\"value()\" (click)=\"toggleMenu()\">\r\n <span></span>\r\n </button>\r\n </mat-form-field>\r\n</section>\r\n\r\n<ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"trigger\" [cdkConnectedOverlayOpen]=\"isOpen()\"\r\n (overlayOutsideClick)=\"closeMenu()\" (detach)=\"closeMenu()\">\r\n <cmat-color-picker [format]=\"format()\" [hideAlpha]=\"hideAlpha()\" [disabled]=\"disabled()\" [(value)]=\"value\"\r\n (formatChanged)=\"formatChanged.emit($event)\" (valueChanged)=\"valueChanged.emit($event)\"\r\n (colorChanged)=\"colorChanged.emit($event)\" />\r\n</ng-template>", styles: ["cmat-color-picker-button section{--outline-color: #b4b4b4;--hover-outline-color: var(--cmat-primary)}cmat-color-picker-button section:is(.dark *){--outline-color: #4d4d4d}cmat-color-picker-button section{display:flex;gap:8px}cmat-color-picker-button .input-group{display:flex;gap:8px}cmat-color-picker-button .input-group input{flex:1}cmat-color-picker-button button{display:inline-flex;width:32px;height:32px;padding:4px;background:none;border-radius:8px;border:1px solid var(--outline-color);cursor:pointer}cmat-color-picker-button button:after{content:\"\";display:inline-block;width:100%;height:100%;background-color:currentColor;border-radius:3px}cmat-color-picker-button button:hover,cmat-color-picker-button button:focus{border-color:var(--hover-outline-color)}cmat-color-picker-button input{padding:4px 8px;border-radius:8px;border:1px solid var(--outline-color);display:flex;flex:1 auto}cmat-color-picker-button input:hover,cmat-color-picker-button input:focus{border-color:var(--hover-outline-color)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CmatColorPickerComponent, selector: "cmat-color-picker", inputs: ["format", "value", "hideAlpha", "disabled"], outputs: ["formatChange", "valueChange", "disabledChange", "formatChanged", "valueChanged", "colorChanged"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation", "cdkConnectedOverlayUsePopover", "cdkConnectedOverlayMatchWidth", "cdkConnectedOverlay"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.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: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
827
827
|
}
|
|
828
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.
|
|
828
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatColorPickerButtonComponent, decorators: [{
|
|
829
829
|
type: Component,
|
|
830
830
|
args: [{ selector: 'cmat-color-picker-button', imports: [
|
|
831
831
|
FormsModule, CmatColorPickerComponent, CdkConnectedOverlay, CdkOverlayOrigin,
|