@masterteam/components 0.0.140 → 0.0.141
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/assets/common.css +1 -1
- package/fesm2022/masterteam-components-entities.mjs +40 -3
- package/fesm2022/masterteam-components-entities.mjs.map +1 -1
- package/fesm2022/masterteam-components-select-field.mjs +2 -2
- package/fesm2022/masterteam-components-select-field.mjs.map +1 -1
- package/fesm2022/masterteam-components-tooltip.mjs +9 -5
- package/fesm2022/masterteam-components-tooltip.mjs.map +1 -1
- package/fesm2022/masterteam-components.mjs +262 -72
- package/fesm2022/masterteam-components.mjs.map +1 -1
- package/package.json +1 -1
- package/types/masterteam-components-entities.d.ts +30 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"masterteam-components-select-field.mjs","sources":["../../../../packages/masterteam/components/select-field/select-field.ts","../../../../packages/masterteam/components/select-field/select-field.html","../../../../packages/masterteam/components/select-field/masterteam-components-select-field.ts"],"sourcesContent":["import {\r\n Component,\r\n EventEmitter,\r\n HostBinding,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n signal,\r\n input,\r\n inject,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n effect,\r\n computed,\r\n} from '@angular/core';\r\n\r\nimport {\r\n ControlValueAccessor,\r\n FormsModule,\r\n NgControl,\r\n Validators,\r\n} from '@angular/forms';\r\nimport { Select } from 'primeng/select';\r\nimport { FieldValidation } from '@masterteam/components/field-validation';\r\nimport { isInvalid } from '@masterteam/components';\r\nimport { TranslocoModule } from '@jsverse/transloco';\r\nimport { Avatar } from '@masterteam/components/avatar';\r\n\r\n@Component({\r\n selector: 'mt-select-field',\r\n standalone: true,\r\n imports: [FormsModule, Select, FieldValidation, TranslocoModule, Avatar],\r\n templateUrl: './select-field.html',\r\n styleUrls: ['./select-field.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'block gap-1',\r\n },\r\n})\r\nexport class SelectField implements ControlValueAccessor, OnInit, OnChanges {\r\n cdr = inject(ChangeDetectorRef);\r\n @ViewChild('dropdown', { static: true })\r\n dropdown: Select;\r\n\r\n readonly field = input<boolean>(true);\r\n readonly label = input<string>('');\r\n readonly placeholder = input<string>('');\r\n readonly hasPlaceholderPrefix = input<boolean>(true);\r\n readonly class = input<string>('');\r\n readonly readonly = input<boolean>(false);\r\n readonly pInputs = input<Partial<Select>>();\r\n readonly options = input<any[] | undefined>(undefined);\r\n readonly optionValue = input<string | undefined>(undefined);\r\n readonly optionLabel = input<string | undefined>(undefined);\r\n readonly filter = input<boolean | undefined>(undefined);\r\n readonly filterBy = input<string | undefined>(undefined);\r\n readonly dataKey = input<string | undefined>(undefined);\r\n readonly showClear = input<boolean | undefined>(undefined);\r\n readonly clearAfterSelect = input<boolean | undefined>(undefined);\r\n readonly required = input<boolean>(false); // Add readonly required input\r\n readonly group = input<boolean>(false);\r\n readonly size = input<'small' | 'large' | ''>('');\r\n\r\n readonly pSelectSize = computed(() => this.size() as 'small' | 'large' | '');\r\n\r\n readonly panelSizeClass = computed(() =>\r\n this.size() === 'small' ? 'mt-select-panel-small' : '',\r\n );\r\n readonly optionGroupLabel = input<string>('label');\r\n readonly optionGroupChildren = input<string>('items');\r\n readonly loading = input<boolean>(false);\r\n readonly optionIcon = input<string>('icon');\r\n readonly optionIconColor = input<string>('color');\r\n readonly optionIconShape = input<string>('shape');\r\n readonly optionAvatarShape = input<'circle' | 'square'>('square');\r\n readonly optionGroupIcon = input<string>('icon');\r\n readonly optionGroupIconColor = input<string>('color');\r\n readonly optionGroupIconShape = input<string>('shape');\r\n readonly optionGroupAvatarShape = input<'circle' | 'square'>('square');\r\n\r\n @Output() onChange: EventEmitter<any> = new EventEmitter();\r\n\r\n @HostBinding('class') styleClass: string;\r\n\r\n requiredValidator = Validators.required;\r\n value = signal<any>(null);\r\n disabled = signal<boolean>(false);\r\n\r\n onTouched: () => void = () => {};\r\n onModelChange: (value: any) => void = () => {};\r\n\r\n public ngControl: NgControl | null = null;\r\n\r\n isInvalid = isInvalid;\r\n\r\n constructor() {\r\n try {\r\n this.ngControl = inject(NgControl, { self: true, optional: true });\r\n if (this.ngControl) {\r\n this.ngControl.valueAccessor = this;\r\n }\r\n } catch {\r\n this.ngControl = null;\r\n }\r\n effect(() => {\r\n if (this.ngControl?.control && this.required()) {\r\n this.ngControl.control.addValidators(Validators.required);\r\n this.ngControl.control.updateValueAndValidity();\r\n }\r\n });\r\n }\r\n\r\n applyInputsToDropdown() {\r\n // Object.assign(this.dropdown, this.pInputs());\r\n }\r\n\r\n ngOnInit() {\r\n this.styleClass = this.class();\r\n if (this.pInputs()) {\r\n this.applyInputsToDropdown();\r\n }\r\n }\r\n\r\n onValueChange(value: any) {\r\n this.onModelChange(value);\r\n this.value.set(value);\r\n this.onChange.emit(value);\r\n if (this.clearAfterSelect()) {\r\n this.clearSelection();\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['pInputs']) {\r\n this.applyInputsToDropdown();\r\n }\r\n }\r\n\r\n writeValue(value: string) {\r\n this.value.set(value);\r\n }\r\n\r\n registerOnChange(fn: any) {\r\n this.onModelChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(disabled: boolean) {\r\n this.disabled.set(disabled);\r\n }\r\n\r\n isGrouped(): boolean {\r\n return this.group();\r\n }\r\n\r\n // TODO: make this method work\r\n public clearSelection() {\r\n this.dropdown.clear(this.value());\r\n this.dropdown.value = null;\r\n this.value.set(null);\r\n this.onModelChange(null);\r\n this.onChange.emit(null);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n getOptionLabelValue(option: any): string {\r\n const resolvedOption = this.resolveOption(option);\r\n if (resolvedOption == null) return '';\r\n\r\n const labelKey = this.optionLabel();\r\n if (labelKey && typeof resolvedOption === 'object') {\r\n return this.resolveNestedValue(resolvedOption, labelKey) ?? '';\r\n }\r\n\r\n return typeof resolvedOption === 'object'\r\n ? (resolvedOption.label ?? '')\r\n : String(resolvedOption);\r\n }\r\n\r\n getOptionIcon(option: any): string | undefined {\r\n const resolvedOption = this.resolveOption(option);\r\n if (!resolvedOption || typeof resolvedOption !== 'object') return undefined;\r\n return resolvedOption[this.optionIcon()];\r\n }\r\n\r\n shouldRenderOptionColorSwatch(option: any): boolean {\r\n return !!this.getOptionSwatchColor(option) && !this.getOptionIcon(option);\r\n }\r\n\r\n getOptionSwatchColor(option: any): string | null {\r\n return this.resolveDisplayColor(this.getOptionColor(option));\r\n }\r\n\r\n getOptionAvatarBackground(option: any): string | null {\r\n return this.getAvatarBackgroundByColor(this.getOptionColor(option));\r\n }\r\n\r\n getOptionAvatarColor(option: any): string | null {\r\n return this.getAvatarColorByColor(this.getOptionColor(option));\r\n }\r\n\r\n getOptionAvatarShape(option: any): 'circle' | 'square' {\r\n const resolvedOption = this.resolveOption(option);\r\n if (!resolvedOption || typeof resolvedOption !== 'object') {\r\n return this.normalizeAvatarShape(this.optionAvatarShape());\r\n }\r\n\r\n return this.normalizeAvatarShape(\r\n resolvedOption[this.optionIconShape()] ?? this.optionAvatarShape(),\r\n );\r\n }\r\n\r\n getGroupLabelValue(group: any): string {\r\n if (group == null) return '';\r\n\r\n const groupLabelKey = this.optionGroupLabel();\r\n if (groupLabelKey && typeof group === 'object') {\r\n return group[groupLabelKey] ?? '';\r\n }\r\n\r\n return typeof group === 'object' ? (group.label ?? '') : String(group);\r\n }\r\n\r\n getGroupIcon(group: any): string | undefined {\r\n if (!group || typeof group !== 'object') return undefined;\r\n return group[this.optionGroupIcon()];\r\n }\r\n\r\n shouldRenderGroupColorSwatch(group: any): boolean {\r\n return !!this.getGroupSwatchColor(group) && !this.getGroupIcon(group);\r\n }\r\n\r\n getGroupSwatchColor(group: any): string | null {\r\n return this.resolveDisplayColor(this.getGroupColor(group));\r\n }\r\n\r\n getGroupAvatarBackground(group: any): string | null {\r\n return this.getAvatarBackgroundByColor(this.getGroupColor(group));\r\n }\r\n\r\n getGroupAvatarColor(group: any): string | null {\r\n return this.getAvatarColorByColor(this.getGroupColor(group));\r\n }\r\n\r\n getGroupAvatarShape(group: any): 'circle' | 'square' {\r\n if (!group || typeof group !== 'object') {\r\n return this.normalizeAvatarShape(this.optionGroupAvatarShape());\r\n }\r\n\r\n return this.normalizeAvatarShape(\r\n group[this.optionGroupIconShape()] ?? this.optionGroupAvatarShape(),\r\n );\r\n }\r\n\r\n private getOptionColor(option: any): string | undefined {\r\n const resolvedOption = this.resolveOption(option);\r\n if (!resolvedOption || typeof resolvedOption !== 'object') return undefined;\r\n return resolvedOption[this.optionIconColor()];\r\n }\r\n\r\n private getGroupColor(group: any): string | undefined {\r\n if (!group || typeof group !== 'object') return undefined;\r\n return group[this.optionGroupIconColor()];\r\n }\r\n\r\n private getAvatarBackgroundByColor(color: string | undefined): string | null {\r\n if (!color) return null;\r\n if (color.startsWith('#')) return `${color}1a`;\r\n return `var(--p-${color}-100)`;\r\n }\r\n\r\n private getAvatarColorByColor(color: string | undefined): string | null {\r\n if (!color) return null;\r\n if (color.startsWith('#')) return color;\r\n return `var(--p-${color}-600)`;\r\n }\r\n\r\n private resolveDisplayColor(color: string | undefined): string | null {\r\n if (!color) return null;\r\n if (\r\n color.startsWith('#') ||\r\n color.startsWith('rgb') ||\r\n color.startsWith('hsl') ||\r\n color.startsWith('var(')\r\n ) {\r\n return color;\r\n }\r\n\r\n return `var(--p-${color}-500)`;\r\n }\r\n\r\n private normalizeAvatarShape(shape: unknown): 'circle' | 'square' {\r\n return shape === 'square' ? 'square' : 'circle';\r\n }\r\n\r\n /**\r\n * Resolves a nested dot-notation path (e.g. \"name.display\") on an object.\r\n * Falls back to direct property access for non-nested keys.\r\n */\r\n private resolveNestedValue(obj: any, path: string): any {\r\n if (!path.includes('.')) {\r\n return obj[path];\r\n }\r\n return path.split('.').reduce((current, key) => current?.[key], obj);\r\n }\r\n\r\n private resolveOption(optionOrValue: any): any {\r\n if (optionOrValue == null || typeof optionOrValue === 'object') {\r\n return optionOrValue;\r\n }\r\n\r\n const options = this.options() ?? [];\r\n const optionValueKey = this.optionValue();\r\n\r\n if (!optionValueKey) {\r\n return (\r\n options.find((option) => option === optionOrValue) ?? optionOrValue\r\n );\r\n }\r\n\r\n if (this.group()) {\r\n const groupChildrenKey = this.optionGroupChildren();\r\n for (const group of options) {\r\n const children = group?.[groupChildrenKey];\r\n if (!Array.isArray(children)) continue;\r\n\r\n const match = children.find(\r\n (item: any) => item?.[optionValueKey] === optionOrValue,\r\n );\r\n if (match) return match;\r\n }\r\n return optionOrValue;\r\n }\r\n\r\n return (\r\n options.find((option) => option?.[optionValueKey] === optionOrValue) ??\r\n optionOrValue\r\n );\r\n }\r\n}\r\n","@if (label()) {\r\n <label\r\n (click)=\"dropdown.show(); dropdown.focus()\"\r\n [class.required]=\"ngControl?.control?.hasValidator(requiredValidator)\"\r\n [for]=\"ngControl?.name || label()\"\r\n >{{ label() }}</label\r\n >\r\n}\r\n<p-select\r\n #dropdown\r\n appendTo=\"body\"\r\n [overlayOptions]=\"{ baseZIndex: 1051 }\"\r\n [ngModel]=\"value()\"\r\n (ngModelChange)=\"onValueChange($event)\"\r\n [options]=\"options()\"\r\n [optionLabel]=\"optionLabel()\"\r\n [optionValue]=\"optionValue()\"\r\n (onBlur)=\"onTouched()\"\r\n [disabled]=\"disabled() || readonly()\"\r\n [inputId]=\"ngControl?.name ? ngControl?.name?.toString() : label()\"\r\n [id]=\"ngControl?.name ? ngControl?.name?.toString() : label()\"\r\n [invalid]=\"isInvalid(ngControl?.control)\"\r\n placeholder=\"{{\r\n (hasPlaceholderPrefix() ? ('components.table.select' | transloco) : '') +\r\n ' ' +\r\n (placeholder() ?? label() ?? '')\r\n }}\"\r\n [filter]=\"filter()\"\r\n [filterBy]=\"filterBy()\"\r\n [dataKey]=\"dataKey()\"\r\n [styleClass]=\"size() === 'small' ? 'mt-1 mt-select-sm' : 'mt-1'\"\r\n [showClear]=\"showClear()\"\r\n [group]=\"isGrouped()\"\r\n [optionGroupLabel]=\"optionGroupLabel()\"\r\n [optionGroupChildren]=\"optionGroupChildren()\"\r\n [loading]=\"loading()\"\r\n [fluid]=\"true\"\r\n [size]=\"pSelectSize()\"\r\n [panelStyleClass]=\"panelSizeClass()\"\r\n>\r\n <ng-template let-option #selectedItem>\r\n @if (option) {\r\n <div class=\"flex items-center gap-2\">\r\n @if (shouldRenderOptionColorSwatch(option)) {\r\n <span\r\n class=\"h-3 w-3 shrink-0 rounded-[4px] border border-surface-300\"\r\n [style.backgroundColor]=\"getOptionSwatchColor(option)\"\r\n ></span>\r\n } @else if (getOptionIcon(option)) {\r\n <mt-avatar\r\n [style.--p-avatar-background]=\"getOptionAvatarBackground(option)\"\r\n [style.--p-avatar-color]=\"getOptionAvatarColor(option)\"\r\n [icon]=\"getOptionIcon(option)\"\r\n [shape]=\"getOptionAvatarShape(option)\"\r\n size=\"normal\"\r\n />\r\n }\r\n <span>{{ getOptionLabelValue(option) }}</span>\r\n </div>\r\n } @else {\r\n <span class=\"text-color-secondary\">{{\r\n (hasPlaceholderPrefix()\r\n ? (\"components.table.select\" | transloco)\r\n : \"\") +\r\n \" \" +\r\n (placeholder() ?? label() ?? \"\")\r\n }}</span>\r\n }\r\n </ng-template>\r\n\r\n <ng-template let-option #item>\r\n <div class=\"flex items-center gap-2\">\r\n @if (shouldRenderOptionColorSwatch(option)) {\r\n <span\r\n class=\"h-3 w-3 shrink-0 rounded-[4px] border border-surface-300\"\r\n [style.backgroundColor]=\"getOptionSwatchColor(option)\"\r\n ></span>\r\n } @else if (getOptionIcon(option)) {\r\n <mt-avatar\r\n [style.--p-avatar-background]=\"getOptionAvatarBackground(option)\"\r\n [style.--p-avatar-color]=\"getOptionAvatarColor(option)\"\r\n [icon]=\"getOptionIcon(option)\"\r\n [shape]=\"getOptionAvatarShape(option)\"\r\n size=\"normal\"\r\n />\r\n }\r\n <span>{{ getOptionLabelValue(option) }}</span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template let-group #group>\r\n <div class=\"flex items-center gap-2\">\r\n @if (shouldRenderGroupColorSwatch(group)) {\r\n <span\r\n class=\"h-3 w-3 shrink-0 rounded-[4px] border border-surface-300\"\r\n [style.backgroundColor]=\"getGroupSwatchColor(group)\"\r\n ></span>\r\n } @else if (getGroupIcon(group)) {\r\n <mt-avatar\r\n [style.--p-avatar-background]=\"getGroupAvatarBackground(group)\"\r\n [style.--p-avatar-color]=\"getGroupAvatarColor(group)\"\r\n [icon]=\"getGroupIcon(group)\"\r\n [shape]=\"getGroupAvatarShape(group)\"\r\n size=\"normal\"\r\n />\r\n }\r\n <span class=\"font-medium\">{{ getGroupLabelValue(group) }}</span>\r\n </div>\r\n </ng-template>\r\n</p-select>\r\n\r\n@if (ngControl) {\r\n <mt-field-validation [control]=\"ngControl?.control\"></mt-field-validation>\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"masterteam-components-select-field.mjs","sources":["../../../../packages/masterteam/components/select-field/select-field.ts","../../../../packages/masterteam/components/select-field/select-field.html","../../../../packages/masterteam/components/select-field/masterteam-components-select-field.ts"],"sourcesContent":["import {\r\n Component,\r\n EventEmitter,\r\n HostBinding,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n signal,\r\n input,\r\n inject,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n effect,\r\n computed,\r\n} from '@angular/core';\r\n\r\nimport {\r\n ControlValueAccessor,\r\n FormsModule,\r\n NgControl,\r\n Validators,\r\n} from '@angular/forms';\r\nimport { Select } from 'primeng/select';\r\nimport { FieldValidation } from '@masterteam/components/field-validation';\r\nimport { isInvalid } from '@masterteam/components';\r\nimport { TranslocoModule } from '@jsverse/transloco';\r\nimport { Avatar } from '@masterteam/components/avatar';\r\n\r\n@Component({\r\n selector: 'mt-select-field',\r\n standalone: true,\r\n imports: [FormsModule, Select, FieldValidation, TranslocoModule, Avatar],\r\n templateUrl: './select-field.html',\r\n styleUrls: ['./select-field.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n class: 'block gap-1',\r\n },\r\n})\r\nexport class SelectField implements ControlValueAccessor, OnInit, OnChanges {\r\n cdr = inject(ChangeDetectorRef);\r\n @ViewChild('dropdown', { static: true })\r\n dropdown: Select;\r\n\r\n readonly field = input<boolean>(true);\r\n readonly label = input<string>('');\r\n readonly placeholder = input<string>('');\r\n readonly hasPlaceholderPrefix = input<boolean>(true);\r\n readonly class = input<string>('');\r\n readonly readonly = input<boolean>(false);\r\n readonly pInputs = input<Partial<Select>>();\r\n readonly options = input<any[] | undefined>(undefined);\r\n readonly optionValue = input<string | undefined>(undefined);\r\n readonly optionLabel = input<string | undefined>(undefined);\r\n readonly filter = input<boolean | undefined>(undefined);\r\n readonly filterBy = input<string | undefined>(undefined);\r\n readonly dataKey = input<string | undefined>(undefined);\r\n readonly showClear = input<boolean | undefined>(undefined);\r\n readonly clearAfterSelect = input<boolean | undefined>(undefined);\r\n readonly required = input<boolean>(false); // Add readonly required input\r\n readonly group = input<boolean>(false);\r\n readonly size = input<'small' | 'large' | ''>('');\r\n\r\n readonly pSelectSize = computed(() => this.size() as 'small' | 'large' | '');\r\n\r\n readonly panelSizeClass = computed(() =>\r\n this.size() === 'small' ? 'mt-select-panel-small' : '',\r\n );\r\n readonly optionGroupLabel = input<string>('label');\r\n readonly optionGroupChildren = input<string>('items');\r\n readonly loading = input<boolean>(false);\r\n readonly optionIcon = input<string>('icon');\r\n readonly optionIconColor = input<string>('color');\r\n readonly optionIconShape = input<string>('shape');\r\n readonly optionAvatarShape = input<'circle' | 'square'>('square');\r\n readonly optionGroupIcon = input<string>('icon');\r\n readonly optionGroupIconColor = input<string>('color');\r\n readonly optionGroupIconShape = input<string>('shape');\r\n readonly optionGroupAvatarShape = input<'circle' | 'square'>('square');\r\n\r\n @Output() onChange: EventEmitter<any> = new EventEmitter();\r\n\r\n @HostBinding('class') styleClass: string;\r\n\r\n requiredValidator = Validators.required;\r\n value = signal<any>(null);\r\n disabled = signal<boolean>(false);\r\n\r\n onTouched: () => void = () => {};\r\n onModelChange: (value: any) => void = () => {};\r\n\r\n public ngControl: NgControl | null = null;\r\n\r\n isInvalid = isInvalid;\r\n\r\n constructor() {\r\n try {\r\n this.ngControl = inject(NgControl, { self: true, optional: true });\r\n if (this.ngControl) {\r\n this.ngControl.valueAccessor = this;\r\n }\r\n } catch {\r\n this.ngControl = null;\r\n }\r\n effect(() => {\r\n if (this.ngControl?.control && this.required()) {\r\n this.ngControl.control.addValidators(Validators.required);\r\n this.ngControl.control.updateValueAndValidity();\r\n }\r\n });\r\n }\r\n\r\n applyInputsToDropdown() {\r\n // Object.assign(this.dropdown, this.pInputs());\r\n }\r\n\r\n ngOnInit() {\r\n this.styleClass = this.class();\r\n if (this.pInputs()) {\r\n this.applyInputsToDropdown();\r\n }\r\n }\r\n\r\n onValueChange(value: any) {\r\n this.onModelChange(value);\r\n this.value.set(value);\r\n this.onChange.emit(value);\r\n if (this.clearAfterSelect()) {\r\n this.clearSelection();\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['pInputs']) {\r\n this.applyInputsToDropdown();\r\n }\r\n }\r\n\r\n writeValue(value: string) {\r\n this.value.set(value);\r\n }\r\n\r\n registerOnChange(fn: any) {\r\n this.onModelChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(disabled: boolean) {\r\n this.disabled.set(disabled);\r\n }\r\n\r\n isGrouped(): boolean {\r\n return this.group();\r\n }\r\n\r\n // TODO: make this method work\r\n public clearSelection() {\r\n this.dropdown.clear(this.value());\r\n this.dropdown.value = null;\r\n this.value.set(null);\r\n this.onModelChange(null);\r\n this.onChange.emit(null);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n getOptionLabelValue(option: any): string {\r\n const resolvedOption = this.resolveOption(option);\r\n if (resolvedOption == null) return '';\r\n\r\n const labelKey = this.optionLabel();\r\n if (labelKey && typeof resolvedOption === 'object') {\r\n return this.resolveNestedValue(resolvedOption, labelKey) ?? '';\r\n }\r\n\r\n return typeof resolvedOption === 'object'\r\n ? (resolvedOption.label ?? '')\r\n : String(resolvedOption);\r\n }\r\n\r\n getOptionIcon(option: any): string | undefined {\r\n const resolvedOption = this.resolveOption(option);\r\n if (!resolvedOption || typeof resolvedOption !== 'object') return undefined;\r\n return resolvedOption[this.optionIcon()];\r\n }\r\n\r\n shouldRenderOptionColorSwatch(option: any): boolean {\r\n return !!this.getOptionSwatchColor(option) && !this.getOptionIcon(option);\r\n }\r\n\r\n getOptionSwatchColor(option: any): string | null {\r\n return this.resolveDisplayColor(this.getOptionColor(option));\r\n }\r\n\r\n getOptionAvatarBackground(option: any): string | null {\r\n return this.getAvatarBackgroundByColor(this.getOptionColor(option));\r\n }\r\n\r\n getOptionAvatarColor(option: any): string | null {\r\n return this.getAvatarColorByColor(this.getOptionColor(option));\r\n }\r\n\r\n getOptionAvatarShape(option: any): 'circle' | 'square' {\r\n const resolvedOption = this.resolveOption(option);\r\n if (!resolvedOption || typeof resolvedOption !== 'object') {\r\n return this.normalizeAvatarShape(this.optionAvatarShape());\r\n }\r\n\r\n return this.normalizeAvatarShape(\r\n resolvedOption[this.optionIconShape()] ?? this.optionAvatarShape(),\r\n );\r\n }\r\n\r\n getGroupLabelValue(group: any): string {\r\n if (group == null) return '';\r\n\r\n const groupLabelKey = this.optionGroupLabel();\r\n if (groupLabelKey && typeof group === 'object') {\r\n return group[groupLabelKey] ?? '';\r\n }\r\n\r\n return typeof group === 'object' ? (group.label ?? '') : String(group);\r\n }\r\n\r\n getGroupIcon(group: any): string | undefined {\r\n if (!group || typeof group !== 'object') return undefined;\r\n return group[this.optionGroupIcon()];\r\n }\r\n\r\n shouldRenderGroupColorSwatch(group: any): boolean {\r\n return !!this.getGroupSwatchColor(group) && !this.getGroupIcon(group);\r\n }\r\n\r\n getGroupSwatchColor(group: any): string | null {\r\n return this.resolveDisplayColor(this.getGroupColor(group));\r\n }\r\n\r\n getGroupAvatarBackground(group: any): string | null {\r\n return this.getAvatarBackgroundByColor(this.getGroupColor(group));\r\n }\r\n\r\n getGroupAvatarColor(group: any): string | null {\r\n return this.getAvatarColorByColor(this.getGroupColor(group));\r\n }\r\n\r\n getGroupAvatarShape(group: any): 'circle' | 'square' {\r\n if (!group || typeof group !== 'object') {\r\n return this.normalizeAvatarShape(this.optionGroupAvatarShape());\r\n }\r\n\r\n return this.normalizeAvatarShape(\r\n group[this.optionGroupIconShape()] ?? this.optionGroupAvatarShape(),\r\n );\r\n }\r\n\r\n private getOptionColor(option: any): string | undefined {\r\n const resolvedOption = this.resolveOption(option);\r\n if (!resolvedOption || typeof resolvedOption !== 'object') return undefined;\r\n return resolvedOption[this.optionIconColor()];\r\n }\r\n\r\n private getGroupColor(group: any): string | undefined {\r\n if (!group || typeof group !== 'object') return undefined;\r\n return group[this.optionGroupIconColor()];\r\n }\r\n\r\n private getAvatarBackgroundByColor(color: string | undefined): string | null {\r\n if (!color) return null;\r\n if (color.startsWith('#')) return `${color}1a`;\r\n return `var(--p-${color}-100)`;\r\n }\r\n\r\n private getAvatarColorByColor(color: string | undefined): string | null {\r\n if (!color) return null;\r\n if (color.startsWith('#')) return color;\r\n return `var(--p-${color}-600)`;\r\n }\r\n\r\n private resolveDisplayColor(color: string | undefined): string | null {\r\n if (!color) return null;\r\n if (\r\n color.startsWith('#') ||\r\n color.startsWith('rgb') ||\r\n color.startsWith('hsl') ||\r\n color.startsWith('var(')\r\n ) {\r\n return color;\r\n }\r\n\r\n return `var(--p-${color}-500)`;\r\n }\r\n\r\n private normalizeAvatarShape(shape: unknown): 'circle' | 'square' {\r\n return shape === 'square' ? 'square' : 'circle';\r\n }\r\n\r\n /**\r\n * Resolves a nested dot-notation path (e.g. \"name.display\") on an object.\r\n * Falls back to direct property access for non-nested keys.\r\n */\r\n private resolveNestedValue(obj: any, path: string): any {\r\n if (!path.includes('.')) {\r\n return obj[path];\r\n }\r\n return path.split('.').reduce((current, key) => current?.[key], obj);\r\n }\r\n\r\n private resolveOption(optionOrValue: any): any {\r\n if (optionOrValue == null || typeof optionOrValue === 'object') {\r\n return optionOrValue;\r\n }\r\n\r\n const options = this.options() ?? [];\r\n const optionValueKey = this.optionValue();\r\n\r\n if (!optionValueKey) {\r\n return (\r\n options.find((option) => option === optionOrValue) ?? optionOrValue\r\n );\r\n }\r\n\r\n if (this.group()) {\r\n const groupChildrenKey = this.optionGroupChildren();\r\n for (const group of options) {\r\n const children = group?.[groupChildrenKey];\r\n if (!Array.isArray(children)) continue;\r\n\r\n const match = children.find(\r\n (item: any) => item?.[optionValueKey] === optionOrValue,\r\n );\r\n if (match) return match;\r\n }\r\n return optionOrValue;\r\n }\r\n\r\n return (\r\n options.find((option) => option?.[optionValueKey] === optionOrValue) ??\r\n optionOrValue\r\n );\r\n }\r\n}\r\n","@if (label()) {\r\n<label (click)=\"dropdown.show(); dropdown.focus()\"\r\n [class.required]=\"ngControl?.control?.hasValidator(requiredValidator)\" class=\"mb-1\"\r\n [for]=\"ngControl?.name || label()\">{{ label() }}</label>\r\n}\r\n<p-select #dropdown appendTo=\"body\" [overlayOptions]=\"{ baseZIndex: 1051 }\" [ngModel]=\"value()\"\r\n (ngModelChange)=\"onValueChange($event)\" [options]=\"options()\" [optionLabel]=\"optionLabel()\"\r\n [optionValue]=\"optionValue()\" (onBlur)=\"onTouched()\" [disabled]=\"disabled() || readonly()\"\r\n [inputId]=\"ngControl?.name ? ngControl?.name?.toString() : label()\"\r\n [id]=\"ngControl?.name ? ngControl?.name?.toString() : label()\" [invalid]=\"isInvalid(ngControl?.control)\" placeholder=\"{{\r\n (hasPlaceholderPrefix() ? ('components.table.select' | transloco) : '') +\r\n ' ' +\r\n (placeholder() ?? label() ?? '')\r\n }}\" [filter]=\"filter()\" [filterBy]=\"filterBy()\" [dataKey]=\"dataKey()\"\r\n [styleClass]=\"size() === 'small' ? ' mt-select-sm' : ''\" [showClear]=\"showClear()\" [group]=\"isGrouped()\"\r\n [optionGroupLabel]=\"optionGroupLabel()\" [optionGroupChildren]=\"optionGroupChildren()\" [loading]=\"loading()\"\r\n [fluid]=\"true\" [size]=\"pSelectSize()\" [panelStyleClass]=\"panelSizeClass()\">\r\n <ng-template let-option #selectedItem>\r\n @if (option) {\r\n <div class=\"flex items-center gap-2\">\r\n @if (shouldRenderOptionColorSwatch(option)) {\r\n <span class=\"h-3 w-3 shrink-0 rounded-[4px] border border-surface-300\"\r\n [style.backgroundColor]=\"getOptionSwatchColor(option)\"></span>\r\n } @else if (getOptionIcon(option)) {\r\n <mt-avatar [style.--p-avatar-background]=\"getOptionAvatarBackground(option)\"\r\n [style.--p-avatar-color]=\"getOptionAvatarColor(option)\" [icon]=\"getOptionIcon(option)\"\r\n [shape]=\"getOptionAvatarShape(option)\" size=\"normal\" />\r\n }\r\n <span>{{ getOptionLabelValue(option) }}</span>\r\n </div>\r\n } @else {\r\n <span class=\"text-color-secondary\">{{\r\n (hasPlaceholderPrefix()\r\n ? (\"components.table.select\" | transloco)\r\n : \"\") +\r\n \" \" +\r\n (placeholder() ?? label() ?? \"\")\r\n }}</span>\r\n }\r\n </ng-template>\r\n\r\n <ng-template let-option #item>\r\n <div class=\"flex items-center gap-2\">\r\n @if (shouldRenderOptionColorSwatch(option)) {\r\n <span class=\"h-3 w-3 shrink-0 rounded-[4px] border border-surface-300\"\r\n [style.backgroundColor]=\"getOptionSwatchColor(option)\"></span>\r\n } @else if (getOptionIcon(option)) {\r\n <mt-avatar [style.--p-avatar-background]=\"getOptionAvatarBackground(option)\"\r\n [style.--p-avatar-color]=\"getOptionAvatarColor(option)\" [icon]=\"getOptionIcon(option)\"\r\n [shape]=\"getOptionAvatarShape(option)\" size=\"normal\" />\r\n }\r\n <span>{{ getOptionLabelValue(option) }}</span>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template let-group #group>\r\n <div class=\"flex items-center gap-2\">\r\n @if (shouldRenderGroupColorSwatch(group)) {\r\n <span class=\"h-3 w-3 shrink-0 rounded-[4px] border border-surface-300\"\r\n [style.backgroundColor]=\"getGroupSwatchColor(group)\"></span>\r\n } @else if (getGroupIcon(group)) {\r\n <mt-avatar [style.--p-avatar-background]=\"getGroupAvatarBackground(group)\"\r\n [style.--p-avatar-color]=\"getGroupAvatarColor(group)\" [icon]=\"getGroupIcon(group)\"\r\n [shape]=\"getGroupAvatarShape(group)\" size=\"normal\" />\r\n }\r\n <span class=\"font-medium\">{{ getGroupLabelValue(group) }}</span>\r\n </div>\r\n </ng-template>\r\n</p-select>\r\n\r\n@if (ngControl) {\r\n<mt-field-validation [control]=\"ngControl?.control\"></mt-field-validation>\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -48,6 +48,7 @@ class TruncateTooltip {
|
|
|
48
48
|
ngAfterViewInit() {
|
|
49
49
|
this.zone.runOutsideAngular(() => {
|
|
50
50
|
const element = this.elementRef.nativeElement;
|
|
51
|
+
this.tooltip.setOption({ showOnEllipsis: true });
|
|
51
52
|
if (typeof ResizeObserver !== 'undefined') {
|
|
52
53
|
this.resizeObserver = new ResizeObserver(() => this.queueSync());
|
|
53
54
|
this.resizeObserver.observe(element);
|
|
@@ -62,7 +63,7 @@ class TruncateTooltip {
|
|
|
62
63
|
attributeFilter: ['class', 'style'],
|
|
63
64
|
});
|
|
64
65
|
}
|
|
65
|
-
this.
|
|
66
|
+
this.syncTooltip();
|
|
66
67
|
});
|
|
67
68
|
this.destroyRef.onDestroy(() => {
|
|
68
69
|
this.resizeObserver?.disconnect();
|
|
@@ -73,7 +74,7 @@ class TruncateTooltip {
|
|
|
73
74
|
});
|
|
74
75
|
}
|
|
75
76
|
syncTooltipState() {
|
|
76
|
-
this.
|
|
77
|
+
this.syncTooltip();
|
|
77
78
|
}
|
|
78
79
|
queueSync() {
|
|
79
80
|
if (this.syncTimeout !== null) {
|
|
@@ -89,15 +90,18 @@ class TruncateTooltip {
|
|
|
89
90
|
const text = element.textContent?.replace(/\s+/g, ' ').trim() ?? '';
|
|
90
91
|
const isTruncated = element.scrollWidth > element.clientWidth ||
|
|
91
92
|
element.scrollHeight > element.clientHeight;
|
|
92
|
-
this.tooltip.
|
|
93
|
-
this.tooltip.disabled = !text || !isTruncated;
|
|
93
|
+
this.tooltip.setOption({ tooltipLabel: text || null });
|
|
94
94
|
if (!this.tooltip.active) {
|
|
95
95
|
return;
|
|
96
96
|
}
|
|
97
|
-
if (
|
|
97
|
+
if (!text || !isTruncated) {
|
|
98
98
|
this.tooltip.hide();
|
|
99
99
|
return;
|
|
100
100
|
}
|
|
101
|
+
if (!this.tooltip.container) {
|
|
102
|
+
this.tooltip.show();
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
101
105
|
this.tooltip.updateText();
|
|
102
106
|
this.tooltip.align();
|
|
103
107
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"masterteam-components-tooltip.mjs","sources":["../../../../packages/masterteam/components/tooltip/tooltip.ts","../../../../packages/masterteam/components/tooltip/truncate-tooltip.ts","../../../../packages/masterteam/components/tooltip/masterteam-components-tooltip.ts"],"sourcesContent":["import { Directive } from '@angular/core';\r\nimport { Tooltip as PrimeTooltip } from 'primeng/tooltip';\r\n\r\n@Directive({\r\n selector: '[mtTooltip]',\r\n standalone: true,\r\n hostDirectives: [\r\n {\r\n directive: PrimeTooltip,\r\n inputs: [\r\n 'pTooltip: mtTooltip',\r\n 'tooltipPosition',\r\n 'tooltipEvent',\r\n 'appendTo',\r\n 'tooltipStyleClass',\r\n 'escape',\r\n 'showDelay',\r\n 'hideDelay',\r\n 'life',\r\n 'positionTop',\r\n 'positionLeft',\r\n 'autoHide',\r\n 'fitContent',\r\n 'hideOnEscape',\r\n 'tooltipDisabled',\r\n ],\r\n },\r\n ],\r\n})\r\nexport class Tooltip {}\r\n","import {\r\n AfterViewInit,\r\n DestroyRef,\r\n Directive,\r\n ElementRef,\r\n NgZone,\r\n inject,\r\n} from '@angular/core';\r\nimport { Tooltip as PrimeTooltip } from 'primeng/tooltip';\r\n\r\n@Directive({\r\n selector: '[mtTruncateTooltip]',\r\n host: {\r\n '(mouseenter)': 'syncTooltipState()',\r\n '(focusin)': 'syncTooltipState()',\r\n },\r\n hostDirectives: [\r\n {\r\n directive: PrimeTooltip,\r\n inputs: [\r\n 'tooltipPosition',\r\n 'tooltipEvent',\r\n 'appendTo',\r\n 'tooltipStyleClass',\r\n 'escape',\r\n 'showDelay',\r\n 'hideDelay',\r\n 'life',\r\n 'positionTop',\r\n 'positionLeft',\r\n 'autoHide',\r\n 'fitContent',\r\n 'hideOnEscape',\r\n ],\r\n },\r\n ],\r\n})\r\nexport class TruncateTooltip implements AfterViewInit {\r\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\r\n private readonly zone = inject(NgZone);\r\n private readonly destroyRef = inject(DestroyRef);\r\n private readonly tooltip = inject(PrimeTooltip);\r\n\r\n private resizeObserver?: ResizeObserver;\r\n private mutationObserver?: MutationObserver;\r\n private syncTimeout: ReturnType<typeof setTimeout> | null = null;\r\n\r\n ngAfterViewInit(): void {\
|
|
1
|
+
{"version":3,"file":"masterteam-components-tooltip.mjs","sources":["../../../../packages/masterteam/components/tooltip/tooltip.ts","../../../../packages/masterteam/components/tooltip/truncate-tooltip.ts","../../../../packages/masterteam/components/tooltip/masterteam-components-tooltip.ts"],"sourcesContent":["import { Directive } from '@angular/core';\r\nimport { Tooltip as PrimeTooltip } from 'primeng/tooltip';\r\n\r\n@Directive({\r\n selector: '[mtTooltip]',\r\n standalone: true,\r\n hostDirectives: [\r\n {\r\n directive: PrimeTooltip,\r\n inputs: [\r\n 'pTooltip: mtTooltip',\r\n 'tooltipPosition',\r\n 'tooltipEvent',\r\n 'appendTo',\r\n 'tooltipStyleClass',\r\n 'escape',\r\n 'showDelay',\r\n 'hideDelay',\r\n 'life',\r\n 'positionTop',\r\n 'positionLeft',\r\n 'autoHide',\r\n 'fitContent',\r\n 'hideOnEscape',\r\n 'tooltipDisabled',\r\n ],\r\n },\r\n ],\r\n})\r\nexport class Tooltip {}\r\n","import {\r\n AfterViewInit,\r\n DestroyRef,\r\n Directive,\r\n ElementRef,\r\n NgZone,\r\n inject,\r\n} from '@angular/core';\r\nimport { Tooltip as PrimeTooltip } from 'primeng/tooltip';\r\n\r\n@Directive({\r\n selector: '[mtTruncateTooltip]',\r\n host: {\r\n '(mouseenter)': 'syncTooltipState()',\r\n '(focusin)': 'syncTooltipState()',\r\n },\r\n hostDirectives: [\r\n {\r\n directive: PrimeTooltip,\r\n inputs: [\r\n 'tooltipPosition',\r\n 'tooltipEvent',\r\n 'appendTo',\r\n 'tooltipStyleClass',\r\n 'escape',\r\n 'showDelay',\r\n 'hideDelay',\r\n 'life',\r\n 'positionTop',\r\n 'positionLeft',\r\n 'autoHide',\r\n 'fitContent',\r\n 'hideOnEscape',\r\n ],\r\n },\r\n ],\r\n})\r\nexport class TruncateTooltip implements AfterViewInit {\r\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\r\n private readonly zone = inject(NgZone);\r\n private readonly destroyRef = inject(DestroyRef);\r\n private readonly tooltip = inject(PrimeTooltip);\r\n\r\n private resizeObserver?: ResizeObserver;\r\n private mutationObserver?: MutationObserver;\r\n private syncTimeout: ReturnType<typeof setTimeout> | null = null;\r\n\r\n ngAfterViewInit(): void {\n this.zone.runOutsideAngular(() => {\n const element = this.elementRef.nativeElement;\n\n this.tooltip.setOption({ showOnEllipsis: true });\n\n if (typeof ResizeObserver !== 'undefined') {\n this.resizeObserver = new ResizeObserver(() => this.queueSync());\n this.resizeObserver.observe(element);\n }\n\r\n if (typeof MutationObserver !== 'undefined') {\r\n this.mutationObserver = new MutationObserver(() => this.queueSync());\r\n this.mutationObserver.observe(element, {\r\n childList: true,\r\n characterData: true,\r\n subtree: true,\r\n attributes: true,\r\n attributeFilter: ['class', 'style'],\r\n });\r\n }\r\n\r\n this.syncTooltip();\n });\n\r\n this.destroyRef.onDestroy(() => {\r\n this.resizeObserver?.disconnect();\r\n this.mutationObserver?.disconnect();\r\n\r\n if (this.syncTimeout !== null) {\r\n clearTimeout(this.syncTimeout);\r\n }\r\n });\r\n }\r\n\r\n syncTooltipState(): void {\n this.syncTooltip();\n }\n\r\n private queueSync(): void {\r\n if (this.syncTimeout !== null) {\r\n return;\r\n }\r\n\r\n this.syncTimeout = setTimeout(() => {\r\n this.syncTimeout = null;\r\n this.syncTooltip();\r\n });\r\n }\r\n\r\n private syncTooltip(): void {\n const element = this.elementRef.nativeElement;\n const text = element.textContent?.replace(/\\s+/g, ' ').trim() ?? '';\n const isTruncated =\n element.scrollWidth > element.clientWidth ||\n element.scrollHeight > element.clientHeight;\n\n this.tooltip.setOption({ tooltipLabel: text || null });\n\n if (!this.tooltip.active) {\n return;\n }\n\n if (!text || !isTruncated) {\n this.tooltip.hide();\n return;\n }\n\n if (!this.tooltip.container) {\n this.tooltip.show();\n return;\n }\n\n this.tooltip.updateText();\n this.tooltip.align();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["PrimeTooltip"],"mappings":"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"}
|
|
@@ -305,99 +305,289 @@ const MTPreset = (themeOptions) => {
|
|
|
305
305
|
borderRadius: '{border.radius.md}',
|
|
306
306
|
},
|
|
307
307
|
},
|
|
308
|
+
datatable: {
|
|
309
|
+
root: {
|
|
310
|
+
borderColor: '{surface.200}',
|
|
311
|
+
transitionDuration: '{transition.duration}',
|
|
312
|
+
},
|
|
313
|
+
header: {
|
|
314
|
+
background: '{surface.0}',
|
|
315
|
+
borderColor: '{surface.200}',
|
|
316
|
+
color: '{surface.700}',
|
|
317
|
+
borderWidth: '0 0 1px 0',
|
|
318
|
+
padding: '1rem 1.25rem',
|
|
319
|
+
},
|
|
320
|
+
headerCell: {
|
|
321
|
+
background: '{surface.50}',
|
|
322
|
+
hoverBackground: '{surface.100}',
|
|
323
|
+
selectedBackground: '{surface.100}',
|
|
324
|
+
borderColor: '{surface.200}',
|
|
325
|
+
color: '{surface.600}',
|
|
326
|
+
hoverColor: '{surface.700}',
|
|
327
|
+
selectedColor: '{surface.700}',
|
|
328
|
+
gap: '0.5rem',
|
|
329
|
+
padding: '0.875rem 1rem',
|
|
330
|
+
},
|
|
331
|
+
columnTitle: {
|
|
332
|
+
fontWeight: '600',
|
|
333
|
+
},
|
|
334
|
+
row: {
|
|
335
|
+
background: '{surface.0}',
|
|
336
|
+
hoverBackground: '{surface.50}',
|
|
337
|
+
selectedBackground: '{surface.100}',
|
|
338
|
+
color: '{surface.700}',
|
|
339
|
+
hoverColor: '{surface.900}',
|
|
340
|
+
selectedColor: '{surface.900}',
|
|
341
|
+
stripedBackground: '{surface.50}',
|
|
342
|
+
},
|
|
343
|
+
bodyCell: {
|
|
344
|
+
borderColor: '{surface.200}',
|
|
345
|
+
padding: '0.875rem 1rem',
|
|
346
|
+
},
|
|
347
|
+
paginatorBottom: {
|
|
348
|
+
borderColor: '{surface.200}',
|
|
349
|
+
borderWidth: '1px 0 0 0',
|
|
350
|
+
},
|
|
351
|
+
colorScheme: {
|
|
352
|
+
light: {
|
|
353
|
+
root: {
|
|
354
|
+
borderColor: '{surface.200}',
|
|
355
|
+
},
|
|
356
|
+
header: {
|
|
357
|
+
background: '{surface.0}',
|
|
358
|
+
borderColor: '{surface.200}',
|
|
359
|
+
color: '{surface.700}',
|
|
360
|
+
},
|
|
361
|
+
headerCell: {
|
|
362
|
+
background: '{surface.50}',
|
|
363
|
+
hoverBackground: '{surface.100}',
|
|
364
|
+
selectedBackground: '{surface.100}',
|
|
365
|
+
borderColor: '{surface.200}',
|
|
366
|
+
color: '{surface.600}',
|
|
367
|
+
hoverColor: '{surface.700}',
|
|
368
|
+
selectedColor: '{surface.700}',
|
|
369
|
+
},
|
|
370
|
+
row: {
|
|
371
|
+
background: '{surface.0}',
|
|
372
|
+
hoverBackground: '{surface.50}',
|
|
373
|
+
selectedBackground: '{surface.100}',
|
|
374
|
+
color: '{surface.700}',
|
|
375
|
+
hoverColor: '{surface.900}',
|
|
376
|
+
selectedColor: '{surface.900}',
|
|
377
|
+
stripedBackground: '{surface.50}',
|
|
378
|
+
},
|
|
379
|
+
bodyCell: {
|
|
380
|
+
selectedBorderColor: '{surface.200}',
|
|
381
|
+
},
|
|
382
|
+
paginatorBottom: {
|
|
383
|
+
borderColor: '{surface.200}',
|
|
384
|
+
},
|
|
385
|
+
},
|
|
386
|
+
dark: {
|
|
387
|
+
root: {
|
|
388
|
+
borderColor: '{surface.700}',
|
|
389
|
+
},
|
|
390
|
+
header: {
|
|
391
|
+
background: '{surface.900}',
|
|
392
|
+
borderColor: '{surface.700}',
|
|
393
|
+
color: '{surface.100}',
|
|
394
|
+
},
|
|
395
|
+
headerCell: {
|
|
396
|
+
background: '{surface.900}',
|
|
397
|
+
hoverBackground: '{surface.800}',
|
|
398
|
+
selectedBackground: '{surface.800}',
|
|
399
|
+
borderColor: '{surface.700}',
|
|
400
|
+
color: '{surface.200}',
|
|
401
|
+
hoverColor: '{surface.0}',
|
|
402
|
+
selectedColor: '{surface.0}',
|
|
403
|
+
},
|
|
404
|
+
row: {
|
|
405
|
+
background: '{surface.950}',
|
|
406
|
+
hoverBackground: '{surface.900}',
|
|
407
|
+
selectedBackground: '{surface.800}',
|
|
408
|
+
color: '{surface.100}',
|
|
409
|
+
hoverColor: '{surface.0}',
|
|
410
|
+
selectedColor: '{surface.0}',
|
|
411
|
+
stripedBackground: '{surface.900}',
|
|
412
|
+
},
|
|
413
|
+
bodyCell: {
|
|
414
|
+
selectedBorderColor: '{surface.700}',
|
|
415
|
+
},
|
|
416
|
+
paginatorBottom: {
|
|
417
|
+
borderColor: '{surface.700}',
|
|
418
|
+
},
|
|
419
|
+
},
|
|
420
|
+
},
|
|
421
|
+
css: () => `
|
|
422
|
+
.p-datatable,
|
|
423
|
+
.p-datatable-table-container {
|
|
424
|
+
font-size: 0.875rem;
|
|
425
|
+
line-height: 1.25rem;
|
|
426
|
+
background: var(--p-surface-0);
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
.p-datatable-header {
|
|
430
|
+
background: var(--p-surface-0);
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
.p-datatable-table thead > tr > th {
|
|
434
|
+
font-size: 0.75rem;
|
|
435
|
+
letter-spacing: 0.04em;
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
.dark .p-datatable,
|
|
439
|
+
.dark .p-datatable-table-container,
|
|
440
|
+
.dark .p-datatable-header {
|
|
441
|
+
background: var(--p-surface-950);
|
|
442
|
+
}
|
|
443
|
+
`,
|
|
444
|
+
},
|
|
308
445
|
paginator: {
|
|
309
446
|
root: {
|
|
310
|
-
|
|
311
|
-
|
|
447
|
+
background: '{surface.0}',
|
|
448
|
+
borderRadius: '{border.radius.xl}',
|
|
449
|
+
color: '{surface.600}',
|
|
450
|
+
gap: '0.125rem',
|
|
451
|
+
padding: '0.25rem',
|
|
312
452
|
},
|
|
313
453
|
navButton: {
|
|
314
|
-
|
|
454
|
+
background: 'transparent',
|
|
455
|
+
borderRadius: '{border.radius.lg}',
|
|
456
|
+
color: '{surface.600}',
|
|
457
|
+
hoverBackground: '{surface.100}',
|
|
458
|
+
hoverColor: '{surface.700}',
|
|
459
|
+
selectedBackground: '{surface.100}',
|
|
460
|
+
selectedColor: '{surface.800}',
|
|
461
|
+
width: '2.5rem',
|
|
462
|
+
height: '2.5rem',
|
|
463
|
+
},
|
|
464
|
+
currentPageReport: {
|
|
465
|
+
color: '{surface.500}',
|
|
315
466
|
},
|
|
316
467
|
colorScheme: {
|
|
317
468
|
light: {
|
|
469
|
+
root: {
|
|
470
|
+
background: '{surface.0}',
|
|
471
|
+
color: '{surface.600}',
|
|
472
|
+
},
|
|
318
473
|
navButton: {
|
|
319
474
|
color: '{surface.600}',
|
|
320
|
-
hoverBackground: '
|
|
321
|
-
|
|
322
|
-
|
|
475
|
+
hoverBackground: '{surface.100}',
|
|
476
|
+
hoverColor: '{surface.700}',
|
|
477
|
+
selectedBackground: '{surface.100}',
|
|
478
|
+
selectedColor: '{surface.800}',
|
|
323
479
|
focusRing: {
|
|
324
|
-
color: '{surface.
|
|
480
|
+
color: '{surface.100}',
|
|
325
481
|
},
|
|
326
482
|
},
|
|
483
|
+
currentPageReport: {
|
|
484
|
+
color: '{surface.500}',
|
|
485
|
+
},
|
|
327
486
|
},
|
|
328
487
|
dark: {
|
|
488
|
+
root: {
|
|
489
|
+
background: '{surface.900}',
|
|
490
|
+
color: '{surface.200}',
|
|
491
|
+
},
|
|
329
492
|
navButton: {
|
|
330
493
|
color: '{surface.200}',
|
|
331
|
-
hoverBackground: '
|
|
332
|
-
|
|
333
|
-
|
|
494
|
+
hoverBackground: '{surface.800}',
|
|
495
|
+
hoverColor: '{surface.0}',
|
|
496
|
+
selectedBackground: '{surface.800}',
|
|
497
|
+
selectedColor: '{surface.0}',
|
|
334
498
|
focusRing: {
|
|
335
|
-
color: '
|
|
499
|
+
color: '{surface.700}',
|
|
336
500
|
},
|
|
337
501
|
},
|
|
502
|
+
currentPageReport: {
|
|
503
|
+
color: '{surface.400}',
|
|
504
|
+
},
|
|
338
505
|
},
|
|
339
506
|
},
|
|
340
|
-
css: () => `
|
|
341
|
-
.p-paginator {
|
|
342
|
-
--p-paginator-gap: 0;
|
|
343
|
-
--p-paginator-nav-button-width: 2.
|
|
344
|
-
--p-paginator-nav-button-height: 2.
|
|
345
|
-
width: fit-content;
|
|
346
|
-
border: 1px solid var(--p-surface-200);
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
.
|
|
395
|
-
|
|
396
|
-
}
|
|
397
|
-
|
|
398
|
-
.
|
|
399
|
-
|
|
400
|
-
|
|
507
|
+
css: () => `
|
|
508
|
+
.p-paginator {
|
|
509
|
+
--p-paginator-gap: 0.125rem;
|
|
510
|
+
--p-paginator-nav-button-width: 2.5rem;
|
|
511
|
+
--p-paginator-nav-button-height: 2.5rem;
|
|
512
|
+
width: fit-content;
|
|
513
|
+
border: 1px solid var(--p-surface-200);
|
|
514
|
+
background: var(--p-surface-0);
|
|
515
|
+
box-shadow: 0 1px 2px color-mix(in srgb, var(--p-surface-950) 8%, transparent);
|
|
516
|
+
overflow: hidden;
|
|
517
|
+
font-size: 0.875rem;
|
|
518
|
+
line-height: 1.25rem;
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
.p-paginator .p-paginator-pages {
|
|
522
|
+
gap: 0.125rem;
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
.p-paginator-pages button,
|
|
526
|
+
.p-paginator-prev,
|
|
527
|
+
.p-paginator-next {
|
|
528
|
+
border-color: var(--p-surface-200);
|
|
529
|
+
}
|
|
530
|
+
|
|
531
|
+
.p-paginator-pages button {
|
|
532
|
+
border-style: solid;
|
|
533
|
+
border-width: 0 0 0 1px;
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
.p-paginator-pages button:first-child {
|
|
537
|
+
border-left: none;
|
|
538
|
+
}
|
|
539
|
+
|
|
540
|
+
.p-paginator-prev {
|
|
541
|
+
border-right: 1px solid var(--p-surface-200);
|
|
542
|
+
}
|
|
543
|
+
|
|
544
|
+
.p-paginator-next {
|
|
545
|
+
border-left: 1px solid var(--p-surface-200);
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
.p-paginator .p-select {
|
|
549
|
+
border: 0;
|
|
550
|
+
background: transparent;
|
|
551
|
+
min-width: auto;
|
|
552
|
+
}
|
|
553
|
+
|
|
554
|
+
.p-paginator .p-select .p-select-label {
|
|
555
|
+
padding: 0;
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
.p-paginator .p-select-label,
|
|
559
|
+
.p-paginator .p-select-dropdown,
|
|
560
|
+
.p-paginator .p-paginator-current,
|
|
561
|
+
.p-paginator .p-paginator-rpp-label {
|
|
562
|
+
font-size: 0.875rem;
|
|
563
|
+
}
|
|
564
|
+
|
|
565
|
+
.p-paginator .p-paginator-prev > div,
|
|
566
|
+
.p-paginator .p-paginator-next > div {
|
|
567
|
+
gap: 0.5rem;
|
|
568
|
+
color: inherit;
|
|
569
|
+
}
|
|
570
|
+
|
|
571
|
+
/* Dark Mode Styles */
|
|
572
|
+
.dark .p-paginator {
|
|
573
|
+
border-color: var(--p-surface-700);
|
|
574
|
+
background: var(--p-surface-900);
|
|
575
|
+
box-shadow: none;
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
.dark .p-paginator-pages button,
|
|
579
|
+
.dark .p-paginator-prev,
|
|
580
|
+
.dark .p-paginator-next {
|
|
581
|
+
border-color: var(--p-surface-700);
|
|
582
|
+
}
|
|
583
|
+
|
|
584
|
+
.dark .p-paginator-prev {
|
|
585
|
+
border-right-color: var(--p-surface-700);
|
|
586
|
+
}
|
|
587
|
+
|
|
588
|
+
.dark .p-paginator-next {
|
|
589
|
+
border-left-color: var(--p-surface-700);
|
|
590
|
+
}
|
|
401
591
|
`,
|
|
402
592
|
},
|
|
403
593
|
toggleswitch: {
|