ngx-form-designer 0.0.23

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.
Files changed (123) hide show
  1. package/README.md +279 -0
  2. package/convert-legacy-rem-to-sass-function.mjs +198 -0
  3. package/fesm2022/ngx-form-designer.mjs +33548 -0
  4. package/fesm2022/ngx-form-designer.mjs.map +1 -0
  5. package/index.d.ts +5 -0
  6. package/lib/data/data-catalog.d.ts +46 -0
  7. package/lib/data/data-provider.d.ts +69 -0
  8. package/lib/data/data-source-client.d.ts +59 -0
  9. package/lib/data/data-source-parsers.d.ts +7 -0
  10. package/lib/data/external-data-source.d.ts +29 -0
  11. package/lib/data/file-upload-client.d.ts +19 -0
  12. package/lib/data/http-data-source-client.d.ts +31 -0
  13. package/lib/data/in-memory-data-catalog.service.d.ts +12 -0
  14. package/lib/data/runtime-field-data-access-registry.service.d.ts +29 -0
  15. package/lib/data/runtime-field-data-access.d.ts +32 -0
  16. package/lib/data/tree-utils.d.ts +28 -0
  17. package/lib/email-renderer/email-renderer.component.d.ts +21 -0
  18. package/lib/form-core/event-api-reference.d.ts +8 -0
  19. package/lib/form-core/form-engine.d.ts +55 -0
  20. package/lib/form-core/form-event-runner.d.ts +28 -0
  21. package/lib/form-core/models.d.ts +358 -0
  22. package/lib/form-core/plugin-metadata.d.ts +10 -0
  23. package/lib/form-core/rule-evaluation.service.d.ts +18 -0
  24. package/lib/form-core/schema-factory.d.ts +11 -0
  25. package/lib/form-core/schema-guard.d.ts +18 -0
  26. package/lib/form-core/schema-utils.d.ts +9 -0
  27. package/lib/form-designer/data-panel/data-panel.component.d.ts +101 -0
  28. package/lib/form-designer/designer-context.service.d.ts +29 -0
  29. package/lib/form-designer/designer-state.service.d.ts +167 -0
  30. package/lib/form-designer/dynamic-properties/dynamic-properties.component.d.ts +92 -0
  31. package/lib/form-designer/events-panel/events-panel.component.d.ts +21 -0
  32. package/lib/form-designer/events-workspace.component.d.ts +125 -0
  33. package/lib/form-designer/field-palette.component.d.ts +99 -0
  34. package/lib/form-designer/form-designer-shell.component.d.ts +81 -0
  35. package/lib/form-designer/form-preview.component.d.ts +36 -0
  36. package/lib/form-designer/form-settings-inspector.component.d.ts +15 -0
  37. package/lib/form-designer/global-data-manager.component.d.ts +32 -0
  38. package/lib/form-designer/inspector-sections/inspector-advanced-section.component.d.ts +17 -0
  39. package/lib/form-designer/inspector-sections/inspector-backgrounds-section.component.d.ts +14 -0
  40. package/lib/form-designer/inspector-sections/inspector-borders-section.component.d.ts +45 -0
  41. package/lib/form-designer/inspector-sections/inspector-effects-section.component.d.ts +22 -0
  42. package/lib/form-designer/inspector-sections/inspector-layout-section.component.d.ts +33 -0
  43. package/lib/form-designer/inspector-sections/inspector-position-section.component.d.ts +28 -0
  44. package/lib/form-designer/inspector-sections/inspector-size-section.component.d.ts +12 -0
  45. package/lib/form-designer/inspector-sections/inspector-spacing-section.component.d.ts +13 -0
  46. package/lib/form-designer/inspector-sections/inspector-typography-section.component.d.ts +31 -0
  47. package/lib/form-designer/json-form-designer.component.d.ts +17 -0
  48. package/lib/form-designer/layer-tree/layer-tree.component.d.ts +24 -0
  49. package/lib/form-designer/layout-canvas.component.d.ts +69 -0
  50. package/lib/form-designer/page-style.d.ts +2 -0
  51. package/lib/form-designer/properties-panel.component.d.ts +65 -0
  52. package/lib/form-designer/rules-editor/query-builder/query-builder.component.d.ts +23 -0
  53. package/lib/form-designer/rules-editor/rules-panel/rules-panel.component.d.ts +15 -0
  54. package/lib/form-designer/services/widget-definition-resolver.service.d.ts +38 -0
  55. package/lib/form-designer/template-library.d.ts +9 -0
  56. package/lib/form-designer/widget-inspector.component.d.ts +30 -0
  57. package/lib/form-renderer/form-viewer/form-viewer-readonly.component.d.ts +56 -0
  58. package/lib/form-renderer/form-viewer/form-viewer.component.d.ts +55 -0
  59. package/lib/form-renderer/json-form-renderer.component.d.ts +98 -0
  60. package/lib/form-renderer/layout-node.component.d.ts +94 -0
  61. package/lib/plugins/core-plugins.d.ts +5 -0
  62. package/lib/plugins/designer-plugin.d.ts +15 -0
  63. package/lib/plugins/plugin-context.d.ts +18 -0
  64. package/lib/plugins/plugin-providers.d.ts +3 -0
  65. package/lib/plugins/section-definition.d.ts +16 -0
  66. package/lib/theme/theme.service.d.ts +15 -0
  67. package/lib/ui/json-schema-editor.component.d.ts +27 -0
  68. package/lib/ui/monaco-editor.component.d.ts +24 -0
  69. package/lib/ui/ui-accordion.component.d.ts +11 -0
  70. package/lib/ui/ui-box-model.component.d.ts +55 -0
  71. package/lib/ui/ui-color-swatch.component.d.ts +12 -0
  72. package/lib/ui/ui-dimension.component.d.ts +21 -0
  73. package/lib/ui/ui-edge-box.component.d.ts +20 -0
  74. package/lib/ui/ui-field-wrapper.component.d.ts +8 -0
  75. package/lib/ui/ui-icon.module.d.ts +7 -0
  76. package/lib/ui/ui-input.component.d.ts +17 -0
  77. package/lib/ui/ui-range-number.component.d.ts +16 -0
  78. package/lib/ui/ui-select-icon.component.d.ts +18 -0
  79. package/lib/ui/ui-tabs.component.d.ts +25 -0
  80. package/lib/website/website-brick-studio.component.d.ts +67 -0
  81. package/lib/website/website-designer-shell.component.d.ts +53 -0
  82. package/lib/website/website-preview-shell.component.d.ts +25 -0
  83. package/lib/website/website-project.models.d.ts +78 -0
  84. package/lib/website/website-project.service.d.ts +50 -0
  85. package/lib/website/website-section-library.d.ts +6 -0
  86. package/lib/widgets/email-widgets/email-button-widget.component.d.ts +15 -0
  87. package/lib/widgets/email-widgets/email-heading-widget.component.d.ts +15 -0
  88. package/lib/widgets/email-widgets/email-text-widget.component.d.ts +13 -0
  89. package/lib/widgets/email-widgets.d.ts +2 -0
  90. package/lib/widgets/field-widgets/checkbox/checkbox-widget.component.d.ts +28 -0
  91. package/lib/widgets/field-widgets/checkbox-group/checkbox-group-widget.component.d.ts +40 -0
  92. package/lib/widgets/field-widgets/file-upload/file-upload-widget.component.d.ts +45 -0
  93. package/lib/widgets/field-widgets/radio/radio-widget.component.d.ts +39 -0
  94. package/lib/widgets/field-widgets/repeatable-group/repeatable-group-widget.component.d.ts +69 -0
  95. package/lib/widgets/field-widgets/rich-text/rich-text-widget.component.d.ts +17 -0
  96. package/lib/widgets/field-widgets/search/search-widget.component.d.ts +56 -0
  97. package/lib/widgets/field-widgets/select/select-widget.component.d.ts +53 -0
  98. package/lib/widgets/field-widgets/text-field/text-field.component.d.ts +39 -0
  99. package/lib/widgets/field-widgets/tree-select/tree-select-widget.component.d.ts +47 -0
  100. package/lib/widgets/page-link-context.d.ts +8 -0
  101. package/lib/widgets/page-widgets/brick-settings.component.d.ts +23 -0
  102. package/lib/widgets/page-widgets/brick-widget.component.d.ts +47 -0
  103. package/lib/widgets/page-widgets/button-link-settings.component.d.ts +23 -0
  104. package/lib/widgets/page-widgets/button-widget.component.d.ts +21 -0
  105. package/lib/widgets/page-widgets/heading-widget.component.d.ts +22 -0
  106. package/lib/widgets/page-widgets/inline-quill-editor.component.d.ts +35 -0
  107. package/lib/widgets/page-widgets/table-inspector.component.d.ts +17 -0
  108. package/lib/widgets/page-widgets/table-widget.component.d.ts +36 -0
  109. package/lib/widgets/page-widgets/text-block-widget.component.d.ts +22 -0
  110. package/lib/widgets/page-widgets.d.ts +2 -0
  111. package/lib/widgets/static-widgets/image/image-widget.component.d.ts +20 -0
  112. package/lib/widgets/style-helpers.d.ts +8 -0
  113. package/lib/widgets/style-properties.d.ts +28 -0
  114. package/lib/widgets/style-sections.d.ts +1 -0
  115. package/lib/widgets/table-widget.d.ts +2 -0
  116. package/lib/widgets/widget-definition.d.ts +81 -0
  117. package/lib/widgets/widget-editor-context.d.ts +8 -0
  118. package/lib/widgets/widget-packs.d.ts +4 -0
  119. package/lib/widgets/widgets.d.ts +2 -0
  120. package/package.json +47 -0
  121. package/public-api.d.ts +73 -0
  122. package/style-test-bug.scss +2562 -0
  123. package/tailwind.preset.js +62 -0
@@ -0,0 +1,67 @@
1
+ import { OnDestroy } from '@angular/core';
2
+ import type { WebsiteBrick } from './website-project.models';
3
+ import * as i0 from "@angular/core";
4
+ type BrickEditorTab = 'template' | 'script' | 'schema' | 'defaults';
5
+ type BrickRuntimeMode = 'dom' | 'react';
6
+ export declare class WebsiteBrickStudioComponent implements OnDestroy {
7
+ private readonly projectService;
8
+ private readonly router;
9
+ private readonly workspaceRef;
10
+ readonly searchQuery: import("@angular/core").WritableSignal<string>;
11
+ readonly newBrickRuntime: import("@angular/core").WritableSignal<BrickRuntimeMode>;
12
+ readonly bricks: import("@angular/core").Signal<WebsiteBrick[]>;
13
+ readonly selectedBrickId: import("@angular/core").WritableSignal<string>;
14
+ readonly selectedBrick: import("@angular/core").Signal<WebsiteBrick | null>;
15
+ readonly brickGroups: import("@angular/core").Signal<({
16
+ id: string;
17
+ label: string;
18
+ runtime: "react";
19
+ bricks: WebsiteBrick[];
20
+ } | {
21
+ id: string;
22
+ label: string;
23
+ runtime: "dom";
24
+ bricks: WebsiteBrick[];
25
+ })[]>;
26
+ readonly editorTab: import("@angular/core").WritableSignal<BrickEditorTab>;
27
+ readonly draftName: import("@angular/core").WritableSignal<string>;
28
+ readonly draftRuntime: import("@angular/core").WritableSignal<BrickRuntimeMode>;
29
+ readonly draftTemplate: import("@angular/core").WritableSignal<string>;
30
+ readonly draftScript: import("@angular/core").WritableSignal<string>;
31
+ readonly draftReactComponent: import("@angular/core").WritableSignal<string>;
32
+ readonly draftSchemaJson: import("@angular/core").WritableSignal<string>;
33
+ readonly draftDefaultsJson: import("@angular/core").WritableSignal<string>;
34
+ readonly draftDefaultsValue: import("@angular/core").WritableSignal<Record<string, unknown>>;
35
+ readonly parseError: import("@angular/core").WritableSignal<string>;
36
+ readonly editorHeight: import("@angular/core").WritableSignal<number>;
37
+ readonly inspectorOpen: import("@angular/core").WritableSignal<boolean>;
38
+ readonly editorOptions: Record<string, unknown>;
39
+ private resizeCleanup?;
40
+ readonly previewConfig: import("@angular/core").Signal<{
41
+ id: string;
42
+ brickId: string;
43
+ props: Record<string, unknown>;
44
+ } | undefined>;
45
+ readonly previewBrick: import("@angular/core").Signal<WebsiteBrick | undefined>;
46
+ readonly inspectorSchema: import("@angular/core").Signal<Record<string, unknown> | null>;
47
+ readonly handlePropsChange: (nextProps: Record<string, unknown>) => void;
48
+ private readonly selectionSync;
49
+ private readonly draftSync;
50
+ backToEditor(): void;
51
+ selectBrick(id: string): void;
52
+ createBrick(): void;
53
+ removeBrick(id: string): void;
54
+ updateDefaultsJson(value: string): void;
55
+ saveBrick(): void;
56
+ setRuntime(mode: BrickRuntimeMode): void;
57
+ handleResizeKeydown(event: KeyboardEvent): void;
58
+ startEditorResize(event: PointerEvent): void;
59
+ ngOnDestroy(): void;
60
+ private static readonly MIN_EDITOR_HEIGHT;
61
+ private clampEditorHeight;
62
+ private computeMaxEditorHeight;
63
+ private parseJsonObject;
64
+ static ɵfac: i0.ɵɵFactoryDeclaration<WebsiteBrickStudioComponent, never>;
65
+ static ɵcmp: i0.ɵɵComponentDeclaration<WebsiteBrickStudioComponent, "app-website-brick-studio", never, {}, {}, never, never, true, never>;
66
+ }
67
+ export {};
@@ -0,0 +1,53 @@
1
+ import { OnInit, ElementRef } from '@angular/core';
2
+ import { DesignerStateService } from '../form-designer/designer-state.service';
3
+ import type { WebsiteProject } from './website-project.models';
4
+ import { DesignerSectionDefinition } from '../plugins/section-definition';
5
+ import * as i0 from "@angular/core";
6
+ export declare class WebsiteDesignerShellComponent implements OnInit {
7
+ readonly initialProject: import("@angular/core").InputSignal<WebsiteProject | null>;
8
+ readonly sections: import("@angular/core").InputSignal<DesignerSectionDefinition[] | null>;
9
+ projectFileInput: ElementRef<HTMLInputElement>;
10
+ private readonly projectService;
11
+ private readonly router;
12
+ protected readonly designerState: DesignerStateService;
13
+ private readonly pluginSections;
14
+ private readonly pluginSectionsFlat;
15
+ readonly project: import("@angular/core").Signal<WebsiteProject>;
16
+ readonly pages: import("@angular/core").Signal<import("ngx-form-designer").WebsitePage[]>;
17
+ readonly savedSections: import("@angular/core").Signal<import("ngx-form-designer").WebsiteSection[]>;
18
+ readonly bricks: import("@angular/core").Signal<import("ngx-form-designer").WebsiteBrick[]>;
19
+ readonly activePage: import("@angular/core").Signal<import("ngx-form-designer").WebsitePage | null>;
20
+ readonly activePageId: import("@angular/core").WritableSignal<string>;
21
+ readonly canRemovePage: import("@angular/core").Signal<boolean>;
22
+ readonly sectionLibraryList: import("@angular/core").Signal<DesignerSectionDefinition[]>;
23
+ readonly savedSectionsList: import("@angular/core").Signal<{
24
+ id: string;
25
+ name: string;
26
+ description: string;
27
+ }[]>;
28
+ private readonly syncEnabled;
29
+ private readonly schemaSync;
30
+ ngOnInit(): void;
31
+ addPage(): void;
32
+ selectPage(id: string): void;
33
+ removePage(id: string): void;
34
+ renamePage(id: string, name: string): void;
35
+ updateRoute(id: string, route: string): void;
36
+ openBrickStudio(): void;
37
+ insertSection(section: DesignerSectionDefinition): void;
38
+ saveSection(name: string): void;
39
+ insertSavedSection(sectionId: string): void;
40
+ removeSavedSection(sectionId: string): void;
41
+ openPreview(openInNewTab?: boolean): void;
42
+ exportProject(): void;
43
+ importProject(): void;
44
+ onProjectFileSelected(event: Event): void;
45
+ private loadActivePage;
46
+ private persistActivePage;
47
+ private getSelectedRow;
48
+ private extractSectionDraft;
49
+ private materializeSection;
50
+ private generateId;
51
+ static ɵfac: i0.ɵɵFactoryDeclaration<WebsiteDesignerShellComponent, never>;
52
+ static ɵcmp: i0.ɵɵComponentDeclaration<WebsiteDesignerShellComponent, "app-website-designer-shell", never, { "initialProject": { "alias": "initialProject"; "required": false; "isSignal": true; }; "sections": { "alias": "sections"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
53
+ }
@@ -0,0 +1,25 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class WebsitePreviewShellComponent {
3
+ private readonly router;
4
+ private readonly projectService;
5
+ readonly project: import("@angular/core").Signal<import("ngx-form-designer").WebsiteProject>;
6
+ readonly pages: import("@angular/core").Signal<import("ngx-form-designer").WebsitePage[]>;
7
+ readonly breakpoints: readonly ["xs", "sm", "md", "lg", "xl", "2xl"];
8
+ readonly breakpoint: import("@angular/core").WritableSignal<"xs" | "sm" | "md" | "lg" | "xl" | "2xl">;
9
+ readonly activeDevice: import("@angular/core").Signal<"mobile" | "desktop">;
10
+ private readonly url;
11
+ readonly activePage: import("@angular/core").Signal<import("ngx-form-designer").WebsitePage | null>;
12
+ setBreakpoint(bp: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'): void;
13
+ getPageStyle(schema: {
14
+ ui?: {
15
+ baseStyle?: Record<string, unknown>;
16
+ };
17
+ }): Record<string, any>;
18
+ navigateTo(route: string): void;
19
+ backToEditor(): void;
20
+ private getContainerWidth;
21
+ private extractPath;
22
+ private normalizeRoute;
23
+ static ɵfac: i0.ɵɵFactoryDeclaration<WebsitePreviewShellComponent, never>;
24
+ static ɵcmp: i0.ɵɵComponentDeclaration<WebsitePreviewShellComponent, "app-website-preview-shell", never, {}, {}, never, never, true, never>;
25
+ }
@@ -0,0 +1,78 @@
1
+ import type { FormSchema } from '../form-core/models';
2
+ export interface WebsiteProject {
3
+ id: string;
4
+ name: string;
5
+ pages: WebsitePage[];
6
+ sections?: WebsiteSection[];
7
+ bricks?: WebsiteBrick[];
8
+ themes?: WebsiteTheme[];
9
+ activeThemeId?: string;
10
+ tokens?: WebsiteTokens;
11
+ metadata?: Record<string, unknown>;
12
+ }
13
+ export interface WebsitePage {
14
+ id: string;
15
+ name: string;
16
+ route: string;
17
+ schema: FormSchema;
18
+ }
19
+ export interface WebsiteSection {
20
+ id: string;
21
+ name: string;
22
+ schema: FormSchema;
23
+ }
24
+ export interface WebsiteTokens {
25
+ colors?: Record<string, string>;
26
+ spacing?: Record<string, string>;
27
+ typography?: Record<string, string>;
28
+ radii?: Record<string, string>;
29
+ shadows?: Record<string, string>;
30
+ }
31
+ export interface BrickUiHints {
32
+ title?: string;
33
+ groups?: Array<{
34
+ id: string;
35
+ label: string;
36
+ fields: string[];
37
+ }>;
38
+ order?: string[];
39
+ }
40
+ export interface WebsiteBrick {
41
+ id: string;
42
+ name: string;
43
+ runtime?: 'dom' | 'react';
44
+ templateHtml: string;
45
+ scriptJs?: string;
46
+ reactComponentJs?: string;
47
+ propsSchema?: Record<string, unknown>;
48
+ ui?: BrickUiHints;
49
+ defaultProps?: Record<string, unknown>;
50
+ }
51
+ export interface WebsiteTheme {
52
+ id: string;
53
+ vars: Record<string, string>;
54
+ }
55
+ export declare function createWebsiteProject(opts?: {
56
+ id?: string;
57
+ name?: string;
58
+ pages?: WebsitePage[];
59
+ }): WebsiteProject;
60
+ export declare function createWebsitePage(opts?: {
61
+ id?: string;
62
+ name?: string;
63
+ route?: string;
64
+ schema?: FormSchema;
65
+ }): WebsitePage;
66
+ export declare function createDefaultWebsiteTheme(): WebsiteTheme;
67
+ export declare function createDefaultWebsiteBrick(): WebsiteBrick;
68
+ export declare function createDefaultWebsiteBricks(): WebsiteBrick[];
69
+ export declare function createWebsiteBrick(opts?: {
70
+ id?: string;
71
+ name?: string;
72
+ runtime?: 'dom' | 'react';
73
+ templateHtml?: string;
74
+ scriptJs?: string;
75
+ reactComponentJs?: string;
76
+ propsSchema?: Record<string, unknown>;
77
+ defaultProps?: Record<string, unknown>;
78
+ }): WebsiteBrick;
@@ -0,0 +1,50 @@
1
+ import type { FormSchema } from '../form-core/models';
2
+ import type { WebsitePage, WebsiteProject, WebsiteSection, WebsiteTokens, WebsiteBrick, WebsiteTheme } from './website-project.models';
3
+ import * as i0 from "@angular/core";
4
+ export declare class WebsiteProjectService {
5
+ private static readonly STORAGE_KEY;
6
+ private readonly projectSignal;
7
+ readonly project: import("@angular/core").Signal<WebsiteProject>;
8
+ readonly pages: import("@angular/core").Signal<WebsitePage[]>;
9
+ readonly sections: import("@angular/core").Signal<WebsiteSection[]>;
10
+ readonly bricks: import("@angular/core").Signal<WebsiteBrick[]>;
11
+ readonly themes: import("@angular/core").Signal<WebsiteTheme[]>;
12
+ readonly activeThemeId: import("@angular/core").Signal<string>;
13
+ readonly tokens: import("@angular/core").Signal<WebsiteTokens>;
14
+ readonly activePageId: import("@angular/core").WritableSignal<string>;
15
+ readonly activePage: import("@angular/core").Signal<WebsitePage | null>;
16
+ readonly canRemovePage: import("@angular/core").Signal<boolean>;
17
+ constructor();
18
+ setProject(project: WebsiteProject): void;
19
+ getPageById(id: string): WebsitePage | undefined;
20
+ setActivePage(id: string): void;
21
+ addPage(): WebsitePage;
22
+ removePage(id: string): void;
23
+ renamePage(id: string, name: string): void;
24
+ updateRoute(id: string, route: string): void;
25
+ updateActivePageSchema(schema: FormSchema): void;
26
+ updatePageSchema(id: string, schema: FormSchema): void;
27
+ addSection(section: WebsiteSection): void;
28
+ removeSection(id: string): void;
29
+ updateSection(section: WebsiteSection): void;
30
+ updateTokens(tokens: WebsiteTokens): void;
31
+ addBrick(brick: WebsiteBrick): void;
32
+ updateBrick(brick: WebsiteBrick): void;
33
+ removeBrick(id: string): void;
34
+ setActiveTheme(id: string): void;
35
+ updateTheme(theme: WebsiteTheme): void;
36
+ setThemes(themes: WebsiteTheme[]): void;
37
+ persistNow(): void;
38
+ private normalizeProject;
39
+ private nextPageName;
40
+ private buildRouteFromName;
41
+ private ensureUniqueRoute;
42
+ private normalizeRoute;
43
+ private updateSchemaLinkRoutes;
44
+ private slugify;
45
+ private normalizeSchema;
46
+ private canUseStorage;
47
+ private loadFromStorage;
48
+ static ɵfac: i0.ɵɵFactoryDeclaration<WebsiteProjectService, never>;
49
+ static ɵprov: i0.ɵɵInjectableDeclaration<WebsiteProjectService>;
50
+ }
@@ -0,0 +1,6 @@
1
+ import type { FormSchema } from '../form-core/models';
2
+ import type { DesignerSectionDefinition, DesignerSectionDraft } from '../plugins/section-definition';
3
+ export type WebsiteSectionDefinition = DesignerSectionDefinition;
4
+ export type WebsiteSectionDraft = DesignerSectionDraft;
5
+ export declare const DEFAULT_WEBSITE_SECTIONS: WebsiteSectionDefinition[];
6
+ export declare function appendSectionToSchema(schema: FormSchema, section: WebsiteSectionDefinition): FormSchema;
@@ -0,0 +1,15 @@
1
+ import { FormControl } from '@angular/forms';
2
+ import { FormEngine } from '../../form-core/form-engine';
3
+ import * as i0 from "@angular/core";
4
+ export declare class EmailButtonWidgetComponent {
5
+ config: any;
6
+ engine?: FormEngine;
7
+ control?: FormControl;
8
+ get label(): string;
9
+ get href(): string;
10
+ get variant(): string;
11
+ get buttonWrapperStyles(): Record<string, any>;
12
+ get buttonStyles(): Record<string, any>;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<EmailButtonWidgetComponent, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<EmailButtonWidgetComponent, "app-email-button-widget", never, { "config": { "alias": "config"; "required": true; }; "engine": { "alias": "engine"; "required": false; }; "control": { "alias": "control"; "required": false; }; }, {}, never, never, true, never>;
15
+ }
@@ -0,0 +1,15 @@
1
+ import { FormControl } from '@angular/forms';
2
+ import { FormEngine } from '../../form-core/form-engine';
3
+ import * as i0 from "@angular/core";
4
+ export declare class EmailHeadingWidgetComponent {
5
+ config: any;
6
+ engine?: FormEngine;
7
+ control?: FormControl;
8
+ get text(): string;
9
+ get level(): string;
10
+ get h1Styles(): Record<string, any>;
11
+ get h2Styles(): Record<string, any>;
12
+ get h3Styles(): Record<string, any>;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<EmailHeadingWidgetComponent, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<EmailHeadingWidgetComponent, "app-email-heading-widget", never, { "config": { "alias": "config"; "required": true; }; "engine": { "alias": "engine"; "required": false; }; "control": { "alias": "control"; "required": false; }; }, {}, never, never, true, never>;
15
+ }
@@ -0,0 +1,13 @@
1
+ import { FormControl } from '@angular/forms';
2
+ import { FormEngine } from '../../form-core/form-engine';
3
+ import * as i0 from "@angular/core";
4
+ export declare class EmailTextWidgetComponent {
5
+ config: any;
6
+ engine?: FormEngine;
7
+ control?: FormControl;
8
+ get text(): string;
9
+ get isMuted(): boolean;
10
+ get paragraphStyles(): Record<string, any>;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<EmailTextWidgetComponent, never>;
12
+ static ɵcmp: i0.ɵɵComponentDeclaration<EmailTextWidgetComponent, "app-email-text-widget", never, { "config": { "alias": "config"; "required": true; }; "engine": { "alias": "engine"; "required": false; }; "control": { "alias": "control"; "required": false; }; }, {}, never, never, true, never>;
13
+ }
@@ -0,0 +1,2 @@
1
+ import { WidgetDefinition } from './widget-definition';
2
+ export declare const EMAIL_WIDGETS: WidgetDefinition[];
@@ -0,0 +1,28 @@
1
+ import { OnInit, OnDestroy } from '@angular/core';
2
+ import { FormControl } from '@angular/forms';
3
+ import { FieldSchema } from '../../../form-core/models';
4
+ import { FormEngine } from '../../../form-core/form-engine';
5
+ import * as i0 from "@angular/core";
6
+ export declare class CheckboxWidgetComponent implements OnInit, OnDestroy {
7
+ config: FieldSchema;
8
+ engine?: FormEngine;
9
+ control: FormControl<boolean | null>;
10
+ private readonly destroyRef;
11
+ get fieldId(): string;
12
+ get errorId(): string;
13
+ get helpTextId(): string;
14
+ getAriaDescribedBy(): string;
15
+ ngOnInit(): void;
16
+ ngOnDestroy(): void;
17
+ getWrapperStyles(): Record<string, any>;
18
+ get visible(): boolean;
19
+ get enabled(): boolean;
20
+ get required(): boolean;
21
+ get error(): string | null;
22
+ onFocus(): void;
23
+ onClick(): void;
24
+ onBlur(): void;
25
+ private syncEnabledState;
26
+ static ɵfac: i0.ɵɵFactoryDeclaration<CheckboxWidgetComponent, never>;
27
+ static ɵcmp: i0.ɵɵComponentDeclaration<CheckboxWidgetComponent, "app-checkbox-widget", never, { "config": { "alias": "config"; "required": false; }; "engine": { "alias": "engine"; "required": false; }; "control": { "alias": "control"; "required": false; }; }, {}, never, never, true, never>;
28
+ }
@@ -0,0 +1,40 @@
1
+ import { OnInit, OnChanges, SimpleChanges, OnDestroy } from '@angular/core';
2
+ import { FormControl } from '@angular/forms';
3
+ import { FieldSchema, OptionSchema } from '../../../form-core/models';
4
+ import { FormEngine } from '../../../form-core/form-engine';
5
+ import * as i0 from "@angular/core";
6
+ export declare class CheckboxGroupWidgetComponent implements OnInit, OnChanges, OnDestroy {
7
+ config: FieldSchema;
8
+ engine?: FormEngine;
9
+ control: FormControl<any[] | null>;
10
+ loading: boolean;
11
+ loadError: string | null;
12
+ private requestId;
13
+ private readonly destroyRef;
14
+ private readonly cdr;
15
+ options: OptionSchema[];
16
+ private readonly dataProvider;
17
+ get fieldId(): string;
18
+ getFieldId(index: number): string;
19
+ get labelId(): string;
20
+ get errorId(): string;
21
+ get helpTextId(): string;
22
+ getAriaDescribedBy(): string;
23
+ ngOnInit(): Promise<void>;
24
+ ngOnChanges(changes: SimpleChanges): void;
25
+ ngOnDestroy(): void;
26
+ private getDependencyFieldIds;
27
+ private loadOptions;
28
+ isChecked(value: any): boolean;
29
+ onCheckChange(event: any, value: any): void;
30
+ getWrapperStyles(): Record<string, any>;
31
+ get visible(): boolean;
32
+ get enabled(): boolean;
33
+ get required(): boolean;
34
+ get error(): string | null;
35
+ onFocus(): void;
36
+ onClick(): void;
37
+ onBlur(): void;
38
+ static ɵfac: i0.ɵɵFactoryDeclaration<CheckboxGroupWidgetComponent, never>;
39
+ static ɵcmp: i0.ɵɵComponentDeclaration<CheckboxGroupWidgetComponent, "app-checkbox-group-widget", never, { "config": { "alias": "config"; "required": false; }; "engine": { "alias": "engine"; "required": false; }; "control": { "alias": "control"; "required": false; }; }, {}, never, never, true, never>;
40
+ }
@@ -0,0 +1,45 @@
1
+ import { OnInit, OnChanges, SimpleChanges, OnDestroy } from '@angular/core';
2
+ import { FormControl } from '@angular/forms';
3
+ import { FieldSchema, UploadedFileRef } from '../../../form-core/models';
4
+ import { FormEngine } from '../../../form-core/form-engine';
5
+ import * as i0 from "@angular/core";
6
+ export declare class FileUploadWidgetComponent implements OnInit, OnChanges, OnDestroy {
7
+ readonly config: FieldSchema;
8
+ readonly engine?: FormEngine;
9
+ readonly control: FormControl<any>;
10
+ private readonly fileInput?;
11
+ protected selectedFiles: File[];
12
+ protected uploadedFiles: UploadedFileRef[];
13
+ private engineSub?;
14
+ ngOnInit(): void;
15
+ ngOnChanges(changes: SimpleChanges): void;
16
+ ngOnDestroy(): void;
17
+ protected get fieldId(): string;
18
+ protected get errorId(): string;
19
+ protected get helpTextId(): string;
20
+ protected getAriaDescribedBy(): string;
21
+ protected getWrapperStyles(): Record<string, any>;
22
+ protected get visible(): boolean;
23
+ protected get enabled(): boolean;
24
+ protected get isDisabled(): boolean;
25
+ protected get required(): boolean;
26
+ protected get error(): string | null;
27
+ protected onFileChange(event: Event): void;
28
+ protected clearSelection(): void;
29
+ protected onFocus(): void;
30
+ protected onClick(): void;
31
+ protected onBlur(): void;
32
+ protected formatFileSize(size: number): string;
33
+ protected formatUploadedSize(size: number | undefined): string;
34
+ private bindEngineChanges;
35
+ private unbindEngineChanges;
36
+ private syncFromEngineValue;
37
+ private extractFiles;
38
+ private normalizeUploadedRefs;
39
+ private isFile;
40
+ private isUploadedRef;
41
+ private getUploadedValue;
42
+ private updateValue;
43
+ static ɵfac: i0.ɵɵFactoryDeclaration<FileUploadWidgetComponent, never>;
44
+ static ɵcmp: i0.ɵɵComponentDeclaration<FileUploadWidgetComponent, "app-file-upload-widget", never, { "config": { "alias": "config"; "required": false; }; "engine": { "alias": "engine"; "required": false; }; "control": { "alias": "control"; "required": false; }; }, {}, never, never, true, never>;
45
+ }
@@ -0,0 +1,39 @@
1
+ import { OnInit, OnChanges, SimpleChanges, OnDestroy } from '@angular/core';
2
+ import { FormControl } from '@angular/forms';
3
+ import { FieldSchema, OptionSchema } from '../../../form-core/models';
4
+ import { FormEngine } from '../../../form-core/form-engine';
5
+ import * as i0 from "@angular/core";
6
+ export declare class RadioWidgetComponent implements OnInit, OnChanges, OnDestroy {
7
+ config: FieldSchema;
8
+ engine?: FormEngine;
9
+ control: FormControl<any>;
10
+ loading: boolean;
11
+ loadError: string | null;
12
+ private requestId;
13
+ private readonly destroyRef;
14
+ private readonly cdr;
15
+ options: OptionSchema[];
16
+ private readonly dataProvider;
17
+ get fieldId(): string;
18
+ getFieldId(index: number): string;
19
+ get labelId(): string;
20
+ get errorId(): string;
21
+ get helpTextId(): string;
22
+ getAriaDescribedBy(): string;
23
+ ngOnInit(): Promise<void>;
24
+ ngOnChanges(changes: SimpleChanges): void;
25
+ ngOnDestroy(): void;
26
+ private getDependencyFieldIds;
27
+ private loadOptions;
28
+ getWrapperStyles(): Record<string, any>;
29
+ get visible(): boolean;
30
+ get enabled(): boolean;
31
+ get required(): boolean;
32
+ get error(): string | null;
33
+ onFocus(): void;
34
+ onClick(): void;
35
+ onBlur(): void;
36
+ private syncEnabledState;
37
+ static ɵfac: i0.ɵɵFactoryDeclaration<RadioWidgetComponent, never>;
38
+ static ɵcmp: i0.ɵɵComponentDeclaration<RadioWidgetComponent, "app-radio-widget", never, { "config": { "alias": "config"; "required": false; }; "engine": { "alias": "engine"; "required": false; }; "control": { "alias": "control"; "required": false; }; }, {}, never, never, true, never>;
39
+ }
@@ -0,0 +1,69 @@
1
+ import { OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
2
+ import { FormControl } from '@angular/forms';
3
+ import { Subscription } from 'rxjs';
4
+ import { FormEngine } from '../../../form-core/form-engine';
5
+ import { FieldSchema, FormSchema } from '../../../form-core/models';
6
+ import * as i0 from "@angular/core";
7
+ type RepeatableRowState = {
8
+ id: string;
9
+ engine: FormEngine;
10
+ valueSub: Subscription;
11
+ };
12
+ export declare class RepeatableGroupWidgetComponent implements OnInit, OnChanges, OnDestroy {
13
+ config: FieldSchema;
14
+ engine?: FormEngine;
15
+ control: FormControl<any>;
16
+ scopePath: string[];
17
+ rowStates: RepeatableRowState[];
18
+ itemSchema: FormSchema;
19
+ designPreviewEngine?: FormEngine;
20
+ private parentValueSub?;
21
+ private parentSubmitSub?;
22
+ private rowIdCounter;
23
+ private isWritingToParent;
24
+ private lastCommittedRowsRef;
25
+ private readonly editorContext;
26
+ private readonly designerState;
27
+ get groupId(): string;
28
+ get isDesignMode(): boolean;
29
+ get isSelected(): boolean;
30
+ get nestedScopePath(): string[];
31
+ get addButtonLabel(): string;
32
+ get removeButtonLabel(): string;
33
+ get itemLabel(): string;
34
+ get minItems(): number;
35
+ get maxItems(): number;
36
+ get canAddItem(): boolean;
37
+ get canRemoveItem(): boolean;
38
+ ngOnInit(): void;
39
+ ngOnChanges(changes: SimpleChanges): void;
40
+ ngOnDestroy(): void;
41
+ addItem(): void;
42
+ removeItem(index: number): void;
43
+ trackByRowId(index: number, row: RepeatableRowState): string;
44
+ getWrapperStyles(): Record<string, any>;
45
+ get visible(): boolean;
46
+ get enabled(): boolean;
47
+ get required(): boolean;
48
+ onNestedNodeSelect(nodeId: string): void;
49
+ private initialize;
50
+ private bindParentSubscriptions;
51
+ private disposeParentSubscriptions;
52
+ private rebuildRows;
53
+ private createRowState;
54
+ private disposeRowStates;
55
+ private commitRowsToParent;
56
+ private readRowsFromParent;
57
+ private normalizeRows;
58
+ private normalizeRow;
59
+ private applyBounds;
60
+ private createDefaultRow;
61
+ private resolveItemSchema;
62
+ private isSchemaLike;
63
+ private isSameLength;
64
+ private cloneValue;
65
+ private buildDesignPreviewEngine;
66
+ static ɵfac: i0.ɵɵFactoryDeclaration<RepeatableGroupWidgetComponent, never>;
67
+ static ɵcmp: i0.ɵɵComponentDeclaration<RepeatableGroupWidgetComponent, "app-repeatable-group-widget", never, { "config": { "alias": "config"; "required": false; }; "engine": { "alias": "engine"; "required": false; }; "control": { "alias": "control"; "required": false; }; "scopePath": { "alias": "scopePath"; "required": false; }; }, {}, never, never, true, never>;
68
+ }
69
+ export {};
@@ -0,0 +1,17 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class RichTextWidgetComponent {
3
+ private readonly editor;
4
+ config: any;
5
+ engine?: any;
6
+ control?: any;
7
+ isDesignMode(): boolean;
8
+ isEditing(): boolean;
9
+ contentHtml(): string;
10
+ editorStyles(): Record<string, string | number>;
11
+ onHtmlChange(html: string): void;
12
+ private orderedListStyle;
13
+ private mapVerticalAlign;
14
+ private normalizeHtml;
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<RichTextWidgetComponent, never>;
16
+ static ɵcmp: i0.ɵɵComponentDeclaration<RichTextWidgetComponent, "app-rich-text-widget", never, { "config": { "alias": "config"; "required": false; }; "engine": { "alias": "engine"; "required": false; }; "control": { "alias": "control"; "required": false; }; }, {}, never, never, true, never>;
17
+ }
@@ -0,0 +1,56 @@
1
+ import { OnDestroy, OnInit } from '@angular/core';
2
+ import { FormControl } from '@angular/forms';
3
+ import { FieldSchema, OptionSchema } from '../../../form-core/models';
4
+ import { FormEngine } from '../../../form-core/form-engine';
5
+ import * as i0 from "@angular/core";
6
+ export declare class SearchWidgetComponent implements OnInit, OnDestroy {
7
+ config: FieldSchema;
8
+ engine?: FormEngine;
9
+ control: FormControl<any>;
10
+ readonly queryControl: FormControl<string | null>;
11
+ options: OptionSchema[];
12
+ loading: boolean;
13
+ loadError: string | null;
14
+ activeOptionIndex: number;
15
+ private readonly destroyRef;
16
+ private readonly cdr;
17
+ private readonly dataProvider;
18
+ private readonly runtimeFieldDataAccessRegistry;
19
+ private requestId;
20
+ private syncingFromQuery;
21
+ private selectingOption;
22
+ private focused;
23
+ private blurCloseTimeout;
24
+ get fieldId(): string;
25
+ get resultsId(): string;
26
+ get errorId(): string;
27
+ get helpTextId(): string;
28
+ get showResultsPanel(): boolean;
29
+ get visible(): boolean;
30
+ get enabled(): boolean;
31
+ get required(): boolean;
32
+ get error(): string | null;
33
+ ngOnInit(): void;
34
+ ngOnDestroy(): void;
35
+ getAriaDescribedBy(): string;
36
+ onFocus(): void;
37
+ onClick(): void;
38
+ onBlur(): void;
39
+ onOptionMouseDown(event: MouseEvent, option: OptionSchema): void;
40
+ onKeydown(event: KeyboardEvent): void;
41
+ selectOption(option: OptionSchema): void;
42
+ getWrapperStyles(): Record<string, any>;
43
+ private syncEnabledState;
44
+ private refreshForCurrentQuery;
45
+ private handleQueryChange;
46
+ private loadOptions;
47
+ private normalizeOptions;
48
+ private shouldQuery;
49
+ private getMinChars;
50
+ private getDebounceMs;
51
+ private getResultLimit;
52
+ private toSafeNonNegativeInt;
53
+ private asQueryString;
54
+ static ɵfac: i0.ɵɵFactoryDeclaration<SearchWidgetComponent, never>;
55
+ static ɵcmp: i0.ɵɵComponentDeclaration<SearchWidgetComponent, "app-search-widget", never, { "config": { "alias": "config"; "required": false; }; "engine": { "alias": "engine"; "required": false; }; "control": { "alias": "control"; "required": false; }; }, {}, never, never, true, never>;
56
+ }