@meshmakers/octo-ui 3.4.1450 → 3.4.1490

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.
@@ -2,7 +2,7 @@ import * as _angular_core from '@angular/core';
2
2
  import { OnInit, OnDestroy, EventEmitter, OnChanges, SimpleChanges, AfterViewInit, Provider, InjectionToken, EnvironmentProviders } from '@angular/core';
3
3
  import * as _progress_kendo_svg_icons from '@progress/kendo-svg-icons';
4
4
  import { SVGIcon } from '@progress/kendo-svg-icons';
5
- import { AttributeItem, AttributeValueTypeDto as AttributeValueTypeDto$1, CkTypeSelectorItem as CkTypeSelectorItem$1, RtEntityDto, FieldFilterDto, SearchFilterDto, SortDto, CkModelDto, CkTypeDto, GraphDirectionDto, RtAssociationDto, FieldFilterOperatorsDto, GetCkTypesDtoGQL, RuntimeEntityItem, RuntimeEntitySelectDataSource, RuntimeEntityDialogDataSource } from '@meshmakers/octo-services';
5
+ import { AttributeItem, AttributeValueTypeDto as AttributeValueTypeDto$1, CkTypeSelectorItem as CkTypeSelectorItem$1, RtEntityDto, FieldFilterDto, SearchFilterDto, SortDto, CkModelDto, CkTypeDto, GraphDirectionDto, RtAssociationDto, FieldFilterOperatorsDto, SecretStatus, GetCkTypesDtoGQL, RuntimeEntityItem, RuntimeEntitySelectDataSource, RuntimeEntityDialogDataSource } from '@meshmakers/octo-services';
6
6
  import { GridDataResult, CellClickEvent, RowArgs, PageChangeEvent, SelectionEvent } from '@progress/kendo-angular-grid';
7
7
  import { TreeItemDataTyped, TreeItemData, CommandItemExecuteEventArgs, CommandItem } from '@meshmakers/shared-services';
8
8
  import * as _meshmakers_octo_ui from '@meshmakers/octo-ui';
@@ -664,11 +664,19 @@ declare class EntityIdInfoComponent {
664
664
  rtCkTypeId: string;
665
665
  /** The CkTypeId - full versioned Construction Kit type ID (e.g., System.Communication-2.0.3/MeshAdapter-1) */
666
666
  ckTypeId?: string;
667
+ /** Button text (translatable, AB#5623). Default `Copy ID`. */
668
+ buttonText: string;
669
+ /** Tooltip of the button (translatable, AB#5623). Default `Copy Entity ID to clipboard`. */
670
+ tooltip: string;
671
+ /** Notification after copying; `{label}` is replaced by the copied ID kind (AB#5623). Default `{label} copied`. */
672
+ copiedMessage: string;
673
+ /** Notification when copying failed (AB#5623). Default `Failed to copy to clipboard`. */
674
+ copyFailedMessage: string;
667
675
  protected get copyOptions(): CopyOption[];
668
676
  private truncateValue;
669
677
  protected copyToClipboard(option: CopyOption): Promise<void>;
670
678
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<EntityIdInfoComponent, never>;
671
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<EntityIdInfoComponent, "mm-entity-id-info", never, { "rtId": { "alias": "rtId"; "required": true; }; "rtCkTypeId": { "alias": "rtCkTypeId"; "required": true; }; "ckTypeId": { "alias": "ckTypeId"; "required": false; }; }, {}, never, never, true, never>;
679
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<EntityIdInfoComponent, "mm-entity-id-info", never, { "rtId": { "alias": "rtId"; "required": true; }; "rtCkTypeId": { "alias": "rtCkTypeId"; "required": true; }; "ckTypeId": { "alias": "ckTypeId"; "required": false; }; "buttonText": { "alias": "buttonText"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "copiedMessage": { "alias": "copiedMessage"; "required": false; }; "copyFailedMessage": { "alias": "copyFailedMessage"; "required": false; }; }, {}, never, never, true, never>;
672
680
  }
673
681
 
674
682
  /** One resolved per-role override (presentation only). */
@@ -1292,6 +1300,81 @@ declare class OctoLoaderComponent {
1292
1300
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<OctoLoaderComponent, "mm-octo-loader", never, { "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
1293
1301
  }
1294
1302
 
1303
+ /** Marks projected content that replaces the page title text: `<span mmPageTitle>…</span>`. */
1304
+ declare class PageTitleDirective {
1305
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<PageTitleDirective, never>;
1306
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<PageTitleDirective, "[mmPageTitle]", never, {}, {}, never, never, true, never>;
1307
+ }
1308
+ /** Marks projected content shown under the title: `<span mmPageSubtitle>…</span>`. */
1309
+ declare class PageSubtitleDirective {
1310
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<PageSubtitleDirective, never>;
1311
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<PageSubtitleDirective, "[mmPageSubtitle]", never, {}, {}, never, never, true, never>;
1312
+ }
1313
+ /** Marks projected page actions (buttons), rendered at the end of the header: `<div mmPageActions>…</div>`. */
1314
+ declare class PageActionsDirective {
1315
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<PageActionsDirective, never>;
1316
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<PageActionsDirective, "[mmPageActions]", never, {}, {}, never, never, true, never>;
1317
+ }
1318
+ /** Heading level used for the page title. */
1319
+ type PageHeadingLevel = 1 | 2 | 3;
1320
+ interface ProjectedSlots {
1321
+ title: boolean;
1322
+ subtitle: boolean;
1323
+ actions: boolean;
1324
+ }
1325
+ /**
1326
+ * Page layout: an optional header (title, subtitle, actions) above a content
1327
+ * area. Replaces the retired LCARS page triple (header, content panel and
1328
+ * READY footer); there is no footer.
1329
+ *
1330
+ * The header renders only when there is something to show — a `pageTitle` /
1331
+ * `pageSubtitle` input or projected `[mmPageTitle]`, `[mmPageSubtitle]` or
1332
+ * `[mmPageActions]` content — so pages inside a space shell, which already
1333
+ * shows the area title, can use `<mm-page>` as a bare content frame.
1334
+ * Projected content is detected from the rendered DOM, so the slots work
1335
+ * whether or not the consumer imports the marker directives (`MM_PAGE`).
1336
+ *
1337
+ * ```html
1338
+ * <mm-page pageTitle="Adapters" pageSubtitle="12 registered">
1339
+ * <div mmPageActions>
1340
+ * <button kendoButton themeColor="primary">New adapter</button>
1341
+ * </div>
1342
+ * <mm-list-view …></mm-list-view>
1343
+ * </mm-page>
1344
+ * ```
1345
+ *
1346
+ * The header is a plain `<div>` (no banner landmark) and the title defaults to
1347
+ * heading level 2 — the app/space shell owns level 1. Styling is token-based
1348
+ * (`--theme-*` with neutral fallbacks); the host fills its parent
1349
+ * (`height: 100%`) and the content area scrolls.
1350
+ */
1351
+ declare class PageComponent {
1352
+ /** Title text. Alternatively project `[mmPageTitle]` content. */
1353
+ readonly pageTitle: _angular_core.InputSignal<string | null | undefined>;
1354
+ /** Subtitle text under the title. Alternatively project `[mmPageSubtitle]` content. */
1355
+ readonly pageSubtitle: _angular_core.InputSignal<string | null | undefined>;
1356
+ /** `aria-level` of the title. Defaults to 2 — the app/space shell owns level 1. */
1357
+ readonly headingLevel: _angular_core.InputSignal<PageHeadingLevel>;
1358
+ /** Pad the content area with the page gutter. Set `false` for full-bleed grids and editors. */
1359
+ readonly padded: _angular_core.InputSignalWithTransform<boolean, unknown>;
1360
+ private readonly titleSlot;
1361
+ private readonly subtitleSlot;
1362
+ private readonly actionsSlot;
1363
+ /** Which slots currently hold projected content (read from the DOM after each render). */
1364
+ protected readonly projected: _angular_core.WritableSignal<ProjectedSlots>;
1365
+ protected readonly hasTitle: _angular_core.Signal<boolean>;
1366
+ protected readonly hasSubtitle: _angular_core.Signal<boolean>;
1367
+ protected readonly hasHeader: _angular_core.Signal<boolean>;
1368
+ constructor();
1369
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<PageComponent, never>;
1370
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<PageComponent, "mm-page", never, { "pageTitle": { "alias": "pageTitle"; "required": false; "isSignal": true; }; "pageSubtitle": { "alias": "pageSubtitle"; "required": false; "isSignal": true; }; "headingLevel": { "alias": "headingLevel"; "required": false; "isSignal": true; }; "padded": { "alias": "padded"; "required": false; "isSignal": true; }; }, {}, never, ["[mmPageTitle]", "[mmPageSubtitle]", "[mmPageActions]", "*"], true, never>;
1371
+ }
1372
+ /**
1373
+ * Everything a template needs for `<mm-page>` and its slots:
1374
+ * `imports: [...MM_PAGE]` (or `imports: [MM_PAGE]`).
1375
+ */
1376
+ declare const MM_PAGE: readonly [typeof PageComponent, typeof PageTitleDirective, typeof PageSubtitleDirective, typeof PageActionsDirective];
1377
+
1295
1378
  declare enum AttributeValueTypeDto {
1296
1379
  BinaryDto = "BINARY",
1297
1380
  BinaryLinkedDto = "BINARY_LINKED",
@@ -1309,6 +1392,8 @@ declare enum AttributeValueTypeDto {
1309
1392
  IntArrayDto = "INT_ARRAY",
1310
1393
  RecordDto = "RECORD",
1311
1394
  RecordArrayDto = "RECORD_ARRAY",
1395
+ /** SECRET value type (AB#5528): the value is never read; `value` holds a `SecretState`. */
1396
+ SecretDto = "SECRET",
1312
1397
  StringDto = "STRING",
1313
1398
  StringArrayDto = "STRING_ARRAY",
1314
1399
  TimeSpanDto = "TIME_SPAN"
@@ -1422,6 +1507,10 @@ declare const DEFAULT_PROPERTY_GRID_MESSAGES: PropertyGridMessages;
1422
1507
  interface RtAttribute {
1423
1508
  attributeName?: string | null;
1424
1509
  value?: unknown;
1510
+ /** SECRET value type (AB#5528): null for non-secret attributes. */
1511
+ secretIsSet?: boolean | null;
1512
+ secretKeyMissing?: boolean | null;
1513
+ secretSetAt?: string | Date | null;
1425
1514
  }
1426
1515
  /** Represents an RtRecord with a ckRecordId and attributes */
1427
1516
  interface RtRecord {
@@ -1567,6 +1656,11 @@ declare class PropertyGridComponent implements OnInit, OnChanges {
1567
1656
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<PropertyGridComponent, "mm-property-grid", never, { "data": { "alias": "data"; "required": false; }; "config": { "alias": "config"; "required": false; }; "showTypeColumn": { "alias": "showTypeColumn"; "required": false; }; "messages": { "alias": "messages"; "required": false; }; }, { "propertyChange": "propertyChange"; "saveRequested": "saveRequested"; "binaryDownload": "binaryDownload"; }, never, never, true, never>;
1568
1657
  }
1569
1658
 
1659
+ /**
1660
+ * A secret record member as projected by the server (AB#5528): the marker `{ isSet }` (optionally
1661
+ * with `keyMissing` / `setAt`), or a normalised `SecretState`. Nothing else has exactly these keys.
1662
+ */
1663
+ declare function isSecretMarker(value: unknown): boolean;
1570
1664
  /**
1571
1665
  * Component for displaying property values with appropriate formatting
1572
1666
  */
@@ -1579,6 +1673,9 @@ declare class PropertyValueDisplayComponent implements OnInit, OnChanges {
1579
1673
  binaryDownload: EventEmitter<BinaryDownloadEvent>;
1580
1674
  isExpanded: boolean;
1581
1675
  private readonly windowService;
1676
+ private readonly locale;
1677
+ /** Non-null when the value is a secret state (SECRET value type or record member marker). */
1678
+ secretStatus: SecretStatus | null;
1582
1679
  expandableRecord: boolean;
1583
1680
  complexType: boolean;
1584
1681
  binaryLinkedWithDownload: boolean;
@@ -1605,6 +1702,8 @@ declare class PropertyValueDisplayComponent implements OnInit, OnChanges {
1605
1702
  ngOnInit(): void;
1606
1703
  ngOnChanges(changes: SimpleChanges): void;
1607
1704
  private recomputeDerivedValues;
1705
+ /** Set / not set / key missing for a SECRET value or a record member marker `{ isSet }` (AB#5528). */
1706
+ private computeSecretStatus;
1608
1707
  private computeFormattedValue;
1609
1708
  private computeIsExpandableRecord;
1610
1709
  /**
@@ -1813,6 +1912,10 @@ interface RuntimeBrowserMessages {
1813
1912
  longitudeHint?: string;
1814
1913
  /** Hint for GEO latitude input. */
1815
1914
  latitudeHint?: string;
1915
+ /** Hint under a write-only secret field in the edit form (AB#5542). */
1916
+ secretWriteOnlyHint?: string;
1917
+ /** Warning when an edited field could not be saved because its value is not fully loaded (secret inside, AB#5542). */
1918
+ recordWithSecretNotSaved?: string;
1816
1919
  /**
1817
1920
  * Drag-and-drop messages for the binary attribute drop zone
1818
1921
  * (forwarded to <kendo-fileselect-messages>).
@@ -1855,8 +1958,11 @@ interface RuntimeBrowserMessages {
1855
1958
  errorMessage?: string;
1856
1959
  };
1857
1960
  title: string;
1961
+ /** @deprecated No longer rendered since the page uses `mm-page` (AB#5526). */
1858
1962
  badgeLabel: string;
1963
+ /** @deprecated No longer rendered since the page uses `mm-page` (AB#5526). */
1859
1964
  titlePrefix: string;
1965
+ /** @deprecated No longer rendered — the LCARS "READY" footer was removed (AB#5526). */
1860
1966
  ready: string;
1861
1967
  selectItem: string;
1862
1968
  noPropertiesAvailable: string;
@@ -1901,6 +2007,12 @@ interface RuntimeBrowserMessages {
1901
2007
  create: string;
1902
2008
  edit: string;
1903
2009
  delete: string;
2010
+ /** Danger confirmation of the toolbar Delete (AB#5579); `{name}` = entity name. Missing = English default. */
2011
+ confirmDeleteEntityTitle?: string;
2012
+ /** What the toolbar Delete loses. */
2013
+ confirmDeleteEntityConsequence?: string;
2014
+ /** Confirming button of the toolbar Delete (verb + object). */
2015
+ confirmDeleteEntityConfirmText?: string;
1904
2016
  createEntity: string;
1905
2017
  updateEntity: string;
1906
2018
  name: string;
@@ -1952,6 +2064,8 @@ interface RuntimeBrowserMessages {
1952
2064
  treeMoveOnRootUnsupported?: string;
1953
2065
  /** Card header prefix for each mapping card: "MAPPING N". Default: "MAPPING" */
1954
2066
  mappingHeader?: string;
2067
+ /** Tooltip / accessible name of a mapping card's remove button (AB#5579). */
2068
+ mappingRemove?: string;
1955
2069
  /** Label for the source data point row. Default: "Source Data Point" */
1956
2070
  mappingSourceDataPoint?: string;
1957
2071
  /** Label for the "Add Mapping" toolbar button. Default: "+ Add Mapping" */
@@ -2422,6 +2536,7 @@ declare class RuntimeBrowserDetailsComponent implements OnChanges, AfterViewInit
2422
2536
  private readonly createEntitiesGQL;
2423
2537
  private readonly updateEntitiesGQL;
2424
2538
  private readonly deleteEntitiesGQL;
2539
+ private readonly confirmation;
2425
2540
  private readonly entitySelectorDialog;
2426
2541
  private readonly attributeSelectorDialog;
2427
2542
  dataMappings: DataPointMappingItem[];
@@ -2556,6 +2671,7 @@ declare class RuntimeBrowserComponent implements AfterViewInit {
2556
2671
  protected readonly dataSource: RuntimeBrowserDataSource;
2557
2672
  private readonly getRuntimeEntityByIdGQL;
2558
2673
  private readonly inputService;
2674
+ private readonly confirmation;
2559
2675
  private readonly router;
2560
2676
  private readonly route;
2561
2677
  private readonly stateService;
@@ -2827,6 +2943,82 @@ declare class RuntimeBrowserStateService {
2827
2943
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<RuntimeBrowserStateService>;
2828
2944
  }
2829
2945
 
2946
+ /**
2947
+ * Attributes of a `System.Communication/DataPointMapping` entity that the runtime browser reads
2948
+ * (camelCase, as the `attributeNames` filter expects).
2949
+ */
2950
+ declare const DATA_POINT_MAPPING_ATTRIBUTE_NAMES: readonly string[];
2951
+ /** Result of {@link SecretSafeAttributeNamesService.analyse}. */
2952
+ interface SecretSafeAttributeAnalysis {
2953
+ /** camelCase names to pass as `attributeNames` (attributes + record sub-attributes, no secrets). */
2954
+ readonly attributeNames: string[];
2955
+ /** camelCase names of the secret candidates found (top level and inside records). */
2956
+ readonly secretNames: string[];
2957
+ /**
2958
+ * camelCase names of SECRET-typed attributes (AB#5528) that are safe to READ: the server returns
2959
+ * `value: null` plus `secretIsSet` for them (records: the marker `{ isSet }`). Callers that show a
2960
+ * set / not-set badge append them to `attributeNames` and select `secretIsSet`. A name that is
2961
+ * also a non-SECRET (heuristic) secret somewhere is never listed.
2962
+ */
2963
+ readonly secretStateNames: string[];
2964
+ /**
2965
+ * Top-level attributes (camelCase) that must NOT be written back by an editor because their
2966
+ * stored value is not (completely) loaded: records whose type contains a secret or a
2967
+ * sub-attribute excluded from `attributeNames`, a secret record attribute, and non-secret
2968
+ * attributes excluded by a name collision with a secret elsewhere. Top-level secret scalars are
2969
+ * not listed — they are write-only (an empty value is omitted, i.e. kept).
2970
+ */
2971
+ readonly blockedAttributes: string[];
2972
+ }
2973
+ /**
2974
+ * Builds SECRET-safe `attributeNames` lists for the generic runtime documents (AB#5542).
2975
+ *
2976
+ * The generic `attributes` field returns every attribute — credentials included — unless it is
2977
+ * restricted. Screens that show "all attributes" of an arbitrary CK type (property grid, entity
2978
+ * detail, edit form, meshboard widgets) use {@link forCkType}: the CK type's attributes plus the
2979
+ * sub-attributes of its records (the server applies the same filter inside records), minus the
2980
+ * TYPE-AWARE secret candidates (`isSecretAttributeCandidate`: explicit `secret` metadata, or a
2981
+ * textual attribute with a credential-like name). Non-secret attributes are never dropped by name
2982
+ * (`isSecret: BOOLEAN`, a `credentials` RECORD stay in the list). Because one flat list filters
2983
+ * all nesting levels, a name that is a secret anywhere is excluded everywhere; editors must not
2984
+ * write back what was therefore not loaded ({@link SecretSafeAttributeAnalysis.blockedAttributes}).
2985
+ *
2986
+ * All reachable record definitions are loaded first and the "contains a secret / excluded name"
2987
+ * facts are computed over the whole record graph, so recursive record types are handled without
2988
+ * caching a premature "no secret" result for a record reached through a cycle.
2989
+ *
2990
+ * Failures of the type lookup yield an empty list (no attributes) — fail closed. Lookups go
2991
+ * through Apollo's cache, so repeated calls are cheap.
2992
+ */
2993
+ declare class SecretSafeAttributeNamesService {
2994
+ private readonly resolver;
2995
+ private readonly typeAttributesGQL;
2996
+ /**
2997
+ * camelCase names of all non-secret attributes (incl. record sub-attributes) of a runtime type.
2998
+ * @param rtCkTypeId the type in RtCkTypeId format (`Basic/TreeNode`, as in `RtEntity.ckTypeId`).
2999
+ * @param options.includeSecretState also list the SECRET-typed attributes (safe to read, see
3000
+ * {@link SecretSafeAttributeAnalysis.secretStateNames}) — the document must select `secretIsSet`.
3001
+ */
3002
+ forCkType(rtCkTypeId: string | null | undefined, options?: {
3003
+ includeSecretState?: boolean;
3004
+ }): Promise<string[]>;
3005
+ /**
3006
+ * Type-aware restriction of a requested name list (e.g. widget-configured fields): the requested
3007
+ * names (camelCased) that are non-secret attributes of the type. Names that are unknown to the
3008
+ * type or secret are dropped; a failed CK lookup yields `[]` (fail closed).
3009
+ */
3010
+ restrict(rtCkTypeId: string | null | undefined, requested: readonly (string | null | undefined)[]): Promise<string[]>;
3011
+ /** Full analysis: safe names, secret names and the attributes an editor must not write back. */
3012
+ analyse(rtCkTypeId: string | null | undefined): Promise<SecretSafeAttributeAnalysis>;
3013
+ /** Loads every record definition reachable from the type's attributes (each once). */
3014
+ private loadRecordGraph;
3015
+ private loadType;
3016
+ /** Record sub-attributes by CkRecordId full name (cached by Apollo, errors yield []). */
3017
+ private loadRecord;
3018
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SecretSafeAttributeNamesService, never>;
3019
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<SecretSafeAttributeNamesService>;
3020
+ }
3021
+
2830
3022
  /** The per-tenant mapping coverage configuration as loaded for editing. */
2831
3023
  interface MappingCoverageConfig {
2832
3024
  /** rtId of the singleton, or null when it does not exist yet. */
@@ -2936,6 +3128,7 @@ declare class DataMappingOverviewComponent implements OnInit {
2936
3128
  private readonly getEntityByIdGQL;
2937
3129
  private readonly updateEntitiesGQL;
2938
3130
  private readonly deleteEntitiesGQL;
3131
+ private readonly confirmation;
2939
3132
  navigateToEntity: EventEmitter<{
2940
3133
  rtId: string;
2941
3134
  ckTypeId: string;
@@ -4158,5 +4351,5 @@ declare class ThemeModeToggleComponent {
4158
4351
  */
4159
4352
  declare function provideOctoUi(): EnvironmentProviders;
4160
4353
 
4161
- export { AssociationValidationService, AttributeSelectorDialogComponent, AttributeSelectorDialogService, AttributeSortSelectorDialogComponent, AttributeSortSelectorDialogService, AttributeValueTypeDto, BulkMappingDialogComponent, BulkMappingDialogService, CkTypeSelectorDialogComponent, CkTypeSelectorDialogService, CkTypeSelectorInputComponent, DEFAULT_CK_TYPE_SELECTOR_DIALOG_MESSAGES, DEFAULT_CK_TYPE_SELECTOR_INPUT_MESSAGES, DEFAULT_DATA_POINT, DEFAULT_MAPPING_COVERAGE_TREE_CONFIG, DEFAULT_PROPERTY_GRID_MESSAGES, DEFAULT_RUNTIME_BROWSER_MESSAGES, DataMappingOverviewComponent, DataPointPickerComponent, DataPointResolverService, DefaultPropertyCategory, EntityDetailComponent, EntityIdInfoComponent, EntitySelectorDialogComponent, EntitySelectorDialogService, FieldFilterEditorComponent, MAPPING_COVERAGE_CONFIG_CONSTANTS, MappingCoverageConfigService, MappingCoverageTreeComponent, MappingCoverageTreeDataSource, MappingEditDialogComponent, MappingEditDialogService, OctoGraphQlDataSource, OctoGraphQlHierarchyDataSource, OctoLoaderComponent, PropertyConverterService, PropertyDisplayMode, PropertyGridComponent, PropertyValueDisplayComponent, RUNTIME_BROWSER_MESSAGES, RecordDetailDialogComponent, RtEntityIdHelper, RuntimeBrowserComponent, RuntimeBrowserOutletComponent, RuntimeBrowserPageComponent, RuntimeBrowserStateService, RuntimeEntityVariableDialogComponent, RuntimeEntityVariableDialogService, TREE_NAVIGATION_CONFIG_CONSTANTS, TenantSwitcherComponent, ThemeModeService, ThemeModeToggleComponent, TreeNavigationConfigService, account_tree, add, analytics, app_registration, article, botService, category, chat, checklist, code, coerceDataPointValue, component_exchange, computeExpressionPreview, computer, createRuntimeBrowserRoutes, customer, dashboard, event_list, extractDataPointNames, extractDataPoints, graphic_eq, group, identityService, insert_link, manage_accounts, more_time, notifications, page_info, pages, person_search, playlist_add_check, pool, power, provideOctoUi, publicIcon, query_builder, schedule_send, settings, sort, storage, swagger, swagger_asset, swagger_bot, swagger_communication, swagger_identity, team_dashboard, tenancy, text_snippet, travel_explore, user_diagnostics, webhook, work };
4162
- export type { AttributeItemLike, AttributeSelectorDialogData, AttributeSelectorDialogResult, AttributeSelectorResult, AttributeSortItem, AttributeSortSelectorDialogData, AttributeSortSelectorDialogResult, AttributeSortSelectorResult, BinaryDownloadEvent, BrowserItem, BrowserState, BulkMappingDialogData, BulkMappingDialogResult, BulkMappingValue, CkAssociationRole, CkTypeSelectorDialogData, CkTypeSelectorDialogMessages, CkTypeSelectorDialogResult, CkTypeSelectorInputMessages, CkTypeSelectorResult, CoverageEntityRef, CoverageMappingItem, CoverageNodePayload, CoverageTreeIcons, CoverageTreeItem, DataPointInfo, DataPointMappingItem, DataPointMappingOverviewItem, EntitySelectorDialogData, EntitySelectorDialogResult, EntitySelectorResult, ExpressionPreview, ExpressionValidationResult, ExpressionValidatorFn, FieldFilterItem, FilterVariable, MappingCoverageConfig, MappingCoverageTreeConfig, MappingEditDialogData, MappingEditDialogResult, MappingEditValue, MappingExpressionEvaluatorFn, MappingExpressionPreviewResult, MappingOverviewSummary, MoveValidationResult, PerspectiveDefinition, PerspectiveDirection, PerspectiveRootMode, PropertyChangeEvent, PropertyGridConfig, PropertyGridItem, PropertyGridMessages, ResolvedThemeMode, RtEntityId, RuntimeBrowserMessages, RuntimeBrowserRouteOptions, RuntimeEntityVariableDialogData, RuntimeEntityVariableDialogResult, RuntimeEntityVariableMapping, RuntimeEntityVariableResult, SortOption, ThemeModePreference, TreeNavigationConfig, TreeNavigationRoleConfig, TreeNavigationRoleOverride, ValidationMessage };
4354
+ export { AssociationValidationService, AttributeSelectorDialogComponent, AttributeSelectorDialogService, AttributeSortSelectorDialogComponent, AttributeSortSelectorDialogService, AttributeValueTypeDto, BulkMappingDialogComponent, BulkMappingDialogService, CkTypeSelectorDialogComponent, CkTypeSelectorDialogService, CkTypeSelectorInputComponent, DATA_POINT_MAPPING_ATTRIBUTE_NAMES, DEFAULT_CK_TYPE_SELECTOR_DIALOG_MESSAGES, DEFAULT_CK_TYPE_SELECTOR_INPUT_MESSAGES, DEFAULT_DATA_POINT, DEFAULT_MAPPING_COVERAGE_TREE_CONFIG, DEFAULT_PROPERTY_GRID_MESSAGES, DEFAULT_RUNTIME_BROWSER_MESSAGES, DataMappingOverviewComponent, DataPointPickerComponent, DataPointResolverService, DefaultPropertyCategory, EntityDetailComponent, EntityIdInfoComponent, EntitySelectorDialogComponent, EntitySelectorDialogService, FieldFilterEditorComponent, MAPPING_COVERAGE_CONFIG_CONSTANTS, MM_PAGE, MappingCoverageConfigService, MappingCoverageTreeComponent, MappingCoverageTreeDataSource, MappingEditDialogComponent, MappingEditDialogService, OctoGraphQlDataSource, OctoGraphQlHierarchyDataSource, OctoLoaderComponent, PageActionsDirective, PageComponent, PageSubtitleDirective, PageTitleDirective, PropertyConverterService, PropertyDisplayMode, PropertyGridComponent, PropertyValueDisplayComponent, RUNTIME_BROWSER_MESSAGES, RecordDetailDialogComponent, RtEntityIdHelper, RuntimeBrowserComponent, RuntimeBrowserOutletComponent, RuntimeBrowserPageComponent, RuntimeBrowserStateService, RuntimeEntityVariableDialogComponent, RuntimeEntityVariableDialogService, SecretSafeAttributeNamesService, TREE_NAVIGATION_CONFIG_CONSTANTS, TenantSwitcherComponent, ThemeModeService, ThemeModeToggleComponent, TreeNavigationConfigService, account_tree, add, analytics, app_registration, article, botService, category, chat, checklist, code, coerceDataPointValue, component_exchange, computeExpressionPreview, computer, createRuntimeBrowserRoutes, customer, dashboard, event_list, extractDataPointNames, extractDataPoints, graphic_eq, group, identityService, insert_link, isSecretMarker, manage_accounts, more_time, notifications, page_info, pages, person_search, playlist_add_check, pool, power, provideOctoUi, publicIcon, query_builder, schedule_send, settings, sort, storage, swagger, swagger_asset, swagger_bot, swagger_communication, swagger_identity, team_dashboard, tenancy, text_snippet, travel_explore, user_diagnostics, webhook, work };
4355
+ export type { AttributeItemLike, AttributeSelectorDialogData, AttributeSelectorDialogResult, AttributeSelectorResult, AttributeSortItem, AttributeSortSelectorDialogData, AttributeSortSelectorDialogResult, AttributeSortSelectorResult, BinaryDownloadEvent, BrowserItem, BrowserState, BulkMappingDialogData, BulkMappingDialogResult, BulkMappingValue, CkAssociationRole, CkTypeSelectorDialogData, CkTypeSelectorDialogMessages, CkTypeSelectorDialogResult, CkTypeSelectorInputMessages, CkTypeSelectorResult, CoverageEntityRef, CoverageMappingItem, CoverageNodePayload, CoverageTreeIcons, CoverageTreeItem, DataPointInfo, DataPointMappingItem, DataPointMappingOverviewItem, EntitySelectorDialogData, EntitySelectorDialogResult, EntitySelectorResult, ExpressionPreview, ExpressionValidationResult, ExpressionValidatorFn, FieldFilterItem, FilterVariable, MappingCoverageConfig, MappingCoverageTreeConfig, MappingEditDialogData, MappingEditDialogResult, MappingEditValue, MappingExpressionEvaluatorFn, MappingExpressionPreviewResult, MappingOverviewSummary, MoveValidationResult, PageHeadingLevel, PerspectiveDefinition, PerspectiveDirection, PerspectiveRootMode, PropertyChangeEvent, PropertyGridConfig, PropertyGridItem, PropertyGridMessages, ResolvedThemeMode, RtEntityId, RuntimeBrowserMessages, RuntimeBrowserRouteOptions, RuntimeEntityVariableDialogData, RuntimeEntityVariableDialogResult, RuntimeEntityVariableMapping, RuntimeEntityVariableResult, SecretSafeAttributeAnalysis, SortOption, ThemeModePreference, TreeNavigationConfig, TreeNavigationRoleConfig, TreeNavigationRoleOverride, ValidationMessage };
@@ -1,57 +0,0 @@
1
- @use "variables" as *;
2
-
3
- @mixin lcars-button {
4
- background: var(--lcars-btn-base);
5
- // Use theme-aware border + text so the secondary "ghost" style stays
6
- // legible on light surfaces. Brand-mint at low alpha washes out on white.
7
- border: 1px solid var(--theme-border-strong, var(--octo-mint-30));
8
- color: var(--theme-text-accent, var(--octo-mint));
9
- font-family: var(--lcars-font-primary);
10
- font-weight: 600;
11
- font-size: 0.8rem;
12
- letter-spacing: 0.5px;
13
- text-transform: uppercase;
14
- border-radius: 4px;
15
- transition: all 0.2s ease;
16
-
17
- &:hover:not(:disabled) {
18
- background: var(--lcars-btn-base-hover);
19
- border-color: var(--theme-text-accent, var(--octo-mint-50));
20
- box-shadow: 0 0 10px var(--octo-mint-30);
21
- }
22
-
23
- &:active:not(:disabled) {
24
- background: linear-gradient(
25
- 180deg,
26
- var(--octo-mint-30),
27
- var(--octo-mint-20)
28
- );
29
- }
30
-
31
- &:disabled {
32
- opacity: 0.5;
33
- cursor: not-allowed;
34
- }
35
-
36
- &.k-button-solid-primary,
37
- &.k-button-primary,
38
- &[themecolor="primary"] {
39
- background: linear-gradient(
40
- 180deg,
41
- var(--octo-mint-30),
42
- var(--octo-mint-15)
43
- );
44
- border-color: var(--octo-mint-50);
45
- color: var(--octo-text-color);
46
-
47
- &:hover:not(:disabled) {
48
- background: linear-gradient(
49
- 180deg,
50
- var(--octo-mint-45),
51
- var(--octo-mint-25)
52
- );
53
- border-color: var(--octo-mint);
54
- box-shadow: 0 0 15px var(--octo-mint-40);
55
- }
56
- }
57
- }
@@ -1,11 +0,0 @@
1
- @use "variables" as *;
2
-
3
- @mixin lcars-flat-btn {
4
- background: var(--lcars-btn-base) !important;
5
- border: 1px solid var(--theme-border-strong, var(--octo-mint-30)) !important;
6
- color: var(--theme-text-accent, var(--octo-mint)) !important;
7
- &:hover:not(:disabled) {
8
- background: var(--lcars-btn-base-hover) !important;
9
- border-color: var(--theme-text-accent, var(--octo-mint-50)) !important;
10
- }
11
- }
@@ -1,13 +0,0 @@
1
- @use "variables" as *;
2
-
3
- @mixin lcars-input {
4
- background: var(--deep-sea) !important;
5
- border: 1px solid var(--octo-mint-30) !important;
6
- color: var(--octo-text-color) !important;
7
- border-radius: 4px !important;
8
- &:focus {
9
- border-color: var(--octo-mint) !important;
10
- box-shadow: var(--lcars-input-focus) !important;
11
- outline: none !important;
12
- }
13
- }