@ngxviewbuilder/runtime 0.7.0 → 0.9.0

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.
@@ -402,6 +402,19 @@ interface IElementActionConfig {
402
402
  navigateTo?: string;
403
403
  openInNewTab?: boolean;
404
404
  beforeNavigateDataSourceName?: string;
405
+ /**
406
+ * `navigate`: carries the before-navigate data source's response over as Angular
407
+ * Router navigation state instead of (or in addition to) `responseTargetPath`.
408
+ * The target page reads it back via `__route.state` / `{__route.state...}`, with
409
+ * no need for the value to round-trip through the URL.
410
+ */
411
+ passResponseAsNavigationState?: boolean;
412
+ /**
413
+ * `navigate`: key to nest the response under in navigation state, e.g. `order`
414
+ * exposes it as `__route.state.order`. Leave empty to spread the response object
415
+ * at the state root (`__route.state.<field>`).
416
+ */
417
+ navigationStateKey?: string;
405
418
  dataSourceName?: string;
406
419
  /** `sendMessage`: what to push over the websocket source named in `dataSourceName`. */
407
420
  messagePayload?: string;
@@ -475,6 +488,7 @@ declare enum ElementTypesEnum {
475
488
  DATE_RANGE = "dateRange",
476
489
  PAGE = "page",
477
490
  PANEL = "panel",
491
+ OBJECT_PANEL = "objectPanel",
478
492
  SPLITTER = "splitter",
479
493
  EMPTY_BLOCK = "emptyBlock",
480
494
  TEXTAREA = "textarea",
@@ -2556,9 +2570,14 @@ interface INgxViewBuilderBuilderSettings {
2556
2570
  mcp?: {
2557
2571
  /** Bridge endpoint, e.g. `wss://mcp.example.com/bridge`. An http(s) URL is upgraded. */
2558
2572
  url: string;
2559
- /** Key issued by the host's own backend. Left out, the server generates one and the
2560
- * builder shows it so a person can paste it into their AI client. */
2573
+ /** Key issued by the host's own backend. Left out, the builder generates one and shows
2574
+ * it, and a person gives it to their AI client when the client asks for it. */
2561
2575
  sessionKey?: string;
2576
+ /** App and page labels the AI client sees after pairing, to tell builder tabs apart. */
2577
+ client?: {
2578
+ app?: string;
2579
+ page?: string;
2580
+ };
2562
2581
  };
2563
2582
  preview?: INgxViewBuilderPreviewSettings;
2564
2583
  dataSources?: INgxViewBuilderDataSourceTypeSettings;
@@ -3178,6 +3197,13 @@ declare class AccordionModel extends ElementBaseModel {
3178
3197
  }
3179
3198
 
3180
3199
  declare class DataService {
3200
+ /**
3201
+ * Read for `__language`, never written here. `UiTranslationService` is the one
3202
+ * place the active language lives - `api.setLanguage()`, the `language` input
3203
+ * and `settings.language` all end up there - and it depends on nothing, so
3204
+ * reading it from here cannot cycle.
3205
+ */
3206
+ private uiTranslationService;
3181
3207
  private _data;
3182
3208
  private dirtyState;
3183
3209
  private baselineSnapshot;
@@ -3190,6 +3216,8 @@ declare class DataService {
3190
3216
  getData(): Record<string, unknown>;
3191
3217
  getRawData(): Record<string, unknown>;
3192
3218
  buildRuntimeContext(additionalContext?: Record<string, unknown> | null, baseData?: Record<string, unknown> | null): Record<string, unknown>;
3219
+ /** The language the view is rendered in, as `api.getLanguage()` reports it. */
3220
+ getActiveLanguage(): string;
3193
3221
  setData(data: Record<string, unknown>): void;
3194
3222
  setValue(path: string, value: unknown, options?: {
3195
3223
  sender?: unknown;
@@ -3247,6 +3275,24 @@ declare class SelectInputModel extends ElementBaseModel {
3247
3275
 
3248
3276
  declare class AutocompleteModel extends SelectInputModel {
3249
3277
  lazyLoad: boolean;
3278
+ /**
3279
+ * Data source queried while the user types. Kept apart from `dataSource`, which fills
3280
+ * the static option list: a search endpoint answers one query at a time and has no
3281
+ * business being loaded up front.
3282
+ */
3283
+ searchDataSourceName?: string;
3284
+ /** Path to the array inside the response, for endpoints that wrap their results. */
3285
+ searchItemsPath?: string;
3286
+ /** Path inside each result object that is shown in the dropdown. */
3287
+ searchLabelKey?: string;
3288
+ /** Path inside each result object stored as the value. Empty stores the whole object. */
3289
+ searchValueKey?: string;
3290
+ /**
3291
+ * How many records the search endpoint returns at most. A response shorter than this
3292
+ * holds every match, so typing further filters it locally instead of asking again.
3293
+ * Empty means the endpoint is asked on every (debounced) change.
3294
+ */
3295
+ searchResultLimit?: number | null;
3250
3296
  minSearchLength: number;
3251
3297
  debounceMs: number;
3252
3298
  forceSelection: boolean;
@@ -3833,6 +3879,19 @@ declare class PanelModel extends ElementBaseModel {
3833
3879
  private normalizeOptionalText;
3834
3880
  }
3835
3881
 
3882
+ /**
3883
+ * A panel whose children answer into one object.
3884
+ *
3885
+ * Laid out exactly like a panel. The difference is where the values go: every element
3886
+ * inside it, however deeply nested in other layout containers, stores its value at
3887
+ * `<objectPanelName>.<elementName>` instead of at its own top-level name, so the panel's
3888
+ * data is `{ city: ..., street: ... }` under its own name. Nesting object panels nests
3889
+ * the objects. The paths themselves are worked out from the layout by the renderer, see
3890
+ * `resolveObjectDataPaths`.
3891
+ */
3892
+ declare class ObjectPanelModel extends PanelModel {
3893
+ }
3894
+
3836
3895
  interface IPhoneInputValue {
3837
3896
  countryIso: string;
3838
3897
  countryCode: string;
@@ -4263,6 +4322,11 @@ declare class TableModel extends ElementBaseModel {
4263
4322
  tableStyle: 'default' | 'grid' | 'striped';
4264
4323
  showHeaderControls: boolean;
4265
4324
  showQuickSearch: boolean;
4325
+ /**
4326
+ * Searches on every keystroke (debounced) instead of waiting for the search button or
4327
+ * Enter. Off by default: a table backed by a real query should not run one per letter.
4328
+ */
4329
+ quickSearchOnType: boolean;
4266
4330
  showDetailedSearch: boolean;
4267
4331
  showExport: boolean;
4268
4332
  showColumnSettings: boolean;
@@ -4634,6 +4698,13 @@ declare class ElementActionService {
4634
4698
  private normalizeConditionExpression;
4635
4699
  private isInteractionLocked;
4636
4700
  private executeNavigate;
4701
+ /**
4702
+ * Turns the before-navigate data source's response into `NavigationExtras.state`,
4703
+ * Angular's built-in way to carry a value into the next route without round-tripping
4704
+ * it through the URL. The target page reads it back via `__route.state`
4705
+ * (see `RuntimeVariablesService`).
4706
+ */
4707
+ private buildNavigationStateExtras;
4637
4708
  private executeBeforeNavigateDataSource;
4638
4709
  /**
4639
4710
  * Pushes a message into a websocket source that is already connected. The socket stays
@@ -5460,16 +5531,32 @@ declare class NgxViewBuilderAiApiService {
5460
5531
  interface INgxViewBuilderMcpSettings {
5461
5532
  /** Bridge endpoint, e.g. `wss://mcp.example.com/bridge`. http(s) is upgraded to ws(s). */
5462
5533
  url: string;
5463
- /** Key issued by the host's backend. Left out, the server generates one. */
5534
+ /** Key issued by the host's backend. Left out, the builder generates one. */
5464
5535
  sessionKey?: string;
5536
+ /** Labels the server repeats back to the AI client, so a person with several builder
5537
+ * tabs open can tell which one it is driving. */
5538
+ client?: {
5539
+ app?: string;
5540
+ page?: string;
5541
+ };
5465
5542
  }
5466
5543
  type NgxViewBuilderMcpStatus = 'off' | 'connecting' | 'connected' | 'error';
5544
+ /** An AI client paired with this tab, as the server described it. */
5545
+ interface INgxViewBuilderMcpClient {
5546
+ id: string;
5547
+ name: string;
5548
+ version: string | null;
5549
+ }
5467
5550
  /**
5468
5551
  * Connects the builder to an MCP server and answers the calls it forwards.
5469
5552
  *
5470
5553
  * The browser dials out: an AI client talks to the MCP server, the server talks down this
5471
5554
  * socket, and the user's machine never accepts an inbound connection. Nothing here knows
5472
5555
  * what a command means, every call goes straight to the AI API service.
5556
+ *
5557
+ * Access works by pairing. This tab holds a session key and shows it; an AI client that
5558
+ * connects to the server asks the person for it and pairs with it. Until then the client
5559
+ * can call nothing. The key survives reloads of this tab, so a pairing does too.
5473
5560
  */
5474
5561
  declare class NgxViewBuilderMcpBridgeService {
5475
5562
  private readonly aiApi;
@@ -5477,28 +5564,58 @@ declare class NgxViewBuilderMcpBridgeService {
5477
5564
  private readonly statusSignal;
5478
5565
  private readonly keySignal;
5479
5566
  private readonly errorSignal;
5567
+ private readonly pairedClientsSignal;
5568
+ private readonly bridgeUrlSignal;
5480
5569
  /** For a host that wants to show its own indicator. */
5481
5570
  readonly status: _angular_core.Signal<NgxViewBuilderMcpStatus>;
5482
- /** What an AI client sends to reach this tab, once the server has issued it. */
5571
+ /** What a person gives their AI client when it asks. Known before the socket opens. */
5483
5572
  readonly sessionKey: _angular_core.Signal<string>;
5484
5573
  readonly lastError: _angular_core.Signal<string>;
5485
- /**
5486
- * The endpoint a person pastes into their AI client, key included.
5574
+ /** The AI clients currently paired with this tab. */
5575
+ readonly pairedClients: _angular_core.Signal<INgxViewBuilderMcpClient[]>;
5576
+ readonly isPaired: _angular_core.Signal<boolean>;
5577
+ private readonly keyIssuedByHostSignal;
5578
+ /** A key from the host's backend cannot be rotated from here: the backend handed that
5579
+ * same key to whatever AI client it wired up. */
5580
+ readonly keyIssuedByHost: _angular_core.Signal<boolean>;
5581
+ /**
5582
+ * The endpoint a person adds to their AI client. No key in it: the client asks for the
5583
+ * key in the conversation, which is what lets one connector serve every builder tab.
5487
5584
  *
5488
5585
  * Derived from the bridge url rather than configured separately: the two always live
5489
5586
  * on the same server, and asking a host to keep two urls in step is asking for one of
5490
5587
  * them to be wrong.
5491
5588
  */
5492
5589
  readonly clientUrl: _angular_core.Signal<string>;
5493
- private readonly bridgeUrlSignal;
5494
5590
  private socket;
5591
+ private settings;
5592
+ private reconnectTimer;
5593
+ private reconnectAttempt;
5495
5594
  connect(settings: INgxViewBuilderMcpSettings): void;
5496
5595
  /**
5497
5596
  * Closes the API first, then the socket. The order matters: closing the socket alone
5498
5597
  * would leave the surface open to anything that had captured it.
5499
5598
  */
5500
5599
  disconnect(): void;
5600
+ /**
5601
+ * Cuts every paired AI client off and starts over with a new key. The server drops the
5602
+ * pairings before the socket goes, so nothing paired to the old key gets another call
5603
+ * through.
5604
+ */
5605
+ regenerateKey(): void;
5606
+ private openSocket;
5607
+ private onClose;
5608
+ /** Backs off to 30 s between attempts. The key does not change, so neither does the
5609
+ * pairing: once the server is back, the AI client carries on where it stopped. */
5610
+ private scheduleReconnect;
5611
+ private clearReconnectTimer;
5501
5612
  private onMessage;
5613
+ /**
5614
+ * Keeps the list of who is driving this tab, and says so out loud when it changes: a
5615
+ * person should never find out from the canvas moving that an AI got access.
5616
+ */
5617
+ private onPairingChange;
5618
+ private generateKey;
5502
5619
  /** Storage can throw in a sandboxed iframe or with cookies blocked, and a builder that
5503
5620
  * refused to open because of that would be a poor trade for a convenience. */
5504
5621
  private readStoredKey;
@@ -5527,6 +5644,25 @@ declare function resolveElementRowScope(element: ElementBaseModel | null | undef
5527
5644
  declare function resolveElementRowScopedPath(element: ElementBaseModel | null | undefined, path: unknown, getValue?: (path: string) => unknown): string;
5528
5645
  declare function buildElementRowRuntimeContext(element: ElementBaseModel | null | undefined, getValue?: (path: string) => unknown, additionalContext?: Record<string, unknown> | null): Record<string, unknown> | null;
5529
5646
 
5647
+ /** Container types whose descendants store their values inside the container's object. */
5648
+ declare const OBJECT_CONTAINER_TYPES: ReadonlySet<string>;
5649
+ declare function isObjectContainerType(type: unknown): boolean;
5650
+ /**
5651
+ * Data paths for the elements whose value does not live at their own name.
5652
+ *
5653
+ * Elements are stored flat, keyed by name, and nesting is expressed only by the layout.
5654
+ * So whether an element sits inside an object panel, and how deep, can only be read off
5655
+ * the pages: walk them, and everything under an object panel gets that panel's path as
5656
+ * a prefix. Plain layout containers in between (a panel, tabs, a splitter) add nothing,
5657
+ * a nested object panel adds its own name.
5658
+ *
5659
+ * Returns only the elements that need a prefix; anything missing keeps its name as its
5660
+ * data path.
5661
+ */
5662
+ declare function resolveObjectDataPaths(pages: IPage[] | null | undefined, elements: Record<string, {
5663
+ type?: string;
5664
+ } | null | undefined> | null | undefined): Record<string, string>;
5665
+
5530
5666
  /**
5531
5667
  * Row context carried by element models that live inside a data row - today the
5532
5668
  * cells of a `table` column whose type is `element`.
@@ -5873,6 +6009,36 @@ declare class ModelService {
5873
6009
  registerModel(type: string, modelClass: Type<ElementBaseModel>): void;
5874
6010
  registerModels(map: Record<string, Type<ElementBaseModel>>): void;
5875
6011
  createModel(type: string, data?: Partial<unknown>, options?: ICreateModelOptions): ElementBaseModel;
6012
+ /**
6013
+ * Strips the live, per-instance members out of a payload that was spread off
6014
+ * another model.
6015
+ *
6016
+ * Every repeater builds its row models by spreading the template model -
6017
+ * `createModel(column.type, { ...column, dataPath, ... })` - and every model
6018
+ * constructor runs `Object.assign(this, data)` *after* its own field
6019
+ * initializers. Whatever the spread carries therefore overwrites the fresh
6020
+ * members the class just made, and the row silently ends up pointing at the
6021
+ * template's:
6022
+ *
6023
+ * - `EventEmitter`s, so `onDataSourceChanged.fire()` for row 2 also runs the
6024
+ * handler every other row registered on that same emitter. One row's option
6025
+ * response then lands in all of them, which is exactly the classifier
6026
+ * bleeding between `dynamicTable` / `dynamicPanel` rows.
6027
+ * - `dataSource` config object, so editing one row's source edits them all.
6028
+ *
6029
+ * Dropping the emitters lets each model keep the one its own field
6030
+ * initializer made; the config objects are copied so a row owns its own.
6031
+ * Keys that are meant to be shared - `parentElement`, `dataService`, the
6032
+ * resolved `dataSource.source` - are passed through untouched.
6033
+ */
6034
+ private detachFromSourceModel;
6035
+ private isLiveEmitter;
6036
+ /**
6037
+ * A copy the row owns, except for `source`: that one is the resolved
6038
+ * `DataSourceModel` the renderer hangs off the config, and it is shared on
6039
+ * purpose - one definition, many readers.
6040
+ */
6041
+ private copyElementDataSource;
5876
6042
  /**
5877
6043
  * The values a type carries straight out of its model class, with no host
5878
6044
  * defaults and no structure data mixed in. Cached per type: building one means
@@ -7744,6 +7910,8 @@ declare class AccordionElement implements OnInit, OnDestroy {
7744
7910
  readonly itemTemplateScopeId: string;
7745
7911
  readonly itemTemplateScopeSelector: string;
7746
7912
  model: _angular_core.InputSignal<AccordionModel>;
7913
+ /** Test ids for this element, namespaced by its data path or name. */
7914
+ protected readonly tid: (part: string, ...segments: Array<string | number | null | undefined>) => string;
7747
7915
  column: _angular_core.InputSignal<ColumnModel>;
7748
7916
  rowsTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
7749
7917
  templateContext: _angular_core.InputSignal<Record<string, unknown>>;
@@ -7813,6 +7981,8 @@ declare class DialogElement implements OnInit, OnDestroy {
7813
7981
  readonly templateScopeId: string;
7814
7982
  readonly templateScopeSelector: string;
7815
7983
  model: _angular_core.InputSignal<DialogModel>;
7984
+ /** Test ids for this element, namespaced by its data path or name. */
7985
+ protected readonly tid: (part: string, ...segments: Array<string | number | null | undefined>) => string;
7816
7986
  column: _angular_core.InputSignal<ColumnModel>;
7817
7987
  rowsTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
7818
7988
  templateContext: _angular_core.InputSignal<Record<string, unknown>>;
@@ -7921,6 +8091,8 @@ declare class DynamicPanel implements OnInit, OnDestroy {
7921
8091
  readonly templateScopeId: string;
7922
8092
  readonly templateScopeSelector: string;
7923
8093
  model: _angular_core.InputSignal<ElementBaseModel>;
8094
+ /** Test ids for this element, namespaced by its data path or name. */
8095
+ protected readonly tid: (part: string, ...segments: Array<string | number | null | undefined>) => string;
7924
8096
  column: _angular_core.InputSignal<ColumnModel>;
7925
8097
  private dragAutoScrollService;
7926
8098
  recursiveData: _angular_core.InputSignal<Record<string, unknown>[]>;
@@ -8046,6 +8218,8 @@ declare class EmptyBlockElement implements OnInit, OnDestroy {
8046
8218
  private eventService;
8047
8219
  private dragAndDropService;
8048
8220
  model: _angular_core.InputSignal<EmptyBlockModel>;
8221
+ /** Test ids for this element, namespaced by its data path or name. */
8222
+ protected readonly tid: (part: string, ...segments: Array<string | number | null | undefined>) => string;
8049
8223
  column: _angular_core.InputSignal<ColumnModel>;
8050
8224
  isMobileView: _angular_core.InputSignal<boolean>;
8051
8225
  rowsTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
@@ -8125,6 +8299,8 @@ declare class PageElement implements OnInit, OnDestroy {
8125
8299
  private dragAndDropService;
8126
8300
  private readonly elementHoverService;
8127
8301
  model: _angular_core.InputSignal<PageElementModel>;
8302
+ /** Test ids for this element, namespaced by its data path or name. */
8303
+ protected readonly tid: (part: string, ...segments: Array<string | number | null | undefined>) => string;
8128
8304
  pageRows: _angular_core.InputSignal<RowModel[]>;
8129
8305
  pageIsEmpty: _angular_core.InputSignal<boolean>;
8130
8306
  isEditor: _angular_core.InputSignal<boolean>;
@@ -8157,6 +8333,8 @@ declare class PanelElement implements OnInit, OnDestroy {
8157
8333
  readonly templateScopeId: string;
8158
8334
  readonly templateScopeSelector: string;
8159
8335
  model: _angular_core.InputSignal<ElementBaseModel | PanelModel>;
8336
+ /** Test ids for this element, namespaced by its data path or name. */
8337
+ protected readonly tid: (part: string, ...segments: Array<string | number | null | undefined>) => string;
8160
8338
  column: _angular_core.InputSignal<ColumnModel>;
8161
8339
  isMobileView: _angular_core.InputSignal<boolean>;
8162
8340
  isEmpty: _angular_core.WritableSignal<boolean>;
@@ -8218,6 +8396,8 @@ declare class ProgressFlowElement implements OnInit, OnDestroy {
8218
8396
  readonly stepTemplateScopeId: string;
8219
8397
  readonly stepTemplateScopeSelector: string;
8220
8398
  model: _angular_core.InputSignal<ProgressFlowModel>;
8399
+ /** Test ids for this element, namespaced by its data path or name. */
8400
+ protected readonly tid: (part: string, ...segments: Array<string | number | null | undefined>) => string;
8221
8401
  column: _angular_core.InputSignal<ColumnModel>;
8222
8402
  rowsTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
8223
8403
  templateContext: _angular_core.InputSignal<Record<string, unknown>>;
@@ -8306,6 +8486,8 @@ declare class ProgressFlowElement implements OnInit, OnDestroy {
8306
8486
 
8307
8487
  declare class SplitterElement implements OnInit, OnDestroy {
8308
8488
  model: _angular_core.InputSignal<SplitterModel>;
8489
+ /** Test ids for this element, namespaced by its data path or name. */
8490
+ protected readonly tid: (part: string, ...segments: Array<string | number | null | undefined>) => string;
8309
8491
  column: _angular_core.InputSignal<ColumnModel>;
8310
8492
  isMobileView: _angular_core.InputSignal<boolean>;
8311
8493
  rowsTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
@@ -8368,6 +8550,8 @@ declare class TabsElement implements OnInit, OnDestroy {
8368
8550
  readonly tabTemplateScopeId: string;
8369
8551
  readonly tabTemplateScopeSelector: string;
8370
8552
  model: _angular_core.InputSignal<TabsModel>;
8553
+ /** Test ids for this element, namespaced by its data path or name. */
8554
+ protected readonly tid: (part: string, ...segments: Array<string | number | null | undefined>) => string;
8371
8555
  column: _angular_core.InputSignal<ColumnModel>;
8372
8556
  rowsTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
8373
8557
  templateContext: _angular_core.InputSignal<Record<string, unknown>>;
@@ -8907,7 +9091,12 @@ declare class RendererService {
8907
9091
  mapRow(row: any, parentIndex: number): RowModel;
8908
9092
  mapColumn(column: any, parentIndex: number): ColumnModel;
8909
9093
  getDataSource(name: string): DataSourceModel | undefined;
8910
- mapToModel(elements: Record<string, any>): Record<string, ElementBaseModel>;
9094
+ /**
9095
+ * Builds one model per element. Pass the pages whenever there are any: an element laid
9096
+ * out inside an object panel stores its value under that panel, and only the layout
9097
+ * says which elements those are.
9098
+ */
9099
+ mapToModel(elements: Record<string, any>, pages?: IStructure['pages']): Record<string, ElementBaseModel>;
8911
9100
  convertTemplateToModels(templateObj: any, parentInstance: any, parentPath: string, templateElementParentDataPath?: string): void;
8912
9101
  convertColumnsToModels(columns: IBaseElement[], parentInstance: any, parentPath: string, isTemplateElement?: boolean, templateElementParentDataPath?: string): void;
8913
9102
  applyExpressions(): void;
@@ -8939,6 +9128,7 @@ declare class RendererService {
8939
9128
  }
8940
9129
 
8941
9130
  declare class PreviewRendererService extends RendererService {
9131
+ private readonly uiTranslationService;
8942
9132
  private isDataSourceValueWatcherBound;
8943
9133
  private elementDataSourceSubscriptions;
8944
9134
  stopPreviewDataSources(): void;
@@ -8947,6 +9137,7 @@ declare class PreviewRendererService extends RendererService {
8947
9137
  getDataSource(name: string): DataSourceModel | undefined;
8948
9138
  private loadElementDataSource;
8949
9139
  private bindDataSourceValueWatcher;
9140
+ private reloadElementsWatching;
8950
9141
  private isElementUsingDataPath;
8951
9142
  private isDataPathMaterialized;
8952
9143
  private extractDependenciesFromUnknown;
@@ -8970,6 +9161,13 @@ interface IRuntimeRouteVariables {
8970
9161
  queryParams: Record<string, unknown>;
8971
9162
  data: Record<string, unknown>;
8972
9163
  fragment: string | null;
9164
+ /**
9165
+ * Value passed via Angular Router's `NavigationExtras.state` by the navigation that
9166
+ * landed on this route (e.g. a `navigate` action's `passResponseAsNavigationState`).
9167
+ * Angular stores this in `history.state`, so it survives only for the in-app
9168
+ * navigation that set it - a hard refresh or a direct URL open leaves it empty.
9169
+ */
9170
+ state: Record<string, unknown>;
8973
9171
  }
8974
9172
 
8975
9173
  declare class RuntimeVariablesService {
@@ -9024,6 +9222,12 @@ declare class RuntimeVariablesService {
9024
9222
  private isProjectedDataPath;
9025
9223
  private buildRouteVariables;
9026
9224
  private createEmptyVariables;
9225
+ /**
9226
+ * Reads the state the current navigation was given via Angular Router's
9227
+ * `NavigationExtras.state` (Angular mirrors it into `history.state`). Filters out
9228
+ * Angular's own `navigationId` bookkeeping key so only the caller's payload remains.
9229
+ */
9230
+ private readNavigationState;
9027
9231
  private normalizeMappings;
9028
9232
  private normalizeSourceType;
9029
9233
  private resolveDataSourceRefreshPaths;
@@ -9278,5 +9482,5 @@ declare function isMobileViewport(): boolean;
9278
9482
  declare function isTabletViewport(): boolean;
9279
9483
  declare function normalizeBreakpoint(value: unknown, fallback: number): number;
9280
9484
 
9281
- export { ALIGN_CLASS_MAP, ALIGN_CLASS_PREFIX, APPLICATION_LOCALE_VALUE, AccordionElement, AccordionModel, ApplicationLocaleService, AutocompleteModel, AvatarModel, BLOCK_TAGS, BUILT_IN_STRUCTURE_MIGRATIONS, BUILT_IN_TABLE_CELL_ELEMENT_TYPES, BadgeModel, BreadcrumbsModel, BuilderModel, BuilderPageDisplayModeEnum, BuilderTabRegistryService, ButtonModel, COLOR_CLASS_PREFIX, CURRENT_SCHEMA_VERSION, ChartModel, CheckboxInputModel, ChoiceModel, ColumnFragmentModeEnum, ColumnModel, ComponentRegistryService, ConfirmDialog, CreatorStructureService, CustomHtmlModel, DATA_JSON_CAPABLE_ELEMENT_TYPES, DEFAULT_FONT, DEFAULT_FONT_CLASS, DEFAULT_HIGHLIGHT_COLOR, DEFAULT_LINE_HEIGHT_VALUE, DEFAULT_MOBILE_BREAKPOINT, DEFAULT_SIZE_CLASS, DEFAULT_SIZE_VALUE, DEFAULT_TABLET_BREAKPOINT, DEFAULT_TABLE_COLUMNS, DEFAULT_TABLE_ROWS, DEFAULT_TEXT_COLOR, DataService, DataSourceModel, DataSourceService, DatePickerModel, DateRangeModel, DialogDragController, DialogElement, DialogModel, DividerModel, DomInstrumentationService, DragAndDropService, DragAutoScrollService, DynamicPanel, DynamicPanelModel, DynamicTableColumnModel, DynamicTableModel, DynamicTableRowColumnModel, DynamicTextPipe, ELEMENT_ROW_CONTEXT_KEY, ELEMENT_ROW_SCOPE_PATH_KEY, EN_UI_DICTIONARY, EXCLUDE_FROM_DATA_JSON_KEY, ElementActionButtonToneEnum, ElementActionButtonVariantEnum, ElementActionDialogOperationEnum, ElementActionResponseModeEnum, ElementActionService, ElementActionSetValueModeEnum, ElementActionToastPositionEnum, ElementActionToastVariantEnum, ElementActionTriggerEnum, ElementActionTypeEnum, ElementBaseModel, ElementContentBox, ElementContentRow, ElementDataSourceUseForEnum, ElementDefaultsService, ElementExecutionModeEnum, ElementFocusService, ElementTypesEnum, ElementsService, EmptyBlockElement, EmptyBlockModel, EventService, ExpressionService, FONT_CLASS_MAP, FONT_CLASS_PREFIX, FeaturePackRegistryService, FileUploadModel, ForgeInitializerService, HIGHLIGHT_CLASS_PREFIX, HIGHLIGHT_SWATCHES, HISTORY_COALESCE_MS, HeaderModel, HeaderTabEnum, INDENT_CLASS_PREFIX, INLINE_TAGS, IconModel, IconSvgService, IframeModel, ImageModel, LEGACY_LINE_HEIGHT_CLASS_MAP, LEGACY_SCHEMA_VERSION, LEGACY_SIZE_CLASS_MAP, LINE_HEIGHT_CLASS_MAP, LINE_HEIGHT_CLASS_PREFIX, LINE_HEIGHT_OPTION_VALUES, LOCALE_CHOICES, ListBoxModel, ListGridModel, LocalizationService, MANAGED_STRUCTURE_SETTING_KEYS, MARK_TAG_MAP, MAX_HISTORY_ENTRIES, MAX_INDENT_LEVEL, MarkupSecurityService, MessageCardModel, ModelService, MultiSelectInputModel, NGX_VIEW_BUILDER_AI_ACTION_TYPES, NGX_VIEW_BUILDER_AI_API_VERSION, NGX_VIEW_BUILDER_AI_AUTOMATION_ACTION_TYPES, NGX_VIEW_BUILDER_AI_ROW_CONTAINERS, NGX_VIEW_BUILDER_AI_TAB_CONTAINERS, NGX_VIEW_BUILDER_AI_TEMPLATES_CAPABILITY, NGX_VIEW_BUILDER_AI_VALIDATOR_TYPES, NGX_VIEW_BUILDER_ANY_ELEMENT_TYPE, NGX_VIEW_BUILDER_BRIDGE_PROTOCOL_VERSION, NGX_VIEW_BUILDER_PROJECT_LAYER, NGX_VIEW_BUILDER_UI_TRANSLATIONS, NVB_TEXT_CONTEXT_KEY, NgxViewBuilder, NgxViewBuilderActionExecutorService, NgxViewBuilderAiApiService, NgxViewBuilderAlignEnum, NgxViewBuilderApiService, NgxViewBuilderAutomationActionTypeEnum, NgxViewBuilderAutomationService, NgxViewBuilderBuilderTabRenderModeEnum, NgxViewBuilderChromePositionEnum, NgxViewBuilderDataSourceTypeEnum, NgxViewBuilderDialogCloseReasonEnum, NgxViewBuilderExecutionReasonEnum, NgxViewBuilderHeadlessService, NgxViewBuilderInteractionStatusEnum, NgxViewBuilderMcpBridgeService, NgxViewBuilderPageNavigationModeEnum, NgxViewBuilderPreviewModeEnum, NgxViewBuilderProcessService, NgxViewBuilderRenderModeEnum, NgxViewBuilderRenderPhaseEnum, NgxViewBuilderRenderer, NgxViewBuilderRuleExecutedBranchEnum, NgxViewBuilderRuleRunModeEnum, NgxViewBuilderRulesEngineService, NgxViewBuilderRuntime, NgxViewBuilderSaveRequestedSourceEnum, NgxViewBuilderTableSettingsSourceEnum, NgxViewBuilderThemeModeEnum, NgxViewBuilderTriggerEngineService, NgxViewBuilderTriggerEventEnum, NgxViewBuilderValidator, NgxViewBuilderWebsocketMessageModeEnum, NumberInputModel, NumberStepperModel, NvbElement, NvbElementContextService, NvbIcon, NvbRichTextEditor, NvbRows, NvbScope, NvbSelect, NvbStyleOutlet, NvbTab, PHONE_COUNTRY_OPTIONS, PHONE_COUNTRY_PROPERTY_CHOICES, PageElement, PageTitleModel, PanelElement, PanelModel, PhoneInputModel, PreviewRendererService, ProgressBarModel, ProgressFlowElement, ProgressFlowModel, PropertyModel, RICH_TEXT_DEFAULT_TOOLBAR_TOOLS, RICH_TEXT_TOOLBAR_ICONS, RICH_TEXT_TOOLBAR_TOOLS, ROOT_BLOCK_TAGS, RadioInputModel, RendererService, RichTextModel, RouterOutletModel, RowModel, RuntimeDynamicPanel, RuntimeVariableSourceTypeEnum, RuntimeVariablesService, SIZE_CLASS_MAP, SIZE_CLASS_PREFIX, SIZE_OPTION_VALUES, SPECIAL_CHARACTERS, SelectButtonModel, SelectInputModel, SettingsModel, SignaturePadModel, SingleCheckboxModel, SliderModel, SpacerModel, SplitterElement, SplitterModel, StateService, StatsCardModel, StructureMigrationService, StructureModel, StructureService, TABLE_BORDER_CLASS_PREFIX, TABLE_CELL_BACKGROUND_SWATCHES, TABLE_CELL_VALIGN_CLASS_MAP, TABLE_CELL_VALIGN_CLASS_PREFIX, TABLE_CLASS, TABLE_PICKER_COLUMNS, TABLE_PICKER_ROWS, TASK_ITEM_CHECKED_CLASS, TASK_ITEM_CLASS, TASK_ITEM_MARKER_WIDTH, TASK_LIST_CLASS, TableCellElementRegistryService, TableColumnAlignEnum, TableColumnCellActionsDisplayModeEnum, TableColumnTypeEnum, TableFilterControlTypeEnum, TableFilterOptionsSourceTypeEnum, TableInlineEditStartModeEnum, TableInlineEditorTypeEnum, TableModel, TableRowActionsDropdownButtonStyleEnum, TableStatusToneEnum, TabsElement, TabsModel, TabsProModel, TemplateEngineService, TemplateStorageModeEnum, TextAreaModel, TextInputModel, TimePickerModel, ToastModel, ToggleSwitchModel, TooltipComponent, UiTranslatePipe, UiTranslationService, ValidatorService, ValueChangeTriggerEnum, VideoModel, applyDynamicPanelRowNumberingContext, applyElementRowContext, applyRuntimeNumberingContext, applyStructureMigrations, applyViewportBreakpoints, bridgeNgxViewBuilderApiEvents, buildElementRowRuntimeContext, buildFocusKey, buildResponsiveColumnStyle, clearStructureMigrationNotice, cloneRecord, cloneValue, composeCssSize, configureStructureMigrations, createUuid, describeDragEvent, describeElementModel, describeEventTarget, describeMouseEvent, elements, getMobileBreakpoint, getRuntimeTextContext, getStructureMigrationConfig, getTabletBreakpoint, getViewportContentWidth, isDataJsonCapableElementType, isDragDebugEnabled, isMobileViewport, isMobileWidth, isPlainRecord, isRelativeResponsiveWidth, isTabletViewport, isTabletWidth, lastStructureMigration, logDragDebug, logDragDebugThrottled, migrateStructure, normalizeBreakpoint, normalizeCssSizeUnit, normalizeResponsiveCssSize, normalizeStringList, provideNgxViewBuilderExtensions, provideNgxViewBuilderMigrations, provideNgxViewBuilderProjectLayer, provideNgxViewBuilderProjectLayers, provideNgxViewBuilderRuntime, provideNgxViewBuilderUiTranslations, pruneStructureSettings, readSchemaVersion, recordStructureMigration, resetStructureMigrationConfig, resolveAllowedPhoneCountries, resolveCssSizeSetting, resolveElementRowContext, resolveElementRowScope, resolveElementRowScopedPath, resolveFixedViewport, resolvePhoneCountry, resolveResponsiveDisplayWidth, resolveResponsiveWidth, resolveRuntimeTextContextValue, resolveStructureSettings, setElementRowContext, setViewportContentWidth };
9282
- export type { BreadcrumbsItemsSource, BuilderPageDisplayMode, ChartLegendLayout, ChartType, ColumnFragmentMode, DatePickerMode, DialogHeadingLevel, DialogMode, DialogTriggerAlign, DialogTriggerIconPosition, DialogTriggerVariant, ElementActionButtonTone, ElementActionButtonVariant, ElementActionDialogOperation, ElementActionResponseMode, ElementActionSetValueMode, ElementActionToastPosition, ElementActionToastVariant, ElementActionTrigger, ElementActionType, ElementDataSourceUseFor, ElementExecutionMode, ElementGroup, ElementRowScope, EmptyBlockFormStatus, EmptyBlockType, IAccordionItem, IBaseElement, IBreadcrumbItem, IBuilderAfterPropertyChangedEvent, IBuilderDragEndEvent, IBuilderDragStartEvent, IBuilderDropEvent, IBuilderElementContextMenuPayload, IBuilderElementContextMenuRequestedEvent, IBuilderElementFocusEvent, IBuilderPageFocusEvent, IBuilderPropertyMutationPayload, IBuilderRelocateDragStartEvent, IBuilderSaveRequestedEvent, IBuilderSidebarGroupDeleteRequestedEvent, IBuilderSidebarGroupDeletedEvent, IBuilderSidebarGroupDeletedPayload, IBuilderSidebarGroupsSetRequestedEvent, IBuilderSidebarSaveFocusedCopyRequestedEvent, IBuilderSidebarSaveFocusedGroupRequestedEvent, IBuilderSidebarTemplateSavedEvent, IBuilderSidebarTemplatesSetRequestedEvent, IBuilderSidebarTemplatesSetRequestedPayload, IChartPoint, IColumn, ICreateModelOptions, IDataSource, IDataSourceChangedEvent, IDataSourceParamMapping, IDateRangeValue, IDescribeElementOptions, IDynamicTableColumn, IDynamicTableRowColumn, IElementActionConfig, IElementActionRunEvent, IElementChangedEvent, IElementChangingEvent, IElementDataSource, IElementRef, IElementRowContext, IElementValidateEvent, IElementValueChangedEvent, IElementValueChangingEvent, IEvent, IFixedViewport, IForgeInitializerOptions, IHeader, IJexlFunctionDescriptor, IJexlFunctionRegistration, ILegacyTabsProItem, ILocaleChoice, ILocalization, INgxViewBuilderAccordionItemToggledEvent, INgxViewBuilderAiAddElementCommand, INgxViewBuilderAiAddPageCommand, INgxViewBuilderAiAddRowCommand, INgxViewBuilderAiAssistantConfig, INgxViewBuilderAiAssistantConfigEvent, INgxViewBuilderAiAuditEntry, INgxViewBuilderAiCommand, INgxViewBuilderAiCommandDoc, INgxViewBuilderAiDeleteDataSourceCommand, INgxViewBuilderAiDeleteElementCommand, INgxViewBuilderAiDeleteFragmentCommand, INgxViewBuilderAiDeletePageCommand, INgxViewBuilderAiDeleteRowCommand, INgxViewBuilderAiDeleteRuleCommand, INgxViewBuilderAiDeleteSidebarGroupCommand, INgxViewBuilderAiDeleteTemplateCommand, INgxViewBuilderAiDeleteTriggerCommand, INgxViewBuilderAiDeleteVariableCommand, INgxViewBuilderAiDuplicateElementCommand, INgxViewBuilderAiElementTypeDescriptor, INgxViewBuilderAiError, INgxViewBuilderAiExecuteOptions, INgxViewBuilderAiFeaturePack, INgxViewBuilderAiFocusElementCommand, INgxViewBuilderAiHelp, INgxViewBuilderAiInsertJsonCommand, INgxViewBuilderAiMoveElementCommand, INgxViewBuilderAiPropertyDescriptor, INgxViewBuilderAiRedoCommand, INgxViewBuilderAiReloadDataSourceCommand, INgxViewBuilderAiRenameElementCommand, INgxViewBuilderAiRenamePageCommand, INgxViewBuilderAiReplaceStructureCommand, INgxViewBuilderAiResult, INgxViewBuilderAiSaveSidebarGroupCommand, INgxViewBuilderAiSaveTemplateCommand, INgxViewBuilderAiSetDataCommand, INgxViewBuilderAiSetHeaderCommand, INgxViewBuilderAiSetLanguageCommand, INgxViewBuilderAiSetLocalizationCommand, INgxViewBuilderAiSetProcessCommand, INgxViewBuilderAiSetRuntimeVariableContextCommand, INgxViewBuilderAiSetSettingsCommand, INgxViewBuilderAiSetTableFiltersCommand, INgxViewBuilderAiSetTableSettingsCommand, INgxViewBuilderAiSetThemeCommand, INgxViewBuilderAiSetUiTranslationsCommand, INgxViewBuilderAiSurface, INgxViewBuilderAiSwitchTabCommand, INgxViewBuilderAiTarget, INgxViewBuilderAiTemplateCatalog, INgxViewBuilderAiTemplateDescriptor, INgxViewBuilderAiTemplateHost, INgxViewBuilderAiTree, INgxViewBuilderAiTreeNode, INgxViewBuilderAiTreePage, INgxViewBuilderAiUndoCommand, INgxViewBuilderAiUpdateElementCommand, INgxViewBuilderAiUpdatePageCommand, INgxViewBuilderAiUpsertDataSourceCommand, INgxViewBuilderAiUpsertFragmentCommand, INgxViewBuilderAiUpsertRuleCommand, INgxViewBuilderAiUpsertTemplateCommand, INgxViewBuilderAiUpsertTriggerCommand, INgxViewBuilderAiUpsertVariableCommand, INgxViewBuilderAiUseTemplateCommand, INgxViewBuilderAiValidateCommand, INgxViewBuilderAiValidationIssue, INgxViewBuilderAutomationAction, INgxViewBuilderAutomationDefaults, INgxViewBuilderAutomationExportOptions, INgxViewBuilderAutomationExportResponse, INgxViewBuilderAutomationValidateOptions, INgxViewBuilderAutomationValidateResponse, INgxViewBuilderBuilderAdapter, INgxViewBuilderBuilderSettings, INgxViewBuilderBuilderTabDefinition, INgxViewBuilderClearValueOptions, INgxViewBuilderCompleteEvent, INgxViewBuilderCssVariablesEvent, INgxViewBuilderCurrentPageEvent, INgxViewBuilderCustomCssEvent, INgxViewBuilderCustomCssUrlsEvent, INgxViewBuilderCustomElementDefinition, INgxViewBuilderCustomElementGroup, INgxViewBuilderCustomThemeDefinition, INgxViewBuilderCustomThemeEvent, INgxViewBuilderDataSourceEventBase, INgxViewBuilderDataSourceLoadFailedEvent, INgxViewBuilderDataSourceLoadedEvent, INgxViewBuilderDataSourceLoadingEvent, INgxViewBuilderDataSourceReloadedEvent, INgxViewBuilderDataSourceTypeSettings, INgxViewBuilderDataSourceTypeSettingsEvent, INgxViewBuilderDialogClosedEvent, INgxViewBuilderElementApi, INgxViewBuilderElementColumnApi, INgxViewBuilderElementDefaults, INgxViewBuilderElementDefaultsEvent, INgxViewBuilderElementDefaultsOptions, INgxViewBuilderElementLookupResult, INgxViewBuilderElementPropertyChangedEvent, INgxViewBuilderElementPropertyChangingEvent, INgxViewBuilderElementPropertyEvent, INgxViewBuilderElementSubscriptionOptions, INgxViewBuilderElementTabChangedEvent, INgxViewBuilderElementValueEvent, INgxViewBuilderExtensionsConfig, INgxViewBuilderExternalConfig, INgxViewBuilderFeaturePack, INgxViewBuilderFeaturePackSummary, INgxViewBuilderFileUploadFilesEvent, INgxViewBuilderFragmentDefinition, INgxViewBuilderHeaderAction, INgxViewBuilderHeaderActionClickEvent, INgxViewBuilderHeadlessApi, INgxViewBuilderHeadlessOptions, INgxViewBuilderHeadlessValidateRequest, INgxViewBuilderLanguageEvent, INgxViewBuilderLanguageResolveOptions, INgxViewBuilderLanguageSyncHandle, INgxViewBuilderLanguageSyncOptions, INgxViewBuilderMcpSettings, INgxViewBuilderMigrationConfig, INgxViewBuilderPreviewSettings, INgxViewBuilderProcessDefinition, INgxViewBuilderProcessStateDefinition, INgxViewBuilderProcessTransitionDefinition, INgxViewBuilderProjectLayer, INgxViewBuilderProjectLayerContext, INgxViewBuilderRenderEvent, INgxViewBuilderRepeaterApi, INgxViewBuilderRepeaterRowApi, INgxViewBuilderRepeaterRowEvent, INgxViewBuilderResolvedLanguage, INgxViewBuilderRowPathEntry, INgxViewBuilderRuleDefinition, INgxViewBuilderRuleEvaluatedEvent, INgxViewBuilderRuleEvaluatingEvent, INgxViewBuilderRuntimeVariablesConfig, INgxViewBuilderSaveRequestedEvent, INgxViewBuilderSidebarGroupDefinition, INgxViewBuilderSidebarGroupDeletedEvent, INgxViewBuilderSidebarGroupInput, INgxViewBuilderSidebarGroupSavedEvent, INgxViewBuilderSidebarGroupsLoadedEvent, INgxViewBuilderSidebarLibraryItem, INgxViewBuilderSidebarTemplateSavedEvent, INgxViewBuilderStructureEvent, INgxViewBuilderSvgIconDirectoryConfig$1 as INgxViewBuilderSvgIconDirectoryConfig, INgxViewBuilderSvgIconDirectoryLoadResult$1 as INgxViewBuilderSvgIconDirectoryLoadResult, INgxViewBuilderTabEvent, INgxViewBuilderTableColumnSetting, INgxViewBuilderTableFiltersAppliedEvent, INgxViewBuilderTableFiltersEvent, INgxViewBuilderTableSavedFilter, INgxViewBuilderTableSavedFilterSaveRequestedEvent, INgxViewBuilderTableSavedFiltersEvent, INgxViewBuilderTableSavedFiltersRequestEvent, INgxViewBuilderTableSettingsAppliedEvent, INgxViewBuilderTableSettingsEvent, INgxViewBuilderTableSettingsRequestEvent, INgxViewBuilderTableSettingsSaveRequestedEvent, INgxViewBuilderTemplateDefinition, INgxViewBuilderTemplateDeletedEvent, INgxViewBuilderTemplateInput, INgxViewBuilderTemplateSavedEvent, INgxViewBuilderTemplatesLoadedEvent, INgxViewBuilderThemeModeEvent, INgxViewBuilderToastPayload, INgxViewBuilderTriggerDefinition, INgxViewBuilderTriggerHandledEvent, INgxViewBuilderTriggerHandlingEvent, INgxViewBuilderUiTranslationsProviderConfig, INgxViewBuilderUiTranslationsProviderOptions, INgxViewBuilderValidateDataOptions, INgxViewBuilderValidationEvent, INgxViewBuilderValidationIssue, INgxViewBuilderValidationToastOptions, INgxViewBuilderValidatorContext, INgxViewBuilderValidatorError, INgxViewBuilderValidatorIssue, INgxViewBuilderValidatorResponse, INgxViewBuilderValidatorTypeDescriptor, INgxViewBuilderValidatorTypeRegistration, INgxViewBuilderValidatorValidateOptions, INgxViewBuilderWebsocketConnection, INgxViewBuilderWebsocketConnectionContext, INumberingContextEntry, INumberingTextContext, INvbElementEntry, INvbElementValueChange, IOption, IPage, IPhoneCountryOption, IPhoneInputValue, IProgressFlowItem, IResolvedCssSizeSetting, IResolvedStructureSettings, IResponsiveColumnStyleOptions, IResponsiveViewportState, IRouteBreadcrumbConfig, IRow, IRuntimeRouteVariables, IRuntimeVariableDefinition, ISettings, ISplitterPanel, IStructure, IStructureMigration, IStructureMigrationOutput, IStructureMigrationResult, ITabDefinition, ITableCellElementType, ITableColumnConfig, ITableColumnElementConfig, ITableCustomParam, ITableDataSourceConfig, ITableExtendedParam, ITableExtendedParamValue, ITablePagingParams, ITableRequestParamTuple, ITableRequestPayload, ITableRowActionConfig, ITableStatusRule, ITabsProItem, ITemplateDefinition, ITranslationEntry, IUploadedFileMeta, IValidator, IValueChangedEvent, IValueChangingEvent, IValueClearEvent, IValueMutationEvent, ListBoxSelectionMode, ListGridLayout, ListGridSortDirection, NgxViewBuilderAiActionOp, NgxViewBuilderAiErrorCode, NgxViewBuilderAiMutationOp, NgxViewBuilderAiOp, NgxViewBuilderAlign, NgxViewBuilderAutomationActionType, NgxViewBuilderBuilderTabCode, NgxViewBuilderBuilderTabRenderMode, NgxViewBuilderChromePosition, NgxViewBuilderDataSourceType, NgxViewBuilderDialogCloseReason, NgxViewBuilderExecutionReason, NgxViewBuilderExtensionsFactory, NgxViewBuilderFeaturePackCapability, NgxViewBuilderInteractionStatus, NgxViewBuilderMcpStatus, NgxViewBuilderPageNavigationMode, NgxViewBuilderPreviewMode, NgxViewBuilderProjectLayerExtensionsFactory, NgxViewBuilderRenderMode, NgxViewBuilderRenderPhase, NgxViewBuilderRuleExecutedBranch, NgxViewBuilderRuleRunMode, NgxViewBuilderSaveRequestedSource, NgxViewBuilderSizeUnit, NgxViewBuilderTableSettingsSource, NgxViewBuilderThemeMode, NgxViewBuilderTriggerEvent, NgxViewBuilderUnsubscribe, NgxViewBuilderUnsupportedSchemaAction, NgxViewBuilderWebsocketAuthorizer, NgxViewBuilderWebsocketMessageMode, NumberStepperOrientation, OnDragStartEvent, OnElementFocusEvent, ProgressBarDisplayType, ProgressBarStyleType, ProgressBarValueLabelMode, ProgressBarVariant, ProgressFlowItemSourceMode, ProgressFlowMode, ProgressFlowVariant, RuntimeVariableSourceType, SelectGroup, SignaturePadExportFormat, SplitterOrientation, TableColumnAlign, TableColumnCellActionsDisplayMode, TableColumnType, TableFilterControlType, TableFilterOptionsSourceType, TableInlineEditStartMode, TableInlineEditorType, TableRowActionsDropdownButtonStyle, TableStatusTone, TabsItemSourceMode, TabsPosition, TabsVariant, TemplateStorageMode, TimePickerFormat, ToggleSwitchMode, ToggleSwitchShape, UiDictionaries, UiDictionary, ValueChangeTrigger };
9485
+ export { ALIGN_CLASS_MAP, ALIGN_CLASS_PREFIX, APPLICATION_LOCALE_VALUE, AccordionElement, AccordionModel, ApplicationLocaleService, AutocompleteModel, AvatarModel, BLOCK_TAGS, BUILT_IN_STRUCTURE_MIGRATIONS, BUILT_IN_TABLE_CELL_ELEMENT_TYPES, BadgeModel, BreadcrumbsModel, BuilderModel, BuilderPageDisplayModeEnum, BuilderTabRegistryService, ButtonModel, COLOR_CLASS_PREFIX, CURRENT_SCHEMA_VERSION, ChartModel, CheckboxInputModel, ChoiceModel, ColumnFragmentModeEnum, ColumnModel, ComponentRegistryService, ConfirmDialog, CreatorStructureService, CustomHtmlModel, DATA_JSON_CAPABLE_ELEMENT_TYPES, DEFAULT_FONT, DEFAULT_FONT_CLASS, DEFAULT_HIGHLIGHT_COLOR, DEFAULT_LINE_HEIGHT_VALUE, DEFAULT_MOBILE_BREAKPOINT, DEFAULT_SIZE_CLASS, DEFAULT_SIZE_VALUE, DEFAULT_TABLET_BREAKPOINT, DEFAULT_TABLE_COLUMNS, DEFAULT_TABLE_ROWS, DEFAULT_TEXT_COLOR, DataService, DataSourceModel, DataSourceService, DatePickerModel, DateRangeModel, DialogDragController, DialogElement, DialogModel, DividerModel, DomInstrumentationService, DragAndDropService, DragAutoScrollService, DynamicPanel, DynamicPanelModel, DynamicTableColumnModel, DynamicTableModel, DynamicTableRowColumnModel, DynamicTextPipe, ELEMENT_ROW_CONTEXT_KEY, ELEMENT_ROW_SCOPE_PATH_KEY, EN_UI_DICTIONARY, EXCLUDE_FROM_DATA_JSON_KEY, ElementActionButtonToneEnum, ElementActionButtonVariantEnum, ElementActionDialogOperationEnum, ElementActionResponseModeEnum, ElementActionService, ElementActionSetValueModeEnum, ElementActionToastPositionEnum, ElementActionToastVariantEnum, ElementActionTriggerEnum, ElementActionTypeEnum, ElementBaseModel, ElementContentBox, ElementContentRow, ElementDataSourceUseForEnum, ElementDefaultsService, ElementExecutionModeEnum, ElementFocusService, ElementTypesEnum, ElementsService, EmptyBlockElement, EmptyBlockModel, EventService, ExpressionService, FONT_CLASS_MAP, FONT_CLASS_PREFIX, FeaturePackRegistryService, FileUploadModel, ForgeInitializerService, HIGHLIGHT_CLASS_PREFIX, HIGHLIGHT_SWATCHES, HISTORY_COALESCE_MS, HeaderModel, HeaderTabEnum, INDENT_CLASS_PREFIX, INLINE_TAGS, IconModel, IconSvgService, IframeModel, ImageModel, LEGACY_LINE_HEIGHT_CLASS_MAP, LEGACY_SCHEMA_VERSION, LEGACY_SIZE_CLASS_MAP, LINE_HEIGHT_CLASS_MAP, LINE_HEIGHT_CLASS_PREFIX, LINE_HEIGHT_OPTION_VALUES, LOCALE_CHOICES, ListBoxModel, ListGridModel, LocalizationService, MANAGED_STRUCTURE_SETTING_KEYS, MARK_TAG_MAP, MAX_HISTORY_ENTRIES, MAX_INDENT_LEVEL, MarkupSecurityService, MessageCardModel, ModelService, MultiSelectInputModel, NGX_VIEW_BUILDER_AI_ACTION_TYPES, NGX_VIEW_BUILDER_AI_API_VERSION, NGX_VIEW_BUILDER_AI_AUTOMATION_ACTION_TYPES, NGX_VIEW_BUILDER_AI_ROW_CONTAINERS, NGX_VIEW_BUILDER_AI_TAB_CONTAINERS, NGX_VIEW_BUILDER_AI_TEMPLATES_CAPABILITY, NGX_VIEW_BUILDER_AI_VALIDATOR_TYPES, NGX_VIEW_BUILDER_ANY_ELEMENT_TYPE, NGX_VIEW_BUILDER_BRIDGE_PROTOCOL_VERSION, NGX_VIEW_BUILDER_PROJECT_LAYER, NGX_VIEW_BUILDER_UI_TRANSLATIONS, NVB_TEXT_CONTEXT_KEY, NgxViewBuilder, NgxViewBuilderActionExecutorService, NgxViewBuilderAiApiService, NgxViewBuilderAlignEnum, NgxViewBuilderApiService, NgxViewBuilderAutomationActionTypeEnum, NgxViewBuilderAutomationService, NgxViewBuilderBuilderTabRenderModeEnum, NgxViewBuilderChromePositionEnum, NgxViewBuilderDataSourceTypeEnum, NgxViewBuilderDialogCloseReasonEnum, NgxViewBuilderExecutionReasonEnum, NgxViewBuilderHeadlessService, NgxViewBuilderInteractionStatusEnum, NgxViewBuilderMcpBridgeService, NgxViewBuilderPageNavigationModeEnum, NgxViewBuilderPreviewModeEnum, NgxViewBuilderProcessService, NgxViewBuilderRenderModeEnum, NgxViewBuilderRenderPhaseEnum, NgxViewBuilderRenderer, NgxViewBuilderRuleExecutedBranchEnum, NgxViewBuilderRuleRunModeEnum, NgxViewBuilderRulesEngineService, NgxViewBuilderRuntime, NgxViewBuilderSaveRequestedSourceEnum, NgxViewBuilderTableSettingsSourceEnum, NgxViewBuilderThemeModeEnum, NgxViewBuilderTriggerEngineService, NgxViewBuilderTriggerEventEnum, NgxViewBuilderValidator, NgxViewBuilderWebsocketMessageModeEnum, NumberInputModel, NumberStepperModel, NvbElement, NvbElementContextService, NvbIcon, NvbRichTextEditor, NvbRows, NvbScope, NvbSelect, NvbStyleOutlet, NvbTab, OBJECT_CONTAINER_TYPES, ObjectPanelModel, PHONE_COUNTRY_OPTIONS, PHONE_COUNTRY_PROPERTY_CHOICES, PageElement, PageTitleModel, PanelElement, PanelModel, PhoneInputModel, PreviewRendererService, ProgressBarModel, ProgressFlowElement, ProgressFlowModel, PropertyModel, RICH_TEXT_DEFAULT_TOOLBAR_TOOLS, RICH_TEXT_TOOLBAR_ICONS, RICH_TEXT_TOOLBAR_TOOLS, ROOT_BLOCK_TAGS, RadioInputModel, RendererService, RichTextModel, RouterOutletModel, RowModel, RuntimeDynamicPanel, RuntimeVariableSourceTypeEnum, RuntimeVariablesService, SIZE_CLASS_MAP, SIZE_CLASS_PREFIX, SIZE_OPTION_VALUES, SPECIAL_CHARACTERS, SelectButtonModel, SelectInputModel, SettingsModel, SignaturePadModel, SingleCheckboxModel, SliderModel, SpacerModel, SplitterElement, SplitterModel, StateService, StatsCardModel, StructureMigrationService, StructureModel, StructureService, TABLE_BORDER_CLASS_PREFIX, TABLE_CELL_BACKGROUND_SWATCHES, TABLE_CELL_VALIGN_CLASS_MAP, TABLE_CELL_VALIGN_CLASS_PREFIX, TABLE_CLASS, TABLE_PICKER_COLUMNS, TABLE_PICKER_ROWS, TASK_ITEM_CHECKED_CLASS, TASK_ITEM_CLASS, TASK_ITEM_MARKER_WIDTH, TASK_LIST_CLASS, TableCellElementRegistryService, TableColumnAlignEnum, TableColumnCellActionsDisplayModeEnum, TableColumnTypeEnum, TableFilterControlTypeEnum, TableFilterOptionsSourceTypeEnum, TableInlineEditStartModeEnum, TableInlineEditorTypeEnum, TableModel, TableRowActionsDropdownButtonStyleEnum, TableStatusToneEnum, TabsElement, TabsModel, TabsProModel, TemplateEngineService, TemplateStorageModeEnum, TextAreaModel, TextInputModel, TimePickerModel, ToastModel, ToggleSwitchModel, TooltipComponent, UiTranslatePipe, UiTranslationService, ValidatorService, ValueChangeTriggerEnum, VideoModel, applyDynamicPanelRowNumberingContext, applyElementRowContext, applyRuntimeNumberingContext, applyStructureMigrations, applyViewportBreakpoints, bridgeNgxViewBuilderApiEvents, buildElementRowRuntimeContext, buildFocusKey, buildResponsiveColumnStyle, clearStructureMigrationNotice, cloneRecord, cloneValue, composeCssSize, configureStructureMigrations, createUuid, describeDragEvent, describeElementModel, describeEventTarget, describeMouseEvent, elements, getMobileBreakpoint, getRuntimeTextContext, getStructureMigrationConfig, getTabletBreakpoint, getViewportContentWidth, isDataJsonCapableElementType, isDragDebugEnabled, isMobileViewport, isMobileWidth, isObjectContainerType, isPlainRecord, isRelativeResponsiveWidth, isTabletViewport, isTabletWidth, lastStructureMigration, logDragDebug, logDragDebugThrottled, migrateStructure, normalizeBreakpoint, normalizeCssSizeUnit, normalizeResponsiveCssSize, normalizeStringList, provideNgxViewBuilderExtensions, provideNgxViewBuilderMigrations, provideNgxViewBuilderProjectLayer, provideNgxViewBuilderProjectLayers, provideNgxViewBuilderRuntime, provideNgxViewBuilderUiTranslations, pruneStructureSettings, readSchemaVersion, recordStructureMigration, resetStructureMigrationConfig, resolveAllowedPhoneCountries, resolveCssSizeSetting, resolveElementRowContext, resolveElementRowScope, resolveElementRowScopedPath, resolveFixedViewport, resolveObjectDataPaths, resolvePhoneCountry, resolveResponsiveDisplayWidth, resolveResponsiveWidth, resolveRuntimeTextContextValue, resolveStructureSettings, setElementRowContext, setViewportContentWidth };
9486
+ export type { BreadcrumbsItemsSource, BuilderPageDisplayMode, ChartLegendLayout, ChartType, ColumnFragmentMode, DatePickerMode, DialogHeadingLevel, DialogMode, DialogTriggerAlign, DialogTriggerIconPosition, DialogTriggerVariant, ElementActionButtonTone, ElementActionButtonVariant, ElementActionDialogOperation, ElementActionResponseMode, ElementActionSetValueMode, ElementActionToastPosition, ElementActionToastVariant, ElementActionTrigger, ElementActionType, ElementDataSourceUseFor, ElementExecutionMode, ElementGroup, ElementRowScope, EmptyBlockFormStatus, EmptyBlockType, IAccordionItem, IBaseElement, IBreadcrumbItem, IBuilderAfterPropertyChangedEvent, IBuilderDragEndEvent, IBuilderDragStartEvent, IBuilderDropEvent, IBuilderElementContextMenuPayload, IBuilderElementContextMenuRequestedEvent, IBuilderElementFocusEvent, IBuilderPageFocusEvent, IBuilderPropertyMutationPayload, IBuilderRelocateDragStartEvent, IBuilderSaveRequestedEvent, IBuilderSidebarGroupDeleteRequestedEvent, IBuilderSidebarGroupDeletedEvent, IBuilderSidebarGroupDeletedPayload, IBuilderSidebarGroupsSetRequestedEvent, IBuilderSidebarSaveFocusedCopyRequestedEvent, IBuilderSidebarSaveFocusedGroupRequestedEvent, IBuilderSidebarTemplateSavedEvent, IBuilderSidebarTemplatesSetRequestedEvent, IBuilderSidebarTemplatesSetRequestedPayload, IChartPoint, IColumn, ICreateModelOptions, IDataSource, IDataSourceChangedEvent, IDataSourceParamMapping, IDateRangeValue, IDescribeElementOptions, IDynamicTableColumn, IDynamicTableRowColumn, IElementActionConfig, IElementActionRunEvent, IElementChangedEvent, IElementChangingEvent, IElementDataSource, IElementRef, IElementRowContext, IElementValidateEvent, IElementValueChangedEvent, IElementValueChangingEvent, IEvent, IFixedViewport, IForgeInitializerOptions, IHeader, IJexlFunctionDescriptor, IJexlFunctionRegistration, ILegacyTabsProItem, ILocaleChoice, ILocalization, INgxViewBuilderAccordionItemToggledEvent, INgxViewBuilderAiAddElementCommand, INgxViewBuilderAiAddPageCommand, INgxViewBuilderAiAddRowCommand, INgxViewBuilderAiAssistantConfig, INgxViewBuilderAiAssistantConfigEvent, INgxViewBuilderAiAuditEntry, INgxViewBuilderAiCommand, INgxViewBuilderAiCommandDoc, INgxViewBuilderAiDeleteDataSourceCommand, INgxViewBuilderAiDeleteElementCommand, INgxViewBuilderAiDeleteFragmentCommand, INgxViewBuilderAiDeletePageCommand, INgxViewBuilderAiDeleteRowCommand, INgxViewBuilderAiDeleteRuleCommand, INgxViewBuilderAiDeleteSidebarGroupCommand, INgxViewBuilderAiDeleteTemplateCommand, INgxViewBuilderAiDeleteTriggerCommand, INgxViewBuilderAiDeleteVariableCommand, INgxViewBuilderAiDuplicateElementCommand, INgxViewBuilderAiElementTypeDescriptor, INgxViewBuilderAiError, INgxViewBuilderAiExecuteOptions, INgxViewBuilderAiFeaturePack, INgxViewBuilderAiFocusElementCommand, INgxViewBuilderAiHelp, INgxViewBuilderAiInsertJsonCommand, INgxViewBuilderAiMoveElementCommand, INgxViewBuilderAiPropertyDescriptor, INgxViewBuilderAiRedoCommand, INgxViewBuilderAiReloadDataSourceCommand, INgxViewBuilderAiRenameElementCommand, INgxViewBuilderAiRenamePageCommand, INgxViewBuilderAiReplaceStructureCommand, INgxViewBuilderAiResult, INgxViewBuilderAiSaveSidebarGroupCommand, INgxViewBuilderAiSaveTemplateCommand, INgxViewBuilderAiSetDataCommand, INgxViewBuilderAiSetHeaderCommand, INgxViewBuilderAiSetLanguageCommand, INgxViewBuilderAiSetLocalizationCommand, INgxViewBuilderAiSetProcessCommand, INgxViewBuilderAiSetRuntimeVariableContextCommand, INgxViewBuilderAiSetSettingsCommand, INgxViewBuilderAiSetTableFiltersCommand, INgxViewBuilderAiSetTableSettingsCommand, INgxViewBuilderAiSetThemeCommand, INgxViewBuilderAiSetUiTranslationsCommand, INgxViewBuilderAiSurface, INgxViewBuilderAiSwitchTabCommand, INgxViewBuilderAiTarget, INgxViewBuilderAiTemplateCatalog, INgxViewBuilderAiTemplateDescriptor, INgxViewBuilderAiTemplateHost, INgxViewBuilderAiTree, INgxViewBuilderAiTreeNode, INgxViewBuilderAiTreePage, INgxViewBuilderAiUndoCommand, INgxViewBuilderAiUpdateElementCommand, INgxViewBuilderAiUpdatePageCommand, INgxViewBuilderAiUpsertDataSourceCommand, INgxViewBuilderAiUpsertFragmentCommand, INgxViewBuilderAiUpsertRuleCommand, INgxViewBuilderAiUpsertTemplateCommand, INgxViewBuilderAiUpsertTriggerCommand, INgxViewBuilderAiUpsertVariableCommand, INgxViewBuilderAiUseTemplateCommand, INgxViewBuilderAiValidateCommand, INgxViewBuilderAiValidationIssue, INgxViewBuilderAutomationAction, INgxViewBuilderAutomationDefaults, INgxViewBuilderAutomationExportOptions, INgxViewBuilderAutomationExportResponse, INgxViewBuilderAutomationValidateOptions, INgxViewBuilderAutomationValidateResponse, INgxViewBuilderBuilderAdapter, INgxViewBuilderBuilderSettings, INgxViewBuilderBuilderTabDefinition, INgxViewBuilderClearValueOptions, INgxViewBuilderCompleteEvent, INgxViewBuilderCssVariablesEvent, INgxViewBuilderCurrentPageEvent, INgxViewBuilderCustomCssEvent, INgxViewBuilderCustomCssUrlsEvent, INgxViewBuilderCustomElementDefinition, INgxViewBuilderCustomElementGroup, INgxViewBuilderCustomThemeDefinition, INgxViewBuilderCustomThemeEvent, INgxViewBuilderDataSourceEventBase, INgxViewBuilderDataSourceLoadFailedEvent, INgxViewBuilderDataSourceLoadedEvent, INgxViewBuilderDataSourceLoadingEvent, INgxViewBuilderDataSourceReloadedEvent, INgxViewBuilderDataSourceTypeSettings, INgxViewBuilderDataSourceTypeSettingsEvent, INgxViewBuilderDialogClosedEvent, INgxViewBuilderElementApi, INgxViewBuilderElementColumnApi, INgxViewBuilderElementDefaults, INgxViewBuilderElementDefaultsEvent, INgxViewBuilderElementDefaultsOptions, INgxViewBuilderElementLookupResult, INgxViewBuilderElementPropertyChangedEvent, INgxViewBuilderElementPropertyChangingEvent, INgxViewBuilderElementPropertyEvent, INgxViewBuilderElementSubscriptionOptions, INgxViewBuilderElementTabChangedEvent, INgxViewBuilderElementValueEvent, INgxViewBuilderExtensionsConfig, INgxViewBuilderExternalConfig, INgxViewBuilderFeaturePack, INgxViewBuilderFeaturePackSummary, INgxViewBuilderFileUploadFilesEvent, INgxViewBuilderFragmentDefinition, INgxViewBuilderHeaderAction, INgxViewBuilderHeaderActionClickEvent, INgxViewBuilderHeadlessApi, INgxViewBuilderHeadlessOptions, INgxViewBuilderHeadlessValidateRequest, INgxViewBuilderLanguageEvent, INgxViewBuilderLanguageResolveOptions, INgxViewBuilderLanguageSyncHandle, INgxViewBuilderLanguageSyncOptions, INgxViewBuilderMcpClient, INgxViewBuilderMcpSettings, INgxViewBuilderMigrationConfig, INgxViewBuilderPreviewSettings, INgxViewBuilderProcessDefinition, INgxViewBuilderProcessStateDefinition, INgxViewBuilderProcessTransitionDefinition, INgxViewBuilderProjectLayer, INgxViewBuilderProjectLayerContext, INgxViewBuilderRenderEvent, INgxViewBuilderRepeaterApi, INgxViewBuilderRepeaterRowApi, INgxViewBuilderRepeaterRowEvent, INgxViewBuilderResolvedLanguage, INgxViewBuilderRowPathEntry, INgxViewBuilderRuleDefinition, INgxViewBuilderRuleEvaluatedEvent, INgxViewBuilderRuleEvaluatingEvent, INgxViewBuilderRuntimeVariablesConfig, INgxViewBuilderSaveRequestedEvent, INgxViewBuilderSidebarGroupDefinition, INgxViewBuilderSidebarGroupDeletedEvent, INgxViewBuilderSidebarGroupInput, INgxViewBuilderSidebarGroupSavedEvent, INgxViewBuilderSidebarGroupsLoadedEvent, INgxViewBuilderSidebarLibraryItem, INgxViewBuilderSidebarTemplateSavedEvent, INgxViewBuilderStructureEvent, INgxViewBuilderSvgIconDirectoryConfig$1 as INgxViewBuilderSvgIconDirectoryConfig, INgxViewBuilderSvgIconDirectoryLoadResult$1 as INgxViewBuilderSvgIconDirectoryLoadResult, INgxViewBuilderTabEvent, INgxViewBuilderTableColumnSetting, INgxViewBuilderTableFiltersAppliedEvent, INgxViewBuilderTableFiltersEvent, INgxViewBuilderTableSavedFilter, INgxViewBuilderTableSavedFilterSaveRequestedEvent, INgxViewBuilderTableSavedFiltersEvent, INgxViewBuilderTableSavedFiltersRequestEvent, INgxViewBuilderTableSettingsAppliedEvent, INgxViewBuilderTableSettingsEvent, INgxViewBuilderTableSettingsRequestEvent, INgxViewBuilderTableSettingsSaveRequestedEvent, INgxViewBuilderTemplateDefinition, INgxViewBuilderTemplateDeletedEvent, INgxViewBuilderTemplateInput, INgxViewBuilderTemplateSavedEvent, INgxViewBuilderTemplatesLoadedEvent, INgxViewBuilderThemeModeEvent, INgxViewBuilderToastPayload, INgxViewBuilderTriggerDefinition, INgxViewBuilderTriggerHandledEvent, INgxViewBuilderTriggerHandlingEvent, INgxViewBuilderUiTranslationsProviderConfig, INgxViewBuilderUiTranslationsProviderOptions, INgxViewBuilderValidateDataOptions, INgxViewBuilderValidationEvent, INgxViewBuilderValidationIssue, INgxViewBuilderValidationToastOptions, INgxViewBuilderValidatorContext, INgxViewBuilderValidatorError, INgxViewBuilderValidatorIssue, INgxViewBuilderValidatorResponse, INgxViewBuilderValidatorTypeDescriptor, INgxViewBuilderValidatorTypeRegistration, INgxViewBuilderValidatorValidateOptions, INgxViewBuilderWebsocketConnection, INgxViewBuilderWebsocketConnectionContext, INumberingContextEntry, INumberingTextContext, INvbElementEntry, INvbElementValueChange, IOption, IPage, IPhoneCountryOption, IPhoneInputValue, IProgressFlowItem, IResolvedCssSizeSetting, IResolvedStructureSettings, IResponsiveColumnStyleOptions, IResponsiveViewportState, IRouteBreadcrumbConfig, IRow, IRuntimeRouteVariables, IRuntimeVariableDefinition, ISettings, ISplitterPanel, IStructure, IStructureMigration, IStructureMigrationOutput, IStructureMigrationResult, ITabDefinition, ITableCellElementType, ITableColumnConfig, ITableColumnElementConfig, ITableCustomParam, ITableDataSourceConfig, ITableExtendedParam, ITableExtendedParamValue, ITablePagingParams, ITableRequestParamTuple, ITableRequestPayload, ITableRowActionConfig, ITableStatusRule, ITabsProItem, ITemplateDefinition, ITranslationEntry, IUploadedFileMeta, IValidator, IValueChangedEvent, IValueChangingEvent, IValueClearEvent, IValueMutationEvent, ListBoxSelectionMode, ListGridLayout, ListGridSortDirection, NgxViewBuilderAiActionOp, NgxViewBuilderAiErrorCode, NgxViewBuilderAiMutationOp, NgxViewBuilderAiOp, NgxViewBuilderAlign, NgxViewBuilderAutomationActionType, NgxViewBuilderBuilderTabCode, NgxViewBuilderBuilderTabRenderMode, NgxViewBuilderChromePosition, NgxViewBuilderDataSourceType, NgxViewBuilderDialogCloseReason, NgxViewBuilderExecutionReason, NgxViewBuilderExtensionsFactory, NgxViewBuilderFeaturePackCapability, NgxViewBuilderInteractionStatus, NgxViewBuilderMcpStatus, NgxViewBuilderPageNavigationMode, NgxViewBuilderPreviewMode, NgxViewBuilderProjectLayerExtensionsFactory, NgxViewBuilderRenderMode, NgxViewBuilderRenderPhase, NgxViewBuilderRuleExecutedBranch, NgxViewBuilderRuleRunMode, NgxViewBuilderSaveRequestedSource, NgxViewBuilderSizeUnit, NgxViewBuilderTableSettingsSource, NgxViewBuilderThemeMode, NgxViewBuilderTriggerEvent, NgxViewBuilderUnsubscribe, NgxViewBuilderUnsupportedSchemaAction, NgxViewBuilderWebsocketAuthorizer, NgxViewBuilderWebsocketMessageMode, NumberStepperOrientation, OnDragStartEvent, OnElementFocusEvent, ProgressBarDisplayType, ProgressBarStyleType, ProgressBarValueLabelMode, ProgressBarVariant, ProgressFlowItemSourceMode, ProgressFlowMode, ProgressFlowVariant, RuntimeVariableSourceType, SelectGroup, SignaturePadExportFormat, SplitterOrientation, TableColumnAlign, TableColumnCellActionsDisplayMode, TableColumnType, TableFilterControlType, TableFilterOptionsSourceType, TableInlineEditStartMode, TableInlineEditorType, TableRowActionsDropdownButtonStyle, TableStatusTone, TabsItemSourceMode, TabsPosition, TabsVariant, TemplateStorageMode, TimePickerFormat, ToggleSwitchMode, ToggleSwitchShape, UiDictionaries, UiDictionary, ValueChangeTrigger };
@@ -1 +0,0 @@
1
- import{NgStyle as o}from"@angular/common";import*as n from"@angular/core";import{input as d,signal as s,inject as v,computed as l,ChangeDetectionStrategy as m,Component as u}from"@angular/core";import{E as g,a as p,D as c}from"./ngxviewbuilder-runtime-ngxviewbuilder-runtime-CY_sp0Pm.mjs";class i{model=d.required(...ngDevMode?[{debugName:"model"}]:[]);previewOpen=s(false,...ngDevMode?[{debugName:"previewOpen"}]:[]);previewSrc=s("",...ngDevMode?[{debugName:"previewSrc"}]:[]);elementActionService=v(g);avatarStyle=l(()=>{const e=Number(this.model()?.size);const a=Number.isFinite(e)&&e>0?Math.floor(e):48;const t=String(this.model()?.shape??"circle").trim().toLowerCase();return{width:`${a}px`,height:`${a}px`,"border-radius":t==="square"?"10px":"999px","background-color":String(this.model()?.backgroundColor??"#dfe6ff").trim()||"#dfe6ff",color:String(this.model()?.textColor??"#1b2d6b").trim()||"#1b2d6b",border:this.model().showBorder?"1px solid var(--nvb-color-neutral-300)":"none"}},...ngDevMode?[{debugName:"avatarStyle"}]:[]);initials=l(()=>{const e=String(this.model()?.nameText??"").trim();if(!e){return"U"}const a=e.split(/\s+/).map(t=>t.trim()).filter(t=>t.length>0);if(!a.length){return"U"}return a.slice(0,2).map(t=>t[0].toUpperCase()).join("")},...ngDevMode?[{debugName:"initials"}]:[]);onAvatarClick(e,a){a.preventDefault();a.stopPropagation();const t={value:e||this.initials(),item:null,row:null};const r=String(this.model().name??"").trim();if(r){t[r]=t["value"]}void this.elementActionService.runActions(this.model(),this.model().events??[],"click",t);if(!this.model().showPreview||!e){return}this.previewSrc.set(e);this.previewOpen.set(true)}closePreview(e){e?.preventDefault();e?.stopPropagation();this.previewOpen.set(false);this.previewSrc.set("")}static ɵfac=n.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"22.1.4",ngImport:n,type:i,deps:[],target:n.ɵɵFactoryTarget.Component});static ɵcmp=n.ɵɵngDeclareComponent({minVersion:"17.0.0",version:"22.1.4",type:i,isStandalone:true,selector:"avatar-element",inputs:{model:{classPropertyName:"model",publicName:"model",isSignal:true,isRequired:true,transformFunction:null}},ngImport:n,template:'<element-wrapper [model]="model()">\n @let avatarSrc = model().src | dynamicText: model();\n @let avatarName = model().nameText | dynamicText: model();\n\n <div class="nvb-avatar-wrap" data-testid="avatar-root">\n <button\n type="button"\n class="nvb-avatar"\n [ngStyle]="avatarStyle()"\n (click)="onAvatarClick(avatarSrc, $event)"\n >\n @if (avatarSrc) {\n <img [src]="avatarSrc" [alt]="avatarName" />\n } @else {\n <span>{{ initials() }}</span>\n }\n </button>\n </div>\n\n @if (previewOpen()) {\n <div class="nvb-avatar-preview" (click)="closePreview()">\n <button type="button" class="nvb-avatar-preview__close" (click)="closePreview($event)">\n <span class="material-symbols-outlined">close</span>\n </button>\n <img [src]="previewSrc()" [alt]="avatarName" />\n </div>\n }\n</element-wrapper>\n',styles:[":host{display:block;width:100%}.nvb-avatar-wrap{width:100%;display:flex;justify-content:flex-start;align-items:center}.nvb-avatar{border:none;padding:0;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-weight:700;font-size:14px;line-height:1}.nvb-avatar img{width:100%;height:100%;object-fit:cover;display:block}.nvb-avatar-preview{position:fixed;inset:0;background:#000000b8;z-index:1300;display:grid;place-items:center;padding:20px}.nvb-avatar-preview img{width:min(300px,100vw - 40px);height:min(300px,100vw - 40px);object-fit:cover;border-radius:14px;box-shadow:0 16px 32px #0000004d;background:#fff}.nvb-avatar-preview__close{position:absolute;top:12px;right:12px;width:36px;height:36px;border:none;border-radius:8px;background:#ffffff2e;color:#fff;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.nvb-avatar-preview__close span{font-size:20px}\n"],dependencies:[{kind:"component",type:p,selector:"element-wrapper",inputs:["model","controlIdInput","labelForInput","groupRole","showTextWrapperInput"],exportAs:["elementWrapper"]},{kind:"directive",type:o,selector:"[ngStyle]",inputs:["ngStyle"]},{kind:"pipe",type:c,name:"dynamicText"}],changeDetection:n.ChangeDetectionStrategy.OnPush})}n.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"22.1.4",ngImport:n,type:i,decorators:[{type:u,args:[{selector:"avatar-element",changeDetection:m.OnPush,imports:[p,o,c],template:'<element-wrapper [model]="model()">\n @let avatarSrc = model().src | dynamicText: model();\n @let avatarName = model().nameText | dynamicText: model();\n\n <div class="nvb-avatar-wrap" data-testid="avatar-root">\n <button\n type="button"\n class="nvb-avatar"\n [ngStyle]="avatarStyle()"\n (click)="onAvatarClick(avatarSrc, $event)"\n >\n @if (avatarSrc) {\n <img [src]="avatarSrc" [alt]="avatarName" />\n } @else {\n <span>{{ initials() }}</span>\n }\n </button>\n </div>\n\n @if (previewOpen()) {\n <div class="nvb-avatar-preview" (click)="closePreview()">\n <button type="button" class="nvb-avatar-preview__close" (click)="closePreview($event)">\n <span class="material-symbols-outlined">close</span>\n </button>\n <img [src]="previewSrc()" [alt]="avatarName" />\n </div>\n }\n</element-wrapper>\n',styles:[":host{display:block;width:100%}.nvb-avatar-wrap{width:100%;display:flex;justify-content:flex-start;align-items:center}.nvb-avatar{border:none;padding:0;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-weight:700;font-size:14px;line-height:1}.nvb-avatar img{width:100%;height:100%;object-fit:cover;display:block}.nvb-avatar-preview{position:fixed;inset:0;background:#000000b8;z-index:1300;display:grid;place-items:center;padding:20px}.nvb-avatar-preview img{width:min(300px,100vw - 40px);height:min(300px,100vw - 40px);object-fit:cover;border-radius:14px;box-shadow:0 16px 32px #0000004d;background:#fff}.nvb-avatar-preview__close{position:absolute;top:12px;right:12px;width:36px;height:36px;border:none;border-radius:8px;background:#ffffff2e;color:#fff;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.nvb-avatar-preview__close span{font-size:20px}\n"]}]}],propDecorators:{model:[{type:n.Input,args:[{isSignal:true,alias:"model",required:true}]}]}});export{i as AvatarElement};
@@ -1 +0,0 @@
1
- import*as s from"@angular/core";import{input as y,inject as p,signal as S,computed as v,ChangeDetectionStrategy as x,Component as w}from"@angular/core";import{Router as I,NavigationEnd as _}from"@angular/router";import{get as k}from"lodash-es";import{filter as C}from"rxjs";import{E as T,M as R,U as D,a as f,N as h,D as g}from"./ngxviewbuilder-runtime-ngxviewbuilder-runtime-CY_sp0Pm.mjs";class d{model=y.required(...ngDevMode?[{debugName:"model"}]:[]);elementActionService=p(T);markupSecurityService=p(R);uiTranslationService=p(D);router=p(I,{optional:true});routeRefresh=S(0,...ngDevMode?[{debugName:"routeRefresh"}]:[]);navigationSubscription=null;ngOnInit(){if(!this.router){return}this.navigationSubscription=this.router.events.pipe(C(r=>r instanceof _)).subscribe(()=>{this.routeRefresh.update(r=>r+1)})}ngOnDestroy(){this.navigationSubscription?.unsubscribe();this.navigationSubscription=null}renderedItems=v(()=>{this.routeRefresh();const r=this.resolveSourceItems();const e=[];if(this.model().showHome){const n=String(this.model()?.homeLabel??"").trim();e.push({label:n||this.uiTranslationService.translate("breadcrumbs.home","Home"),value:String(this.model()?.homeUrl??"/").trim()||"/"})}e.push(...r);const t=Number(this.model()?.maxItems??0);const i=Number.isFinite(t)&&t>0?Math.floor(t):0;if(i>0&&e.length>i&&i>=2){const n=e[0];const a=e.slice(e.length-(i-1));return[n,{label:"...",value:"",ellipsis:true},...a]}return e},...ngDevMode?[{debugName:"renderedItems"}]:[]);separatorIcon=v(()=>{const r=String(this.model()?.separator??"").trim();return r||"chevron_right"},...ngDevMode?[{debugName:"separatorIcon"}]:[]);resolveItemHref(r){return this.markupSecurityService.sanitizeNavigationUrl(String(r??""))}onItemClick(r,e,t){if(r.ellipsis){t.preventDefault();return}const i=Array.isArray(this.model().events)&&this.model().events.length>0;if(i){t.preventDefault()}else{const o=t.currentTarget instanceof HTMLAnchorElement?String(t.currentTarget.getAttribute("href")??"").trim():"";if(o.startsWith("/")&&this.router){t.preventDefault();this.router.navigateByUrl(o).catch(()=>{if(typeof window!=="undefined"&&typeof window.location?.assign==="function"){window.location.assign(o)}});return}}const n={item:r,row:r,index:e,value:r.value};const a=String(this.model().name??"").trim();if(a){n[a]=r.value}void this.elementActionService.runActions(this.model(),this.model().events??[],"click",n)}resolveSourceItems(){if(this.model()?.itemsSource==="route"){return this.buildRouteItems()}return Array.isArray(this.model()?.items)?[...this.model().items]:[]}buildRouteItems(){const r=this.router?.routerState?.snapshot?.root??null;if(!r){return[]}const e=String(this.model()?.routeLabelDataKey??"breadcrumb").trim()||"breadcrumb";const t=this.model()?.routeUsePathFallback!==false;const i=this.model()?.routeIncludeCurrent!==false;const n=this.resolveLeafSnapshot(r);const a=[];const o=[];for(const m of n.pathFromRoot){const c=m.url.map(l=>String(l?.path??"").trim()).filter(Boolean);if(c.length>0){a.push(...c)}const u=this.resolveRouteItem(m,a,e,t);if(u){o.push(u)}}if(!i&&o.length>0){o.pop()}return o}resolveLeafSnapshot(r){let e=r;while(e.firstChild){e=e.firstChild}return e}resolveRouteItem(r,e,t,i){const n=this.resolveRouteBreadcrumbConfig(r,t);if(n?.skip){return null}const a=i?this.resolveFallbackRouteLabel(r):"";const o=this.resolveRouteTemplate(String(n?.label??a??"").trim(),r,e);if(!o){return null}const m=this.resolveRouteTemplate(String(n?.value??"").trim(),r,e);const c=e.length>0?`/${e.join("/")}`:"/";return{label:o,value:m||c}}resolveRouteBreadcrumbConfig(r,e){const t=r.data?.[e];if(t===false||t===null){return{skip:true}}if(typeof t==="string"){const n=t.trim();return n?{label:n}:null}if(!t||typeof t!=="object"||Array.isArray(t)){return null}const i=t;return{label:String(i["label"]??"").trim()||void 0,value:String(i["value"]??"").trim()||void 0,skip:Boolean(i["skip"])}}resolveFallbackRouteLabel(r){const e=String(r.data?.["title"]??"").trim();if(e){return e}const t=r.url.map(n=>this.humanizeSegment(String(n?.path??"").trim())).filter(Boolean).join(" / ");if(t){return t}const i=String(r.routeConfig?.path??"").trim();if(i.startsWith(":")){const n=i.slice(1).split("/")[0];const a=String(r.params?.[n]??"").trim();if(a){return a}}return""}humanizeSegment(r){const e=decodeURIComponent(String(r??"").trim());if(!e){return""}return e.replace(/[-_]+/g," ").replace(/\s+/g," ").trim().replace(/\b\w/g,t=>t.toUpperCase())}resolveRouteTemplate(r,e,t){const i=String(r??"").trim();if(!i){return""}const n=t.length>0?`/${t.join("/")}`:"/";const a=String(e.params?.["id"]??e.paramMap.get("id")??"").trim()||void 0;const o={route:{id:a,url:n,params:e.params??{},queryParams:e.queryParams??{},data:e.data??{},fragment:e.fragment??"",path:String(e.routeConfig?.path??"").trim()},id:a,url:n,params:e.params??{},queryParams:e.queryParams??{},data:e.data??{}};const m=u=>{const l=String(u??"").trim();if(!l){return""}const b=k(o,l);if(b===null||b===void 0){return""}return String(b)};const c=i.replace(/\{\{([^}]+)\}\}/g,(u,l)=>m(l));return c.replace(/\{([^}]+)\}/g,(u,l)=>m(l))}static ɵfac=s.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"22.1.4",ngImport:s,type:d,deps:[],target:s.ɵɵFactoryTarget.Component});static ɵcmp=s.ɵɵngDeclareComponent({minVersion:"17.0.0",version:"22.1.4",type:d,isStandalone:true,selector:"breadcrumbs-element",inputs:{model:{classPropertyName:"model",publicName:"model",isSignal:true,isRequired:true,transformFunction:null}},ngImport:s,template:'<element-wrapper [model]="model()">\n <nav class="nvb-breadcrumbs" aria-label="Breadcrumbs" data-testid="breadcrumbs-root">\n <ol>\n @for (item of renderedItems(); track $index; let itemIndex = $index; let isLast = $last) {\n <li>\n @if (item.ellipsis) {\n <span class="nvb-breadcrumbs__ellipsis">...</span>\n } @else if (!isLast && item.value) {\n <a\n [attr.href]="resolveItemHref(item.value | dynamicText: model())"\n (click)="onItemClick(item, itemIndex, $event)"\n >\n {{ item.label | dynamicText: model() }}\n </a>\n } @else {\n <span class="nvb-breadcrumbs__current">{{ item.label | dynamicText: model() }}</span>\n }\n\n @if (!isLast) {\n <nvb-icon class="nvb-breadcrumbs__separator" [name]="separatorIcon()"></nvb-icon>\n }\n </li>\n }\n </ol>\n </nav>\n</element-wrapper>\n',styles:[":host{display:block;width:100%}.nvb-breadcrumbs{width:100%}.nvb-breadcrumbs ol{list-style:none;margin:0;padding:0;display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-width:0}.nvb-breadcrumbs li{display:inline-flex;align-items:center;gap:6px;min-width:0}.nvb-breadcrumbs a,.nvb-breadcrumbs__current,.nvb-breadcrumbs__ellipsis{font-size:12px;line-height:1.3;text-decoration:none;max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nvb-breadcrumbs a{color:var(--nvb-color-primary-700);cursor:pointer}.nvb-breadcrumbs a:hover{text-decoration:underline}.nvb-breadcrumbs__current{color:var(--nvb-color-neutral-700);font-weight:600}.nvb-breadcrumbs__ellipsis{color:var(--nvb-color-neutral-500)}.nvb-breadcrumbs__separator{font-size:14px;color:var(--nvb-color-neutral-500)}\n"],dependencies:[{kind:"component",type:f,selector:"element-wrapper",inputs:["model","controlIdInput","labelForInput","groupRole","showTextWrapperInput"],exportAs:["elementWrapper"]},{kind:"component",type:h,selector:"nvb-icon",inputs:["name","svg","ariaLabel"]},{kind:"pipe",type:g,name:"dynamicText"}],changeDetection:s.ChangeDetectionStrategy.OnPush})}s.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"22.1.4",ngImport:s,type:d,decorators:[{type:w,args:[{selector:"breadcrumbs-element",changeDetection:x.OnPush,imports:[f,g,h],template:'<element-wrapper [model]="model()">\n <nav class="nvb-breadcrumbs" aria-label="Breadcrumbs" data-testid="breadcrumbs-root">\n <ol>\n @for (item of renderedItems(); track $index; let itemIndex = $index; let isLast = $last) {\n <li>\n @if (item.ellipsis) {\n <span class="nvb-breadcrumbs__ellipsis">...</span>\n } @else if (!isLast && item.value) {\n <a\n [attr.href]="resolveItemHref(item.value | dynamicText: model())"\n (click)="onItemClick(item, itemIndex, $event)"\n >\n {{ item.label | dynamicText: model() }}\n </a>\n } @else {\n <span class="nvb-breadcrumbs__current">{{ item.label | dynamicText: model() }}</span>\n }\n\n @if (!isLast) {\n <nvb-icon class="nvb-breadcrumbs__separator" [name]="separatorIcon()"></nvb-icon>\n }\n </li>\n }\n </ol>\n </nav>\n</element-wrapper>\n',styles:[":host{display:block;width:100%}.nvb-breadcrumbs{width:100%}.nvb-breadcrumbs ol{list-style:none;margin:0;padding:0;display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-width:0}.nvb-breadcrumbs li{display:inline-flex;align-items:center;gap:6px;min-width:0}.nvb-breadcrumbs a,.nvb-breadcrumbs__current,.nvb-breadcrumbs__ellipsis{font-size:12px;line-height:1.3;text-decoration:none;max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nvb-breadcrumbs a{color:var(--nvb-color-primary-700);cursor:pointer}.nvb-breadcrumbs a:hover{text-decoration:underline}.nvb-breadcrumbs__current{color:var(--nvb-color-neutral-700);font-weight:600}.nvb-breadcrumbs__ellipsis{color:var(--nvb-color-neutral-500)}.nvb-breadcrumbs__separator{font-size:14px;color:var(--nvb-color-neutral-500)}\n"]}]}],propDecorators:{model:[{type:s.Input,args:[{isSignal:true,alias:"model",required:true}]}]}});export{d as BreadcrumbsElement};
@@ -1 +0,0 @@
1
- import{NgClass as l,NgStyle as s}from"@angular/common";import*as n from"@angular/core";import{input as p,inject as m,computed as r,ChangeDetectionStrategy as d,Component as v}from"@angular/core";import{E as g,a as c,N as a}from"./ngxviewbuilder-runtime-ngxviewbuilder-runtime-CY_sp0Pm.mjs";class o{model=p.required(...ngDevMode?[{debugName:"model"}]:[]);elementActionService=m(g);iconName=r(()=>{const e=String(this.model()?.iconName??"").trim();return e||"star"},...ngDevMode?[{debugName:"iconName"}]:[]);iconStyle=r(()=>{const e=this.resolveSize(this.model()?.iconSize,24);const i=String(this.model()?.iconColor??"").trim();return{width:`${e+18}px`,height:`${e+18}px`,color:i||"var(--nvb-color-neutral-700)","font-size":`${e}px`}},...ngDevMode?[{debugName:"iconStyle"}]:[]);previewStyle=r(()=>{const e=this.resolveSize(this.model()?.previewSize,64);const i=String(this.model()?.iconColor??"").trim();return{width:`${e+20}px`,height:`${e+20}px`,color:i||"var(--nvb-color-neutral-700)","font-size":`${e}px`}},...ngDevMode?[{debugName:"previewStyle"}]:[]);onIconClick(e){e.preventDefault();e.stopPropagation();const i={value:this.iconName(),item:null,row:null};const t=String(this.model().name??"").trim();if(t){i[t]=this.iconName()}void this.elementActionService.runActions(this.model(),this.model().events??[],"click",i)}resolveSize(e,i){const t=Number(e);if(!Number.isFinite(t)||t<=0){return i}return Math.floor(t)}static ɵfac=n.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"22.1.4",ngImport:n,type:o,deps:[],target:n.ɵɵFactoryTarget.Component});static ɵcmp=n.ɵɵngDeclareComponent({minVersion:"17.0.0",version:"22.1.4",type:o,isStandalone:true,selector:"icon-element",inputs:{model:{classPropertyName:"model",publicName:"model",isSignal:true,isRequired:true,transformFunction:null}},ngImport:n,template:"<element-wrapper [model]=\"model()\">\n <section class=\"nvb-icon-wrap\" data-testid=\"icon-root\">\n <button\n type=\"button\"\n class=\"nvb-icon\"\n [ngClass]=\"{ 'nvb-icon--filled': model().filled }\"\n [ngStyle]=\"iconStyle()\"\n (click)=\"onIconClick($event)\"\n >\n <nvb-icon [name]=\"iconName()\"></nvb-icon>\n </button>\n\n @if (model().showPreview) {\n <div class=\"nvb-icon__preview\" [ngStyle]=\"previewStyle()\">\n <nvb-icon [name]=\"iconName()\"></nvb-icon>\n </div>\n }\n </section>\n</element-wrapper>\n",styles:[':host{display:block;width:100%}.nvb-icon-wrap{width:100%;display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap}.nvb-icon,.nvb-icon__preview{border:1px solid var(--nvb-color-neutral-300);background:var(--nvb-color-neutral-000);border-radius:10px;display:inline-flex;align-items:center;justify-content:center}.nvb-icon{cursor:pointer;min-width:42px;min-height:42px;padding:0}.nvb-icon span,.nvb-icon__preview span{line-height:1}.nvb-icon--filled span{font-variation-settings:"FILL" 1,"wght" 400,"GRAD" 0,"opsz" 24}\n'],dependencies:[{kind:"component",type:c,selector:"element-wrapper",inputs:["model","controlIdInput","labelForInput","groupRole","showTextWrapperInput"],exportAs:["elementWrapper"]},{kind:"directive",type:l,selector:"[ngClass]",inputs:["class","ngClass"]},{kind:"directive",type:s,selector:"[ngStyle]",inputs:["ngStyle"]},{kind:"component",type:a,selector:"nvb-icon",inputs:["name","svg","ariaLabel"]}],changeDetection:n.ChangeDetectionStrategy.OnPush})}n.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"22.1.4",ngImport:n,type:o,decorators:[{type:v,args:[{selector:"icon-element",changeDetection:d.OnPush,imports:[c,l,s,a],template:"<element-wrapper [model]=\"model()\">\n <section class=\"nvb-icon-wrap\" data-testid=\"icon-root\">\n <button\n type=\"button\"\n class=\"nvb-icon\"\n [ngClass]=\"{ 'nvb-icon--filled': model().filled }\"\n [ngStyle]=\"iconStyle()\"\n (click)=\"onIconClick($event)\"\n >\n <nvb-icon [name]=\"iconName()\"></nvb-icon>\n </button>\n\n @if (model().showPreview) {\n <div class=\"nvb-icon__preview\" [ngStyle]=\"previewStyle()\">\n <nvb-icon [name]=\"iconName()\"></nvb-icon>\n </div>\n }\n </section>\n</element-wrapper>\n",styles:[':host{display:block;width:100%}.nvb-icon-wrap{width:100%;display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap}.nvb-icon,.nvb-icon__preview{border:1px solid var(--nvb-color-neutral-300);background:var(--nvb-color-neutral-000);border-radius:10px;display:inline-flex;align-items:center;justify-content:center}.nvb-icon{cursor:pointer;min-width:42px;min-height:42px;padding:0}.nvb-icon span,.nvb-icon__preview span{line-height:1}.nvb-icon--filled span{font-variation-settings:"FILL" 1,"wght" 400,"GRAD" 0,"opsz" 24}\n']}]}],propDecorators:{model:[{type:n.Input,args:[{isSignal:true,alias:"model",required:true}]}]}});export{o as IconElement};