@masterteam/components 0.0.180 → 0.0.182
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/masterteam-components-drawer.mjs +2 -2
- package/fesm2022/masterteam-components-drawer.mjs.map +1 -1
- package/fesm2022/masterteam-components-dynamic-drawer.mjs.map +1 -1
- package/fesm2022/masterteam-components-entities.mjs +16 -16
- package/fesm2022/masterteam-components-entities.mjs.map +1 -1
- package/fesm2022/masterteam-components-field-validation.mjs +24 -4
- package/fesm2022/masterteam-components-field-validation.mjs.map +1 -1
- package/fesm2022/masterteam-components-location-field.mjs +4 -4
- package/fesm2022/masterteam-components-location-field.mjs.map +1 -1
- package/fesm2022/masterteam-components-number-field.mjs +2 -2
- package/fesm2022/masterteam-components-number-field.mjs.map +1 -1
- package/fesm2022/masterteam-components-radio-cards-field.mjs +2 -2
- package/fesm2022/masterteam-components-radio-cards-field.mjs.map +1 -1
- package/fesm2022/masterteam-components-runtime-action.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-table.mjs +25 -11
- package/fesm2022/masterteam-components-table.mjs.map +1 -1
- package/fesm2022/masterteam-components-text-field.mjs +2 -2
- package/fesm2022/masterteam-components-text-field.mjs.map +1 -1
- package/fesm2022/masterteam-components-textarea-field.mjs +2 -2
- package/fesm2022/masterteam-components-textarea-field.mjs.map +1 -1
- package/fesm2022/masterteam-components-toggle-field.mjs +2 -2
- package/fesm2022/masterteam-components-toggle-field.mjs.map +1 -1
- package/fesm2022/masterteam-components-user-search-field.mjs +34 -4
- package/fesm2022/masterteam-components-user-search-field.mjs.map +1 -1
- package/fesm2022/masterteam-components.mjs +3 -3
- package/fesm2022/masterteam-components.mjs.map +1 -1
- package/package.json +4 -4
- package/types/masterteam-components-field-validation.d.ts +8 -0
- package/types/masterteam-components-table.d.ts +2 -0
- package/types/masterteam-components-user-search-field.d.ts +2 -0
|
@@ -243,11 +243,11 @@ class EntityUser {
|
|
|
243
243
|
hasContactInfo = computed(() => (this.showPhoneNumber() && !!this.phoneNumber()) ||
|
|
244
244
|
(this.showEmail() && !!this.email()), ...(ngDevMode ? [{ debugName: "hasContactInfo" }] : /* istanbul ignore next */ []));
|
|
245
245
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EntityUser, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
246
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: EntityUser, isStandalone: true, selector: "mt-entity-user", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<mt-entity-field\
|
|
246
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: EntityUser, isStandalone: true, selector: "mt-entity-user", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<mt-entity-field\n [label]=\"displayName()\"\n [configuration]=\"data()?.configuration\"\n gap=\"normal\"\n>\n <div class=\"flex items-center gap-2\">\n <mt-avatar\n [image]=\"\n userPhoto()\n ? (userPhoto() | secureImage: true : httpContext : 'avatar/')\n : ''\n \"\n [icon]=\"'user.user-01'\"\n styleClass=\"w-10! h-10! text-white! text-xxl! bg-primary-500!\"\n ></mt-avatar>\n\n @if (showDisplayName()) {\n <div class=\"flex flex-col min-w-0 flex-1\">\n <span class=\"text-sm text-gray-700 truncate\">{{ userName() }}</span>\n @if (labelText()) {\n <span class=\"text-xs text-gray-500 truncate\">{{ labelText() }}</span>\n }\n </div>\n }\n\n @if (hasContactInfo()) {\n <div class=\"flex items-center gap-1.5 ms-auto shrink-0\">\n @if (showPhoneNumber() && phoneNumber()) {\n <a\n [href]=\"'tel:' + phoneNumber()\"\n [attr.aria-label]=\"phoneNumber()\"\n [mtTooltip]=\"phoneNumber()\"\n tooltipPosition=\"top\"\n class=\"inline-flex\"\n >\n <mt-avatar\n icon=\"communication.phone\"\n badgeSeverity=\"secondary\"\n styleClass=\"bg-surface-100! text-surface-600! h-7! w-7! text-sm! font-semibold!\"\n />\n </a>\n }\n @if (showEmail() && email()) {\n <a\n [href]=\"'mailto:' + email()\"\n [attr.aria-label]=\"email()\"\n [mtTooltip]=\"email()\"\n tooltipPosition=\"top\"\n class=\"inline-flex\"\n >\n <mt-avatar\n styleClass=\"bg-surface-100! text-surface-600! h-7! w-7! text-sm! font-semibold!\"\n icon=\"communication.mail-01\"\n badgeSeverity=\"secondary\"\n />\n </a>\n }\n </div>\n }\n </div>\n</mt-entity-field>\n", dependencies: [{ kind: "component", type: Avatar, selector: "mt-avatar", inputs: ["label", "icon", "image", "styleClass", "size", "shape", "badge", "badgeSize", "badgeSeverity"], outputs: ["onImageError"] }, { kind: "directive", type: Tooltip, selector: "[mtTooltip]" }, { kind: "component", type: EntityField, selector: "mt-entity-field", inputs: ["label", "labelIconName", "configuration", "gap"] }, { kind: "pipe", type: SecureImagePipe, name: "secureImage" }] });
|
|
247
247
|
}
|
|
248
248
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EntityUser, decorators: [{
|
|
249
249
|
type: Component,
|
|
250
|
-
args: [{ selector: 'mt-entity-user', standalone: true, imports: [Avatar, Tooltip, SecureImagePipe, EntityField], template: "<mt-entity-field\
|
|
250
|
+
args: [{ selector: 'mt-entity-user', standalone: true, imports: [Avatar, Tooltip, SecureImagePipe, EntityField], template: "<mt-entity-field\n [label]=\"displayName()\"\n [configuration]=\"data()?.configuration\"\n gap=\"normal\"\n>\n <div class=\"flex items-center gap-2\">\n <mt-avatar\n [image]=\"\n userPhoto()\n ? (userPhoto() | secureImage: true : httpContext : 'avatar/')\n : ''\n \"\n [icon]=\"'user.user-01'\"\n styleClass=\"w-10! h-10! text-white! text-xxl! bg-primary-500!\"\n ></mt-avatar>\n\n @if (showDisplayName()) {\n <div class=\"flex flex-col min-w-0 flex-1\">\n <span class=\"text-sm text-gray-700 truncate\">{{ userName() }}</span>\n @if (labelText()) {\n <span class=\"text-xs text-gray-500 truncate\">{{ labelText() }}</span>\n }\n </div>\n }\n\n @if (hasContactInfo()) {\n <div class=\"flex items-center gap-1.5 ms-auto shrink-0\">\n @if (showPhoneNumber() && phoneNumber()) {\n <a\n [href]=\"'tel:' + phoneNumber()\"\n [attr.aria-label]=\"phoneNumber()\"\n [mtTooltip]=\"phoneNumber()\"\n tooltipPosition=\"top\"\n class=\"inline-flex\"\n >\n <mt-avatar\n icon=\"communication.phone\"\n badgeSeverity=\"secondary\"\n styleClass=\"bg-surface-100! text-surface-600! h-7! w-7! text-sm! font-semibold!\"\n />\n </a>\n }\n @if (showEmail() && email()) {\n <a\n [href]=\"'mailto:' + email()\"\n [attr.aria-label]=\"email()\"\n [mtTooltip]=\"email()\"\n tooltipPosition=\"top\"\n class=\"inline-flex\"\n >\n <mt-avatar\n styleClass=\"bg-surface-100! text-surface-600! h-7! w-7! text-sm! font-semibold!\"\n icon=\"communication.mail-01\"\n badgeSeverity=\"secondary\"\n />\n </a>\n }\n </div>\n }\n </div>\n</mt-entity-field>\n" }]
|
|
251
251
|
}], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }] } });
|
|
252
252
|
|
|
253
253
|
class EntityPercentage {
|
|
@@ -721,11 +721,11 @@ class EntityAttachment {
|
|
|
721
721
|
return undefined;
|
|
722
722
|
}
|
|
723
723
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EntityAttachment, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
724
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: EntityAttachment, isStandalone: true, selector: "mt-entity-attachment", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, shape: { classPropertyName: "shape", publicName: "shape", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, endPoint: { classPropertyName: "endPoint", publicName: "endPoint", isSignal: true, isRequired: false, transformFunction: null }, context: { classPropertyName: "context", publicName: "context", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<mt-entity-field\
|
|
724
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: EntityAttachment, isStandalone: true, selector: "mt-entity-attachment", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, shape: { classPropertyName: "shape", publicName: "shape", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, endPoint: { classPropertyName: "endPoint", publicName: "endPoint", isSignal: true, isRequired: false, transformFunction: null }, context: { classPropertyName: "context", publicName: "context", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<mt-entity-field\n [label]=\"displayName()\"\n [configuration]=\"data()?.configuration\"\n gap=\"relaxed\"\n>\n @if (hasAttachments()) {\n @if (shape() === \"compact\") {\n <div class=\"flex flex-wrap items-center gap-2\">\n @for (\n attachment of attachments();\n track attachmentTrackBy($index, attachment)\n ) {\n <mt-button\n iconPos=\"top\"\n size=\"small\"\n severity=\"secondary\"\n variant=\"outlined\"\n [icon]=\"attachmentActionIcon($index, attachment)\"\n [tooltip]=\"attachmentTooltip(attachment)\"\n styleClass=\"h-9! w-9! rounded-lg! transition-all duration-200 hover:scale-105 hover:border-primary-500! hover:text-primary-600! hover:bg-primary-50!\"\n (onClick)=\"onCompactAttachmentClick($event, attachment)\"\n (mouseenter)=\"\n hoveredAttachmentKey.set(attachmentTrackBy($index, attachment))\n \"\n (mouseleave)=\"hoveredAttachmentKey.set(null)\"\n (onFocus)=\"\n hoveredAttachmentKey.set(attachmentTrackBy($index, attachment))\n \"\n (onBlur)=\"hoveredAttachmentKey.set(null)\"\n />\n }\n </div>\n } @else {\n <mt-upload-field\n class=\"w-full\"\n [ngModel]=\"uploadValue()\"\n [ngModelOptions]=\"{ standalone: true }\"\n [shape]=\"'card'\"\n [multiple]=\"isMultiple()\"\n [readonly]=\"true\"\n [endPoint]=\"endPoint()\"\n [accept]=\"acceptTypes()\"\n [context]=\"context()\"\n />\n }\n } @else {\n <span class=\"text-sm font-semibold\">{{ empty }}</span>\n }\n</mt-entity-field>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { 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: UploadField, selector: "mt-upload-field", inputs: ["label", "title", "description", "endPoint", "size", "userImgClass", "shape", "multiple", "accept", "isDragging", "fileSizeLimit", "readonly", "context"], outputs: ["isDraggingChange", "onChange"] }, { kind: "component", type: Button, selector: "mt-button", inputs: ["icon", "label", "tooltip", "class", "type", "styleClass", "severity", "badge", "variant", "badgeSeverity", "size", "iconPos", "autofocus", "fluid", "raised", "rounded", "text", "plain", "outlined", "link", "disabled", "loading", "pInputs"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: EntityField, selector: "mt-entity-field", inputs: ["label", "labelIconName", "configuration", "gap"] }] });
|
|
725
725
|
}
|
|
726
726
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EntityAttachment, decorators: [{
|
|
727
727
|
type: Component,
|
|
728
|
-
args: [{ selector: 'mt-entity-attachment', standalone: true, imports: [FormsModule, UploadField, Button, EntityField], template: "<mt-entity-field\
|
|
728
|
+
args: [{ selector: 'mt-entity-attachment', standalone: true, imports: [FormsModule, UploadField, Button, EntityField], template: "<mt-entity-field\n [label]=\"displayName()\"\n [configuration]=\"data()?.configuration\"\n gap=\"relaxed\"\n>\n @if (hasAttachments()) {\n @if (shape() === \"compact\") {\n <div class=\"flex flex-wrap items-center gap-2\">\n @for (\n attachment of attachments();\n track attachmentTrackBy($index, attachment)\n ) {\n <mt-button\n iconPos=\"top\"\n size=\"small\"\n severity=\"secondary\"\n variant=\"outlined\"\n [icon]=\"attachmentActionIcon($index, attachment)\"\n [tooltip]=\"attachmentTooltip(attachment)\"\n styleClass=\"h-9! w-9! rounded-lg! transition-all duration-200 hover:scale-105 hover:border-primary-500! hover:text-primary-600! hover:bg-primary-50!\"\n (onClick)=\"onCompactAttachmentClick($event, attachment)\"\n (mouseenter)=\"\n hoveredAttachmentKey.set(attachmentTrackBy($index, attachment))\n \"\n (mouseleave)=\"hoveredAttachmentKey.set(null)\"\n (onFocus)=\"\n hoveredAttachmentKey.set(attachmentTrackBy($index, attachment))\n \"\n (onBlur)=\"hoveredAttachmentKey.set(null)\"\n />\n }\n </div>\n } @else {\n <mt-upload-field\n class=\"w-full\"\n [ngModel]=\"uploadValue()\"\n [ngModelOptions]=\"{ standalone: true }\"\n [shape]=\"'card'\"\n [multiple]=\"isMultiple()\"\n [readonly]=\"true\"\n [endPoint]=\"endPoint()\"\n [accept]=\"acceptTypes()\"\n [context]=\"context()\"\n />\n }\n } @else {\n <span class=\"text-sm font-semibold\">{{ empty }}</span>\n }\n</mt-entity-field>\n" }]
|
|
729
729
|
}], ctorParameters: () => [], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], shape: [{ type: i0.Input, args: [{ isSignal: true, alias: "shape", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], endPoint: [{ type: i0.Input, args: [{ isSignal: true, alias: "endPoint", required: false }] }], context: [{ type: i0.Input, args: [{ isSignal: true, alias: "context", required: false }] }] } });
|
|
730
730
|
|
|
731
731
|
class EntityLocation {
|
|
@@ -752,11 +752,11 @@ class EntityLocation {
|
|
|
752
752
|
return `https://www.google.com/maps/?q=${encodeURIComponent(`${lat},${lon}`)}`;
|
|
753
753
|
}, ...(ngDevMode ? [{ debugName: "mapsUrl" }] : /* istanbul ignore next */ []));
|
|
754
754
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EntityLocation, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
755
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: EntityLocation, isStandalone: true, selector: "mt-entity-location", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<mt-entity-field\
|
|
755
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: EntityLocation, isStandalone: true, selector: "mt-entity-location", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<mt-entity-field\n [label]=\"displayName()\"\n [labelIconName]=\"'map.marker-pin-01'\"\n [configuration]=\"data()?.configuration\"\n gap=\"normal\"\n>\n @if (mapsUrl()) {\n <a\n [href]=\"mapsUrl()\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n class=\"flex min-w-0 max-w-full items-center gap-1.5 text-sm font-semibold text-primary-600 hover:text-primary-700\"\n mtTruncateTooltip\n tooltipPosition=\"top\"\n >\n <mt-icon icon=\"map.marker-pin-01\" size=\"sm\" class=\"shrink-0\" />\n <span class=\"min-w-0 truncate\">{{ displayValue() }}</span>\n </a>\n } @else {\n <div\n class=\"min-w-0 max-w-full truncate text-sm font-semibold\"\n mtTruncateTooltip\n tooltipPosition=\"top\"\n >\n {{ displayValue() }}\n </div>\n }\n\n @if (coordinates()) {\n <div class=\"min-w-0 truncate text-xs text-gray-500\">\n {{ coordinates() }}\n </div>\n }\n</mt-entity-field>\n", dependencies: [{ kind: "component", type: EntityField, selector: "mt-entity-field", inputs: ["label", "labelIconName", "configuration", "gap"] }, { kind: "component", type: Icon, selector: "mt-icon", inputs: ["icon"] }, { kind: "directive", type: TruncateTooltip, selector: "[mtTruncateTooltip]" }] });
|
|
756
756
|
}
|
|
757
757
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EntityLocation, decorators: [{
|
|
758
758
|
type: Component,
|
|
759
|
-
args: [{ selector: 'mt-entity-location', imports: [EntityField, Icon, TruncateTooltip], template: "<mt-entity-field\
|
|
759
|
+
args: [{ selector: 'mt-entity-location', imports: [EntityField, Icon, TruncateTooltip], template: "<mt-entity-field\n [label]=\"displayName()\"\n [labelIconName]=\"'map.marker-pin-01'\"\n [configuration]=\"data()?.configuration\"\n gap=\"normal\"\n>\n @if (mapsUrl()) {\n <a\n [href]=\"mapsUrl()\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n class=\"flex min-w-0 max-w-full items-center gap-1.5 text-sm font-semibold text-primary-600 hover:text-primary-700\"\n mtTruncateTooltip\n tooltipPosition=\"top\"\n >\n <mt-icon icon=\"map.marker-pin-01\" size=\"sm\" class=\"shrink-0\" />\n <span class=\"min-w-0 truncate\">{{ displayValue() }}</span>\n </a>\n } @else {\n <div\n class=\"min-w-0 max-w-full truncate text-sm font-semibold\"\n mtTruncateTooltip\n tooltipPosition=\"top\"\n >\n {{ displayValue() }}\n </div>\n }\n\n @if (coordinates()) {\n <div class=\"min-w-0 truncate text-xs text-gray-500\">\n {{ coordinates() }}\n </div>\n }\n</mt-entity-field>\n" }]
|
|
760
760
|
}], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }] } });
|
|
761
761
|
function normalizeEntityLocation(value) {
|
|
762
762
|
if (value === null || value === undefined || value === '') {
|
|
@@ -1027,7 +1027,7 @@ class EntityPreviewBody {
|
|
|
1027
1027
|
return viewType === 'LookupMatrix' ? 'Lookup' : viewType;
|
|
1028
1028
|
}, ...(ngDevMode ? [{ debugName: "previewType" }] : /* istanbul ignore next */ []));
|
|
1029
1029
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EntityPreviewBody, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1030
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: EntityPreviewBody, isStandalone: true, selector: "mt-entity-preview-body", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, attachmentShape: { classPropertyName: "attachmentShape", publicName: "attachmentShape", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "w-full" }, ngImport: i0, template: "@switch (previewType()) {\
|
|
1030
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: EntityPreviewBody, isStandalone: true, selector: "mt-entity-preview-body", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, attachmentShape: { classPropertyName: "attachmentShape", publicName: "attachmentShape", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "w-full" }, ngImport: i0, template: "@switch (previewType()) {\n @case (\"Text\") {\n <mt-entity-text [data]=\"data()\" />\n }\n @case (\"LongText\") {\n <mt-entity-long-text [data]=\"data()\" />\n }\n @case (\"Date\") {\n <mt-entity-date [data]=\"data()\" />\n }\n @case (\"DateTime\") {\n <mt-entity-date [data]=\"data()\" [viewType]=\"'DateTime'\" />\n }\n @case (\"User\") {\n <mt-entity-user [data]=\"data()\" />\n }\n @case (\"Percentage\") {\n <mt-entity-percentage [data]=\"data()\" />\n }\n @case (\"Currency\") {\n <mt-entity-currency [data]=\"data()\" />\n }\n @case (\"Number\") {\n <mt-entity-text [data]=\"data()\" />\n }\n @case (\"Checkbox\") {\n <mt-entity-checkbox [data]=\"data()\" />\n }\n @case (\"Lookup\") {\n <mt-entity-lookup [data]=\"data()\" />\n }\n @case (\"Status\") {\n <mt-entity-status [data]=\"data()\" />\n }\n @case (\"Attachment\") {\n <mt-entity-attachment [data]=\"data()\" [shape]=\"attachmentShape()\" />\n }\n @case (\"Location\") {\n <mt-entity-location [data]=\"data()\" />\n }\n @case (\"LeafDetails\") {\n <mt-entity-leaf-details [data]=\"data()\" />\n }\n @default {\n <mt-entity-text [data]=\"data()\" />\n }\n}\n", dependencies: [{ kind: "component", type: EntityText, selector: "mt-entity-text", inputs: ["data", "name", "value"] }, { kind: "component", type: EntityLongText, selector: "mt-entity-long-text", inputs: ["data", "name", "value"] }, { kind: "component", type: EntityDate, selector: "mt-entity-date", inputs: ["data", "name", "value", "viewType"] }, { kind: "component", type: EntityUser, selector: "mt-entity-user", inputs: ["data"] }, { kind: "component", type: EntityPercentage, selector: "mt-entity-percentage", inputs: ["data", "name", "value", "rawValue"] }, { kind: "component", type: EntityCurrency, selector: "mt-entity-currency", inputs: ["data", "name", "value"] }, { kind: "component", type: EntityCheckbox, selector: "mt-entity-checkbox", inputs: ["data", "name", "value", "rawValue"] }, { kind: "component", type: EntityLookup, selector: "mt-entity-lookup", inputs: ["data", "name", "value"] }, { kind: "component", type: EntityAttachment, selector: "mt-entity-attachment", inputs: ["data", "name", "shape", "value", "endPoint", "context"] }, { kind: "component", type: EntityStatus, selector: "mt-entity-status", inputs: ["data", "name", "value"] }, { kind: "component", type: EntityLeafDetails, selector: "mt-entity-leaf-details", inputs: ["data"] }, { kind: "component", type: EntityLocation, selector: "mt-entity-location", inputs: ["data"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1031
1031
|
}
|
|
1032
1032
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EntityPreviewBody, decorators: [{
|
|
1033
1033
|
type: Component,
|
|
@@ -1046,7 +1046,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
|
|
|
1046
1046
|
EntityLocation,
|
|
1047
1047
|
], host: {
|
|
1048
1048
|
class: 'w-full',
|
|
1049
|
-
}, template: "@switch (previewType()) {\
|
|
1049
|
+
}, template: "@switch (previewType()) {\n @case (\"Text\") {\n <mt-entity-text [data]=\"data()\" />\n }\n @case (\"LongText\") {\n <mt-entity-long-text [data]=\"data()\" />\n }\n @case (\"Date\") {\n <mt-entity-date [data]=\"data()\" />\n }\n @case (\"DateTime\") {\n <mt-entity-date [data]=\"data()\" [viewType]=\"'DateTime'\" />\n }\n @case (\"User\") {\n <mt-entity-user [data]=\"data()\" />\n }\n @case (\"Percentage\") {\n <mt-entity-percentage [data]=\"data()\" />\n }\n @case (\"Currency\") {\n <mt-entity-currency [data]=\"data()\" />\n }\n @case (\"Number\") {\n <mt-entity-text [data]=\"data()\" />\n }\n @case (\"Checkbox\") {\n <mt-entity-checkbox [data]=\"data()\" />\n }\n @case (\"Lookup\") {\n <mt-entity-lookup [data]=\"data()\" />\n }\n @case (\"Status\") {\n <mt-entity-status [data]=\"data()\" />\n }\n @case (\"Attachment\") {\n <mt-entity-attachment [data]=\"data()\" [shape]=\"attachmentShape()\" />\n }\n @case (\"Location\") {\n <mt-entity-location [data]=\"data()\" />\n }\n @case (\"LeafDetails\") {\n <mt-entity-leaf-details [data]=\"data()\" />\n }\n @default {\n <mt-entity-text [data]=\"data()\" />\n }\n}\n" }]
|
|
1050
1050
|
}], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: true }] }], attachmentShape: [{ type: i0.Input, args: [{ isSignal: true, alias: "attachmentShape", required: false }] }] } });
|
|
1051
1051
|
|
|
1052
1052
|
class ComparisonValue {
|
|
@@ -1071,13 +1071,13 @@ class ComparisonValue {
|
|
|
1071
1071
|
};
|
|
1072
1072
|
}
|
|
1073
1073
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: ComparisonValue, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1074
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: ComparisonValue, isStandalone: true, selector: "mt-comparison-value", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null } }, host: { classAttribute: "block w-full" }, ngImport: i0, template: "@if (comparison(); as cmp) {\
|
|
1074
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: ComparisonValue, isStandalone: true, selector: "mt-comparison-value", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null } }, host: { classAttribute: "block w-full" }, ngImport: i0, template: "@if (comparison(); as cmp) {\n <div class=\"flex w-full min-w-0 items-stretch gap-3\">\n <div\n class=\"flex min-w-0 flex-1 flex-col gap-1 rounded-md border border-surface-200 bg-surface-50 px-3 py-2\"\n >\n <span class=\"text-xs font-medium uppercase tracking-wide text-muted-color\"\n >Before</span\n >\n @if (oldEntity(); as old) {\n <mt-entity-preview-body [data]=\"old\" />\n } @else {\n <span class=\"text-sm text-muted-color\">_</span>\n }\n </div>\n <div class=\"flex shrink-0 items-center text-muted-color\" aria-hidden=\"true\">\n →\n </div>\n <div\n class=\"flex min-w-0 flex-1 flex-col gap-1 rounded-md border border-primary-200 bg-primary-50 px-3 py-2\"\n >\n <span class=\"text-xs font-medium uppercase tracking-wide text-primary-600\"\n >After</span\n >\n @if (newEntity(); as next) {\n <mt-entity-preview-body [data]=\"next\" />\n } @else {\n <span class=\"text-sm text-muted-color\">_</span>\n }\n </div>\n </div>\n}\n", dependencies: [{ kind: "component", type: EntityPreviewBody, selector: "mt-entity-preview-body", inputs: ["data", "attachmentShape"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1075
1075
|
}
|
|
1076
1076
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: ComparisonValue, decorators: [{
|
|
1077
1077
|
type: Component,
|
|
1078
1078
|
args: [{ selector: 'mt-comparison-value', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [EntityPreviewBody], host: {
|
|
1079
1079
|
class: 'block w-full',
|
|
1080
|
-
}, template: "@if (comparison(); as cmp) {\
|
|
1080
|
+
}, template: "@if (comparison(); as cmp) {\n <div class=\"flex w-full min-w-0 items-stretch gap-3\">\n <div\n class=\"flex min-w-0 flex-1 flex-col gap-1 rounded-md border border-surface-200 bg-surface-50 px-3 py-2\"\n >\n <span class=\"text-xs font-medium uppercase tracking-wide text-muted-color\"\n >Before</span\n >\n @if (oldEntity(); as old) {\n <mt-entity-preview-body [data]=\"old\" />\n } @else {\n <span class=\"text-sm text-muted-color\">_</span>\n }\n </div>\n <div class=\"flex shrink-0 items-center text-muted-color\" aria-hidden=\"true\">\n →\n </div>\n <div\n class=\"flex min-w-0 flex-1 flex-col gap-1 rounded-md border border-primary-200 bg-primary-50 px-3 py-2\"\n >\n <span class=\"text-xs font-medium uppercase tracking-wide text-primary-600\"\n >After</span\n >\n @if (newEntity(); as next) {\n <mt-entity-preview-body [data]=\"next\" />\n } @else {\n <span class=\"text-sm text-muted-color\">_</span>\n }\n </div>\n </div>\n}\n" }]
|
|
1081
1081
|
}], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: true }] }] } });
|
|
1082
1082
|
|
|
1083
1083
|
const OPERATION_BADGE_KEYS = {
|
|
@@ -1123,13 +1123,13 @@ class ComparisonEntityList {
|
|
|
1123
1123
|
return row.oldValues.find((v) => v.propertyKey === propertyKey);
|
|
1124
1124
|
}
|
|
1125
1125
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: ComparisonEntityList, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1126
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: ComparisonEntityList, isStandalone: true, selector: "mt-comparison-entity-list", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null } }, host: { classAttribute: "block w-full" }, ngImport: i0, template: "@if (comparison(); as cmp) {\
|
|
1126
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: ComparisonEntityList, isStandalone: true, selector: "mt-comparison-entity-list", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null } }, host: { classAttribute: "block w-full" }, ngImport: i0, template: "@if (comparison(); as cmp) {\n <div class=\"flex w-full min-w-0 flex-col gap-2\">\n @if (label()) {\n <div class=\"flex items-baseline justify-between\">\n <span class=\"text-sm font-medium text-color\">{{ label() }}</span>\n @if (targetModuleKey()) {\n <span class=\"text-xs text-muted-color\">{{ targetModuleKey() }}</span>\n }\n </div>\n }\n @if (rows().length === 0) {\n <div class=\"text-sm text-muted-color\">_</div>\n } @else {\n <ul class=\"flex flex-col gap-2\">\n @for (row of rows(); track rowId($index, row)) {\n <li\n class=\"flex flex-col gap-2 rounded-md border border-surface-200 bg-surface-50 px-3 py-2\"\n >\n <div class=\"flex items-center justify-between gap-2\">\n <span\n class=\"inline-flex items-center rounded px-2 py-0.5 text-xs font-medium\"\n [class]=\"badgeFor(row.operation).classes\"\n >\n {{ badgeFor(row.operation).label }}\n </span>\n <span class=\"text-xs text-muted-color\">#{{ row.entityId }}</span>\n </div>\n\n @switch (row.operation) {\n @case (\"CreateRecord\") {\n <dl class=\"grid grid-cols-1 gap-1 sm:grid-cols-2\">\n @for (f of row.newValues; track f.propertyKey) {\n <div class=\"flex min-w-0 flex-col\">\n <dt class=\"text-xs text-muted-color\">{{ f.label }}</dt>\n <dd class=\"truncate text-sm text-color\">\n {{ displayField(f.value, f.display) }}\n </dd>\n </div>\n }\n </dl>\n }\n @case (\"DeleteRecord\") {\n <dl class=\"grid grid-cols-1 gap-1 sm:grid-cols-2\">\n @for (f of row.oldValues; track f.propertyKey) {\n <div class=\"flex min-w-0 flex-col\">\n <dt class=\"text-xs text-muted-color\">{{ f.label }}</dt>\n <dd class=\"truncate text-sm text-color line-through\">\n {{ displayField(f.value, f.display) }}\n </dd>\n </div>\n }\n </dl>\n }\n @default {\n <dl class=\"flex flex-col gap-1\">\n @for (f of row.newValues; track f.propertyKey) {\n <div class=\"flex min-w-0 flex-col\">\n <dt class=\"text-xs text-muted-color\">{{ f.label }}</dt>\n <dd class=\"flex min-w-0 flex-wrap items-center gap-2\">\n <span\n class=\"max-w-[40%] truncate text-sm text-muted-color line-through\"\n >\n {{\n displayField(\n $any(oldField(row, f.propertyKey))?.value,\n $any(oldField(row, f.propertyKey))?.display\n )\n }}\n </span>\n <span class=\"text-muted-color\" aria-hidden=\"true\"\n >→</span\n >\n <span class=\"max-w-[40%] truncate text-sm text-color\">\n {{ displayField(f.value, f.display) }}\n </span>\n </dd>\n </div>\n }\n </dl>\n }\n }\n </li>\n }\n </ul>\n }\n </div>\n}\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1127
1127
|
}
|
|
1128
1128
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: ComparisonEntityList, decorators: [{
|
|
1129
1129
|
type: Component,
|
|
1130
1130
|
args: [{ selector: 'mt-comparison-entity-list', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [], host: {
|
|
1131
1131
|
class: 'block w-full',
|
|
1132
|
-
}, template: "@if (comparison(); as cmp) {\
|
|
1132
|
+
}, template: "@if (comparison(); as cmp) {\n <div class=\"flex w-full min-w-0 flex-col gap-2\">\n @if (label()) {\n <div class=\"flex items-baseline justify-between\">\n <span class=\"text-sm font-medium text-color\">{{ label() }}</span>\n @if (targetModuleKey()) {\n <span class=\"text-xs text-muted-color\">{{ targetModuleKey() }}</span>\n }\n </div>\n }\n @if (rows().length === 0) {\n <div class=\"text-sm text-muted-color\">_</div>\n } @else {\n <ul class=\"flex flex-col gap-2\">\n @for (row of rows(); track rowId($index, row)) {\n <li\n class=\"flex flex-col gap-2 rounded-md border border-surface-200 bg-surface-50 px-3 py-2\"\n >\n <div class=\"flex items-center justify-between gap-2\">\n <span\n class=\"inline-flex items-center rounded px-2 py-0.5 text-xs font-medium\"\n [class]=\"badgeFor(row.operation).classes\"\n >\n {{ badgeFor(row.operation).label }}\n </span>\n <span class=\"text-xs text-muted-color\">#{{ row.entityId }}</span>\n </div>\n\n @switch (row.operation) {\n @case (\"CreateRecord\") {\n <dl class=\"grid grid-cols-1 gap-1 sm:grid-cols-2\">\n @for (f of row.newValues; track f.propertyKey) {\n <div class=\"flex min-w-0 flex-col\">\n <dt class=\"text-xs text-muted-color\">{{ f.label }}</dt>\n <dd class=\"truncate text-sm text-color\">\n {{ displayField(f.value, f.display) }}\n </dd>\n </div>\n }\n </dl>\n }\n @case (\"DeleteRecord\") {\n <dl class=\"grid grid-cols-1 gap-1 sm:grid-cols-2\">\n @for (f of row.oldValues; track f.propertyKey) {\n <div class=\"flex min-w-0 flex-col\">\n <dt class=\"text-xs text-muted-color\">{{ f.label }}</dt>\n <dd class=\"truncate text-sm text-color line-through\">\n {{ displayField(f.value, f.display) }}\n </dd>\n </div>\n }\n </dl>\n }\n @default {\n <dl class=\"flex flex-col gap-1\">\n @for (f of row.newValues; track f.propertyKey) {\n <div class=\"flex min-w-0 flex-col\">\n <dt class=\"text-xs text-muted-color\">{{ f.label }}</dt>\n <dd class=\"flex min-w-0 flex-wrap items-center gap-2\">\n <span\n class=\"max-w-[40%] truncate text-sm text-muted-color line-through\"\n >\n {{\n displayField(\n $any(oldField(row, f.propertyKey))?.value,\n $any(oldField(row, f.propertyKey))?.display\n )\n }}\n </span>\n <span class=\"text-muted-color\" aria-hidden=\"true\"\n >→</span\n >\n <span class=\"max-w-[40%] truncate text-sm text-color\">\n {{ displayField(f.value, f.display) }}\n </span>\n </dd>\n </div>\n }\n </dl>\n }\n }\n </li>\n }\n </ul>\n }\n </div>\n}\n" }]
|
|
1133
1133
|
}], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: true }] }] } });
|
|
1134
1134
|
|
|
1135
1135
|
class EntityPreview {
|
|
@@ -1146,13 +1146,13 @@ class EntityPreview {
|
|
|
1146
1146
|
return null;
|
|
1147
1147
|
}, ...(ngDevMode ? [{ debugName: "comparisonKind" }] : /* istanbul ignore next */ []));
|
|
1148
1148
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EntityPreview, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1149
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: EntityPreview, isStandalone: true, selector: "mt-entity-preview", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, attachmentShape: { classPropertyName: "attachmentShape", publicName: "attachmentShape", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "w-full" }, ngImport: i0, template: "@switch (comparisonKind()) {\
|
|
1149
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: EntityPreview, isStandalone: true, selector: "mt-entity-preview", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, attachmentShape: { classPropertyName: "attachmentShape", publicName: "attachmentShape", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "w-full" }, ngImport: i0, template: "@switch (comparisonKind()) {\n @case (\"Value\") {\n <mt-comparison-value [data]=\"data()\" />\n }\n @case (\"EntityList\") {\n <mt-comparison-entity-list [data]=\"data()\" />\n }\n @default {\n <mt-entity-preview-body\n [data]=\"data()\"\n [attachmentShape]=\"attachmentShape()\"\n />\n }\n}\n", dependencies: [{ kind: "component", type: EntityPreviewBody, selector: "mt-entity-preview-body", inputs: ["data", "attachmentShape"] }, { kind: "component", type: ComparisonValue, selector: "mt-comparison-value", inputs: ["data"] }, { kind: "component", type: ComparisonEntityList, selector: "mt-comparison-entity-list", inputs: ["data"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1150
1150
|
}
|
|
1151
1151
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EntityPreview, decorators: [{
|
|
1152
1152
|
type: Component,
|
|
1153
1153
|
args: [{ selector: 'mt-entity-preview', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [EntityPreviewBody, ComparisonValue, ComparisonEntityList], host: {
|
|
1154
1154
|
class: 'w-full',
|
|
1155
|
-
}, template: "@switch (comparisonKind()) {\
|
|
1155
|
+
}, template: "@switch (comparisonKind()) {\n @case (\"Value\") {\n <mt-comparison-value [data]=\"data()\" />\n }\n @case (\"EntityList\") {\n <mt-comparison-entity-list [data]=\"data()\" />\n }\n @default {\n <mt-entity-preview-body\n [data]=\"data()\"\n [attachmentShape]=\"attachmentShape()\"\n />\n }\n}\n" }]
|
|
1156
1156
|
}], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: true }] }], attachmentShape: [{ type: i0.Input, args: [{ isSignal: true, alias: "attachmentShape", required: false }] }] } });
|
|
1157
1157
|
|
|
1158
1158
|
const EMPTY_KEY_SET = new Set();
|
|
@@ -1215,11 +1215,11 @@ class EntitiesPreview {
|
|
|
1215
1215
|
this.entityClick.emit({ entity, key, source });
|
|
1216
1216
|
}
|
|
1217
1217
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EntitiesPreview, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1218
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: EntitiesPreview, isStandalone: true, selector: "mt-entities-preview", inputs: { entities: { classPropertyName: "entities", publicName: "entities", isSignal: true, isRequired: true, transformFunction: null }, attachmentShape: { classPropertyName: "attachmentShape", publicName: "attachmentShape", isSignal: true, isRequired: false, transformFunction: null }, clickableKeys: { classPropertyName: "clickableKeys", publicName: "clickableKeys", isSignal: true, isRequired: false, transformFunction: null }, activeKeys: { classPropertyName: "activeKeys", publicName: "activeKeys", isSignal: true, isRequired: false, transformFunction: null }, clickableTooltip: { classPropertyName: "clickableTooltip", publicName: "clickableTooltip", isSignal: true, isRequired: false, transformFunction: null }, activeTooltip: { classPropertyName: "activeTooltip", publicName: "activeTooltip", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { entityClick: "entityClick" }, ngImport: i0, template: "<div class=\"grid grid-cols-24 gap-x-3 gap-y-5\">\
|
|
1218
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: EntitiesPreview, isStandalone: true, selector: "mt-entities-preview", inputs: { entities: { classPropertyName: "entities", publicName: "entities", isSignal: true, isRequired: true, transformFunction: null }, attachmentShape: { classPropertyName: "attachmentShape", publicName: "attachmentShape", isSignal: true, isRequired: false, transformFunction: null }, clickableKeys: { classPropertyName: "clickableKeys", publicName: "clickableKeys", isSignal: true, isRequired: false, transformFunction: null }, activeKeys: { classPropertyName: "activeKeys", publicName: "activeKeys", isSignal: true, isRequired: false, transformFunction: null }, clickableTooltip: { classPropertyName: "clickableTooltip", publicName: "clickableTooltip", isSignal: true, isRequired: false, transformFunction: null }, activeTooltip: { classPropertyName: "activeTooltip", publicName: "activeTooltip", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { entityClick: "entityClick" }, ngImport: i0, template: "<div class=\"grid grid-cols-24 gap-x-3 gap-y-5\">\n @for (\n entity of displayEntities();\n track entity.key ?? entity.order ?? $index\n ) {\n <div\n class=\"min-w-0 flex items-center rounded transition-colors\"\n [class.border]=\"entity.configuration?.showBorder\"\n [class.p-3]=\"entity.configuration?.showBorder\"\n [class.border-dashed]=\"entity.configuration?.showBorder\"\n [class.border-gray-200]=\"entity.configuration?.showBorder\"\n [class.rounded-lg]=\"entity.configuration?.showBorder\"\n [class.mt-entity-filterable]=\"isClickable(entity) && !isActive(entity)\"\n [class.mt-entity-filter-active]=\"isClickable(entity) && isActive(entity)\"\n [attr.data-row-click-ignore]=\"isClickable(entity) ? 'true' : null\"\n [attr.title]=\"\n isClickable(entity)\n ? isActive(entity)\n ? activeTooltip()\n : clickableTooltip()\n : null\n \"\n [style.grid-column]=\"getColSpan(entity)\"\n (click)=\"onEntityClick($event, entity)\"\n >\n <mt-entity-preview\n [data]=\"entity\"\n [attachmentShape]=\"attachmentShape()\"\n />\n </div>\n }\n</div>\n", styles: [".mt-entity-filterable{cursor:url(\"data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2314b8a6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 3H2l8 9.46V19l4 2v-8.54L22 3z'/%3E%3C/svg%3E\") 7 3,zoom-in!important}.mt-entity-filter-active{cursor:url(\"data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='%2314b8a6' stroke='%2314b8a6' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 3H2l8 9.46V19l4 2v-8.54L22 3z'/%3E%3C/svg%3E\") 7 3,zoom-out!important}.mt-entity-filterable:hover{background-color:#ccfbf147;outline:1px dashed rgb(20 184 166 / .28);outline-offset:2px}.mt-entity-filter-active{background-color:#ccfbf14d;box-shadow:inset 0 0 0 1.5px #14b8a666,0 0 0 1px #ffffff80}\n"], dependencies: [{ kind: "component", type: EntityPreview, selector: "mt-entity-preview", inputs: ["data", "attachmentShape"] }] });
|
|
1219
1219
|
}
|
|
1220
1220
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: EntitiesPreview, decorators: [{
|
|
1221
1221
|
type: Component,
|
|
1222
|
-
args: [{ selector: 'mt-entities-preview', standalone: true, imports: [EntityPreview], template: "<div class=\"grid grid-cols-24 gap-x-3 gap-y-5\">\
|
|
1222
|
+
args: [{ selector: 'mt-entities-preview', standalone: true, imports: [EntityPreview], template: "<div class=\"grid grid-cols-24 gap-x-3 gap-y-5\">\n @for (\n entity of displayEntities();\n track entity.key ?? entity.order ?? $index\n ) {\n <div\n class=\"min-w-0 flex items-center rounded transition-colors\"\n [class.border]=\"entity.configuration?.showBorder\"\n [class.p-3]=\"entity.configuration?.showBorder\"\n [class.border-dashed]=\"entity.configuration?.showBorder\"\n [class.border-gray-200]=\"entity.configuration?.showBorder\"\n [class.rounded-lg]=\"entity.configuration?.showBorder\"\n [class.mt-entity-filterable]=\"isClickable(entity) && !isActive(entity)\"\n [class.mt-entity-filter-active]=\"isClickable(entity) && isActive(entity)\"\n [attr.data-row-click-ignore]=\"isClickable(entity) ? 'true' : null\"\n [attr.title]=\"\n isClickable(entity)\n ? isActive(entity)\n ? activeTooltip()\n : clickableTooltip()\n : null\n \"\n [style.grid-column]=\"getColSpan(entity)\"\n (click)=\"onEntityClick($event, entity)\"\n >\n <mt-entity-preview\n [data]=\"entity\"\n [attachmentShape]=\"attachmentShape()\"\n />\n </div>\n }\n</div>\n", styles: [".mt-entity-filterable{cursor:url(\"data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2314b8a6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 3H2l8 9.46V19l4 2v-8.54L22 3z'/%3E%3C/svg%3E\") 7 3,zoom-in!important}.mt-entity-filter-active{cursor:url(\"data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='%2314b8a6' stroke='%2314b8a6' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 3H2l8 9.46V19l4 2v-8.54L22 3z'/%3E%3C/svg%3E\") 7 3,zoom-out!important}.mt-entity-filterable:hover{background-color:#ccfbf147;outline:1px dashed rgb(20 184 166 / .28);outline-offset:2px}.mt-entity-filter-active{background-color:#ccfbf14d;box-shadow:inset 0 0 0 1.5px #14b8a666,0 0 0 1px #ffffff80}\n"] }]
|
|
1223
1223
|
}], propDecorators: { entities: [{ type: i0.Input, args: [{ isSignal: true, alias: "entities", required: true }] }], attachmentShape: [{ type: i0.Input, args: [{ isSignal: true, alias: "attachmentShape", required: false }] }], clickableKeys: [{ type: i0.Input, args: [{ isSignal: true, alias: "clickableKeys", required: false }] }], activeKeys: [{ type: i0.Input, args: [{ isSignal: true, alias: "activeKeys", required: false }] }], clickableTooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "clickableTooltip", required: false }] }], activeTooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "activeTooltip", required: false }] }], entityClick: [{ type: i0.Output, args: ["entityClick"] }] } });
|
|
1224
1224
|
|
|
1225
1225
|
/**
|