@meshmakers/octo-ui 3.3.440 → 3.3.460
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.
|
@@ -7,18 +7,18 @@ import * as i1 from '@angular/common';
|
|
|
7
7
|
import { CommonModule } from '@angular/common';
|
|
8
8
|
import * as i2 from '@angular/forms';
|
|
9
9
|
import { FormsModule, FormControl, ReactiveFormsModule, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';
|
|
10
|
-
import * as
|
|
10
|
+
import * as i3 from '@progress/kendo-angular-grid';
|
|
11
11
|
import { GridModule } from '@progress/kendo-angular-grid';
|
|
12
|
-
import * as
|
|
12
|
+
import * as i4 from '@progress/kendo-angular-buttons';
|
|
13
13
|
import { ButtonsModule, ButtonModule } from '@progress/kendo-angular-buttons';
|
|
14
|
-
import * as
|
|
14
|
+
import * as i5 from '@progress/kendo-angular-inputs';
|
|
15
15
|
import { InputsModule } from '@progress/kendo-angular-inputs';
|
|
16
16
|
import * as i3$1 from '@progress/kendo-angular-dropdowns';
|
|
17
17
|
import { DropDownListModule, DropDownsModule, AutoCompleteModule } from '@progress/kendo-angular-dropdowns';
|
|
18
|
-
import * as i5$
|
|
18
|
+
import * as i5$2 from '@progress/kendo-angular-icons';
|
|
19
19
|
import { IconsModule, SVGIconModule } from '@progress/kendo-angular-icons';
|
|
20
20
|
import { searchIcon, sortAscSmallIcon, sortDescSmallIcon, chevronRightIcon, chevronDownIcon, downloadIcon, fileIcon, folderIcon, calendarIcon, checkboxCheckedIcon, listUnorderedIcon, filterClearIcon, arrowRightIcon, arrowLeftIcon, chevronDoubleRightIcon, chevronDoubleLeftIcon, arrowUpIcon, arrowDownIcon, plusIcon, minusIcon, trashIcon, dollarIcon, copyIcon } from '@progress/kendo-svg-icons';
|
|
21
|
-
import * as i5 from '@progress/kendo-angular-dialog';
|
|
21
|
+
import * as i5$1 from '@progress/kendo-angular-dialog';
|
|
22
22
|
import { DialogContentBase, DialogRef, DialogModule, DialogService } from '@progress/kendo-angular-dialog';
|
|
23
23
|
import { Subject, firstValueFrom, of, forkJoin, Subscription } from 'rxjs';
|
|
24
24
|
import { debounceTime, distinctUntilChanged, switchMap, map, tap, catchError } from 'rxjs/operators';
|
|
@@ -333,7 +333,7 @@ class AttributeSortSelectorDialogComponent extends DialogContentBase {
|
|
|
333
333
|
<button kendoButton (click)="onCancel()">Cancel</button>
|
|
334
334
|
<button kendoButton themeColor="primary" (click)="onOk()">Apply</button>
|
|
335
335
|
</kendo-dialog-actions>
|
|
336
|
-
`, isInline: true, styles: [":host{display:block}.attribute-sort-selector-container{display:flex;flex-direction:column;padding:16px 20px;min-width:1000px;box-sizing:border-box;gap:16px}.search-container{flex-shrink:0}.search-input{width:100%}.lists-container{display:flex;gap:16px;align-items:flex-start}.list-section{flex:1;display:flex;flex-direction:column}.list-section h4,.sort-options-section h4{margin:0 0 10px;font-size:.85rem;font-weight:600}.attribute-grid{border-radius:4px}.attribute-grid ::ng-deep .k-grid-table tbody tr{cursor:pointer}.sort-options-section{width:120px;flex-shrink:0;display:flex;flex-direction:column;padding-top:32px}.sort-buttons{display:flex;flex-direction:row;gap:4px}.sort-button{flex:1;min-width:36px;height:36px;padding:0;display:flex;align-items:center;justify-content:center}.add-button{width:100%;margin-top:16px}.sort-display{display:flex;align-items:center;gap:6px}.sort-indicator{font-size:14px;font-weight:700;color:var(--kendo-color-primary, #ff6358)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: GridModule }, { kind: "component", type:
|
|
336
|
+
`, isInline: true, styles: [":host{display:block}.attribute-sort-selector-container{display:flex;flex-direction:column;padding:16px 20px;min-width:1000px;box-sizing:border-box;gap:16px}.search-container{flex-shrink:0}.search-input{width:100%}.lists-container{display:flex;gap:16px;align-items:flex-start}.list-section{flex:1;display:flex;flex-direction:column}.list-section h4,.sort-options-section h4{margin:0 0 10px;font-size:.85rem;font-weight:600}.attribute-grid{border-radius:4px}.attribute-grid ::ng-deep .k-grid-table tbody tr{cursor:pointer}.sort-options-section{width:120px;flex-shrink:0;display:flex;flex-direction:column;padding-top:32px}.sort-buttons{display:flex;flex-direction:row;gap:4px}.sort-button{flex:1;min-width:36px;height:36px;padding:0;display:flex;align-items:center;justify-content:center}.add-button{width:100%;margin-top:16px}.sort-display{display:flex;align-items:center;gap:6px}.sort-indicator{font-size:14px;font-weight:700;color:var(--kendo-color-primary, #ff6358)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.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: i4.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: DropDownListModule }, { kind: "ngmodule", type: IconsModule }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i5$1.DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }] });
|
|
337
337
|
}
|
|
338
338
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: AttributeSortSelectorDialogComponent, decorators: [{
|
|
339
339
|
type: Component,
|
|
@@ -1405,7 +1405,7 @@ class PropertyValueDisplayComponent {
|
|
|
1405
1405
|
}
|
|
1406
1406
|
}
|
|
1407
1407
|
</div>
|
|
1408
|
-
`, isInline: true, styles: [".property-value-display{display:flex;align-items:flex-start;gap:8px;min-height:20px;font-family:inherit;width:100%}.expandable-record{width:100%}.record-header{display:flex;align-items:center;gap:6px;cursor:pointer;padding:4px;border-radius:4px;transition:background-color .2s}.record-header:hover{background:var(--kendo-color-base-subtle)}.expand-icon{width:16px;height:16px;flex-shrink:0;transition:transform .2s}.record-summary{flex:1;font-size:.9em}.record-content{margin-left:22px;margin-top:8px;border-left:2px solid var(--kendo-color-border);padding-left:12px;background:var(--kendo-color-base-subtle);border-radius:0 4px 4px 0}.nested-properties{display:flex;flex-direction:column;gap:6px;padding:8px}.nested-property{display:flex;align-items:flex-start;gap:8px;min-height:24px}.property-key{font-weight:500;color:var(--kendo-color-primary);min-width:100px;flex-shrink:0;font-size:.9em}.array-item{border:1px solid var(--kendo-color-border);border-radius:4px;margin-bottom:8px;background:transparent}.array-index{display:inline-block;background:var(--kendo-color-primary);color:#fff;padding:2px 8px;font-size:.8em;font-weight:700;border-radius:4px 0;margin-bottom:4px}.json-display{font-family:Courier New,monospace;font-size:12px;margin:0;padding:4px 8px;background:var(--kendo-color-base-subtle);border-radius:4px;max-width:300px;overflow:auto}.text-display,.default-display{flex:1;word-break:break-word;overflow-wrap:anywhere}.type-boolean .default-display{font-weight:500}.type-boolean .default-display.value-true{color:#28a745}.type-boolean .default-display.value-false{color:#dc3545}:is(.type-datetime,.type-datetimeoffset) .default-display{font-family:monospace;font-size:.9em}:is(.type-int,.type-integer,.type-double) .default-display{font-family:monospace;text-align:right}.type-indicator{font-size:.75em;padding:2px 6px;background:var(--kendo-color-primary);color:#fff;border-radius:3px;text-transform:uppercase;font-weight:500;flex-shrink:0}.empty-value{color:var(--kendo-color-subtle);font-style:italic}.null-value{color:var(--kendo-color-error);font-style:italic}.binary-linked-display{display:flex;align-items:center;gap:12px;width:100%}.binary-info{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.filename{font-weight:500;color:var(--kendo-color-on-app-surface);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-size{font-size:.85em;color:var(--kendo-color-subtle);flex-shrink:0}.content-type{font-size:.75em;padding:2px 6px;background:var(--kendo-color-base-subtle);border-radius:3px;color:var(--kendo-color-subtle);flex-shrink:0}\n"], dependencies: [{ kind: "component", type: PropertyValueDisplayComponent, selector: "mm-property-value-display", inputs: ["value", "type", "displayMode"], outputs: ["binaryDownload"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: SVGIconModule }, { kind: "component", type: i5$
|
|
1408
|
+
`, isInline: true, styles: [".property-value-display{display:flex;align-items:flex-start;gap:8px;min-height:20px;font-family:inherit;width:100%}.expandable-record{width:100%}.record-header{display:flex;align-items:center;gap:6px;cursor:pointer;padding:4px;border-radius:4px;transition:background-color .2s}.record-header:hover{background:var(--kendo-color-base-subtle)}.expand-icon{width:16px;height:16px;flex-shrink:0;transition:transform .2s}.record-summary{flex:1;font-size:.9em}.record-content{margin-left:22px;margin-top:8px;border-left:2px solid var(--kendo-color-border);padding-left:12px;background:var(--kendo-color-base-subtle);border-radius:0 4px 4px 0}.nested-properties{display:flex;flex-direction:column;gap:6px;padding:8px}.nested-property{display:flex;align-items:flex-start;gap:8px;min-height:24px}.property-key{font-weight:500;color:var(--kendo-color-primary);min-width:100px;flex-shrink:0;font-size:.9em}.array-item{border:1px solid var(--kendo-color-border);border-radius:4px;margin-bottom:8px;background:transparent}.array-index{display:inline-block;background:var(--kendo-color-primary);color:#fff;padding:2px 8px;font-size:.8em;font-weight:700;border-radius:4px 0;margin-bottom:4px}.json-display{font-family:Courier New,monospace;font-size:12px;margin:0;padding:4px 8px;background:var(--kendo-color-base-subtle);border-radius:4px;max-width:300px;overflow:auto}.text-display,.default-display{flex:1;word-break:break-word;overflow-wrap:anywhere}.type-boolean .default-display{font-weight:500}.type-boolean .default-display.value-true{color:#28a745}.type-boolean .default-display.value-false{color:#dc3545}:is(.type-datetime,.type-datetimeoffset) .default-display{font-family:monospace;font-size:.9em}:is(.type-int,.type-integer,.type-double) .default-display{font-family:monospace;text-align:right}.type-indicator{font-size:.75em;padding:2px 6px;background:var(--kendo-color-primary);color:#fff;border-radius:3px;text-transform:uppercase;font-weight:500;flex-shrink:0}.empty-value{color:var(--kendo-color-subtle);font-style:italic}.null-value{color:var(--kendo-color-error);font-style:italic}.binary-linked-display{display:flex;align-items:center;gap:12px;width:100%}.binary-info{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.filename{font-weight:500;color:var(--kendo-color-on-app-surface);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-size{font-size:.85em;color:var(--kendo-color-subtle);flex-shrink:0}.content-type{font-size:.75em;padding:2px 6px;background:var(--kendo-color-base-subtle);border-radius:3px;color:var(--kendo-color-subtle);flex-shrink:0}\n"], dependencies: [{ kind: "component", type: PropertyValueDisplayComponent, selector: "mm-property-value-display", inputs: ["value", "type", "displayMode"], outputs: ["binaryDownload"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: SVGIconModule }, { kind: "component", type: i5$2.SVGIconComponent, selector: "kendo-svg-icon, kendo-svgicon", inputs: ["icon"], exportAs: ["kendoSVGIcon"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i4.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"] }] });
|
|
1409
1409
|
}
|
|
1410
1410
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: PropertyValueDisplayComponent, decorators: [{
|
|
1411
1411
|
type: Component,
|
|
@@ -1743,7 +1743,7 @@ class PropertyGridComponent {
|
|
|
1743
1743
|
|
|
1744
1744
|
</kendo-grid>
|
|
1745
1745
|
</div>
|
|
1746
|
-
`, isInline: true, styles: [".mm-property-grid{display:flex;flex-direction:column;border:1px solid var(--kendo-color-border);border-radius:4px;overflow:hidden}.search-toolbar{padding:8px;border-bottom:1px solid var(--kendo-color-border);background:var(--kendo-color-base-subtle)}.property-grid{flex:1;border:none}.property-name-cell{display:flex;align-items:center;gap:8px;min-height:24px}.type-icon{width:16px;height:16px;opacity:.7}.property-info{display:flex;align-items:center;gap:4px;flex:1}.property-name{font-weight:500}.required-indicator{color:var(--kendo-color-error);font-weight:700}.readonly-indicator{font-size:12px;opacity:.7}.property-editor{width:100%;min-width:200px}.validation-error{color:var(--kendo-color-error);font-size:.8em;margin-top:4px}.type-badge{font-size:.75em;padding:2px 6px;border-radius:3px;text-transform:uppercase;font-weight:500;background:var(--kendo-color-base-subtle);color:var(--kendo-color-on-base)}.grid-toolbar{padding:8px;border-top:1px solid var(--kendo-color-border);background:var(--kendo-color-base-subtle);display:flex;align-items:center;gap:8px}.changes-indicator{margin-left:auto;font-size:.9em;color:var(--kendo-color-primary);font-style:italic}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: GridModule }, { kind: "component", type:
|
|
1746
|
+
`, isInline: true, styles: [".mm-property-grid{display:flex;flex-direction:column;border:1px solid var(--kendo-color-border);border-radius:4px;overflow:hidden}.search-toolbar{padding:8px;border-bottom:1px solid var(--kendo-color-border);background:var(--kendo-color-base-subtle)}.property-grid{flex:1;border:none}.property-name-cell{display:flex;align-items:center;gap:8px;min-height:24px}.type-icon{width:16px;height:16px;opacity:.7}.property-info{display:flex;align-items:center;gap:4px;flex:1}.property-name{font-weight:500}.required-indicator{color:var(--kendo-color-error);font-weight:700}.readonly-indicator{font-size:12px;opacity:.7}.property-editor{width:100%;min-width:200px}.validation-error{color:var(--kendo-color-error);font-size:.8em;margin-top:4px}.type-badge{font-size:.75em;padding:2px 6px;border-radius:3px;text-transform:uppercase;font-weight:500;background:var(--kendo-color-base-subtle);color:var(--kendo-color-on-base)}.grid-toolbar{padding:8px;border-top:1px solid var(--kendo-color-border);background:var(--kendo-color-base-subtle);display:flex;align-items:center;gap:8px}.changes-indicator{margin-left:auto;font-size:.9em;color:var(--kendo-color-primary);font-style:italic}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.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: "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: 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: DropDownsModule }, { kind: "ngmodule", type: ButtonsModule }, { kind: "ngmodule", type: SVGIconModule }, { kind: "component", type: i5$2.SVGIconComponent, selector: "kendo-svg-icon, kendo-svgicon", inputs: ["icon"], exportAs: ["kendoSVGIcon"] }, { kind: "component", type: PropertyValueDisplayComponent, selector: "mm-property-value-display", inputs: ["value", "type", "displayMode"], outputs: ["binaryDownload"] }] });
|
|
1747
1747
|
}
|
|
1748
1748
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: PropertyGridComponent, decorators: [{
|
|
1749
1749
|
type: Component,
|
|
@@ -1875,6 +1875,7 @@ class CkTypeSelectorDialogComponent extends DialogContentBase {
|
|
|
1875
1875
|
// Selection key function - returns fullName as unique identifier
|
|
1876
1876
|
selectItemBy = (context) => context.dataItem.fullName;
|
|
1877
1877
|
initialCkModelIds;
|
|
1878
|
+
derivedFromRtCkTypeId;
|
|
1878
1879
|
constructor() {
|
|
1879
1880
|
super(inject(DialogRef));
|
|
1880
1881
|
}
|
|
@@ -1884,6 +1885,7 @@ class CkTypeSelectorDialogComponent extends DialogContentBase {
|
|
|
1884
1885
|
this.dialogTitle = data.dialogTitle || 'Select Construction Kit Type';
|
|
1885
1886
|
this.allowAbstract = data.allowAbstract ?? false;
|
|
1886
1887
|
this.initialCkModelIds = data.ckModelIds;
|
|
1888
|
+
this.derivedFromRtCkTypeId = data.derivedFromRtCkTypeId;
|
|
1887
1889
|
if (data.selectedCkTypeId) {
|
|
1888
1890
|
this.selectedKeys = [data.selectedCkTypeId];
|
|
1889
1891
|
}
|
|
@@ -1895,22 +1897,26 @@ class CkTypeSelectorDialogComponent extends DialogContentBase {
|
|
|
1895
1897
|
}));
|
|
1896
1898
|
// Load initial types and extract available models
|
|
1897
1899
|
this.loadTypes();
|
|
1898
|
-
this.
|
|
1900
|
+
if (!this.derivedFromRtCkTypeId) {
|
|
1901
|
+
this.loadAvailableModels();
|
|
1902
|
+
}
|
|
1899
1903
|
}
|
|
1900
1904
|
ngOnDestroy() {
|
|
1901
1905
|
this.subscriptions.unsubscribe();
|
|
1902
1906
|
}
|
|
1903
1907
|
loadTypes() {
|
|
1904
1908
|
this.isLoading = true;
|
|
1905
|
-
const
|
|
1906
|
-
?
|
|
1907
|
-
|
|
1908
|
-
|
|
1909
|
-
|
|
1910
|
-
|
|
1911
|
-
|
|
1912
|
-
|
|
1913
|
-
|
|
1909
|
+
const source$ = this.derivedFromRtCkTypeId
|
|
1910
|
+
? this.ckTypeSelectorService.getDerivedCkTypes(this.derivedFromRtCkTypeId, {
|
|
1911
|
+
searchText: this.searchText || undefined
|
|
1912
|
+
})
|
|
1913
|
+
: this.ckTypeSelectorService.getCkTypes({
|
|
1914
|
+
ckModelIds: this.selectedModel ? [this.selectedModel] : this.initialCkModelIds,
|
|
1915
|
+
searchText: this.searchText || undefined,
|
|
1916
|
+
first: this.pageSize,
|
|
1917
|
+
skip: this.skip
|
|
1918
|
+
});
|
|
1919
|
+
this.subscriptions.add(source$.subscribe({
|
|
1914
1920
|
next: result => {
|
|
1915
1921
|
this.gridData = {
|
|
1916
1922
|
data: result.items,
|
|
@@ -1990,7 +1996,7 @@ class CkTypeSelectorDialogComponent extends DialogContentBase {
|
|
|
1990
1996
|
<div class="ck-type-selector-container">
|
|
1991
1997
|
<div class="filter-container">
|
|
1992
1998
|
<div class="filter-row">
|
|
1993
|
-
<div class="filter-item">
|
|
1999
|
+
<div class="filter-item" *ngIf="!derivedFromRtCkTypeId">
|
|
1994
2000
|
<label>Model Filter</label>
|
|
1995
2001
|
<kendo-combobox
|
|
1996
2002
|
[data]="availableModels"
|
|
@@ -2066,7 +2072,7 @@ class CkTypeSelectorDialogComponent extends DialogContentBase {
|
|
|
2066
2072
|
<button kendoButton (click)="onCancel()">Cancel</button>
|
|
2067
2073
|
<button kendoButton themeColor="primary" [disabled]="!selectedType || (selectedType.isAbstract && !allowAbstract)" (click)="onConfirm()">OK</button>
|
|
2068
2074
|
</kendo-dialog-actions>
|
|
2069
|
-
`, isInline: true, styles: [".ck-type-selector-container{display:flex;flex-direction:column;height:100%;padding:20px;min-width:700px;box-sizing:border-box}.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}.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}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: GridModule }, { kind: "component", type:
|
|
2075
|
+
`, isInline: true, styles: [".ck-type-selector-container{display:flex;flex-direction:column;height:100%;padding:20px;min-width:700px;box-sizing:border-box}.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}.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}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.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: i4.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: DialogModule }, { kind: "component", type: i5$1.DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }] });
|
|
2070
2076
|
}
|
|
2071
2077
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: CkTypeSelectorDialogComponent, decorators: [{
|
|
2072
2078
|
type: Component,
|
|
@@ -2084,7 +2090,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
|
|
|
2084
2090
|
<div class="ck-type-selector-container">
|
|
2085
2091
|
<div class="filter-container">
|
|
2086
2092
|
<div class="filter-row">
|
|
2087
|
-
<div class="filter-item">
|
|
2093
|
+
<div class="filter-item" *ngIf="!derivedFromRtCkTypeId">
|
|
2088
2094
|
<label>Model Filter</label>
|
|
2089
2095
|
<kendo-combobox
|
|
2090
2096
|
[data]="availableModels"
|
|
@@ -2175,7 +2181,8 @@ class CkTypeSelectorDialogService {
|
|
|
2175
2181
|
selectedCkTypeId: options.selectedCkTypeId,
|
|
2176
2182
|
ckModelIds: options.ckModelIds,
|
|
2177
2183
|
dialogTitle: options.dialogTitle,
|
|
2178
|
-
allowAbstract: options.allowAbstract
|
|
2184
|
+
allowAbstract: options.allowAbstract,
|
|
2185
|
+
derivedFromRtCkTypeId: options.derivedFromRtCkTypeId
|
|
2179
2186
|
};
|
|
2180
2187
|
const dialogRef = this.dialogService.open({
|
|
2181
2188
|
content: CkTypeSelectorDialogComponent,
|
|
@@ -2349,7 +2356,9 @@ class AttributeSelectorDialogComponent extends DialogContentBase {
|
|
|
2349
2356
|
arrowDownIcon = arrowDownIcon;
|
|
2350
2357
|
dialogTitle = 'Select Attributes';
|
|
2351
2358
|
rtCkTypeId;
|
|
2359
|
+
singleSelect = false;
|
|
2352
2360
|
searchText = '';
|
|
2361
|
+
selectedSingleKey = [];
|
|
2353
2362
|
availableAttributes = [];
|
|
2354
2363
|
selectedAttributes = [];
|
|
2355
2364
|
availableGridData = { data: [], total: 0 };
|
|
@@ -2365,9 +2374,15 @@ class AttributeSelectorDialogComponent extends DialogContentBase {
|
|
|
2365
2374
|
if (data) {
|
|
2366
2375
|
this.rtCkTypeId = data.rtCkTypeId;
|
|
2367
2376
|
this.dialogTitle = data.dialogTitle || 'Select Attributes';
|
|
2377
|
+
this.singleSelect = data.singleSelect ?? false;
|
|
2368
2378
|
if (data.selectedAttributes && data.selectedAttributes.length > 0) {
|
|
2369
|
-
|
|
2370
|
-
|
|
2379
|
+
if (this.singleSelect) {
|
|
2380
|
+
this.selectedSingleKey = [data.selectedAttributes[0]];
|
|
2381
|
+
}
|
|
2382
|
+
else {
|
|
2383
|
+
// Pre-populate selected attributes if provided
|
|
2384
|
+
this.loadInitialSelectedAttributes(data.selectedAttributes);
|
|
2385
|
+
}
|
|
2371
2386
|
}
|
|
2372
2387
|
}
|
|
2373
2388
|
// Set up search debouncing
|
|
@@ -2483,10 +2498,19 @@ class AttributeSelectorDialogComponent extends DialogContentBase {
|
|
|
2483
2498
|
this.dialog.close();
|
|
2484
2499
|
}
|
|
2485
2500
|
onConfirm() {
|
|
2486
|
-
|
|
2487
|
-
|
|
2488
|
-
|
|
2489
|
-
|
|
2501
|
+
if (this.singleSelect) {
|
|
2502
|
+
const selected = this.availableAttributes.find(a => a.attributePath === this.selectedSingleKey[0]);
|
|
2503
|
+
const result = {
|
|
2504
|
+
selectedAttributes: selected ? [selected] : []
|
|
2505
|
+
};
|
|
2506
|
+
this.dialog.close(result);
|
|
2507
|
+
}
|
|
2508
|
+
else {
|
|
2509
|
+
const result = {
|
|
2510
|
+
selectedAttributes: this.selectedAttributes
|
|
2511
|
+
};
|
|
2512
|
+
this.dialog.close(result);
|
|
2513
|
+
}
|
|
2490
2514
|
}
|
|
2491
2515
|
/**
|
|
2492
2516
|
* Handle cell click on available attributes grid to detect double-click
|
|
@@ -2534,6 +2558,28 @@ class AttributeSelectorDialogComponent extends DialogContentBase {
|
|
|
2534
2558
|
this.lastClickedItem = attributePath;
|
|
2535
2559
|
}
|
|
2536
2560
|
}
|
|
2561
|
+
/**
|
|
2562
|
+
* Handle cell click on single-select grid to detect double-click (confirm immediately)
|
|
2563
|
+
*/
|
|
2564
|
+
onSingleSelectCellClick(event) {
|
|
2565
|
+
const dataItem = event.dataItem;
|
|
2566
|
+
if (!dataItem)
|
|
2567
|
+
return;
|
|
2568
|
+
const currentTime = Date.now();
|
|
2569
|
+
const attributePath = dataItem.attributePath;
|
|
2570
|
+
if (this.lastClickedItem === attributePath &&
|
|
2571
|
+
currentTime - this.lastClickTime <= this.doubleClickDelay) {
|
|
2572
|
+
// Double-click detected - confirm immediately
|
|
2573
|
+
this.selectedSingleKey = [attributePath];
|
|
2574
|
+
this.onConfirm();
|
|
2575
|
+
this.lastClickTime = 0;
|
|
2576
|
+
this.lastClickedItem = null;
|
|
2577
|
+
}
|
|
2578
|
+
else {
|
|
2579
|
+
this.lastClickTime = currentTime;
|
|
2580
|
+
this.lastClickedItem = attributePath;
|
|
2581
|
+
}
|
|
2582
|
+
}
|
|
2537
2583
|
/**
|
|
2538
2584
|
* Move a single attribute from available to selected
|
|
2539
2585
|
*/
|
|
@@ -2575,7 +2621,7 @@ class AttributeSelectorDialogComponent extends DialogContentBase {
|
|
|
2575
2621
|
</kendo-textbox>
|
|
2576
2622
|
</div>
|
|
2577
2623
|
|
|
2578
|
-
<div class="lists-container">
|
|
2624
|
+
<div class="lists-container" *ngIf="!singleSelect">
|
|
2579
2625
|
<div class="list-section">
|
|
2580
2626
|
<h4>Available Attributes</h4>
|
|
2581
2627
|
<kendo-grid
|
|
@@ -2662,13 +2708,28 @@ class AttributeSelectorDialogComponent extends DialogContentBase {
|
|
|
2662
2708
|
</button>
|
|
2663
2709
|
</div>
|
|
2664
2710
|
</div>
|
|
2711
|
+
|
|
2712
|
+
<div class="single-select-container" *ngIf="singleSelect">
|
|
2713
|
+
<kendo-grid
|
|
2714
|
+
[data]="availableGridData"
|
|
2715
|
+
[height]="400"
|
|
2716
|
+
[scrollable]="'scrollable'"
|
|
2717
|
+
[selectable]="{ mode: 'single', enabled: true }"
|
|
2718
|
+
[kendoGridSelectBy]="'attributePath'"
|
|
2719
|
+
[(selectedKeys)]="selectedSingleKey"
|
|
2720
|
+
(cellClick)="onSingleSelectCellClick($event)"
|
|
2721
|
+
class="attribute-grid">
|
|
2722
|
+
<kendo-grid-column field="attributePath" title="Attribute Path" [width]="250"></kendo-grid-column>
|
|
2723
|
+
<kendo-grid-column field="attributeValueType" title="Type" [width]="100"></kendo-grid-column>
|
|
2724
|
+
</kendo-grid>
|
|
2725
|
+
</div>
|
|
2665
2726
|
</div>
|
|
2666
2727
|
|
|
2667
2728
|
<kendo-dialog-actions>
|
|
2668
2729
|
<button kendoButton (click)="onCancel()">Cancel</button>
|
|
2669
|
-
<button kendoButton themeColor="primary" (click)="onConfirm()">OK</button>
|
|
2730
|
+
<button kendoButton themeColor="primary" [disabled]="singleSelect && selectedSingleKey.length === 0" (click)="onConfirm()">OK</button>
|
|
2670
2731
|
</kendo-dialog-actions>
|
|
2671
|
-
`, isInline: true, styles: [":host{display:block}.attribute-selector-container{display:flex;flex-direction:column;padding:16px 20px;min-width:800px;box-sizing:border-box;gap:16px}.search-container{flex-shrink:0}.search-input{width:100%}.lists-container{display:flex;gap:16px;align-items:flex-start}.list-section{flex:1;display:flex;flex-direction:column}.list-section h4{margin:0 0 10px;font-size:.85rem;font-weight:600}.attribute-grid{border-radius:4px}.attribute-grid ::ng-deep .k-grid-table tbody tr{cursor:pointer}.action-buttons{display:flex;flex-direction:column;gap:8px;justify-content:center;padding:32px 8px 0}.separator{height:1px;background-color:var(--kendo-color-border, #dee2e6);margin:8px 0}.order-buttons{display:flex;flex-direction:column;gap:8px;justify-content:center;padding:32px 8px 0}.order-number{color:var(--kendo-color-primary, #ff6358);font-weight:600;margin-right:8px;min-width:24px;display:inline-block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: GridModule }, { kind: "component", type:
|
|
2732
|
+
`, isInline: true, styles: [":host{display:block}.attribute-selector-container{display:flex;flex-direction:column;padding:16px 20px;min-width:800px;box-sizing:border-box;gap:16px}.search-container{flex-shrink:0}.search-input{width:100%}.lists-container{display:flex;gap:16px;align-items:flex-start}.list-section{flex:1;display:flex;flex-direction:column}.list-section h4{margin:0 0 10px;font-size:.85rem;font-weight:600}.attribute-grid{border-radius:4px}.attribute-grid ::ng-deep .k-grid-table tbody tr{cursor:pointer}.action-buttons{display:flex;flex-direction:column;gap:8px;justify-content:center;padding:32px 8px 0}.separator{height:1px;background-color:var(--kendo-color-border, #dee2e6);margin:8px 0}.order-buttons{display:flex;flex-direction:column;gap:8px;justify-content:center;padding:32px 8px 0}.order-number{color:var(--kendo-color-primary, #ff6358);font-weight:600;margin-right:8px;min-width:24px;display:inline-block}.single-select-container{flex:1;min-height:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.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: i4.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: IconsModule }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i5$1.DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }] });
|
|
2672
2733
|
}
|
|
2673
2734
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: AttributeSelectorDialogComponent, decorators: [{
|
|
2674
2735
|
type: Component,
|
|
@@ -2694,7 +2755,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
|
|
|
2694
2755
|
</kendo-textbox>
|
|
2695
2756
|
</div>
|
|
2696
2757
|
|
|
2697
|
-
<div class="lists-container">
|
|
2758
|
+
<div class="lists-container" *ngIf="!singleSelect">
|
|
2698
2759
|
<div class="list-section">
|
|
2699
2760
|
<h4>Available Attributes</h4>
|
|
2700
2761
|
<kendo-grid
|
|
@@ -2781,13 +2842,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
|
|
|
2781
2842
|
</button>
|
|
2782
2843
|
</div>
|
|
2783
2844
|
</div>
|
|
2845
|
+
|
|
2846
|
+
<div class="single-select-container" *ngIf="singleSelect">
|
|
2847
|
+
<kendo-grid
|
|
2848
|
+
[data]="availableGridData"
|
|
2849
|
+
[height]="400"
|
|
2850
|
+
[scrollable]="'scrollable'"
|
|
2851
|
+
[selectable]="{ mode: 'single', enabled: true }"
|
|
2852
|
+
[kendoGridSelectBy]="'attributePath'"
|
|
2853
|
+
[(selectedKeys)]="selectedSingleKey"
|
|
2854
|
+
(cellClick)="onSingleSelectCellClick($event)"
|
|
2855
|
+
class="attribute-grid">
|
|
2856
|
+
<kendo-grid-column field="attributePath" title="Attribute Path" [width]="250"></kendo-grid-column>
|
|
2857
|
+
<kendo-grid-column field="attributeValueType" title="Type" [width]="100"></kendo-grid-column>
|
|
2858
|
+
</kendo-grid>
|
|
2859
|
+
</div>
|
|
2784
2860
|
</div>
|
|
2785
2861
|
|
|
2786
2862
|
<kendo-dialog-actions>
|
|
2787
2863
|
<button kendoButton (click)="onCancel()">Cancel</button>
|
|
2788
|
-
<button kendoButton themeColor="primary" (click)="onConfirm()">OK</button>
|
|
2864
|
+
<button kendoButton themeColor="primary" [disabled]="singleSelect && selectedSingleKey.length === 0" (click)="onConfirm()">OK</button>
|
|
2789
2865
|
</kendo-dialog-actions>
|
|
2790
|
-
`, styles: [":host{display:block}.attribute-selector-container{display:flex;flex-direction:column;padding:16px 20px;min-width:800px;box-sizing:border-box;gap:16px}.search-container{flex-shrink:0}.search-input{width:100%}.lists-container{display:flex;gap:16px;align-items:flex-start}.list-section{flex:1;display:flex;flex-direction:column}.list-section h4{margin:0 0 10px;font-size:.85rem;font-weight:600}.attribute-grid{border-radius:4px}.attribute-grid ::ng-deep .k-grid-table tbody tr{cursor:pointer}.action-buttons{display:flex;flex-direction:column;gap:8px;justify-content:center;padding:32px 8px 0}.separator{height:1px;background-color:var(--kendo-color-border, #dee2e6);margin:8px 0}.order-buttons{display:flex;flex-direction:column;gap:8px;justify-content:center;padding:32px 8px 0}.order-number{color:var(--kendo-color-primary, #ff6358);font-weight:600;margin-right:8px;min-width:24px;display:inline-block}\n"] }]
|
|
2866
|
+
`, styles: [":host{display:block}.attribute-selector-container{display:flex;flex-direction:column;padding:16px 20px;min-width:800px;box-sizing:border-box;gap:16px}.search-container{flex-shrink:0}.search-input{width:100%}.lists-container{display:flex;gap:16px;align-items:flex-start}.list-section{flex:1;display:flex;flex-direction:column}.list-section h4{margin:0 0 10px;font-size:.85rem;font-weight:600}.attribute-grid{border-radius:4px}.attribute-grid ::ng-deep .k-grid-table tbody tr{cursor:pointer}.action-buttons{display:flex;flex-direction:column;gap:8px;justify-content:center;padding:32px 8px 0}.separator{height:1px;background-color:var(--kendo-color-border, #dee2e6);margin:8px 0}.order-buttons{display:flex;flex-direction:column;gap:8px;justify-content:center;padding:32px 8px 0}.order-number{color:var(--kendo-color-primary, #ff6358);font-weight:600;margin-right:8px;min-width:24px;display:inline-block}.single-select-container{flex:1;min-height:0}\n"] }]
|
|
2791
2867
|
}], ctorParameters: () => [] });
|
|
2792
2868
|
|
|
2793
2869
|
class AttributeSelectorDialogService {
|
|
@@ -2799,18 +2875,19 @@ class AttributeSelectorDialogService {
|
|
|
2799
2875
|
* @param dialogTitle Optional custom dialog title
|
|
2800
2876
|
* @returns Promise that resolves with the result containing selected attributes and confirmation status
|
|
2801
2877
|
*/
|
|
2802
|
-
async openAttributeSelector(rtCkTypeId, selectedAttributes, dialogTitle) {
|
|
2878
|
+
async openAttributeSelector(rtCkTypeId, selectedAttributes, dialogTitle, singleSelect) {
|
|
2803
2879
|
const data = {
|
|
2804
2880
|
rtCkTypeId,
|
|
2805
2881
|
selectedAttributes,
|
|
2806
|
-
dialogTitle
|
|
2882
|
+
dialogTitle,
|
|
2883
|
+
singleSelect
|
|
2807
2884
|
};
|
|
2808
2885
|
const dialogRef = this.dialogService.open({
|
|
2809
2886
|
content: AttributeSelectorDialogComponent,
|
|
2810
|
-
width: 900,
|
|
2811
|
-
height: 700,
|
|
2812
|
-
minWidth: 800,
|
|
2813
|
-
minHeight: 650,
|
|
2887
|
+
width: singleSelect ? 500 : 900,
|
|
2888
|
+
height: singleSelect ? 600 : 700,
|
|
2889
|
+
minWidth: singleSelect ? 400 : 800,
|
|
2890
|
+
minHeight: singleSelect ? 500 : 650,
|
|
2814
2891
|
title: dialogTitle || 'Select Attributes'
|
|
2815
2892
|
});
|
|
2816
2893
|
// Pass data to the component
|
|
@@ -2860,6 +2937,7 @@ class CkTypeSelectorInputComponent {
|
|
|
2860
2937
|
allowAbstract = false;
|
|
2861
2938
|
dialogTitle = 'Select Construction Kit Type';
|
|
2862
2939
|
advancedSearchLabel = 'Advanced Search...';
|
|
2940
|
+
derivedFromRtCkTypeId;
|
|
2863
2941
|
_disabled = false;
|
|
2864
2942
|
get disabled() {
|
|
2865
2943
|
return this._disabled;
|
|
@@ -2988,14 +3066,21 @@ class CkTypeSelectorInputComponent {
|
|
|
2988
3066
|
this.subscriptions.add(this.searchSubject.pipe(debounceTime(this.debounceMs), distinctUntilChanged(), tap(() => {
|
|
2989
3067
|
this.isLoading = true;
|
|
2990
3068
|
this.filteredTypes = [];
|
|
2991
|
-
}), switchMap(filter =>
|
|
2992
|
-
|
|
2993
|
-
|
|
2994
|
-
|
|
2995
|
-
|
|
2996
|
-
|
|
2997
|
-
|
|
2998
|
-
|
|
3069
|
+
}), switchMap(filter => {
|
|
3070
|
+
const source$ = this.derivedFromRtCkTypeId
|
|
3071
|
+
? this.ckTypeSelectorService.getDerivedCkTypes(this.derivedFromRtCkTypeId, {
|
|
3072
|
+
searchText: filter
|
|
3073
|
+
})
|
|
3074
|
+
: this.ckTypeSelectorService.getCkTypes({
|
|
3075
|
+
ckModelIds: this.ckModelIds,
|
|
3076
|
+
searchText: filter,
|
|
3077
|
+
first: this.maxResults
|
|
3078
|
+
});
|
|
3079
|
+
return source$.pipe(catchError(error => {
|
|
3080
|
+
console.error('CK type search error:', error);
|
|
3081
|
+
return of({ items: [], totalCount: 0 });
|
|
3082
|
+
}));
|
|
3083
|
+
})).subscribe(result => {
|
|
2999
3084
|
this.isLoading = false;
|
|
3000
3085
|
// Filter out abstract types if not allowed
|
|
3001
3086
|
let items = result.items;
|
|
@@ -3029,14 +3114,15 @@ class CkTypeSelectorInputComponent {
|
|
|
3029
3114
|
selectedCkTypeId: this.selectedCkType?.fullName,
|
|
3030
3115
|
ckModelIds: this.ckModelIds,
|
|
3031
3116
|
dialogTitle: this.dialogTitle,
|
|
3032
|
-
allowAbstract: this.allowAbstract
|
|
3117
|
+
allowAbstract: this.allowAbstract,
|
|
3118
|
+
derivedFromRtCkTypeId: this.derivedFromRtCkTypeId
|
|
3033
3119
|
});
|
|
3034
3120
|
if (result.confirmed && result.selectedCkType) {
|
|
3035
3121
|
this.selectCkType(result.selectedCkType);
|
|
3036
3122
|
}
|
|
3037
3123
|
}
|
|
3038
3124
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: CkTypeSelectorInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3039
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.5", 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", disabled: "disabled", required: "required" }, outputs: { ckTypeSelected: "ckTypeSelected", ckTypeCleared: "ckTypeCleared" }, providers: [
|
|
3125
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.5", 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: [
|
|
3040
3126
|
{
|
|
3041
3127
|
provide: NG_VALUE_ACCESSOR,
|
|
3042
3128
|
useExisting: forwardRef(() => CkTypeSelectorInputComponent),
|
|
@@ -3100,7 +3186,7 @@ class CkTypeSelectorInputComponent {
|
|
|
3100
3186
|
(click)="openDialog()">
|
|
3101
3187
|
</button>
|
|
3102
3188
|
</div>
|
|
3103
|
-
`, isInline: true, styles: [":host{display:block;width:100%}.ck-type-select-wrapper{position:relative;display:flex;align-items:center;width:100%;gap:4px}.ck-type-select-wrapper.disabled{opacity:.6;pointer-events:none}.ck-type-autocomplete{flex:1;min-width:0}.dialog-button{flex-shrink:0;height:30px;width:30px;padding:0;display:flex;align-items:center;justify-content:center}.ck-type-item{padding:4px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.no-data-message{padding:8px 12px;color:var(--kendo-color-subtle);font-style:italic;text-align:center}.advanced-search-footer{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;color:var(--kendo-color-primary);border-top:1px solid var(--kendo-color-border);background:var(--kendo-color-surface-alt);transition:background-color .2s}.advanced-search-footer:hover{background:var(--kendo-color-base-hover)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: AutoCompleteModule }, { kind: "component", type: i3$1.AutoCompleteComponent, selector: "kendo-autocomplete", inputs: ["highlightFirst", "showStickyHeader", "focusableId", "data", "value", "valueField", "placeholder", "adaptiveMode", "adaptiveTitle", "adaptiveSubtitle", "popupSettings", "listHeight", "loading", "clearButton", "suggest", "disabled", "itemDisabled", "readonly", "tabindex", "tabIndex", "filterable", "virtual", "size", "rounded", "fillMode", "inputAttributes"], outputs: ["valueChange", "filterChange", "open", "opened", "close", "closed", "focus", "blur", "inputFocus", "inputBlur"], exportAs: ["kendoAutoComplete"] }, { kind: "directive", type: i3$1.FooterTemplateDirective, selector: "[kendoDropDownListFooterTemplate],[kendoComboBoxFooterTemplate],[kendoDropDownTreeFooterTemplate],[kendoMultiColumnComboBoxFooterTemplate],[kendoAutoCompleteFooterTemplate],[kendoMultiSelectFooterTemplate],[kendoMultiSelectTreeFooterTemplate]" }, { kind: "directive", type: i3$1.ItemTemplateDirective, selector: "[kendoDropDownListItemTemplate],[kendoComboBoxItemTemplate],[kendoAutoCompleteItemTemplate],[kendoMultiSelectItemTemplate]" }, { kind: "directive", type: i3$1.NoDataTemplateDirective, selector: "[kendoDropDownListNoDataTemplate],[kendoDropDownTreeNoDataTemplate],[kendoComboBoxNoDataTemplate],[kendoMultiColumnComboBoxNoDataTemplate],[kendoAutoCompleteNoDataTemplate],[kendoMultiSelectNoDataTemplate],[kendoMultiSelectTreeNoDataTemplate]" }, { kind: "ngmodule", type: LoaderModule }, { kind: "ngmodule", type: ButtonsModule }, { kind: "component", type:
|
|
3189
|
+
`, isInline: true, styles: [":host{display:block;width:100%}.ck-type-select-wrapper{position:relative;display:flex;align-items:center;width:100%;gap:4px}.ck-type-select-wrapper.disabled{opacity:.6;pointer-events:none}.ck-type-autocomplete{flex:1;min-width:0}.dialog-button{flex-shrink:0;height:30px;width:30px;padding:0;display:flex;align-items:center;justify-content:center}.ck-type-item{padding:4px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.no-data-message{padding:8px 12px;color:var(--kendo-color-subtle);font-style:italic;text-align:center}.advanced-search-footer{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;color:var(--kendo-color-primary);border-top:1px solid var(--kendo-color-border);background:var(--kendo-color-surface-alt);transition:background-color .2s}.advanced-search-footer:hover{background:var(--kendo-color-base-hover)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: AutoCompleteModule }, { kind: "component", type: i3$1.AutoCompleteComponent, selector: "kendo-autocomplete", inputs: ["highlightFirst", "showStickyHeader", "focusableId", "data", "value", "valueField", "placeholder", "adaptiveMode", "adaptiveTitle", "adaptiveSubtitle", "popupSettings", "listHeight", "loading", "clearButton", "suggest", "disabled", "itemDisabled", "readonly", "tabindex", "tabIndex", "filterable", "virtual", "size", "rounded", "fillMode", "inputAttributes"], outputs: ["valueChange", "filterChange", "open", "opened", "close", "closed", "focus", "blur", "inputFocus", "inputBlur"], exportAs: ["kendoAutoComplete"] }, { kind: "directive", type: i3$1.FooterTemplateDirective, selector: "[kendoDropDownListFooterTemplate],[kendoComboBoxFooterTemplate],[kendoDropDownTreeFooterTemplate],[kendoMultiColumnComboBoxFooterTemplate],[kendoAutoCompleteFooterTemplate],[kendoMultiSelectFooterTemplate],[kendoMultiSelectTreeFooterTemplate]" }, { kind: "directive", type: i3$1.ItemTemplateDirective, selector: "[kendoDropDownListItemTemplate],[kendoComboBoxItemTemplate],[kendoAutoCompleteItemTemplate],[kendoMultiSelectItemTemplate]" }, { kind: "directive", type: i3$1.NoDataTemplateDirective, selector: "[kendoDropDownListNoDataTemplate],[kendoDropDownTreeNoDataTemplate],[kendoComboBoxNoDataTemplate],[kendoMultiColumnComboBoxNoDataTemplate],[kendoAutoCompleteNoDataTemplate],[kendoMultiSelectNoDataTemplate],[kendoMultiSelectTreeNoDataTemplate]" }, { kind: "ngmodule", type: LoaderModule }, { kind: "ngmodule", type: ButtonsModule }, { kind: "component", type: i4.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: IconsModule }, { kind: "component", type: i5$2.SVGIconComponent, selector: "kendo-svg-icon, kendo-svgicon", inputs: ["icon"], exportAs: ["kendoSVGIcon"] }, { kind: "ngmodule", type: SVGIconModule }] });
|
|
3104
3190
|
}
|
|
3105
3191
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: CkTypeSelectorInputComponent, decorators: [{
|
|
3106
3192
|
type: Component,
|
|
@@ -3196,6 +3282,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
|
|
|
3196
3282
|
type: Input
|
|
3197
3283
|
}], advancedSearchLabel: [{
|
|
3198
3284
|
type: Input
|
|
3285
|
+
}], derivedFromRtCkTypeId: [{
|
|
3286
|
+
type: Input
|
|
3199
3287
|
}], disabled: [{
|
|
3200
3288
|
type: Input
|
|
3201
3289
|
}], required: [{
|
|
@@ -3826,7 +3914,7 @@ class FieldFilterEditorComponent {
|
|
|
3826
3914
|
</div>
|
|
3827
3915
|
}
|
|
3828
3916
|
</div>
|
|
3829
|
-
`, isInline: true, styles: [".field-filter-editor{display:flex;flex-direction:column;gap:10px}.toolbar{display:flex;gap:10px;margin-bottom:5px}.filter-grid{border:1px solid #d5d5d5}.filter-grid ::ng-deep .k-grid-header .k-header{font-weight:600}.checkbox-column{text-align:center}.attribute-dropdown,.operator-dropdown,.attribute-input,.value-input{width:100%}.attribute-item{display:flex;justify-content:space-between;align-items:center;width:100%}.attribute-path{flex:1}.attribute-type{font-size:11px;color:#888;margin-left:8px;padding:2px 6px;background:#f0f0f0;border-radius:3px}.empty-state{padding:40px;text-align:center;border:1px dashed;border-radius:8px;font-family:Montserrat,sans-serif;font-size:.9rem}.empty-state p{margin:0}.value-cell{display:flex;gap:4px;align-items:center}.value-cell .value-input{flex:1}.variable-toggle{flex-shrink:0}.variable-item{display:flex;flex-direction:column;gap:2px}.variable-name{font-family:monospace;font-weight:500}.variable-label{font-size:11px;color:var(--kendo-color-subtle, #888)}.variable-value{font-family:monospace;color:var(--kendo-color-primary, #0d6efd)}.variable-placeholder{color:var(--kendo-color-subtle, #888)}.variable-dropdown ::ng-deep .k-input-value-text{font-family:monospace}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: GridModule }, { kind: "component", type:
|
|
3917
|
+
`, isInline: true, styles: [".field-filter-editor{display:flex;flex-direction:column;gap:10px}.toolbar{display:flex;gap:10px;margin-bottom:5px}.filter-grid{border:1px solid #d5d5d5}.filter-grid ::ng-deep .k-grid-header .k-header{font-weight:600}.checkbox-column{text-align:center}.attribute-dropdown,.operator-dropdown,.attribute-input,.value-input{width:100%}.attribute-item{display:flex;justify-content:space-between;align-items:center;width:100%}.attribute-path{flex:1}.attribute-type{font-size:11px;color:#888;margin-left:8px;padding:2px 6px;background:#f0f0f0;border-radius:3px}.empty-state{padding:40px;text-align:center;border:1px dashed;border-radius:8px;font-family:Montserrat,sans-serif;font-size:.9rem}.empty-state p{margin:0}.value-cell{display:flex;gap:4px;align-items:center}.value-cell .value-input{flex:1}.variable-toggle{flex-shrink:0}.variable-item{display:flex;flex-direction:column;gap:2px}.variable-name{font-family:monospace;font-weight:500}.variable-label{font-size:11px;color:var(--kendo-color-subtle, #888)}.variable-value{font-family:monospace;color:var(--kendo-color-primary, #0d6efd)}.variable-placeholder{color:var(--kendo-color-subtle, #888)}.variable-dropdown ::ng-deep .k-input-value-text{font-family:monospace}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.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: "directive", type: i3.HeaderTemplateDirective, selector: "[kendoGridHeaderTemplate]" }, { kind: "ngmodule", type: ButtonsModule }, { kind: "component", type: i4.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: DropDownsModule }, { kind: "directive", type: i3$1.ItemTemplateDirective, selector: "[kendoDropDownListItemTemplate],[kendoComboBoxItemTemplate],[kendoAutoCompleteItemTemplate],[kendoMultiSelectItemTemplate]" }, { 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: "directive", type: i3$1.ValueTemplateDirective, selector: "[kendoDropDownListValueTemplate],[kendoDropDownTreeValueTemplate]" }, { 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: "component", type: 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: "ngmodule", type: DateInputsModule }, { kind: "component", type: i6.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: "ngmodule", type: IconsModule }, { kind: "ngmodule", type: PopupModule }, { kind: "ngmodule", type: IntlModule }] });
|
|
3830
3918
|
}
|
|
3831
3919
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: FieldFilterEditorComponent, decorators: [{
|
|
3832
3920
|
type: Component,
|
|
@@ -4167,7 +4255,7 @@ class EntityIdInfoComponent {
|
|
|
4167
4255
|
</ng-template>
|
|
4168
4256
|
Copy ID
|
|
4169
4257
|
</kendo-dropdownbutton>
|
|
4170
|
-
`, isInline: true, styles: [":host{display:inline-block}.copy-item{display:flex;flex-direction:column;gap:2px;padding:8px 12px;width:100%}.copy-label{font-size:.7rem;font-weight:600;color:var(--kendo-color-primary, #64ceb9);text-transform:uppercase;letter-spacing:.5px}.copy-value{font-family:Roboto Mono,monospace;font-size:.75rem;color:var(--kendo-color-subtle, #9292a6);word-break:break-all}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ButtonsModule }, { kind: "component", type:
|
|
4258
|
+
`, isInline: true, styles: [":host{display:inline-block}.copy-item{display:flex;flex-direction:column;gap:2px;padding:8px 12px;width:100%}.copy-label{font-size:.7rem;font-weight:600;color:var(--kendo-color-primary, #64ceb9);text-transform:uppercase;letter-spacing:.5px}.copy-value{font-family:Roboto Mono,monospace;font-size:.75rem;color:var(--kendo-color-subtle, #9292a6);word-break:break-all}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ButtonsModule }, { kind: "component", type: i4.DropDownButtonComponent, selector: "kendo-dropdownbutton", inputs: ["arrowIcon", "icon", "svgIcon", "iconClass", "imageUrl", "textField", "data", "size", "rounded", "fillMode", "themeColor", "buttonAttributes"], outputs: ["itemClick", "focus", "blur"], exportAs: ["kendoDropDownButton"] }, { kind: "directive", type: i4.ButtonItemTemplateDirective, selector: "[kendoDropDownButtonItemTemplate],[kendoSplitButtonItemTemplate]" }, { kind: "ngmodule", type: SVGIconModule }] });
|
|
4171
4259
|
}
|
|
4172
4260
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: EntityIdInfoComponent, decorators: [{
|
|
4173
4261
|
type: Component,
|
|
@@ -4204,8 +4292,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
|
|
|
4204
4292
|
|
|
4205
4293
|
/**
|
|
4206
4294
|
* Animated OctoMesh logo loader component.
|
|
4207
|
-
* Displays the OctoMesh octopus SVG with
|
|
4208
|
-
*
|
|
4295
|
+
* Displays the OctoMesh octopus SVG with wiggling tentacles
|
|
4296
|
+
* and orbiting data blocks representing data loading.
|
|
4209
4297
|
*
|
|
4210
4298
|
* Uses `--kendo-color-primary` for theme-independent coloring.
|
|
4211
4299
|
* Override the color via CSS `color` property on the host element.
|
|
@@ -4221,49 +4309,187 @@ class OctoLoaderComponent {
|
|
|
4221
4309
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: OctoLoaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4222
4310
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.5", type: OctoLoaderComponent, isStandalone: true, selector: "mm-octo-loader", inputs: { size: "size" }, ngImport: i0, template: `
|
|
4223
4311
|
<div class="octo-loader" [class.octo-loader--small]="size === 'small'" [class.octo-loader--medium]="size === 'medium'">
|
|
4224
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="
|
|
4225
|
-
<!--
|
|
4226
|
-
<
|
|
4227
|
-
|
|
4228
|
-
|
|
4229
|
-
|
|
4230
|
-
|
|
4231
|
-
<!--
|
|
4232
|
-
<
|
|
4233
|
-
|
|
4234
|
-
|
|
4235
|
-
|
|
4236
|
-
|
|
4237
|
-
|
|
4238
|
-
|
|
4239
|
-
|
|
4312
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-22 -8 112 118" class="octo-loader__svg" overflow="visible">
|
|
4313
|
+
<!-- Orbit track -->
|
|
4314
|
+
<circle class="octo-orbit" cx="34" cy="48" r="52" fill="none" stroke-width="2.5" stroke-dasharray="5 9" opacity="0.5">
|
|
4315
|
+
<animateTransform attributeName="transform" type="rotate"
|
|
4316
|
+
from="0 34 48" to="360 34 48" dur="12s" repeatCount="indefinite"/>
|
|
4317
|
+
</circle>
|
|
4318
|
+
|
|
4319
|
+
<!-- Orbiting data blocks -->
|
|
4320
|
+
<g>
|
|
4321
|
+
<animateTransform attributeName="transform" type="rotate"
|
|
4322
|
+
from="0 34 48" to="360 34 48" dur="3s" repeatCount="indefinite"/>
|
|
4323
|
+
<rect class="octo-data" x="28" y="-9" width="12" height="8" rx="1.5" opacity="0.95"/>
|
|
4324
|
+
</g>
|
|
4325
|
+
<g>
|
|
4326
|
+
<animateTransform attributeName="transform" type="rotate"
|
|
4327
|
+
from="120 34 48" to="480 34 48" dur="3s" repeatCount="indefinite"/>
|
|
4328
|
+
<rect class="octo-data" x="28" y="-9" width="12" height="8" rx="1.5" opacity="0.75"/>
|
|
4329
|
+
</g>
|
|
4330
|
+
<g>
|
|
4331
|
+
<animateTransform attributeName="transform" type="rotate"
|
|
4332
|
+
from="240 34 48" to="600 34 48" dur="3s" repeatCount="indefinite"/>
|
|
4333
|
+
<rect class="octo-data" x="28" y="-9" width="12" height="8" rx="1.5" opacity="0.5"/>
|
|
4334
|
+
</g>
|
|
4335
|
+
|
|
4336
|
+
<!-- Octo character -->
|
|
4337
|
+
<g>
|
|
4338
|
+
<!-- Body -->
|
|
4339
|
+
<polygon fill="currentColor"
|
|
4340
|
+
points="63.04 52.74 63.04 43.04 63.04 38.19 63.04 28.49 67.89 0 43.64 4.24 34.01 4.24 14.61 4.24 0 4.24 0 18.79 0 28.49 0 40.61 0 52.74 14.55 52.74 14.55 52.13 14.55 47.89 4.85 47.89 4.85 43.04 4.85 36.37 4.85 23.64 4.85 17.58 4.85 9.09 19.4 9.09 33.94 9.09 43.64 9.09 62.01 6.02 58.19 28.49 58.19 33.34 58.19 38.19 58.19 43.04 58.19 47.89 48.49 47.89 48.49 52.13 48.49 52.74"/>
|
|
4341
|
+
<!-- Eyes -->
|
|
4342
|
+
<rect fill="currentColor" x="18.79" y="19.4" width="4.85" height="13.94"/>
|
|
4343
|
+
<rect fill="currentColor" x="38.79" y="19.4" width="4.85" height="13.94"/>
|
|
4344
|
+
<!-- Left outer arm -->
|
|
4345
|
+
<g class="octo-arm octo-arm--ol">
|
|
4346
|
+
<polygon fill="currentColor"
|
|
4347
|
+
points="0 52.74 9.7 52.74 9.7 72.13 4.85 72.13 4.85 67.28 0 67.28 0 72.13 0 76.98 4.85 76.98 14.55 76.98 14.55 72.13 14.55 52.74"/>
|
|
4348
|
+
</g>
|
|
4349
|
+
<!-- Left inner leg -->
|
|
4350
|
+
<g class="octo-leg octo-leg--left">
|
|
4351
|
+
<polygon fill="currentColor"
|
|
4352
|
+
points="19.4 91.53 14.55 91.53 14.55 81.83 9.7 81.83 9.7 91.53 9.7 96.38 14.55 96.38 19.4 96.38 24.25 96.38 24.25 91.53 24.25 52.74 19.4 52.74 19.4 91.53"/>
|
|
4353
|
+
</g>
|
|
4354
|
+
<!-- Center leg -->
|
|
4355
|
+
<g class="octo-leg octo-leg--center">
|
|
4356
|
+
<rect fill="currentColor" x="29.1" y="52.74" width="4.85" height="33.94"/>
|
|
4357
|
+
</g>
|
|
4358
|
+
<!-- Right inner leg -->
|
|
4359
|
+
<g class="octo-leg octo-leg--right">
|
|
4360
|
+
<polygon fill="currentColor"
|
|
4361
|
+
points="48.49 91.53 43.64 91.53 43.64 52.74 38.79 52.74 38.79 91.53 38.79 96.38 43.64 96.38 48.49 96.38 53.34 96.38 53.34 91.53 53.34 81.83 48.49 81.83 48.49 91.53"/>
|
|
4362
|
+
</g>
|
|
4363
|
+
<!-- Right outer arm -->
|
|
4364
|
+
<g class="octo-arm octo-arm--or">
|
|
4365
|
+
<polygon fill="currentColor"
|
|
4366
|
+
points="48.49 52.74 48.49 72.13 48.49 76.98 58.19 76.98 63.04 76.98 63.04 67.28 58.19 67.28 58.19 72.13 53.34 72.13 53.34 52.74 63.04 52.74"/>
|
|
4367
|
+
</g>
|
|
4368
|
+
</g>
|
|
4369
|
+
|
|
4370
|
+
<!-- Data flow: orbit → left arm → body → left arm → orbit -->
|
|
4371
|
+
<rect class="octo-data" x="-7" y="-4" width="14" height="8" rx="1.5" opacity="0">
|
|
4372
|
+
<animateMotion path="M -10,88 L 7,76 L 7,54 L 7,76 L -10,88" dur="3s" repeatCount="indefinite"/>
|
|
4373
|
+
<animate attributeName="opacity" values="0.3;0.8;0.9;0.8;0.3" keyTimes="0;0.25;0.5;0.75;1" dur="3s" repeatCount="indefinite"/>
|
|
4374
|
+
</rect>
|
|
4375
|
+
<rect class="octo-data" x="-7" y="-4" width="14" height="8" rx="1.5" opacity="0">
|
|
4376
|
+
<animateMotion path="M -10,88 L 7,76 L 7,54 L 7,76 L -10,88" dur="3s" begin="-1s" repeatCount="indefinite"/>
|
|
4377
|
+
<animate attributeName="opacity" values="0.3;0.8;0.9;0.8;0.3" keyTimes="0;0.25;0.5;0.75;1" dur="3s" begin="-1s" repeatCount="indefinite"/>
|
|
4378
|
+
</rect>
|
|
4379
|
+
<rect class="octo-data" x="-7" y="-4" width="14" height="8" rx="1.5" opacity="0">
|
|
4380
|
+
<animateMotion path="M -10,88 L 7,76 L 7,54 L 7,76 L -10,88" dur="3s" begin="-2s" repeatCount="indefinite"/>
|
|
4381
|
+
<animate attributeName="opacity" values="0.3;0.8;0.9;0.8;0.3" keyTimes="0;0.25;0.5;0.75;1" dur="3s" begin="-2s" repeatCount="indefinite"/>
|
|
4382
|
+
</rect>
|
|
4383
|
+
|
|
4384
|
+
<!-- Data flow: orbit → right arm → body → right arm → orbit -->
|
|
4385
|
+
<rect class="octo-data" x="-7" y="-4" width="14" height="8" rx="1.5" opacity="0">
|
|
4386
|
+
<animateMotion path="M 73,88 L 56,76 L 56,54 L 56,76 L 73,88" dur="3s" begin="-0.5s" repeatCount="indefinite"/>
|
|
4387
|
+
<animate attributeName="opacity" values="0.3;0.8;0.9;0.8;0.3" keyTimes="0;0.25;0.5;0.75;1" dur="3s" begin="-0.5s" repeatCount="indefinite"/>
|
|
4388
|
+
</rect>
|
|
4389
|
+
<rect class="octo-data" x="-7" y="-4" width="14" height="8" rx="1.5" opacity="0">
|
|
4390
|
+
<animateMotion path="M 73,88 L 56,76 L 56,54 L 56,76 L 73,88" dur="3s" begin="-1.5s" repeatCount="indefinite"/>
|
|
4391
|
+
<animate attributeName="opacity" values="0.3;0.8;0.9;0.8;0.3" keyTimes="0;0.25;0.5;0.75;1" dur="3s" begin="-1.5s" repeatCount="indefinite"/>
|
|
4392
|
+
</rect>
|
|
4393
|
+
<rect class="octo-data" x="-7" y="-4" width="14" height="8" rx="1.5" opacity="0">
|
|
4394
|
+
<animateMotion path="M 73,88 L 56,76 L 56,54 L 56,76 L 73,88" dur="3s" begin="-2.5s" repeatCount="indefinite"/>
|
|
4395
|
+
<animate attributeName="opacity" values="0.3;0.8;0.9;0.8;0.3" keyTimes="0;0.25;0.5;0.75;1" dur="3s" begin="-2.5s" repeatCount="indefinite"/>
|
|
4396
|
+
</rect>
|
|
4240
4397
|
</svg>
|
|
4241
4398
|
</div>
|
|
4242
|
-
`, isInline: true, styles: [":host{display:inline-flex;align-items:center;justify-content:center;color:var(--kendo-color-primary, #64ceb9)}.octo-loader{display:inline-flex;align-items:center;justify-content:center
|
|
4399
|
+
`, isInline: true, styles: [":host{display:inline-flex;align-items:center;justify-content:center;color:var(--kendo-color-primary, #64ceb9)}.octo-loader{display:inline-flex;align-items:center;justify-content:center}.octo-loader--small .octo-loader__svg{width:24px;height:24px}.octo-loader--medium .octo-loader__svg{width:48px;height:48px}.octo-arm--ol{transform-origin:7px 52.74px;animation:octo-wiggle-outer 1.2s ease-in-out infinite}.octo-arm--or{transform-origin:56px 52.74px;animation:octo-wiggle-outer 1.2s ease-in-out infinite;animation-delay:-.6s}.octo-leg--left{transform-origin:21.8px 52.74px;animation:octo-wiggle-inner 1s ease-in-out infinite}.octo-leg--center{transform-origin:31.5px 52.74px;animation:octo-wiggle-inner 1s ease-in-out infinite reverse;animation-delay:-.33s}.octo-leg--right{transform-origin:46px 52.74px;animation:octo-wiggle-inner 1s ease-in-out infinite;animation-delay:-.66s}@keyframes octo-wiggle-inner{0%,to{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}@keyframes octo-wiggle-outer{0%,to{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}.octo-orbit{stroke:var(--neo-cyan, #00a8dc)}.octo-data{fill:var(--neo-cyan, #00a8dc)}\n"] });
|
|
4243
4400
|
}
|
|
4244
4401
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: OctoLoaderComponent, decorators: [{
|
|
4245
4402
|
type: Component,
|
|
4246
4403
|
args: [{ selector: 'mm-octo-loader', standalone: true, template: `
|
|
4247
4404
|
<div class="octo-loader" [class.octo-loader--small]="size === 'small'" [class.octo-loader--medium]="size === 'medium'">
|
|
4248
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="
|
|
4249
|
-
<!--
|
|
4250
|
-
<
|
|
4251
|
-
|
|
4252
|
-
|
|
4253
|
-
|
|
4254
|
-
|
|
4255
|
-
<!--
|
|
4256
|
-
<
|
|
4257
|
-
|
|
4258
|
-
|
|
4259
|
-
|
|
4260
|
-
|
|
4261
|
-
|
|
4262
|
-
|
|
4263
|
-
|
|
4405
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-22 -8 112 118" class="octo-loader__svg" overflow="visible">
|
|
4406
|
+
<!-- Orbit track -->
|
|
4407
|
+
<circle class="octo-orbit" cx="34" cy="48" r="52" fill="none" stroke-width="2.5" stroke-dasharray="5 9" opacity="0.5">
|
|
4408
|
+
<animateTransform attributeName="transform" type="rotate"
|
|
4409
|
+
from="0 34 48" to="360 34 48" dur="12s" repeatCount="indefinite"/>
|
|
4410
|
+
</circle>
|
|
4411
|
+
|
|
4412
|
+
<!-- Orbiting data blocks -->
|
|
4413
|
+
<g>
|
|
4414
|
+
<animateTransform attributeName="transform" type="rotate"
|
|
4415
|
+
from="0 34 48" to="360 34 48" dur="3s" repeatCount="indefinite"/>
|
|
4416
|
+
<rect class="octo-data" x="28" y="-9" width="12" height="8" rx="1.5" opacity="0.95"/>
|
|
4417
|
+
</g>
|
|
4418
|
+
<g>
|
|
4419
|
+
<animateTransform attributeName="transform" type="rotate"
|
|
4420
|
+
from="120 34 48" to="480 34 48" dur="3s" repeatCount="indefinite"/>
|
|
4421
|
+
<rect class="octo-data" x="28" y="-9" width="12" height="8" rx="1.5" opacity="0.75"/>
|
|
4422
|
+
</g>
|
|
4423
|
+
<g>
|
|
4424
|
+
<animateTransform attributeName="transform" type="rotate"
|
|
4425
|
+
from="240 34 48" to="600 34 48" dur="3s" repeatCount="indefinite"/>
|
|
4426
|
+
<rect class="octo-data" x="28" y="-9" width="12" height="8" rx="1.5" opacity="0.5"/>
|
|
4427
|
+
</g>
|
|
4428
|
+
|
|
4429
|
+
<!-- Octo character -->
|
|
4430
|
+
<g>
|
|
4431
|
+
<!-- Body -->
|
|
4432
|
+
<polygon fill="currentColor"
|
|
4433
|
+
points="63.04 52.74 63.04 43.04 63.04 38.19 63.04 28.49 67.89 0 43.64 4.24 34.01 4.24 14.61 4.24 0 4.24 0 18.79 0 28.49 0 40.61 0 52.74 14.55 52.74 14.55 52.13 14.55 47.89 4.85 47.89 4.85 43.04 4.85 36.37 4.85 23.64 4.85 17.58 4.85 9.09 19.4 9.09 33.94 9.09 43.64 9.09 62.01 6.02 58.19 28.49 58.19 33.34 58.19 38.19 58.19 43.04 58.19 47.89 48.49 47.89 48.49 52.13 48.49 52.74"/>
|
|
4434
|
+
<!-- Eyes -->
|
|
4435
|
+
<rect fill="currentColor" x="18.79" y="19.4" width="4.85" height="13.94"/>
|
|
4436
|
+
<rect fill="currentColor" x="38.79" y="19.4" width="4.85" height="13.94"/>
|
|
4437
|
+
<!-- Left outer arm -->
|
|
4438
|
+
<g class="octo-arm octo-arm--ol">
|
|
4439
|
+
<polygon fill="currentColor"
|
|
4440
|
+
points="0 52.74 9.7 52.74 9.7 72.13 4.85 72.13 4.85 67.28 0 67.28 0 72.13 0 76.98 4.85 76.98 14.55 76.98 14.55 72.13 14.55 52.74"/>
|
|
4441
|
+
</g>
|
|
4442
|
+
<!-- Left inner leg -->
|
|
4443
|
+
<g class="octo-leg octo-leg--left">
|
|
4444
|
+
<polygon fill="currentColor"
|
|
4445
|
+
points="19.4 91.53 14.55 91.53 14.55 81.83 9.7 81.83 9.7 91.53 9.7 96.38 14.55 96.38 19.4 96.38 24.25 96.38 24.25 91.53 24.25 52.74 19.4 52.74 19.4 91.53"/>
|
|
4446
|
+
</g>
|
|
4447
|
+
<!-- Center leg -->
|
|
4448
|
+
<g class="octo-leg octo-leg--center">
|
|
4449
|
+
<rect fill="currentColor" x="29.1" y="52.74" width="4.85" height="33.94"/>
|
|
4450
|
+
</g>
|
|
4451
|
+
<!-- Right inner leg -->
|
|
4452
|
+
<g class="octo-leg octo-leg--right">
|
|
4453
|
+
<polygon fill="currentColor"
|
|
4454
|
+
points="48.49 91.53 43.64 91.53 43.64 52.74 38.79 52.74 38.79 91.53 38.79 96.38 43.64 96.38 48.49 96.38 53.34 96.38 53.34 91.53 53.34 81.83 48.49 81.83 48.49 91.53"/>
|
|
4455
|
+
</g>
|
|
4456
|
+
<!-- Right outer arm -->
|
|
4457
|
+
<g class="octo-arm octo-arm--or">
|
|
4458
|
+
<polygon fill="currentColor"
|
|
4459
|
+
points="48.49 52.74 48.49 72.13 48.49 76.98 58.19 76.98 63.04 76.98 63.04 67.28 58.19 67.28 58.19 72.13 53.34 72.13 53.34 52.74 63.04 52.74"/>
|
|
4460
|
+
</g>
|
|
4461
|
+
</g>
|
|
4462
|
+
|
|
4463
|
+
<!-- Data flow: orbit → left arm → body → left arm → orbit -->
|
|
4464
|
+
<rect class="octo-data" x="-7" y="-4" width="14" height="8" rx="1.5" opacity="0">
|
|
4465
|
+
<animateMotion path="M -10,88 L 7,76 L 7,54 L 7,76 L -10,88" dur="3s" repeatCount="indefinite"/>
|
|
4466
|
+
<animate attributeName="opacity" values="0.3;0.8;0.9;0.8;0.3" keyTimes="0;0.25;0.5;0.75;1" dur="3s" repeatCount="indefinite"/>
|
|
4467
|
+
</rect>
|
|
4468
|
+
<rect class="octo-data" x="-7" y="-4" width="14" height="8" rx="1.5" opacity="0">
|
|
4469
|
+
<animateMotion path="M -10,88 L 7,76 L 7,54 L 7,76 L -10,88" dur="3s" begin="-1s" repeatCount="indefinite"/>
|
|
4470
|
+
<animate attributeName="opacity" values="0.3;0.8;0.9;0.8;0.3" keyTimes="0;0.25;0.5;0.75;1" dur="3s" begin="-1s" repeatCount="indefinite"/>
|
|
4471
|
+
</rect>
|
|
4472
|
+
<rect class="octo-data" x="-7" y="-4" width="14" height="8" rx="1.5" opacity="0">
|
|
4473
|
+
<animateMotion path="M -10,88 L 7,76 L 7,54 L 7,76 L -10,88" dur="3s" begin="-2s" repeatCount="indefinite"/>
|
|
4474
|
+
<animate attributeName="opacity" values="0.3;0.8;0.9;0.8;0.3" keyTimes="0;0.25;0.5;0.75;1" dur="3s" begin="-2s" repeatCount="indefinite"/>
|
|
4475
|
+
</rect>
|
|
4476
|
+
|
|
4477
|
+
<!-- Data flow: orbit → right arm → body → right arm → orbit -->
|
|
4478
|
+
<rect class="octo-data" x="-7" y="-4" width="14" height="8" rx="1.5" opacity="0">
|
|
4479
|
+
<animateMotion path="M 73,88 L 56,76 L 56,54 L 56,76 L 73,88" dur="3s" begin="-0.5s" repeatCount="indefinite"/>
|
|
4480
|
+
<animate attributeName="opacity" values="0.3;0.8;0.9;0.8;0.3" keyTimes="0;0.25;0.5;0.75;1" dur="3s" begin="-0.5s" repeatCount="indefinite"/>
|
|
4481
|
+
</rect>
|
|
4482
|
+
<rect class="octo-data" x="-7" y="-4" width="14" height="8" rx="1.5" opacity="0">
|
|
4483
|
+
<animateMotion path="M 73,88 L 56,76 L 56,54 L 56,76 L 73,88" dur="3s" begin="-1.5s" repeatCount="indefinite"/>
|
|
4484
|
+
<animate attributeName="opacity" values="0.3;0.8;0.9;0.8;0.3" keyTimes="0;0.25;0.5;0.75;1" dur="3s" begin="-1.5s" repeatCount="indefinite"/>
|
|
4485
|
+
</rect>
|
|
4486
|
+
<rect class="octo-data" x="-7" y="-4" width="14" height="8" rx="1.5" opacity="0">
|
|
4487
|
+
<animateMotion path="M 73,88 L 56,76 L 56,54 L 56,76 L 73,88" dur="3s" begin="-2.5s" repeatCount="indefinite"/>
|
|
4488
|
+
<animate attributeName="opacity" values="0.3;0.8;0.9;0.8;0.3" keyTimes="0;0.25;0.5;0.75;1" dur="3s" begin="-2.5s" repeatCount="indefinite"/>
|
|
4489
|
+
</rect>
|
|
4264
4490
|
</svg>
|
|
4265
4491
|
</div>
|
|
4266
|
-
`, styles: [":host{display:inline-flex;align-items:center;justify-content:center;color:var(--kendo-color-primary, #64ceb9)}.octo-loader{display:inline-flex;align-items:center;justify-content:center
|
|
4492
|
+
`, styles: [":host{display:inline-flex;align-items:center;justify-content:center;color:var(--kendo-color-primary, #64ceb9)}.octo-loader{display:inline-flex;align-items:center;justify-content:center}.octo-loader--small .octo-loader__svg{width:24px;height:24px}.octo-loader--medium .octo-loader__svg{width:48px;height:48px}.octo-arm--ol{transform-origin:7px 52.74px;animation:octo-wiggle-outer 1.2s ease-in-out infinite}.octo-arm--or{transform-origin:56px 52.74px;animation:octo-wiggle-outer 1.2s ease-in-out infinite;animation-delay:-.6s}.octo-leg--left{transform-origin:21.8px 52.74px;animation:octo-wiggle-inner 1s ease-in-out infinite}.octo-leg--center{transform-origin:31.5px 52.74px;animation:octo-wiggle-inner 1s ease-in-out infinite reverse;animation-delay:-.33s}.octo-leg--right{transform-origin:46px 52.74px;animation:octo-wiggle-inner 1s ease-in-out infinite;animation-delay:-.66s}@keyframes octo-wiggle-inner{0%,to{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}@keyframes octo-wiggle-outer{0%,to{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}.octo-orbit{stroke:var(--neo-cyan, #00a8dc)}.octo-data{fill:var(--neo-cyan, #00a8dc)}\n"] }]
|
|
4267
4493
|
}], propDecorators: { size: [{
|
|
4268
4494
|
type: Input
|
|
4269
4495
|
}] } });
|