@meshmakers/octo-ui 3.3.1000 → 3.3.1020
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/meshmakers-octo-ui-branding-settings.mjs +2 -2
- package/fesm2022/meshmakers-octo-ui-branding-settings.mjs.map +1 -1
- package/fesm2022/meshmakers-octo-ui.mjs +360 -159
- package/fesm2022/meshmakers-octo-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/types/meshmakers-octo-ui.d.ts +282 -113
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, Component, Injectable, EventEmitter, Output,
|
|
2
|
+
import { inject, Component, Injectable, Input, EventEmitter, Output, ChangeDetectionStrategy, ElementRef, forwardRef, ViewChild, signal, computed, input, model, output, effect, untracked, Directive, InjectionToken, HostListener, makeEnvironmentProviders } from '@angular/core';
|
|
3
3
|
import { provideAnimationsAsync } from '@angular/platform-browser/animations/async';
|
|
4
4
|
import { AttributeSelectorService, AttributeValueTypeDto as AttributeValueTypeDto$1, CkTypeSelectorService, CkTypeAttributeService, GetEntitiesByCkTypeDtoGQL, RuntimeEntitySelectDataSource, RuntimeEntityDialogDataSource, SearchFilterTypesDto, SortOrdersDto, FieldFilterOperatorsDto, GetCkTypesDtoGQL, GetCkModelByIdDtoGQL, LevelMetaData, RtAssociationMetaData, CkTypeMetaData, GraphDirectionDto, AssociationModOptionsDto, GraphQL, DeleteStrategiesDto, CommunicationService, provideOctoServices } from '@meshmakers/octo-services';
|
|
5
5
|
import { Roles, provideMmSharedAuth } from '@meshmakers/shared-auth';
|
|
@@ -677,6 +677,36 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
677
677
|
type: Injectable
|
|
678
678
|
}] });
|
|
679
679
|
|
|
680
|
+
const DEFAULT_CK_TYPE_SELECTOR_DIALOG_MESSAGES = {
|
|
681
|
+
modelFilterLabel: 'Model Filter',
|
|
682
|
+
modelFilterPlaceholder: 'All Models',
|
|
683
|
+
typeSearchLabel: 'Type Search',
|
|
684
|
+
typeSearchPlaceholder: 'Search types...',
|
|
685
|
+
clearFiltersTitle: 'Clear filters',
|
|
686
|
+
columnTypeTitle: 'Type',
|
|
687
|
+
columnBaseTypeTitle: 'Base Type',
|
|
688
|
+
columnDescriptionTitle: 'Description',
|
|
689
|
+
badgeAbstract: 'abstract',
|
|
690
|
+
badgeFinal: 'final',
|
|
691
|
+
selectedLabel: 'Selected:',
|
|
692
|
+
cancel: 'Cancel',
|
|
693
|
+
ok: 'OK',
|
|
694
|
+
defaultDialogTitle: 'Select Construction Kit Type',
|
|
695
|
+
pagerItemsPerPage: 'items per page',
|
|
696
|
+
pagerOf: 'of',
|
|
697
|
+
pagerItems: 'items',
|
|
698
|
+
pagerPage: 'Page',
|
|
699
|
+
pagerFirstPage: 'Go to the first page',
|
|
700
|
+
pagerLastPage: 'Go to the last page',
|
|
701
|
+
pagerPreviousPage: 'Go to the previous page',
|
|
702
|
+
pagerNextPage: 'Go to the next page',
|
|
703
|
+
noRecords: 'No records available.',
|
|
704
|
+
closeTitle: 'Close',
|
|
705
|
+
minimizeTitle: 'Minimize',
|
|
706
|
+
maximizeTitle: 'Maximize',
|
|
707
|
+
restoreTitle: 'Restore',
|
|
708
|
+
};
|
|
709
|
+
|
|
680
710
|
class CkTypeSelectorDialogComponent {
|
|
681
711
|
windowRef = inject(WindowRef);
|
|
682
712
|
ckTypeSelectorService = inject(CkTypeSelectorService);
|
|
@@ -684,8 +714,12 @@ class CkTypeSelectorDialogComponent {
|
|
|
684
714
|
subscriptions = new Subscription();
|
|
685
715
|
searchIcon = searchIcon;
|
|
686
716
|
filterClearIcon = filterClearIcon;
|
|
687
|
-
dialogTitle =
|
|
717
|
+
dialogTitle = DEFAULT_CK_TYPE_SELECTOR_DIALOG_MESSAGES.defaultDialogTitle;
|
|
688
718
|
allowAbstract = true;
|
|
719
|
+
_messages = { ...DEFAULT_CK_TYPE_SELECTOR_DIALOG_MESSAGES };
|
|
720
|
+
set messages(value) {
|
|
721
|
+
this._messages = { ...DEFAULT_CK_TYPE_SELECTOR_DIALOG_MESSAGES, ...(value ?? {}) };
|
|
722
|
+
}
|
|
689
723
|
searchText = '';
|
|
690
724
|
selectedModel = null;
|
|
691
725
|
availableModels = [];
|
|
@@ -705,7 +739,10 @@ class CkTypeSelectorDialogComponent {
|
|
|
705
739
|
data;
|
|
706
740
|
ngOnInit() {
|
|
707
741
|
if (this.data) {
|
|
708
|
-
|
|
742
|
+
if (this.data.messages) {
|
|
743
|
+
this._messages = { ...DEFAULT_CK_TYPE_SELECTOR_DIALOG_MESSAGES, ...this.data.messages };
|
|
744
|
+
}
|
|
745
|
+
this.dialogTitle = this.data.dialogTitle || this._messages.defaultDialogTitle;
|
|
709
746
|
this.allowAbstract = this.data.allowAbstract ?? true;
|
|
710
747
|
this.initialCkModelIds = this.data.ckModelIds;
|
|
711
748
|
this.derivedFromRtCkTypeId = this.data.derivedFromRtCkTypeId;
|
|
@@ -858,28 +895,28 @@ class CkTypeSelectorDialogComponent {
|
|
|
858
895
|
}
|
|
859
896
|
}
|
|
860
897
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CkTypeSelectorDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
861
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: CkTypeSelectorDialogComponent, isStandalone: true, selector: "mm-ck-type-selector-dialog", ngImport: i0, template: `
|
|
898
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: CkTypeSelectorDialogComponent, isStandalone: true, selector: "mm-ck-type-selector-dialog", inputs: { messages: "messages" }, ngImport: i0, template: `
|
|
862
899
|
<div class="ck-type-selector-container">
|
|
863
900
|
<div class="filter-container">
|
|
864
901
|
<div class="filter-row">
|
|
865
902
|
<div class="filter-item" *ngIf="!derivedFromRtCkTypeId">
|
|
866
|
-
<label>
|
|
903
|
+
<label>{{ _messages.modelFilterLabel }}</label>
|
|
867
904
|
<kendo-combobox
|
|
868
905
|
[data]="availableModels"
|
|
869
906
|
[(ngModel)]="selectedModel"
|
|
870
907
|
(valueChange)="onModelFilterChange($event)"
|
|
871
908
|
[allowCustom]="false"
|
|
872
909
|
[clearButton]="true"
|
|
873
|
-
placeholder="
|
|
910
|
+
[placeholder]="_messages.modelFilterPlaceholder"
|
|
874
911
|
class="filter-input">
|
|
875
912
|
</kendo-combobox>
|
|
876
913
|
</div>
|
|
877
914
|
<div class="filter-item flex-grow">
|
|
878
|
-
<label>
|
|
915
|
+
<label>{{ _messages.typeSearchLabel }}</label>
|
|
879
916
|
<kendo-textbox
|
|
880
917
|
[(ngModel)]="searchText"
|
|
881
918
|
(ngModelChange)="onSearchChange($event)"
|
|
882
|
-
placeholder="
|
|
919
|
+
[placeholder]="_messages.typeSearchPlaceholder"
|
|
883
920
|
class="filter-input">
|
|
884
921
|
<ng-template kendoTextBoxSuffixTemplate>
|
|
885
922
|
<button kendoButton [svgIcon]="searchIcon" fillMode="clear" size="small"></button>
|
|
@@ -888,7 +925,7 @@ class CkTypeSelectorDialogComponent {
|
|
|
888
925
|
</div>
|
|
889
926
|
<div class="filter-item filter-actions">
|
|
890
927
|
<label> </label>
|
|
891
|
-
<button kendoButton [svgIcon]="filterClearIcon" (click)="clearFilters()" title="
|
|
928
|
+
<button kendoButton [svgIcon]="filterClearIcon" (click)="clearFilters()" [title]="_messages.clearFiltersTitle"></button>
|
|
892
929
|
</div>
|
|
893
930
|
</div>
|
|
894
931
|
</div>
|
|
@@ -907,38 +944,49 @@ class CkTypeSelectorDialogComponent {
|
|
|
907
944
|
[kendoGridSelectBy]="selectItemBy"
|
|
908
945
|
[(selectedKeys)]="selectedKeys"
|
|
909
946
|
class="type-grid">
|
|
910
|
-
<kendo-grid-column field="rtCkTypeId" title="
|
|
947
|
+
<kendo-grid-column field="rtCkTypeId" [title]="_messages.columnTypeTitle" [width]="300">
|
|
911
948
|
<ng-template kendoGridCellTemplate let-dataItem>
|
|
912
949
|
<span [class.abstract-type]="dataItem.isAbstract" [class.final-type]="dataItem.isFinal">
|
|
913
950
|
{{ dataItem.rtCkTypeId }}
|
|
914
951
|
</span>
|
|
915
|
-
<span *ngIf="dataItem.isAbstract" class="type-badge abstract">
|
|
916
|
-
<span *ngIf="dataItem.isFinal" class="type-badge final">
|
|
952
|
+
<span *ngIf="dataItem.isAbstract" class="type-badge abstract">{{ _messages.badgeAbstract }}</span>
|
|
953
|
+
<span *ngIf="dataItem.isFinal" class="type-badge final">{{ _messages.badgeFinal }}</span>
|
|
917
954
|
</ng-template>
|
|
918
955
|
</kendo-grid-column>
|
|
919
|
-
<kendo-grid-column field="baseTypeRtCkTypeId" title="
|
|
956
|
+
<kendo-grid-column field="baseTypeRtCkTypeId" [title]="_messages.columnBaseTypeTitle" [width]="200">
|
|
920
957
|
<ng-template kendoGridCellTemplate let-dataItem>
|
|
921
958
|
{{ dataItem.baseTypeRtCkTypeId || '-' }}
|
|
922
959
|
</ng-template>
|
|
923
960
|
</kendo-grid-column>
|
|
924
|
-
<kendo-grid-column field="description" title="
|
|
961
|
+
<kendo-grid-column field="description" [title]="_messages.columnDescriptionTitle">
|
|
925
962
|
<ng-template kendoGridCellTemplate let-dataItem>
|
|
926
963
|
{{ dataItem.description || '-' }}
|
|
927
964
|
</ng-template>
|
|
928
965
|
</kendo-grid-column>
|
|
966
|
+
<kendo-grid-messages
|
|
967
|
+
[pagerItemsPerPage]="_messages.pagerItemsPerPage"
|
|
968
|
+
[pagerOf]="_messages.pagerOf"
|
|
969
|
+
[pagerItems]="_messages.pagerItems"
|
|
970
|
+
[pagerPage]="_messages.pagerPage"
|
|
971
|
+
[pagerFirstPage]="_messages.pagerFirstPage"
|
|
972
|
+
[pagerLastPage]="_messages.pagerLastPage"
|
|
973
|
+
[pagerPreviousPage]="_messages.pagerPreviousPage"
|
|
974
|
+
[pagerNextPage]="_messages.pagerNextPage"
|
|
975
|
+
[noRecords]="_messages.noRecords"
|
|
976
|
+
/>
|
|
929
977
|
</kendo-grid>
|
|
930
978
|
</div>
|
|
931
979
|
|
|
932
980
|
<div class="selection-info" *ngIf="selectedType">
|
|
933
|
-
<strong>
|
|
981
|
+
<strong>{{ _messages.selectedLabel }}</strong> {{ selectedType.rtCkTypeId }}
|
|
934
982
|
</div>
|
|
935
983
|
|
|
936
984
|
<div class="dialog-actions">
|
|
937
|
-
<button kendoButton (click)="onCancel()">
|
|
938
|
-
<button kendoButton themeColor="primary" [disabled]="!selectedType || (selectedType.isAbstract && !allowAbstract)" (click)="onConfirm()">
|
|
985
|
+
<button kendoButton (click)="onCancel()">{{ _messages.cancel }}</button>
|
|
986
|
+
<button kendoButton themeColor="primary" [disabled]="!selectedType || (selectedType.isAbstract && !allowAbstract)" (click)="onConfirm()">{{ _messages.ok }}</button>
|
|
939
987
|
</div>
|
|
940
988
|
</div>
|
|
941
|
-
`, isInline: true, styles: [":host{display:flex;flex-direction:column;height:100%}.ck-type-selector-container{display:flex;flex-direction:column;flex:1;min-height:0;padding:20px;box-sizing:border-box;gap:12px}.filter-container{margin-bottom:16px;flex-shrink:0}.filter-row{display:flex;gap:16px;align-items:flex-end}.filter-item{display:flex;flex-direction:column;gap:4px}.filter-item label{font-size:12px;font-weight:500}.filter-item.flex-grow{flex:1}.filter-item.filter-actions{flex-shrink:0}.filter-input{min-width:180px}.grid-container{flex:1;min-height:0;display:flex;flex-direction:column}.grid-container kendo-grid,.grid-container .type-grid{flex:1;min-height:200px}.type-grid{border-radius:4px}.type-grid ::ng-deep .k-grid-table tbody tr{cursor:pointer}.abstract-type{font-style:italic;opacity:.7}.final-type{font-weight:600}.type-badge{display:inline-block;font-size:10px;padding:1px 6px;border-radius:10px;margin-left:8px;text-transform:uppercase}.type-badge.abstract{background-color:var(--kendo-color-warning, #ffc107);color:var(--kendo-color-on-warning, #000);opacity:.8}.type-badge.final{background-color:var(--kendo-color-success, #28a745);color:var(--kendo-color-on-success, #fff);opacity:.8}.selection-info{margin-top:12px;padding:8px 12px;background:var(--kendo-color-success-subtle, #d4edda);border:1px solid var(--kendo-color-success, #28a745);border-radius:4px;font-size:14px;flex-shrink:0}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;padding:8px 20px 0;flex-shrink:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: GridModule }, { kind: "component", type: i3.GridComponent, selector: "kendo-grid", inputs: ["data", "pageSize", "height", "rowHeight", "adaptiveMode", "detailRowHeight", "skip", "scrollable", "selectable", "sort", "size", "trackBy", "filter", "group", "virtualColumns", "filterable", "sortable", "pageable", "groupable", "gridResizable", "rowReorderable", "navigable", "autoSize", "rowClass", "rowSticky", "rowSelected", "isRowSelectable", "cellSelected", "resizable", "reorderable", "loading", "columnMenu", "hideHeader", "showInactiveTools", "isDetailExpanded", "isGroupExpanded", "dataLayoutMode"], outputs: ["filterChange", "pageChange", "groupChange", "sortChange", "selectionChange", "rowReorder", "dataStateChange", "gridStateChange", "groupExpand", "groupCollapse", "detailExpand", "detailCollapse", "edit", "cancel", "save", "remove", "add", "cellClose", "cellClick", "pdfExport", "excelExport", "columnResize", "columnReorder", "columnVisibilityChange", "columnLockedChange", "columnStickyChange", "scrollBottom", "contentScroll"], exportAs: ["kendoGrid"] }, { kind: "directive", type: i3.SelectionDirective, selector: "[kendoGridSelectBy]" }, { kind: "component", type: i3.ColumnComponent, selector: "kendo-grid-column", inputs: ["field", "format", "sortable", "groupable", "editor", "filter", "filterVariant", "filterable", "editable"] }, { kind: "directive", type: i3.CellTemplateDirective, selector: "[kendoGridCellTemplate]" }, { kind: "ngmodule", type: ButtonsModule }, { kind: "component", type: i1$1.ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "ngmodule", type: InputsModule }, { kind: "component", type: i5.TextBoxComponent, selector: "kendo-textbox", inputs: ["focusableId", "title", "type", "disabled", "readonly", "tabindex", "value", "selectOnFocus", "showSuccessIcon", "showErrorIcon", "clearButton", "successIcon", "successSvgIcon", "errorIcon", "errorSvgIcon", "clearButtonIcon", "clearButtonSvgIcon", "size", "rounded", "fillMode", "tabIndex", "placeholder", "maxlength", "inputAttributes"], outputs: ["valueChange", "inputFocus", "inputBlur", "focus", "blur"], exportAs: ["kendoTextBox"] }, { kind: "directive", type: i5.TextBoxSuffixTemplateDirective, selector: "[kendoTextBoxSuffixTemplate]", inputs: ["showSeparator"] }, { kind: "ngmodule", type: DropDownsModule }, { kind: "component", type: i3$1.ComboBoxComponent, selector: "kendo-combobox", inputs: ["icon", "svgIcon", "inputAttributes", "showStickyHeader", "focusableId", "allowCustom", "data", "value", "textField", "valueField", "valuePrimitive", "valueNormalizer", "placeholder", "adaptiveMode", "adaptiveTitle", "adaptiveSubtitle", "popupSettings", "listHeight", "loading", "suggest", "clearButton", "disabled", "itemDisabled", "readonly", "tabindex", "tabIndex", "filterable", "virtual", "size", "rounded", "fillMode"], outputs: ["valueChange", "selectionChange", "filterChange", "open", "opened", "close", "closed", "focus", "blur", "inputFocus", "inputBlur", "escape"], exportAs: ["kendoComboBox"] }, { kind: "ngmodule", type: IconsModule }, { kind: "ngmodule", type: LoaderModule }, { kind: "ngmodule", type: WindowModule }] });
|
|
989
|
+
`, isInline: true, styles: [":host{display:flex;flex-direction:column;height:100%}.ck-type-selector-container{display:flex;flex-direction:column;flex:1;min-height:0;padding:20px;box-sizing:border-box;gap:12px}.filter-container{margin-bottom:16px;flex-shrink:0}.filter-row{display:flex;gap:16px;align-items:flex-end}.filter-item{display:flex;flex-direction:column;gap:4px}.filter-item label{font-size:12px;font-weight:500}.filter-item.flex-grow{flex:1}.filter-item.filter-actions{flex-shrink:0}.filter-input{min-width:180px}.grid-container{flex:1;min-height:0;display:flex;flex-direction:column}.grid-container kendo-grid,.grid-container .type-grid{flex:1;min-height:200px}.type-grid{border-radius:4px}.type-grid ::ng-deep .k-grid-table tbody tr{cursor:pointer}.abstract-type{font-style:italic;opacity:.7}.final-type{font-weight:600}.type-badge{display:inline-block;font-size:10px;padding:1px 6px;border-radius:10px;margin-left:8px;text-transform:uppercase}.type-badge.abstract{background-color:var(--kendo-color-warning, #ffc107);color:var(--kendo-color-on-warning, #000);opacity:.8}.type-badge.final{background-color:var(--kendo-color-success, #28a745);color:var(--kendo-color-on-success, #fff);opacity:.8}.selection-info{margin-top:12px;padding:8px 12px;background:var(--kendo-color-success-subtle, #d4edda);border:1px solid var(--kendo-color-success, #28a745);border-radius:4px;font-size:14px;flex-shrink:0}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;padding:8px 20px 0;flex-shrink:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: GridModule }, { kind: "component", type: i3.GridComponent, selector: "kendo-grid", inputs: ["data", "pageSize", "height", "rowHeight", "adaptiveMode", "detailRowHeight", "skip", "scrollable", "selectable", "sort", "size", "trackBy", "filter", "group", "virtualColumns", "filterable", "sortable", "pageable", "groupable", "gridResizable", "rowReorderable", "navigable", "autoSize", "rowClass", "rowSticky", "rowSelected", "isRowSelectable", "cellSelected", "resizable", "reorderable", "loading", "columnMenu", "hideHeader", "showInactiveTools", "isDetailExpanded", "isGroupExpanded", "dataLayoutMode"], outputs: ["filterChange", "pageChange", "groupChange", "sortChange", "selectionChange", "rowReorder", "dataStateChange", "gridStateChange", "groupExpand", "groupCollapse", "detailExpand", "detailCollapse", "edit", "cancel", "save", "remove", "add", "cellClose", "cellClick", "pdfExport", "excelExport", "columnResize", "columnReorder", "columnVisibilityChange", "columnLockedChange", "columnStickyChange", "scrollBottom", "contentScroll"], exportAs: ["kendoGrid"] }, { kind: "directive", type: i3.SelectionDirective, selector: "[kendoGridSelectBy]" }, { kind: "component", type: i3.CustomMessagesComponent, selector: "kendo-grid-messages" }, { kind: "component", type: i3.ColumnComponent, selector: "kendo-grid-column", inputs: ["field", "format", "sortable", "groupable", "editor", "filter", "filterVariant", "filterable", "editable"] }, { kind: "directive", type: i3.CellTemplateDirective, selector: "[kendoGridCellTemplate]" }, { kind: "ngmodule", type: ButtonsModule }, { kind: "component", type: i1$1.ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "ngmodule", type: InputsModule }, { kind: "component", type: i5.TextBoxComponent, selector: "kendo-textbox", inputs: ["focusableId", "title", "type", "disabled", "readonly", "tabindex", "value", "selectOnFocus", "showSuccessIcon", "showErrorIcon", "clearButton", "successIcon", "successSvgIcon", "errorIcon", "errorSvgIcon", "clearButtonIcon", "clearButtonSvgIcon", "size", "rounded", "fillMode", "tabIndex", "placeholder", "maxlength", "inputAttributes"], outputs: ["valueChange", "inputFocus", "inputBlur", "focus", "blur"], exportAs: ["kendoTextBox"] }, { kind: "directive", type: i5.TextBoxSuffixTemplateDirective, selector: "[kendoTextBoxSuffixTemplate]", inputs: ["showSeparator"] }, { kind: "ngmodule", type: DropDownsModule }, { kind: "component", type: i3$1.ComboBoxComponent, selector: "kendo-combobox", inputs: ["icon", "svgIcon", "inputAttributes", "showStickyHeader", "focusableId", "allowCustom", "data", "value", "textField", "valueField", "valuePrimitive", "valueNormalizer", "placeholder", "adaptiveMode", "adaptiveTitle", "adaptiveSubtitle", "popupSettings", "listHeight", "loading", "suggest", "clearButton", "disabled", "itemDisabled", "readonly", "tabindex", "tabIndex", "filterable", "virtual", "size", "rounded", "fillMode"], outputs: ["valueChange", "selectionChange", "filterChange", "open", "opened", "close", "closed", "focus", "blur", "inputFocus", "inputBlur", "escape"], exportAs: ["kendoComboBox"] }, { kind: "ngmodule", type: IconsModule }, { kind: "ngmodule", type: LoaderModule }, { kind: "ngmodule", type: WindowModule }] });
|
|
942
990
|
}
|
|
943
991
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CkTypeSelectorDialogComponent, decorators: [{
|
|
944
992
|
type: Component,
|
|
@@ -957,23 +1005,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
957
1005
|
<div class="filter-container">
|
|
958
1006
|
<div class="filter-row">
|
|
959
1007
|
<div class="filter-item" *ngIf="!derivedFromRtCkTypeId">
|
|
960
|
-
<label>
|
|
1008
|
+
<label>{{ _messages.modelFilterLabel }}</label>
|
|
961
1009
|
<kendo-combobox
|
|
962
1010
|
[data]="availableModels"
|
|
963
1011
|
[(ngModel)]="selectedModel"
|
|
964
1012
|
(valueChange)="onModelFilterChange($event)"
|
|
965
1013
|
[allowCustom]="false"
|
|
966
1014
|
[clearButton]="true"
|
|
967
|
-
placeholder="
|
|
1015
|
+
[placeholder]="_messages.modelFilterPlaceholder"
|
|
968
1016
|
class="filter-input">
|
|
969
1017
|
</kendo-combobox>
|
|
970
1018
|
</div>
|
|
971
1019
|
<div class="filter-item flex-grow">
|
|
972
|
-
<label>
|
|
1020
|
+
<label>{{ _messages.typeSearchLabel }}</label>
|
|
973
1021
|
<kendo-textbox
|
|
974
1022
|
[(ngModel)]="searchText"
|
|
975
1023
|
(ngModelChange)="onSearchChange($event)"
|
|
976
|
-
placeholder="
|
|
1024
|
+
[placeholder]="_messages.typeSearchPlaceholder"
|
|
977
1025
|
class="filter-input">
|
|
978
1026
|
<ng-template kendoTextBoxSuffixTemplate>
|
|
979
1027
|
<button kendoButton [svgIcon]="searchIcon" fillMode="clear" size="small"></button>
|
|
@@ -982,7 +1030,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
982
1030
|
</div>
|
|
983
1031
|
<div class="filter-item filter-actions">
|
|
984
1032
|
<label> </label>
|
|
985
|
-
<button kendoButton [svgIcon]="filterClearIcon" (click)="clearFilters()" title="
|
|
1033
|
+
<button kendoButton [svgIcon]="filterClearIcon" (click)="clearFilters()" [title]="_messages.clearFiltersTitle"></button>
|
|
986
1034
|
</div>
|
|
987
1035
|
</div>
|
|
988
1036
|
</div>
|
|
@@ -1001,57 +1049,81 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
1001
1049
|
[kendoGridSelectBy]="selectItemBy"
|
|
1002
1050
|
[(selectedKeys)]="selectedKeys"
|
|
1003
1051
|
class="type-grid">
|
|
1004
|
-
<kendo-grid-column field="rtCkTypeId" title="
|
|
1052
|
+
<kendo-grid-column field="rtCkTypeId" [title]="_messages.columnTypeTitle" [width]="300">
|
|
1005
1053
|
<ng-template kendoGridCellTemplate let-dataItem>
|
|
1006
1054
|
<span [class.abstract-type]="dataItem.isAbstract" [class.final-type]="dataItem.isFinal">
|
|
1007
1055
|
{{ dataItem.rtCkTypeId }}
|
|
1008
1056
|
</span>
|
|
1009
|
-
<span *ngIf="dataItem.isAbstract" class="type-badge abstract">
|
|
1010
|
-
<span *ngIf="dataItem.isFinal" class="type-badge final">
|
|
1057
|
+
<span *ngIf="dataItem.isAbstract" class="type-badge abstract">{{ _messages.badgeAbstract }}</span>
|
|
1058
|
+
<span *ngIf="dataItem.isFinal" class="type-badge final">{{ _messages.badgeFinal }}</span>
|
|
1011
1059
|
</ng-template>
|
|
1012
1060
|
</kendo-grid-column>
|
|
1013
|
-
<kendo-grid-column field="baseTypeRtCkTypeId" title="
|
|
1061
|
+
<kendo-grid-column field="baseTypeRtCkTypeId" [title]="_messages.columnBaseTypeTitle" [width]="200">
|
|
1014
1062
|
<ng-template kendoGridCellTemplate let-dataItem>
|
|
1015
1063
|
{{ dataItem.baseTypeRtCkTypeId || '-' }}
|
|
1016
1064
|
</ng-template>
|
|
1017
1065
|
</kendo-grid-column>
|
|
1018
|
-
<kendo-grid-column field="description" title="
|
|
1066
|
+
<kendo-grid-column field="description" [title]="_messages.columnDescriptionTitle">
|
|
1019
1067
|
<ng-template kendoGridCellTemplate let-dataItem>
|
|
1020
1068
|
{{ dataItem.description || '-' }}
|
|
1021
1069
|
</ng-template>
|
|
1022
1070
|
</kendo-grid-column>
|
|
1071
|
+
<kendo-grid-messages
|
|
1072
|
+
[pagerItemsPerPage]="_messages.pagerItemsPerPage"
|
|
1073
|
+
[pagerOf]="_messages.pagerOf"
|
|
1074
|
+
[pagerItems]="_messages.pagerItems"
|
|
1075
|
+
[pagerPage]="_messages.pagerPage"
|
|
1076
|
+
[pagerFirstPage]="_messages.pagerFirstPage"
|
|
1077
|
+
[pagerLastPage]="_messages.pagerLastPage"
|
|
1078
|
+
[pagerPreviousPage]="_messages.pagerPreviousPage"
|
|
1079
|
+
[pagerNextPage]="_messages.pagerNextPage"
|
|
1080
|
+
[noRecords]="_messages.noRecords"
|
|
1081
|
+
/>
|
|
1023
1082
|
</kendo-grid>
|
|
1024
1083
|
</div>
|
|
1025
1084
|
|
|
1026
1085
|
<div class="selection-info" *ngIf="selectedType">
|
|
1027
|
-
<strong>
|
|
1086
|
+
<strong>{{ _messages.selectedLabel }}</strong> {{ selectedType.rtCkTypeId }}
|
|
1028
1087
|
</div>
|
|
1029
1088
|
|
|
1030
1089
|
<div class="dialog-actions">
|
|
1031
|
-
<button kendoButton (click)="onCancel()">
|
|
1032
|
-
<button kendoButton themeColor="primary" [disabled]="!selectedType || (selectedType.isAbstract && !allowAbstract)" (click)="onConfirm()">
|
|
1090
|
+
<button kendoButton (click)="onCancel()">{{ _messages.cancel }}</button>
|
|
1091
|
+
<button kendoButton themeColor="primary" [disabled]="!selectedType || (selectedType.isAbstract && !allowAbstract)" (click)="onConfirm()">{{ _messages.ok }}</button>
|
|
1033
1092
|
</div>
|
|
1034
1093
|
</div>
|
|
1035
1094
|
`, styles: [":host{display:flex;flex-direction:column;height:100%}.ck-type-selector-container{display:flex;flex-direction:column;flex:1;min-height:0;padding:20px;box-sizing:border-box;gap:12px}.filter-container{margin-bottom:16px;flex-shrink:0}.filter-row{display:flex;gap:16px;align-items:flex-end}.filter-item{display:flex;flex-direction:column;gap:4px}.filter-item label{font-size:12px;font-weight:500}.filter-item.flex-grow{flex:1}.filter-item.filter-actions{flex-shrink:0}.filter-input{min-width:180px}.grid-container{flex:1;min-height:0;display:flex;flex-direction:column}.grid-container kendo-grid,.grid-container .type-grid{flex:1;min-height:200px}.type-grid{border-radius:4px}.type-grid ::ng-deep .k-grid-table tbody tr{cursor:pointer}.abstract-type{font-style:italic;opacity:.7}.final-type{font-weight:600}.type-badge{display:inline-block;font-size:10px;padding:1px 6px;border-radius:10px;margin-left:8px;text-transform:uppercase}.type-badge.abstract{background-color:var(--kendo-color-warning, #ffc107);color:var(--kendo-color-on-warning, #000);opacity:.8}.type-badge.final{background-color:var(--kendo-color-success, #28a745);color:var(--kendo-color-on-success, #fff);opacity:.8}.selection-info{margin-top:12px;padding:8px 12px;background:var(--kendo-color-success-subtle, #d4edda);border:1px solid var(--kendo-color-success, #28a745);border-radius:4px;font-size:14px;flex-shrink:0}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;padding:8px 20px 0;flex-shrink:0}\n"] }]
|
|
1036
|
-
}]
|
|
1095
|
+
}], propDecorators: { messages: [{
|
|
1096
|
+
type: Input
|
|
1097
|
+
}] } });
|
|
1037
1098
|
|
|
1038
1099
|
class CkTypeSelectorDialogService {
|
|
1039
1100
|
windowService = inject(WindowService);
|
|
1040
1101
|
windowStateService = inject(WindowStateService);
|
|
1041
|
-
|
|
1042
|
-
* Opens the CkType selector dialog
|
|
1043
|
-
* @param options Dialog options
|
|
1044
|
-
* @returns Promise that resolves with the result containing selected CkType and confirmation status
|
|
1045
|
-
*/
|
|
1102
|
+
defaultMessages;
|
|
1046
1103
|
async openCkTypeSelector(options = {}) {
|
|
1104
|
+
const effectiveMessages = options.messages ?? this.defaultMessages;
|
|
1047
1105
|
const data = {
|
|
1048
1106
|
selectedCkTypeId: options.selectedCkTypeId,
|
|
1049
1107
|
ckModelIds: options.ckModelIds,
|
|
1050
1108
|
dialogTitle: options.dialogTitle,
|
|
1051
1109
|
allowAbstract: options.allowAbstract,
|
|
1052
|
-
derivedFromRtCkTypeId: options.derivedFromRtCkTypeId
|
|
1110
|
+
derivedFromRtCkTypeId: options.derivedFromRtCkTypeId,
|
|
1111
|
+
...(effectiveMessages ? { messages: effectiveMessages } : {}),
|
|
1053
1112
|
};
|
|
1054
1113
|
const size = this.windowStateService.resolveWindowSize('ck-type-selector', { width: 900, height: 650 });
|
|
1114
|
+
const defaultTitle = effectiveMessages?.defaultDialogTitle ??
|
|
1115
|
+
DEFAULT_CK_TYPE_SELECTOR_DIALOG_MESSAGES.defaultDialogTitle;
|
|
1116
|
+
// Forward titlebar tooltips through WindowSettings.messages — Kendo's
|
|
1117
|
+
// Window reads them on open. <kendo-window-messages> in projected content
|
|
1118
|
+
// is out of reach for its ContentChild query.
|
|
1119
|
+
const windowMessages = effectiveMessages
|
|
1120
|
+
? {
|
|
1121
|
+
closeTitle: effectiveMessages.closeTitle,
|
|
1122
|
+
minimizeTitle: effectiveMessages.minimizeTitle,
|
|
1123
|
+
maximizeTitle: effectiveMessages.maximizeTitle,
|
|
1124
|
+
restoreTitle: effectiveMessages.restoreTitle,
|
|
1125
|
+
}
|
|
1126
|
+
: undefined;
|
|
1055
1127
|
const windowRef = this.windowService.open({
|
|
1056
1128
|
content: CkTypeSelectorDialogComponent,
|
|
1057
1129
|
width: size.width,
|
|
@@ -1059,7 +1131,8 @@ class CkTypeSelectorDialogService {
|
|
|
1059
1131
|
minWidth: 750,
|
|
1060
1132
|
minHeight: 550,
|
|
1061
1133
|
resizable: true,
|
|
1062
|
-
title: options.dialogTitle ||
|
|
1134
|
+
title: options.dialogTitle || defaultTitle,
|
|
1135
|
+
messages: windowMessages,
|
|
1063
1136
|
});
|
|
1064
1137
|
this.windowStateService.applyModalBehavior('ck-type-selector', windowRef);
|
|
1065
1138
|
// Pass data to the component
|
|
@@ -1151,6 +1224,14 @@ var DefaultPropertyCategory;
|
|
|
1151
1224
|
DefaultPropertyCategory["Metadata"] = "Metadata";
|
|
1152
1225
|
})(DefaultPropertyCategory || (DefaultPropertyCategory = {}));
|
|
1153
1226
|
|
|
1227
|
+
const DEFAULT_PROPERTY_GRID_MESSAGES = {
|
|
1228
|
+
searchPlaceholder: 'Search attributes...',
|
|
1229
|
+
columnPropertyTitle: 'Property',
|
|
1230
|
+
columnValueTitle: 'Value',
|
|
1231
|
+
columnTypeTitle: 'Type',
|
|
1232
|
+
readOnlyTooltip: 'Read-only',
|
|
1233
|
+
};
|
|
1234
|
+
|
|
1154
1235
|
/**
|
|
1155
1236
|
* Service for converting various data structures to PropertyGridItem format.
|
|
1156
1237
|
* Uses Construction Kit (CK) type definitions for accurate attribute type resolution.
|
|
@@ -2734,6 +2815,10 @@ class PropertyGridComponent {
|
|
|
2734
2815
|
data = [];
|
|
2735
2816
|
config = {};
|
|
2736
2817
|
showTypeColumn = false;
|
|
2818
|
+
_messages = { ...DEFAULT_PROPERTY_GRID_MESSAGES };
|
|
2819
|
+
set messages(value) {
|
|
2820
|
+
this._messages = { ...DEFAULT_PROPERTY_GRID_MESSAGES, ...(value ?? {}) };
|
|
2821
|
+
}
|
|
2737
2822
|
propertyChange = new EventEmitter();
|
|
2738
2823
|
saveRequested = new EventEmitter();
|
|
2739
2824
|
binaryDownload = new EventEmitter();
|
|
@@ -2870,14 +2955,14 @@ class PropertyGridComponent {
|
|
|
2870
2955
|
this.binaryDownload.emit(event);
|
|
2871
2956
|
}
|
|
2872
2957
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: PropertyGridComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2873
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: PropertyGridComponent, isStandalone: true, selector: "mm-property-grid", inputs: { data: "data", config: "config", showTypeColumn: "showTypeColumn" }, outputs: { propertyChange: "propertyChange", saveRequested: "saveRequested", binaryDownload: "binaryDownload" }, usesOnChanges: true, ngImport: i0, template: `
|
|
2958
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: PropertyGridComponent, isStandalone: true, selector: "mm-property-grid", inputs: { data: "data", config: "config", showTypeColumn: "showTypeColumn", messages: "messages" }, outputs: { propertyChange: "propertyChange", saveRequested: "saveRequested", binaryDownload: "binaryDownload" }, usesOnChanges: true, ngImport: i0, template: `
|
|
2874
2959
|
<div class="mm-property-grid" [style.height]="config.height || '400px'">
|
|
2875
2960
|
|
|
2876
2961
|
@if (config.showSearch) {
|
|
2877
2962
|
<div class="search-toolbar">
|
|
2878
2963
|
<kendo-textbox
|
|
2879
2964
|
[(ngModel)]="searchTerm"
|
|
2880
|
-
placeholder="
|
|
2965
|
+
[placeholder]="_messages.searchPlaceholder"
|
|
2881
2966
|
(input)="onSearch()"
|
|
2882
2967
|
[clearButton]="true">
|
|
2883
2968
|
</kendo-textbox>
|
|
@@ -2895,7 +2980,7 @@ class PropertyGridComponent {
|
|
|
2895
2980
|
<!-- Property Name Column -->
|
|
2896
2981
|
<kendo-grid-column
|
|
2897
2982
|
field="displayName"
|
|
2898
|
-
title="
|
|
2983
|
+
[title]="_messages.columnPropertyTitle"
|
|
2899
2984
|
[width]="200"
|
|
2900
2985
|
[sortable]="true">
|
|
2901
2986
|
<ng-template kendoGridCellTemplate let-dataItem="dataItem">
|
|
@@ -2914,7 +2999,7 @@ class PropertyGridComponent {
|
|
|
2914
2999
|
<span class="required-indicator">*</span>
|
|
2915
3000
|
}
|
|
2916
3001
|
@if (dataItem.readOnly) {
|
|
2917
|
-
<span class="readonly-indicator" title="
|
|
3002
|
+
<span class="readonly-indicator" [title]="_messages.readOnlyTooltip">🔒</span>
|
|
2918
3003
|
}
|
|
2919
3004
|
</div>
|
|
2920
3005
|
</div>
|
|
@@ -2924,7 +3009,7 @@ class PropertyGridComponent {
|
|
|
2924
3009
|
<!-- Property Value Column -->
|
|
2925
3010
|
<kendo-grid-column
|
|
2926
3011
|
field="value"
|
|
2927
|
-
title="
|
|
3012
|
+
[title]="_messages.columnValueTitle"
|
|
2928
3013
|
[sortable]="false">
|
|
2929
3014
|
<ng-template kendoGridCellTemplate let-dataItem="dataItem">
|
|
2930
3015
|
<mm-property-value-display
|
|
@@ -2940,7 +3025,7 @@ class PropertyGridComponent {
|
|
|
2940
3025
|
@if (showTypeColumn) {
|
|
2941
3026
|
<kendo-grid-column
|
|
2942
3027
|
field="type"
|
|
2943
|
-
title="
|
|
3028
|
+
[title]="_messages.columnTypeTitle"
|
|
2944
3029
|
[width]="120"
|
|
2945
3030
|
[sortable]="true">
|
|
2946
3031
|
<ng-template kendoGridCellTemplate let-dataItem="dataItem">
|
|
@@ -2973,7 +3058,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
2973
3058
|
<div class="search-toolbar">
|
|
2974
3059
|
<kendo-textbox
|
|
2975
3060
|
[(ngModel)]="searchTerm"
|
|
2976
|
-
placeholder="
|
|
3061
|
+
[placeholder]="_messages.searchPlaceholder"
|
|
2977
3062
|
(input)="onSearch()"
|
|
2978
3063
|
[clearButton]="true">
|
|
2979
3064
|
</kendo-textbox>
|
|
@@ -2991,7 +3076,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
2991
3076
|
<!-- Property Name Column -->
|
|
2992
3077
|
<kendo-grid-column
|
|
2993
3078
|
field="displayName"
|
|
2994
|
-
title="
|
|
3079
|
+
[title]="_messages.columnPropertyTitle"
|
|
2995
3080
|
[width]="200"
|
|
2996
3081
|
[sortable]="true">
|
|
2997
3082
|
<ng-template kendoGridCellTemplate let-dataItem="dataItem">
|
|
@@ -3010,7 +3095,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
3010
3095
|
<span class="required-indicator">*</span>
|
|
3011
3096
|
}
|
|
3012
3097
|
@if (dataItem.readOnly) {
|
|
3013
|
-
<span class="readonly-indicator" title="
|
|
3098
|
+
<span class="readonly-indicator" [title]="_messages.readOnlyTooltip">🔒</span>
|
|
3014
3099
|
}
|
|
3015
3100
|
</div>
|
|
3016
3101
|
</div>
|
|
@@ -3020,7 +3105,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
3020
3105
|
<!-- Property Value Column -->
|
|
3021
3106
|
<kendo-grid-column
|
|
3022
3107
|
field="value"
|
|
3023
|
-
title="
|
|
3108
|
+
[title]="_messages.columnValueTitle"
|
|
3024
3109
|
[sortable]="false">
|
|
3025
3110
|
<ng-template kendoGridCellTemplate let-dataItem="dataItem">
|
|
3026
3111
|
<mm-property-value-display
|
|
@@ -3036,7 +3121,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
3036
3121
|
@if (showTypeColumn) {
|
|
3037
3122
|
<kendo-grid-column
|
|
3038
3123
|
field="type"
|
|
3039
|
-
title="
|
|
3124
|
+
[title]="_messages.columnTypeTitle"
|
|
3040
3125
|
[width]="120"
|
|
3041
3126
|
[sortable]="true">
|
|
3042
3127
|
<ng-template kendoGridCellTemplate let-dataItem="dataItem">
|
|
@@ -3056,6 +3141,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
3056
3141
|
type: Input
|
|
3057
3142
|
}], showTypeColumn: [{
|
|
3058
3143
|
type: Input
|
|
3144
|
+
}], messages: [{
|
|
3145
|
+
type: Input
|
|
3059
3146
|
}], propertyChange: [{
|
|
3060
3147
|
type: Output
|
|
3061
3148
|
}], saveRequested: [{
|
|
@@ -3066,17 +3153,45 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
3066
3153
|
|
|
3067
3154
|
// Models
|
|
3068
3155
|
|
|
3156
|
+
const DEFAULT_CK_TYPE_SELECTOR_INPUT_MESSAGES = {
|
|
3157
|
+
placeholder: 'Select a CK type...',
|
|
3158
|
+
noTypesFound: 'No types found for "{0}"',
|
|
3159
|
+
minCharactersHint: 'Type at least {0} characters to search...',
|
|
3160
|
+
advancedSearchLabel: 'Advanced Search...',
|
|
3161
|
+
defaultDialogTitle: 'Select Construction Kit Type',
|
|
3162
|
+
};
|
|
3163
|
+
|
|
3069
3164
|
class CkTypeSelectorInputComponent {
|
|
3070
3165
|
autocomplete;
|
|
3071
|
-
placeholder =
|
|
3166
|
+
placeholder = DEFAULT_CK_TYPE_SELECTOR_INPUT_MESSAGES.placeholder;
|
|
3072
3167
|
minSearchLength = 2;
|
|
3073
3168
|
maxResults = 50;
|
|
3074
3169
|
debounceMs = 300;
|
|
3075
3170
|
ckModelIds;
|
|
3076
3171
|
allowAbstract = true;
|
|
3077
|
-
dialogTitle =
|
|
3078
|
-
advancedSearchLabel =
|
|
3172
|
+
dialogTitle = DEFAULT_CK_TYPE_SELECTOR_INPUT_MESSAGES.defaultDialogTitle;
|
|
3173
|
+
advancedSearchLabel = DEFAULT_CK_TYPE_SELECTOR_INPUT_MESSAGES.advancedSearchLabel;
|
|
3079
3174
|
derivedFromRtCkTypeId;
|
|
3175
|
+
_messages = { ...DEFAULT_CK_TYPE_SELECTOR_INPUT_MESSAGES };
|
|
3176
|
+
set messages(value) {
|
|
3177
|
+
this._messages = { ...DEFAULT_CK_TYPE_SELECTOR_INPUT_MESSAGES, ...(value ?? {}) };
|
|
3178
|
+
if (this.placeholder === DEFAULT_CK_TYPE_SELECTOR_INPUT_MESSAGES.placeholder) {
|
|
3179
|
+
this.placeholder = this._messages.placeholder;
|
|
3180
|
+
}
|
|
3181
|
+
if (this.advancedSearchLabel === DEFAULT_CK_TYPE_SELECTOR_INPUT_MESSAGES.advancedSearchLabel) {
|
|
3182
|
+
this.advancedSearchLabel = this._messages.advancedSearchLabel;
|
|
3183
|
+
}
|
|
3184
|
+
if (this.dialogTitle === DEFAULT_CK_TYPE_SELECTOR_INPUT_MESSAGES.defaultDialogTitle) {
|
|
3185
|
+
this.dialogTitle = this._messages.defaultDialogTitle;
|
|
3186
|
+
}
|
|
3187
|
+
}
|
|
3188
|
+
dialogMessages;
|
|
3189
|
+
formatNoTypesFound(searchValue) {
|
|
3190
|
+
return this._messages.noTypesFound.replace('{0}', searchValue);
|
|
3191
|
+
}
|
|
3192
|
+
formatMinCharactersHint(minLength) {
|
|
3193
|
+
return this._messages.minCharactersHint.replace('{0}', String(minLength));
|
|
3194
|
+
}
|
|
3080
3195
|
_disabled = false;
|
|
3081
3196
|
get disabled() {
|
|
3082
3197
|
return this._disabled;
|
|
@@ -3316,19 +3431,23 @@ class CkTypeSelectorInputComponent {
|
|
|
3316
3431
|
return;
|
|
3317
3432
|
}
|
|
3318
3433
|
this.autocomplete.toggle(false);
|
|
3319
|
-
const
|
|
3434
|
+
const openOptions = {
|
|
3320
3435
|
selectedCkTypeId: this.selectedCkType?.fullName,
|
|
3321
3436
|
ckModelIds: this.ckModelIds,
|
|
3322
3437
|
dialogTitle: this.dialogTitle,
|
|
3323
3438
|
allowAbstract: this.allowAbstract,
|
|
3324
|
-
derivedFromRtCkTypeId: this.derivedFromRtCkTypeId
|
|
3325
|
-
}
|
|
3439
|
+
derivedFromRtCkTypeId: this.derivedFromRtCkTypeId,
|
|
3440
|
+
};
|
|
3441
|
+
if (this.dialogMessages) {
|
|
3442
|
+
openOptions.messages = this.dialogMessages;
|
|
3443
|
+
}
|
|
3444
|
+
const result = await this.dialogService.openCkTypeSelector(openOptions);
|
|
3326
3445
|
if (result.confirmed && result.selectedCkType) {
|
|
3327
3446
|
this.selectCkType(result.selectedCkType);
|
|
3328
3447
|
}
|
|
3329
3448
|
}
|
|
3330
3449
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CkTypeSelectorInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3331
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: CkTypeSelectorInputComponent, isStandalone: true, selector: "mm-ck-type-selector-input", inputs: { placeholder: "placeholder", minSearchLength: "minSearchLength", maxResults: "maxResults", debounceMs: "debounceMs", ckModelIds: "ckModelIds", allowAbstract: "allowAbstract", dialogTitle: "dialogTitle", advancedSearchLabel: "advancedSearchLabel", derivedFromRtCkTypeId: "derivedFromRtCkTypeId", disabled: "disabled", required: "required" }, outputs: { ckTypeSelected: "ckTypeSelected", ckTypeCleared: "ckTypeCleared" }, providers: [
|
|
3450
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: CkTypeSelectorInputComponent, isStandalone: true, selector: "mm-ck-type-selector-input", inputs: { placeholder: "placeholder", minSearchLength: "minSearchLength", maxResults: "maxResults", debounceMs: "debounceMs", ckModelIds: "ckModelIds", allowAbstract: "allowAbstract", dialogTitle: "dialogTitle", advancedSearchLabel: "advancedSearchLabel", derivedFromRtCkTypeId: "derivedFromRtCkTypeId", messages: "messages", dialogMessages: "dialogMessages", disabled: "disabled", required: "required" }, outputs: { ckTypeSelected: "ckTypeSelected", ckTypeCleared: "ckTypeCleared" }, providers: [
|
|
3332
3451
|
{
|
|
3333
3452
|
provide: NG_VALUE_ACCESSOR,
|
|
3334
3453
|
useExisting: forwardRef(() => CkTypeSelectorInputComponent),
|
|
@@ -3366,10 +3485,10 @@ class CkTypeSelectorInputComponent {
|
|
|
3366
3485
|
<ng-template kendoAutoCompleteNoDataTemplate>
|
|
3367
3486
|
<div class="no-data-message">
|
|
3368
3487
|
<span *ngIf="!isLoading && searchFormControl.value && searchFormControl.value.length >= minSearchLength">
|
|
3369
|
-
|
|
3488
|
+
{{ formatNoTypesFound(searchFormControl.value) }}
|
|
3370
3489
|
</span>
|
|
3371
3490
|
<span *ngIf="!isLoading && (!searchFormControl.value || searchFormControl.value.length < minSearchLength)">
|
|
3372
|
-
|
|
3491
|
+
{{ formatMinCharactersHint(minSearchLength) }}
|
|
3373
3492
|
</span>
|
|
3374
3493
|
</div>
|
|
3375
3494
|
</ng-template>
|
|
@@ -3377,7 +3496,7 @@ class CkTypeSelectorInputComponent {
|
|
|
3377
3496
|
<ng-template kendoAutoCompleteFooterTemplate>
|
|
3378
3497
|
<div class="advanced-search-footer" (click)="openDialog($event)">
|
|
3379
3498
|
<kendo-svg-icon [icon]="searchIcon" size="small"></kendo-svg-icon>
|
|
3380
|
-
<span>{{ advancedSearchLabel }}</span>
|
|
3499
|
+
<span>{{ advancedSearchLabel || _messages.advancedSearchLabel }}</span>
|
|
3381
3500
|
</div>
|
|
3382
3501
|
</ng-template>
|
|
3383
3502
|
|
|
@@ -3388,7 +3507,7 @@ class CkTypeSelectorInputComponent {
|
|
|
3388
3507
|
type="button"
|
|
3389
3508
|
[svgIcon]="searchIcon"
|
|
3390
3509
|
[disabled]="disabled"
|
|
3391
|
-
[title]="advancedSearchLabel"
|
|
3510
|
+
[title]="advancedSearchLabel || _messages.advancedSearchLabel"
|
|
3392
3511
|
class="dialog-button"
|
|
3393
3512
|
(click)="openDialog()">
|
|
3394
3513
|
</button>
|
|
@@ -3443,10 +3562,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
3443
3562
|
<ng-template kendoAutoCompleteNoDataTemplate>
|
|
3444
3563
|
<div class="no-data-message">
|
|
3445
3564
|
<span *ngIf="!isLoading && searchFormControl.value && searchFormControl.value.length >= minSearchLength">
|
|
3446
|
-
|
|
3565
|
+
{{ formatNoTypesFound(searchFormControl.value) }}
|
|
3447
3566
|
</span>
|
|
3448
3567
|
<span *ngIf="!isLoading && (!searchFormControl.value || searchFormControl.value.length < minSearchLength)">
|
|
3449
|
-
|
|
3568
|
+
{{ formatMinCharactersHint(minSearchLength) }}
|
|
3450
3569
|
</span>
|
|
3451
3570
|
</div>
|
|
3452
3571
|
</ng-template>
|
|
@@ -3454,7 +3573,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
3454
3573
|
<ng-template kendoAutoCompleteFooterTemplate>
|
|
3455
3574
|
<div class="advanced-search-footer" (click)="openDialog($event)">
|
|
3456
3575
|
<kendo-svg-icon [icon]="searchIcon" size="small"></kendo-svg-icon>
|
|
3457
|
-
<span>{{ advancedSearchLabel }}</span>
|
|
3576
|
+
<span>{{ advancedSearchLabel || _messages.advancedSearchLabel }}</span>
|
|
3458
3577
|
</div>
|
|
3459
3578
|
</ng-template>
|
|
3460
3579
|
|
|
@@ -3465,7 +3584,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
3465
3584
|
type="button"
|
|
3466
3585
|
[svgIcon]="searchIcon"
|
|
3467
3586
|
[disabled]="disabled"
|
|
3468
|
-
[title]="advancedSearchLabel"
|
|
3587
|
+
[title]="advancedSearchLabel || _messages.advancedSearchLabel"
|
|
3469
3588
|
class="dialog-button"
|
|
3470
3589
|
(click)="openDialog()">
|
|
3471
3590
|
</button>
|
|
@@ -3492,6 +3611,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
3492
3611
|
type: Input
|
|
3493
3612
|
}], derivedFromRtCkTypeId: [{
|
|
3494
3613
|
type: Input
|
|
3614
|
+
}], messages: [{
|
|
3615
|
+
type: Input
|
|
3616
|
+
}], dialogMessages: [{
|
|
3617
|
+
type: Input
|
|
3495
3618
|
}], disabled: [{
|
|
3496
3619
|
type: Input
|
|
3497
3620
|
}], required: [{
|
|
@@ -4588,7 +4711,7 @@ class RuntimeEntityVariableDialogComponent {
|
|
|
4588
4711
|
<button kendoButton (click)="onOk()" themeColor="primary" [disabled]="!isValid()">OK</button>
|
|
4589
4712
|
</div>
|
|
4590
4713
|
</div>
|
|
4591
|
-
`, isInline: true, styles: [".dialog-content{display:flex;flex-direction:column;gap:16px;padding:16px 20px}.form-row{display:flex;flex-direction:column;gap:4px}.form-label{font-size:12px;font-weight:600;color:var(--kendo-color-subtle, #666)}.mappings-grid{border:1px solid var(--kendo-color-border, #e0e0e0);border-radius:4px;background:var(--kendo-color-surface-alt, #fafafa)}.grid-header{display:grid;grid-template-columns:1fr 1fr 100px 40px;gap:.5rem;padding:.5rem .75rem;background:var(--kendo-color-surface, #f5f5f5);border-bottom:1px solid var(--kendo-color-border, #e0e0e0);font-size:12px;font-weight:600;color:var(--kendo-color-subtle, #666)}.grid-row{display:grid;grid-template-columns:1fr 1fr 100px 40px;gap:.5rem;padding:.5rem .75rem;align-items:start;border-bottom:1px solid var(--kendo-color-border, #e0e0e0)}.grid-row:last-child{border-bottom:none}.col-name{display:flex;flex-direction:column;gap:2px}.col-path,.col-type{font-size:13px;padding-top:6px;color:var(--kendo-color-on-app-surface, #424242)}.col-actions{display:flex;justify-content:center;padding-top:2px}.error-text{font-size:11px;color:var(--kendo-color-error, #f44336)}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:8px;border-top:1px solid var(--kendo-color-border, #e0e0e0)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ButtonsModule }, { kind: "component", type: i1$1.ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "ngmodule", type: InputsModule }, { kind: "component", type: i5.TextBoxComponent, selector: "kendo-textbox", inputs: ["focusableId", "title", "type", "disabled", "readonly", "tabindex", "value", "selectOnFocus", "showSuccessIcon", "showErrorIcon", "clearButton", "successIcon", "successSvgIcon", "errorIcon", "errorSvgIcon", "clearButtonIcon", "clearButtonSvgIcon", "size", "rounded", "fillMode", "tabIndex", "placeholder", "maxlength", "inputAttributes"], outputs: ["valueChange", "inputFocus", "inputBlur", "focus", "blur"], exportAs: ["kendoTextBox"] }, { kind: "ngmodule", type: GridModule }, { kind: "ngmodule", type: IconsModule }, { kind: "component", type: CkTypeSelectorInputComponent, selector: "mm-ck-type-selector-input", inputs: ["placeholder", "minSearchLength", "maxResults", "debounceMs", "ckModelIds", "allowAbstract", "dialogTitle", "advancedSearchLabel", "derivedFromRtCkTypeId", "disabled", "required"], outputs: ["ckTypeSelected", "ckTypeCleared"] }, { kind: "component", type: EntitySelectInputComponent, selector: "mm-entity-select-input", inputs: ["dataSource", "placeholder", "minSearchLength", "maxResults", "debounceMs", "prefix", "initialDisplayValue", "dialogDataSource", "dialogTitle", "multiSelect", "advancedSearchLabel", "dialogMessages", "messages", "disabled", "required"], outputs: ["entitySelected", "entityCleared", "entitiesSelected"] }] });
|
|
4714
|
+
`, isInline: true, styles: [".dialog-content{display:flex;flex-direction:column;gap:16px;padding:16px 20px}.form-row{display:flex;flex-direction:column;gap:4px}.form-label{font-size:12px;font-weight:600;color:var(--kendo-color-subtle, #666)}.mappings-grid{border:1px solid var(--kendo-color-border, #e0e0e0);border-radius:4px;background:var(--kendo-color-surface-alt, #fafafa)}.grid-header{display:grid;grid-template-columns:1fr 1fr 100px 40px;gap:.5rem;padding:.5rem .75rem;background:var(--kendo-color-surface, #f5f5f5);border-bottom:1px solid var(--kendo-color-border, #e0e0e0);font-size:12px;font-weight:600;color:var(--kendo-color-subtle, #666)}.grid-row{display:grid;grid-template-columns:1fr 1fr 100px 40px;gap:.5rem;padding:.5rem .75rem;align-items:start;border-bottom:1px solid var(--kendo-color-border, #e0e0e0)}.grid-row:last-child{border-bottom:none}.col-name{display:flex;flex-direction:column;gap:2px}.col-path,.col-type{font-size:13px;padding-top:6px;color:var(--kendo-color-on-app-surface, #424242)}.col-actions{display:flex;justify-content:center;padding-top:2px}.error-text{font-size:11px;color:var(--kendo-color-error, #f44336)}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:8px;border-top:1px solid var(--kendo-color-border, #e0e0e0)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ButtonsModule }, { kind: "component", type: i1$1.ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "ngmodule", type: InputsModule }, { kind: "component", type: i5.TextBoxComponent, selector: "kendo-textbox", inputs: ["focusableId", "title", "type", "disabled", "readonly", "tabindex", "value", "selectOnFocus", "showSuccessIcon", "showErrorIcon", "clearButton", "successIcon", "successSvgIcon", "errorIcon", "errorSvgIcon", "clearButtonIcon", "clearButtonSvgIcon", "size", "rounded", "fillMode", "tabIndex", "placeholder", "maxlength", "inputAttributes"], outputs: ["valueChange", "inputFocus", "inputBlur", "focus", "blur"], exportAs: ["kendoTextBox"] }, { kind: "ngmodule", type: GridModule }, { kind: "ngmodule", type: IconsModule }, { kind: "component", type: CkTypeSelectorInputComponent, selector: "mm-ck-type-selector-input", inputs: ["placeholder", "minSearchLength", "maxResults", "debounceMs", "ckModelIds", "allowAbstract", "dialogTitle", "advancedSearchLabel", "derivedFromRtCkTypeId", "messages", "dialogMessages", "disabled", "required"], outputs: ["ckTypeSelected", "ckTypeCleared"] }, { kind: "component", type: EntitySelectInputComponent, selector: "mm-entity-select-input", inputs: ["dataSource", "placeholder", "minSearchLength", "maxResults", "debounceMs", "prefix", "initialDisplayValue", "dialogDataSource", "dialogTitle", "multiSelect", "advancedSearchLabel", "dialogMessages", "messages", "disabled", "required"], outputs: ["entitySelected", "entityCleared", "entitiesSelected"] }] });
|
|
4592
4715
|
}
|
|
4593
4716
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RuntimeEntityVariableDialogComponent, decorators: [{
|
|
4594
4717
|
type: Component,
|
|
@@ -8007,6 +8130,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
8007
8130
|
* Default English messages for the RuntimeBrowser components.
|
|
8008
8131
|
*/
|
|
8009
8132
|
const DEFAULT_RUNTIME_BROWSER_MESSAGES = {
|
|
8133
|
+
recordLabel: 'Record',
|
|
8134
|
+
back: 'Back',
|
|
8135
|
+
recordArrayHint: 'Add records to this array. Remove to delete the selected record. Empty arrays are not saved.',
|
|
8136
|
+
recordHint: 'Load attributes to edit this optional record. Unload to remove all data and clear validation.',
|
|
8137
|
+
addRecord: 'Add',
|
|
8138
|
+
removeRecord: 'Remove',
|
|
8139
|
+
loadRecord: 'Load',
|
|
8140
|
+
unloadRecord: 'Unload',
|
|
8141
|
+
longitudeHint: 'The longitude of the point on the Earth surface (-180 to 180 degrees).',
|
|
8142
|
+
latitudeHint: 'The latitude of the point on the Earth surface (-90 to 90 degrees).',
|
|
8010
8143
|
title: 'Runtime Browser',
|
|
8011
8144
|
badgeLabel: 'Entities & Data',
|
|
8012
8145
|
titlePrefix: 'REPOSITORY',
|
|
@@ -8071,6 +8204,8 @@ const DEFAULT_RUNTIME_BROWSER_MESSAGES = {
|
|
|
8071
8204
|
attributesFor: 'Attributes for',
|
|
8072
8205
|
couldNotLoadEntityDetails: 'Could not load entity details',
|
|
8073
8206
|
failedToLoadEntityDetails: 'Failed to load entity details',
|
|
8207
|
+
entityNotFound: 'Entity not found',
|
|
8208
|
+
entityIdInvalidFormat: 'Invalid entity ID format',
|
|
8074
8209
|
copiedToClipboard: 'copied to clipboard',
|
|
8075
8210
|
failedToCopyToClipboard: 'Failed to copy to clipboard',
|
|
8076
8211
|
downloadNotAvailable: 'Download not available for this file',
|
|
@@ -8097,9 +8232,19 @@ const DEFAULT_RUNTIME_BROWSER_MESSAGES = {
|
|
|
8097
8232
|
mappingRemoved: 'Data mapping removed',
|
|
8098
8233
|
failedToSaveMapping: 'Failed to save data mapping',
|
|
8099
8234
|
failedToLoadMapping: 'Failed to load data mapping',
|
|
8235
|
+
treeMoveToRootUnsupported: 'Moving item to the root of the tree is not supported',
|
|
8236
|
+
treeMoveOnRootUnsupported: 'Moving item on the root of the tree is not supported',
|
|
8237
|
+
mappingHeader: 'MAPPING',
|
|
8238
|
+
mappingSourceDataPoint: 'Source Data Point',
|
|
8239
|
+
mappingAddMapping: '+ Add Mapping',
|
|
8240
|
+
mappingSaveAll: 'Save All Mappings',
|
|
8241
|
+
mappingNotSet: '(not set)',
|
|
8242
|
+
mappingSelect: 'Select...',
|
|
8243
|
+
mappingNoneConfigured: 'No data point mappings configured yet.',
|
|
8100
8244
|
};
|
|
8101
8245
|
|
|
8102
8246
|
class DataMappingListComponent {
|
|
8247
|
+
messages;
|
|
8103
8248
|
mappings = [];
|
|
8104
8249
|
/**
|
|
8105
8250
|
* The runtime entity whose data points feed the Source Data Point picker.
|
|
@@ -8152,29 +8297,29 @@ class DataMappingListComponent {
|
|
|
8152
8297
|
trashIcon = trashIcon;
|
|
8153
8298
|
linkIcon = hyperlinkOpenIcon;
|
|
8154
8299
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DataMappingListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
8155
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: DataMappingListComponent, isStandalone: true, selector: "mm-data-mapping-list", inputs: { mappings: "mappings", sourceEntity: "sourceEntity", expressionValidator: "expressionValidator" }, outputs: { addMapping: "addMapping", removeMapping: "removeMapping", selectTarget: "selectTarget", selectSourceAttribute: "selectSourceAttribute", selectTargetAttribute: "selectTargetAttribute", mappingChanged: "mappingChanged", navigateToTarget: "navigateToTarget", saveAll: "saveAll" }, ngImport: i0, template: `
|
|
8300
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: DataMappingListComponent, isStandalone: true, selector: "mm-data-mapping-list", inputs: { messages: "messages", mappings: "mappings", sourceEntity: "sourceEntity", expressionValidator: "expressionValidator" }, outputs: { addMapping: "addMapping", removeMapping: "removeMapping", selectTarget: "selectTarget", selectSourceAttribute: "selectSourceAttribute", selectTargetAttribute: "selectTargetAttribute", mappingChanged: "mappingChanged", navigateToTarget: "navigateToTarget", saveAll: "saveAll" }, ngImport: i0, template: `
|
|
8156
8301
|
<div class="mapping-list">
|
|
8157
8302
|
<div class="mapping-toolbar">
|
|
8158
8303
|
<button kendoButton themeColor="primary" size="small" [svgIcon]="plusIcon"
|
|
8159
|
-
(click)="addMapping.emit()">Add Mapping</button>
|
|
8304
|
+
(click)="addMapping.emit()">{{ messages?.mappingAddMapping ?? '+ Add Mapping' }}</button>
|
|
8160
8305
|
</div>
|
|
8161
8306
|
|
|
8162
8307
|
@if (mappings.length === 0) {
|
|
8163
8308
|
<div class="mapping-empty-hint">
|
|
8164
|
-
No data point mappings configured yet.
|
|
8309
|
+
{{ messages?.mappingNoneConfigured ?? 'No data point mappings configured yet.' }}
|
|
8165
8310
|
</div>
|
|
8166
8311
|
}
|
|
8167
8312
|
|
|
8168
8313
|
@for (mapping of mappings; track mapping.rtId ?? $index) {
|
|
8169
8314
|
<div class="mapping-card">
|
|
8170
8315
|
<div class="mapping-card-header">
|
|
8171
|
-
<span class="mapping-name">{{ mapping.name || '
|
|
8316
|
+
<span class="mapping-name">{{ mapping.name || ((messages?.mappingHeader ?? 'MAPPING') + ' ' + ($index + 1)) }}</span>
|
|
8172
8317
|
<button kendoButton fillMode="flat" size="small" [svgIcon]="trashIcon"
|
|
8173
8318
|
(click)="removeMapping.emit(mapping)"></button>
|
|
8174
8319
|
</div>
|
|
8175
8320
|
<div class="mapping-card-body">
|
|
8176
8321
|
<div class="mapping-row">
|
|
8177
|
-
<label>Source Data Point</label>
|
|
8322
|
+
<label>{{ messages?.mappingSourceDataPoint ?? 'Source Data Point' }}</label>
|
|
8178
8323
|
<mm-data-point-picker
|
|
8179
8324
|
[entity]="sourceEntity"
|
|
8180
8325
|
[value]="mapping.sourceAttributePath || 'currentValue'"
|
|
@@ -8182,9 +8327,9 @@ class DataMappingListComponent {
|
|
|
8182
8327
|
</mm-data-point-picker>
|
|
8183
8328
|
</div>
|
|
8184
8329
|
<div class="mapping-row">
|
|
8185
|
-
<label>Expression</label>
|
|
8330
|
+
<label>{{ messages?.mappingExpression ?? 'Expression' }}</label>
|
|
8186
8331
|
<kendo-textbox [(value)]="mapping.mappingExpression"
|
|
8187
|
-
placeholder="e.g. value > 0 ? value : 0"
|
|
8332
|
+
[placeholder]="messages?.mappingExpressionHint ?? 'e.g. value > 0 ? value : 0'"
|
|
8188
8333
|
(valueChange)="onExpressionChange(mapping, $event)">
|
|
8189
8334
|
</kendo-textbox>
|
|
8190
8335
|
@if (mapping.mappingExpression && expressionValidator) {
|
|
@@ -8196,7 +8341,7 @@ class DataMappingListComponent {
|
|
|
8196
8341
|
}
|
|
8197
8342
|
</div>
|
|
8198
8343
|
<div class="mapping-row">
|
|
8199
|
-
<label>Target Entity</label>
|
|
8344
|
+
<label>{{ messages?.mappingTarget ?? 'Target Entity' }}</label>
|
|
8200
8345
|
@if (mapping.targetRtId) {
|
|
8201
8346
|
<div class="entity-info-display">
|
|
8202
8347
|
<div class="entity-info-main">
|
|
@@ -8213,23 +8358,23 @@ class DataMappingListComponent {
|
|
|
8213
8358
|
<span class="entity-detail-item">{{ mapping.targetRtId }}</span>
|
|
8214
8359
|
</div>
|
|
8215
8360
|
<button kendoButton fillMode="flat" size="small"
|
|
8216
|
-
(click)="selectTarget.emit(mapping)">
|
|
8361
|
+
(click)="selectTarget.emit(mapping)">{{ messages?.mappingSelect ?? 'Select...' }}</button>
|
|
8217
8362
|
</div>
|
|
8218
8363
|
} @else {
|
|
8219
8364
|
<div class="target-display">
|
|
8220
|
-
<span class="target-info">(not set)</span>
|
|
8365
|
+
<span class="target-info">{{ messages?.mappingNotSet ?? '(not set)' }}</span>
|
|
8221
8366
|
<button kendoButton fillMode="flat" size="small"
|
|
8222
|
-
(click)="selectTarget.emit(mapping)">Select
|
|
8367
|
+
(click)="selectTarget.emit(mapping)">{{ messages?.mappingSelect ?? 'Select...' }}</button>
|
|
8223
8368
|
</div>
|
|
8224
8369
|
}
|
|
8225
8370
|
</div>
|
|
8226
8371
|
<div class="mapping-row">
|
|
8227
|
-
<label>Target Attribute</label>
|
|
8372
|
+
<label>{{ messages?.mappingTargetAttributePath ?? 'Target Attribute' }}</label>
|
|
8228
8373
|
<div class="target-display">
|
|
8229
|
-
<span class="target-info">{{ mapping.targetAttributePath || '(not set)' }}</span>
|
|
8374
|
+
<span class="target-info">{{ mapping.targetAttributePath || (messages?.mappingNotSet ?? '(not set)') }}</span>
|
|
8230
8375
|
<button kendoButton fillMode="flat" size="small"
|
|
8231
8376
|
[disabled]="!mapping.targetCkTypeId"
|
|
8232
|
-
(click)="selectTargetAttribute.emit(mapping)">Select
|
|
8377
|
+
(click)="selectTargetAttribute.emit(mapping)">{{ messages?.mappingSelect ?? 'Select...' }}</button>
|
|
8233
8378
|
</div>
|
|
8234
8379
|
</div>
|
|
8235
8380
|
</div>
|
|
@@ -8239,7 +8384,7 @@ class DataMappingListComponent {
|
|
|
8239
8384
|
@if (mappings.length > 0) {
|
|
8240
8385
|
<div class="mapping-actions">
|
|
8241
8386
|
<button kendoButton themeColor="primary" (click)="saveAll.emit()">
|
|
8242
|
-
Save All Mappings
|
|
8387
|
+
{{ messages?.mappingSaveAll ?? 'Save All Mappings' }}
|
|
8243
8388
|
</button>
|
|
8244
8389
|
</div>
|
|
8245
8390
|
}
|
|
@@ -8259,25 +8404,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
8259
8404
|
<div class="mapping-list">
|
|
8260
8405
|
<div class="mapping-toolbar">
|
|
8261
8406
|
<button kendoButton themeColor="primary" size="small" [svgIcon]="plusIcon"
|
|
8262
|
-
(click)="addMapping.emit()">Add Mapping</button>
|
|
8407
|
+
(click)="addMapping.emit()">{{ messages?.mappingAddMapping ?? '+ Add Mapping' }}</button>
|
|
8263
8408
|
</div>
|
|
8264
8409
|
|
|
8265
8410
|
@if (mappings.length === 0) {
|
|
8266
8411
|
<div class="mapping-empty-hint">
|
|
8267
|
-
No data point mappings configured yet.
|
|
8412
|
+
{{ messages?.mappingNoneConfigured ?? 'No data point mappings configured yet.' }}
|
|
8268
8413
|
</div>
|
|
8269
8414
|
}
|
|
8270
8415
|
|
|
8271
8416
|
@for (mapping of mappings; track mapping.rtId ?? $index) {
|
|
8272
8417
|
<div class="mapping-card">
|
|
8273
8418
|
<div class="mapping-card-header">
|
|
8274
|
-
<span class="mapping-name">{{ mapping.name || '
|
|
8419
|
+
<span class="mapping-name">{{ mapping.name || ((messages?.mappingHeader ?? 'MAPPING') + ' ' + ($index + 1)) }}</span>
|
|
8275
8420
|
<button kendoButton fillMode="flat" size="small" [svgIcon]="trashIcon"
|
|
8276
8421
|
(click)="removeMapping.emit(mapping)"></button>
|
|
8277
8422
|
</div>
|
|
8278
8423
|
<div class="mapping-card-body">
|
|
8279
8424
|
<div class="mapping-row">
|
|
8280
|
-
<label>Source Data Point</label>
|
|
8425
|
+
<label>{{ messages?.mappingSourceDataPoint ?? 'Source Data Point' }}</label>
|
|
8281
8426
|
<mm-data-point-picker
|
|
8282
8427
|
[entity]="sourceEntity"
|
|
8283
8428
|
[value]="mapping.sourceAttributePath || 'currentValue'"
|
|
@@ -8285,9 +8430,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
8285
8430
|
</mm-data-point-picker>
|
|
8286
8431
|
</div>
|
|
8287
8432
|
<div class="mapping-row">
|
|
8288
|
-
<label>Expression</label>
|
|
8433
|
+
<label>{{ messages?.mappingExpression ?? 'Expression' }}</label>
|
|
8289
8434
|
<kendo-textbox [(value)]="mapping.mappingExpression"
|
|
8290
|
-
placeholder="e.g. value > 0 ? value : 0"
|
|
8435
|
+
[placeholder]="messages?.mappingExpressionHint ?? 'e.g. value > 0 ? value : 0'"
|
|
8291
8436
|
(valueChange)="onExpressionChange(mapping, $event)">
|
|
8292
8437
|
</kendo-textbox>
|
|
8293
8438
|
@if (mapping.mappingExpression && expressionValidator) {
|
|
@@ -8299,7 +8444,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
8299
8444
|
}
|
|
8300
8445
|
</div>
|
|
8301
8446
|
<div class="mapping-row">
|
|
8302
|
-
<label>Target Entity</label>
|
|
8447
|
+
<label>{{ messages?.mappingTarget ?? 'Target Entity' }}</label>
|
|
8303
8448
|
@if (mapping.targetRtId) {
|
|
8304
8449
|
<div class="entity-info-display">
|
|
8305
8450
|
<div class="entity-info-main">
|
|
@@ -8316,23 +8461,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
8316
8461
|
<span class="entity-detail-item">{{ mapping.targetRtId }}</span>
|
|
8317
8462
|
</div>
|
|
8318
8463
|
<button kendoButton fillMode="flat" size="small"
|
|
8319
|
-
(click)="selectTarget.emit(mapping)">
|
|
8464
|
+
(click)="selectTarget.emit(mapping)">{{ messages?.mappingSelect ?? 'Select...' }}</button>
|
|
8320
8465
|
</div>
|
|
8321
8466
|
} @else {
|
|
8322
8467
|
<div class="target-display">
|
|
8323
|
-
<span class="target-info">(not set)</span>
|
|
8468
|
+
<span class="target-info">{{ messages?.mappingNotSet ?? '(not set)' }}</span>
|
|
8324
8469
|
<button kendoButton fillMode="flat" size="small"
|
|
8325
|
-
(click)="selectTarget.emit(mapping)">Select
|
|
8470
|
+
(click)="selectTarget.emit(mapping)">{{ messages?.mappingSelect ?? 'Select...' }}</button>
|
|
8326
8471
|
</div>
|
|
8327
8472
|
}
|
|
8328
8473
|
</div>
|
|
8329
8474
|
<div class="mapping-row">
|
|
8330
|
-
<label>Target Attribute</label>
|
|
8475
|
+
<label>{{ messages?.mappingTargetAttributePath ?? 'Target Attribute' }}</label>
|
|
8331
8476
|
<div class="target-display">
|
|
8332
|
-
<span class="target-info">{{ mapping.targetAttributePath || '(not set)' }}</span>
|
|
8477
|
+
<span class="target-info">{{ mapping.targetAttributePath || (messages?.mappingNotSet ?? '(not set)') }}</span>
|
|
8333
8478
|
<button kendoButton fillMode="flat" size="small"
|
|
8334
8479
|
[disabled]="!mapping.targetCkTypeId"
|
|
8335
|
-
(click)="selectTargetAttribute.emit(mapping)">Select
|
|
8480
|
+
(click)="selectTargetAttribute.emit(mapping)">{{ messages?.mappingSelect ?? 'Select...' }}</button>
|
|
8336
8481
|
</div>
|
|
8337
8482
|
</div>
|
|
8338
8483
|
</div>
|
|
@@ -8342,13 +8487,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
8342
8487
|
@if (mappings.length > 0) {
|
|
8343
8488
|
<div class="mapping-actions">
|
|
8344
8489
|
<button kendoButton themeColor="primary" (click)="saveAll.emit()">
|
|
8345
|
-
Save All Mappings
|
|
8490
|
+
{{ messages?.mappingSaveAll ?? 'Save All Mappings' }}
|
|
8346
8491
|
</button>
|
|
8347
8492
|
</div>
|
|
8348
8493
|
}
|
|
8349
8494
|
</div>
|
|
8350
8495
|
`, styles: [".mapping-list{display:flex;flex-direction:column;gap:12px}.mapping-toolbar{display:flex;justify-content:flex-end}.mapping-empty-hint{text-align:center;padding:16px;color:var(--kendo-color-subtle, #6c757d);font-size:.85rem}.mapping-card{border:1px solid var(--kendo-color-border, #dee2e6);border-radius:6px;overflow:hidden}.mapping-card-header{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--kendo-color-on-primary, #ffffff);background:var(--kendo-color-primary, #ff6358)}.mapping-card-header .mapping-name{flex:1}.mapping-card-body{padding:10px 12px;display:flex;flex-direction:column;gap:8px}.mapping-row{display:flex;flex-direction:column;gap:3px}.mapping-row label{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--kendo-color-subtle, #6c757d)}.target-display{display:flex;align-items:center;gap:8px;padding:4px 8px;border:1px solid var(--kendo-color-border, #dee2e6);border-radius:4px;background:var(--kendo-color-surface-alt, #f8f9fa);min-height:30px}.target-display .target-info{flex:1;font-size:.85rem;font-family:monospace}.mapping-actions{display:flex;justify-content:flex-end;padding-top:4px}.entity-info-display{display:flex;flex-direction:column;gap:2px;padding:4px 8px;border:1px solid var(--kendo-color-border, #dee2e6);border-radius:4px;background:var(--kendo-color-surface-alt, #f8f9fa)}.entity-info-main{display:flex;align-items:center;gap:4px}.entity-name{flex:1;font-size:.85rem;font-weight:600}.entity-info-details{display:flex;align-items:center;gap:2px;font-size:.7rem;font-family:monospace;color:var(--kendo-color-subtle, #6c757d)}.entity-detail-separator{color:var(--kendo-color-subtle, #6c757d)}.expression-feedback{font-size:.75rem;padding:2px 0;font-family:monospace}.expression-error{color:var(--kendo-color-error, #dc3545)}.expression-success{color:var(--kendo-color-success, #28a745)}\n"] }]
|
|
8351
|
-
}], propDecorators: {
|
|
8496
|
+
}], propDecorators: { messages: [{
|
|
8497
|
+
type: Input
|
|
8498
|
+
}], mappings: [{
|
|
8352
8499
|
type: Input
|
|
8353
8500
|
}], sourceEntity: [{
|
|
8354
8501
|
type: Input
|
|
@@ -8765,6 +8912,7 @@ class EntityDetailViewComponent {
|
|
|
8765
8912
|
[data]="propertyGridItems"
|
|
8766
8913
|
[config]="propertyGridConfig"
|
|
8767
8914
|
[showTypeColumn]="true"
|
|
8915
|
+
[messages]="_messages.propertyGrid"
|
|
8768
8916
|
(propertyChange)="propertyChange.emit($event)"
|
|
8769
8917
|
(binaryDownload)="onBinaryDownload($event)"
|
|
8770
8918
|
>
|
|
@@ -8833,6 +8981,7 @@ class EntityDetailViewComponent {
|
|
|
8833
8981
|
[pageable]="{ buttonCount: 3, pageSizes: [10, 20, 50] }"
|
|
8834
8982
|
[pageSize]="20"
|
|
8835
8983
|
[selectable]="{ mode: 'single', enabled: true }"
|
|
8984
|
+
[messages]="_messages.listView ?? {}"
|
|
8836
8985
|
[columns]="[
|
|
8837
8986
|
{
|
|
8838
8987
|
field: 'ckAssociationRoleId',
|
|
@@ -8875,6 +9024,7 @@ class EntityDetailViewComponent {
|
|
|
8875
9024
|
<ng-template kendoTabContent>
|
|
8876
9025
|
<div class="tab-content mapping-tab">
|
|
8877
9026
|
<mm-data-mapping-list
|
|
9027
|
+
[messages]="_messages"
|
|
8878
9028
|
[mappings]="dataMappings"
|
|
8879
9029
|
[sourceEntity]="entity"
|
|
8880
9030
|
[expressionValidator]="expressionValidator"
|
|
@@ -8893,7 +9043,7 @@ class EntityDetailViewComponent {
|
|
|
8893
9043
|
</kendo-tabstrip>
|
|
8894
9044
|
</div>
|
|
8895
9045
|
}
|
|
8896
|
-
`, isInline: true, styles: [".loading-state,.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;text-align:center;min-height:200px}.loading-state .error-message,.error-state .error-message{margin-bottom:16px;font-family:Roboto,sans-serif;color:#e74c3c}.entity-content{flex:1;display:flex;flex-direction:column;gap:24px}.entity-content .basic-info-card{padding:20px 24px;background:linear-gradient(180deg,var(--iron-navy),var(--surface-elevated));border:1px solid var(--octo-mint-30);border-radius:4px 16px;position:relative;box-shadow:0 4px 20px #0006,0 0 15px var(--octo-mint-08)}.entity-content .basic-info-card:before{content:\"\";position:absolute;top:0;left:0;width:4px;height:100%;background:linear-gradient(180deg,var(--octo-mint),var(--neo-cyan),var(--royal-violet));box-shadow:0 0 10px var(--octo-mint-50);border-radius:4px 0 0 4px}.entity-content .basic-info-card .basic-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}.entity-content .basic-info-card .basic-info-grid .info-item{display:flex;flex-direction:column;gap:8px}.entity-content .basic-info-card .basic-info-grid .info-item label{font-family:Montserrat,sans-serif;font-weight:600;font-size:.75rem;letter-spacing:.5px;text-transform:uppercase;color:var(--octo-mint-80)}.entity-content .basic-info-card .basic-info-grid .info-item .value{font-family:Roboto Mono,monospace;font-size:.875rem;color:rgba(var(--octo-text-color),.9);word-break:break-word;background:var(--deep-sea-40);padding:8px 12px;border-radius:4px;border:1px solid var(--octo-mint-15)}.entity-content .basic-info-card .basic-info-grid .info-item.with-action .value-with-action{display:flex;align-items:center}.entity-content .basic-info-card .basic-info-grid .info-item.with-action .value-with-action .value{flex:1;font-family:Roboto Mono,monospace;font-size:.875rem;color:rgba(var(--octo-text-color),.9);word-break:break-word}.entity-content .entity-tabs{flex:1;min-height:400px;background:linear-gradient(180deg,var(--iron-navy),var(--surface-elevated));border:1px solid var(--octo-mint-30);border-radius:4px 16px;overflow:hidden;position:relative}.entity-content .entity-tabs:before{content:\"\";position:absolute;top:0;left:0;width:4px;height:100%;background:linear-gradient(180deg,var(--octo-mint),var(--neo-cyan),var(--royal-violet));box-shadow:0 0 10px var(--octo-mint-50);z-index:1}.entity-content .entity-tabs ::ng-deep .k-tabstrip{background:transparent}.entity-content .entity-tabs ::ng-deep .k-tabstrip .k-tabstrip-items-wrapper{background:linear-gradient(90deg,var(--octo-mint-10),transparent);border-bottom:1px solid var(--octo-mint-20);padding-left:20px}.entity-content .entity-tabs ::ng-deep .k-tabstrip .k-tabstrip-items-wrapper .k-tabstrip-items .k-item{background:transparent;border:none;color:rgba(var(--octo-text-color),.7);font-family:Montserrat,sans-serif;font-weight:600;font-size:.8rem;letter-spacing:.5px;text-transform:uppercase;padding:12px 20px;margin-right:4px;border-radius:4px 4px 0 0;transition:all .2s ease}.entity-content .entity-tabs ::ng-deep .k-tabstrip .k-tabstrip-items-wrapper .k-tabstrip-items .k-item:hover{background:var(--octo-mint-10);color:var(--octo-mint)}.entity-content .entity-tabs ::ng-deep .k-tabstrip .k-tabstrip-items-wrapper .k-tabstrip-items .k-item.k-active{background:linear-gradient(180deg,var(--octo-mint-20),transparent);color:var(--octo-mint);border-bottom:2px solid var(--octo-mint);box-shadow:0 0 10px var(--octo-mint-30)}.entity-content .entity-tabs ::ng-deep .k-tabstrip .k-tabstrip-content{background:transparent;border:none;padding:0}.entity-content .entity-tabs .tab-content{padding:20px 24px;height:100%;overflow-y:auto}.entity-content .entity-tabs .tab-content .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 40px;text-align:center}.entity-content .entity-tabs .tab-content .empty-state kendo-svgicon{font-size:64px;margin-bottom:20px;color:var(--octo-mint-40);text-shadow:0 0 20px var(--octo-mint-30)}.entity-content .entity-tabs .tab-content .empty-state p{margin:0;font-family:Montserrat,sans-serif;font-size:.9rem;color:rgba(var(--octo-text-color),.5);letter-spacing:.5px}.entity-content .entity-tabs .tab-content.properties-tab{padding:0;height:100%}.entity-content .entity-tabs .tab-content.properties-tab mm-property-grid{display:block;height:100%;width:100%}.entity-content .entity-tabs .tab-content.associations-tab{display:flex;flex-direction:column;gap:16px;padding:0;height:100%}.entity-content .entity-tabs .tab-content.associations-tab .associations-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:16px;padding:16px 20px;background:linear-gradient(90deg,var(--octo-mint-05),transparent);border-bottom:1px solid var(--octo-mint-20)}.entity-content .entity-tabs .tab-content.associations-tab .associations-toolbar .filter-group{display:flex;align-items:center;gap:10px}.entity-content .entity-tabs .tab-content.associations-tab .associations-toolbar .filter-group label{font-family:Montserrat,sans-serif;font-weight:600;font-size:.75rem;letter-spacing:.5px;text-transform:uppercase;color:var(--octo-mint-80);white-space:nowrap}.entity-content .entity-tabs .tab-content.associations-tab .associations-toolbar .filter-group kendo-dropdownlist{width:160px}.entity-content .entity-tabs .tab-content.associations-tab .associations-toolbar .filter-group kendo-textbox{width:220px}.entity-content .entity-tabs .tab-content.associations-tab mm-list-view{flex:1;display:block;height:calc(100% - 70px)}.entity-content .entity-tabs .tab-content.mapping-tab{padding:12px}.entity-content .entity-tabs .tab-content.mapping-tab .mapping-empty{display:flex;flex-direction:column;align-items:center;padding:24px 20px;text-align:center}.entity-content .entity-tabs .tab-content.mapping-tab .mapping-empty kendo-svgicon{font-size:36px;margin-bottom:10px;opacity:.5}.entity-content .entity-tabs .tab-content.mapping-tab .mapping-empty p{margin:0 0 12px;font-size:.85rem;color:var(--kendo-color-subtle, #6c757d)}.entity-content .entity-tabs .tab-content.mapping-tab .mapping-config{display:flex;flex-direction:column;gap:20px}.entity-content .entity-tabs .tab-content.mapping-tab .mapping-section{border:1px solid var(--kendo-color-border, #dee2e6);border-radius:6px;overflow:hidden}.entity-content .entity-tabs .tab-content.mapping-tab .mapping-section .section-header{padding:8px 14px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--kendo-color-on-primary, #ffffff);background:var(--kendo-color-primary, #ff6358)}.entity-content .entity-tabs .tab-content.mapping-tab .mapping-section .section-body{padding:12px 14px;display:flex;flex-direction:column;gap:10px}.entity-content .entity-tabs .tab-content.mapping-tab .mapping-field{display:flex;flex-direction:column;gap:4px}.entity-content .entity-tabs .tab-content.mapping-tab .mapping-field label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--kendo-color-subtle, #6c757d)}.entity-content .entity-tabs .tab-content.mapping-tab .mapping-target-display{display:flex;align-items:center;gap:8px}.entity-content .entity-tabs .tab-content.mapping-tab .mapping-target-display .target-type{font-size:.75rem;color:var(--kendo-color-subtle, #6c757d);font-family:monospace;padding:2px 6px;border-radius:3px;background:var(--kendo-color-surface-alt, #f8f9fa);border:1px solid var(--kendo-color-border, #dee2e6)}.entity-content .entity-tabs .tab-content.mapping-tab .mapping-target-display .target-name{font-weight:600;flex:1}.entity-content .entity-tabs .tab-content.mapping-tab .field-hint{font-size:.7rem;color:var(--kendo-color-subtle, #6c757d);font-style:italic;line-height:1.3}.entity-content .entity-tabs .tab-content.mapping-tab .attribute-picker{display:flex;align-items:center;gap:8px;padding:4px 10px;border-radius:4px;border:1px solid var(--kendo-color-border, #dee2e6);background:var(--kendo-color-surface-alt, #f8f9fa);min-height:32px}.entity-content .entity-tabs .tab-content.mapping-tab .attribute-picker .attribute-value{flex:1;font-family:monospace;font-size:.85rem}.entity-content .entity-tabs .tab-content.mapping-tab .mapping-actions{display:flex;gap:8px;justify-content:flex-end;padding-top:4px}@media(max-width:768px){.entity-content{gap:16px}.entity-content .basic-info-card{padding:16px 20px}.entity-content .basic-info-card .basic-info-grid{grid-template-columns:1fr;gap:16px}.entity-content .entity-tabs{min-height:300px}.entity-content .entity-tabs ::ng-deep .k-tabstrip .k-tabstrip-items-wrapper{padding-left:12px}.entity-content .entity-tabs ::ng-deep .k-tabstrip .k-tabstrip-items-wrapper .k-tabstrip-items .k-item{padding:10px 14px;font-size:.75rem}.entity-content .entity-tabs .tab-content{padding:16px}.entity-content .entity-tabs .tab-content.associations-tab .associations-toolbar{flex-direction:column;align-items:flex-start;gap:12px}.entity-content .entity-tabs .tab-content.associations-tab .associations-toolbar .filter-group{width:100%}.entity-content .entity-tabs .tab-content.associations-tab .associations-toolbar .filter-group kendo-dropdownlist,.entity-content .entity-tabs .tab-content.associations-tab .associations-toolbar .filter-group kendo-textbox{width:100%}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TabStripModule }, { kind: "component", type: i1$4.TabStripComponent, selector: "kendo-tabstrip", inputs: ["height", "animate", "tabAlignment", "tabPosition", "keepTabContent", "closable", "scrollable", "size", "closeIcon", "closeIconClass", "closeSVGIcon", "showContentArea"], outputs: ["tabSelect", "tabClose", "tabScroll"], exportAs: ["kendoTabStrip"] }, { kind: "component", type: i1$4.TabStripTabComponent, selector: "kendo-tabstrip-tab", inputs: ["title", "disabled", "cssClass", "cssStyle", "selected", "closable", "closeIcon", "closeIconClass", "closeSVGIcon"], exportAs: ["kendoTabStripTab"] }, { kind: "directive", type: i1$4.TabContentDirective, selector: "[kendoTabContent]" }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i1$1.ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "ngmodule", type: SVGIconModule }, { kind: "component", type: i5$1.SVGIconComponent, selector: "kendo-svg-icon, kendo-svgicon", inputs: ["icon"], exportAs: ["kendoSVGIcon"] }, { kind: "ngmodule", type: CardModule }, { kind: "component", type: i1$4.CardComponent, selector: "kendo-card", inputs: ["orientation", "width"] }, { kind: "component", type: i1$4.CardBodyComponent, selector: "kendo-card-body" }, { kind: "component", type: i1$4.CardHeaderComponent, selector: "kendo-card-header" }, { kind: "ngmodule", type: DropDownListModule }, { kind: "component", type: i3$1.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "adaptiveTitle", "adaptiveSubtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "leftRightArrowsNavigation", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { kind: "ngmodule", type: TextBoxModule }, { kind: "component", type: i5.TextBoxComponent, selector: "kendo-textbox", inputs: ["focusableId", "title", "type", "disabled", "readonly", "tabindex", "value", "selectOnFocus", "showSuccessIcon", "showErrorIcon", "clearButton", "successIcon", "successSvgIcon", "errorIcon", "errorSvgIcon", "clearButtonIcon", "clearButtonSvgIcon", "size", "rounded", "fillMode", "tabIndex", "placeholder", "maxlength", "inputAttributes"], outputs: ["valueChange", "inputFocus", "inputBlur", "focus", "blur"], exportAs: ["kendoTextBox"] }, { kind: "component", type: PropertyGridComponent, selector: "mm-property-grid", inputs: ["data", "config", "showTypeColumn"], outputs: ["propertyChange", "saveRequested", "binaryDownload"] }, { kind: "component", type: ListViewComponent, selector: "mm-list-view", inputs: ["pageSize", "skip", "rowIsClickable", "showRowCheckBoxes", "showRowSelectAllCheckBox", "contextMenuType", "leftToolbarActions", "rightToolbarActions", "actionCommandItems", "contextMenuCommandItems", "excelExportFileName", "pdfExportFileName", "pageable", "sortable", "rowFilterEnabled", "searchTextBoxEnabled", "rowClass", "messages", "selectable", "columns"], outputs: ["rowClicked"] }, { kind: "directive", type: EntityAssociationsDataSourceDirective, selector: "[mmEntityAssociationsDataSource]", exportAs: ["mmEntityAssociationsDataSource"] }, { kind: "component", type: DataMappingListComponent, selector: "mm-data-mapping-list", inputs: ["mappings", "sourceEntity", "expressionValidator"], outputs: ["addMapping", "removeMapping", "selectTarget", "selectSourceAttribute", "selectTargetAttribute", "mappingChanged", "navigateToTarget", "saveAll"] }] });
|
|
9046
|
+
`, isInline: true, styles: [".loading-state,.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;text-align:center;min-height:200px}.loading-state .error-message,.error-state .error-message{margin-bottom:16px;font-family:Roboto,sans-serif;color:#e74c3c}.entity-content{flex:1;display:flex;flex-direction:column;gap:24px}.entity-content .basic-info-card{padding:20px 24px;background:linear-gradient(180deg,var(--iron-navy),var(--surface-elevated));border:1px solid var(--octo-mint-30);border-radius:4px 16px;position:relative;box-shadow:0 4px 20px #0006,0 0 15px var(--octo-mint-08)}.entity-content .basic-info-card:before{content:\"\";position:absolute;top:0;left:0;width:4px;height:100%;background:linear-gradient(180deg,var(--octo-mint),var(--neo-cyan),var(--royal-violet));box-shadow:0 0 10px var(--octo-mint-50);border-radius:4px 0 0 4px}.entity-content .basic-info-card .basic-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}.entity-content .basic-info-card .basic-info-grid .info-item{display:flex;flex-direction:column;gap:8px}.entity-content .basic-info-card .basic-info-grid .info-item label{font-family:Montserrat,sans-serif;font-weight:600;font-size:.75rem;letter-spacing:.5px;text-transform:uppercase;color:var(--octo-mint-80)}.entity-content .basic-info-card .basic-info-grid .info-item .value{font-family:Roboto Mono,monospace;font-size:.875rem;color:rgba(var(--octo-text-color),.9);word-break:break-word;background:var(--deep-sea-40);padding:8px 12px;border-radius:4px;border:1px solid var(--octo-mint-15)}.entity-content .basic-info-card .basic-info-grid .info-item.with-action .value-with-action{display:flex;align-items:center}.entity-content .basic-info-card .basic-info-grid .info-item.with-action .value-with-action .value{flex:1;font-family:Roboto Mono,monospace;font-size:.875rem;color:rgba(var(--octo-text-color),.9);word-break:break-word}.entity-content .entity-tabs{flex:1;min-height:400px;background:linear-gradient(180deg,var(--iron-navy),var(--surface-elevated));border:1px solid var(--octo-mint-30);border-radius:4px 16px;overflow:hidden;position:relative}.entity-content .entity-tabs:before{content:\"\";position:absolute;top:0;left:0;width:4px;height:100%;background:linear-gradient(180deg,var(--octo-mint),var(--neo-cyan),var(--royal-violet));box-shadow:0 0 10px var(--octo-mint-50);z-index:1}.entity-content .entity-tabs ::ng-deep .k-tabstrip{background:transparent}.entity-content .entity-tabs ::ng-deep .k-tabstrip .k-tabstrip-items-wrapper{background:linear-gradient(90deg,var(--octo-mint-10),transparent);border-bottom:1px solid var(--octo-mint-20);padding-left:20px}.entity-content .entity-tabs ::ng-deep .k-tabstrip .k-tabstrip-items-wrapper .k-tabstrip-items .k-item{background:transparent;border:none;color:rgba(var(--octo-text-color),.7);font-family:Montserrat,sans-serif;font-weight:600;font-size:.8rem;letter-spacing:.5px;text-transform:uppercase;padding:12px 20px;margin-right:4px;border-radius:4px 4px 0 0;transition:all .2s ease}.entity-content .entity-tabs ::ng-deep .k-tabstrip .k-tabstrip-items-wrapper .k-tabstrip-items .k-item:hover{background:var(--octo-mint-10);color:var(--octo-mint)}.entity-content .entity-tabs ::ng-deep .k-tabstrip .k-tabstrip-items-wrapper .k-tabstrip-items .k-item.k-active{background:linear-gradient(180deg,var(--octo-mint-20),transparent);color:var(--octo-mint);border-bottom:2px solid var(--octo-mint);box-shadow:0 0 10px var(--octo-mint-30)}.entity-content .entity-tabs ::ng-deep .k-tabstrip .k-tabstrip-content{background:transparent;border:none;padding:0}.entity-content .entity-tabs .tab-content{padding:20px 24px;height:100%;overflow-y:auto}.entity-content .entity-tabs .tab-content .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 40px;text-align:center}.entity-content .entity-tabs .tab-content .empty-state kendo-svgicon{font-size:64px;margin-bottom:20px;color:var(--octo-mint-40);text-shadow:0 0 20px var(--octo-mint-30)}.entity-content .entity-tabs .tab-content .empty-state p{margin:0;font-family:Montserrat,sans-serif;font-size:.9rem;color:rgba(var(--octo-text-color),.5);letter-spacing:.5px}.entity-content .entity-tabs .tab-content.properties-tab{padding:0;height:100%}.entity-content .entity-tabs .tab-content.properties-tab mm-property-grid{display:block;height:100%;width:100%}.entity-content .entity-tabs .tab-content.associations-tab{display:flex;flex-direction:column;gap:16px;padding:0;height:100%}.entity-content .entity-tabs .tab-content.associations-tab .associations-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:16px;padding:16px 20px;background:linear-gradient(90deg,var(--octo-mint-05),transparent);border-bottom:1px solid var(--octo-mint-20)}.entity-content .entity-tabs .tab-content.associations-tab .associations-toolbar .filter-group{display:flex;align-items:center;gap:10px}.entity-content .entity-tabs .tab-content.associations-tab .associations-toolbar .filter-group label{font-family:Montserrat,sans-serif;font-weight:600;font-size:.75rem;letter-spacing:.5px;text-transform:uppercase;color:var(--octo-mint-80);white-space:nowrap}.entity-content .entity-tabs .tab-content.associations-tab .associations-toolbar .filter-group kendo-dropdownlist{width:160px}.entity-content .entity-tabs .tab-content.associations-tab .associations-toolbar .filter-group kendo-textbox{width:220px}.entity-content .entity-tabs .tab-content.associations-tab mm-list-view{flex:1;display:block;height:calc(100% - 70px)}.entity-content .entity-tabs .tab-content.mapping-tab{padding:12px}.entity-content .entity-tabs .tab-content.mapping-tab .mapping-empty{display:flex;flex-direction:column;align-items:center;padding:24px 20px;text-align:center}.entity-content .entity-tabs .tab-content.mapping-tab .mapping-empty kendo-svgicon{font-size:36px;margin-bottom:10px;opacity:.5}.entity-content .entity-tabs .tab-content.mapping-tab .mapping-empty p{margin:0 0 12px;font-size:.85rem;color:var(--kendo-color-subtle, #6c757d)}.entity-content .entity-tabs .tab-content.mapping-tab .mapping-config{display:flex;flex-direction:column;gap:20px}.entity-content .entity-tabs .tab-content.mapping-tab .mapping-section{border:1px solid var(--kendo-color-border, #dee2e6);border-radius:6px;overflow:hidden}.entity-content .entity-tabs .tab-content.mapping-tab .mapping-section .section-header{padding:8px 14px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--kendo-color-on-primary, #ffffff);background:var(--kendo-color-primary, #ff6358)}.entity-content .entity-tabs .tab-content.mapping-tab .mapping-section .section-body{padding:12px 14px;display:flex;flex-direction:column;gap:10px}.entity-content .entity-tabs .tab-content.mapping-tab .mapping-field{display:flex;flex-direction:column;gap:4px}.entity-content .entity-tabs .tab-content.mapping-tab .mapping-field label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--kendo-color-subtle, #6c757d)}.entity-content .entity-tabs .tab-content.mapping-tab .mapping-target-display{display:flex;align-items:center;gap:8px}.entity-content .entity-tabs .tab-content.mapping-tab .mapping-target-display .target-type{font-size:.75rem;color:var(--kendo-color-subtle, #6c757d);font-family:monospace;padding:2px 6px;border-radius:3px;background:var(--kendo-color-surface-alt, #f8f9fa);border:1px solid var(--kendo-color-border, #dee2e6)}.entity-content .entity-tabs .tab-content.mapping-tab .mapping-target-display .target-name{font-weight:600;flex:1}.entity-content .entity-tabs .tab-content.mapping-tab .field-hint{font-size:.7rem;color:var(--kendo-color-subtle, #6c757d);font-style:italic;line-height:1.3}.entity-content .entity-tabs .tab-content.mapping-tab .attribute-picker{display:flex;align-items:center;gap:8px;padding:4px 10px;border-radius:4px;border:1px solid var(--kendo-color-border, #dee2e6);background:var(--kendo-color-surface-alt, #f8f9fa);min-height:32px}.entity-content .entity-tabs .tab-content.mapping-tab .attribute-picker .attribute-value{flex:1;font-family:monospace;font-size:.85rem}.entity-content .entity-tabs .tab-content.mapping-tab .mapping-actions{display:flex;gap:8px;justify-content:flex-end;padding-top:4px}@media(max-width:768px){.entity-content{gap:16px}.entity-content .basic-info-card{padding:16px 20px}.entity-content .basic-info-card .basic-info-grid{grid-template-columns:1fr;gap:16px}.entity-content .entity-tabs{min-height:300px}.entity-content .entity-tabs ::ng-deep .k-tabstrip .k-tabstrip-items-wrapper{padding-left:12px}.entity-content .entity-tabs ::ng-deep .k-tabstrip .k-tabstrip-items-wrapper .k-tabstrip-items .k-item{padding:10px 14px;font-size:.75rem}.entity-content .entity-tabs .tab-content{padding:16px}.entity-content .entity-tabs .tab-content.associations-tab .associations-toolbar{flex-direction:column;align-items:flex-start;gap:12px}.entity-content .entity-tabs .tab-content.associations-tab .associations-toolbar .filter-group{width:100%}.entity-content .entity-tabs .tab-content.associations-tab .associations-toolbar .filter-group kendo-dropdownlist,.entity-content .entity-tabs .tab-content.associations-tab .associations-toolbar .filter-group kendo-textbox{width:100%}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TabStripModule }, { kind: "component", type: i1$4.TabStripComponent, selector: "kendo-tabstrip", inputs: ["height", "animate", "tabAlignment", "tabPosition", "keepTabContent", "closable", "scrollable", "size", "closeIcon", "closeIconClass", "closeSVGIcon", "showContentArea"], outputs: ["tabSelect", "tabClose", "tabScroll"], exportAs: ["kendoTabStrip"] }, { kind: "component", type: i1$4.TabStripTabComponent, selector: "kendo-tabstrip-tab", inputs: ["title", "disabled", "cssClass", "cssStyle", "selected", "closable", "closeIcon", "closeIconClass", "closeSVGIcon"], exportAs: ["kendoTabStripTab"] }, { kind: "directive", type: i1$4.TabContentDirective, selector: "[kendoTabContent]" }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i1$1.ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "ngmodule", type: SVGIconModule }, { kind: "component", type: i5$1.SVGIconComponent, selector: "kendo-svg-icon, kendo-svgicon", inputs: ["icon"], exportAs: ["kendoSVGIcon"] }, { kind: "ngmodule", type: CardModule }, { kind: "component", type: i1$4.CardComponent, selector: "kendo-card", inputs: ["orientation", "width"] }, { kind: "component", type: i1$4.CardBodyComponent, selector: "kendo-card-body" }, { kind: "component", type: i1$4.CardHeaderComponent, selector: "kendo-card-header" }, { kind: "ngmodule", type: DropDownListModule }, { kind: "component", type: i3$1.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "adaptiveTitle", "adaptiveSubtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "leftRightArrowsNavigation", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { kind: "ngmodule", type: TextBoxModule }, { kind: "component", type: i5.TextBoxComponent, selector: "kendo-textbox", inputs: ["focusableId", "title", "type", "disabled", "readonly", "tabindex", "value", "selectOnFocus", "showSuccessIcon", "showErrorIcon", "clearButton", "successIcon", "successSvgIcon", "errorIcon", "errorSvgIcon", "clearButtonIcon", "clearButtonSvgIcon", "size", "rounded", "fillMode", "tabIndex", "placeholder", "maxlength", "inputAttributes"], outputs: ["valueChange", "inputFocus", "inputBlur", "focus", "blur"], exportAs: ["kendoTextBox"] }, { kind: "component", type: PropertyGridComponent, selector: "mm-property-grid", inputs: ["data", "config", "showTypeColumn", "messages"], outputs: ["propertyChange", "saveRequested", "binaryDownload"] }, { kind: "component", type: ListViewComponent, selector: "mm-list-view", inputs: ["pageSize", "skip", "rowIsClickable", "showRowCheckBoxes", "showRowSelectAllCheckBox", "contextMenuType", "leftToolbarActions", "rightToolbarActions", "actionCommandItems", "contextMenuCommandItems", "excelExportFileName", "pdfExportFileName", "pageable", "sortable", "rowFilterEnabled", "searchTextBoxEnabled", "rowClass", "messages", "selectable", "columns"], outputs: ["rowClicked"] }, { kind: "directive", type: EntityAssociationsDataSourceDirective, selector: "[mmEntityAssociationsDataSource]", exportAs: ["mmEntityAssociationsDataSource"] }, { kind: "component", type: DataMappingListComponent, selector: "mm-data-mapping-list", inputs: ["messages", "mappings", "sourceEntity", "expressionValidator"], outputs: ["addMapping", "removeMapping", "selectTarget", "selectSourceAttribute", "selectTargetAttribute", "mappingChanged", "navigateToTarget", "saveAll"] }] });
|
|
8897
9047
|
}
|
|
8898
9048
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: EntityDetailViewComponent, decorators: [{
|
|
8899
9049
|
type: Component,
|
|
@@ -9014,6 +9164,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
9014
9164
|
[data]="propertyGridItems"
|
|
9015
9165
|
[config]="propertyGridConfig"
|
|
9016
9166
|
[showTypeColumn]="true"
|
|
9167
|
+
[messages]="_messages.propertyGrid"
|
|
9017
9168
|
(propertyChange)="propertyChange.emit($event)"
|
|
9018
9169
|
(binaryDownload)="onBinaryDownload($event)"
|
|
9019
9170
|
>
|
|
@@ -9082,6 +9233,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
9082
9233
|
[pageable]="{ buttonCount: 3, pageSizes: [10, 20, 50] }"
|
|
9083
9234
|
[pageSize]="20"
|
|
9084
9235
|
[selectable]="{ mode: 'single', enabled: true }"
|
|
9236
|
+
[messages]="_messages.listView ?? {}"
|
|
9085
9237
|
[columns]="[
|
|
9086
9238
|
{
|
|
9087
9239
|
field: 'ckAssociationRoleId',
|
|
@@ -9124,6 +9276,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
9124
9276
|
<ng-template kendoTabContent>
|
|
9125
9277
|
<div class="tab-content mapping-tab">
|
|
9126
9278
|
<mm-data-mapping-list
|
|
9279
|
+
[messages]="_messages"
|
|
9127
9280
|
[mappings]="dataMappings"
|
|
9128
9281
|
[sourceEntity]="entity"
|
|
9129
9282
|
[expressionValidator]="expressionValidator"
|
|
@@ -9314,6 +9467,10 @@ class EntityDetailComponent {
|
|
|
9314
9467
|
attributeSelectorDialog = inject(AttributeSelectorDialogService);
|
|
9315
9468
|
destroy$ = new Subject();
|
|
9316
9469
|
arrowLeftIcon = arrowLeftIcon;
|
|
9470
|
+
_messages = { ...DEFAULT_RUNTIME_BROWSER_MESSAGES };
|
|
9471
|
+
set messages(value) {
|
|
9472
|
+
this._messages = { ...DEFAULT_RUNTIME_BROWSER_MESSAGES, ...(value ?? {}) };
|
|
9473
|
+
}
|
|
9317
9474
|
showDataMapping = true;
|
|
9318
9475
|
entity = null;
|
|
9319
9476
|
loading = false;
|
|
@@ -9332,7 +9489,7 @@ class EntityDetailComponent {
|
|
|
9332
9489
|
await this.loadEntity();
|
|
9333
9490
|
}
|
|
9334
9491
|
catch (error) {
|
|
9335
|
-
this.error = 'Invalid entity ID format';
|
|
9492
|
+
this.error = this._messages.entityIdInvalidFormat ?? 'Invalid entity ID format';
|
|
9336
9493
|
console.error('Failed to decode entity ID:', error);
|
|
9337
9494
|
}
|
|
9338
9495
|
}
|
|
@@ -9351,7 +9508,7 @@ class EntityDetailComponent {
|
|
|
9351
9508
|
try {
|
|
9352
9509
|
this.entity = await this.dataSource.fetchEntityDetails(this.entityId.rtId, this.entityId.ckTypeId);
|
|
9353
9510
|
if (!this.entity) {
|
|
9354
|
-
this.error = 'Entity not found';
|
|
9511
|
+
this.error = this._messages.entityNotFound ?? 'Entity not found';
|
|
9355
9512
|
}
|
|
9356
9513
|
else {
|
|
9357
9514
|
await this.loadDataMappings();
|
|
@@ -9359,7 +9516,7 @@ class EntityDetailComponent {
|
|
|
9359
9516
|
}
|
|
9360
9517
|
catch (error) {
|
|
9361
9518
|
console.error('Failed to load entity:', error);
|
|
9362
|
-
this.error = 'Failed to load entity details';
|
|
9519
|
+
this.error = this._messages.failedToLoadEntityDetails ?? 'Failed to load entity details';
|
|
9363
9520
|
}
|
|
9364
9521
|
finally {
|
|
9365
9522
|
this.loading = false;
|
|
@@ -9527,7 +9684,7 @@ class EntityDetailComponent {
|
|
|
9527
9684
|
}));
|
|
9528
9685
|
this.dataMappings = this.dataMappings.filter((m) => m.rtId !== mapping.rtId);
|
|
9529
9686
|
this.notificationService.show({
|
|
9530
|
-
content: 'Data mapping removed',
|
|
9687
|
+
content: this._messages.mappingRemoved ?? 'Data mapping removed',
|
|
9531
9688
|
type: { style: 'success', icon: true },
|
|
9532
9689
|
position: { horizontal: 'right', vertical: 'top' },
|
|
9533
9690
|
hideAfter: 2000,
|
|
@@ -9618,7 +9775,7 @@ class EntityDetailComponent {
|
|
|
9618
9775
|
m._originalTargetRtId = m.targetRtId;
|
|
9619
9776
|
}
|
|
9620
9777
|
this.notificationService.show({
|
|
9621
|
-
content: '
|
|
9778
|
+
content: this._messages.mappingSaved ?? 'Data mapping saved successfully',
|
|
9622
9779
|
type: { style: 'success', icon: true },
|
|
9623
9780
|
position: { horizontal: 'right', vertical: 'top' },
|
|
9624
9781
|
hideAfter: 2000,
|
|
@@ -9628,7 +9785,7 @@ class EntityDetailComponent {
|
|
|
9628
9785
|
catch (error) {
|
|
9629
9786
|
console.error('Failed to save mappings:', error);
|
|
9630
9787
|
this.notificationService.show({
|
|
9631
|
-
content: 'Failed to save data
|
|
9788
|
+
content: this._messages.failedToSaveMapping ?? 'Failed to save data mapping',
|
|
9632
9789
|
type: { style: 'error', icon: true },
|
|
9633
9790
|
position: { horizontal: 'right', vertical: 'top' },
|
|
9634
9791
|
hideAfter: 3000,
|
|
@@ -9637,7 +9794,7 @@ class EntityDetailComponent {
|
|
|
9637
9794
|
}
|
|
9638
9795
|
}
|
|
9639
9796
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: EntityDetailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9640
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: EntityDetailComponent, isStandalone: true, selector: "mm-entity-detail", ngImport: i0, template: `
|
|
9797
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: EntityDetailComponent, isStandalone: true, selector: "mm-entity-detail", inputs: { messages: "messages" }, ngImport: i0, template: `
|
|
9641
9798
|
<div class="entity-detail">
|
|
9642
9799
|
<div class="entity-detail-header">
|
|
9643
9800
|
<button
|
|
@@ -9646,7 +9803,7 @@ class EntityDetailComponent {
|
|
|
9646
9803
|
[svgIcon]="arrowLeftIcon"
|
|
9647
9804
|
(click)="navigateBack()"
|
|
9648
9805
|
>
|
|
9649
|
-
Back
|
|
9806
|
+
{{ _messages.back ?? 'Back' }}
|
|
9650
9807
|
</button>
|
|
9651
9808
|
|
|
9652
9809
|
@if (entity) {
|
|
@@ -9665,6 +9822,7 @@ class EntityDetailComponent {
|
|
|
9665
9822
|
[error]="error"
|
|
9666
9823
|
[showDataMapping]="showDataMapping"
|
|
9667
9824
|
[dataMappings]="dataMappings"
|
|
9825
|
+
[messages]="_messages"
|
|
9668
9826
|
(retry)="loadEntity()"
|
|
9669
9827
|
(propertyChange)="onPropertyChange($event)"
|
|
9670
9828
|
(navigateToEntity)="navigateToEntity($event.rtId, $event.ckTypeId)"
|
|
@@ -9696,7 +9854,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
9696
9854
|
[svgIcon]="arrowLeftIcon"
|
|
9697
9855
|
(click)="navigateBack()"
|
|
9698
9856
|
>
|
|
9699
|
-
Back
|
|
9857
|
+
{{ _messages.back ?? 'Back' }}
|
|
9700
9858
|
</button>
|
|
9701
9859
|
|
|
9702
9860
|
@if (entity) {
|
|
@@ -9715,6 +9873,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
9715
9873
|
[error]="error"
|
|
9716
9874
|
[showDataMapping]="showDataMapping"
|
|
9717
9875
|
[dataMappings]="dataMappings"
|
|
9876
|
+
[messages]="_messages"
|
|
9718
9877
|
(retry)="loadEntity()"
|
|
9719
9878
|
(propertyChange)="onPropertyChange($event)"
|
|
9720
9879
|
(navigateToEntity)="navigateToEntity($event.rtId, $event.ckTypeId)"
|
|
@@ -9729,7 +9888,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
9729
9888
|
</mm-entity-detail-view>
|
|
9730
9889
|
</div>
|
|
9731
9890
|
`, styles: [":host{display:block;height:100%;width:100%}.entity-detail{height:100%;display:flex;flex-direction:column;padding:24px;box-sizing:border-box;overflow-y:auto}.entity-detail .entity-detail-header{display:flex;align-items:center;gap:20px;margin-bottom:24px;padding:20px 24px;background:linear-gradient(180deg,var(--iron-navy),var(--surface-elevated));border:1px solid var(--octo-mint-30);border-radius:4px 16px;position:relative;box-shadow:0 4px 20px #0006,0 0 15px var(--octo-mint-08)}.entity-detail .entity-detail-header:before{content:\"\";position:absolute;top:0;left:0;width:4px;height:100%;background:linear-gradient(180deg,var(--octo-mint),var(--neo-cyan),var(--royal-violet));box-shadow:0 0 10px var(--octo-mint-50);border-radius:4px 0 0 4px}.entity-detail .entity-detail-header .header-info{flex:1}.entity-detail .entity-detail-header .header-info .entity-title h2{margin:0 0 8px;font-family:Montserrat,sans-serif;font-size:1.4rem;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--octo-text-color);text-shadow:0 0 10px rgba(0,0,0,.3)}.entity-detail .entity-detail-header .header-info .entity-type{margin:0;font-family:Roboto Mono,monospace;font-size:.8rem;background:var(--deep-sea-60);padding:6px 12px;border-radius:4px;border:1px solid var(--neo-cyan-30);display:inline-block;color:var(--neo-cyan)}.entity-detail mm-entity-detail-view{flex:1;display:flex;flex-direction:column;overflow-y:auto}@media(max-width:768px){.entity-detail{padding:16px}.entity-detail .entity-detail-header{flex-direction:column;align-items:flex-start;gap:12px;padding:16px 20px}.entity-detail .entity-detail-header .header-info .entity-title h2{font-size:1.1rem}}\n"] }]
|
|
9732
|
-
}]
|
|
9891
|
+
}], propDecorators: { messages: [{
|
|
9892
|
+
type: Input
|
|
9893
|
+
}] } });
|
|
9733
9894
|
|
|
9734
9895
|
const GetCkTypeAssociationRolesDocumentDto = gql `
|
|
9735
9896
|
query getCkTypeAssociationRoles($ckTypeId: String!) {
|
|
@@ -11404,18 +11565,16 @@ class AttributesGroupComponent {
|
|
|
11404
11565
|
parentFormGroup = input.required(...(ngDevMode ? [{ debugName: "parentFormGroup" }] : /* istanbul ignore next */ []));
|
|
11405
11566
|
isRecord = input(false, ...(ngDevMode ? [{ debugName: "isRecord" }] : /* istanbul ignore next */ []));
|
|
11406
11567
|
initialValues = input(...(ngDevMode ? [undefined, { debugName: "initialValues" }] : /* istanbul ignore next */ []));
|
|
11568
|
+
_messages = { ...DEFAULT_RUNTIME_BROWSER_MESSAGES };
|
|
11569
|
+
set messages(value) {
|
|
11570
|
+
this._messages = { ...DEFAULT_RUNTIME_BROWSER_MESSAGES, ...(value ?? {}) };
|
|
11571
|
+
}
|
|
11407
11572
|
// ─── Derived state & resource ────────────────────────────────────────────────────
|
|
11408
11573
|
attributes = computed(() => this.attributesResource.value() ?? [], ...(ngDevMode ? [{ debugName: "attributes" }] : /* istanbul ignore next */ []));
|
|
11409
11574
|
selectedIndices = new Map();
|
|
11410
11575
|
loadedRecords = new Map();
|
|
11411
11576
|
baselineValues = new Map();
|
|
11412
11577
|
binaryRestrictions = { maxFileSize: 16 * 1024 * 1024 };
|
|
11413
|
-
/** Label and tooltip for BINARY when value was restored from base64 (content is real; file name is a placeholder). */
|
|
11414
|
-
binaryReferenceLabel = "Preview (restored from stored data)";
|
|
11415
|
-
binaryReferenceTooltip = "Content and size are from stored data. File name is a placeholder because the original name is not stored.";
|
|
11416
|
-
/** Label and tooltip for BINARY_LINKED when value is a reference/mockup (no content, metadata only). */
|
|
11417
|
-
referencePreviewLabel = "Preview (reference file)";
|
|
11418
|
-
referencePreviewTooltip = "Shows metadata of an existing file in the system; content is not loaded. Replace with a file to change.";
|
|
11419
11578
|
/** True when the control value is a BINARY file restored from base64 (reference: real content, placeholder name). */
|
|
11420
11579
|
isBinaryReferenceFile(attrName) {
|
|
11421
11580
|
const control = this.parentFormGroup()?.get(attrName);
|
|
@@ -11701,12 +11860,12 @@ class AttributesGroupComponent {
|
|
|
11701
11860
|
return EMPTY_INITIAL_VALUES;
|
|
11702
11861
|
}
|
|
11703
11862
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AttributesGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
11704
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AttributesGroupComponent, isStandalone: true, selector: "mm-attributes-group", inputs: { ckId: { classPropertyName: "ckId", publicName: "ckId", isSignal: true, isRequired: true, transformFunction: null }, parentFormGroup: { classPropertyName: "parentFormGroup", publicName: "parentFormGroup", isSignal: true, isRequired: true, transformFunction: null }, isRecord: { classPropertyName: "isRecord", publicName: "isRecord", isSignal: true, isRequired: false, transformFunction: null }, initialValues: { classPropertyName: "initialValues", publicName: "initialValues", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
11863
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AttributesGroupComponent, isStandalone: true, selector: "mm-attributes-group", inputs: { ckId: { classPropertyName: "ckId", publicName: "ckId", isSignal: true, isRequired: true, transformFunction: null }, parentFormGroup: { classPropertyName: "parentFormGroup", publicName: "parentFormGroup", isSignal: true, isRequired: true, transformFunction: null }, isRecord: { classPropertyName: "isRecord", publicName: "isRecord", isSignal: true, isRequired: false, transformFunction: null }, initialValues: { classPropertyName: "initialValues", publicName: "initialValues", isSignal: true, isRequired: false, transformFunction: null }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: false, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
11705
11864
|
<div class="attributes-form-container" [formGroup]="parentFormGroup()">
|
|
11706
11865
|
<kendo-card [style.margin-bottom.px]="10">
|
|
11707
11866
|
<kendo-card-header>
|
|
11708
11867
|
<div class="header-title">
|
|
11709
|
-
<strong>{{ isRecord() ? 'Record' :
|
|
11868
|
+
<strong>{{ isRecord() ? (_messages.recordLabel ?? 'Record') : _messages.attributes }}:</strong>
|
|
11710
11869
|
{{ ckId() }}
|
|
11711
11870
|
</div>
|
|
11712
11871
|
</kendo-card-header>
|
|
@@ -11732,8 +11891,7 @@ class AttributesGroupComponent {
|
|
|
11732
11891
|
@if (attr.isOptional) {
|
|
11733
11892
|
<div class="record-actions-info">
|
|
11734
11893
|
<p class="record-actions-description">
|
|
11735
|
-
|
|
11736
|
-
record. Empty arrays are not saved.
|
|
11894
|
+
{{ _messages.recordArrayHint }}
|
|
11737
11895
|
</p>
|
|
11738
11896
|
</div>
|
|
11739
11897
|
}
|
|
@@ -11758,6 +11916,7 @@ class AttributesGroupComponent {
|
|
|
11758
11916
|
[isRecord]="true"
|
|
11759
11917
|
[parentFormGroup]="asFormGroup(item)"
|
|
11760
11918
|
[initialValues]="getRawInitialValue(attr.attributeName, $index)"
|
|
11919
|
+
[messages]="_messages"
|
|
11761
11920
|
/>
|
|
11762
11921
|
</div>
|
|
11763
11922
|
</ng-template>
|
|
@@ -11770,7 +11929,7 @@ class AttributesGroupComponent {
|
|
|
11770
11929
|
style="margin-top: 10px; display: flex; gap: 8px;"
|
|
11771
11930
|
>
|
|
11772
11931
|
<button kendoButton size="small" (click)="addRecord(attr)">
|
|
11773
|
-
|
|
11932
|
+
{{ _messages.addRecord }}
|
|
11774
11933
|
</button>
|
|
11775
11934
|
<button
|
|
11776
11935
|
kendoButton
|
|
@@ -11780,7 +11939,7 @@ class AttributesGroupComponent {
|
|
|
11780
11939
|
[disabled]="!canRemoveRecord(attr)"
|
|
11781
11940
|
(click)="removeRecord(attr)"
|
|
11782
11941
|
>
|
|
11783
|
-
|
|
11942
|
+
{{ _messages.removeRecord }}
|
|
11784
11943
|
</button>
|
|
11785
11944
|
</div>
|
|
11786
11945
|
</div>
|
|
@@ -11799,8 +11958,7 @@ class AttributesGroupComponent {
|
|
|
11799
11958
|
@if (attr.isOptional) {
|
|
11800
11959
|
<div class="record-actions-info">
|
|
11801
11960
|
<p class="record-actions-description">
|
|
11802
|
-
|
|
11803
|
-
remove all data and clear validation.
|
|
11961
|
+
{{ _messages.recordHint }}
|
|
11804
11962
|
</p>
|
|
11805
11963
|
</div>
|
|
11806
11964
|
}
|
|
@@ -11814,6 +11972,7 @@ class AttributesGroupComponent {
|
|
|
11814
11972
|
asFormGroup(parentFormGroup().get(attr.attributeName)!)
|
|
11815
11973
|
"
|
|
11816
11974
|
[initialValues]="getRawInitialValue(attr.attributeName)"
|
|
11975
|
+
[messages]="_messages"
|
|
11817
11976
|
/>
|
|
11818
11977
|
</div>
|
|
11819
11978
|
}
|
|
@@ -11826,7 +11985,7 @@ class AttributesGroupComponent {
|
|
|
11826
11985
|
[disabled]="isRecordLoaded(attr.attributeName)"
|
|
11827
11986
|
(click)="loadRecord(attr)"
|
|
11828
11987
|
>
|
|
11829
|
-
|
|
11988
|
+
{{ _messages.loadRecord }}
|
|
11830
11989
|
</button>
|
|
11831
11990
|
<button
|
|
11832
11991
|
kendoButton
|
|
@@ -11836,7 +11995,7 @@ class AttributesGroupComponent {
|
|
|
11836
11995
|
[disabled]="!isRecordLoaded(attr.attributeName)"
|
|
11837
11996
|
(click)="unloadRecord(attr)"
|
|
11838
11997
|
>
|
|
11839
|
-
|
|
11998
|
+
{{ _messages.unloadRecord }}
|
|
11840
11999
|
</button>
|
|
11841
12000
|
</div>
|
|
11842
12001
|
}
|
|
@@ -11860,14 +12019,15 @@ class AttributesGroupComponent {
|
|
|
11860
12019
|
class="geospatial-grid"
|
|
11861
12020
|
>
|
|
11862
12021
|
<mm-attribute-field
|
|
11863
|
-
[hintText]="
|
|
12022
|
+
[hintText]="_messages.longitudeHint ?? ''"
|
|
11864
12023
|
[attribute]="attr"
|
|
11865
|
-
[overrideLabelText]="
|
|
12024
|
+
[overrideLabelText]="_messages.longitude"
|
|
11866
12025
|
[control]="
|
|
11867
12026
|
parentFormGroup().get(attr.attributeName + '.longitude')!
|
|
11868
12027
|
"
|
|
11869
12028
|
[baselineValue]="getBaselineValue(attr.attributeName + '.longitude')"
|
|
11870
12029
|
[fieldId]="attr.attributeName + '_lon'"
|
|
12030
|
+
[errorMessage]="_messages.attributeField?.errorMessage ?? 'This field is required or invalid.'"
|
|
11871
12031
|
>
|
|
11872
12032
|
<kendo-numerictextbox
|
|
11873
12033
|
[focusableId]="attr.attributeName + '_lon'"
|
|
@@ -11880,14 +12040,15 @@ class AttributesGroupComponent {
|
|
|
11880
12040
|
</mm-attribute-field>
|
|
11881
12041
|
|
|
11882
12042
|
<mm-attribute-field
|
|
11883
|
-
[hintText]="
|
|
12043
|
+
[hintText]="_messages.latitudeHint ?? ''"
|
|
11884
12044
|
[attribute]="attr"
|
|
11885
|
-
[overrideLabelText]="
|
|
12045
|
+
[overrideLabelText]="_messages.latitude"
|
|
11886
12046
|
[control]="
|
|
11887
12047
|
parentFormGroup().get(attr.attributeName + '.latitude')!
|
|
11888
12048
|
"
|
|
11889
12049
|
[baselineValue]="getBaselineValue(attr.attributeName + '.latitude')"
|
|
11890
12050
|
[fieldId]="attr.attributeName + '_lat'"
|
|
12051
|
+
[errorMessage]="_messages.attributeField?.errorMessage ?? 'This field is required or invalid.'"
|
|
11891
12052
|
>
|
|
11892
12053
|
<kendo-numerictextbox
|
|
11893
12054
|
[focusableId]="attr.attributeName + '_lat'"
|
|
@@ -11907,6 +12068,7 @@ class AttributesGroupComponent {
|
|
|
11907
12068
|
[control]="parentFormGroup().get(attr.attributeName)!"
|
|
11908
12069
|
[baselineValue]="getBaselineValue(attr.attributeName)"
|
|
11909
12070
|
[fieldId]="attr.attributeName"
|
|
12071
|
+
[errorMessage]="_messages.attributeField?.errorMessage ?? 'This field is required or invalid.'"
|
|
11910
12072
|
>
|
|
11911
12073
|
@if (recognition.isNumber(attr.attributeValueType)) {
|
|
11912
12074
|
<kendo-numerictextbox
|
|
@@ -11935,10 +12097,17 @@ class AttributesGroupComponent {
|
|
|
11935
12097
|
[focusableId]="attr.attributeName"
|
|
11936
12098
|
[formControlName]="attr.attributeName"
|
|
11937
12099
|
[restrictions]="binaryRestrictions"
|
|
11938
|
-
|
|
12100
|
+
>
|
|
12101
|
+
<kendo-fileselect-messages
|
|
12102
|
+
[dropFilesHere]="_messages.dragDrop?.dropZone ?? 'Drop files here to upload'"
|
|
12103
|
+
[invalidMaxFileSize]="_messages.dragDrop?.errorFileTooBig ?? 'File size too large.'"
|
|
12104
|
+
[invalidFileExtension]="_messages.dragDrop?.errorInvalidType ?? 'File type not allowed.'"
|
|
12105
|
+
[fileStatusFailed]="_messages.dragDrop?.errorUploadFailed ?? 'File failed to upload.'"
|
|
12106
|
+
/>
|
|
12107
|
+
</kendo-fileselect>
|
|
11939
12108
|
@if (isBinaryReferenceFile(attr.attributeName)) {
|
|
11940
|
-
<span class="binary-linked-reference-hint" [title]="
|
|
11941
|
-
{{
|
|
12109
|
+
<span class="binary-linked-reference-hint" [title]="_messages.binaryReference?.tooltip ?? 'Content and size are from stored data. File name is a placeholder because the original name is not stored.'">
|
|
12110
|
+
{{ _messages.binaryReference?.label ?? 'Preview (restored from stored data)' }}
|
|
11942
12111
|
</span>
|
|
11943
12112
|
}
|
|
11944
12113
|
</div>
|
|
@@ -11948,10 +12117,17 @@ class AttributesGroupComponent {
|
|
|
11948
12117
|
[multiple]="false"
|
|
11949
12118
|
[focusableId]="attr.attributeName"
|
|
11950
12119
|
[formControlName]="attr.attributeName"
|
|
11951
|
-
|
|
12120
|
+
>
|
|
12121
|
+
<kendo-fileselect-messages
|
|
12122
|
+
[dropFilesHere]="_messages.dragDrop?.dropZone ?? 'Drop files here to upload'"
|
|
12123
|
+
[invalidMaxFileSize]="_messages.dragDrop?.errorFileTooBig ?? 'File size too large.'"
|
|
12124
|
+
[invalidFileExtension]="_messages.dragDrop?.errorInvalidType ?? 'File type not allowed.'"
|
|
12125
|
+
[fileStatusFailed]="_messages.dragDrop?.errorUploadFailed ?? 'File failed to upload.'"
|
|
12126
|
+
/>
|
|
12127
|
+
</kendo-fileselect>
|
|
11952
12128
|
@if (isReferencePreviewFile(attr.attributeName)) {
|
|
11953
|
-
<span class="binary-linked-reference-hint" [title]="
|
|
11954
|
-
{{
|
|
12129
|
+
<span class="binary-linked-reference-hint" [title]="_messages.referencePreview?.tooltip ?? 'Shows metadata of an existing file in the system; content is not loaded. Replace with a file to change.'">
|
|
12130
|
+
{{ _messages.referencePreview?.label ?? 'Preview (reference file)' }}
|
|
11955
12131
|
</span>
|
|
11956
12132
|
}
|
|
11957
12133
|
</div>
|
|
@@ -11986,7 +12162,7 @@ class AttributesGroupComponent {
|
|
|
11986
12162
|
</kendo-card-body>
|
|
11987
12163
|
</kendo-card>
|
|
11988
12164
|
</div>
|
|
11989
|
-
`, isInline: true, styles: [".attributes-form-container ::ng-deep kendo-card kendo-card-body{display:flex;flex-direction:column;gap:16px}.attributes-form-container ::ng-deep kendo-label{display:flex;flex-direction:column;gap:4px}.attributes-form-container ::ng-deep kendo-label label{text-transform:uppercase}.header-content{display:flex;flex-direction:column;gap:4px}.record-array-content,.tab-content-wrapper{display:flex;flex-direction:column;gap:16px}.record-actions-info{display:flex;flex-direction:column;gap:12px;padding:16px;background-color:var(--kendo-color-surface-alt, rgba(0, 0, 0, .05));border:1px solid var(--kendo-color-border, rgba(0, 0, 0, .1));border-radius:4px;margin-bottom:16px}.record-actions-description{margin:0;font-size:13px;color:var(--kendo-color-subtle, rgba(0, 0, 0, .6));line-height:1.5}.record-array-actions{display:flex;gap:8px;justify-content:flex-start;padding-top:0}.record-actions{margin-top:16px;display:flex;gap:8px;justify-content:flex-start;padding-top:0}.binary-linked-wrap{display:flex;flex-direction:column;gap:6px}.binary-linked-reference-hint{font-size:.75rem;color:var(--kendo-color-primary, #0f6dff);font-style:italic}\n"], dependencies: [{ kind: "component", type: i0.forwardRef(() => AttributesGroupComponent), selector: "mm-attributes-group", inputs: ["ckId", "parentFormGroup", "isRecord", "initialValues"] }, { kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "ngmodule", type: i0.forwardRef(() => ReactiveFormsModule) }, { kind: "directive", type: i0.forwardRef(() => i1.NgControlStatus), selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i0.forwardRef(() => i1.NgControlStatusGroup), selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i0.forwardRef(() => i1.FormGroupDirective), selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i0.forwardRef(() => i1.FormControlName), selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i0.forwardRef(() => i1.FormGroupName), selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: i0.forwardRef(() => i1$4.CardComponent), selector: "kendo-card", inputs: ["orientation", "width"] }, { kind: "component", type: i0.forwardRef(() => i1$4.CardBodyComponent), selector: "kendo-card-body" }, { kind: "component", type: i0.forwardRef(() => i1$4.CardHeaderComponent), selector: "kendo-card-header" }, { kind: "component", type: i0.forwardRef(() => i1$4.ExpansionPanelComponent), selector: "kendo-expansionpanel", inputs: ["title", "subtitle", "disabled", "expanded", "svgExpandIcon", "svgCollapseIcon", "expandIcon", "collapseIcon", "animation"], outputs: ["expandedChange", "action", "expand", "collapse"], exportAs: ["kendoExpansionPanel"] }, { kind: "directive", type: i0.forwardRef(() => i1$4.ExpansionPanelTitleDirective), selector: "[kendoExpansionPanelTitleDirective]" }, { kind: "component", type: i0.forwardRef(() => i1$4.TabStripComponent), selector: "kendo-tabstrip", inputs: ["height", "animate", "tabAlignment", "tabPosition", "keepTabContent", "closable", "scrollable", "size", "closeIcon", "closeIconClass", "closeSVGIcon", "showContentArea"], outputs: ["tabSelect", "tabClose", "tabScroll"], exportAs: ["kendoTabStrip"] }, { kind: "component", type: i0.forwardRef(() => i1$4.TabStripTabComponent), selector: "kendo-tabstrip-tab", inputs: ["title", "disabled", "cssClass", "cssStyle", "selected", "closable", "closeIcon", "closeIconClass", "closeSVGIcon"], exportAs: ["kendoTabStripTab"] }, { kind: "directive", type: i0.forwardRef(() => i1$4.TabContentDirective), selector: "[kendoTabContent]" }, { kind: "component", type: i0.forwardRef(() => i5.TextBoxComponent), selector: "kendo-textbox", inputs: ["focusableId", "title", "type", "disabled", "readonly", "tabindex", "value", "selectOnFocus", "showSuccessIcon", "showErrorIcon", "clearButton", "successIcon", "successSvgIcon", "errorIcon", "errorSvgIcon", "clearButtonIcon", "clearButtonSvgIcon", "size", "rounded", "fillMode", "tabIndex", "placeholder", "maxlength", "inputAttributes"], outputs: ["valueChange", "inputFocus", "inputBlur", "focus", "blur"], exportAs: ["kendoTextBox"] }, { kind: "component", type: i0.forwardRef(() => i5.NumericTextBoxComponent), selector: "kendo-numerictextbox", inputs: ["focusableId", "disabled", "readonly", "title", "autoCorrect", "format", "max", "min", "decimals", "placeholder", "step", "spinners", "rangeValidation", "tabindex", "tabIndex", "changeValueOnScroll", "selectOnFocus", "value", "maxlength", "size", "rounded", "fillMode", "inputAttributes"], outputs: ["valueChange", "focus", "blur", "inputFocus", "inputBlur"], exportAs: ["kendoNumericTextBox"] }, { kind: "component", type: i0.forwardRef(() => i5.SwitchComponent), selector: "kendo-switch", inputs: ["focusableId", "onLabel", "offLabel", "checked", "disabled", "readonly", "tabindex", "size", "thumbRounded", "trackRounded", "tabIndex"], outputs: ["focus", "blur", "valueChange"], exportAs: ["kendoSwitch"] }, { kind: "component", type: i0.forwardRef(() => i1$5.LabelComponent), selector: "kendo-label", inputs: ["text", "for", "optional", "labelCssStyle", "labelCssClass"], exportAs: ["kendoLabel"] }, { kind: "component", type: i0.forwardRef(() => i1$1.ButtonComponent), selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: i0.forwardRef(() => i3$1.DropDownListComponent), selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "adaptiveTitle", "adaptiveSubtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "leftRightArrowsNavigation", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { kind: "component", type: i0.forwardRef(() => i3$1.MultiSelectComponent), selector: "kendo-multiselect", inputs: ["showStickyHeader", "focusableId", "autoClose", "loading", "data", "value", "valueField", "textField", "tabindex", "tabIndex", "size", "rounded", "fillMode", "placeholder", "adaptiveMode", "adaptiveTitle", "adaptiveSubtitle", "disabled", "itemDisabled", "checkboxes", "readonly", "filterable", "virtual", "popupSettings", "listHeight", "valuePrimitive", "clearButton", "tagMapper", "allowCustom", "valueNormalizer", "inputAttributes"], outputs: ["filterChange", "valueChange", "open", "opened", "close", "closed", "focus", "blur", "inputFocus", "inputBlur", "removeTag"], exportAs: ["kendoMultiSelect"] }, { kind: "component", type: i0.forwardRef(() => i7.DateTimePickerComponent), selector: "kendo-datetimepicker", inputs: ["focusableId", "weekDaysFormat", "showOtherMonthDays", "value", "format", "twoDigitYearMax", "tabindex", "disabledDates", "popupSettings", "adaptiveTitle", "adaptiveSubtitle", "disabled", "readonly", "readOnlyInput", "cancelButton", "formatPlaceholder", "placeholder", "steps", "focusedDate", "calendarType", "animateCalendarNavigation", "weekNumber", "min", "max", "rangeValidation", "disabledDatesValidation", "incompleteDateValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "enableMouseWheel", "allowCaretMode", "clearButton", "autoFill", "adaptiveMode", "inputAttributes", "defaultTab", "size", "rounded", "fillMode", "headerTemplate", "footerTemplate", "footer"], outputs: ["valueChange", "open", "close", "focus", "blur", "escape"], exportAs: ["kendo-datetimepicker"] }, { kind: "component", type: i0.forwardRef(() => i7.TimePickerComponent), selector: "kendo-timepicker", inputs: ["focusableId", "disabled", "readonly", "readOnlyInput", "clearButton", "format", "formatPlaceholder", "placeholder", "min", "max", "incompleteDateValidation", "autoSwitchParts", "autoSwitchKeys", "enableMouseWheel", "allowCaretMode", "cancelButton", "nowButton", "steps", "popupSettings", "tabindex", "tabIndex", "adaptiveTitle", "adaptiveSubtitle", "rangeValidation", "adaptiveMode", "value", "size", "rounded", "fillMode", "inputAttributes"], outputs: ["valueChange", "focus", "blur", "open", "close", "escape"], exportAs: ["kendo-timepicker"] }, { kind: "component", type: i0.forwardRef(() => i8.FileSelectComponent), selector: "kendo-fileselect", inputs: ["name"], outputs: ["valueChange"], exportAs: ["kendoFileSelect"] }, { kind: "component", type: i0.forwardRef(() => AttributeFieldComponent), selector: "mm-attribute-field", inputs: ["attribute", "control", "baselineValue", "fieldId", "overrideLabelText", "showUndoButton", "undoButtonSize", "errorMessage", "hintText"], outputs: ["undo"] }] });
|
|
12165
|
+
`, isInline: true, styles: [".attributes-form-container ::ng-deep kendo-card kendo-card-body{display:flex;flex-direction:column;gap:16px}.attributes-form-container ::ng-deep kendo-label{display:flex;flex-direction:column;gap:4px}.attributes-form-container ::ng-deep kendo-label label{text-transform:uppercase}.header-content{display:flex;flex-direction:column;gap:4px}.record-array-content,.tab-content-wrapper{display:flex;flex-direction:column;gap:16px}.record-actions-info{display:flex;flex-direction:column;gap:12px;padding:16px;background-color:var(--kendo-color-surface-alt, rgba(0, 0, 0, .05));border:1px solid var(--kendo-color-border, rgba(0, 0, 0, .1));border-radius:4px;margin-bottom:16px}.record-actions-description{margin:0;font-size:13px;color:var(--kendo-color-subtle, rgba(0, 0, 0, .6));line-height:1.5}.record-array-actions{display:flex;gap:8px;justify-content:flex-start;padding-top:0}.record-actions{margin-top:16px;display:flex;gap:8px;justify-content:flex-start;padding-top:0}.binary-linked-wrap{display:flex;flex-direction:column;gap:6px}.binary-linked-reference-hint{font-size:.75rem;color:var(--kendo-color-primary, #0f6dff);font-style:italic}\n"], dependencies: [{ kind: "component", type: i0.forwardRef(() => AttributesGroupComponent), selector: "mm-attributes-group", inputs: ["ckId", "parentFormGroup", "isRecord", "initialValues", "messages"] }, { kind: "ngmodule", type: i0.forwardRef(() => CommonModule) }, { kind: "ngmodule", type: i0.forwardRef(() => ReactiveFormsModule) }, { kind: "directive", type: i0.forwardRef(() => i1.NgControlStatus), selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i0.forwardRef(() => i1.NgControlStatusGroup), selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i0.forwardRef(() => i1.FormGroupDirective), selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i0.forwardRef(() => i1.FormControlName), selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i0.forwardRef(() => i1.FormGroupName), selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: i0.forwardRef(() => i1$4.CardComponent), selector: "kendo-card", inputs: ["orientation", "width"] }, { kind: "component", type: i0.forwardRef(() => i1$4.CardBodyComponent), selector: "kendo-card-body" }, { kind: "component", type: i0.forwardRef(() => i1$4.CardHeaderComponent), selector: "kendo-card-header" }, { kind: "component", type: i0.forwardRef(() => i1$4.ExpansionPanelComponent), selector: "kendo-expansionpanel", inputs: ["title", "subtitle", "disabled", "expanded", "svgExpandIcon", "svgCollapseIcon", "expandIcon", "collapseIcon", "animation"], outputs: ["expandedChange", "action", "expand", "collapse"], exportAs: ["kendoExpansionPanel"] }, { kind: "directive", type: i0.forwardRef(() => i1$4.ExpansionPanelTitleDirective), selector: "[kendoExpansionPanelTitleDirective]" }, { kind: "component", type: i0.forwardRef(() => i1$4.TabStripComponent), selector: "kendo-tabstrip", inputs: ["height", "animate", "tabAlignment", "tabPosition", "keepTabContent", "closable", "scrollable", "size", "closeIcon", "closeIconClass", "closeSVGIcon", "showContentArea"], outputs: ["tabSelect", "tabClose", "tabScroll"], exportAs: ["kendoTabStrip"] }, { kind: "component", type: i0.forwardRef(() => i1$4.TabStripTabComponent), selector: "kendo-tabstrip-tab", inputs: ["title", "disabled", "cssClass", "cssStyle", "selected", "closable", "closeIcon", "closeIconClass", "closeSVGIcon"], exportAs: ["kendoTabStripTab"] }, { kind: "directive", type: i0.forwardRef(() => i1$4.TabContentDirective), selector: "[kendoTabContent]" }, { kind: "component", type: i0.forwardRef(() => i5.TextBoxComponent), selector: "kendo-textbox", inputs: ["focusableId", "title", "type", "disabled", "readonly", "tabindex", "value", "selectOnFocus", "showSuccessIcon", "showErrorIcon", "clearButton", "successIcon", "successSvgIcon", "errorIcon", "errorSvgIcon", "clearButtonIcon", "clearButtonSvgIcon", "size", "rounded", "fillMode", "tabIndex", "placeholder", "maxlength", "inputAttributes"], outputs: ["valueChange", "inputFocus", "inputBlur", "focus", "blur"], exportAs: ["kendoTextBox"] }, { kind: "component", type: i0.forwardRef(() => i5.NumericTextBoxComponent), selector: "kendo-numerictextbox", inputs: ["focusableId", "disabled", "readonly", "title", "autoCorrect", "format", "max", "min", "decimals", "placeholder", "step", "spinners", "rangeValidation", "tabindex", "tabIndex", "changeValueOnScroll", "selectOnFocus", "value", "maxlength", "size", "rounded", "fillMode", "inputAttributes"], outputs: ["valueChange", "focus", "blur", "inputFocus", "inputBlur"], exportAs: ["kendoNumericTextBox"] }, { kind: "component", type: i0.forwardRef(() => i5.SwitchComponent), selector: "kendo-switch", inputs: ["focusableId", "onLabel", "offLabel", "checked", "disabled", "readonly", "tabindex", "size", "thumbRounded", "trackRounded", "tabIndex"], outputs: ["focus", "blur", "valueChange"], exportAs: ["kendoSwitch"] }, { kind: "component", type: i0.forwardRef(() => i1$5.LabelComponent), selector: "kendo-label", inputs: ["text", "for", "optional", "labelCssStyle", "labelCssClass"], exportAs: ["kendoLabel"] }, { kind: "component", type: i0.forwardRef(() => i1$1.ButtonComponent), selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: i0.forwardRef(() => i3$1.DropDownListComponent), selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "adaptiveTitle", "adaptiveSubtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "leftRightArrowsNavigation", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { kind: "component", type: i0.forwardRef(() => i3$1.MultiSelectComponent), selector: "kendo-multiselect", inputs: ["showStickyHeader", "focusableId", "autoClose", "loading", "data", "value", "valueField", "textField", "tabindex", "tabIndex", "size", "rounded", "fillMode", "placeholder", "adaptiveMode", "adaptiveTitle", "adaptiveSubtitle", "disabled", "itemDisabled", "checkboxes", "readonly", "filterable", "virtual", "popupSettings", "listHeight", "valuePrimitive", "clearButton", "tagMapper", "allowCustom", "valueNormalizer", "inputAttributes"], outputs: ["filterChange", "valueChange", "open", "opened", "close", "closed", "focus", "blur", "inputFocus", "inputBlur", "removeTag"], exportAs: ["kendoMultiSelect"] }, { kind: "component", type: i0.forwardRef(() => i7.DateTimePickerComponent), selector: "kendo-datetimepicker", inputs: ["focusableId", "weekDaysFormat", "showOtherMonthDays", "value", "format", "twoDigitYearMax", "tabindex", "disabledDates", "popupSettings", "adaptiveTitle", "adaptiveSubtitle", "disabled", "readonly", "readOnlyInput", "cancelButton", "formatPlaceholder", "placeholder", "steps", "focusedDate", "calendarType", "animateCalendarNavigation", "weekNumber", "min", "max", "rangeValidation", "disabledDatesValidation", "incompleteDateValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "enableMouseWheel", "allowCaretMode", "clearButton", "autoFill", "adaptiveMode", "inputAttributes", "defaultTab", "size", "rounded", "fillMode", "headerTemplate", "footerTemplate", "footer"], outputs: ["valueChange", "open", "close", "focus", "blur", "escape"], exportAs: ["kendo-datetimepicker"] }, { kind: "component", type: i0.forwardRef(() => i7.TimePickerComponent), selector: "kendo-timepicker", inputs: ["focusableId", "disabled", "readonly", "readOnlyInput", "clearButton", "format", "formatPlaceholder", "placeholder", "min", "max", "incompleteDateValidation", "autoSwitchParts", "autoSwitchKeys", "enableMouseWheel", "allowCaretMode", "cancelButton", "nowButton", "steps", "popupSettings", "tabindex", "tabIndex", "adaptiveTitle", "adaptiveSubtitle", "rangeValidation", "adaptiveMode", "value", "size", "rounded", "fillMode", "inputAttributes"], outputs: ["valueChange", "focus", "blur", "open", "close", "escape"], exportAs: ["kendo-timepicker"] }, { kind: "component", type: i0.forwardRef(() => i8.FileSelectComponent), selector: "kendo-fileselect", inputs: ["name"], outputs: ["valueChange"], exportAs: ["kendoFileSelect"] }, { kind: "component", type: i0.forwardRef(() => i8.CustomMessagesComponent), selector: "kendo-upload-messages, kendo-fileselect-messages, kendo-uploaddropzone-messages" }, { kind: "component", type: i0.forwardRef(() => AttributeFieldComponent), selector: "mm-attribute-field", inputs: ["attribute", "control", "baselineValue", "fieldId", "overrideLabelText", "showUndoButton", "undoButtonSize", "errorMessage", "hintText"], outputs: ["undo"] }] });
|
|
11990
12166
|
}
|
|
11991
12167
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AttributesGroupComponent, decorators: [{
|
|
11992
12168
|
type: Component,
|
|
@@ -12007,7 +12183,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
12007
12183
|
<kendo-card [style.margin-bottom.px]="10">
|
|
12008
12184
|
<kendo-card-header>
|
|
12009
12185
|
<div class="header-title">
|
|
12010
|
-
<strong>{{ isRecord() ? 'Record' :
|
|
12186
|
+
<strong>{{ isRecord() ? (_messages.recordLabel ?? 'Record') : _messages.attributes }}:</strong>
|
|
12011
12187
|
{{ ckId() }}
|
|
12012
12188
|
</div>
|
|
12013
12189
|
</kendo-card-header>
|
|
@@ -12033,8 +12209,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
12033
12209
|
@if (attr.isOptional) {
|
|
12034
12210
|
<div class="record-actions-info">
|
|
12035
12211
|
<p class="record-actions-description">
|
|
12036
|
-
|
|
12037
|
-
record. Empty arrays are not saved.
|
|
12212
|
+
{{ _messages.recordArrayHint }}
|
|
12038
12213
|
</p>
|
|
12039
12214
|
</div>
|
|
12040
12215
|
}
|
|
@@ -12059,6 +12234,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
12059
12234
|
[isRecord]="true"
|
|
12060
12235
|
[parentFormGroup]="asFormGroup(item)"
|
|
12061
12236
|
[initialValues]="getRawInitialValue(attr.attributeName, $index)"
|
|
12237
|
+
[messages]="_messages"
|
|
12062
12238
|
/>
|
|
12063
12239
|
</div>
|
|
12064
12240
|
</ng-template>
|
|
@@ -12071,7 +12247,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
12071
12247
|
style="margin-top: 10px; display: flex; gap: 8px;"
|
|
12072
12248
|
>
|
|
12073
12249
|
<button kendoButton size="small" (click)="addRecord(attr)">
|
|
12074
|
-
|
|
12250
|
+
{{ _messages.addRecord }}
|
|
12075
12251
|
</button>
|
|
12076
12252
|
<button
|
|
12077
12253
|
kendoButton
|
|
@@ -12081,7 +12257,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
12081
12257
|
[disabled]="!canRemoveRecord(attr)"
|
|
12082
12258
|
(click)="removeRecord(attr)"
|
|
12083
12259
|
>
|
|
12084
|
-
|
|
12260
|
+
{{ _messages.removeRecord }}
|
|
12085
12261
|
</button>
|
|
12086
12262
|
</div>
|
|
12087
12263
|
</div>
|
|
@@ -12100,8 +12276,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
12100
12276
|
@if (attr.isOptional) {
|
|
12101
12277
|
<div class="record-actions-info">
|
|
12102
12278
|
<p class="record-actions-description">
|
|
12103
|
-
|
|
12104
|
-
remove all data and clear validation.
|
|
12279
|
+
{{ _messages.recordHint }}
|
|
12105
12280
|
</p>
|
|
12106
12281
|
</div>
|
|
12107
12282
|
}
|
|
@@ -12115,6 +12290,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
12115
12290
|
asFormGroup(parentFormGroup().get(attr.attributeName)!)
|
|
12116
12291
|
"
|
|
12117
12292
|
[initialValues]="getRawInitialValue(attr.attributeName)"
|
|
12293
|
+
[messages]="_messages"
|
|
12118
12294
|
/>
|
|
12119
12295
|
</div>
|
|
12120
12296
|
}
|
|
@@ -12127,7 +12303,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
12127
12303
|
[disabled]="isRecordLoaded(attr.attributeName)"
|
|
12128
12304
|
(click)="loadRecord(attr)"
|
|
12129
12305
|
>
|
|
12130
|
-
|
|
12306
|
+
{{ _messages.loadRecord }}
|
|
12131
12307
|
</button>
|
|
12132
12308
|
<button
|
|
12133
12309
|
kendoButton
|
|
@@ -12137,7 +12313,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
12137
12313
|
[disabled]="!isRecordLoaded(attr.attributeName)"
|
|
12138
12314
|
(click)="unloadRecord(attr)"
|
|
12139
12315
|
>
|
|
12140
|
-
|
|
12316
|
+
{{ _messages.unloadRecord }}
|
|
12141
12317
|
</button>
|
|
12142
12318
|
</div>
|
|
12143
12319
|
}
|
|
@@ -12161,14 +12337,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
12161
12337
|
class="geospatial-grid"
|
|
12162
12338
|
>
|
|
12163
12339
|
<mm-attribute-field
|
|
12164
|
-
[hintText]="
|
|
12340
|
+
[hintText]="_messages.longitudeHint ?? ''"
|
|
12165
12341
|
[attribute]="attr"
|
|
12166
|
-
[overrideLabelText]="
|
|
12342
|
+
[overrideLabelText]="_messages.longitude"
|
|
12167
12343
|
[control]="
|
|
12168
12344
|
parentFormGroup().get(attr.attributeName + '.longitude')!
|
|
12169
12345
|
"
|
|
12170
12346
|
[baselineValue]="getBaselineValue(attr.attributeName + '.longitude')"
|
|
12171
12347
|
[fieldId]="attr.attributeName + '_lon'"
|
|
12348
|
+
[errorMessage]="_messages.attributeField?.errorMessage ?? 'This field is required or invalid.'"
|
|
12172
12349
|
>
|
|
12173
12350
|
<kendo-numerictextbox
|
|
12174
12351
|
[focusableId]="attr.attributeName + '_lon'"
|
|
@@ -12181,14 +12358,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
12181
12358
|
</mm-attribute-field>
|
|
12182
12359
|
|
|
12183
12360
|
<mm-attribute-field
|
|
12184
|
-
[hintText]="
|
|
12361
|
+
[hintText]="_messages.latitudeHint ?? ''"
|
|
12185
12362
|
[attribute]="attr"
|
|
12186
|
-
[overrideLabelText]="
|
|
12363
|
+
[overrideLabelText]="_messages.latitude"
|
|
12187
12364
|
[control]="
|
|
12188
12365
|
parentFormGroup().get(attr.attributeName + '.latitude')!
|
|
12189
12366
|
"
|
|
12190
12367
|
[baselineValue]="getBaselineValue(attr.attributeName + '.latitude')"
|
|
12191
12368
|
[fieldId]="attr.attributeName + '_lat'"
|
|
12369
|
+
[errorMessage]="_messages.attributeField?.errorMessage ?? 'This field is required or invalid.'"
|
|
12192
12370
|
>
|
|
12193
12371
|
<kendo-numerictextbox
|
|
12194
12372
|
[focusableId]="attr.attributeName + '_lat'"
|
|
@@ -12208,6 +12386,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
12208
12386
|
[control]="parentFormGroup().get(attr.attributeName)!"
|
|
12209
12387
|
[baselineValue]="getBaselineValue(attr.attributeName)"
|
|
12210
12388
|
[fieldId]="attr.attributeName"
|
|
12389
|
+
[errorMessage]="_messages.attributeField?.errorMessage ?? 'This field is required or invalid.'"
|
|
12211
12390
|
>
|
|
12212
12391
|
@if (recognition.isNumber(attr.attributeValueType)) {
|
|
12213
12392
|
<kendo-numerictextbox
|
|
@@ -12236,10 +12415,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
12236
12415
|
[focusableId]="attr.attributeName"
|
|
12237
12416
|
[formControlName]="attr.attributeName"
|
|
12238
12417
|
[restrictions]="binaryRestrictions"
|
|
12239
|
-
|
|
12418
|
+
>
|
|
12419
|
+
<kendo-fileselect-messages
|
|
12420
|
+
[dropFilesHere]="_messages.dragDrop?.dropZone ?? 'Drop files here to upload'"
|
|
12421
|
+
[invalidMaxFileSize]="_messages.dragDrop?.errorFileTooBig ?? 'File size too large.'"
|
|
12422
|
+
[invalidFileExtension]="_messages.dragDrop?.errorInvalidType ?? 'File type not allowed.'"
|
|
12423
|
+
[fileStatusFailed]="_messages.dragDrop?.errorUploadFailed ?? 'File failed to upload.'"
|
|
12424
|
+
/>
|
|
12425
|
+
</kendo-fileselect>
|
|
12240
12426
|
@if (isBinaryReferenceFile(attr.attributeName)) {
|
|
12241
|
-
<span class="binary-linked-reference-hint" [title]="
|
|
12242
|
-
{{
|
|
12427
|
+
<span class="binary-linked-reference-hint" [title]="_messages.binaryReference?.tooltip ?? 'Content and size are from stored data. File name is a placeholder because the original name is not stored.'">
|
|
12428
|
+
{{ _messages.binaryReference?.label ?? 'Preview (restored from stored data)' }}
|
|
12243
12429
|
</span>
|
|
12244
12430
|
}
|
|
12245
12431
|
</div>
|
|
@@ -12249,10 +12435,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
12249
12435
|
[multiple]="false"
|
|
12250
12436
|
[focusableId]="attr.attributeName"
|
|
12251
12437
|
[formControlName]="attr.attributeName"
|
|
12252
|
-
|
|
12438
|
+
>
|
|
12439
|
+
<kendo-fileselect-messages
|
|
12440
|
+
[dropFilesHere]="_messages.dragDrop?.dropZone ?? 'Drop files here to upload'"
|
|
12441
|
+
[invalidMaxFileSize]="_messages.dragDrop?.errorFileTooBig ?? 'File size too large.'"
|
|
12442
|
+
[invalidFileExtension]="_messages.dragDrop?.errorInvalidType ?? 'File type not allowed.'"
|
|
12443
|
+
[fileStatusFailed]="_messages.dragDrop?.errorUploadFailed ?? 'File failed to upload.'"
|
|
12444
|
+
/>
|
|
12445
|
+
</kendo-fileselect>
|
|
12253
12446
|
@if (isReferencePreviewFile(attr.attributeName)) {
|
|
12254
|
-
<span class="binary-linked-reference-hint" [title]="
|
|
12255
|
-
{{
|
|
12447
|
+
<span class="binary-linked-reference-hint" [title]="_messages.referencePreview?.tooltip ?? 'Shows metadata of an existing file in the system; content is not loaded. Replace with a file to change.'">
|
|
12448
|
+
{{ _messages.referencePreview?.label ?? 'Preview (reference file)' }}
|
|
12256
12449
|
</span>
|
|
12257
12450
|
}
|
|
12258
12451
|
</div>
|
|
@@ -12288,7 +12481,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
12288
12481
|
</kendo-card>
|
|
12289
12482
|
</div>
|
|
12290
12483
|
`, styles: [".attributes-form-container ::ng-deep kendo-card kendo-card-body{display:flex;flex-direction:column;gap:16px}.attributes-form-container ::ng-deep kendo-label{display:flex;flex-direction:column;gap:4px}.attributes-form-container ::ng-deep kendo-label label{text-transform:uppercase}.header-content{display:flex;flex-direction:column;gap:4px}.record-array-content,.tab-content-wrapper{display:flex;flex-direction:column;gap:16px}.record-actions-info{display:flex;flex-direction:column;gap:12px;padding:16px;background-color:var(--kendo-color-surface-alt, rgba(0, 0, 0, .05));border:1px solid var(--kendo-color-border, rgba(0, 0, 0, .1));border-radius:4px;margin-bottom:16px}.record-actions-description{margin:0;font-size:13px;color:var(--kendo-color-subtle, rgba(0, 0, 0, .6));line-height:1.5}.record-array-actions{display:flex;gap:8px;justify-content:flex-start;padding-top:0}.record-actions{margin-top:16px;display:flex;gap:8px;justify-content:flex-start;padding-top:0}.binary-linked-wrap{display:flex;flex-direction:column;gap:6px}.binary-linked-reference-hint{font-size:.75rem;color:var(--kendo-color-primary, #0f6dff);font-style:italic}\n"] }]
|
|
12291
|
-
}], ctorParameters: () => [], propDecorators: { ckId: [{ type: i0.Input, args: [{ isSignal: true, alias: "ckId", required: true }] }], parentFormGroup: [{ type: i0.Input, args: [{ isSignal: true, alias: "parentFormGroup", required: true }] }], isRecord: [{ type: i0.Input, args: [{ isSignal: true, alias: "isRecord", required: false }] }], initialValues: [{ type: i0.Input, args: [{ isSignal: true, alias: "initialValues", required: false }] }]
|
|
12484
|
+
}], ctorParameters: () => [], propDecorators: { ckId: [{ type: i0.Input, args: [{ isSignal: true, alias: "ckId", required: true }] }], parentFormGroup: [{ type: i0.Input, args: [{ isSignal: true, alias: "parentFormGroup", required: true }] }], isRecord: [{ type: i0.Input, args: [{ isSignal: true, alias: "isRecord", required: false }] }], initialValues: [{ type: i0.Input, args: [{ isSignal: true, alias: "initialValues", required: false }] }], messages: [{
|
|
12485
|
+
type: Input
|
|
12486
|
+
}] } });
|
|
12292
12487
|
/** Stable empty array to avoid new [] references that would retrigger effects (infinite loop). */
|
|
12293
12488
|
const EMPTY_INITIAL_VALUES = [];
|
|
12294
12489
|
|
|
@@ -12566,6 +12761,7 @@ class CreateEditorComponent {
|
|
|
12566
12761
|
[allowAbstract]="false"
|
|
12567
12762
|
[derivedFromRtCkTypeId]="createInput()!.derivedFromRtCkTypeId"
|
|
12568
12763
|
[dialogTitle]="resolvedMessages().selectType"
|
|
12764
|
+
[messages]="resolvedMessages().ckTypeSelectorInput"
|
|
12569
12765
|
(ckTypeSelected)="onCkTypeSelected($event)"
|
|
12570
12766
|
(ckTypeCleared)="onCkTypeCleared()"
|
|
12571
12767
|
>
|
|
@@ -12580,6 +12776,7 @@ class CreateEditorComponent {
|
|
|
12580
12776
|
[ckId]="selectedRtCkTypeId()!"
|
|
12581
12777
|
[parentFormGroup]="form()!"
|
|
12582
12778
|
[isRecord]="false"
|
|
12779
|
+
[messages]="resolvedMessages()"
|
|
12583
12780
|
/>
|
|
12584
12781
|
} @else {
|
|
12585
12782
|
<p class="select-type-prompt">
|
|
@@ -12605,7 +12802,7 @@ class CreateEditorComponent {
|
|
|
12605
12802
|
</button>
|
|
12606
12803
|
</div>
|
|
12607
12804
|
</div>
|
|
12608
|
-
`, isInline: true, styles: [".entity-editor-container{display:flex;flex-direction:column;gap:16px;width:100%}.entity-editor-container ::ng-deep kendo-card{display:grid;grid-template-rows:auto 1fr;grid-template-columns:1fr 1fr;gap:16px;width:100%!important}.entity-editor-container ::ng-deep kendo-card kendo-card-header{grid-column:span 2;grid-row:1}.entity-editor-container ::ng-deep kendo-card kendo-card-body{grid-row:2;grid-column:span 2;display:grid;grid-template-columns:1fr 1fr;gap:16px}.entity-editor-container ::ng-deep kendo-card kendo-card-body .info-item{display:flex;flex-direction:column}.entity-editor-container ::ng-deep kendo-card kendo-card-body .info-item :first-child{grid-column:1}.entity-editor-container ::ng-deep kendo-card kendo-card-body .info-item :nth-child(2){grid-column:2}.entity-editor-container ::ng-deep kendo-card kendo-card-body .info-item label{color:var(--kendo-color-subtle, rgba(0, 0, 0, .7));margin-bottom:8px;text-transform:uppercase}.entity-editor-container .attributes-form-container ::ng-deep kendo-card:not(.basic-info-card) kendo-card-body{display:flex;flex-direction:column;gap:16px}.entity-editor-container .select-type-prompt{grid-column:span 2;text-transform:uppercase;color:var(--kendo-color-primary, #0f6dff);background-color:var(--kendo-color-surface-alt, rgba(0, 0, 0, .05));padding:16px;border-radius:8px;text-align:center;border:1px dashed var(--kendo-color-border, rgba(0, 0, 0, .1))}.entity-editor-container .entity-editor-actions{display:flex;flex-direction:row;gap:16px}.entity-editor-container .entity-editor-actions button:disabled{opacity:.6}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: CardModule }, { kind: "component", type: i1$4.CardComponent, selector: "kendo-card", inputs: ["orientation", "width"] }, { kind: "component", type: i1$4.CardBodyComponent, selector: "kendo-card-body" }, { kind: "component", type: i1$4.CardHeaderComponent, selector: "kendo-card-header" }, { kind: "component", type: i5.TextBoxComponent, selector: "kendo-textbox", inputs: ["focusableId", "title", "type", "disabled", "readonly", "tabindex", "value", "selectOnFocus", "showSuccessIcon", "showErrorIcon", "clearButton", "successIcon", "successSvgIcon", "errorIcon", "errorSvgIcon", "clearButtonIcon", "clearButtonSvgIcon", "size", "rounded", "fillMode", "tabIndex", "placeholder", "maxlength", "inputAttributes"], outputs: ["valueChange", "inputFocus", "inputBlur", "focus", "blur"], exportAs: ["kendoTextBox"] }, { kind: "component", type: i1$1.ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: CkTypeSelectorInputComponent, selector: "mm-ck-type-selector-input", inputs: ["placeholder", "minSearchLength", "maxResults", "debounceMs", "ckModelIds", "allowAbstract", "dialogTitle", "advancedSearchLabel", "derivedFromRtCkTypeId", "disabled", "required"], outputs: ["ckTypeSelected", "ckTypeCleared"] }, { kind: "component", type: AttributesGroupComponent, selector: "mm-attributes-group", inputs: ["ckId", "parentFormGroup", "isRecord", "initialValues"] }] });
|
|
12805
|
+
`, isInline: true, styles: [".entity-editor-container{display:flex;flex-direction:column;gap:16px;width:100%}.entity-editor-container ::ng-deep kendo-card{display:grid;grid-template-rows:auto 1fr;grid-template-columns:1fr 1fr;gap:16px;width:100%!important}.entity-editor-container ::ng-deep kendo-card kendo-card-header{grid-column:span 2;grid-row:1}.entity-editor-container ::ng-deep kendo-card kendo-card-body{grid-row:2;grid-column:span 2;display:grid;grid-template-columns:1fr 1fr;gap:16px}.entity-editor-container ::ng-deep kendo-card kendo-card-body .info-item{display:flex;flex-direction:column}.entity-editor-container ::ng-deep kendo-card kendo-card-body .info-item :first-child{grid-column:1}.entity-editor-container ::ng-deep kendo-card kendo-card-body .info-item :nth-child(2){grid-column:2}.entity-editor-container ::ng-deep kendo-card kendo-card-body .info-item label{color:var(--kendo-color-subtle, rgba(0, 0, 0, .7));margin-bottom:8px;text-transform:uppercase}.entity-editor-container .attributes-form-container ::ng-deep kendo-card:not(.basic-info-card) kendo-card-body{display:flex;flex-direction:column;gap:16px}.entity-editor-container .select-type-prompt{grid-column:span 2;text-transform:uppercase;color:var(--kendo-color-primary, #0f6dff);background-color:var(--kendo-color-surface-alt, rgba(0, 0, 0, .05));padding:16px;border-radius:8px;text-align:center;border:1px dashed var(--kendo-color-border, rgba(0, 0, 0, .1))}.entity-editor-container .entity-editor-actions{display:flex;flex-direction:row;gap:16px}.entity-editor-container .entity-editor-actions button:disabled{opacity:.6}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: CardModule }, { kind: "component", type: i1$4.CardComponent, selector: "kendo-card", inputs: ["orientation", "width"] }, { kind: "component", type: i1$4.CardBodyComponent, selector: "kendo-card-body" }, { kind: "component", type: i1$4.CardHeaderComponent, selector: "kendo-card-header" }, { kind: "component", type: i5.TextBoxComponent, selector: "kendo-textbox", inputs: ["focusableId", "title", "type", "disabled", "readonly", "tabindex", "value", "selectOnFocus", "showSuccessIcon", "showErrorIcon", "clearButton", "successIcon", "successSvgIcon", "errorIcon", "errorSvgIcon", "clearButtonIcon", "clearButtonSvgIcon", "size", "rounded", "fillMode", "tabIndex", "placeholder", "maxlength", "inputAttributes"], outputs: ["valueChange", "inputFocus", "inputBlur", "focus", "blur"], exportAs: ["kendoTextBox"] }, { kind: "component", type: i1$1.ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: CkTypeSelectorInputComponent, selector: "mm-ck-type-selector-input", inputs: ["placeholder", "minSearchLength", "maxResults", "debounceMs", "ckModelIds", "allowAbstract", "dialogTitle", "advancedSearchLabel", "derivedFromRtCkTypeId", "messages", "dialogMessages", "disabled", "required"], outputs: ["ckTypeSelected", "ckTypeCleared"] }, { kind: "component", type: AttributesGroupComponent, selector: "mm-attributes-group", inputs: ["ckId", "parentFormGroup", "isRecord", "initialValues", "messages"] }] });
|
|
12609
12806
|
}
|
|
12610
12807
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CreateEditorComponent, decorators: [{
|
|
12611
12808
|
type: Component,
|
|
@@ -12644,6 +12841,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
12644
12841
|
[allowAbstract]="false"
|
|
12645
12842
|
[derivedFromRtCkTypeId]="createInput()!.derivedFromRtCkTypeId"
|
|
12646
12843
|
[dialogTitle]="resolvedMessages().selectType"
|
|
12844
|
+
[messages]="resolvedMessages().ckTypeSelectorInput"
|
|
12647
12845
|
(ckTypeSelected)="onCkTypeSelected($event)"
|
|
12648
12846
|
(ckTypeCleared)="onCkTypeCleared()"
|
|
12649
12847
|
>
|
|
@@ -12658,6 +12856,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
12658
12856
|
[ckId]="selectedRtCkTypeId()!"
|
|
12659
12857
|
[parentFormGroup]="form()!"
|
|
12660
12858
|
[isRecord]="false"
|
|
12859
|
+
[messages]="resolvedMessages()"
|
|
12661
12860
|
/>
|
|
12662
12861
|
} @else {
|
|
12663
12862
|
<p class="select-type-prompt">
|
|
@@ -12901,6 +13100,7 @@ class UpdateEditorComponent {
|
|
|
12901
13100
|
[parentFormGroup]="form()!"
|
|
12902
13101
|
[initialValues]="entityData()?.initial"
|
|
12903
13102
|
[isRecord]="false"
|
|
13103
|
+
[messages]="resolvedMessages()"
|
|
12904
13104
|
/>
|
|
12905
13105
|
} @else {
|
|
12906
13106
|
<div class="loading-shimmer">
|
|
@@ -12926,7 +13126,7 @@ class UpdateEditorComponent {
|
|
|
12926
13126
|
</button>
|
|
12927
13127
|
</div>
|
|
12928
13128
|
</div>
|
|
12929
|
-
`, isInline: true, styles: [".entity-editor-container{display:flex;flex-direction:column;gap:16px;width:100%}.entity-editor-container ::ng-deep kendo-card{display:grid;grid-template-rows:auto 1fr;grid-template-columns:1fr 1fr;gap:16px;width:100%!important}.entity-editor-container ::ng-deep kendo-card kendo-card-header{grid-column:span 2;grid-row:1}.entity-editor-container ::ng-deep kendo-card kendo-card-body{grid-row:2;grid-column:span 2;display:grid;grid-template-columns:1fr 1fr;gap:16px}.entity-editor-container ::ng-deep kendo-card kendo-card-body .info-item{display:flex;flex-direction:column}.entity-editor-container ::ng-deep kendo-card kendo-card-body .info-item :first-child{grid-column:1}.entity-editor-container ::ng-deep kendo-card kendo-card-body .info-item :nth-child(2){grid-column:2}.entity-editor-container ::ng-deep kendo-card kendo-card-body .info-item label{color:var(--kendo-color-subtle, rgba(0, 0, 0, .7));margin-bottom:8px;text-transform:uppercase}.entity-editor-container .attributes-form-container ::ng-deep kendo-card:not(.basic-info-card) kendo-card-body{display:flex;flex-direction:column;gap:16px}.entity-editor-container .select-type-prompt{grid-column:span 2;text-transform:uppercase;color:var(--kendo-color-primary, #0f6dff);background-color:var(--kendo-color-surface-alt, rgba(0, 0, 0, .05));padding:16px;border-radius:8px;text-align:center;border:1px dashed var(--kendo-color-border, rgba(0, 0, 0, .1))}.entity-editor-container .entity-editor-actions{display:flex;flex-direction:row;gap:16px}.entity-editor-container .entity-editor-actions button:disabled{opacity:.6}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: CardModule }, { kind: "component", type: i1$4.CardComponent, selector: "kendo-card", inputs: ["orientation", "width"] }, { kind: "component", type: i1$4.CardBodyComponent, selector: "kendo-card-body" }, { kind: "component", type: i1$4.CardHeaderComponent, selector: "kendo-card-header" }, { kind: "component", type: i5.TextBoxComponent, selector: "kendo-textbox", inputs: ["focusableId", "title", "type", "disabled", "readonly", "tabindex", "value", "selectOnFocus", "showSuccessIcon", "showErrorIcon", "clearButton", "successIcon", "successSvgIcon", "errorIcon", "errorSvgIcon", "clearButtonIcon", "clearButtonSvgIcon", "size", "rounded", "fillMode", "tabIndex", "placeholder", "maxlength", "inputAttributes"], outputs: ["valueChange", "inputFocus", "inputBlur", "focus", "blur"], exportAs: ["kendoTextBox"] }, { kind: "component", type: i1$1.ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: AttributesGroupComponent, selector: "mm-attributes-group", inputs: ["ckId", "parentFormGroup", "isRecord", "initialValues"] }] });
|
|
13129
|
+
`, isInline: true, styles: [".entity-editor-container{display:flex;flex-direction:column;gap:16px;width:100%}.entity-editor-container ::ng-deep kendo-card{display:grid;grid-template-rows:auto 1fr;grid-template-columns:1fr 1fr;gap:16px;width:100%!important}.entity-editor-container ::ng-deep kendo-card kendo-card-header{grid-column:span 2;grid-row:1}.entity-editor-container ::ng-deep kendo-card kendo-card-body{grid-row:2;grid-column:span 2;display:grid;grid-template-columns:1fr 1fr;gap:16px}.entity-editor-container ::ng-deep kendo-card kendo-card-body .info-item{display:flex;flex-direction:column}.entity-editor-container ::ng-deep kendo-card kendo-card-body .info-item :first-child{grid-column:1}.entity-editor-container ::ng-deep kendo-card kendo-card-body .info-item :nth-child(2){grid-column:2}.entity-editor-container ::ng-deep kendo-card kendo-card-body .info-item label{color:var(--kendo-color-subtle, rgba(0, 0, 0, .7));margin-bottom:8px;text-transform:uppercase}.entity-editor-container .attributes-form-container ::ng-deep kendo-card:not(.basic-info-card) kendo-card-body{display:flex;flex-direction:column;gap:16px}.entity-editor-container .select-type-prompt{grid-column:span 2;text-transform:uppercase;color:var(--kendo-color-primary, #0f6dff);background-color:var(--kendo-color-surface-alt, rgba(0, 0, 0, .05));padding:16px;border-radius:8px;text-align:center;border:1px dashed var(--kendo-color-border, rgba(0, 0, 0, .1))}.entity-editor-container .entity-editor-actions{display:flex;flex-direction:row;gap:16px}.entity-editor-container .entity-editor-actions button:disabled{opacity:.6}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: CardModule }, { kind: "component", type: i1$4.CardComponent, selector: "kendo-card", inputs: ["orientation", "width"] }, { kind: "component", type: i1$4.CardBodyComponent, selector: "kendo-card-body" }, { kind: "component", type: i1$4.CardHeaderComponent, selector: "kendo-card-header" }, { kind: "component", type: i5.TextBoxComponent, selector: "kendo-textbox", inputs: ["focusableId", "title", "type", "disabled", "readonly", "tabindex", "value", "selectOnFocus", "showSuccessIcon", "showErrorIcon", "clearButton", "successIcon", "successSvgIcon", "errorIcon", "errorSvgIcon", "clearButtonIcon", "clearButtonSvgIcon", "size", "rounded", "fillMode", "tabIndex", "placeholder", "maxlength", "inputAttributes"], outputs: ["valueChange", "inputFocus", "inputBlur", "focus", "blur"], exportAs: ["kendoTextBox"] }, { kind: "component", type: i1$1.ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: AttributesGroupComponent, selector: "mm-attributes-group", inputs: ["ckId", "parentFormGroup", "isRecord", "initialValues", "messages"] }] });
|
|
12930
13130
|
}
|
|
12931
13131
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: UpdateEditorComponent, decorators: [{
|
|
12932
13132
|
type: Component,
|
|
@@ -12989,6 +13189,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
12989
13189
|
[parentFormGroup]="form()!"
|
|
12990
13190
|
[initialValues]="entityData()?.initial"
|
|
12991
13191
|
[isRecord]="false"
|
|
13192
|
+
[messages]="resolvedMessages()"
|
|
12992
13193
|
/>
|
|
12993
13194
|
} @else {
|
|
12994
13195
|
<div class="loading-shimmer">
|
|
@@ -14183,13 +14384,13 @@ class RuntimeBrowserComponent {
|
|
|
14183
14384
|
async onNodeDropped(event) {
|
|
14184
14385
|
console.debug('Runtime Browser - Node dropped:', event);
|
|
14185
14386
|
if (!event.destinationItem) {
|
|
14186
|
-
const msg = 'Moving item to the root of the tree is not supported';
|
|
14387
|
+
const msg = this.resolvedMessages().treeMoveToRootUnsupported ?? 'Moving item to the root of the tree is not supported';
|
|
14187
14388
|
this._showWarningNotification(msg);
|
|
14188
14389
|
console.debug(msg, event);
|
|
14189
14390
|
return;
|
|
14190
14391
|
}
|
|
14191
14392
|
if (!event.sourceParent) {
|
|
14192
|
-
const msg = 'Moving item on the root of the tree is not supported';
|
|
14393
|
+
const msg = this.resolvedMessages().treeMoveOnRootUnsupported ?? 'Moving item on the root of the tree is not supported';
|
|
14193
14394
|
this._showWarningNotification(msg);
|
|
14194
14395
|
console.debug(msg, event);
|
|
14195
14396
|
return;
|
|
@@ -17718,5 +17919,5 @@ function provideOctoUi() {
|
|
|
17718
17919
|
* Generated bundle index. Do not edit.
|
|
17719
17920
|
*/
|
|
17720
17921
|
|
|
17721
|
-
export { AssociationValidationService, AttributeSelectorDialogComponent, AttributeSelectorDialogService, AttributeSortSelectorDialogComponent, AttributeSortSelectorDialogService, AttributeValueTypeDto, CkTypeSelectorDialogComponent, CkTypeSelectorDialogService, CkTypeSelectorInputComponent, DEFAULT_DATA_POINT, DEFAULT_MAPPING_COVERAGE_TREE_CONFIG, DEFAULT_RUNTIME_BROWSER_MESSAGES, DataMappingOverviewComponent, DataPointPickerComponent, DataPointResolverService, DefaultPropertyCategory, EntityDetailComponent, EntityIdInfoComponent, EntitySelectorDialogComponent, EntitySelectorDialogService, FieldFilterEditorComponent, MappingCoverageTreeComponent, MappingCoverageTreeDataSource, MappingEditDialogComponent, MappingEditDialogService, OctoGraphQlDataSource, OctoGraphQlHierarchyDataSource, OctoLoaderComponent, PropertyConverterService, PropertyDisplayMode, PropertyGridComponent, PropertyValueDisplayComponent, RUNTIME_BROWSER_MESSAGES, RecordDetailDialogComponent, RtEntityIdHelper, RuntimeBrowserComponent, RuntimeBrowserOutletComponent, RuntimeBrowserPageComponent, RuntimeBrowserStateService, RuntimeEntityVariableDialogComponent, RuntimeEntityVariableDialogService, TenantSwitcherComponent, account_tree, add, analytics, app_registration, article, botService, category, chat, checklist, code, component_exchange, computer, createRuntimeBrowserRoutes, customer, dashboard, event_list, extractDataPointNames, graphic_eq, group, identityService, insert_link, manage_accounts, more_time, notifications, page_info, pages, person_search, playlist_add_check, pool, power, provideOctoUi, publicIcon, query_builder, schedule_send, settings, sort, storage, swagger, swagger_asset, swagger_bot, swagger_communication, swagger_identity, team_dashboard, tenancy, text_snippet, travel_explore, user_diagnostics, webhook, work };
|
|
17922
|
+
export { AssociationValidationService, AttributeSelectorDialogComponent, AttributeSelectorDialogService, AttributeSortSelectorDialogComponent, AttributeSortSelectorDialogService, AttributeValueTypeDto, CkTypeSelectorDialogComponent, CkTypeSelectorDialogService, CkTypeSelectorInputComponent, DEFAULT_CK_TYPE_SELECTOR_DIALOG_MESSAGES, DEFAULT_CK_TYPE_SELECTOR_INPUT_MESSAGES, DEFAULT_DATA_POINT, DEFAULT_MAPPING_COVERAGE_TREE_CONFIG, DEFAULT_PROPERTY_GRID_MESSAGES, DEFAULT_RUNTIME_BROWSER_MESSAGES, DataMappingOverviewComponent, DataPointPickerComponent, DataPointResolverService, DefaultPropertyCategory, EntityDetailComponent, EntityIdInfoComponent, EntitySelectorDialogComponent, EntitySelectorDialogService, FieldFilterEditorComponent, MappingCoverageTreeComponent, MappingCoverageTreeDataSource, MappingEditDialogComponent, MappingEditDialogService, OctoGraphQlDataSource, OctoGraphQlHierarchyDataSource, OctoLoaderComponent, PropertyConverterService, PropertyDisplayMode, PropertyGridComponent, PropertyValueDisplayComponent, RUNTIME_BROWSER_MESSAGES, RecordDetailDialogComponent, RtEntityIdHelper, RuntimeBrowserComponent, RuntimeBrowserOutletComponent, RuntimeBrowserPageComponent, RuntimeBrowserStateService, RuntimeEntityVariableDialogComponent, RuntimeEntityVariableDialogService, TenantSwitcherComponent, account_tree, add, analytics, app_registration, article, botService, category, chat, checklist, code, component_exchange, computer, createRuntimeBrowserRoutes, customer, dashboard, event_list, extractDataPointNames, graphic_eq, group, identityService, insert_link, manage_accounts, more_time, notifications, page_info, pages, person_search, playlist_add_check, pool, power, provideOctoUi, publicIcon, query_builder, schedule_send, settings, sort, storage, swagger, swagger_asset, swagger_bot, swagger_communication, swagger_identity, team_dashboard, tenancy, text_snippet, travel_explore, user_diagnostics, webhook, work };
|
|
17722
17923
|
//# sourceMappingURL=meshmakers-octo-ui.mjs.map
|