ngx-view-builder-designer 0.5.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.
package/package.json ADDED
@@ -0,0 +1,47 @@
1
+ {
2
+ "name": "ngx-view-builder-designer",
3
+ "version": "0.5.0",
4
+ "description": "Visual designer (drag-and-drop builder) for NGX View Builder. Requires ngx-view-builder-runtime.",
5
+ "license": "SEE LICENSE IN LICENSE.md",
6
+ "homepage": "https://ngxviewbuilder.io",
7
+ "author": "NGX View Builder (https://ngxviewbuilder.io)",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "https://github.com/ngxviewbuilder/ngx-view-builder-community.git"
11
+ },
12
+ "bugs": {
13
+ "url": "https://github.com/ngxviewbuilder/ngx-view-builder-community/issues"
14
+ },
15
+ "keywords": [
16
+ "angular",
17
+ "form-builder",
18
+ "view-builder",
19
+ "drag-and-drop",
20
+ "json-forms",
21
+ "low-code"
22
+ ],
23
+ "peerDependencies": {
24
+ "@angular/common": "^22.0.0",
25
+ "@angular/core": "^22.0.0",
26
+ "@angular/cdk": "^22.0.0",
27
+ "@angular/forms": "^22.0.0",
28
+ "ngx-view-builder-runtime": "0.5.0"
29
+ },
30
+ "dependencies": {
31
+ "tslib": "^2.6.0",
32
+ "lodash-es": "^4.17.21"
33
+ },
34
+ "module": "fesm2022/ngx-view-builder-designer.mjs",
35
+ "typings": "types/ngx-view-builder-designer.d.ts",
36
+ "exports": {
37
+ "./package.json": {
38
+ "default": "./package.json"
39
+ },
40
+ ".": {
41
+ "types": "./types/ngx-view-builder-designer.d.ts",
42
+ "default": "./fesm2022/ngx-view-builder-designer.mjs"
43
+ }
44
+ },
45
+ "sideEffects": false,
46
+ "type": "module"
47
+ }
@@ -0,0 +1,347 @@
1
+ import { NgxViewBuilderBuilderTabCode, RendererService, CreatorStructureService, IStructure, ElementBaseModel, IBaseElement, INgxViewBuilderBuilderTabDefinition, BuilderPageDisplayMode, BuilderModel, UiDictionaries, INgxViewBuilderExternalConfig, INgxViewBuilderHeaderAction, INgxViewBuilderBuilderSettings, IValueChangedEvent, INgxViewBuilderTemplateSavedEvent, INgxViewBuilderTemplateDeletedEvent, INgxViewBuilderTemplatesLoadedEvent, INgxViewBuilderSidebarGroupSavedEvent, INgxViewBuilderSidebarGroupDeletedEvent, INgxViewBuilderSidebarGroupsLoadedEvent, INgxViewBuilderHeaderActionClickEvent, HeaderTabEnum, PreviewRendererService, DataSourceService, NgxViewBuilderApiService, BuilderTabRegistryService, NgxViewBuilderMcpBridgeService, DataService, INgxViewBuilderPreviewSettings, PropertyModel } from 'ngx-view-builder-runtime';
2
+ export * from 'ngx-view-builder-runtime';
3
+ import * as _angular_core from '@angular/core';
4
+ import { OnInit, AfterViewInit, OnDestroy } from '@angular/core';
5
+
6
+ interface HeaderTab {
7
+ label: string;
8
+ code: NgxViewBuilderBuilderTabCode;
9
+ order?: number;
10
+ isHidden?: boolean;
11
+ }
12
+
13
+ declare class CreatorRendererService extends RendererService {
14
+ creatorStructureService: CreatorStructureService;
15
+ toModel(structureJson: IStructure): void;
16
+ mapToModel(elements: Record<string, any>): Record<string, ElementBaseModel>;
17
+ convertTemplateToModels(templateObj: any, parentInstance: any, parentPath: string, templateElementParentDataPath?: string): void;
18
+ convertColumnsToModels(columns: IBaseElement[], parentInstance: any, parentPath: string, isTemplateElement?: boolean, templateElementParentDataPath?: string): void;
19
+ applyDataSources(): void;
20
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CreatorRendererService, never>;
21
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<CreatorRendererService>;
22
+ }
23
+
24
+ declare class HistoryService {
25
+ private readonly maxSnapshots;
26
+ private readonly propertyChangeDebounceMs;
27
+ private creatorStructureService;
28
+ private creatorRendererService;
29
+ private previewRendererService;
30
+ private rendererService;
31
+ private eventService;
32
+ private undoStack;
33
+ private redoStack;
34
+ private captureTimer;
35
+ private trackingStarted;
36
+ private trackingRefCount;
37
+ private restoringSnapshot;
38
+ private focusedElementName;
39
+ canUndo: _angular_core.WritableSignal<boolean>;
40
+ canRedo: _angular_core.WritableSignal<boolean>;
41
+ private readonly onDropHandler;
42
+ private readonly onAfterPropertyChangedHandler;
43
+ private readonly onElementFocusHandler;
44
+ private readonly onKeyDownHandler;
45
+ beginTracking(): void;
46
+ stopTracking(): void;
47
+ syncWithCurrentState(reset?: boolean): void;
48
+ undo(): boolean;
49
+ redo(): boolean;
50
+ private captureCheckpoint;
51
+ private createSnapshot;
52
+ private restoreSnapshot;
53
+ private updateAvailabilitySignals;
54
+ private trimUndoStack;
55
+ private clearCaptureTimer;
56
+ private isEditableTarget;
57
+ private deleteFocusedElementFromKeyboard;
58
+ private resolveFocusedElement;
59
+ private findElementByNameInMap;
60
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<HistoryService, never>;
61
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<HistoryService>;
62
+ }
63
+
64
+ declare class BuilderPluginContextService {
65
+ private readonly activePluginTab;
66
+ private readonly builderPageDisplayMode;
67
+ readonly pluginTab: _angular_core.Signal<INgxViewBuilderBuilderTabDefinition>;
68
+ readonly renderMode: _angular_core.Signal<"standalone" | "builder">;
69
+ readonly allowedElementTypes: _angular_core.Signal<Set<string>>;
70
+ readonly allowedGroupCodes: _angular_core.Signal<Set<string>>;
71
+ readonly showTemplatesLibrary: _angular_core.Signal<boolean>;
72
+ readonly showCopiesLibrary: _angular_core.Signal<boolean>;
73
+ readonly showFooter: _angular_core.Signal<boolean>;
74
+ readonly showPagesFooterTab: _angular_core.Signal<boolean>;
75
+ readonly showDataSourcesFooterTab: _angular_core.Signal<boolean>;
76
+ readonly pageDisplayMode: _angular_core.Signal<"all" | "single">;
77
+ readonly singlePage: _angular_core.Signal<boolean>;
78
+ setActivePluginTab(tab: INgxViewBuilderBuilderTabDefinition | null | undefined): void;
79
+ setBuilderPageDisplayMode(mode: BuilderPageDisplayMode | null | undefined): boolean;
80
+ clear(): void;
81
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<BuilderPluginContextService, never>;
82
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<BuilderPluginContextService>;
83
+ }
84
+
85
+ declare class NgxViewBuilderBuilder implements OnInit, AfterViewInit, OnDestroy {
86
+ model: _angular_core.InputSignal<BuilderModel>;
87
+ language: _angular_core.InputSignal<string>;
88
+ theme: _angular_core.InputSignal<"light" | "dark">;
89
+ uiDictionaries: _angular_core.InputSignal<UiDictionaries>;
90
+ contentTranslations: _angular_core.InputSignal<Record<string, Record<string, string>>>;
91
+ cssVariables: _angular_core.InputSignal<Record<string, string>>;
92
+ externalConfig: _angular_core.InputSignal<INgxViewBuilderExternalConfig>;
93
+ externalConfigUrl: _angular_core.InputSignal<string>;
94
+ viewportSettings: _angular_core.InputSignal<{
95
+ mobile?: number;
96
+ tablet?: number;
97
+ desktop?: number;
98
+ }>;
99
+ activeTab: _angular_core.InputSignal<string>;
100
+ hideHeaderTabs: _angular_core.InputSignal<boolean>;
101
+ hideSaveAction: _angular_core.InputSignal<boolean>;
102
+ headerActions: _angular_core.InputSignal<INgxViewBuilderHeaderAction[]>;
103
+ runtimeSettings: _angular_core.InputSignal<INgxViewBuilderBuilderSettings>;
104
+ valueChanged: _angular_core.OutputEmitterRef<IValueChangedEvent>;
105
+ structureChanged: _angular_core.OutputEmitterRef<IStructure>;
106
+ tabChanged: _angular_core.OutputEmitterRef<string>;
107
+ languageChanged: _angular_core.OutputEmitterRef<string>;
108
+ saveRequested: _angular_core.OutputEmitterRef<void>;
109
+ templateSaved: _angular_core.OutputEmitterRef<INgxViewBuilderTemplateSavedEvent>;
110
+ templateDeleted: _angular_core.OutputEmitterRef<INgxViewBuilderTemplateDeletedEvent>;
111
+ templatesLoaded: _angular_core.OutputEmitterRef<INgxViewBuilderTemplatesLoadedEvent>;
112
+ sidebarGroupSaved: _angular_core.OutputEmitterRef<INgxViewBuilderSidebarGroupSavedEvent>;
113
+ sidebarGroupDeleted: _angular_core.OutputEmitterRef<INgxViewBuilderSidebarGroupDeletedEvent>;
114
+ sidebarGroupsLoaded: _angular_core.OutputEmitterRef<INgxViewBuilderSidebarGroupsLoadedEvent>;
115
+ headerActionRequested: _angular_core.OutputEmitterRef<INgxViewBuilderHeaderActionClickEvent>;
116
+ headerTabEnum: typeof HeaderTabEnum;
117
+ selectedTab: _angular_core.WritableSignal<string>;
118
+ visibleHeaderTabs: _angular_core.Signal<HeaderTab[]>;
119
+ rendererService: RendererService;
120
+ previewRendererService: PreviewRendererService;
121
+ creatorRendererService: CreatorRendererService;
122
+ dataSourceService: DataSourceService;
123
+ ngxViewBuilderApiService: NgxViewBuilderApiService;
124
+ builderTabRegistry: BuilderTabRegistryService;
125
+ builderPluginContext: BuilderPluginContextService;
126
+ private ngxViewBuilderBuilderAdapterService;
127
+ private licenseService;
128
+ readonly mcpBridge: NgxViewBuilderMcpBridgeService;
129
+ /** Last MCP settings applied, so a settings change that does not touch them is not a
130
+ * reason to drop a live connection. */
131
+ private appliedMcpUrl;
132
+ private hostElement;
133
+ private documentRef;
134
+ private renderer;
135
+ private domInstrumentationService;
136
+ historyService: HistoryService;
137
+ private runtimeVariablesService;
138
+ private eventService;
139
+ private readonly onBuilderSaveRequestedHandler;
140
+ dataService: DataService;
141
+ isLoaded: _angular_core.WritableSignal<boolean>;
142
+ private mutationObserver;
143
+ private inheritedThemeObserver;
144
+ private appliedCssVariableKeys;
145
+ private appliedCssVariablesSnapshot;
146
+ private isInstrumentingDom;
147
+ private activeThemeMode;
148
+ private lastAppliedThemePreset;
149
+ private customThemeDefinition;
150
+ private themeSwitchRafHandle;
151
+ private customCssStyleElement;
152
+ private cssVariablesStyleElement;
153
+ private customCssLinkElements;
154
+ private markupSecurityService;
155
+ private externalConfigRequestId;
156
+ activeTheme: _angular_core.WritableSignal<"light" | "dark">;
157
+ private readonly apiValueChangedHandler;
158
+ private readonly apiStructureChangedHandler;
159
+ private readonly apiLanguageChangedHandler;
160
+ private readonly apiTabChangedHandler;
161
+ private readonly apiTabChangeRequestedHandler;
162
+ private readonly apiCssVariablesChangedHandler;
163
+ private readonly apiCustomCssChangedHandler;
164
+ private readonly apiCustomCssUrlsChangedHandler;
165
+ private readonly apiThemeModeChangedHandler;
166
+ private readonly apiCustomThemeChangedHandler;
167
+ private readonly apiTemplateSavedHandler;
168
+ private readonly apiTemplateDeletedHandler;
169
+ private readonly apiTemplatesLoadedHandler;
170
+ private readonly apiSidebarGroupSavedHandler;
171
+ private readonly apiSidebarGroupDeletedHandler;
172
+ private readonly apiSidebarGroupsLoadedHandler;
173
+ constructor();
174
+ ngOnInit(): void;
175
+ ngAfterViewInit(): void;
176
+ ngOnDestroy(): void;
177
+ get creatorStructure(): IStructure;
178
+ onTabSelected(selectedTab: NgxViewBuilderBuilderTabCode): void;
179
+ onUndoRequested(): void;
180
+ onRedoRequested(): void;
181
+ onSaveRequested(): void;
182
+ /** Schema version of the loaded view, used to offer the upgrade action. */
183
+ protected readonly structureSchemaVersion: _angular_core.Signal<number>;
184
+ protected readonly runtimeSchemaVersion = 1;
185
+ /**
186
+ * The upgrade is already applied in memory - the view could not render otherwise.
187
+ * This just persists it, so it goes through the ordinary save path.
188
+ */
189
+ onSchemaUpgradeRequested(): void;
190
+ onCustomHeaderActionSelected(action: INgxViewBuilderHeaderAction): void;
191
+ resolvedViewportSettings(): {
192
+ mobile?: number;
193
+ tablet?: number;
194
+ desktop?: number;
195
+ } | null;
196
+ resolvedPreviewSettings(): INgxViewBuilderPreviewSettings | null;
197
+ private applyBuilderSettings;
198
+ /**
199
+ * Opens or closes the MCP bridge from settings.
200
+ *
201
+ * Reconnecting on every settings write would drop a live session each time a host
202
+ * touched an unrelated field, so this only acts when the endpoint itself changed.
203
+ */
204
+ private applyMcpSetting;
205
+ private applyBuilderPageDisplayModeSetting;
206
+ private resolveAllowedTab;
207
+ private applyExternalConfig;
208
+ private loadExternalConfig;
209
+ private applyCustomCss;
210
+ private applyCustomCssUrls;
211
+ private applyCssVariables;
212
+ private applyDefaultCssVariables;
213
+ private applyThemePreset;
214
+ private reapplyHostCssVariables;
215
+ private reapplyRuntimeThemeArtifacts;
216
+ private getStyleRoot;
217
+ private syncThemeArtifactsRoot;
218
+ private applyCssVariablesToElement;
219
+ private updateCssVariableStyleElement;
220
+ private resolveThemePresetVariables;
221
+ private scheduleThemeSwitchUnlock;
222
+ private setupInheritedThemeSync;
223
+ private syncThemeFromHostIfNeeded;
224
+ private resolveInheritedThemeMode;
225
+ private hasExplicitThemeOverride;
226
+ private normalizeThemeMode;
227
+ private setupDomInstrumentation;
228
+ private instrumentDomSoon;
229
+ private instrumentDomSafely;
230
+ private getInstrumentationRoot;
231
+ private syncRuntimeVariableMappings;
232
+ private isBuiltInTab;
233
+ resolveHeaderTabId(tabCode: NgxViewBuilderBuilderTabCode): string;
234
+ resolveHeaderPanelId(tabCode: NgxViewBuilderBuilderTabCode): string;
235
+ private normalizeDomId;
236
+ activePluginTabDefinition: _angular_core.Signal<INgxViewBuilderBuilderTabDefinition>;
237
+ activeBuilderPluginTabDefinition: _angular_core.Signal<INgxViewBuilderBuilderTabDefinition>;
238
+ private deepCloneData;
239
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxViewBuilderBuilder, never>;
240
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxViewBuilderBuilder, "ngx-view-builder-builder", never, { "model": { "alias": "model"; "required": false; "isSignal": true; }; "language": { "alias": "language"; "required": false; "isSignal": true; }; "theme": { "alias": "theme"; "required": false; "isSignal": true; }; "uiDictionaries": { "alias": "uiDictionaries"; "required": false; "isSignal": true; }; "contentTranslations": { "alias": "contentTranslations"; "required": false; "isSignal": true; }; "cssVariables": { "alias": "cssVariables"; "required": false; "isSignal": true; }; "externalConfig": { "alias": "externalConfig"; "required": false; "isSignal": true; }; "externalConfigUrl": { "alias": "externalConfigUrl"; "required": false; "isSignal": true; }; "viewportSettings": { "alias": "viewportSettings"; "required": false; "isSignal": true; }; "activeTab": { "alias": "activeTab"; "required": false; "isSignal": true; }; "hideHeaderTabs": { "alias": "hideHeaderTabs"; "required": false; "isSignal": true; }; "hideSaveAction": { "alias": "hideSaveAction"; "required": false; "isSignal": true; }; "headerActions": { "alias": "headerActions"; "required": false; "isSignal": true; }; "runtimeSettings": { "alias": "runtimeSettings"; "required": false; "isSignal": true; }; }, { "valueChanged": "valueChanged"; "structureChanged": "structureChanged"; "tabChanged": "tabChanged"; "languageChanged": "languageChanged"; "saveRequested": "saveRequested"; "templateSaved": "templateSaved"; "templateDeleted": "templateDeleted"; "templatesLoaded": "templatesLoaded"; "sidebarGroupSaved": "sidebarGroupSaved"; "sidebarGroupDeleted": "sidebarGroupDeleted"; "sidebarGroupsLoaded": "sidebarGroupsLoaded"; "headerActionRequested": "headerActionRequested"; }, never, never, true, never>;
241
+ }
242
+
243
+ declare const NGX_VIEW_BUILDER_TEMPLATES_FEATURE_PACK_ID = "ngx-view-builder-templates";
244
+ /** The same literal the shared layer checks, so the two can never drift apart. */
245
+ declare const NGX_VIEW_BUILDER_TEMPLATES_CAPABILITY = "templates";
246
+ declare function createTemplatesLibraryProperty(data?: Partial<PropertyModel>): PropertyModel;
247
+
248
+ /** `risk` renders the existing danger styling - amber/red, for actions that warn. */
249
+ type BuilderActionButtonTone = 'subtle' | 'neutral' | 'primary' | 'risk';
250
+ type BuilderActionButtonSize = 'lg' | 'ms' | 'sm' | 'sx' | 'md';
251
+ type BuilderActionButtonAlign = 'left' | 'center';
252
+
253
+ declare class BuilderActionButton {
254
+ private readonly hostElement;
255
+ label: _angular_core.InputSignal<string>;
256
+ ariaLabel: _angular_core.InputSignal<string>;
257
+ testId: _angular_core.InputSignal<string>;
258
+ title: _angular_core.InputSignal<string>;
259
+ icon: _angular_core.InputSignal<string>;
260
+ className: _angular_core.InputSignal<string>;
261
+ tone: _angular_core.InputSignal<BuilderActionButtonTone>;
262
+ size: _angular_core.InputSignal<BuilderActionButtonSize>;
263
+ align: _angular_core.InputSignal<BuilderActionButtonAlign>;
264
+ active: _angular_core.InputSignal<boolean>;
265
+ fullWidth: _angular_core.InputSignal<boolean>;
266
+ disabled: _angular_core.InputSignal<boolean>;
267
+ clicked: _angular_core.OutputEmitterRef<MouseEvent>;
268
+ resolveClasses(): string[];
269
+ onClick(event: MouseEvent): void;
270
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<BuilderActionButton, never>;
271
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BuilderActionButton, "builder-action-button", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "testId": { "alias": "testId"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; "tone": { "alias": "tone"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; }, never, never, true, never>;
272
+ }
273
+
274
+ type BuilderIconButtonIconSet = 'material' | 'nvb';
275
+ type BuilderIconButtonSize = 'lg' | 'ms' | 'sm' | 'sx' | 'xs';
276
+ type BuilderIconButtonTone = 'neutral' | 'danger';
277
+ declare class BuilderIconButton {
278
+ private readonly hostElement;
279
+ icon: _angular_core.InputSignal<string>;
280
+ ariaLabel: _angular_core.InputSignal<string>;
281
+ title: _angular_core.InputSignal<string>;
282
+ testId: _angular_core.InputSignal<string>;
283
+ iconSet: _angular_core.InputSignal<BuilderIconButtonIconSet>;
284
+ size: _angular_core.InputSignal<BuilderIconButtonSize>;
285
+ tone: _angular_core.InputSignal<BuilderIconButtonTone>;
286
+ ghost: _angular_core.InputSignal<boolean>;
287
+ dragHandle: _angular_core.InputSignal<boolean>;
288
+ active: _angular_core.InputSignal<boolean>;
289
+ disabled: _angular_core.InputSignal<boolean>;
290
+ className: _angular_core.InputSignal<string>;
291
+ clicked: _angular_core.OutputEmitterRef<MouseEvent>;
292
+ resolveClasses(): string[];
293
+ onClick(event: MouseEvent): void;
294
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<BuilderIconButton, never>;
295
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BuilderIconButton, "builder-icon-button", never, { "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "testId": { "alias": "testId"; "required": false; "isSignal": true; }; "iconSet": { "alias": "iconSet"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "tone": { "alias": "tone"; "required": false; "isSignal": true; }; "ghost": { "alias": "ghost"; "required": false; "isSignal": true; }; "dragHandle": { "alias": "dragHandle"; "required": false; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; }, never, never, true, never>;
296
+ }
297
+
298
+ interface LicensePayload {
299
+ customerId?: string;
300
+ expiresAt?: string;
301
+ plan?: string;
302
+ }
303
+ interface LicenseStatus {
304
+ initialized: boolean;
305
+ missing: boolean;
306
+ /** This version's RELEASE_DATE is later than the license expiresAt, so the build is not covered. */
307
+ outdated: boolean;
308
+ invalid: boolean;
309
+ expiresAt: Date | null;
310
+ plan: string | null;
311
+ }
312
+ declare class LicenseService {
313
+ readonly status: _angular_core.WritableSignal<LicenseStatus>;
314
+ /** True when the license is missing, invalid or does not cover this version, so the builder shows the watermark. */
315
+ readonly isUnlicensed: _angular_core.Signal<boolean>;
316
+ readonly shouldShowModal: _angular_core.WritableSignal<boolean>;
317
+ readonly shouldShowInvalidModal: _angular_core.WritableSignal<boolean>;
318
+ private licenseKey;
319
+ setLicenseKey(key: string): void;
320
+ /** Called by the builder when settings carry no licenseKey, meaning there simply is no key. */
321
+ markMissing(): void;
322
+ private isOfficialDemoHost;
323
+ /** True when watermark and modal enforcement is off: during the beta, or on the official demo. */
324
+ private isEnforcementSuppressed;
325
+ saveModalTimestamp(): void;
326
+ dismissModal(): void;
327
+ saveInvalidModalTimestamp(): void;
328
+ dismissInvalidModal(): void;
329
+ private initialize;
330
+ private parseKey;
331
+ /**
332
+ * Offline ECDSA P-256 paraso patikra su iterptu viesu raktu.
333
+ * Grazina: true (galioja) | false (suklastota/be paraso) | null (WebCrypto nepasiekiamas praleidziam).
334
+ */
335
+ private verifySignature;
336
+ private checkShouldShowModal;
337
+ private checkShouldShowInvalidModal;
338
+ private runServerCheck;
339
+ private applyServerResult;
340
+ private getCachedValidation;
341
+ private cacheValidation;
342
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LicenseService, never>;
343
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<LicenseService>;
344
+ }
345
+
346
+ export { BuilderActionButton, BuilderIconButton, LicenseService, NGX_VIEW_BUILDER_TEMPLATES_CAPABILITY, NGX_VIEW_BUILDER_TEMPLATES_FEATURE_PACK_ID, NgxViewBuilderBuilder, createTemplatesLibraryProperty };
347
+ export type { LicensePayload, LicenseStatus };