@masterteam/properties 0.0.17 → 0.0.19
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/i18n/ar.json +74 -0
- package/assets/i18n/en.json +74 -0
- package/assets/properties.css +1 -1
- package/fesm2022/masterteam-properties.mjs +141 -89
- package/fesm2022/masterteam-properties.mjs.map +1 -1
- package/index.d.ts +9 -2
- package/package.json +5 -1
|
@@ -12,10 +12,13 @@ import { Card } from '@masterteam/components/card';
|
|
|
12
12
|
import { Avatar } from '@masterteam/components/avatar';
|
|
13
13
|
import { Divider } from 'primeng/divider';
|
|
14
14
|
import { Button } from '@masterteam/components/button';
|
|
15
|
+
import * as i1 from '@jsverse/transloco';
|
|
16
|
+
import { TranslocoService, TranslocoModule } from '@jsverse/transloco';
|
|
15
17
|
import { toSignal } from '@angular/core/rxjs-interop';
|
|
18
|
+
import { Page } from '@masterteam/components/page';
|
|
16
19
|
import { DynamicForm } from '@masterteam/forms/dynamic-form';
|
|
17
20
|
import { PickListFieldConfig, ValidatorConfig } from '@masterteam/components';
|
|
18
|
-
import * as i1 from '@angular/forms';
|
|
21
|
+
import * as i1$1 from '@angular/forms';
|
|
19
22
|
import { FormGroup, FormControl, FormArray, Validators, ReactiveFormsModule, NG_VALUE_ACCESSOR, ControlContainer, FormGroupDirective } from '@angular/forms';
|
|
20
23
|
import * as i2 from 'primeng/skeleton';
|
|
21
24
|
import { SkeletonModule } from 'primeng/skeleton';
|
|
@@ -759,49 +762,74 @@ class PropertiesList {
|
|
|
759
762
|
facade = inject(PropertiesFacade);
|
|
760
763
|
router = inject(Router);
|
|
761
764
|
route = inject(ActivatedRoute);
|
|
765
|
+
transloco = inject(TranslocoService);
|
|
762
766
|
defaultTab = 'all';
|
|
763
767
|
tab = input(...(ngDevMode ? [undefined, { debugName: "tab" }] : []));
|
|
764
768
|
tabs = signal([
|
|
765
|
-
{
|
|
766
|
-
|
|
767
|
-
|
|
769
|
+
{
|
|
770
|
+
label: this.transloco.translate('properties.list.tabAll'),
|
|
771
|
+
value: 'all',
|
|
772
|
+
},
|
|
773
|
+
{
|
|
774
|
+
label: this.transloco.translate('properties.list.tabSystem'),
|
|
775
|
+
value: 'system',
|
|
776
|
+
},
|
|
777
|
+
{
|
|
778
|
+
label: this.transloco.translate('properties.list.tabCustom'),
|
|
779
|
+
value: 'custom',
|
|
780
|
+
},
|
|
768
781
|
], ...(ngDevMode ? [{ debugName: "tabs" }] : []));
|
|
769
782
|
activeTab = linkedSignal(() => {
|
|
770
783
|
return this.tab() || this.defaultTab;
|
|
771
784
|
});
|
|
772
785
|
tableColumns = signal([
|
|
773
|
-
{
|
|
774
|
-
|
|
775
|
-
|
|
786
|
+
{
|
|
787
|
+
key: 'title',
|
|
788
|
+
label: this.transloco.translate('properties.list.columnName'),
|
|
789
|
+
},
|
|
790
|
+
{
|
|
791
|
+
key: 'viewType',
|
|
792
|
+
label: this.transloco.translate('properties.list.columnType'),
|
|
793
|
+
},
|
|
794
|
+
{
|
|
795
|
+
key: 'required',
|
|
796
|
+
label: this.transloco.translate('properties.list.columnRequired'),
|
|
797
|
+
type: 'boolean',
|
|
798
|
+
},
|
|
776
799
|
], ...(ngDevMode ? [{ debugName: "tableColumns" }] : []));
|
|
777
800
|
propertyTypes = signal([
|
|
778
801
|
{
|
|
779
|
-
label: '
|
|
802
|
+
label: this.transloco.translate('properties.list.typeShortText'),
|
|
780
803
|
icon: 'editor.type-square',
|
|
781
804
|
value: 'Text',
|
|
782
805
|
color: 'pink',
|
|
783
806
|
},
|
|
784
807
|
{
|
|
785
|
-
label: '
|
|
808
|
+
label: this.transloco.translate('properties.list.typeParagraph'),
|
|
786
809
|
icon: 'editor.line-height',
|
|
787
810
|
value: 'LongText',
|
|
788
811
|
color: 'sky',
|
|
789
812
|
},
|
|
790
|
-
{ label: 'User', icon: 'user.user-01', value: 'User', color: 'yellow' },
|
|
791
813
|
{
|
|
792
|
-
label: '
|
|
814
|
+
label: this.transloco.translate('properties.list.typeUser'),
|
|
815
|
+
icon: 'user.user-01',
|
|
816
|
+
value: 'User',
|
|
817
|
+
color: 'yellow',
|
|
818
|
+
},
|
|
819
|
+
{
|
|
820
|
+
label: this.transloco.translate('properties.list.typeNumber'),
|
|
793
821
|
icon: 'editor.letter-spacing-01',
|
|
794
822
|
value: 'Number',
|
|
795
823
|
color: 'violet',
|
|
796
824
|
},
|
|
797
825
|
{
|
|
798
|
-
label: '
|
|
826
|
+
label: this.transloco.translate('properties.list.typeCurrency'),
|
|
799
827
|
icon: 'finance.currency-dollar',
|
|
800
828
|
value: 'Currency',
|
|
801
829
|
color: 'indigo',
|
|
802
830
|
},
|
|
803
831
|
{
|
|
804
|
-
label: '
|
|
832
|
+
label: this.transloco.translate('properties.list.typeLookup'),
|
|
805
833
|
icon: 'custom.list-cards',
|
|
806
834
|
value: 'Lookup',
|
|
807
835
|
color: 'lime',
|
|
@@ -814,7 +842,7 @@ class PropertiesList {
|
|
|
814
842
|
return [
|
|
815
843
|
{
|
|
816
844
|
icon: 'general.plus',
|
|
817
|
-
label: '
|
|
845
|
+
label: this.transloco.translate('properties.list.createAction'),
|
|
818
846
|
color: 'primary',
|
|
819
847
|
action: () => {
|
|
820
848
|
this.createProperty();
|
|
@@ -826,13 +854,13 @@ class PropertiesList {
|
|
|
826
854
|
rowActions = signal([
|
|
827
855
|
{
|
|
828
856
|
icon: 'custom.pencil',
|
|
829
|
-
tooltip: '
|
|
857
|
+
tooltip: this.transloco.translate('properties.list.editAction'),
|
|
830
858
|
color: 'primary',
|
|
831
859
|
action: (row) => this.editRow(row),
|
|
832
860
|
},
|
|
833
861
|
{
|
|
834
862
|
icon: 'general.trash-01',
|
|
835
|
-
tooltip: '
|
|
863
|
+
tooltip: this.transloco.translate('properties.list.deleteAction'),
|
|
836
864
|
color: 'danger',
|
|
837
865
|
variant: 'outlined',
|
|
838
866
|
action: (row) => this.deleteRow(row),
|
|
@@ -906,16 +934,26 @@ class PropertiesList {
|
|
|
906
934
|
});
|
|
907
935
|
}
|
|
908
936
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: PropertiesList, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
909
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: PropertiesList, isStandalone: true, selector: "mt-properties-list", inputs: { tab: { classPropertyName: "tab", publicName: "tab", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"space-y-3\">\n <div class=\"flex items-center justify-between\">\n <div class=\"space-y-1\">\n <h1 class=\"text-xl font-semibold text-slate-900 tracking-tight\">\n All Properties\n </h1>\n <mt-breadcrumb\n [items]=\"breadcrumbItems()\"\n [styleClass]=\"'flex justify-center'\"\n >\n </mt-breadcrumb>\n </div>\n </div>\n <mt-table\n [tabs]=\"tabs()\"\n [(activeTab)]=\"activeTab\"\n (onTabChange)=\"onTabChange($event)\"\n [data]=\"tableData()\"\n [actions]=\"tableActions()\"\n [columns]=\"tableColumns()\"\n [rowActions]=\"rowActions()\"\n [generalSearch]=\"true\"\n [loading]=\"loading()\"\n >\n <ng-template #empty>\n <div headless class=\"flex-col justify-center items-center w-full p-5\">\n <div class=\"content flex flex-col gap-5 items-center text-center mb-5\">\n <svg\n width=\"152\"\n height=\"120\"\n viewBox=\"0 0 152 120\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle cx=\"76\" cy=\"52\" r=\"52\" fill=\"#E9EAEB\" />\n <g filter=\"url(#filter0_ddd_2474_28277)\">\n <path\n d=\"M77.6 16C66.8273 16 57.2978 21.3233 51.4987 29.4829C49.605 29.0363 47.6301 28.8 45.6 28.8C31.4615 28.8 20 40.2615 20 54.4C20 68.5385 31.4615 80 45.6 80L109.6 80C121.971 80 132 69.9712 132 57.6C132 45.2288 121.971 35.2 109.6 35.2C108.721 35.2 107.854 35.2506 107.002 35.349C102.098 23.9677 90.7797 16 77.6 16Z\"\n fill=\"#FAFAFA\"\n />\n <ellipse\n cx=\"45.6\"\n cy=\"54.3998\"\n rx=\"25.6\"\n ry=\"25.6\"\n fill=\"url(#paint0_linear_2474_28277)\"\n />\n <circle\n cx=\"77.6016\"\n cy=\"48\"\n r=\"32\"\n fill=\"url(#paint1_linear_2474_28277)\"\n />\n <ellipse\n cx=\"109.599\"\n cy=\"57.6002\"\n rx=\"22.4\"\n ry=\"22.4\"\n fill=\"url(#paint2_linear_2474_28277)\"\n />\n </g>\n <circle cx=\"21\" cy=\"19\" r=\"5\" fill=\"#F5F5F5\" />\n <circle cx=\"18\" cy=\"109\" r=\"7\" fill=\"#F5F5F5\" />\n <circle cx=\"145\" cy=\"35\" r=\"7\" fill=\"#F5F5F5\" />\n <circle cx=\"134\" cy=\"8\" r=\"4\" fill=\"#F5F5F5\" />\n <foreignObject x=\"44\" y=\"54\" width=\"64\" height=\"64\">\n <div\n xmlns=\"http://www.w3.org/1999/xhtml\"\n style=\"\n backdrop-filter: blur(4px);\n clip-path: url(#bgblur_0_2474_28277_clip_path);\n height: 100%;\n width: 100%;\n \"\n ></div>\n </foreignObject>\n <g data-figma-bg-blur-radius=\"8\">\n <path\n d=\"M52 86C52 72.7452 62.7452 62 76 62C89.2548 62 100 72.7452 100 86C100 99.2548 89.2548 110 76 110C62.7452 110 52 99.2548 52 86Z\"\n fill=\"#344054\"\n fill-opacity=\"0.4\"\n />\n <path\n d=\"M85 95L81.5001 91.5M84 85.5C84 90.1944 80.1944 94 75.5 94C70.8056 94 67 90.1944 67 85.5C67 80.8056 70.8056 77 75.5 77C80.1944 77 84 80.8056 84 85.5Z\"\n stroke=\"white\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </g>\n <defs>\n <filter\n id=\"filter0_ddd_2474_28277\"\n x=\"0\"\n y=\"16\"\n width=\"152\"\n height=\"104\"\n filterUnits=\"userSpaceOnUse\"\n color-interpolation-filters=\"sRGB\"\n >\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feMorphology\n radius=\"1.5\"\n operator=\"erode\"\n in=\"SourceAlpha\"\n result=\"effect1_dropShadow_2474_28277\"\n />\n <feOffset dy=\"3\" />\n <feGaussianBlur stdDeviation=\"1.5\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix\n type=\"matrix\"\n values=\"0 0 0 0 0.0392157 0 0 0 0 0.0496732 0 0 0 0 0.0705882 0 0 0 0.04 0\"\n />\n <feBlend\n mode=\"normal\"\n in2=\"BackgroundImageFix\"\n result=\"effect1_dropShadow_2474_28277\"\n />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feMorphology\n radius=\"4\"\n operator=\"erode\"\n in=\"SourceAlpha\"\n result=\"effect2_dropShadow_2474_28277\"\n />\n <feOffset dy=\"8\" />\n <feGaussianBlur stdDeviation=\"4\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix\n type=\"matrix\"\n values=\"0 0 0 0 0.0392157 0 0 0 0 0.0496732 0 0 0 0 0.0705882 0 0 0 0.03 0\"\n />\n <feBlend\n mode=\"normal\"\n in2=\"effect1_dropShadow_2474_28277\"\n result=\"effect2_dropShadow_2474_28277\"\n />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feMorphology\n radius=\"4\"\n operator=\"erode\"\n in=\"SourceAlpha\"\n result=\"effect3_dropShadow_2474_28277\"\n />\n <feOffset dy=\"20\" />\n <feGaussianBlur stdDeviation=\"12\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix\n type=\"matrix\"\n values=\"0 0 0 0 0.0392157 0 0 0 0 0.0496732 0 0 0 0 0.0705882 0 0 0 0.08 0\"\n />\n <feBlend\n mode=\"normal\"\n in2=\"effect2_dropShadow_2474_28277\"\n result=\"effect3_dropShadow_2474_28277\"\n />\n <feBlend\n mode=\"normal\"\n in=\"SourceGraphic\"\n in2=\"effect3_dropShadow_2474_28277\"\n result=\"shape\"\n />\n </filter>\n <clipPath\n id=\"bgblur_0_2474_28277_clip_path\"\n transform=\"translate(-44 -54)\"\n >\n <path\n d=\"M52 86C52 72.7452 62.7452 62 76 62C89.2548 62 100 72.7452 100 86C100 99.2548 89.2548 110 76 110C62.7452 110 52 99.2548 52 86Z\"\n />\n </clipPath>\n <linearGradient\n id=\"paint0_linear_2474_28277\"\n x1=\"25.9429\"\n y1=\"37.4855\"\n x2=\"71.2\"\n y2=\"79.9998\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#D0D5DD\" />\n <stop offset=\"0.350715\" stop-color=\"white\" stop-opacity=\"0\" />\n </linearGradient>\n <linearGradient\n id=\"paint1_linear_2474_28277\"\n x1=\"53.0301\"\n y1=\"26.8571\"\n x2=\"109.602\"\n y2=\"80\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#D0D5DD\" />\n <stop offset=\"0.350715\" stop-color=\"white\" stop-opacity=\"0\" />\n </linearGradient>\n <linearGradient\n id=\"paint2_linear_2474_28277\"\n x1=\"92.3992\"\n y1=\"42.8002\"\n x2=\"131.999\"\n y2=\"80.0002\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#D0D5DD\" />\n <stop offset=\"0.350715\" stop-color=\"white\" stop-opacity=\"0\" />\n </linearGradient>\n </defs>\n </svg>\n\n <div class=\"flex flex-col gap-1\">\n <div class=\"text-md text-surface-600\">{{ \"No data to show\" }}</div>\n </div>\n <div>\n <mt-button\n label=\"Add New Property\"\n icon=\"general.plus\"\n (click)=\"createProperty()\"\n />\n </div>\n </div>\n <p-divider type=\"solid\">\n <div class=\"text-lg text-surface-600\">Create from Type Template</div>\n </p-divider>\n <div class=\"flex gap-3 mt-5 justify-center\">\n @for (card of propertyTypes(); track card.label) {\n <mt-card\n headless\n class=\"w-25 tailwind-4 cursor-pointer\"\n style=\"background-color: #fafafa\"\n (click)=\"createPropertyWithType(card.value)\"\n >\n <div class=\"content flex flex-col gap-3 items-center text-center\">\n <mt-avatar\n [style.--p-avatar-background]=\"\n 'var(--p-' + card.color + '-100)'\n \"\n [style.--p-avatar-color]=\"'var(--p-' + card.color + '-600)'\"\n [icon]=\"card.icon\"\n shape=\"square\"\n ></mt-avatar>\n <div class=\"flex flex-col gap-1\">\n <div class=\"text-xs font-normal\">{{ card.label }}</div>\n </div>\n </div>\n </mt-card>\n }\n </div>\n </div>\n </ng-template>\n </mt-table>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: Table, selector: "mt-table", inputs: ["data", "columns", "rowActions", "size", "showGridlines", "stripedRows", "selectableRows", "generalSearch", "showFilters", "loading", "updating", "tabs", "tabsOptionLabel", "tabsOptionValue", "activeTab", "actions", "paginatorPosition", "pageSize", "currentPage", "first", "filterTerm"], outputs: ["selectionChange", "cellChange", "activeTabChange", "onTabChange", "pageSizeChange", "currentPageChange", "firstChange", "filterTermChange"] }, { kind: "component", type: Breadcrumb, selector: "mt-breadcrumb", inputs: ["items", "styleClass"], outputs: ["onItemClick"] }, { kind: "component", type: Card, selector: "mt-card", inputs: ["class", "title", "paddingless"] }, { kind: "component", type: Avatar, selector: "mt-avatar", inputs: ["label", "icon", "image", "styleClass", "size", "shape", "badge", "badgeSize", "badgeSeverity"], outputs: ["onImageError"] }, { kind: "component", type: Divider, selector: "p-divider", inputs: ["styleClass", "layout", "type", "align"] }, { 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"] }] });
|
|
937
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: PropertiesList, isStandalone: true, selector: "mt-properties-list", inputs: { tab: { classPropertyName: "tab", publicName: "tab", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"space-y-3\">\n <div class=\"flex items-center justify-between\">\n <div class=\"space-y-1\">\n <h1 class=\"text-xl font-semibold text-slate-900 tracking-tight\">\n {{ \"properties.list.pageTitle\" | transloco }}\n </h1>\n <mt-breadcrumb\n [items]=\"breadcrumbItems()\"\n [styleClass]=\"'flex justify-center'\"\n >\n </mt-breadcrumb>\n </div>\n </div>\n <mt-card paddingless>\n <mt-table\n [tabs]=\"tabs()\"\n [(activeTab)]=\"activeTab\"\n (onTabChange)=\"onTabChange($event)\"\n [data]=\"tableData()\"\n [actions]=\"tableActions()\"\n [columns]=\"tableColumns()\"\n [rowActions]=\"rowActions()\"\n [generalSearch]=\"true\"\n [loading]=\"loading()\"\n >\n <ng-template #empty>\n <div headless class=\"flex-col justify-center items-center w-full p-5\">\n <div\n class=\"content flex flex-col gap-5 items-center text-center mb-5\"\n >\n <svg\n width=\"152\"\n height=\"120\"\n viewBox=\"0 0 152 120\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle cx=\"76\" cy=\"52\" r=\"52\" fill=\"#E9EAEB\" />\n <g filter=\"url(#filter0_ddd_2474_28277)\">\n <path\n d=\"M77.6 16C66.8273 16 57.2978 21.3233 51.4987 29.4829C49.605 29.0363 47.6301 28.8 45.6 28.8C31.4615 28.8 20 40.2615 20 54.4C20 68.5385 31.4615 80 45.6 80L109.6 80C121.971 80 132 69.9712 132 57.6C132 45.2288 121.971 35.2 109.6 35.2C108.721 35.2 107.854 35.2506 107.002 35.349C102.098 23.9677 90.7797 16 77.6 16Z\"\n fill=\"#FAFAFA\"\n />\n <ellipse\n cx=\"45.6\"\n cy=\"54.3998\"\n rx=\"25.6\"\n ry=\"25.6\"\n fill=\"url(#paint0_linear_2474_28277)\"\n />\n <circle\n cx=\"77.6016\"\n cy=\"48\"\n r=\"32\"\n fill=\"url(#paint1_linear_2474_28277)\"\n />\n <ellipse\n cx=\"109.599\"\n cy=\"57.6002\"\n rx=\"22.4\"\n ry=\"22.4\"\n fill=\"url(#paint2_linear_2474_28277)\"\n />\n </g>\n <circle cx=\"21\" cy=\"19\" r=\"5\" fill=\"#F5F5F5\" />\n <circle cx=\"18\" cy=\"109\" r=\"7\" fill=\"#F5F5F5\" />\n <circle cx=\"145\" cy=\"35\" r=\"7\" fill=\"#F5F5F5\" />\n <circle cx=\"134\" cy=\"8\" r=\"4\" fill=\"#F5F5F5\" />\n <foreignObject x=\"44\" y=\"54\" width=\"64\" height=\"64\">\n <div\n xmlns=\"http://www.w3.org/1999/xhtml\"\n style=\"\n backdrop-filter: blur(4px);\n clip-path: url(#bgblur_0_2474_28277_clip_path);\n height: 100%;\n width: 100%;\n \"\n ></div>\n </foreignObject>\n <g data-figma-bg-blur-radius=\"8\">\n <path\n d=\"M52 86C52 72.7452 62.7452 62 76 62C89.2548 62 100 72.7452 100 86C100 99.2548 89.2548 110 76 110C62.7452 110 52 99.2548 52 86Z\"\n fill=\"#344054\"\n fill-opacity=\"0.4\"\n />\n <path\n d=\"M85 95L81.5001 91.5M84 85.5C84 90.1944 80.1944 94 75.5 94C70.8056 94 67 90.1944 67 85.5C67 80.8056 70.8056 77 75.5 77C80.1944 77 84 80.8056 84 85.5Z\"\n stroke=\"white\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </g>\n <defs>\n <filter\n id=\"filter0_ddd_2474_28277\"\n x=\"0\"\n y=\"16\"\n width=\"152\"\n height=\"104\"\n filterUnits=\"userSpaceOnUse\"\n color-interpolation-filters=\"sRGB\"\n >\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feMorphology\n radius=\"1.5\"\n operator=\"erode\"\n in=\"SourceAlpha\"\n result=\"effect1_dropShadow_2474_28277\"\n />\n <feOffset dy=\"3\" />\n <feGaussianBlur stdDeviation=\"1.5\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix\n type=\"matrix\"\n values=\"0 0 0 0 0.0392157 0 0 0 0 0.0496732 0 0 0 0 0.0705882 0 0 0 0.04 0\"\n />\n <feBlend\n mode=\"normal\"\n in2=\"BackgroundImageFix\"\n result=\"effect1_dropShadow_2474_28277\"\n />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feMorphology\n radius=\"4\"\n operator=\"erode\"\n in=\"SourceAlpha\"\n result=\"effect2_dropShadow_2474_28277\"\n />\n <feOffset dy=\"8\" />\n <feGaussianBlur stdDeviation=\"4\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix\n type=\"matrix\"\n values=\"0 0 0 0 0.0392157 0 0 0 0 0.0496732 0 0 0 0 0.0705882 0 0 0 0.03 0\"\n />\n <feBlend\n mode=\"normal\"\n in2=\"effect1_dropShadow_2474_28277\"\n result=\"effect2_dropShadow_2474_28277\"\n />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feMorphology\n radius=\"4\"\n operator=\"erode\"\n in=\"SourceAlpha\"\n result=\"effect3_dropShadow_2474_28277\"\n />\n <feOffset dy=\"20\" />\n <feGaussianBlur stdDeviation=\"12\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix\n type=\"matrix\"\n values=\"0 0 0 0 0.0392157 0 0 0 0 0.0496732 0 0 0 0 0.0705882 0 0 0 0.08 0\"\n />\n <feBlend\n mode=\"normal\"\n in2=\"effect2_dropShadow_2474_28277\"\n result=\"effect3_dropShadow_2474_28277\"\n />\n <feBlend\n mode=\"normal\"\n in=\"SourceGraphic\"\n in2=\"effect3_dropShadow_2474_28277\"\n result=\"shape\"\n />\n </filter>\n <clipPath\n id=\"bgblur_0_2474_28277_clip_path\"\n transform=\"translate(-44 -54)\"\n >\n <path\n d=\"M52 86C52 72.7452 62.7452 62 76 62C89.2548 62 100 72.7452 100 86C100 99.2548 89.2548 110 76 110C62.7452 110 52 99.2548 52 86Z\"\n />\n </clipPath>\n <linearGradient\n id=\"paint0_linear_2474_28277\"\n x1=\"25.9429\"\n y1=\"37.4855\"\n x2=\"71.2\"\n y2=\"79.9998\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#D0D5DD\" />\n <stop offset=\"0.350715\" stop-color=\"white\" stop-opacity=\"0\" />\n </linearGradient>\n <linearGradient\n id=\"paint1_linear_2474_28277\"\n x1=\"53.0301\"\n y1=\"26.8571\"\n x2=\"109.602\"\n y2=\"80\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#D0D5DD\" />\n <stop offset=\"0.350715\" stop-color=\"white\" stop-opacity=\"0\" />\n </linearGradient>\n <linearGradient\n id=\"paint2_linear_2474_28277\"\n x1=\"92.3992\"\n y1=\"42.8002\"\n x2=\"131.999\"\n y2=\"80.0002\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#D0D5DD\" />\n <stop offset=\"0.350715\" stop-color=\"white\" stop-opacity=\"0\" />\n </linearGradient>\n </defs>\n </svg>\n\n <div class=\"flex flex-col gap-1\">\n <div class=\"text-md text-surface-600\">\n {{ \"properties.list.emptyStateNoData\" | transloco }}\n </div>\n </div>\n <div>\n <mt-button\n [label]=\"'properties.list.addNewProperty' | transloco\"\n icon=\"general.plus\"\n (click)=\"createProperty()\"\n />\n </div>\n </div>\n <p-divider type=\"solid\">\n <div class=\"text-lg text-surface-600\">\n {{ \"properties.list.emptyStateTemplate\" | transloco }}\n </div>\n </p-divider>\n <div class=\"flex gap-3 mt-5 justify-center\">\n @for (card of propertyTypes(); track card.label) {\n <mt-card\n headless\n class=\"w-25 tailwind-4 cursor-pointer\"\n style=\"background-color: #fafafa\"\n (click)=\"createPropertyWithType(card.value)\"\n >\n <div\n class=\"content flex flex-col gap-3 items-center text-center\"\n >\n <mt-avatar\n [style.--p-avatar-background]=\"\n 'var(--p-' + card.color + '-100)'\n \"\n [style.--p-avatar-color]=\"'var(--p-' + card.color + '-600)'\"\n [icon]=\"card.icon\"\n shape=\"square\"\n ></mt-avatar>\n <div class=\"flex flex-col gap-1\">\n <div class=\"text-xs font-normal\">{{ card.label }}</div>\n </div>\n </div>\n </mt-card>\n }\n </div>\n </div>\n </ng-template>\n </mt-table>\n </mt-card>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: Table, selector: "mt-table", inputs: ["data", "columns", "rowActions", "size", "showGridlines", "stripedRows", "selectableRows", "generalSearch", "showFilters", "loading", "updating", "tabs", "tabsOptionLabel", "tabsOptionValue", "activeTab", "actions", "paginatorPosition", "pageSize", "currentPage", "first", "filterTerm"], outputs: ["selectionChange", "cellChange", "activeTabChange", "onTabChange", "pageSizeChange", "currentPageChange", "firstChange", "filterTermChange"] }, { kind: "component", type: Breadcrumb, selector: "mt-breadcrumb", inputs: ["items", "styleClass"], outputs: ["onItemClick"] }, { kind: "component", type: Card, selector: "mt-card", inputs: ["class", "title", "paddingless"] }, { kind: "component", type: Avatar, selector: "mt-avatar", inputs: ["label", "icon", "image", "styleClass", "size", "shape", "badge", "badgeSize", "badgeSeverity"], outputs: ["onImageError"] }, { kind: "component", type: Divider, selector: "p-divider", inputs: ["styleClass", "layout", "type", "align"] }, { 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: "ngmodule", type: TranslocoModule }, { kind: "pipe", type: i1.TranslocoPipe, name: "transloco" }] });
|
|
910
938
|
}
|
|
911
939
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: PropertiesList, decorators: [{
|
|
912
940
|
type: Component,
|
|
913
|
-
args: [{ selector: 'mt-properties-list', standalone: true, imports: [CommonModule, Table, Breadcrumb, Card, Avatar, Divider, Button], template: "<div class=\"space-y-3\">\n <div class=\"flex items-center justify-between\">\n <div class=\"space-y-1\">\n <h1 class=\"text-xl font-semibold text-slate-900 tracking-tight\">\n All Properties\n </h1>\n <mt-breadcrumb\n [items]=\"breadcrumbItems()\"\n [styleClass]=\"'flex justify-center'\"\n >\n </mt-breadcrumb>\n </div>\n </div>\n <mt-table\n [tabs]=\"tabs()\"\n [(activeTab)]=\"activeTab\"\n (onTabChange)=\"onTabChange($event)\"\n [data]=\"tableData()\"\n [actions]=\"tableActions()\"\n [columns]=\"tableColumns()\"\n [rowActions]=\"rowActions()\"\n [generalSearch]=\"true\"\n [loading]=\"loading()\"\n >\n <ng-template #empty>\n <div headless class=\"flex-col justify-center items-center w-full p-5\">\n <div class=\"content flex flex-col gap-5 items-center text-center mb-5\">\n <svg\n width=\"152\"\n height=\"120\"\n viewBox=\"0 0 152 120\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle cx=\"76\" cy=\"52\" r=\"52\" fill=\"#E9EAEB\" />\n <g filter=\"url(#filter0_ddd_2474_28277)\">\n <path\n d=\"M77.6 16C66.8273 16 57.2978 21.3233 51.4987 29.4829C49.605 29.0363 47.6301 28.8 45.6 28.8C31.4615 28.8 20 40.2615 20 54.4C20 68.5385 31.4615 80 45.6 80L109.6 80C121.971 80 132 69.9712 132 57.6C132 45.2288 121.971 35.2 109.6 35.2C108.721 35.2 107.854 35.2506 107.002 35.349C102.098 23.9677 90.7797 16 77.6 16Z\"\n fill=\"#FAFAFA\"\n />\n <ellipse\n cx=\"45.6\"\n cy=\"54.3998\"\n rx=\"25.6\"\n ry=\"25.6\"\n fill=\"url(#paint0_linear_2474_28277)\"\n />\n <circle\n cx=\"77.6016\"\n cy=\"48\"\n r=\"32\"\n fill=\"url(#paint1_linear_2474_28277)\"\n />\n <ellipse\n cx=\"109.599\"\n cy=\"57.6002\"\n rx=\"22.4\"\n ry=\"22.4\"\n fill=\"url(#paint2_linear_2474_28277)\"\n />\n </g>\n <circle cx=\"21\" cy=\"19\" r=\"5\" fill=\"#F5F5F5\" />\n <circle cx=\"18\" cy=\"109\" r=\"7\" fill=\"#F5F5F5\" />\n <circle cx=\"145\" cy=\"35\" r=\"7\" fill=\"#F5F5F5\" />\n <circle cx=\"134\" cy=\"8\" r=\"4\" fill=\"#F5F5F5\" />\n <foreignObject x=\"44\" y=\"54\" width=\"64\" height=\"64\">\n <div\n xmlns=\"http://www.w3.org/1999/xhtml\"\n style=\"\n backdrop-filter: blur(4px);\n clip-path: url(#bgblur_0_2474_28277_clip_path);\n height: 100%;\n width: 100%;\n \"\n ></div>\n </foreignObject>\n <g data-figma-bg-blur-radius=\"8\">\n <path\n d=\"M52 86C52 72.7452 62.7452 62 76 62C89.2548 62 100 72.7452 100 86C100 99.2548 89.2548 110 76 110C62.7452 110 52 99.2548 52 86Z\"\n fill=\"#344054\"\n fill-opacity=\"0.4\"\n />\n <path\n d=\"M85 95L81.5001 91.5M84 85.5C84 90.1944 80.1944 94 75.5 94C70.8056 94 67 90.1944 67 85.5C67 80.8056 70.8056 77 75.5 77C80.1944 77 84 80.8056 84 85.5Z\"\n stroke=\"white\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </g>\n <defs>\n <filter\n id=\"filter0_ddd_2474_28277\"\n x=\"0\"\n y=\"16\"\n width=\"152\"\n height=\"104\"\n filterUnits=\"userSpaceOnUse\"\n color-interpolation-filters=\"sRGB\"\n >\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feMorphology\n radius=\"1.5\"\n operator=\"erode\"\n in=\"SourceAlpha\"\n result=\"effect1_dropShadow_2474_28277\"\n />\n <feOffset dy=\"3\" />\n <feGaussianBlur stdDeviation=\"1.5\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix\n type=\"matrix\"\n values=\"0 0 0 0 0.0392157 0 0 0 0 0.0496732 0 0 0 0 0.0705882 0 0 0 0.04 0\"\n />\n <feBlend\n mode=\"normal\"\n in2=\"BackgroundImageFix\"\n result=\"effect1_dropShadow_2474_28277\"\n />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feMorphology\n radius=\"4\"\n operator=\"erode\"\n in=\"SourceAlpha\"\n result=\"effect2_dropShadow_2474_28277\"\n />\n <feOffset dy=\"8\" />\n <feGaussianBlur stdDeviation=\"4\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix\n type=\"matrix\"\n values=\"0 0 0 0 0.0392157 0 0 0 0 0.0496732 0 0 0 0 0.0705882 0 0 0 0.03 0\"\n />\n <feBlend\n mode=\"normal\"\n in2=\"effect1_dropShadow_2474_28277\"\n result=\"effect2_dropShadow_2474_28277\"\n />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feMorphology\n radius=\"4\"\n operator=\"erode\"\n in=\"SourceAlpha\"\n result=\"effect3_dropShadow_2474_28277\"\n />\n <feOffset dy=\"20\" />\n <feGaussianBlur stdDeviation=\"12\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix\n type=\"matrix\"\n values=\"0 0 0 0 0.0392157 0 0 0 0 0.0496732 0 0 0 0 0.0705882 0 0 0 0.08 0\"\n />\n <feBlend\n mode=\"normal\"\n in2=\"effect2_dropShadow_2474_28277\"\n result=\"effect3_dropShadow_2474_28277\"\n />\n <feBlend\n mode=\"normal\"\n in=\"SourceGraphic\"\n in2=\"effect3_dropShadow_2474_28277\"\n result=\"shape\"\n />\n </filter>\n <clipPath\n id=\"bgblur_0_2474_28277_clip_path\"\n transform=\"translate(-44 -54)\"\n >\n <path\n d=\"M52 86C52 72.7452 62.7452 62 76 62C89.2548 62 100 72.7452 100 86C100 99.2548 89.2548 110 76 110C62.7452 110 52 99.2548 52 86Z\"\n />\n </clipPath>\n <linearGradient\n id=\"paint0_linear_2474_28277\"\n x1=\"25.9429\"\n y1=\"37.4855\"\n x2=\"71.2\"\n y2=\"79.9998\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#D0D5DD\" />\n <stop offset=\"0.350715\" stop-color=\"white\" stop-opacity=\"0\" />\n </linearGradient>\n <linearGradient\n id=\"paint1_linear_2474_28277\"\n x1=\"53.0301\"\n y1=\"26.8571\"\n x2=\"109.602\"\n y2=\"80\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#D0D5DD\" />\n <stop offset=\"0.350715\" stop-color=\"white\" stop-opacity=\"0\" />\n </linearGradient>\n <linearGradient\n id=\"paint2_linear_2474_28277\"\n x1=\"92.3992\"\n y1=\"42.8002\"\n x2=\"131.999\"\n y2=\"80.0002\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#D0D5DD\" />\n <stop offset=\"0.350715\" stop-color=\"white\" stop-opacity=\"0\" />\n </linearGradient>\n </defs>\n </svg>\n\n <div class=\"flex flex-col gap-1\">\n <div class=\"text-md text-surface-600\">{{ \"No data to show\" }}</div>\n </div>\n <div>\n <mt-button\n label=\"Add New Property\"\n icon=\"general.plus\"\n (click)=\"createProperty()\"\n />\n </div>\n </div>\n <p-divider type=\"solid\">\n <div class=\"text-lg text-surface-600\">Create from Type Template</div>\n </p-divider>\n <div class=\"flex gap-3 mt-5 justify-center\">\n @for (card of propertyTypes(); track card.label) {\n <mt-card\n headless\n class=\"w-25 tailwind-4 cursor-pointer\"\n style=\"background-color: #fafafa\"\n (click)=\"createPropertyWithType(card.value)\"\n >\n <div class=\"content flex flex-col gap-3 items-center text-center\">\n <mt-avatar\n [style.--p-avatar-background]=\"\n 'var(--p-' + card.color + '-100)'\n \"\n [style.--p-avatar-color]=\"'var(--p-' + card.color + '-600)'\"\n [icon]=\"card.icon\"\n shape=\"square\"\n ></mt-avatar>\n <div class=\"flex flex-col gap-1\">\n <div class=\"text-xs font-normal\">{{ card.label }}</div>\n </div>\n </div>\n </mt-card>\n }\n </div>\n </div>\n </ng-template>\n </mt-table>\n</div>\n" }]
|
|
941
|
+
args: [{ selector: 'mt-properties-list', standalone: true, imports: [
|
|
942
|
+
CommonModule,
|
|
943
|
+
Table,
|
|
944
|
+
Breadcrumb,
|
|
945
|
+
Card,
|
|
946
|
+
Avatar,
|
|
947
|
+
Divider,
|
|
948
|
+
Button,
|
|
949
|
+
TranslocoModule,
|
|
950
|
+
], template: "<div class=\"space-y-3\">\n <div class=\"flex items-center justify-between\">\n <div class=\"space-y-1\">\n <h1 class=\"text-xl font-semibold text-slate-900 tracking-tight\">\n {{ \"properties.list.pageTitle\" | transloco }}\n </h1>\n <mt-breadcrumb\n [items]=\"breadcrumbItems()\"\n [styleClass]=\"'flex justify-center'\"\n >\n </mt-breadcrumb>\n </div>\n </div>\n <mt-card paddingless>\n <mt-table\n [tabs]=\"tabs()\"\n [(activeTab)]=\"activeTab\"\n (onTabChange)=\"onTabChange($event)\"\n [data]=\"tableData()\"\n [actions]=\"tableActions()\"\n [columns]=\"tableColumns()\"\n [rowActions]=\"rowActions()\"\n [generalSearch]=\"true\"\n [loading]=\"loading()\"\n >\n <ng-template #empty>\n <div headless class=\"flex-col justify-center items-center w-full p-5\">\n <div\n class=\"content flex flex-col gap-5 items-center text-center mb-5\"\n >\n <svg\n width=\"152\"\n height=\"120\"\n viewBox=\"0 0 152 120\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle cx=\"76\" cy=\"52\" r=\"52\" fill=\"#E9EAEB\" />\n <g filter=\"url(#filter0_ddd_2474_28277)\">\n <path\n d=\"M77.6 16C66.8273 16 57.2978 21.3233 51.4987 29.4829C49.605 29.0363 47.6301 28.8 45.6 28.8C31.4615 28.8 20 40.2615 20 54.4C20 68.5385 31.4615 80 45.6 80L109.6 80C121.971 80 132 69.9712 132 57.6C132 45.2288 121.971 35.2 109.6 35.2C108.721 35.2 107.854 35.2506 107.002 35.349C102.098 23.9677 90.7797 16 77.6 16Z\"\n fill=\"#FAFAFA\"\n />\n <ellipse\n cx=\"45.6\"\n cy=\"54.3998\"\n rx=\"25.6\"\n ry=\"25.6\"\n fill=\"url(#paint0_linear_2474_28277)\"\n />\n <circle\n cx=\"77.6016\"\n cy=\"48\"\n r=\"32\"\n fill=\"url(#paint1_linear_2474_28277)\"\n />\n <ellipse\n cx=\"109.599\"\n cy=\"57.6002\"\n rx=\"22.4\"\n ry=\"22.4\"\n fill=\"url(#paint2_linear_2474_28277)\"\n />\n </g>\n <circle cx=\"21\" cy=\"19\" r=\"5\" fill=\"#F5F5F5\" />\n <circle cx=\"18\" cy=\"109\" r=\"7\" fill=\"#F5F5F5\" />\n <circle cx=\"145\" cy=\"35\" r=\"7\" fill=\"#F5F5F5\" />\n <circle cx=\"134\" cy=\"8\" r=\"4\" fill=\"#F5F5F5\" />\n <foreignObject x=\"44\" y=\"54\" width=\"64\" height=\"64\">\n <div\n xmlns=\"http://www.w3.org/1999/xhtml\"\n style=\"\n backdrop-filter: blur(4px);\n clip-path: url(#bgblur_0_2474_28277_clip_path);\n height: 100%;\n width: 100%;\n \"\n ></div>\n </foreignObject>\n <g data-figma-bg-blur-radius=\"8\">\n <path\n d=\"M52 86C52 72.7452 62.7452 62 76 62C89.2548 62 100 72.7452 100 86C100 99.2548 89.2548 110 76 110C62.7452 110 52 99.2548 52 86Z\"\n fill=\"#344054\"\n fill-opacity=\"0.4\"\n />\n <path\n d=\"M85 95L81.5001 91.5M84 85.5C84 90.1944 80.1944 94 75.5 94C70.8056 94 67 90.1944 67 85.5C67 80.8056 70.8056 77 75.5 77C80.1944 77 84 80.8056 84 85.5Z\"\n stroke=\"white\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </g>\n <defs>\n <filter\n id=\"filter0_ddd_2474_28277\"\n x=\"0\"\n y=\"16\"\n width=\"152\"\n height=\"104\"\n filterUnits=\"userSpaceOnUse\"\n color-interpolation-filters=\"sRGB\"\n >\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feMorphology\n radius=\"1.5\"\n operator=\"erode\"\n in=\"SourceAlpha\"\n result=\"effect1_dropShadow_2474_28277\"\n />\n <feOffset dy=\"3\" />\n <feGaussianBlur stdDeviation=\"1.5\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix\n type=\"matrix\"\n values=\"0 0 0 0 0.0392157 0 0 0 0 0.0496732 0 0 0 0 0.0705882 0 0 0 0.04 0\"\n />\n <feBlend\n mode=\"normal\"\n in2=\"BackgroundImageFix\"\n result=\"effect1_dropShadow_2474_28277\"\n />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feMorphology\n radius=\"4\"\n operator=\"erode\"\n in=\"SourceAlpha\"\n result=\"effect2_dropShadow_2474_28277\"\n />\n <feOffset dy=\"8\" />\n <feGaussianBlur stdDeviation=\"4\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix\n type=\"matrix\"\n values=\"0 0 0 0 0.0392157 0 0 0 0 0.0496732 0 0 0 0 0.0705882 0 0 0 0.03 0\"\n />\n <feBlend\n mode=\"normal\"\n in2=\"effect1_dropShadow_2474_28277\"\n result=\"effect2_dropShadow_2474_28277\"\n />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feMorphology\n radius=\"4\"\n operator=\"erode\"\n in=\"SourceAlpha\"\n result=\"effect3_dropShadow_2474_28277\"\n />\n <feOffset dy=\"20\" />\n <feGaussianBlur stdDeviation=\"12\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix\n type=\"matrix\"\n values=\"0 0 0 0 0.0392157 0 0 0 0 0.0496732 0 0 0 0 0.0705882 0 0 0 0.08 0\"\n />\n <feBlend\n mode=\"normal\"\n in2=\"effect2_dropShadow_2474_28277\"\n result=\"effect3_dropShadow_2474_28277\"\n />\n <feBlend\n mode=\"normal\"\n in=\"SourceGraphic\"\n in2=\"effect3_dropShadow_2474_28277\"\n result=\"shape\"\n />\n </filter>\n <clipPath\n id=\"bgblur_0_2474_28277_clip_path\"\n transform=\"translate(-44 -54)\"\n >\n <path\n d=\"M52 86C52 72.7452 62.7452 62 76 62C89.2548 62 100 72.7452 100 86C100 99.2548 89.2548 110 76 110C62.7452 110 52 99.2548 52 86Z\"\n />\n </clipPath>\n <linearGradient\n id=\"paint0_linear_2474_28277\"\n x1=\"25.9429\"\n y1=\"37.4855\"\n x2=\"71.2\"\n y2=\"79.9998\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#D0D5DD\" />\n <stop offset=\"0.350715\" stop-color=\"white\" stop-opacity=\"0\" />\n </linearGradient>\n <linearGradient\n id=\"paint1_linear_2474_28277\"\n x1=\"53.0301\"\n y1=\"26.8571\"\n x2=\"109.602\"\n y2=\"80\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#D0D5DD\" />\n <stop offset=\"0.350715\" stop-color=\"white\" stop-opacity=\"0\" />\n </linearGradient>\n <linearGradient\n id=\"paint2_linear_2474_28277\"\n x1=\"92.3992\"\n y1=\"42.8002\"\n x2=\"131.999\"\n y2=\"80.0002\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#D0D5DD\" />\n <stop offset=\"0.350715\" stop-color=\"white\" stop-opacity=\"0\" />\n </linearGradient>\n </defs>\n </svg>\n\n <div class=\"flex flex-col gap-1\">\n <div class=\"text-md text-surface-600\">\n {{ \"properties.list.emptyStateNoData\" | transloco }}\n </div>\n </div>\n <div>\n <mt-button\n [label]=\"'properties.list.addNewProperty' | transloco\"\n icon=\"general.plus\"\n (click)=\"createProperty()\"\n />\n </div>\n </div>\n <p-divider type=\"solid\">\n <div class=\"text-lg text-surface-600\">\n {{ \"properties.list.emptyStateTemplate\" | transloco }}\n </div>\n </p-divider>\n <div class=\"flex gap-3 mt-5 justify-center\">\n @for (card of propertyTypes(); track card.label) {\n <mt-card\n headless\n class=\"w-25 tailwind-4 cursor-pointer\"\n style=\"background-color: #fafafa\"\n (click)=\"createPropertyWithType(card.value)\"\n >\n <div\n class=\"content flex flex-col gap-3 items-center text-center\"\n >\n <mt-avatar\n [style.--p-avatar-background]=\"\n 'var(--p-' + card.color + '-100)'\n \"\n [style.--p-avatar-color]=\"'var(--p-' + card.color + '-600)'\"\n [icon]=\"card.icon\"\n shape=\"square\"\n ></mt-avatar>\n <div class=\"flex flex-col gap-1\">\n <div class=\"text-xs font-normal\">{{ card.label }}</div>\n </div>\n </div>\n </mt-card>\n }\n </div>\n </div>\n </ng-template>\n </mt-table>\n </mt-card>\n</div>\n" }]
|
|
914
951
|
}] });
|
|
915
952
|
|
|
916
953
|
class ApiConfiguration {
|
|
917
954
|
facade = inject(PropertiesFacade);
|
|
918
955
|
destroyRef = inject(DestroyRef);
|
|
956
|
+
transloco = inject(TranslocoService);
|
|
919
957
|
schema = signal(null, ...(ngDevMode ? [{ debugName: "schema" }] : []));
|
|
920
958
|
isWriting = false;
|
|
921
959
|
touched = false;
|
|
@@ -1071,7 +1109,7 @@ class ApiConfiguration {
|
|
|
1071
1109
|
useExisting: forwardRef(() => ApiConfiguration),
|
|
1072
1110
|
multi: true,
|
|
1073
1111
|
},
|
|
1074
|
-
], ngImport: i0, template: "<div [formGroup]=\"form\" class=\"space-y-6\">\n <div class=\"space-y-4 rounded-xl bg-
|
|
1112
|
+
], ngImport: i0, template: "<div [formGroup]=\"form\" class=\"space-y-6\">\n <div class=\"space-y-4 rounded-xl bg-content px-6 py-4 shadow-sm\">\n <div class=\"grid items-end gap-3 md:grid-cols-[minmax(0,1fr)_auto]\">\n <mt-text-field\n formControlName=\"endpoint\"\n [label]=\"'properties.form.endpoint' | transloco\"\n [placeholder]=\"'properties.form.endpointPlaceholder' | transloco\"\n />\n <div class=\"flex justify-end gap-2\">\n <mt-button\n type=\"button\"\n [text]=\"true\"\n icon=\"general.plus\"\n [label]=\"'properties.form.addHeader' | transloco\"\n (click)=\"addHeader()\"\n />\n <mt-button\n type=\"button\"\n [label]=\"'properties.form.testApi' | transloco\"\n [loading]=\"isTesting()\"\n (click)=\"testApi()\"\n />\n </div>\n </div>\n\n @if (headers.controls.length) {\n <div class=\"space-y-3\">\n <div class=\"text-sm font-medium text-surface-500\">\n {{ \"properties.form.headers\" | transloco }}\n </div>\n <div class=\"space-y-3\">\n @for (\n headerCtrl of headers.controls;\n track headerCtrl;\n let i = $index\n ) {\n <div\n [formGroup]=\"headerCtrl\"\n class=\"grid items-end gap-3 md:grid-cols-[minmax(0,1fr)_minmax(0,1fr)_auto]\"\n >\n <mt-text-field\n formControlName=\"key\"\n [label]=\"'properties.form.headerKey' | transloco\"\n />\n <mt-text-field\n formControlName=\"value\"\n [label]=\"'properties.form.headerValue' | transloco\"\n />\n <mt-button\n type=\"button\"\n [text]=\"true\"\n icon=\"general.trash-01\"\n (click)=\"removeHeader(i)\"\n />\n </div>\n }\n </div>\n </div>\n } @else {\n <p class=\"text-xs text-surface-400\">\n {{ \"properties.form.noHeadersMessage\" | transloco }}\n </p>\n }\n </div>\n\n <div class=\"space-y-4 rounded-xl bg-content px-6 py-4 shadow-sm\">\n @if (hasDetectedSchema()) {\n <div class=\"grid gap-4 md:grid-cols-2\">\n <mt-select-field\n formControlName=\"key\"\n [options]=\"apiProperties()\"\n [showClear]=\"true\"\n optionLabel=\"name\"\n optionValue=\"key\"\n [label]=\"'properties.form.keyField' | transloco\"\n />\n <mt-select-field\n formControlName=\"value\"\n [options]=\"apiProperties()\"\n [showClear]=\"true\"\n optionLabel=\"name\"\n optionValue=\"key\"\n [label]=\"'properties.form.valueField' | transloco\"\n />\n </div>\n } @else {\n <p class=\"text-xs text-surface-400\">\n {{ \"properties.form.messageTestApiPrompt\" | transloco }}\n </p>\n }\n\n <div class=\"flex items-center justify-between gap-4\">\n <mt-toggle-field\n formControlName=\"supportMultiSelect\"\n [label]=\"'properties.form.labelSupportMultiSelect' | transloco\"\n />\n @if (isTesting()) {\n <span class=\"text-xs text-surface-400\">\n {{ \"properties.form.messageTesting\" | transloco }}\n </span>\n }\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: TextField, selector: "mt-text-field", inputs: ["field", "hint", "label", "placeholder", "class", "type", "readonly", "pInputs", "required", "icon", "iconPosition"] }, { kind: "component", type: SelectField, selector: "mt-select-field", inputs: ["field", "label", "placeholder", "hasPlaceholderPrefix", "class", "readonly", "pInputs", "options", "optionValue", "optionLabel", "filter", "filterBy", "dataKey", "showClear", "clearAfterSelect", "required"], outputs: ["onChange"] }, { kind: "component", type: ToggleField, selector: "mt-toggle-field", inputs: ["label", "labelPosition", "placeholder", "readonly", "pInputs", "required"], outputs: ["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: "ngmodule", type: TranslocoModule }, { kind: "pipe", type: i1.TranslocoPipe, name: "transloco" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1075
1113
|
}
|
|
1076
1114
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: ApiConfiguration, decorators: [{
|
|
1077
1115
|
type: Component,
|
|
@@ -1082,19 +1120,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImpor
|
|
|
1082
1120
|
SelectField,
|
|
1083
1121
|
ToggleField,
|
|
1084
1122
|
Button,
|
|
1123
|
+
TranslocoModule,
|
|
1085
1124
|
], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
1086
1125
|
{
|
|
1087
1126
|
provide: NG_VALUE_ACCESSOR,
|
|
1088
1127
|
useExisting: forwardRef(() => ApiConfiguration),
|
|
1089
1128
|
multi: true,
|
|
1090
1129
|
},
|
|
1091
|
-
], template: "<div [formGroup]=\"form\" class=\"space-y-6\">\n <div class=\"space-y-4 rounded-xl bg-
|
|
1130
|
+
], template: "<div [formGroup]=\"form\" class=\"space-y-6\">\n <div class=\"space-y-4 rounded-xl bg-content px-6 py-4 shadow-sm\">\n <div class=\"grid items-end gap-3 md:grid-cols-[minmax(0,1fr)_auto]\">\n <mt-text-field\n formControlName=\"endpoint\"\n [label]=\"'properties.form.endpoint' | transloco\"\n [placeholder]=\"'properties.form.endpointPlaceholder' | transloco\"\n />\n <div class=\"flex justify-end gap-2\">\n <mt-button\n type=\"button\"\n [text]=\"true\"\n icon=\"general.plus\"\n [label]=\"'properties.form.addHeader' | transloco\"\n (click)=\"addHeader()\"\n />\n <mt-button\n type=\"button\"\n [label]=\"'properties.form.testApi' | transloco\"\n [loading]=\"isTesting()\"\n (click)=\"testApi()\"\n />\n </div>\n </div>\n\n @if (headers.controls.length) {\n <div class=\"space-y-3\">\n <div class=\"text-sm font-medium text-surface-500\">\n {{ \"properties.form.headers\" | transloco }}\n </div>\n <div class=\"space-y-3\">\n @for (\n headerCtrl of headers.controls;\n track headerCtrl;\n let i = $index\n ) {\n <div\n [formGroup]=\"headerCtrl\"\n class=\"grid items-end gap-3 md:grid-cols-[minmax(0,1fr)_minmax(0,1fr)_auto]\"\n >\n <mt-text-field\n formControlName=\"key\"\n [label]=\"'properties.form.headerKey' | transloco\"\n />\n <mt-text-field\n formControlName=\"value\"\n [label]=\"'properties.form.headerValue' | transloco\"\n />\n <mt-button\n type=\"button\"\n [text]=\"true\"\n icon=\"general.trash-01\"\n (click)=\"removeHeader(i)\"\n />\n </div>\n }\n </div>\n </div>\n } @else {\n <p class=\"text-xs text-surface-400\">\n {{ \"properties.form.noHeadersMessage\" | transloco }}\n </p>\n }\n </div>\n\n <div class=\"space-y-4 rounded-xl bg-content px-6 py-4 shadow-sm\">\n @if (hasDetectedSchema()) {\n <div class=\"grid gap-4 md:grid-cols-2\">\n <mt-select-field\n formControlName=\"key\"\n [options]=\"apiProperties()\"\n [showClear]=\"true\"\n optionLabel=\"name\"\n optionValue=\"key\"\n [label]=\"'properties.form.keyField' | transloco\"\n />\n <mt-select-field\n formControlName=\"value\"\n [options]=\"apiProperties()\"\n [showClear]=\"true\"\n optionLabel=\"name\"\n optionValue=\"key\"\n [label]=\"'properties.form.valueField' | transloco\"\n />\n </div>\n } @else {\n <p class=\"text-xs text-surface-400\">\n {{ \"properties.form.messageTestApiPrompt\" | transloco }}\n </p>\n }\n\n <div class=\"flex items-center justify-between gap-4\">\n <mt-toggle-field\n formControlName=\"supportMultiSelect\"\n [label]=\"'properties.form.labelSupportMultiSelect' | transloco\"\n />\n @if (isTesting()) {\n <span class=\"text-xs text-surface-400\">\n {{ \"properties.form.messageTesting\" | transloco }}\n </span>\n }\n </div>\n </div>\n</div>\n" }]
|
|
1092
1131
|
}], ctorParameters: () => [] });
|
|
1093
1132
|
|
|
1094
1133
|
class CheckListFormConfiguration {
|
|
1095
1134
|
propertiesFacade = inject(PropertiesFacade);
|
|
1096
1135
|
controlContainer = inject(ControlContainer);
|
|
1097
1136
|
parentGroup = this.controlContainer.control;
|
|
1137
|
+
transloco = inject(TranslocoService);
|
|
1098
1138
|
lookups = this.propertiesFacade.lookups;
|
|
1099
1139
|
configScopes = this.propertiesFacade.configScopes;
|
|
1100
1140
|
configProperties = this.propertiesFacade.configProperties;
|
|
@@ -1107,8 +1147,8 @@ class CheckListFormConfiguration {
|
|
|
1107
1147
|
sections: [
|
|
1108
1148
|
{
|
|
1109
1149
|
key: 'configuration',
|
|
1110
|
-
label: '
|
|
1111
|
-
cssClass: ' rounded-xl bg-
|
|
1150
|
+
label: this.transloco.translate('properties.form.configurationSection'),
|
|
1151
|
+
cssClass: ' rounded-xl bg-content \
|
|
1112
1152
|
shadow-sm \
|
|
1113
1153
|
px-6 py-4',
|
|
1114
1154
|
type: 'header',
|
|
@@ -1117,7 +1157,7 @@ class CheckListFormConfiguration {
|
|
|
1117
1157
|
{
|
|
1118
1158
|
key: 'lookup',
|
|
1119
1159
|
type: 'select',
|
|
1120
|
-
label: '
|
|
1160
|
+
label: this.transloco.translate('properties.form.selectLookup'),
|
|
1121
1161
|
optionLabel: 'title',
|
|
1122
1162
|
optionValue: 'id',
|
|
1123
1163
|
filter: true,
|
|
@@ -1126,7 +1166,7 @@ class CheckListFormConfiguration {
|
|
|
1126
1166
|
{
|
|
1127
1167
|
key: 'scopeId',
|
|
1128
1168
|
type: 'select',
|
|
1129
|
-
label: '
|
|
1169
|
+
label: this.transloco.translate('properties.form.selectScope'),
|
|
1130
1170
|
optionLabel: 'title',
|
|
1131
1171
|
optionValue: 'id',
|
|
1132
1172
|
options: this.scopeItems(),
|
|
@@ -1138,8 +1178,8 @@ class CheckListFormConfiguration {
|
|
|
1138
1178
|
options: this.configProperties(),
|
|
1139
1179
|
optionLabel: 'title',
|
|
1140
1180
|
optionValue: 'key',
|
|
1141
|
-
sourceHeader: '
|
|
1142
|
-
targetHeader: '
|
|
1181
|
+
sourceHeader: this.transloco.translate('properties.form.availableProperties'),
|
|
1182
|
+
targetHeader: this.transloco.translate('properties.form.selectedProperties'),
|
|
1143
1183
|
}),
|
|
1144
1184
|
],
|
|
1145
1185
|
},
|
|
@@ -1165,7 +1205,7 @@ class CheckListFormConfiguration {
|
|
|
1165
1205
|
this.propertiesFacade.resetConfigProperties();
|
|
1166
1206
|
}
|
|
1167
1207
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: CheckListFormConfiguration, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1168
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.3", type: CheckListFormConfiguration, isStandalone: true, selector: "mt-check-list-form-configuration", ngImport: i0, template: "<mt-dynamic-form formControlName=\"configuration\" [formConfig]=\"formConfig()\" />\n", styles: [""], dependencies: [{ kind: "component", type: DynamicForm, selector: "mt-dynamic-form", inputs: ["formConfig"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], viewProviders: [
|
|
1208
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.3", type: CheckListFormConfiguration, isStandalone: true, selector: "mt-check-list-form-configuration", ngImport: i0, template: "<mt-dynamic-form formControlName=\"configuration\" [formConfig]=\"formConfig()\" />\n", styles: [""], dependencies: [{ kind: "component", type: DynamicForm, selector: "mt-dynamic-form", inputs: ["formConfig"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], viewProviders: [
|
|
1169
1209
|
{ provide: ControlContainer, useExisting: FormGroupDirective },
|
|
1170
1210
|
] });
|
|
1171
1211
|
}
|
|
@@ -1180,6 +1220,7 @@ class DynamicListConfiguration {
|
|
|
1180
1220
|
propertiesFacade = inject(PropertiesFacade);
|
|
1181
1221
|
controlContainer = inject(ControlContainer);
|
|
1182
1222
|
parentGroup = this.controlContainer.control;
|
|
1223
|
+
transloco = inject(TranslocoService);
|
|
1183
1224
|
configScopes = this.propertiesFacade.configScopes;
|
|
1184
1225
|
configProperties = this.propertiesFacade.configProperties;
|
|
1185
1226
|
configuration = toSignal(this.parentGroup.valueChanges.pipe(startWith(this.parentGroup.value), map((value) => value?.configuration), distinctUntilChanged()), { initialValue: this.parentGroup.value?.configuration });
|
|
@@ -1191,8 +1232,8 @@ class DynamicListConfiguration {
|
|
|
1191
1232
|
sections: [
|
|
1192
1233
|
{
|
|
1193
1234
|
key: 'configuration',
|
|
1194
|
-
label: '
|
|
1195
|
-
cssClass: ' rounded-xl bg-
|
|
1235
|
+
label: this.transloco.translate('properties.form.configurationSection'),
|
|
1236
|
+
cssClass: ' rounded-xl bg-content \
|
|
1196
1237
|
shadow-sm \
|
|
1197
1238
|
px-6 py-4',
|
|
1198
1239
|
type: 'header',
|
|
@@ -1201,7 +1242,7 @@ class DynamicListConfiguration {
|
|
|
1201
1242
|
{
|
|
1202
1243
|
key: 'scopeId',
|
|
1203
1244
|
type: 'select',
|
|
1204
|
-
label: '
|
|
1245
|
+
label: this.transloco.translate('properties.form.selectScope'),
|
|
1205
1246
|
optionLabel: 'title',
|
|
1206
1247
|
optionValue: 'id',
|
|
1207
1248
|
filter: true,
|
|
@@ -1213,13 +1254,13 @@ class DynamicListConfiguration {
|
|
|
1213
1254
|
options: this.configProperties(),
|
|
1214
1255
|
optionLabel: 'title',
|
|
1215
1256
|
optionValue: 'key',
|
|
1216
|
-
sourceHeader: '
|
|
1217
|
-
targetHeader: '
|
|
1257
|
+
sourceHeader: this.transloco.translate('properties.form.availableProperties'),
|
|
1258
|
+
targetHeader: this.transloco.translate('properties.form.selectedProperties'),
|
|
1218
1259
|
}),
|
|
1219
1260
|
{
|
|
1220
|
-
key: '
|
|
1261
|
+
key: 'mappingBehaviour',
|
|
1221
1262
|
type: 'toggle',
|
|
1222
|
-
label: '
|
|
1263
|
+
label: this.transloco.translate('properties.form.mapToActual'),
|
|
1223
1264
|
cssClass: 'md:col-span-2',
|
|
1224
1265
|
},
|
|
1225
1266
|
],
|
|
@@ -1241,7 +1282,7 @@ class DynamicListConfiguration {
|
|
|
1241
1282
|
this.propertiesFacade.resetConfigProperties();
|
|
1242
1283
|
}
|
|
1243
1284
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: DynamicListConfiguration, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1244
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.3", type: DynamicListConfiguration, isStandalone: true, selector: "mt-dynamic-list-configuration", ngImport: i0, template: "<mt-dynamic-form formControlName=\"configuration\" [formConfig]=\"formConfig()\" />\n", styles: [""], dependencies: [{ kind: "component", type: DynamicForm, selector: "mt-dynamic-form", inputs: ["formConfig"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], viewProviders: [
|
|
1285
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.3", type: DynamicListConfiguration, isStandalone: true, selector: "mt-dynamic-list-configuration", ngImport: i0, template: "<mt-dynamic-form formControlName=\"configuration\" [formConfig]=\"formConfig()\" />\n", styles: [""], dependencies: [{ kind: "component", type: DynamicForm, selector: "mt-dynamic-form", inputs: ["formConfig"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], viewProviders: [
|
|
1245
1286
|
{ provide: ControlContainer, useExisting: FormGroupDirective },
|
|
1246
1287
|
] });
|
|
1247
1288
|
}
|
|
@@ -1256,6 +1297,7 @@ class EditableListViewConfiguration {
|
|
|
1256
1297
|
propertiesFacade = inject(PropertiesFacade);
|
|
1257
1298
|
controlContainer = inject(ControlContainer);
|
|
1258
1299
|
parentGroup = this.controlContainer.control;
|
|
1300
|
+
transloco = inject(TranslocoService);
|
|
1259
1301
|
configScopes = this.propertiesFacade.configScopes;
|
|
1260
1302
|
configProperties = this.propertiesFacade.configProperties;
|
|
1261
1303
|
configuration = toSignal(this.parentGroup.valueChanges.pipe(startWith(this.parentGroup.value), map((value) => value?.configuration), distinctUntilChanged()), { initialValue: this.parentGroup.value?.configuration });
|
|
@@ -1267,8 +1309,8 @@ class EditableListViewConfiguration {
|
|
|
1267
1309
|
sections: [
|
|
1268
1310
|
{
|
|
1269
1311
|
key: 'configuration',
|
|
1270
|
-
label: '
|
|
1271
|
-
cssClass: ' rounded-xl bg-
|
|
1312
|
+
label: this.transloco.translate('properties.form.configurationSection'),
|
|
1313
|
+
cssClass: ' rounded-xl bg-content \
|
|
1272
1314
|
shadow-sm \
|
|
1273
1315
|
px-6 py-4',
|
|
1274
1316
|
type: 'header',
|
|
@@ -1277,7 +1319,7 @@ class EditableListViewConfiguration {
|
|
|
1277
1319
|
{
|
|
1278
1320
|
key: 'scopeId',
|
|
1279
1321
|
type: 'select',
|
|
1280
|
-
label: '
|
|
1322
|
+
label: this.transloco.translate('properties.form.selectScope'),
|
|
1281
1323
|
optionLabel: 'title',
|
|
1282
1324
|
optionValue: 'id',
|
|
1283
1325
|
options: this.scopeItems(),
|
|
@@ -1288,18 +1330,18 @@ class EditableListViewConfiguration {
|
|
|
1288
1330
|
options: this.configProperties(),
|
|
1289
1331
|
optionLabel: 'title',
|
|
1290
1332
|
optionValue: 'key',
|
|
1291
|
-
sourceHeader: '
|
|
1292
|
-
targetHeader: '
|
|
1333
|
+
sourceHeader: this.transloco.translate('properties.form.availableProperties'),
|
|
1334
|
+
targetHeader: this.transloco.translate('properties.form.selectedProperties'),
|
|
1293
1335
|
}),
|
|
1294
1336
|
{
|
|
1295
1337
|
key: 'isEditable',
|
|
1296
1338
|
type: 'toggle',
|
|
1297
|
-
label: '
|
|
1339
|
+
label: this.transloco.translate('properties.form.isEditable'),
|
|
1298
1340
|
},
|
|
1299
1341
|
{
|
|
1300
1342
|
key: 'preserveValue',
|
|
1301
1343
|
type: 'toggle',
|
|
1302
|
-
label: '
|
|
1344
|
+
label: this.transloco.translate('properties.form.preserveValue'),
|
|
1303
1345
|
},
|
|
1304
1346
|
],
|
|
1305
1347
|
},
|
|
@@ -1320,7 +1362,7 @@ class EditableListViewConfiguration {
|
|
|
1320
1362
|
this.propertiesFacade.resetConfigProperties();
|
|
1321
1363
|
}
|
|
1322
1364
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: EditableListViewConfiguration, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1323
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.3", type: EditableListViewConfiguration, isStandalone: true, selector: "mt-editable-list-view-configuration", ngImport: i0, template: "<mt-dynamic-form formControlName=\"configuration\" [formConfig]=\"formConfig()\" />\n", styles: [""], dependencies: [{ kind: "component", type: DynamicForm, selector: "mt-dynamic-form", inputs: ["formConfig"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], viewProviders: [
|
|
1365
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.3", type: EditableListViewConfiguration, isStandalone: true, selector: "mt-editable-list-view-configuration", ngImport: i0, template: "<mt-dynamic-form formControlName=\"configuration\" [formConfig]=\"formConfig()\" />\n", styles: [""], dependencies: [{ kind: "component", type: DynamicForm, selector: "mt-dynamic-form", inputs: ["formConfig"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], viewProviders: [
|
|
1324
1366
|
{ provide: ControlContainer, useExisting: FormGroupDirective },
|
|
1325
1367
|
] });
|
|
1326
1368
|
}
|
|
@@ -1337,6 +1379,7 @@ class InternalModuleConfiguration {
|
|
|
1337
1379
|
levels;
|
|
1338
1380
|
propertiesFacade = inject(PropertiesFacade);
|
|
1339
1381
|
cc = inject(ControlContainer);
|
|
1382
|
+
transloco = inject(TranslocoService);
|
|
1340
1383
|
parentGroup = this.cc.control;
|
|
1341
1384
|
configProperties = this.propertiesFacade.configProperties;
|
|
1342
1385
|
configScopes = this.propertiesFacade.configScopes;
|
|
@@ -1353,8 +1396,8 @@ class InternalModuleConfiguration {
|
|
|
1353
1396
|
sections: [
|
|
1354
1397
|
{
|
|
1355
1398
|
key: 'configuration',
|
|
1356
|
-
label: '
|
|
1357
|
-
cssClass: ' rounded-xl bg-
|
|
1399
|
+
label: this.transloco.translate('properties.form.configurationSection'),
|
|
1400
|
+
cssClass: ' rounded-xl bg-content \
|
|
1358
1401
|
shadow-sm \
|
|
1359
1402
|
px-6 py-4',
|
|
1360
1403
|
type: 'header',
|
|
@@ -1363,7 +1406,7 @@ class InternalModuleConfiguration {
|
|
|
1363
1406
|
{
|
|
1364
1407
|
key: 'type',
|
|
1365
1408
|
type: 'select',
|
|
1366
|
-
label: '
|
|
1409
|
+
label: this.transloco.translate('properties.form.type'),
|
|
1367
1410
|
optionLabel: 'scope',
|
|
1368
1411
|
optionValue: 'scope',
|
|
1369
1412
|
options: this.configScopes(),
|
|
@@ -1371,7 +1414,7 @@ class InternalModuleConfiguration {
|
|
|
1371
1414
|
{
|
|
1372
1415
|
key: 'scopeId',
|
|
1373
1416
|
type: 'select',
|
|
1374
|
-
label: '
|
|
1417
|
+
label: this.transloco.translate('properties.form.selectScope'),
|
|
1375
1418
|
optionLabel: 'title',
|
|
1376
1419
|
optionValue: 'id',
|
|
1377
1420
|
filter: true,
|
|
@@ -1380,7 +1423,7 @@ class InternalModuleConfiguration {
|
|
|
1380
1423
|
{
|
|
1381
1424
|
type: 'select',
|
|
1382
1425
|
key: 'property',
|
|
1383
|
-
label: '
|
|
1426
|
+
label: this.transloco.translate('properties.form.valueProperty'),
|
|
1384
1427
|
optionLabel: 'title',
|
|
1385
1428
|
optionValue: 'key',
|
|
1386
1429
|
options: this.configProperties(),
|
|
@@ -1391,14 +1434,14 @@ class InternalModuleConfiguration {
|
|
|
1391
1434
|
options: this.configProperties(),
|
|
1392
1435
|
optionLabel: 'title',
|
|
1393
1436
|
optionValue: 'key',
|
|
1394
|
-
sourceHeader: '
|
|
1395
|
-
targetHeader: '
|
|
1437
|
+
sourceHeader: this.transloco.translate('properties.form.availableProperties'),
|
|
1438
|
+
targetHeader: this.transloco.translate('properties.form.selectedProperties'),
|
|
1396
1439
|
}),
|
|
1397
1440
|
{
|
|
1398
1441
|
cssClass: 'md:col-span-2',
|
|
1399
1442
|
key: 'preserveValue',
|
|
1400
1443
|
type: 'toggle',
|
|
1401
|
-
label: '
|
|
1444
|
+
label: this.transloco.translate('properties.form.labelPreserveValue'),
|
|
1402
1445
|
},
|
|
1403
1446
|
],
|
|
1404
1447
|
},
|
|
@@ -1423,7 +1466,7 @@ class InternalModuleConfiguration {
|
|
|
1423
1466
|
this.propertiesFacade.resetConfigProperties();
|
|
1424
1467
|
}
|
|
1425
1468
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: InternalModuleConfiguration, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1426
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.3", type: InternalModuleConfiguration, isStandalone: true, selector: "mt-internal-module-configuration", ngImport: i0, template: "<mt-dynamic-form formControlName=\"configuration\" [formConfig]=\"formConfig()\" />\n", styles: [""], dependencies: [{ kind: "component", type: DynamicForm, selector: "mt-dynamic-form", inputs: ["formConfig"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], viewProviders: [
|
|
1469
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.3", type: InternalModuleConfiguration, isStandalone: true, selector: "mt-internal-module-configuration", ngImport: i0, template: "<mt-dynamic-form formControlName=\"configuration\" [formConfig]=\"formConfig()\" />\n", styles: [""], dependencies: [{ kind: "component", type: DynamicForm, selector: "mt-dynamic-form", inputs: ["formConfig"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], viewProviders: [
|
|
1427
1470
|
{ provide: ControlContainer, useExisting: FormGroupDirective },
|
|
1428
1471
|
] });
|
|
1429
1472
|
}
|
|
@@ -1436,13 +1479,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImpor
|
|
|
1436
1479
|
|
|
1437
1480
|
class LocationConfiguration {
|
|
1438
1481
|
facade = inject(PropertiesFacade);
|
|
1482
|
+
transloco = inject(TranslocoService);
|
|
1439
1483
|
countries = this.facade.countries;
|
|
1440
1484
|
formConfig = computed(() => ({
|
|
1441
1485
|
sections: [
|
|
1442
1486
|
{
|
|
1443
1487
|
key: 'configuration',
|
|
1444
|
-
label: '
|
|
1445
|
-
cssClass: ' rounded-xl bg-
|
|
1488
|
+
label: this.transloco.translate('properties.form.configurationSection'),
|
|
1489
|
+
cssClass: ' rounded-xl bg-content \
|
|
1446
1490
|
shadow-sm \
|
|
1447
1491
|
px-6 py-4',
|
|
1448
1492
|
type: 'header',
|
|
@@ -1451,7 +1495,7 @@ class LocationConfiguration {
|
|
|
1451
1495
|
{
|
|
1452
1496
|
key: 'country',
|
|
1453
1497
|
type: 'select',
|
|
1454
|
-
label: '
|
|
1498
|
+
label: this.transloco.translate('properties.form.selectCountry'),
|
|
1455
1499
|
optionLabel: 'name',
|
|
1456
1500
|
optionValue: 'name',
|
|
1457
1501
|
options: this.countries(),
|
|
@@ -1469,7 +1513,7 @@ class LocationConfiguration {
|
|
|
1469
1513
|
});
|
|
1470
1514
|
}
|
|
1471
1515
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: LocationConfiguration, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1472
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.3", type: LocationConfiguration, isStandalone: true, selector: "mt-location-configuration", ngImport: i0, template: "<mt-dynamic-form formControlName=\"configuration\" [formConfig]=\"formConfig()\" />\n", styles: [""], dependencies: [{ kind: "component", type: DynamicForm, selector: "mt-dynamic-form", inputs: ["formConfig"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], viewProviders: [
|
|
1516
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.3", type: LocationConfiguration, isStandalone: true, selector: "mt-location-configuration", ngImport: i0, template: "<mt-dynamic-form formControlName=\"configuration\" [formConfig]=\"formConfig()\" />\n", styles: [""], dependencies: [{ kind: "component", type: DynamicForm, selector: "mt-dynamic-form", inputs: ["formConfig"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], viewProviders: [
|
|
1473
1517
|
{ provide: ControlContainer, useExisting: FormGroupDirective },
|
|
1474
1518
|
] });
|
|
1475
1519
|
}
|
|
@@ -1482,13 +1526,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImpor
|
|
|
1482
1526
|
|
|
1483
1527
|
class LookupConfiguration {
|
|
1484
1528
|
facade = inject(PropertiesFacade);
|
|
1529
|
+
transloco = inject(TranslocoService);
|
|
1485
1530
|
lookups = this.facade.lookups;
|
|
1486
1531
|
formConfig = computed(() => ({
|
|
1487
1532
|
sections: [
|
|
1488
1533
|
{
|
|
1489
1534
|
key: 'configuration',
|
|
1490
|
-
label: '
|
|
1491
|
-
cssClass: ' rounded-xl bg-
|
|
1535
|
+
label: this.transloco.translate('properties.form.configurationSection'),
|
|
1536
|
+
cssClass: ' rounded-xl bg-content \
|
|
1492
1537
|
shadow-sm \
|
|
1493
1538
|
px-6 py-4',
|
|
1494
1539
|
type: 'header',
|
|
@@ -1497,7 +1542,7 @@ class LookupConfiguration {
|
|
|
1497
1542
|
{
|
|
1498
1543
|
key: 'lookup',
|
|
1499
1544
|
type: 'select',
|
|
1500
|
-
label: '
|
|
1545
|
+
label: this.transloco.translate('properties.form.selectLookup'),
|
|
1501
1546
|
optionLabel: 'title',
|
|
1502
1547
|
optionValue: 'id',
|
|
1503
1548
|
options: this.lookups(),
|
|
@@ -1515,7 +1560,7 @@ class LookupConfiguration {
|
|
|
1515
1560
|
});
|
|
1516
1561
|
}
|
|
1517
1562
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: LookupConfiguration, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1518
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.3", type: LookupConfiguration, isStandalone: true, selector: "mt-lookup-configuration", ngImport: i0, template: "<mt-dynamic-form formControlName=\"configuration\" [formConfig]=\"formConfig()\" />\n", styles: [""], dependencies: [{ kind: "component", type: DynamicForm, selector: "mt-dynamic-form", inputs: ["formConfig"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], viewProviders: [
|
|
1563
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.3", type: LookupConfiguration, isStandalone: true, selector: "mt-lookup-configuration", ngImport: i0, template: "<mt-dynamic-form formControlName=\"configuration\" [formConfig]=\"formConfig()\" />\n", styles: [""], dependencies: [{ kind: "component", type: DynamicForm, selector: "mt-dynamic-form", inputs: ["formConfig"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], viewProviders: [
|
|
1519
1564
|
{ provide: ControlContainer, useExisting: FormGroupDirective },
|
|
1520
1565
|
] });
|
|
1521
1566
|
}
|
|
@@ -1527,12 +1572,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImpor
|
|
|
1527
1572
|
}], ctorParameters: () => [] });
|
|
1528
1573
|
|
|
1529
1574
|
class PercentageConfiguration {
|
|
1575
|
+
transloco = inject(TranslocoService);
|
|
1530
1576
|
formConfig = signal({
|
|
1531
1577
|
sections: [
|
|
1532
1578
|
{
|
|
1533
1579
|
key: 'configuration',
|
|
1534
|
-
label: '
|
|
1535
|
-
cssClass: ' rounded-xl bg-
|
|
1580
|
+
label: this.transloco.translate('properties.form.configurationSection'),
|
|
1581
|
+
cssClass: ' rounded-xl bg-content \
|
|
1536
1582
|
shadow-sm \
|
|
1537
1583
|
px-6 py-4',
|
|
1538
1584
|
type: 'header',
|
|
@@ -1541,14 +1587,14 @@ class PercentageConfiguration {
|
|
|
1541
1587
|
{
|
|
1542
1588
|
key: 'color',
|
|
1543
1589
|
type: 'color-picker',
|
|
1544
|
-
label: '
|
|
1590
|
+
label: this.transloco.translate('properties.form.selectColor'),
|
|
1545
1591
|
},
|
|
1546
1592
|
],
|
|
1547
1593
|
},
|
|
1548
1594
|
],
|
|
1549
1595
|
}, ...(ngDevMode ? [{ debugName: "formConfig" }] : []));
|
|
1550
1596
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: PercentageConfiguration, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1551
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.3", type: PercentageConfiguration, isStandalone: true, selector: "mt-percentage-configuration", ngImport: i0, template: "<mt-dynamic-form formControlName=\"configuration\" [formConfig]=\"formConfig()\" />\n", styles: [""], dependencies: [{ kind: "component", type: DynamicForm, selector: "mt-dynamic-form", inputs: ["formConfig"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], viewProviders: [
|
|
1597
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.3", type: PercentageConfiguration, isStandalone: true, selector: "mt-percentage-configuration", ngImport: i0, template: "<mt-dynamic-form formControlName=\"configuration\" [formConfig]=\"formConfig()\" />\n", styles: [""], dependencies: [{ kind: "component", type: DynamicForm, selector: "mt-dynamic-form", inputs: ["formConfig"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], viewProviders: [
|
|
1552
1598
|
{ provide: ControlContainer, useExisting: FormGroupDirective },
|
|
1553
1599
|
] });
|
|
1554
1600
|
}
|
|
@@ -1561,13 +1607,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImpor
|
|
|
1561
1607
|
|
|
1562
1608
|
class UserConfiguration {
|
|
1563
1609
|
facade = inject(PropertiesFacade);
|
|
1610
|
+
transloco = inject(TranslocoService);
|
|
1564
1611
|
groups = this.facade.groups;
|
|
1565
1612
|
formConfig = computed(() => ({
|
|
1566
1613
|
sections: [
|
|
1567
1614
|
{
|
|
1568
1615
|
key: 'configuration',
|
|
1569
|
-
label: '
|
|
1570
|
-
cssClass: ' rounded-xl bg-
|
|
1616
|
+
label: this.transloco.translate('properties.form.configurationSection'),
|
|
1617
|
+
cssClass: ' rounded-xl bg-content \
|
|
1571
1618
|
shadow-sm \
|
|
1572
1619
|
px-6 py-4',
|
|
1573
1620
|
type: 'header',
|
|
@@ -1576,7 +1623,7 @@ class UserConfiguration {
|
|
|
1576
1623
|
{
|
|
1577
1624
|
key: 'group',
|
|
1578
1625
|
type: 'select',
|
|
1579
|
-
label: '
|
|
1626
|
+
label: this.transloco.translate('properties.form.selectGroup'),
|
|
1580
1627
|
optionLabel: 'title',
|
|
1581
1628
|
optionValue: 'id',
|
|
1582
1629
|
options: this.groups(),
|
|
@@ -1594,7 +1641,7 @@ class UserConfiguration {
|
|
|
1594
1641
|
});
|
|
1595
1642
|
}
|
|
1596
1643
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: UserConfiguration, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1597
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.3", type: UserConfiguration, isStandalone: true, selector: "mt-user-configuration", ngImport: i0, template: "<mt-dynamic-form formControlName=\"configuration\" [formConfig]=\"formConfig()\" />\n", styles: [""], dependencies: [{ kind: "component", type: DynamicForm, selector: "mt-dynamic-form", inputs: ["formConfig"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], viewProviders: [
|
|
1644
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.3", type: UserConfiguration, isStandalone: true, selector: "mt-user-configuration", ngImport: i0, template: "<mt-dynamic-form formControlName=\"configuration\" [formConfig]=\"formConfig()\" />\n", styles: [""], dependencies: [{ kind: "component", type: DynamicForm, selector: "mt-dynamic-form", inputs: ["formConfig"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], viewProviders: [
|
|
1598
1645
|
{ provide: ControlContainer, useExisting: FormGroupDirective },
|
|
1599
1646
|
] });
|
|
1600
1647
|
}
|
|
@@ -1716,12 +1763,13 @@ const ATTACHMENT_ACCEPT = [
|
|
|
1716
1763
|
},
|
|
1717
1764
|
];
|
|
1718
1765
|
class AttachmentConfiguration {
|
|
1766
|
+
transloco = inject(TranslocoService);
|
|
1719
1767
|
formConfig = signal({
|
|
1720
1768
|
sections: [
|
|
1721
1769
|
{
|
|
1722
1770
|
key: 'configuration',
|
|
1723
|
-
label: '
|
|
1724
|
-
cssClass: ' rounded-xl bg-
|
|
1771
|
+
label: this.transloco.translate('properties.form.configurationSection'),
|
|
1772
|
+
cssClass: ' rounded-xl bg-content \
|
|
1725
1773
|
shadow-sm \
|
|
1726
1774
|
px-6 py-4',
|
|
1727
1775
|
type: 'header',
|
|
@@ -1732,21 +1780,21 @@ class AttachmentConfiguration {
|
|
|
1732
1780
|
options: ATTACHMENT_ACCEPT,
|
|
1733
1781
|
optionLabel: 'name',
|
|
1734
1782
|
optionValue: 'key',
|
|
1735
|
-
sourceHeader: '
|
|
1736
|
-
targetHeader: '
|
|
1783
|
+
sourceHeader: this.transloco.translate('properties.form.availableTypes'),
|
|
1784
|
+
targetHeader: this.transloco.translate('properties.form.selectedTypes'),
|
|
1737
1785
|
cssClass: 'md:col-span-2',
|
|
1738
1786
|
}),
|
|
1739
1787
|
{
|
|
1740
1788
|
key: 'IsMulitple',
|
|
1741
1789
|
type: 'toggle',
|
|
1742
|
-
label: '
|
|
1790
|
+
label: this.transloco.translate('properties.form.allowMultiple'),
|
|
1743
1791
|
},
|
|
1744
1792
|
],
|
|
1745
1793
|
},
|
|
1746
1794
|
],
|
|
1747
1795
|
}, ...(ngDevMode ? [{ debugName: "formConfig" }] : []));
|
|
1748
1796
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AttachmentConfiguration, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1749
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.3", type: AttachmentConfiguration, isStandalone: true, selector: "mt-attachment-configuration", ngImport: i0, template: "<mt-dynamic-form formControlName=\"configuration\" [formConfig]=\"formConfig()\" />\n", styles: [""], dependencies: [{ kind: "component", type: DynamicForm, selector: "mt-dynamic-form", inputs: ["formConfig"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], viewProviders: [
|
|
1797
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.3", type: AttachmentConfiguration, isStandalone: true, selector: "mt-attachment-configuration", ngImport: i0, template: "<mt-dynamic-form formControlName=\"configuration\" [formConfig]=\"formConfig()\" />\n", styles: [""], dependencies: [{ kind: "component", type: DynamicForm, selector: "mt-dynamic-form", inputs: ["formConfig"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], viewProviders: [
|
|
1750
1798
|
{ provide: ControlContainer, useExisting: FormGroupDirective },
|
|
1751
1799
|
] });
|
|
1752
1800
|
}
|
|
@@ -1761,9 +1809,12 @@ class PropertyForm {
|
|
|
1761
1809
|
facade = inject(PropertiesFacade);
|
|
1762
1810
|
router = inject(Router);
|
|
1763
1811
|
route = inject(ActivatedRoute);
|
|
1812
|
+
transloco = inject(TranslocoService);
|
|
1764
1813
|
propertyId = input('', ...(ngDevMode ? [{ debugName: "propertyId" }] : []));
|
|
1765
1814
|
propertyTypes = this.facade.propertyTypes;
|
|
1766
|
-
submitLabel = computed(() =>
|
|
1815
|
+
submitLabel = computed(() => this.propertyId()
|
|
1816
|
+
? this.transloco.translate('properties.form.updateButton')
|
|
1817
|
+
: this.transloco.translate('properties.form.createButton'), ...(ngDevMode ? [{ debugName: "submitLabel" }] : []));
|
|
1767
1818
|
isEditing = computed(() => !!this.propertyId(), ...(ngDevMode ? [{ debugName: "isEditing" }] : []));
|
|
1768
1819
|
// Keep your original structure: "main" is a FormControl<any>, "configuration" is FormControl<any|null>
|
|
1769
1820
|
propertyForm = new FormGroup({
|
|
@@ -1811,24 +1862,25 @@ class PropertyForm {
|
|
|
1811
1862
|
{
|
|
1812
1863
|
key: 'top-row',
|
|
1813
1864
|
type: 'none',
|
|
1814
|
-
cssClass: ' rounded-xl bg-
|
|
1865
|
+
cssClass: ' rounded-xl bg-content shadow-sm p-6 mt-3 mb-0',
|
|
1815
1866
|
bodyClass: 'flex justify-between items-center gap-6',
|
|
1816
1867
|
fields: [
|
|
1817
1868
|
{
|
|
1818
1869
|
key: 'viewType',
|
|
1819
1870
|
type: 'select',
|
|
1820
|
-
placeholder: '
|
|
1871
|
+
placeholder: this.transloco.translate('properties.form.selectPropertyType'),
|
|
1821
1872
|
optionLabel: 'label.en',
|
|
1822
1873
|
optionValue: 'viewType',
|
|
1823
1874
|
cssClass: 'w-1/2',
|
|
1824
1875
|
options: this.propertyTypes()?.value,
|
|
1825
1876
|
disabled: this.isEditing(),
|
|
1826
1877
|
filter: true,
|
|
1878
|
+
hasPlaceholderPrefix: false,
|
|
1827
1879
|
},
|
|
1828
1880
|
{
|
|
1829
1881
|
key: 'isCalculated',
|
|
1830
1882
|
type: 'toggle',
|
|
1831
|
-
label: '
|
|
1883
|
+
label: this.transloco.translate('properties.form.calculated'),
|
|
1832
1884
|
cssClass: 'justify-self-end',
|
|
1833
1885
|
relations: [
|
|
1834
1886
|
{
|
|
@@ -1887,26 +1939,26 @@ class PropertyForm {
|
|
|
1887
1939
|
},
|
|
1888
1940
|
{
|
|
1889
1941
|
key: 'default-info',
|
|
1890
|
-
label: '
|
|
1942
|
+
label: this.transloco.translate('properties.form.defaultInfoSection'),
|
|
1891
1943
|
type: 'header',
|
|
1892
|
-
cssClass: ' rounded-xl bg-
|
|
1944
|
+
cssClass: ' rounded-xl bg-content shadow-sm p-6',
|
|
1893
1945
|
bodyClass: 'grid grid-cols-1 md:grid-cols-2 gap-3',
|
|
1894
1946
|
fields: [
|
|
1895
1947
|
{
|
|
1896
1948
|
key: 'title.en',
|
|
1897
|
-
label: '
|
|
1898
|
-
placeholder: '
|
|
1949
|
+
label: this.transloco.translate('properties.form.englishName'),
|
|
1950
|
+
placeholder: this.transloco.translate('properties.form.enterEnglishName'),
|
|
1899
1951
|
validators: [new ValidatorConfig({ type: 'required' })],
|
|
1900
1952
|
},
|
|
1901
1953
|
{
|
|
1902
1954
|
key: 'title.ar',
|
|
1903
|
-
label: '
|
|
1904
|
-
placeholder: '
|
|
1955
|
+
label: this.transloco.translate('properties.form.arabicName'),
|
|
1956
|
+
placeholder: this.transloco.translate('properties.form.enterArabicName'),
|
|
1905
1957
|
validators: [new ValidatorConfig({ type: 'required' })],
|
|
1906
1958
|
},
|
|
1907
1959
|
{
|
|
1908
1960
|
key: 'description',
|
|
1909
|
-
label: '
|
|
1961
|
+
label: this.transloco.translate('properties.form.description'),
|
|
1910
1962
|
type: 'textarea',
|
|
1911
1963
|
cssClass: 'md:col-span-2',
|
|
1912
1964
|
},
|
|
@@ -2095,13 +2147,12 @@ class PropertyForm {
|
|
|
2095
2147
|
this.destroyConfigurationComponent();
|
|
2096
2148
|
}
|
|
2097
2149
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: PropertyForm, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2098
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: PropertyForm, isStandalone: true, selector: "mt-property-form", inputs: { propertyId: { classPropertyName: "propertyId", publicName: "propertyId", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "configurationHost", first: true, predicate: ["configurationHost"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<mt-
|
|
2150
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: PropertyForm, isStandalone: true, selector: "mt-property-form", inputs: { propertyId: { classPropertyName: "propertyId", publicName: "propertyId", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "configurationHost", first: true, predicate: ["configurationHost"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<mt-page\n [title]=\"\n propertyId()\n ? ('properties.form.editProperty' | transloco)\n : ('properties.form.createNewProperty' | transloco)\n \"\n avatarIcon=\"custom.user-pp\"\n (backButtonClick)=\"goBack()\"\n backButton\n class=\"h-full\"\n>\n <ng-template #headerEnd>\n <mt-button\n class=\"mx-2\"\n [label]=\"submitLabel()\"\n [icon]=\"isEditing() ? 'custom.pencil' : 'general.plus'\"\n [loading]=\"submitting()\"\n [disabled]=\"submitDisabled() || this.propertyForm.invalid\"\n (click)=\"createOrEditProperty()\"\n />\n </ng-template>\n <div\n [formGroup]=\"propertyForm\"\n class=\"h-full py-4 h-full overflow-y-auto flex justify-center\"\n >\n <div class=\"w-1/2 flex flex-col gap-6\">\n @if (loading()) {\n <!-- Skeleton Loading State -->\n <div class=\"rounded-xl bg-white shadow-sm p-6 space-y-4\">\n <div class=\"flex justify-between items-center gap-6\">\n <p-skeleton width=\"50%\" height=\"3rem\"></p-skeleton>\n <p-skeleton width=\"8rem\" height=\"2.5rem\"></p-skeleton>\n </div>\n </div>\n\n <div class=\"rounded-xl bg-white shadow-sm p-6 space-y-4\">\n <p-skeleton\n width=\"12rem\"\n height=\"1.5rem\"\n styleClass=\"mb-4\"\n ></p-skeleton>\n <div class=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n <p-skeleton height=\"3rem\"></p-skeleton>\n <p-skeleton height=\"3rem\"></p-skeleton>\n <p-skeleton height=\"6rem\" styleClass=\"md:col-span-2\"></p-skeleton>\n <p-skeleton height=\"3rem\" styleClass=\"md:col-span-2\"></p-skeleton>\n </div>\n </div>\n\n <div class=\"rounded-xl bg-white shadow-sm p-6 space-y-4\">\n <p-skeleton\n width=\"10rem\"\n height=\"1.5rem\"\n styleClass=\"mb-4\"\n ></p-skeleton>\n <div class=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n <p-skeleton height=\"3rem\"></p-skeleton>\n <p-skeleton height=\"3rem\"></p-skeleton>\n <p-skeleton height=\"8rem\" styleClass=\"md:col-span-2\"></p-skeleton>\n </div>\n </div>\n } @else {\n <mt-dynamic-form\n [formConfig]=\"dynamicFormConfigMain()\"\n [formControlName]=\"'main'\"\n />\n @if (configurationFormConfig()) {\n <mt-dynamic-form\n formControlName=\"configuration\"\n [formConfig]=\"configurationFormConfig()!\"\n />\n } @else {\n <ng-container #configurationHost></ng-container>\n @if (!configurationComponentExists()) {\n @switch (propertyType()) {\n @case (\"User\") {\n <mt-user-configuration />\n }\n @case (\"Percentage\") {\n <mt-percentage-configuration />\n }\n @case (\"Lookup\") {\n <mt-lookup-configuration />\n }\n @case (\"LookupMultiSelect\") {\n <mt-lookup-configuration />\n }\n @case (\"InternalModule\") {\n <mt-internal-module-configuration />\n }\n @case (\"DynamicList\") {\n <mt-dynamic-list-configuration />\n }\n @case (\"API\") {\n <mt-api-configuration formControlName=\"configuration\" />\n }\n <!-- @case('ViewList') { REMOVED FOR NOW\n <mt-view-list-configuration />\n } -->\n @case (\"Attachment\") {\n <mt-attachment-configuration />\n }\n <!-- @case('ReferenceProperty') { REMOVED FOR NOW\n } -->\n @case (\"EditableListView\") {\n <mt-editable-list-view-configuration />\n }\n @case (\"LookupLog\") {\n <mt-check-list-form-configuration />\n }\n <!-- @case('LookupMatrix') { REMOVED FOR NOW\n <mt-lookup-configuration />\n } -->\n @case (\"Location\") {\n <mt-location-configuration />\n }\n }\n }\n }\n }\n </div>\n </div>\n</mt-page>\n", styles: [""], dependencies: [{ kind: "component", type: Page, selector: "mt-page", inputs: ["backButton", "backButtonIcon", "avatarIcon", "avatarStyle", "avatarShape", "title", "tabs", "activeTab", "contentClass", "id"], outputs: ["backButtonClick", "tabChange"] }, { 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: DynamicForm, selector: "mt-dynamic-form", inputs: ["formConfig"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: ApiConfiguration, selector: "mt-api-configuration" }, { kind: "component", type: CheckListFormConfiguration, selector: "mt-check-list-form-configuration" }, { kind: "component", type: DynamicListConfiguration, selector: "mt-dynamic-list-configuration" }, { kind: "component", type: EditableListViewConfiguration, selector: "mt-editable-list-view-configuration" }, { kind: "component", type: InternalModuleConfiguration, selector: "mt-internal-module-configuration" }, { kind: "component", type: LocationConfiguration, selector: "mt-location-configuration" }, { kind: "component", type: LookupConfiguration, selector: "mt-lookup-configuration" }, { kind: "component", type: PercentageConfiguration, selector: "mt-percentage-configuration" }, { kind: "component", type: UserConfiguration, selector: "mt-user-configuration" }, { kind: "component", type: AttachmentConfiguration, selector: "mt-attachment-configuration" }, { kind: "ngmodule", type: SkeletonModule }, { kind: "component", type: i2.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "shape", "animation", "borderRadius", "size", "width", "height"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "pipe", type: i1.TranslocoPipe, name: "transloco" }] });
|
|
2099
2151
|
}
|
|
2100
2152
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: PropertyForm, decorators: [{
|
|
2101
2153
|
type: Component,
|
|
2102
2154
|
args: [{ selector: 'mt-property-form', imports: [
|
|
2103
|
-
|
|
2104
|
-
Avatar,
|
|
2155
|
+
Page,
|
|
2105
2156
|
Button,
|
|
2106
2157
|
DynamicForm,
|
|
2107
2158
|
ReactiveFormsModule,
|
|
@@ -2116,7 +2167,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImpor
|
|
|
2116
2167
|
UserConfiguration,
|
|
2117
2168
|
AttachmentConfiguration,
|
|
2118
2169
|
SkeletonModule,
|
|
2119
|
-
|
|
2170
|
+
TranslocoModule,
|
|
2171
|
+
], template: "<mt-page\n [title]=\"\n propertyId()\n ? ('properties.form.editProperty' | transloco)\n : ('properties.form.createNewProperty' | transloco)\n \"\n avatarIcon=\"custom.user-pp\"\n (backButtonClick)=\"goBack()\"\n backButton\n class=\"h-full\"\n>\n <ng-template #headerEnd>\n <mt-button\n class=\"mx-2\"\n [label]=\"submitLabel()\"\n [icon]=\"isEditing() ? 'custom.pencil' : 'general.plus'\"\n [loading]=\"submitting()\"\n [disabled]=\"submitDisabled() || this.propertyForm.invalid\"\n (click)=\"createOrEditProperty()\"\n />\n </ng-template>\n <div\n [formGroup]=\"propertyForm\"\n class=\"h-full py-4 h-full overflow-y-auto flex justify-center\"\n >\n <div class=\"w-1/2 flex flex-col gap-6\">\n @if (loading()) {\n <!-- Skeleton Loading State -->\n <div class=\"rounded-xl bg-white shadow-sm p-6 space-y-4\">\n <div class=\"flex justify-between items-center gap-6\">\n <p-skeleton width=\"50%\" height=\"3rem\"></p-skeleton>\n <p-skeleton width=\"8rem\" height=\"2.5rem\"></p-skeleton>\n </div>\n </div>\n\n <div class=\"rounded-xl bg-white shadow-sm p-6 space-y-4\">\n <p-skeleton\n width=\"12rem\"\n height=\"1.5rem\"\n styleClass=\"mb-4\"\n ></p-skeleton>\n <div class=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n <p-skeleton height=\"3rem\"></p-skeleton>\n <p-skeleton height=\"3rem\"></p-skeleton>\n <p-skeleton height=\"6rem\" styleClass=\"md:col-span-2\"></p-skeleton>\n <p-skeleton height=\"3rem\" styleClass=\"md:col-span-2\"></p-skeleton>\n </div>\n </div>\n\n <div class=\"rounded-xl bg-white shadow-sm p-6 space-y-4\">\n <p-skeleton\n width=\"10rem\"\n height=\"1.5rem\"\n styleClass=\"mb-4\"\n ></p-skeleton>\n <div class=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n <p-skeleton height=\"3rem\"></p-skeleton>\n <p-skeleton height=\"3rem\"></p-skeleton>\n <p-skeleton height=\"8rem\" styleClass=\"md:col-span-2\"></p-skeleton>\n </div>\n </div>\n } @else {\n <mt-dynamic-form\n [formConfig]=\"dynamicFormConfigMain()\"\n [formControlName]=\"'main'\"\n />\n @if (configurationFormConfig()) {\n <mt-dynamic-form\n formControlName=\"configuration\"\n [formConfig]=\"configurationFormConfig()!\"\n />\n } @else {\n <ng-container #configurationHost></ng-container>\n @if (!configurationComponentExists()) {\n @switch (propertyType()) {\n @case (\"User\") {\n <mt-user-configuration />\n }\n @case (\"Percentage\") {\n <mt-percentage-configuration />\n }\n @case (\"Lookup\") {\n <mt-lookup-configuration />\n }\n @case (\"LookupMultiSelect\") {\n <mt-lookup-configuration />\n }\n @case (\"InternalModule\") {\n <mt-internal-module-configuration />\n }\n @case (\"DynamicList\") {\n <mt-dynamic-list-configuration />\n }\n @case (\"API\") {\n <mt-api-configuration formControlName=\"configuration\" />\n }\n <!-- @case('ViewList') { REMOVED FOR NOW\n <mt-view-list-configuration />\n } -->\n @case (\"Attachment\") {\n <mt-attachment-configuration />\n }\n <!-- @case('ReferenceProperty') { REMOVED FOR NOW\n } -->\n @case (\"EditableListView\") {\n <mt-editable-list-view-configuration />\n }\n @case (\"LookupLog\") {\n <mt-check-list-form-configuration />\n }\n <!-- @case('LookupMatrix') { REMOVED FOR NOW\n <mt-lookup-configuration />\n } -->\n @case (\"Location\") {\n <mt-location-configuration />\n }\n }\n }\n }\n }\n </div>\n </div>\n</mt-page>\n" }]
|
|
2120
2172
|
}], ctorParameters: () => [], propDecorators: { configurationHost: [{
|
|
2121
2173
|
type: ViewChild,
|
|
2122
2174
|
args: ['configurationHost', { read: ViewContainerRef }]
|