@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 i2$1 from '@progress/kendo-angular-grid';
10
+ import * as i3 from '@progress/kendo-angular-grid';
11
11
  import { GridModule } from '@progress/kendo-angular-grid';
12
- import * as i3 from '@progress/kendo-angular-buttons';
12
+ import * as i4 from '@progress/kendo-angular-buttons';
13
13
  import { ButtonsModule, ButtonModule } from '@progress/kendo-angular-buttons';
14
- import * as i4 from '@progress/kendo-angular-inputs';
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$1 from '@progress/kendo-angular-icons';
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: i2$1.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: i2$1.SelectionDirective, selector: "[kendoGridSelectBy]" }, { kind: "component", type: i2$1.ColumnComponent, selector: "kendo-grid-column", inputs: ["field", "format", "sortable", "groupable", "editor", "filter", "filterVariant", "filterable", "editable"] }, { kind: "directive", type: i2$1.CellTemplateDirective, selector: "[kendoGridCellTemplate]" }, { kind: "ngmodule", type: ButtonsModule }, { kind: "component", type: i3.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: i4.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: i4.TextBoxSuffixTemplateDirective, selector: "[kendoTextBoxSuffixTemplate]", inputs: ["showSeparator"] }, { kind: "ngmodule", type: DropDownListModule }, { kind: "ngmodule", type: IconsModule }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i5.DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }] });
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$1.SVGIconComponent, selector: "kendo-svg-icon, kendo-svgicon", inputs: ["icon"], exportAs: ["kendoSVGIcon"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i3.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"] }] });
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: i2$1.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: i2$1.ColumnComponent, selector: "kendo-grid-column", inputs: ["field", "format", "sortable", "groupable", "editor", "filter", "filterVariant", "filterable", "editable"] }, { kind: "directive", type: i2$1.CellTemplateDirective, selector: "[kendoGridCellTemplate]" }, { kind: "ngmodule", type: InputsModule }, { kind: "component", type: i4.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$1.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"] }] });
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.loadAvailableModels();
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 ckModelIds = this.selectedModel
1906
- ? [this.selectedModel]
1907
- : this.initialCkModelIds;
1908
- this.subscriptions.add(this.ckTypeSelectorService.getCkTypes({
1909
- ckModelIds,
1910
- searchText: this.searchText || undefined,
1911
- first: this.pageSize,
1912
- skip: this.skip
1913
- }).subscribe({
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: i2$1.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: i2$1.SelectionDirective, selector: "[kendoGridSelectBy]" }, { kind: "component", type: i2$1.ColumnComponent, selector: "kendo-grid-column", inputs: ["field", "format", "sortable", "groupable", "editor", "filter", "filterVariant", "filterable", "editable"] }, { kind: "directive", type: i2$1.CellTemplateDirective, selector: "[kendoGridCellTemplate]" }, { kind: "ngmodule", type: ButtonsModule }, { kind: "component", type: i3.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: i4.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: i4.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.DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }] });
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
- // Pre-populate selected attributes if provided
2370
- this.loadInitialSelectedAttributes(data.selectedAttributes);
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
- const result = {
2487
- selectedAttributes: this.selectedAttributes
2488
- };
2489
- this.dialog.close(result);
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: i2$1.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: i2$1.SelectionDirective, selector: "[kendoGridSelectBy]" }, { kind: "component", type: i2$1.ColumnComponent, selector: "kendo-grid-column", inputs: ["field", "format", "sortable", "groupable", "editor", "filter", "filterVariant", "filterable", "editable"] }, { kind: "directive", type: i2$1.CellTemplateDirective, selector: "[kendoGridCellTemplate]" }, { kind: "ngmodule", type: ButtonsModule }, { kind: "component", type: i3.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: i4.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: i4.TextBoxSuffixTemplateDirective, selector: "[kendoTextBoxSuffixTemplate]", inputs: ["showSeparator"] }, { kind: "ngmodule", type: IconsModule }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i5.DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }] });
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 => this.ckTypeSelectorService.getCkTypes({
2992
- ckModelIds: this.ckModelIds,
2993
- searchText: filter,
2994
- first: this.maxResults
2995
- }).pipe(catchError(error => {
2996
- console.error('CK type search error:', error);
2997
- return of({ items: [], totalCount: 0 });
2998
- })))).subscribe(result => {
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: i3.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$1.SVGIconComponent, selector: "kendo-svg-icon, kendo-svgicon", inputs: ["icon"], exportAs: ["kendoSVGIcon"] }, { kind: "ngmodule", type: SVGIconModule }] });
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: i2$1.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: i2$1.SelectionDirective, selector: "[kendoGridSelectBy]" }, { kind: "component", type: i2$1.ColumnComponent, selector: "kendo-grid-column", inputs: ["field", "format", "sortable", "groupable", "editor", "filter", "filterVariant", "filterable", "editable"] }, { kind: "directive", type: i2$1.CellTemplateDirective, selector: "[kendoGridCellTemplate]" }, { kind: "directive", type: i2$1.HeaderTemplateDirective, selector: "[kendoGridHeaderTemplate]" }, { kind: "ngmodule", type: ButtonsModule }, { kind: "component", type: i3.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: i4.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: i4.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 }] });
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: i3.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: i3.ButtonItemTemplateDirective, selector: "[kendoDropDownButtonItemTemplate],[kendoSplitButtonItemTemplate]" }, { kind: "ngmodule", type: SVGIconModule }] });
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 a tentacle wave animation,
4208
- * gentle bob, and pulsing glow effect.
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="0 0 96 97" class="octo-loader__svg" overflow="visible">
4225
- <!-- Body + head + outer arms -->
4226
- <polygon fill="currentColor"
4227
- points="58.19 72.13 53.34 72.13 53.34 52.74 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 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 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 48.49 72.13 48.49 76.98 58.19 76.98 63.04 76.98 63.04 76.98 63.04 67.28 58.19 67.28 58.19 72.13"/>
4228
- <!-- Eyes -->
4229
- <rect fill="currentColor" x="18.79" y="19.4" width="4.85" height="13.94"/>
4230
- <rect fill="currentColor" x="38.79" y="19.4" width="4.85" height="13.94"/>
4231
- <!-- Left tentacle pair -->
4232
- <polygon class="octo-leg octo-leg--left" fill="currentColor"
4233
- 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"/>
4234
- <!-- Center tentacle -->
4235
- <rect class="octo-leg octo-leg--center" fill="currentColor"
4236
- x="29.1" y="52.74" width="4.85" height="33.94"/>
4237
- <!-- Right tentacle pair -->
4238
- <polygon class="octo-leg octo-leg--right" fill="currentColor"
4239
- 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"/>
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;animation:octo-spin 6s ease-in-out infinite}.octo-loader--small .octo-loader__svg{width:24px;height:24px}.octo-loader--medium .octo-loader__svg{width:48px;height:48px}.octo-loader__svg{animation:octo-glow 6s ease-in-out infinite}.octo-leg{transform-box:fill-box;transform-origin:50% 0%}.octo-leg--left{animation:octo-wiggle-left 6s ease-in-out infinite}.octo-leg--center{animation:octo-wiggle-center 6s ease-in-out infinite}.octo-leg--right{animation:octo-wiggle-right 6s ease-in-out infinite}@keyframes octo-spin{0%{transform:rotate(0) scale(1)}5%{transform:rotate(0) scale(1)}15%{transform:rotate(360deg) scale(.85)}20%{transform:rotate(360deg) scale(1)}25%{transform:rotate(360deg) scale(1)}40%{transform:rotate(0) scale(.85)}45%{transform:rotate(0) scale(1)}to{transform:rotate(0) scale(1)}}@keyframes octo-glow{0%,5%{filter:drop-shadow(0 0 2px currentColor)}15%{filter:drop-shadow(0 0 14px currentColor)}20%,25%{filter:drop-shadow(0 0 6px currentColor)}40%{filter:drop-shadow(0 0 14px currentColor)}50%,to{filter:drop-shadow(0 0 2px currentColor)}}@keyframes octo-wiggle-left{0%,47%{transform:rotate(0)}50%{transform:rotate(12deg)}53%{transform:rotate(-10deg)}56%{transform:rotate(10deg)}59%{transform:rotate(-8deg)}62%{transform:rotate(6deg)}65%{transform:rotate(-3deg)}68%{transform:rotate(0)}to{transform:rotate(0)}}@keyframes octo-wiggle-center{0%,48%{transform:rotate(0)}51%{transform:rotate(-10deg)}54%{transform:rotate(9deg)}57%{transform:rotate(-8deg)}60%{transform:rotate(7deg)}63%{transform:rotate(-4deg)}66%{transform:rotate(2deg)}69%{transform:rotate(0)}to{transform:rotate(0)}}@keyframes octo-wiggle-right{0%,49%{transform:rotate(0)}52%{transform:rotate(-12deg)}55%{transform:rotate(10deg)}58%{transform:rotate(-10deg)}61%{transform:rotate(8deg)}64%{transform:rotate(-6deg)}67%{transform:rotate(3deg)}70%{transform:rotate(0)}to{transform:rotate(0)}}\n"] });
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="0 0 96 97" class="octo-loader__svg" overflow="visible">
4249
- <!-- Body + head + outer arms -->
4250
- <polygon fill="currentColor"
4251
- points="58.19 72.13 53.34 72.13 53.34 52.74 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 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 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 48.49 72.13 48.49 76.98 58.19 76.98 63.04 76.98 63.04 76.98 63.04 67.28 58.19 67.28 58.19 72.13"/>
4252
- <!-- Eyes -->
4253
- <rect fill="currentColor" x="18.79" y="19.4" width="4.85" height="13.94"/>
4254
- <rect fill="currentColor" x="38.79" y="19.4" width="4.85" height="13.94"/>
4255
- <!-- Left tentacle pair -->
4256
- <polygon class="octo-leg octo-leg--left" fill="currentColor"
4257
- 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"/>
4258
- <!-- Center tentacle -->
4259
- <rect class="octo-leg octo-leg--center" fill="currentColor"
4260
- x="29.1" y="52.74" width="4.85" height="33.94"/>
4261
- <!-- Right tentacle pair -->
4262
- <polygon class="octo-leg octo-leg--right" fill="currentColor"
4263
- 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"/>
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;animation:octo-spin 6s ease-in-out infinite}.octo-loader--small .octo-loader__svg{width:24px;height:24px}.octo-loader--medium .octo-loader__svg{width:48px;height:48px}.octo-loader__svg{animation:octo-glow 6s ease-in-out infinite}.octo-leg{transform-box:fill-box;transform-origin:50% 0%}.octo-leg--left{animation:octo-wiggle-left 6s ease-in-out infinite}.octo-leg--center{animation:octo-wiggle-center 6s ease-in-out infinite}.octo-leg--right{animation:octo-wiggle-right 6s ease-in-out infinite}@keyframes octo-spin{0%{transform:rotate(0) scale(1)}5%{transform:rotate(0) scale(1)}15%{transform:rotate(360deg) scale(.85)}20%{transform:rotate(360deg) scale(1)}25%{transform:rotate(360deg) scale(1)}40%{transform:rotate(0) scale(.85)}45%{transform:rotate(0) scale(1)}to{transform:rotate(0) scale(1)}}@keyframes octo-glow{0%,5%{filter:drop-shadow(0 0 2px currentColor)}15%{filter:drop-shadow(0 0 14px currentColor)}20%,25%{filter:drop-shadow(0 0 6px currentColor)}40%{filter:drop-shadow(0 0 14px currentColor)}50%,to{filter:drop-shadow(0 0 2px currentColor)}}@keyframes octo-wiggle-left{0%,47%{transform:rotate(0)}50%{transform:rotate(12deg)}53%{transform:rotate(-10deg)}56%{transform:rotate(10deg)}59%{transform:rotate(-8deg)}62%{transform:rotate(6deg)}65%{transform:rotate(-3deg)}68%{transform:rotate(0)}to{transform:rotate(0)}}@keyframes octo-wiggle-center{0%,48%{transform:rotate(0)}51%{transform:rotate(-10deg)}54%{transform:rotate(9deg)}57%{transform:rotate(-8deg)}60%{transform:rotate(7deg)}63%{transform:rotate(-4deg)}66%{transform:rotate(2deg)}69%{transform:rotate(0)}to{transform:rotate(0)}}@keyframes octo-wiggle-right{0%,49%{transform:rotate(0)}52%{transform:rotate(-12deg)}55%{transform:rotate(10deg)}58%{transform:rotate(-10deg)}61%{transform:rotate(8deg)}64%{transform:rotate(-6deg)}67%{transform:rotate(3deg)}70%{transform:rotate(0)}to{transform:rotate(0)}}\n"] }]
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
  }] } });