@masterteam/components 0.0.91 → 0.0.93
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-business-fields.mjs +225 -0
- package/fesm2022/masterteam-components-business-fields.mjs.map +1 -0
- package/fesm2022/masterteam-components-formula.mjs +985 -1
- package/fesm2022/masterteam-components-formula.mjs.map +1 -1
- package/fesm2022/masterteam-components-menu.mjs +21 -2
- package/fesm2022/masterteam-components-menu.mjs.map +1 -1
- package/fesm2022/masterteam-components.mjs +14 -1
- package/fesm2022/masterteam-components.mjs.map +1 -1
- package/package.json +5 -1
- package/types/masterteam-components-business-fields.d.ts +114 -0
- package/types/masterteam-components-formula.d.ts +69 -2
- package/types/masterteam-components-menu.d.ts +3 -0
- package/types/masterteam-components.d.ts +40 -3
|
@@ -4,6 +4,7 @@ import { Menu as Menu$1 } from 'primeng/menu';
|
|
|
4
4
|
import * as i1 from 'primeng/api';
|
|
5
5
|
import { SharedModule } from 'primeng/api';
|
|
6
6
|
import { Icon } from '@masterteam/icons';
|
|
7
|
+
import { Avatar } from '@masterteam/components/avatar';
|
|
7
8
|
import { NgTemplateOutlet } from '@angular/common';
|
|
8
9
|
|
|
9
10
|
class Menu {
|
|
@@ -46,12 +47,30 @@ class Menu {
|
|
|
46
47
|
getItemIcon(item) {
|
|
47
48
|
return item?.mtIcon;
|
|
48
49
|
}
|
|
50
|
+
getItemColor(item) {
|
|
51
|
+
return item?.mtColor;
|
|
52
|
+
}
|
|
53
|
+
getAvatarStyle(color) {
|
|
54
|
+
if (color.startsWith('#')) {
|
|
55
|
+
return {
|
|
56
|
+
'--p-avatar-background': color + '1a',
|
|
57
|
+
'--p-avatar-color': color,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
return {
|
|
61
|
+
'--p-avatar-background': `var(--p-${color}-100)`,
|
|
62
|
+
'--p-avatar-color': `var(--p-${color}-700)`,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
49
65
|
transformMenuItem(item, activeId) {
|
|
50
66
|
const transformed = { ...item };
|
|
51
67
|
if (item.icon) {
|
|
52
68
|
transformed.mtIcon = item.icon;
|
|
53
69
|
delete transformed.icon;
|
|
54
70
|
}
|
|
71
|
+
if (item.color) {
|
|
72
|
+
transformed.mtColor = item.color;
|
|
73
|
+
}
|
|
55
74
|
const classes = [];
|
|
56
75
|
const isActive = activeId && item.id && item.id === activeId;
|
|
57
76
|
if (isActive) {
|
|
@@ -100,11 +119,11 @@ class Menu {
|
|
|
100
119
|
this.onItemSelect.emit(item);
|
|
101
120
|
}
|
|
102
121
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: Menu, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
103
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.3", type: Menu, isStandalone: true, selector: "mt-menu", inputs: { model: { classPropertyName: "model", publicName: "model", isSignal: true, isRequired: false, transformFunction: null }, popup: { classPropertyName: "popup", publicName: "popup", isSignal: true, isRequired: false, transformFunction: null }, appendTo: { classPropertyName: "appendTo", publicName: "appendTo", isSignal: true, isRequired: false, transformFunction: null }, style: { classPropertyName: "style", publicName: "style", isSignal: true, isRequired: false, transformFunction: null }, styleClass: { classPropertyName: "styleClass", publicName: "styleClass", isSignal: true, isRequired: false, transformFunction: null }, autoZIndex: { classPropertyName: "autoZIndex", publicName: "autoZIndex", isSignal: true, isRequired: false, transformFunction: null }, baseZIndex: { classPropertyName: "baseZIndex", publicName: "baseZIndex", isSignal: true, isRequired: false, transformFunction: null }, showTransitionOptions: { classPropertyName: "showTransitionOptions", publicName: "showTransitionOptions", isSignal: true, isRequired: false, transformFunction: null }, hideTransitionOptions: { classPropertyName: "hideTransitionOptions", publicName: "hideTransitionOptions", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledBy: { classPropertyName: "ariaLabelledBy", publicName: "ariaLabelledBy", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, tabindex: { classPropertyName: "tabindex", publicName: "tabindex", isSignal: true, isRequired: false, transformFunction: null }, activeItemId: { classPropertyName: "activeItemId", publicName: "activeItemId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activeItemId: "activeItemIdChange", onShow: "onShow", onHide: "onHide", onBlur: "onBlur", onFocus: "onFocus", onItemSelect: "onItemSelect" }, queries: [{ propertyName: "startTemplate", first: true, predicate: ["start"], descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "endTemplate", first: true, predicate: ["end"], descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "headerTemplate", first: true, predicate: ["header"], descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "submenuHeaderTemplate", first: true, predicate: ["submenuheader"], descendants: true, read: TemplateRef, isSignal: true }], viewQueries: [{ propertyName: "menuRef", first: true, predicate: ["menu"], descendants: true, read: Menu$1, isSignal: true }], ngImport: i0, template: "<p-menu\r\n #menu\r\n [model]=\"transformedModel()\"\r\n [popup]=\"popup()\"\r\n [appendTo]=\"appendTo()\"\r\n [style]=\"style()\"\r\n [styleClass]=\"styleClass()\"\r\n [autoZIndex]=\"autoZIndex()\"\r\n [baseZIndex]=\"baseZIndex()\"\r\n [showTransitionOptions]=\"showTransitionOptions()\"\r\n [hideTransitionOptions]=\"hideTransitionOptions()\"\r\n [ariaLabel]=\"ariaLabel()\"\r\n [ariaLabelledBy]=\"ariaLabelledBy()\"\r\n [id]=\"id()\"\r\n [tabindex]=\"tabindex()\"\r\n (onShow)=\"onShow.emit($event)\"\r\n (onHide)=\"onHide.emit($event)\"\r\n (onBlur)=\"onBlur.emit($event)\"\r\n (onFocus)=\"onFocus.emit($event)\"\r\n>\r\n @if (startTemplate()) {\r\n <ng-template pTemplate=\"start\">\r\n <ng-container *ngTemplateOutlet=\"startTemplate()!\" />\r\n </ng-template>\r\n }\r\n\r\n @if (endTemplate()) {\r\n <ng-template pTemplate=\"end\">\r\n <ng-container *ngTemplateOutlet=\"endTemplate()!\" />\r\n </ng-template>\r\n }\r\n\r\n @if (headerTemplate()) {\r\n <ng-template pTemplate=\"header\">\r\n <ng-container *ngTemplateOutlet=\"headerTemplate()!\" />\r\n </ng-template>\r\n }\r\n\r\n @if (submenuHeaderTemplate()) {\r\n <ng-template pTemplate=\"submenuheader\" let-item>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n submenuHeaderTemplate()!;\r\n context: { $implicit: item }\r\n \"\r\n />\r\n </ng-template>\r\n }\r\n\r\n <ng-template pTemplate=\"item\" let-item>\r\n <div\r\n class=\"flex gap-2 align-middle p-2 cursor-pointer rounded transition-colors\"\r\n [class]=\"item.computedClass\"\r\n >\r\n @if (getItemIcon(item)) {\r\n <mt-
|
|
122
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.3", type: Menu, isStandalone: true, selector: "mt-menu", inputs: { model: { classPropertyName: "model", publicName: "model", isSignal: true, isRequired: false, transformFunction: null }, popup: { classPropertyName: "popup", publicName: "popup", isSignal: true, isRequired: false, transformFunction: null }, appendTo: { classPropertyName: "appendTo", publicName: "appendTo", isSignal: true, isRequired: false, transformFunction: null }, style: { classPropertyName: "style", publicName: "style", isSignal: true, isRequired: false, transformFunction: null }, styleClass: { classPropertyName: "styleClass", publicName: "styleClass", isSignal: true, isRequired: false, transformFunction: null }, autoZIndex: { classPropertyName: "autoZIndex", publicName: "autoZIndex", isSignal: true, isRequired: false, transformFunction: null }, baseZIndex: { classPropertyName: "baseZIndex", publicName: "baseZIndex", isSignal: true, isRequired: false, transformFunction: null }, showTransitionOptions: { classPropertyName: "showTransitionOptions", publicName: "showTransitionOptions", isSignal: true, isRequired: false, transformFunction: null }, hideTransitionOptions: { classPropertyName: "hideTransitionOptions", publicName: "hideTransitionOptions", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledBy: { classPropertyName: "ariaLabelledBy", publicName: "ariaLabelledBy", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, tabindex: { classPropertyName: "tabindex", publicName: "tabindex", isSignal: true, isRequired: false, transformFunction: null }, activeItemId: { classPropertyName: "activeItemId", publicName: "activeItemId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activeItemId: "activeItemIdChange", onShow: "onShow", onHide: "onHide", onBlur: "onBlur", onFocus: "onFocus", onItemSelect: "onItemSelect" }, queries: [{ propertyName: "startTemplate", first: true, predicate: ["start"], descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "endTemplate", first: true, predicate: ["end"], descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "headerTemplate", first: true, predicate: ["header"], descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "submenuHeaderTemplate", first: true, predicate: ["submenuheader"], descendants: true, read: TemplateRef, isSignal: true }], viewQueries: [{ propertyName: "menuRef", first: true, predicate: ["menu"], descendants: true, read: Menu$1, isSignal: true }], ngImport: i0, template: "<p-menu\r\n #menu\r\n [model]=\"transformedModel()\"\r\n [popup]=\"popup()\"\r\n [appendTo]=\"appendTo()\"\r\n [style]=\"style()\"\r\n [styleClass]=\"styleClass()\"\r\n [autoZIndex]=\"autoZIndex()\"\r\n [baseZIndex]=\"baseZIndex()\"\r\n [showTransitionOptions]=\"showTransitionOptions()\"\r\n [hideTransitionOptions]=\"hideTransitionOptions()\"\r\n [ariaLabel]=\"ariaLabel()\"\r\n [ariaLabelledBy]=\"ariaLabelledBy()\"\r\n [id]=\"id()\"\r\n [tabindex]=\"tabindex()\"\r\n (onShow)=\"onShow.emit($event)\"\r\n (onHide)=\"onHide.emit($event)\"\r\n (onBlur)=\"onBlur.emit($event)\"\r\n (onFocus)=\"onFocus.emit($event)\"\r\n>\r\n @if (startTemplate()) {\r\n <ng-template pTemplate=\"start\">\r\n <ng-container *ngTemplateOutlet=\"startTemplate()!\" />\r\n </ng-template>\r\n }\r\n\r\n @if (endTemplate()) {\r\n <ng-template pTemplate=\"end\">\r\n <ng-container *ngTemplateOutlet=\"endTemplate()!\" />\r\n </ng-template>\r\n }\r\n\r\n @if (headerTemplate()) {\r\n <ng-template pTemplate=\"header\">\r\n <ng-container *ngTemplateOutlet=\"headerTemplate()!\" />\r\n </ng-template>\r\n }\r\n\r\n @if (submenuHeaderTemplate()) {\r\n <ng-template pTemplate=\"submenuheader\" let-item>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n submenuHeaderTemplate()!;\r\n context: { $implicit: item }\r\n \"\r\n />\r\n </ng-template>\r\n }\r\n\r\n <ng-template pTemplate=\"item\" let-item>\r\n <div\r\n class=\"flex gap-2 align-middle items-center p-2 cursor-pointer rounded transition-colors\"\r\n [class]=\"item.computedClass\"\r\n >\r\n @if (getItemIcon(item)) {\r\n <mt-avatar\r\n [style]=\"getAvatarStyle(getItemColor(item) || 'gray')\"\r\n [icon]=\"getItemIcon(item)!\"\r\n shape=\"square\"\r\n size=\"normal\"\r\n />\r\n }\r\n @if (item.label) {\r\n <span class=\"p-menu-item-label\">{{ item.label }}</span>\r\n }\r\n @if (item.badge) {\r\n <span class=\"p-menu-item-badge\">{{ item.badge }}</span>\r\n }\r\n </div>\r\n </ng-template>\r\n</p-menu>\r\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "component", type: Menu$1, selector: "p-menu", inputs: ["model", "popup", "style", "styleClass", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaLabel", "ariaLabelledBy", "id", "tabindex", "appendTo", "motionOptions"], outputs: ["onShow", "onHide", "onBlur", "onFocus"] }, { kind: "component", type: Avatar, selector: "mt-avatar", inputs: ["label", "icon", "image", "styleClass", "size", "shape", "badge", "badgeSize", "badgeSeverity"], outputs: ["onImageError"] }, { kind: "ngmodule", type: SharedModule }, { kind: "directive", type: i1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
|
|
104
123
|
}
|
|
105
124
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: Menu, decorators: [{
|
|
106
125
|
type: Component,
|
|
107
|
-
args: [{ selector: 'mt-menu', standalone: true, imports: [Menu$1, Icon, SharedModule, NgTemplateOutlet], template: "<p-menu\r\n #menu\r\n [model]=\"transformedModel()\"\r\n [popup]=\"popup()\"\r\n [appendTo]=\"appendTo()\"\r\n [style]=\"style()\"\r\n [styleClass]=\"styleClass()\"\r\n [autoZIndex]=\"autoZIndex()\"\r\n [baseZIndex]=\"baseZIndex()\"\r\n [showTransitionOptions]=\"showTransitionOptions()\"\r\n [hideTransitionOptions]=\"hideTransitionOptions()\"\r\n [ariaLabel]=\"ariaLabel()\"\r\n [ariaLabelledBy]=\"ariaLabelledBy()\"\r\n [id]=\"id()\"\r\n [tabindex]=\"tabindex()\"\r\n (onShow)=\"onShow.emit($event)\"\r\n (onHide)=\"onHide.emit($event)\"\r\n (onBlur)=\"onBlur.emit($event)\"\r\n (onFocus)=\"onFocus.emit($event)\"\r\n>\r\n @if (startTemplate()) {\r\n <ng-template pTemplate=\"start\">\r\n <ng-container *ngTemplateOutlet=\"startTemplate()!\" />\r\n </ng-template>\r\n }\r\n\r\n @if (endTemplate()) {\r\n <ng-template pTemplate=\"end\">\r\n <ng-container *ngTemplateOutlet=\"endTemplate()!\" />\r\n </ng-template>\r\n }\r\n\r\n @if (headerTemplate()) {\r\n <ng-template pTemplate=\"header\">\r\n <ng-container *ngTemplateOutlet=\"headerTemplate()!\" />\r\n </ng-template>\r\n }\r\n\r\n @if (submenuHeaderTemplate()) {\r\n <ng-template pTemplate=\"submenuheader\" let-item>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n submenuHeaderTemplate()!;\r\n context: { $implicit: item }\r\n \"\r\n />\r\n </ng-template>\r\n }\r\n\r\n <ng-template pTemplate=\"item\" let-item>\r\n <div\r\n class=\"flex gap-2 align-middle p-2 cursor-pointer rounded transition-colors\"\r\n [class]=\"item.computedClass\"\r\n >\r\n @if (getItemIcon(item)) {\r\n <mt-
|
|
126
|
+
args: [{ selector: 'mt-menu', standalone: true, imports: [Menu$1, Icon, Avatar, SharedModule, NgTemplateOutlet], template: "<p-menu\r\n #menu\r\n [model]=\"transformedModel()\"\r\n [popup]=\"popup()\"\r\n [appendTo]=\"appendTo()\"\r\n [style]=\"style()\"\r\n [styleClass]=\"styleClass()\"\r\n [autoZIndex]=\"autoZIndex()\"\r\n [baseZIndex]=\"baseZIndex()\"\r\n [showTransitionOptions]=\"showTransitionOptions()\"\r\n [hideTransitionOptions]=\"hideTransitionOptions()\"\r\n [ariaLabel]=\"ariaLabel()\"\r\n [ariaLabelledBy]=\"ariaLabelledBy()\"\r\n [id]=\"id()\"\r\n [tabindex]=\"tabindex()\"\r\n (onShow)=\"onShow.emit($event)\"\r\n (onHide)=\"onHide.emit($event)\"\r\n (onBlur)=\"onBlur.emit($event)\"\r\n (onFocus)=\"onFocus.emit($event)\"\r\n>\r\n @if (startTemplate()) {\r\n <ng-template pTemplate=\"start\">\r\n <ng-container *ngTemplateOutlet=\"startTemplate()!\" />\r\n </ng-template>\r\n }\r\n\r\n @if (endTemplate()) {\r\n <ng-template pTemplate=\"end\">\r\n <ng-container *ngTemplateOutlet=\"endTemplate()!\" />\r\n </ng-template>\r\n }\r\n\r\n @if (headerTemplate()) {\r\n <ng-template pTemplate=\"header\">\r\n <ng-container *ngTemplateOutlet=\"headerTemplate()!\" />\r\n </ng-template>\r\n }\r\n\r\n @if (submenuHeaderTemplate()) {\r\n <ng-template pTemplate=\"submenuheader\" let-item>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n submenuHeaderTemplate()!;\r\n context: { $implicit: item }\r\n \"\r\n />\r\n </ng-template>\r\n }\r\n\r\n <ng-template pTemplate=\"item\" let-item>\r\n <div\r\n class=\"flex gap-2 align-middle items-center p-2 cursor-pointer rounded transition-colors\"\r\n [class]=\"item.computedClass\"\r\n >\r\n @if (getItemIcon(item)) {\r\n <mt-avatar\r\n [style]=\"getAvatarStyle(getItemColor(item) || 'gray')\"\r\n [icon]=\"getItemIcon(item)!\"\r\n shape=\"square\"\r\n size=\"normal\"\r\n />\r\n }\r\n @if (item.label) {\r\n <span class=\"p-menu-item-label\">{{ item.label }}</span>\r\n }\r\n @if (item.badge) {\r\n <span class=\"p-menu-item-badge\">{{ item.badge }}</span>\r\n }\r\n </div>\r\n </ng-template>\r\n</p-menu>\r\n", styles: [":host{display:contents}\n"] }]
|
|
108
127
|
}], propDecorators: { menuRef: [{ type: i0.ViewChild, args: ['menu', { ...{ read: Menu$1 }, isSignal: true }] }], startTemplate: [{ type: i0.ContentChild, args: ['start', { ...{ read: TemplateRef }, isSignal: true }] }], endTemplate: [{ type: i0.ContentChild, args: ['end', { ...{ read: TemplateRef }, isSignal: true }] }], headerTemplate: [{ type: i0.ContentChild, args: ['header', { ...{ read: TemplateRef }, isSignal: true }] }], submenuHeaderTemplate: [{ type: i0.ContentChild, args: ['submenuheader', { ...{
|
|
109
128
|
read: TemplateRef,
|
|
110
129
|
}, isSignal: true }] }], model: [{ type: i0.Input, args: [{ isSignal: true, alias: "model", required: false }] }], popup: [{ type: i0.Input, args: [{ isSignal: true, alias: "popup", required: false }] }], appendTo: [{ type: i0.Input, args: [{ isSignal: true, alias: "appendTo", required: false }] }], style: [{ type: i0.Input, args: [{ isSignal: true, alias: "style", required: false }] }], styleClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "styleClass", required: false }] }], autoZIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoZIndex", required: false }] }], baseZIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "baseZIndex", required: false }] }], showTransitionOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "showTransitionOptions", required: false }] }], hideTransitionOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideTransitionOptions", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], ariaLabelledBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabelledBy", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], tabindex: [{ type: i0.Input, args: [{ isSignal: true, alias: "tabindex", required: false }] }], activeItemId: [{ type: i0.Input, args: [{ isSignal: true, alias: "activeItemId", required: false }] }, { type: i0.Output, args: ["activeItemIdChange"] }], onShow: [{ type: i0.Output, args: ["onShow"] }], onHide: [{ type: i0.Output, args: ["onHide"] }], onBlur: [{ type: i0.Output, args: ["onBlur"] }], onFocus: [{ type: i0.Output, args: ["onFocus"] }], onItemSelect: [{ type: i0.Output, args: ["onItemSelect"] }] } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"masterteam-components-menu.mjs","sources":["../../../../packages/masterteam/components/menu/menu.ts","../../../../packages/masterteam/components/menu/menu.html","../../../../packages/masterteam/components/menu/masterteam-components-menu.ts"],"sourcesContent":["import {\r\n Component,\r\n input,\r\n output,\r\n booleanAttribute,\r\n computed,\r\n viewChild,\r\n contentChild,\r\n TemplateRef,\r\n model,\r\n} from '@angular/core';\r\nimport { Menu as PrimeMenu } from 'primeng/menu';\r\nimport { MenuItem, SharedModule } from 'primeng/api';\r\nimport { Icon, MTIcon } from '@masterteam/icons';\r\nimport { ButtonSeverity } from 'primeng/button';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\n\r\nexport interface MTMenuItem extends Omit<MenuItem, 'icon'> {\r\n icon?: MTIcon;\r\n severity?: ButtonSeverity | 'danger';\r\n styleClass?: string;\r\n id?: string | number;\r\n}\r\n\r\n@Component({\r\n selector: 'mt-menu',\r\n standalone: true,\r\n imports: [PrimeMenu, Icon, SharedModule, NgTemplateOutlet],\r\n templateUrl: './menu.html',\r\n styleUrls: ['./menu.scss'],\r\n})\r\nexport class Menu {\r\n menuRef = viewChild.required('menu', { read: PrimeMenu });\r\n\r\n readonly startTemplate = contentChild('start', { read: TemplateRef });\r\n readonly endTemplate = contentChild('end', { read: TemplateRef });\r\n readonly headerTemplate = contentChild('header', { read: TemplateRef });\r\n readonly submenuHeaderTemplate = contentChild('submenuheader', {\r\n read: TemplateRef,\r\n });\r\n\r\n readonly model = input<MTMenuItem[]>([]);\r\n readonly popup = input<boolean, unknown>(true, {\r\n transform: booleanAttribute,\r\n });\r\n readonly appendTo = input<any>('body');\r\n readonly style = input<Record<string, any> | null>();\r\n readonly styleClass = input<string>();\r\n readonly autoZIndex = input<boolean, unknown>(true, {\r\n transform: booleanAttribute,\r\n });\r\n readonly baseZIndex = input<number>(0);\r\n readonly showTransitionOptions = input<string>(\r\n '0.12s cubic-bezier(0, 0, 0.2, 1)',\r\n );\r\n readonly hideTransitionOptions = input<string>('0.1s linear');\r\n readonly ariaLabel = input<string>();\r\n readonly ariaLabelledBy = input<string>();\r\n readonly id = input<string>();\r\n readonly tabindex = input<number>(0);\r\n\r\n readonly activeItemId = model<string | number | undefined>();\r\n\r\n readonly onShow = output<any>();\r\n readonly onHide = output<any>();\r\n readonly onBlur = output<Event>();\r\n readonly onFocus = output<Event>();\r\n readonly onItemSelect = output<MTMenuItem>();\r\n\r\n transformedModel = computed(() => {\r\n return this.model().map((item) =>\r\n this.transformMenuItem(item, this.activeItemId()),\r\n );\r\n });\r\n\r\n toggle(event: Event): void {\r\n this.menuRef().toggle(event);\r\n }\r\n\r\n show(event: Event): void {\r\n this.menuRef().show(event);\r\n }\r\n\r\n hide(): void {\r\n this.menuRef().hide();\r\n }\r\n\r\n protected getItemIcon(item: any): MTIcon | undefined {\r\n return item?.mtIcon;\r\n }\r\n\r\n private transformMenuItem(item: MTMenuItem, activeId?: string | number): any {\r\n const transformed: any = { ...item };\r\n\r\n if (item.icon) {\r\n transformed.mtIcon = item.icon;\r\n delete transformed.icon;\r\n }\r\n\r\n const classes: string[] = [];\r\n const isActive = activeId && item.id && item.id === activeId;\r\n\r\n if (isActive) {\r\n classes.push(\r\n 'bg-primary-50',\r\n 'text-primary-700',\r\n 'dark:bg-primary-900/20',\r\n 'dark:text-primary-300',\r\n );\r\n } else if (item.severity) {\r\n const severityClass = this.getSeverityClass(item.severity);\r\n if (severityClass) {\r\n classes.push(severityClass);\r\n }\r\n }\r\n\r\n if (item.styleClass) {\r\n classes.push(item.styleClass);\r\n }\r\n\r\n transformed.computedClass = classes.join(' ');\r\n\r\n if (item['items']) {\r\n transformed['items'] = item['items'].map((subItem: any) =>\r\n this.transformMenuItem(subItem as MTMenuItem, activeId),\r\n );\r\n }\r\n\r\n const originalCommand = transformed.command;\r\n transformed.command = (event: any) => {\r\n if (item.id) {\r\n this.handleItemSelect(item);\r\n }\r\n\r\n if (originalCommand) {\r\n originalCommand(event);\r\n }\r\n };\r\n\r\n return transformed;\r\n }\r\n\r\n private getSeverityClass(severity: string): string {\r\n const severityMap: Record<string, string> = {\r\n danger: 'text-red-600 hover:bg-red-50 hover:text-red-700',\r\n warn: 'text-yellow-600 hover:bg-yellow-50 hover:text-yellow-700',\r\n success: 'text-green-600 hover:bg-green-50 hover:text-green-700',\r\n info: 'text-blue-600 hover:bg-blue-50 hover:text-blue-700',\r\n help: 'text-purple-600 hover:bg-purple-50 hover:text-purple-700',\r\n secondary: 'text-gray-600 hover:bg-gray-50 hover:text-gray-700',\r\n contrast: 'text-gray-900 hover:bg-gray-100',\r\n };\r\n\r\n return severityMap[severity] || '';\r\n }\r\n\r\n private handleItemSelect(item: MTMenuItem): void {\r\n if (item.id) {\r\n this.activeItemId.set(item.id);\r\n }\r\n this.onItemSelect.emit(item);\r\n }\r\n}\r\n","<p-menu\r\n #menu\r\n [model]=\"transformedModel()\"\r\n [popup]=\"popup()\"\r\n [appendTo]=\"appendTo()\"\r\n [style]=\"style()\"\r\n [styleClass]=\"styleClass()\"\r\n [autoZIndex]=\"autoZIndex()\"\r\n [baseZIndex]=\"baseZIndex()\"\r\n [showTransitionOptions]=\"showTransitionOptions()\"\r\n [hideTransitionOptions]=\"hideTransitionOptions()\"\r\n [ariaLabel]=\"ariaLabel()\"\r\n [ariaLabelledBy]=\"ariaLabelledBy()\"\r\n [id]=\"id()\"\r\n [tabindex]=\"tabindex()\"\r\n (onShow)=\"onShow.emit($event)\"\r\n (onHide)=\"onHide.emit($event)\"\r\n (onBlur)=\"onBlur.emit($event)\"\r\n (onFocus)=\"onFocus.emit($event)\"\r\n>\r\n @if (startTemplate()) {\r\n <ng-template pTemplate=\"start\">\r\n <ng-container *ngTemplateOutlet=\"startTemplate()!\" />\r\n </ng-template>\r\n }\r\n\r\n @if (endTemplate()) {\r\n <ng-template pTemplate=\"end\">\r\n <ng-container *ngTemplateOutlet=\"endTemplate()!\" />\r\n </ng-template>\r\n }\r\n\r\n @if (headerTemplate()) {\r\n <ng-template pTemplate=\"header\">\r\n <ng-container *ngTemplateOutlet=\"headerTemplate()!\" />\r\n </ng-template>\r\n }\r\n\r\n @if (submenuHeaderTemplate()) {\r\n <ng-template pTemplate=\"submenuheader\" let-item>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n submenuHeaderTemplate()!;\r\n context: { $implicit: item }\r\n \"\r\n />\r\n </ng-template>\r\n }\r\n\r\n <ng-template pTemplate=\"item\" let-item>\r\n <div\r\n class=\"flex gap-2 align-middle p-2 cursor-pointer rounded transition-colors\"\r\n [class]=\"item.computedClass\"\r\n >\r\n @if (getItemIcon(item)) {\r\n <mt-icon\r\n [icon]=\"getItemIcon(item)!\"\r\n class=\"p-menu-item-icon\"\r\n [style.color]=\"'inherit'\"\r\n />\r\n }\r\n @if (item.label) {\r\n <span class=\"p-menu-item-label\">{{ item.label }}</span>\r\n }\r\n @if (item.badge) {\r\n <span class=\"p-menu-item-badge\">{{ item.badge }}</span>\r\n }\r\n </div>\r\n </ng-template>\r\n</p-menu>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["PrimeMenu"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"masterteam-components-menu.mjs","sources":["../../../../packages/masterteam/components/menu/menu.ts","../../../../packages/masterteam/components/menu/menu.html","../../../../packages/masterteam/components/menu/masterteam-components-menu.ts"],"sourcesContent":["import {\r\n Component,\r\n input,\r\n output,\r\n booleanAttribute,\r\n computed,\r\n viewChild,\r\n contentChild,\r\n TemplateRef,\r\n model,\r\n} from '@angular/core';\r\nimport { Menu as PrimeMenu } from 'primeng/menu';\r\nimport { MenuItem, SharedModule } from 'primeng/api';\r\nimport { Icon, MTIcon } from '@masterteam/icons';\r\nimport { Avatar } from '@masterteam/components/avatar';\r\nimport { ButtonSeverity } from 'primeng/button';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\n\r\nexport interface MTMenuItem extends Omit<MenuItem, 'icon'> {\r\n icon?: MTIcon;\r\n color?: string;\r\n severity?: ButtonSeverity | 'danger';\r\n styleClass?: string;\r\n id?: string | number;\r\n}\r\n\r\n@Component({\r\n selector: 'mt-menu',\r\n standalone: true,\r\n imports: [PrimeMenu, Icon, Avatar, SharedModule, NgTemplateOutlet],\r\n templateUrl: './menu.html',\r\n styleUrls: ['./menu.scss'],\r\n})\r\nexport class Menu {\r\n menuRef = viewChild.required('menu', { read: PrimeMenu });\r\n\r\n readonly startTemplate = contentChild('start', { read: TemplateRef });\r\n readonly endTemplate = contentChild('end', { read: TemplateRef });\r\n readonly headerTemplate = contentChild('header', { read: TemplateRef });\r\n readonly submenuHeaderTemplate = contentChild('submenuheader', {\r\n read: TemplateRef,\r\n });\r\n\r\n readonly model = input<MTMenuItem[]>([]);\r\n readonly popup = input<boolean, unknown>(true, {\r\n transform: booleanAttribute,\r\n });\r\n readonly appendTo = input<any>('body');\r\n readonly style = input<Record<string, any> | null>();\r\n readonly styleClass = input<string>();\r\n readonly autoZIndex = input<boolean, unknown>(true, {\r\n transform: booleanAttribute,\r\n });\r\n readonly baseZIndex = input<number>(0);\r\n readonly showTransitionOptions = input<string>(\r\n '0.12s cubic-bezier(0, 0, 0.2, 1)',\r\n );\r\n readonly hideTransitionOptions = input<string>('0.1s linear');\r\n readonly ariaLabel = input<string>();\r\n readonly ariaLabelledBy = input<string>();\r\n readonly id = input<string>();\r\n readonly tabindex = input<number>(0);\r\n\r\n readonly activeItemId = model<string | number | undefined>();\r\n\r\n readonly onShow = output<any>();\r\n readonly onHide = output<any>();\r\n readonly onBlur = output<Event>();\r\n readonly onFocus = output<Event>();\r\n readonly onItemSelect = output<MTMenuItem>();\r\n\r\n transformedModel = computed(() => {\r\n return this.model().map((item) =>\r\n this.transformMenuItem(item, this.activeItemId()),\r\n );\r\n });\r\n\r\n toggle(event: Event): void {\r\n this.menuRef().toggle(event);\r\n }\r\n\r\n show(event: Event): void {\r\n this.menuRef().show(event);\r\n }\r\n\r\n hide(): void {\r\n this.menuRef().hide();\r\n }\r\n\r\n protected getItemIcon(item: any): MTIcon | undefined {\r\n return item?.mtIcon;\r\n }\r\n\r\n protected getItemColor(item: any): string | undefined {\r\n return item?.mtColor;\r\n }\r\n\r\n protected getAvatarStyle(color: string): Record<string, string> {\r\n if (color.startsWith('#')) {\r\n return {\r\n '--p-avatar-background': color + '1a',\r\n '--p-avatar-color': color,\r\n };\r\n }\r\n return {\r\n '--p-avatar-background': `var(--p-${color}-100)`,\r\n '--p-avatar-color': `var(--p-${color}-700)`,\r\n };\r\n }\r\n\r\n private transformMenuItem(item: MTMenuItem, activeId?: string | number): any {\r\n const transformed: any = { ...item };\r\n\r\n if (item.icon) {\r\n transformed.mtIcon = item.icon;\r\n delete transformed.icon;\r\n }\r\n\r\n if (item.color) {\r\n transformed.mtColor = item.color;\r\n }\r\n\r\n const classes: string[] = [];\r\n const isActive = activeId && item.id && item.id === activeId;\r\n\r\n if (isActive) {\r\n classes.push(\r\n 'bg-primary-50',\r\n 'text-primary-700',\r\n 'dark:bg-primary-900/20',\r\n 'dark:text-primary-300',\r\n );\r\n } else if (item.severity) {\r\n const severityClass = this.getSeverityClass(item.severity);\r\n if (severityClass) {\r\n classes.push(severityClass);\r\n }\r\n }\r\n\r\n if (item.styleClass) {\r\n classes.push(item.styleClass);\r\n }\r\n\r\n transformed.computedClass = classes.join(' ');\r\n\r\n if (item['items']) {\r\n transformed['items'] = item['items'].map((subItem: any) =>\r\n this.transformMenuItem(subItem as MTMenuItem, activeId),\r\n );\r\n }\r\n\r\n const originalCommand = transformed.command;\r\n transformed.command = (event: any) => {\r\n if (item.id) {\r\n this.handleItemSelect(item);\r\n }\r\n\r\n if (originalCommand) {\r\n originalCommand(event);\r\n }\r\n };\r\n\r\n return transformed;\r\n }\r\n\r\n private getSeverityClass(severity: string): string {\r\n const severityMap: Record<string, string> = {\r\n danger: 'text-red-600 hover:bg-red-50 hover:text-red-700',\r\n warn: 'text-yellow-600 hover:bg-yellow-50 hover:text-yellow-700',\r\n success: 'text-green-600 hover:bg-green-50 hover:text-green-700',\r\n info: 'text-blue-600 hover:bg-blue-50 hover:text-blue-700',\r\n help: 'text-purple-600 hover:bg-purple-50 hover:text-purple-700',\r\n secondary: 'text-gray-600 hover:bg-gray-50 hover:text-gray-700',\r\n contrast: 'text-gray-900 hover:bg-gray-100',\r\n };\r\n\r\n return severityMap[severity] || '';\r\n }\r\n\r\n private handleItemSelect(item: MTMenuItem): void {\r\n if (item.id) {\r\n this.activeItemId.set(item.id);\r\n }\r\n this.onItemSelect.emit(item);\r\n }\r\n}\r\n","<p-menu\r\n #menu\r\n [model]=\"transformedModel()\"\r\n [popup]=\"popup()\"\r\n [appendTo]=\"appendTo()\"\r\n [style]=\"style()\"\r\n [styleClass]=\"styleClass()\"\r\n [autoZIndex]=\"autoZIndex()\"\r\n [baseZIndex]=\"baseZIndex()\"\r\n [showTransitionOptions]=\"showTransitionOptions()\"\r\n [hideTransitionOptions]=\"hideTransitionOptions()\"\r\n [ariaLabel]=\"ariaLabel()\"\r\n [ariaLabelledBy]=\"ariaLabelledBy()\"\r\n [id]=\"id()\"\r\n [tabindex]=\"tabindex()\"\r\n (onShow)=\"onShow.emit($event)\"\r\n (onHide)=\"onHide.emit($event)\"\r\n (onBlur)=\"onBlur.emit($event)\"\r\n (onFocus)=\"onFocus.emit($event)\"\r\n>\r\n @if (startTemplate()) {\r\n <ng-template pTemplate=\"start\">\r\n <ng-container *ngTemplateOutlet=\"startTemplate()!\" />\r\n </ng-template>\r\n }\r\n\r\n @if (endTemplate()) {\r\n <ng-template pTemplate=\"end\">\r\n <ng-container *ngTemplateOutlet=\"endTemplate()!\" />\r\n </ng-template>\r\n }\r\n\r\n @if (headerTemplate()) {\r\n <ng-template pTemplate=\"header\">\r\n <ng-container *ngTemplateOutlet=\"headerTemplate()!\" />\r\n </ng-template>\r\n }\r\n\r\n @if (submenuHeaderTemplate()) {\r\n <ng-template pTemplate=\"submenuheader\" let-item>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n submenuHeaderTemplate()!;\r\n context: { $implicit: item }\r\n \"\r\n />\r\n </ng-template>\r\n }\r\n\r\n <ng-template pTemplate=\"item\" let-item>\r\n <div\r\n class=\"flex gap-2 align-middle items-center p-2 cursor-pointer rounded transition-colors\"\r\n [class]=\"item.computedClass\"\r\n >\r\n @if (getItemIcon(item)) {\r\n <mt-avatar\r\n [style]=\"getAvatarStyle(getItemColor(item) || 'gray')\"\r\n [icon]=\"getItemIcon(item)!\"\r\n shape=\"square\"\r\n size=\"normal\"\r\n />\r\n }\r\n @if (item.label) {\r\n <span class=\"p-menu-item-label\">{{ item.label }}</span>\r\n }\r\n @if (item.badge) {\r\n <span class=\"p-menu-item-badge\">{{ item.badge }}</span>\r\n }\r\n </div>\r\n </ng-template>\r\n</p-menu>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["PrimeMenu"],"mappings":"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"}
|
|
@@ -532,6 +532,7 @@ class BaseFieldConfig {
|
|
|
532
532
|
defaultValue;
|
|
533
533
|
customTemplate;
|
|
534
534
|
relations;
|
|
535
|
+
formulaCondition;
|
|
535
536
|
constructor(config) {
|
|
536
537
|
this.key = config.key || 'Key';
|
|
537
538
|
this.label = config.label || '';
|
|
@@ -546,6 +547,7 @@ class BaseFieldConfig {
|
|
|
546
547
|
this.validators = config.validators || [];
|
|
547
548
|
this.order = config.order || 0;
|
|
548
549
|
this.relations = config.relations || [];
|
|
550
|
+
this.formulaCondition = config.formulaCondition;
|
|
549
551
|
this.colSpan = config.colSpan || 12;
|
|
550
552
|
}
|
|
551
553
|
}
|
|
@@ -879,6 +881,17 @@ class SpacerFieldConfig extends BaseFieldConfig {
|
|
|
879
881
|
});
|
|
880
882
|
}
|
|
881
883
|
}
|
|
884
|
+
class SchemaConnectionFieldConfig extends BaseFieldConfig {
|
|
885
|
+
configuration;
|
|
886
|
+
context;
|
|
887
|
+
filter;
|
|
888
|
+
constructor(config) {
|
|
889
|
+
super({ ...config, type: 'schema-connection' });
|
|
890
|
+
this.configuration = config.configuration;
|
|
891
|
+
this.context = config.context || undefined;
|
|
892
|
+
this.filter = config.filter ?? true;
|
|
893
|
+
}
|
|
894
|
+
}
|
|
882
895
|
function createCustomValidator(customValidator, message) {
|
|
883
896
|
return (control) => {
|
|
884
897
|
const result = customValidator(control.value);
|
|
@@ -1311,5 +1324,5 @@ function getContrastColor(bgColor) {
|
|
|
1311
1324
|
* Generated bundle index. Do not edit.
|
|
1312
1325
|
*/
|
|
1313
1326
|
|
|
1314
|
-
export { BaseFacade, BaseFieldConfig, CheckboxFieldConfig, ColorPickerFieldConfig, CrudStateBase, DateFieldConfig, EditorFieldConfig, IconFieldConfig, MultiSelectFieldConfig, NumberFieldConfig, PickListFieldConfig, REQUEST_CONTEXT, RadioButtonFieldConfig, RadioCardsFieldConfig, SelectFieldConfig, SliderFieldConfig, SpacerFieldConfig, TextFieldConfig, TextareaFieldConfig, ToggleFieldConfig, UploadFileFieldConfig, UserSearchFieldConfig, ValidatorConfig, changeBackgroundColor, changePrimaryColor, changeTextColor, createCustomValidator, createEntityAdapter, endLoading, generateTailwindPalette, getContrastColor, getLightColor, handleApiRequest, isInvalid, provideMTComponents, provideMTConfirmation, provideMTMessages, setLoadingError, startLoading, wrapValidatorWithMessage };
|
|
1327
|
+
export { BaseFacade, BaseFieldConfig, CheckboxFieldConfig, ColorPickerFieldConfig, CrudStateBase, DateFieldConfig, EditorFieldConfig, IconFieldConfig, MultiSelectFieldConfig, NumberFieldConfig, PickListFieldConfig, REQUEST_CONTEXT, RadioButtonFieldConfig, RadioCardsFieldConfig, SchemaConnectionFieldConfig, SelectFieldConfig, SliderFieldConfig, SpacerFieldConfig, TextFieldConfig, TextareaFieldConfig, ToggleFieldConfig, UploadFileFieldConfig, UserSearchFieldConfig, ValidatorConfig, changeBackgroundColor, changePrimaryColor, changeTextColor, createCustomValidator, createEntityAdapter, endLoading, generateTailwindPalette, getContrastColor, getLightColor, handleApiRequest, isInvalid, provideMTComponents, provideMTConfirmation, provideMTMessages, setLoadingError, startLoading, wrapValidatorWithMessage };
|
|
1315
1328
|
//# sourceMappingURL=masterteam-components.mjs.map
|