ngx-view-builder 0.1.5 → 0.1.6
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/README.md +88 -3
- package/fesm2022/{ngx-view-builder-avatar-element-Bnxr5pVE.mjs → ngx-view-builder-avatar-element-428U6hXs.mjs} +2 -2
- package/fesm2022/{ngx-view-builder-avatar-element-Bnxr5pVE.mjs.map → ngx-view-builder-avatar-element-428U6hXs.mjs.map} +1 -1
- package/fesm2022/{ngx-view-builder-breadcrumbs-element-DUi8_qxY.mjs → ngx-view-builder-breadcrumbs-element-B2FHOwU4.mjs} +2 -2
- package/fesm2022/{ngx-view-builder-breadcrumbs-element-DUi8_qxY.mjs.map → ngx-view-builder-breadcrumbs-element-B2FHOwU4.mjs.map} +1 -1
- package/fesm2022/{ngx-view-builder-icon-element-BYreB3Ma.mjs → ngx-view-builder-icon-element-PMXy2zn8.mjs} +2 -2
- package/fesm2022/{ngx-view-builder-icon-element-BYreB3Ma.mjs.map → ngx-view-builder-icon-element-PMXy2zn8.mjs.map} +1 -1
- package/fesm2022/{ngx-view-builder-ngx-view-builder-G2BnNzUY.mjs → ngx-view-builder-ngx-view-builder-DUoF0Ief.mjs} +132 -70
- package/fesm2022/{ngx-view-builder-ngx-view-builder-G2BnNzUY.mjs.map → ngx-view-builder-ngx-view-builder-DUoF0Ief.mjs.map} +1 -1
- package/fesm2022/{ngx-view-builder-toast-element-6FsyoWXA.mjs → ngx-view-builder-toast-element-Dt4fzOZt.mjs} +2 -2
- package/fesm2022/{ngx-view-builder-toast-element-6FsyoWXA.mjs.map → ngx-view-builder-toast-element-Dt4fzOZt.mjs.map} +1 -1
- package/fesm2022/ngx-view-builder.mjs +1 -1
- package/package.json +1 -2
|
@@ -20054,6 +20054,94 @@ class RendererService {
|
|
|
20054
20054
|
}
|
|
20055
20055
|
return obj;
|
|
20056
20056
|
};
|
|
20057
|
+
// Element properties are omitted from the export when they still equal the type's
|
|
20058
|
+
// default (declared as field initialisers on the model classes). The runtime
|
|
20059
|
+
// re-applies those same defaults through createModel on load, so a slimmed element
|
|
20060
|
+
// reconstructs identically — as long as the code default is unchanged. Only values
|
|
20061
|
+
// the author actually changed away from the default are written out.
|
|
20062
|
+
const defaultBagCache = new Map();
|
|
20063
|
+
const buildDefaultBag = (type) => {
|
|
20064
|
+
const normalizedType = String(type ?? '').trim();
|
|
20065
|
+
if (!normalizedType) {
|
|
20066
|
+
return null;
|
|
20067
|
+
}
|
|
20068
|
+
if (defaultBagCache.has(normalizedType)) {
|
|
20069
|
+
return defaultBagCache.get(normalizedType) ?? null;
|
|
20070
|
+
}
|
|
20071
|
+
let bag = null;
|
|
20072
|
+
try {
|
|
20073
|
+
const defaultInstance = this.modelService.createModel(normalizedType, {});
|
|
20074
|
+
const ignored = new Set(getIgnoredKeys(defaultInstance));
|
|
20075
|
+
bag = {};
|
|
20076
|
+
Object.keys(defaultInstance).forEach((key) => {
|
|
20077
|
+
if (ignored.has(key) || runtimeIgnoredKeys.has(key)) {
|
|
20078
|
+
return;
|
|
20079
|
+
}
|
|
20080
|
+
bag[key] = defaultInstance[key];
|
|
20081
|
+
});
|
|
20082
|
+
}
|
|
20083
|
+
catch {
|
|
20084
|
+
bag = null;
|
|
20085
|
+
}
|
|
20086
|
+
defaultBagCache.set(normalizedType, bag);
|
|
20087
|
+
return bag;
|
|
20088
|
+
};
|
|
20089
|
+
const IDENTITY_KEYS = new Set(['name', 'type']);
|
|
20090
|
+
const CHILD_ELEMENT_KEYS = new Set(['template', 'columns']);
|
|
20091
|
+
const cleanElement = (element) => {
|
|
20092
|
+
if (!element || typeof element !== 'object' || Array.isArray(element)) {
|
|
20093
|
+
return clean(element);
|
|
20094
|
+
}
|
|
20095
|
+
const type = String(element.type ?? '').trim();
|
|
20096
|
+
const defaults = type ? buildDefaultBag(type) : null;
|
|
20097
|
+
if (!defaults) {
|
|
20098
|
+
// No defaults to diff against (unknown type / build failure) — keep everything.
|
|
20099
|
+
return clean(element);
|
|
20100
|
+
}
|
|
20101
|
+
const seen = new WeakSet();
|
|
20102
|
+
const ignored = getIgnoredKeys(element);
|
|
20103
|
+
const result = {};
|
|
20104
|
+
Object.keys(element).forEach((key) => {
|
|
20105
|
+
const rawValue = element[key];
|
|
20106
|
+
if (ignored.includes(key) ||
|
|
20107
|
+
runtimeIgnoredKeys.has(key) ||
|
|
20108
|
+
(key === 'listeners' && Array.isArray(rawValue))) {
|
|
20109
|
+
return;
|
|
20110
|
+
}
|
|
20111
|
+
if (CHILD_ELEMENT_KEYS.has(key) && rawValue && typeof rawValue === 'object') {
|
|
20112
|
+
if (Array.isArray(rawValue)) {
|
|
20113
|
+
const cleanedArray = rawValue
|
|
20114
|
+
.map((child) => cleanElement(child))
|
|
20115
|
+
.filter((child) => child !== undefined);
|
|
20116
|
+
if (cleanedArray.length > 0) {
|
|
20117
|
+
result[key] = cleanedArray;
|
|
20118
|
+
}
|
|
20119
|
+
}
|
|
20120
|
+
else {
|
|
20121
|
+
const cleanedChildren = {};
|
|
20122
|
+
Object.keys(rawValue).forEach((childKey) => {
|
|
20123
|
+
const cleanedChild = cleanElement(rawValue[childKey]);
|
|
20124
|
+
if (cleanedChild !== undefined) {
|
|
20125
|
+
cleanedChildren[childKey] = cleanedChild;
|
|
20126
|
+
}
|
|
20127
|
+
});
|
|
20128
|
+
if (Object.keys(cleanedChildren).length > 0) {
|
|
20129
|
+
result[key] = cleanedChildren;
|
|
20130
|
+
}
|
|
20131
|
+
}
|
|
20132
|
+
return;
|
|
20133
|
+
}
|
|
20134
|
+
const cleanedValue = clean(rawValue, seen);
|
|
20135
|
+
if (cleanedValue === undefined) {
|
|
20136
|
+
return;
|
|
20137
|
+
}
|
|
20138
|
+
if (!IDENTITY_KEYS.has(key) && key in defaults && isEqual(rawValue, defaults[key])) {
|
|
20139
|
+
return;
|
|
20140
|
+
}
|
|
20141
|
+
result[key] = cleanedValue;
|
|
20142
|
+
});
|
|
20143
|
+
return Object.keys(result).length > 0 ? result : undefined;
|
|
20144
|
+
};
|
|
20057
20145
|
const processColumn = (column) => {
|
|
20058
20146
|
if (!column)
|
|
20059
20147
|
return undefined;
|
|
@@ -20115,7 +20203,15 @@ class RendererService {
|
|
|
20115
20203
|
.filter((p) => p !== undefined);
|
|
20116
20204
|
}
|
|
20117
20205
|
if (structure.elements) {
|
|
20118
|
-
|
|
20206
|
+
const cleanedElements = {};
|
|
20207
|
+
Object.keys(structure.elements).forEach((elementKey) => {
|
|
20208
|
+
const cleanedElement = cleanElement(structure.elements[elementKey]);
|
|
20209
|
+
if (cleanedElement !== undefined) {
|
|
20210
|
+
cleanedElements[elementKey] = cleanedElement;
|
|
20211
|
+
}
|
|
20212
|
+
});
|
|
20213
|
+
jsonObject.elements =
|
|
20214
|
+
Object.keys(cleanedElements).length > 0 ? cleanedElements : undefined;
|
|
20119
20215
|
}
|
|
20120
20216
|
if (structure.dataSources &&
|
|
20121
20217
|
Array.isArray(structure.dataSources) &&
|
|
@@ -48668,7 +48764,7 @@ const BUILT_IN_RUNTIME_COMPONENT_LOADERS = {
|
|
|
48668
48764
|
[ElementTypesEnum.AUTOCOMPLETE]: () => Promise.resolve().then(function () { return autocompleteElement; }).then((m) => m.AutocompleteElement),
|
|
48669
48765
|
[ElementTypesEnum.MULTI_SELECT]: () => Promise.resolve().then(function () { return multiSelectElement; }).then((m) => m.MultiSelectElement),
|
|
48670
48766
|
[ElementTypesEnum.MESSAGE_CARD]: () => Promise.resolve().then(function () { return messageCardElement; }).then((m) => m.MessageCardElement),
|
|
48671
|
-
[ElementTypesEnum.TOAST]: () => import('./ngx-view-builder-toast-element-
|
|
48767
|
+
[ElementTypesEnum.TOAST]: () => import('./ngx-view-builder-toast-element-Dt4fzOZt.mjs').then((m) => m.ToastElement),
|
|
48672
48768
|
[ElementTypesEnum.BADGE]: () => Promise.resolve().then(function () { return badgeElement; }).then((m) => m.BadgeElement),
|
|
48673
48769
|
[ElementTypesEnum.STATS_CARD]: () => Promise.resolve().then(function () { return statsCardElement; }).then((m) => m.StatsCardElement),
|
|
48674
48770
|
[ElementTypesEnum.CHART]: () => Promise.resolve().then(function () { return chartElement; }).then((m) => m.ChartElement),
|
|
@@ -48676,11 +48772,11 @@ const BUILT_IN_RUNTIME_COMPONENT_LOADERS = {
|
|
|
48676
48772
|
[ElementTypesEnum.IMAGE]: () => Promise.resolve().then(function () { return imageElement; }).then((m) => m.ImageElement),
|
|
48677
48773
|
[ElementTypesEnum.VIDEO]: () => Promise.resolve().then(function () { return videoElement; }).then((m) => m.VideoElement),
|
|
48678
48774
|
[ElementTypesEnum.IFRAME]: () => Promise.resolve().then(function () { return iframeElement; }).then((m) => m.IframeElement),
|
|
48679
|
-
[ElementTypesEnum.AVATAR]: () => import('./ngx-view-builder-avatar-element-
|
|
48680
|
-
[ElementTypesEnum.ICON]: () => import('./ngx-view-builder-icon-element-
|
|
48775
|
+
[ElementTypesEnum.AVATAR]: () => import('./ngx-view-builder-avatar-element-428U6hXs.mjs').then((m) => m.AvatarElement),
|
|
48776
|
+
[ElementTypesEnum.ICON]: () => import('./ngx-view-builder-icon-element-PMXy2zn8.mjs').then((m) => m.IconElement),
|
|
48681
48777
|
[ElementTypesEnum.DIVIDER]: () => Promise.resolve().then(function () { return dividerElement; }).then((m) => m.DividerElement),
|
|
48682
48778
|
[ElementTypesEnum.SPACER]: () => Promise.resolve().then(function () { return spacerElement; }).then((m) => m.SpacerElement),
|
|
48683
|
-
[ElementTypesEnum.BREADCRUMBS]: () => import('./ngx-view-builder-breadcrumbs-element-
|
|
48779
|
+
[ElementTypesEnum.BREADCRUMBS]: () => import('./ngx-view-builder-breadcrumbs-element-B2FHOwU4.mjs').then((m) => m.BreadcrumbsElement),
|
|
48684
48780
|
[ElementTypesEnum.PAGE_TITLE]: () => Promise.resolve().then(function () { return pageTitleElement; }).then((m) => m.PageTitleElement),
|
|
48685
48781
|
[ElementTypesEnum.NUMBER_STEPPER]: () => Promise.resolve().then(function () { return numberStepperElement; }).then((m) => m.NumberStepperElement),
|
|
48686
48782
|
[ElementTypesEnum.TIME_PICKER]: () => Promise.resolve().then(function () { return timePickerElement; }).then((m) => m.TimePickerElement),
|
|
@@ -80827,7 +80923,7 @@ const LICENSE_VALIDATION_URL = 'https://api.ngxviewbuilder.io';
|
|
|
80827
80923
|
// publish build'a. Perpetual fallback modelis: raktas dengia visas versijas,
|
|
80828
80924
|
// isleistas iki jo expiresAt. Pasibaigus licencijai padengtos versijos veikia
|
|
80829
80925
|
// amzinai be watermark; velesnes (parsisiustos is npm) — watermark, kol neatsinaujinta.
|
|
80830
|
-
const RELEASE_DATE = new Date('2026-07-
|
|
80926
|
+
const RELEASE_DATE = new Date('2026-07-23T00:00:00Z');
|
|
80831
80927
|
// Oficialus vieso demo puslapio hostname'ai — jiems watermark/license modalai
|
|
80832
80928
|
// visada islaikomi isjungti, nepriklausomai nuo rakto/serverio busenos. SAUGU:
|
|
80833
80929
|
// tai musu paciu valdomas domenas, tad integratorius savo produkcinei app'ai
|
|
@@ -81383,14 +81479,11 @@ class AiChatPanel {
|
|
|
81383
81479
|
attachedFiles = signal([], ...(ngDevMode ? [{ debugName: "attachedFiles" }] : /* istanbul ignore next */ []));
|
|
81384
81480
|
modelDropdownOpen = signal(false, ...(ngDevMode ? [{ debugName: "modelDropdownOpen" }] : /* istanbul ignore next */ []));
|
|
81385
81481
|
copiedKey = signal(null, ...(ngDevMode ? [{ debugName: "copiedKey" }] : /* istanbul ignore next */ []));
|
|
81386
|
-
|
|
81387
|
-
|
|
81388
|
-
|
|
81389
|
-
|
|
81390
|
-
|
|
81391
|
-
static DOCX_EXTENSIONS = new Set(['docx', 'doc']);
|
|
81392
|
-
static MAX_FILE_CHARS = 40_000;
|
|
81393
|
-
static MAX_TOTAL_FILE_CHARS = 100_000;
|
|
81482
|
+
// Files are sent to the backend as raw bytes; the panel does not parse them.
|
|
81483
|
+
// These guards only keep a single WebSocket message from getting unreasonably
|
|
81484
|
+
// large, since the browser still has to encode and send it.
|
|
81485
|
+
static MAX_FILE_BYTES = 10 * 1024 * 1024; // 10 MB per file
|
|
81486
|
+
static MAX_TOTAL_FILE_BYTES = 25 * 1024 * 1024; // 25 MB total
|
|
81394
81487
|
parsedMessages = computed(() => this.aiChatService.messages().map(msg => ({
|
|
81395
81488
|
...msg,
|
|
81396
81489
|
segments: this.parseSegments(msg.text),
|
|
@@ -81444,10 +81537,16 @@ class AiChatPanel {
|
|
|
81444
81537
|
this.fileInputRef?.nativeElement.click();
|
|
81445
81538
|
}
|
|
81446
81539
|
onFilesSelected(event) {
|
|
81447
|
-
const
|
|
81540
|
+
const input = event.target;
|
|
81541
|
+
const files = input.files;
|
|
81448
81542
|
if (!files?.length)
|
|
81449
81543
|
return;
|
|
81450
81544
|
Array.from(files).forEach((file) => {
|
|
81545
|
+
if (file.size > AiChatPanel.MAX_FILE_BYTES) {
|
|
81546
|
+
const mb = AiChatPanel.MAX_FILE_BYTES / (1024 * 1024);
|
|
81547
|
+
this.aiChatService.errorText.set(`"${file.name}" is larger than ${mb} MB and was not attached.`);
|
|
81548
|
+
return;
|
|
81549
|
+
}
|
|
81451
81550
|
if (file.type.startsWith('image/')) {
|
|
81452
81551
|
const reader = new FileReader();
|
|
81453
81552
|
reader.onload = () => {
|
|
@@ -81458,59 +81557,23 @@ class AiChatPanel {
|
|
|
81458
81557
|
};
|
|
81459
81558
|
reader.readAsDataURL(file);
|
|
81460
81559
|
}
|
|
81461
|
-
else
|
|
81560
|
+
else {
|
|
81561
|
+
// Attach the raw file. Nothing is parsed here: the panel is only an
|
|
81562
|
+
// input/output surface, and the backend decides how to read each file.
|
|
81462
81563
|
const reader = new FileReader();
|
|
81463
81564
|
reader.onload = () => {
|
|
81464
|
-
const
|
|
81465
|
-
const
|
|
81466
|
-
|
|
81467
|
-
|
|
81468
|
-
|
|
81565
|
+
const result = reader.result; // "data:<mime>;base64,<data>"
|
|
81566
|
+
const comma = result.indexOf(',');
|
|
81567
|
+
const data = comma >= 0 ? result.slice(comma + 1) : result;
|
|
81568
|
+
this.attachedFiles.update((fs) => [
|
|
81569
|
+
...fs,
|
|
81570
|
+
{ name: file.name, mimeType: file.type || 'application/octet-stream', size: file.size, data },
|
|
81571
|
+
]);
|
|
81469
81572
|
};
|
|
81470
|
-
reader.
|
|
81471
|
-
}
|
|
81472
|
-
else if (this.isWordFile(file)) {
|
|
81473
|
-
void this.extractWordText(file);
|
|
81573
|
+
reader.readAsDataURL(file);
|
|
81474
81574
|
}
|
|
81475
81575
|
});
|
|
81476
|
-
|
|
81477
|
-
}
|
|
81478
|
-
isTextFile(file) {
|
|
81479
|
-
if (file.type.startsWith('text/'))
|
|
81480
|
-
return true;
|
|
81481
|
-
const ext = file.name.split('.').pop()?.toLowerCase() ?? '';
|
|
81482
|
-
return AiChatPanel.TEXT_EXTENSIONS.has(ext);
|
|
81483
|
-
}
|
|
81484
|
-
isWordFile(file) {
|
|
81485
|
-
const ext = file.name.split('.').pop()?.toLowerCase() ?? '';
|
|
81486
|
-
return AiChatPanel.DOCX_EXTENSIONS.has(ext);
|
|
81487
|
-
}
|
|
81488
|
-
async extractWordText(file) {
|
|
81489
|
-
const ext = file.name.split('.').pop()?.toLowerCase() ?? '';
|
|
81490
|
-
if (ext === 'doc') {
|
|
81491
|
-
this.attachedFiles.update((fs) => [
|
|
81492
|
-
...fs,
|
|
81493
|
-
{ name: file.name, content: '[.doc (old Word format) is not supported. Please save the file as .docx or .txt and try again.]', size: file.size },
|
|
81494
|
-
]);
|
|
81495
|
-
return;
|
|
81496
|
-
}
|
|
81497
|
-
try {
|
|
81498
|
-
const arrayBuffer = await file.arrayBuffer();
|
|
81499
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
81500
|
-
const mammoth = await import('mammoth');
|
|
81501
|
-
const result = await mammoth.extractRawText({ arrayBuffer });
|
|
81502
|
-
const raw = result.value ?? '';
|
|
81503
|
-
const content = raw.length > AiChatPanel.MAX_FILE_CHARS
|
|
81504
|
-
? raw.slice(0, AiChatPanel.MAX_FILE_CHARS) + '\n[...truncated]'
|
|
81505
|
-
: raw;
|
|
81506
|
-
this.attachedFiles.update((fs) => [...fs, { name: file.name, content: content || '[Empty document]', size: file.size }]);
|
|
81507
|
-
}
|
|
81508
|
-
catch {
|
|
81509
|
-
this.attachedFiles.update((fs) => [
|
|
81510
|
-
...fs,
|
|
81511
|
-
{ name: file.name, content: '[Could not extract text from this Word document]', size: file.size },
|
|
81512
|
-
]);
|
|
81513
|
-
}
|
|
81576
|
+
input.value = '';
|
|
81514
81577
|
}
|
|
81515
81578
|
removeAttachment(index) {
|
|
81516
81579
|
this.attachedImages.update((imgs) => imgs.filter((_, i) => i !== index));
|
|
@@ -81522,8 +81585,7 @@ class AiChatPanel {
|
|
|
81522
81585
|
window.open(img.dataUrl, '_blank');
|
|
81523
81586
|
}
|
|
81524
81587
|
previewFile(file) {
|
|
81525
|
-
|
|
81526
|
-
window.open(URL.createObjectURL(blob), '_blank');
|
|
81588
|
+
window.open(`data:${file.mimeType};base64,${file.data}`, '_blank');
|
|
81527
81589
|
}
|
|
81528
81590
|
copyCode(content, mi, si) {
|
|
81529
81591
|
void navigator.clipboard.writeText(content.trim()).then(() => {
|
|
@@ -81587,15 +81649,15 @@ class AiChatPanel {
|
|
|
81587
81649
|
payload['images'] = images.map((img) => ({ mediaType: img.mediaType, dataUrl: img.dataUrl }));
|
|
81588
81650
|
}
|
|
81589
81651
|
if (files.length > 0) {
|
|
81590
|
-
let
|
|
81652
|
+
let totalBytes = 0;
|
|
81591
81653
|
payload['files'] = files
|
|
81592
81654
|
.filter((f) => {
|
|
81593
|
-
if (
|
|
81655
|
+
if (totalBytes + f.size > AiChatPanel.MAX_TOTAL_FILE_BYTES)
|
|
81594
81656
|
return false;
|
|
81595
|
-
|
|
81657
|
+
totalBytes += f.size;
|
|
81596
81658
|
return true;
|
|
81597
81659
|
})
|
|
81598
|
-
.map((f) => ({ name: f.name,
|
|
81660
|
+
.map((f) => ({ name: f.name, mimeType: f.mimeType, size: f.size, data: f.data }));
|
|
81599
81661
|
}
|
|
81600
81662
|
if (this.socket?.readyState === WebSocket.OPEN) {
|
|
81601
81663
|
this.socket.send(JSON.stringify(payload));
|
|
@@ -90448,4 +90510,4 @@ class ChoiceModel {
|
|
|
90448
90510
|
*/
|
|
90449
90511
|
|
|
90450
90512
|
export { ForgeInitializerService as $, APPLICATION_LOCALE_VALUE as A, BadgeModel as B, ChartModel as C, DynamicTextPipe as D, ElementActionService as E, ElementActionButtonToneEnum as F, ElementActionButtonVariantEnum as G, ElementActionDialogOperationEnum as H, ElementActionResponseModeEnum as I, ElementActionSetValueModeEnum as J, ElementActionToastPositionEnum as K, ElementActionToastVariantEnum as L, MarkupSecurityService as M, NvbIcon as N, ElementActionTriggerEnum as O, ElementActionTypeEnum as P, ElementBaseModel as Q, ElementDataSourceUseForEnum as R, StateService as S, ElementExecutionModeEnum as T, UiTranslationService as U, ElementFocusService as V, ElementTypesEnum as W, EmptyBlockModel as X, EventService as Y, ExpressionService as Z, FileUploadModel as _, ElementWrapper as a, TableColumnAlignEnum as a$, HeaderTabEnum as a0, IconModel as a1, IframeModel as a2, ImageModel as a3, LOCALE_CHOICES as a4, ListBoxModel as a5, ListGridModel as a6, MessageCardModel as a7, MultiSelectInputModel as a8, NGX_VIEW_BUILDER_PROJECT_LAYER as a9, NgxViewBuilderRuntime as aA, NgxViewBuilderSaveRequestedSourceEnum as aB, NgxViewBuilderTableSettingsSourceEnum as aC, NgxViewBuilderThemeModeEnum as aD, NgxViewBuilderTriggerEngineService as aE, NgxViewBuilderTriggerEventEnum as aF, NgxViewBuilderValidator as aG, NgxViewBuilderWebsocketMessageModeEnum as aH, NumberInputModel as aI, NumberStepperModel as aJ, PageTitleModel as aK, PanelModel as aL, PhoneInputModel as aM, ProgressBarModel as aN, ProgressFlowModel as aO, PropertyModel as aP, RadioInputModel as aQ, RichTextModel as aR, RuntimeVariableSourceTypeEnum as aS, SelectButtonModel as aT, SelectInputModel as aU, SignaturePadModel as aV, SingleCheckboxModel as aW, SliderModel as aX, SpacerModel as aY, SplitterModel as aZ, StatsCardModel as a_, NGX_VIEW_BUILDER_TEMPLATES_CAPABILITY as aa, NGX_VIEW_BUILDER_TEMPLATES_FEATURE_PACK_ID as ab, NGX_VIEW_BUILDER_UI_TRANSLATIONS as ac, NgxViewBuilder as ad, NgxViewBuilderActionExecutorService as ae, NgxViewBuilderAlignEnum as af, NgxViewBuilderApiService as ag, NgxViewBuilderAutomationActionTypeEnum as ah, NgxViewBuilderAutomationService as ai, NgxViewBuilderBuilder as aj, NgxViewBuilderBuilderTabRenderModeEnum as ak, NgxViewBuilderChromePositionEnum as al, NgxViewBuilderDataSourceTypeEnum as am, NgxViewBuilderDialogCloseReasonEnum as an, NgxViewBuilderExecutionReasonEnum as ao, NgxViewBuilderHeadlessService as ap, NgxViewBuilderInteractionStatusEnum as aq, NgxViewBuilderPageNavigationModeEnum as ar, NgxViewBuilderPreviewModeEnum as as, NgxViewBuilderProcessService as at, NgxViewBuilderRenderModeEnum as au, NgxViewBuilderRenderPhaseEnum as av, NgxViewBuilderRenderer as aw, NgxViewBuilderRuleExecutedBranchEnum as ax, NgxViewBuilderRuleRunModeEnum as ay, NgxViewBuilderRulesEngineService as az, AUTOMATION_BUILDER_TAB_ID as b, TableColumnCellActionsDisplayModeEnum as b0, TableColumnTypeEnum as b1, TableFilterControlTypeEnum as b2, TableFilterOptionsSourceTypeEnum as b3, TableInlineEditStartModeEnum as b4, TableInlineEditorTypeEnum as b5, TableModel as b6, TableRowActionsDropdownButtonStyleEnum as b7, TableStatusToneEnum as b8, TabsModel as b9, TabsProModel as ba, TemplateEngineService as bb, TemplateStorageModeEnum as bc, TemplatesEditor as bd, TextAreaModel as be, TextInputModel as bf, TimePickerModel as bg, ToastModel as bh, ToggleSwitchModel as bi, UiTranslatePipe as bj, ValueChangeTriggerEnum as bk, VideoModel as bl, bridgeNgxViewBuilderApiEvents as bm, createTemplatesLibraryProperty as bn, provideNgxViewBuilderExtensions as bo, provideNgxViewBuilderProjectLayer as bp, provideNgxViewBuilderProjectLayers as bq, provideNgxViewBuilderRuntime as br, provideNgxViewBuilderUiTranslations as bs, AccordionModel as c, ApplicationLocaleService as d, AutocompleteModel as e, AutomationStudio as f, AvatarModel as g, BreadcrumbsModel as h, BuilderModel as i, BuilderPageDisplayModeEnum as j, ButtonModel as k, CheckboxInputModel as l, ChoiceModel as m, ColumnFragmentModeEnum as n, CreatorStructureService as o, CustomHtmlModel as p, DatePickerModel as q, DateRangeModel as r, DialogModel as s, DividerModel as t, DocumentationGenerator as u, DynamicPanelModel as v, DynamicTableColumnModel as w, DynamicTableModel as x, DynamicTableRowColumnModel as y, EN_UI_DICTIONARY as z };
|
|
90451
|
-
//# sourceMappingURL=ngx-view-builder-ngx-view-builder-
|
|
90513
|
+
//# sourceMappingURL=ngx-view-builder-ngx-view-builder-DUoF0Ief.mjs.map
|