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,32 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { DataSourceDefinition } from '../data/data-catalog';
3
+ import { UploadSourceType } from '../data/data-source-client';
4
+ import * as i0 from "@angular/core";
5
+ export declare class GlobalDataManagerComponent {
6
+ close: EventEmitter<void>;
7
+ private client;
8
+ sources: DataSourceDefinition[];
9
+ newId: string;
10
+ newLabel: string;
11
+ newType: UploadSourceType;
12
+ newRawData: string;
13
+ parsedColumns: {
14
+ name: string;
15
+ type: string;
16
+ }[];
17
+ parsedCount: number;
18
+ error: string;
19
+ listError: string;
20
+ isSaving: boolean;
21
+ constructor();
22
+ get canDelete(): boolean;
23
+ refreshList(): Promise<void>;
24
+ onFileSelected(event: Event): void;
25
+ onLabelBlur(): void;
26
+ refreshPreview(): void;
27
+ createDataset(): Promise<void>;
28
+ remove(id: string): Promise<void>;
29
+ objectKeys(obj: any): string[];
30
+ static ɵfac: i0.ɵɵFactoryDeclaration<GlobalDataManagerComponent, never>;
31
+ static ɵcmp: i0.ɵɵComponentDeclaration<GlobalDataManagerComponent, "app-global-data-manager", never, {}, { "close": "close"; }, never, never, true, never>;
32
+ }
@@ -0,0 +1,17 @@
1
+ import { StyleTokenSet } from '../../form-core/models';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Light theme Advanced/Custom Properties section.
5
+ */
6
+ export declare class InspectorAdvancedSectionComponent {
7
+ readonly style: import("@angular/core").InputSignal<Partial<StyleTokenSet>>;
8
+ readonly styleChange: import("@angular/core").OutputEmitterRef<Partial<StyleTokenSet>>;
9
+ hasCustomProperties(): boolean;
10
+ getCustomProperties(): Array<{
11
+ key: string;
12
+ value: string;
13
+ }>;
14
+ updateStyle(key: string, value: any): void;
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<InspectorAdvancedSectionComponent, never>;
16
+ static ɵcmp: i0.ɵɵComponentDeclaration<InspectorAdvancedSectionComponent, "inspector-advanced-section", never, { "style": { "alias": "style"; "required": false; "isSignal": true; }; }, { "styleChange": "styleChange"; }, never, never, true, never>;
17
+ }
@@ -0,0 +1,14 @@
1
+ import { StyleTokenSet } from '../../form-core/models';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Light theme Backgrounds section.
5
+ */
6
+ export declare class InspectorBackgroundsSectionComponent {
7
+ readonly style: import("@angular/core").InputSignal<Partial<StyleTokenSet>>;
8
+ readonly styleChange: import("@angular/core").OutputEmitterRef<Partial<StyleTokenSet>>;
9
+ showImageUrl: boolean;
10
+ getBackgroundPreview(): string;
11
+ updateStyle(key: string, value: any): void;
12
+ static ɵfac: i0.ɵɵFactoryDeclaration<InspectorBackgroundsSectionComponent, never>;
13
+ static ɵcmp: i0.ɵɵComponentDeclaration<InspectorBackgroundsSectionComponent, "inspector-backgrounds-section", never, { "style": { "alias": "style"; "required": false; "isSignal": true; }; }, { "styleChange": "styleChange"; }, never, never, true, never>;
14
+ }
@@ -0,0 +1,45 @@
1
+ import { StyleTokenSet } from '../../form-core/models';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Light theme Borders section.
5
+ */
6
+ export declare class InspectorBordersSectionComponent {
7
+ readonly style: import("@angular/core").InputSignal<Partial<StyleTokenSet>>;
8
+ readonly styleChange: import("@angular/core").OutputEmitterRef<Partial<StyleTokenSet>>;
9
+ selectedCorner: import("@angular/core").WritableSignal<"br" | "tr" | "all" | "tl" | "bl">;
10
+ selectedSide: import("@angular/core").WritableSignal<"left" | "right" | "top" | "bottom" | "all">;
11
+ readonly radiusCorners: ({
12
+ corner: "all";
13
+ label: string;
14
+ icon: string;
15
+ } | {
16
+ corner: "tl";
17
+ label: string;
18
+ icon: string;
19
+ } | {
20
+ corner: "tr";
21
+ label: string;
22
+ icon: string;
23
+ } | {
24
+ corner: "bl";
25
+ label: string;
26
+ icon: string;
27
+ } | {
28
+ corner: "br";
29
+ label: string;
30
+ icon: string;
31
+ })[];
32
+ readonly borderStyles: {
33
+ value: string;
34
+ icon: string;
35
+ }[];
36
+ selectCorner(corner: 'all' | 'tl' | 'tr' | 'br' | 'bl'): void;
37
+ selectSide(side: 'all' | 'top' | 'right' | 'bottom' | 'left'): void;
38
+ getRadiusValue(): string;
39
+ setRadiusValue(value: string): void;
40
+ parseValue(val: string | number | undefined): number;
41
+ getColorName(color: string | undefined): string;
42
+ updateStyle(key: string, value: any): void;
43
+ static ɵfac: i0.ɵɵFactoryDeclaration<InspectorBordersSectionComponent, never>;
44
+ static ɵcmp: i0.ɵɵComponentDeclaration<InspectorBordersSectionComponent, "inspector-borders-section", never, { "style": { "alias": "style"; "required": false; "isSignal": true; }; }, { "styleChange": "styleChange"; }, never, never, true, never>;
45
+ }
@@ -0,0 +1,22 @@
1
+ import { StyleTokenSet } from '../../form-core/models';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Light theme Effects section.
5
+ */
6
+ export declare class InspectorEffectsSectionComponent {
7
+ readonly style: import("@angular/core").InputSignal<Partial<StyleTokenSet>>;
8
+ readonly styleChange: import("@angular/core").OutputEmitterRef<Partial<StyleTokenSet>>;
9
+ readonly outlineOptions: {
10
+ value: string;
11
+ icon: string;
12
+ }[];
13
+ readonly effectItems: {
14
+ label: string;
15
+ hasMore: boolean;
16
+ }[];
17
+ parseOpacity(): number;
18
+ setOpacity(val: number): void;
19
+ updateStyle(key: string, value: any): void;
20
+ static ɵfac: i0.ɵɵFactoryDeclaration<InspectorEffectsSectionComponent, never>;
21
+ static ɵcmp: i0.ɵɵComponentDeclaration<InspectorEffectsSectionComponent, "inspector-effects-section", never, { "style": { "alias": "style"; "required": false; "isSignal": true; }; }, { "styleChange": "styleChange"; }, never, never, true, never>;
22
+ }
@@ -0,0 +1,33 @@
1
+ import { StyleTokenSet } from '../../form-core/models';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Light theme Layout section with segmented controls.
5
+ */
6
+ export declare class InspectorLayoutSectionComponent {
7
+ readonly style: import("@angular/core").InputSignal<Partial<StyleTokenSet>>;
8
+ readonly styleChange: import("@angular/core").OutputEmitterRef<Partial<StyleTokenSet>>;
9
+ showMoreAlign: import("@angular/core").WritableSignal<boolean>;
10
+ readonly displayOptions: {
11
+ value: string;
12
+ label: string;
13
+ }[];
14
+ readonly flexDirections: {
15
+ value: string;
16
+ label: string;
17
+ icon: string;
18
+ }[];
19
+ readonly alignmentGrid: {
20
+ id: string;
21
+ align: string;
22
+ justify: string;
23
+ }[];
24
+ currentDisplay: import("@angular/core").Signal<{}>;
25
+ setDisplay(value: string): void;
26
+ setAlignment(align: string, justify: string): void;
27
+ isAlignmentActive(align: string, justify: string): boolean;
28
+ toggleWrap(): void;
29
+ parseValue(val: string | number | undefined): number;
30
+ updateStyle(key: string, value: any): void;
31
+ static ɵfac: i0.ɵɵFactoryDeclaration<InspectorLayoutSectionComponent, never>;
32
+ static ɵcmp: i0.ɵɵComponentDeclaration<InspectorLayoutSectionComponent, "inspector-layout-section", never, { "style": { "alias": "style"; "required": false; "isSignal": true; }; }, { "styleChange": "styleChange"; }, never, never, true, never>;
33
+ }
@@ -0,0 +1,28 @@
1
+ import { StyleTokenSet } from '../../form-core/models';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Light theme Position section.
5
+ */
6
+ export declare class InspectorPositionSectionComponent {
7
+ readonly style: import("@angular/core").InputSignal<Partial<StyleTokenSet>>;
8
+ readonly styleChange: import("@angular/core").OutputEmitterRef<Partial<StyleTokenSet>>;
9
+ showPositionDropdown: import("@angular/core").WritableSignal<boolean>;
10
+ showFloatClear: import("@angular/core").WritableSignal<boolean>;
11
+ readonly positionOptions: {
12
+ value: string;
13
+ label: string;
14
+ icon: string;
15
+ }[];
16
+ readonly floatOptions: {
17
+ value: string;
18
+ label: string;
19
+ }[];
20
+ readonly clearOptions: {
21
+ value: string;
22
+ label: string;
23
+ }[];
24
+ setPosition(value: string): void;
25
+ updateStyle(key: string, value: any): void;
26
+ static ɵfac: i0.ɵɵFactoryDeclaration<InspectorPositionSectionComponent, never>;
27
+ static ɵcmp: i0.ɵɵComponentDeclaration<InspectorPositionSectionComponent, "inspector-position-section", never, { "style": { "alias": "style"; "required": false; "isSignal": true; }; }, { "styleChange": "styleChange"; }, never, never, true, never>;
28
+ }
@@ -0,0 +1,12 @@
1
+ import { StyleTokenSet } from '../../form-core/models';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Light theme Size section with grid layout.
5
+ */
6
+ export declare class InspectorSizeSectionComponent {
7
+ readonly style: import("@angular/core").InputSignal<Partial<StyleTokenSet>>;
8
+ readonly styleChange: import("@angular/core").OutputEmitterRef<Partial<StyleTokenSet>>;
9
+ updateStyle(key: string, value: any): void;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<InspectorSizeSectionComponent, never>;
11
+ static ɵcmp: i0.ɵɵComponentDeclaration<InspectorSizeSectionComponent, "inspector-size-section", never, { "style": { "alias": "style"; "required": false; "isSignal": true; }; }, { "styleChange": "styleChange"; }, never, never, true, never>;
12
+ }
@@ -0,0 +1,13 @@
1
+ import { StyleTokenSet } from '../../form-core/models';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Light theme Spacing section with visual box model.
5
+ */
6
+ export declare class InspectorSpacingSectionComponent {
7
+ readonly style: import("@angular/core").InputSignal<Partial<StyleTokenSet>>;
8
+ readonly styleChange: import("@angular/core").OutputEmitterRef<Partial<StyleTokenSet>>;
9
+ updateStyle(key: string, value: any): void;
10
+ setAutoMargin(key: 'marginLeft' | 'marginRight'): void;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<InspectorSpacingSectionComponent, never>;
12
+ static ɵcmp: i0.ɵɵComponentDeclaration<InspectorSpacingSectionComponent, "inspector-spacing-section", never, { "style": { "alias": "style"; "required": false; "isSignal": true; }; }, { "styleChange": "styleChange"; }, never, never, true, never>;
13
+ }
@@ -0,0 +1,31 @@
1
+ import { StyleTokenSet } from '../../form-core/models';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Light theme Typography section.
5
+ */
6
+ export declare class InspectorTypographySectionComponent {
7
+ readonly style: import("@angular/core").InputSignal<Partial<StyleTokenSet>>;
8
+ readonly styleChange: import("@angular/core").OutputEmitterRef<Partial<StyleTokenSet>>;
9
+ readonly fontFamilyOptions: {
10
+ label: string;
11
+ value: string;
12
+ }[];
13
+ readonly alignOptions: {
14
+ value: string;
15
+ icon: string;
16
+ }[];
17
+ readonly verticalAlignOptions: {
18
+ value: string;
19
+ label: string;
20
+ }[];
21
+ setFontFamily(fontFamily: string): void;
22
+ toggleBold(): void;
23
+ toggleItalic(): void;
24
+ toggleUnderline(): void;
25
+ isBoldActive(): boolean;
26
+ isItalicActive(): boolean;
27
+ isUnderlineActive(): boolean;
28
+ updateStyle(key: string, value: any): void;
29
+ static ɵfac: i0.ɵɵFactoryDeclaration<InspectorTypographySectionComponent, never>;
30
+ static ɵcmp: i0.ɵɵComponentDeclaration<InspectorTypographySectionComponent, "inspector-typography-section", never, { "style": { "alias": "style"; "required": false; "isSignal": true; }; }, { "styleChange": "styleChange"; }, never, never, true, never>;
31
+ }
@@ -0,0 +1,17 @@
1
+ import { OnInit, OnChanges, SimpleChanges } from '@angular/core';
2
+ import { DesignerStateService } from './designer-state.service';
3
+ import { DesignerEventApiDefinition, DesignerFlavor, WidgetEventApiExecutor } from '../form-core/models';
4
+ import * as i0 from "@angular/core";
5
+ type DesignerMode = 'edit' | 'view';
6
+ export declare class JsonFormDesignerComponent implements OnInit, OnChanges {
7
+ flavor: DesignerFlavor;
8
+ mode: DesignerMode;
9
+ eventApis: DesignerEventApiDefinition[];
10
+ eventApiExecutor?: WidgetEventApiExecutor;
11
+ state: DesignerStateService;
12
+ ngOnInit(): void;
13
+ ngOnChanges(changes: SimpleChanges): void;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<JsonFormDesignerComponent, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<JsonFormDesignerComponent, "app-json-form-designer", never, { "flavor": { "alias": "flavor"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "eventApis": { "alias": "eventApis"; "required": false; }; "eventApiExecutor": { "alias": "eventApiExecutor"; "required": false; }; }, {}, never, never, true, never>;
16
+ }
17
+ export {};
@@ -0,0 +1,24 @@
1
+ import { FormSchema, LayoutNode } from '../../form-core/models';
2
+ import { DesignerStateService } from '../designer-state.service';
3
+ import * as i0 from "@angular/core";
4
+ export declare class LayerTreeNodeComponent {
5
+ private designerState;
6
+ node: LayoutNode;
7
+ schema: FormSchema;
8
+ constructor(designerState: DesignerStateService);
9
+ get isSelected(): boolean;
10
+ selectNode(e: Event): void;
11
+ getIcon(): string;
12
+ getLabel(): string;
13
+ hasChildren(): boolean;
14
+ getChildren(): LayoutNode[];
15
+ shrinkId(id: string): string;
16
+ static ɵfac: i0.ɵɵFactoryDeclaration<LayerTreeNodeComponent, never>;
17
+ static ɵcmp: i0.ɵɵComponentDeclaration<LayerTreeNodeComponent, "app-layer-tree-node", never, { "node": { "alias": "node"; "required": false; }; "schema": { "alias": "schema"; "required": false; }; }, {}, never, never, true, never>;
18
+ }
19
+ export declare class LayerTreeComponent {
20
+ schema: FormSchema;
21
+ getRootNodes(): LayoutNode[];
22
+ static ɵfac: i0.ɵɵFactoryDeclaration<LayerTreeComponent, never>;
23
+ static ɵcmp: i0.ɵɵComponentDeclaration<LayerTreeComponent, "app-layer-tree", never, { "schema": { "alias": "schema"; "required": false; }; }, {}, never, never, true, never>;
24
+ }
@@ -0,0 +1,69 @@
1
+ import { AfterViewInit, ElementRef } from '@angular/core';
2
+ import { DesignerStateService } from './designer-state.service';
3
+ import * as i0 from "@angular/core";
4
+ export declare class LayoutCanvasComponent implements AfterViewInit {
5
+ state: DesignerStateService;
6
+ private readonly destroyRef;
7
+ readonly previewMode: import("@angular/core").InputSignal<"overlay" | "route">;
8
+ readonly previewRequested: import("@angular/core").OutputEmitterRef<void>;
9
+ fileInput: ElementRef<HTMLInputElement>;
10
+ root: ElementRef<HTMLDivElement>;
11
+ scrollContainer: ElementRef<HTMLDivElement>;
12
+ pageWrapper: ElementRef<HTMLDivElement>;
13
+ breakpoints: readonly ["xs", "sm", "md", "lg", "xl", "2xl"];
14
+ constructor(state: DesignerStateService);
15
+ get schema(): import("@angular/core").WritableSignal<import("ngx-form-designer").FormSchema>;
16
+ get device(): "mobile" | "desktop";
17
+ get breakpoint(): "xs" | "sm" | "md" | "lg" | "xl" | "2xl";
18
+ readonly zoom: import("@angular/core").WritableSignal<number>;
19
+ private readonly pageBaseSize;
20
+ private readonly minZoom;
21
+ private readonly maxZoom;
22
+ private wheelListener?;
23
+ private pendingScrollAdjust;
24
+ private resizeObserver?;
25
+ readonly isWebFlavor: import("@angular/core").Signal<boolean>;
26
+ ngAfterViewInit(): void;
27
+ onEscape(): void;
28
+ onKeyDown(event: KeyboardEvent): void;
29
+ deselect(): void;
30
+ closeContextMenu(): void;
31
+ groupSelected(): void;
32
+ ungroupSelected(): void;
33
+ onCanvasContextMenu(event: MouseEvent): void;
34
+ cut(): void;
35
+ copy(): void;
36
+ paste(): void;
37
+ deleteSelected(): void;
38
+ setBreakpoint(bp: any): void;
39
+ preview(): void;
40
+ getCanvasWidth(): "100%" | "375px" | "576px" | "768px" | "992px" | "1200px" | "1400px";
41
+ getCanvasHeight(): "667px" | "800px";
42
+ getPageStyle(): Record<string, any>;
43
+ pageTransform(): string;
44
+ zoomLabel(): string;
45
+ scaledPageWidth(): number;
46
+ scaledPageHeight(): number;
47
+ zoomIn(): void;
48
+ zoomOut(): void;
49
+ resetZoom(): void;
50
+ private clampZoom;
51
+ private updatePageBaseSize;
52
+ private isEditableTarget;
53
+ private getViewportCenter;
54
+ private setZoom;
55
+ private captureAnchor;
56
+ private restoreAnchor;
57
+ private getRenderedScale;
58
+ exportJson(): void;
59
+ importJson(): void;
60
+ onFileSelected(event: Event): void;
61
+ getNodePath(): {
62
+ id: string;
63
+ label: string;
64
+ type: string;
65
+ }[];
66
+ selectCrumb(nodeId: string): void;
67
+ static ɵfac: i0.ɵɵFactoryDeclaration<LayoutCanvasComponent, never>;
68
+ static ɵcmp: i0.ɵɵComponentDeclaration<LayoutCanvasComponent, "app-layout-canvas", never, { "previewMode": { "alias": "previewMode"; "required": false; "isSignal": true; }; }, { "previewRequested": "previewRequested"; }, never, never, true, never>;
69
+ }
@@ -0,0 +1,2 @@
1
+ import type { StyleTokenSet } from '../form-core/models';
2
+ export declare const DEFAULT_PAGE_STYLE: StyleTokenSet;
@@ -0,0 +1,65 @@
1
+ import { Injector, ViewContainerRef } from '@angular/core';
2
+ import { DesignerStateService } from './designer-state.service';
3
+ import { WidgetDefinition, DataBindingContract } from '../widgets/widget-definition';
4
+ import { WidgetNode, FieldSchema, FormRule, StyleTokenSet } from '../form-core/models';
5
+ import * as i0 from "@angular/core";
6
+ export declare class PropertiesPanelComponent {
7
+ state: DesignerStateService;
8
+ private injector;
9
+ inspectorContainer: ViewContainerRef;
10
+ private widgetDefs;
11
+ constructor(state: DesignerStateService, _widgetDefs: WidgetDefinition[][], injector: Injector);
12
+ updateInspectorSettings(values: Record<string, any>): void;
13
+ updateInspectorStyle(values: Partial<StyleTokenSet>): void;
14
+ getWidgetLabel(node: any): string;
15
+ /**
16
+ * Accesses the style object of the LayoutNode itself.
17
+ * This affects the CONTAINER of the row/column/widget in the grid system.
18
+ * For widgets, this controls outer dimensions/positioning (flex item props).
19
+ */
20
+ nodeStyle(node: any): any;
21
+ colResponsive(node: any): any;
22
+ /**
23
+ * Targeted style update - only updates the specific node in the tree.
24
+ * Preserves object references for unchanged nodes to avoid re-renders.
25
+ */
26
+ onStyleChange(nodeId: string, key: string, value: any): void;
27
+ /**
28
+ * Handle style changes from the widget inspector.
29
+ * Widget style tab always edits FieldSchema.style.
30
+ */
31
+ onWidgetInspectorStyleChange(style: Partial<StyleTokenSet>): void;
32
+ /**
33
+ * Targeted responsive update - only updates the specific node in the tree.
34
+ */
35
+ onResponsiveChange(nodeId: string, breakpoint: string, value: any): void;
36
+ /**
37
+ * Legacy method for backward compatibility with dynamic properties.
38
+ * TODO: Migrate dynamic properties to use targeted updates.
39
+ */
40
+ refreshSchema(): void;
41
+ get pageStyle(): StyleTokenSet;
42
+ updatePageBoxModel(values: Partial<StyleTokenSet>): void;
43
+ updatePageStyleValue(key: keyof StyleTokenSet, value: any): void;
44
+ private updatePageStyle;
45
+ hasDynamicProperties(node: WidgetNode): boolean;
46
+ hasDynamicDataProperties(node: WidgetNode): boolean;
47
+ renderInspector(node: WidgetNode): void;
48
+ isBrickWidget(node: WidgetNode): boolean;
49
+ duplicateField(): void;
50
+ /**
51
+ * Resolve a widget definition for the current field, preferring widgetId when present,
52
+ * otherwise falling back to kind/type for backward compatibility.
53
+ */
54
+ private findDefinition;
55
+ deleteField(): void;
56
+ updateRules(rules: FormRule[]): void;
57
+ updateFieldConfig(field: FieldSchema): void;
58
+ getDataConsumer(node: WidgetNode): any;
59
+ getDataBinding(node: WidgetNode): DataBindingContract | null;
60
+ applyPreset(rowId: string, preset: number): void;
61
+ addColumn(rowId: string): void;
62
+ removeColumn(colId: string): void;
63
+ static ɵfac: i0.ɵɵFactoryDeclaration<PropertiesPanelComponent, never>;
64
+ static ɵcmp: i0.ɵɵComponentDeclaration<PropertiesPanelComponent, "app-properties-panel", never, {}, {}, never, never, true, never>;
65
+ }
@@ -0,0 +1,23 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { LogicGroup, LogicCondition } from '../../../form-core/models';
3
+ import * as i0 from "@angular/core";
4
+ export declare class QueryBuilderComponent {
5
+ group: LogicGroup;
6
+ allFields: any[];
7
+ level: number;
8
+ groupChange: EventEmitter<LogicGroup>;
9
+ remove: EventEmitter<void>;
10
+ isCondition(item: any): boolean;
11
+ getAsCondition(item: any): LogicCondition;
12
+ getAsGroup(item: any): LogicGroup;
13
+ setOperator(op: 'AND' | 'OR'): void;
14
+ addCondition(): void;
15
+ addGroup(): void;
16
+ removeItem(index: number): void;
17
+ removeSelf(): void;
18
+ updateCondition(index: number, field: string, value: any): void;
19
+ onChildGroupChange(): void;
20
+ emitChange(): void;
21
+ static ɵfac: i0.ɵɵFactoryDeclaration<QueryBuilderComponent, never>;
22
+ static ɵcmp: i0.ɵɵComponentDeclaration<QueryBuilderComponent, "app-query-builder", never, { "group": { "alias": "group"; "required": false; }; "allFields": { "alias": "allFields"; "required": false; }; "level": { "alias": "level"; "required": false; }; }, { "groupChange": "groupChange"; "remove": "remove"; }, never, never, true, never>;
23
+ }
@@ -0,0 +1,15 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { FormRule } from '../../../form-core/models';
3
+ import * as i0 from "@angular/core";
4
+ export declare class RulesPanelComponent {
5
+ readOnly: boolean;
6
+ rules: FormRule[];
7
+ allFields: any[];
8
+ rulesChange: EventEmitter<FormRule[]>;
9
+ addRule(): void;
10
+ removeRule(index: number): void;
11
+ onChange(): void;
12
+ getActionColor(action: string): string;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<RulesPanelComponent, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<RulesPanelComponent, "app-rules-panel", never, { "readOnly": { "alias": "readOnly"; "required": false; }; "rules": { "alias": "rules"; "required": false; }; "allFields": { "alias": "allFields"; "required": false; }; }, { "rulesChange": "rulesChange"; }, never, never, true, never>;
15
+ }
@@ -0,0 +1,38 @@
1
+ import { WidgetDefinition, DataBindingContract } from '../../widgets/widget-definition';
2
+ import { FieldSchema, WidgetKind } from '../../form-core/models';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Service responsible for resolving widget definitions.
6
+ * Handles lookup by widgetId (preferred) or by kind/type fallback for backward compatibility.
7
+ */
8
+ export declare class WidgetDefinitionResolverService {
9
+ private readonly widgetDefs;
10
+ constructor(widgetDefs: WidgetDefinition[][]);
11
+ /**
12
+ * Finds a widget definition for the given field and widget kind.
13
+ * Prefers widgetId when present, falls back to kind/type matching.
14
+ *
15
+ * @param field - The field schema to find a definition for
16
+ * @param kind - The widget kind
17
+ * @returns The matching widget definition, or null if not found
18
+ */
19
+ findDefinition(field: FieldSchema, kind: WidgetKind): WidgetDefinition | null;
20
+ /**
21
+ * Gets the data consumer type for a field.
22
+ *
23
+ * @param field - The field schema
24
+ * @param kind - The widget kind
25
+ * @returns The data consumer type, or 'none' if not found
26
+ */
27
+ getDataConsumer(field: FieldSchema, kind: WidgetKind): string;
28
+ /**
29
+ * Gets the data binding contract for a field.
30
+ *
31
+ * @param field - The field schema
32
+ * @param kind - The widget kind
33
+ * @returns The data binding contract, or null if not found
34
+ */
35
+ getDataBinding(field: FieldSchema, kind: WidgetKind): DataBindingContract | null;
36
+ static ɵfac: i0.ɵɵFactoryDeclaration<WidgetDefinitionResolverService, never>;
37
+ static ɵprov: i0.ɵɵInjectableDeclaration<WidgetDefinitionResolverService>;
38
+ }
@@ -0,0 +1,9 @@
1
+ import { FormSchema } from '../form-core/models';
2
+ export interface DesignerTemplateDefinition {
3
+ id: string;
4
+ name: string;
5
+ description: string;
6
+ tags: readonly string[];
7
+ schema: FormSchema;
8
+ }
9
+ export declare const DEFAULT_TEMPLATE_LIBRARY: DesignerTemplateDefinition[];
@@ -0,0 +1,30 @@
1
+ import { WidgetNode, FieldSchema, StyleTokenSet, FormRule } from '../form-core/models';
2
+ import { DesignerStateService } from './designer-state.service';
3
+ import * as i0 from "@angular/core";
4
+ export declare class WidgetInspectorComponent {
5
+ readonly node: import("@angular/core").InputSignal<WidgetNode>;
6
+ readonly field: import("@angular/core").InputSignal<FieldSchema>;
7
+ readonly readOnly: import("@angular/core").InputSignal<boolean>;
8
+ readonly fieldChange: import("@angular/core").OutputEmitterRef<FieldSchema>;
9
+ readonly styleChange: import("@angular/core").OutputEmitterRef<Partial<StyleTokenSet>>;
10
+ readonly rulesChange: import("@angular/core").OutputEmitterRef<FormRule[]>;
11
+ readonly duplicate: import("@angular/core").OutputEmitterRef<void>;
12
+ readonly delete: import("@angular/core").OutputEmitterRef<void>;
13
+ protected readonly stateService: DesignerStateService;
14
+ private readonly widgetResolver;
15
+ readonly tabs: string[];
16
+ activeTab: import("@angular/core").WritableSignal<string>;
17
+ private readonly readOnlyFieldSnapshot;
18
+ readonly inspectorField: import("@angular/core").Signal<FieldSchema>;
19
+ currentStyle: import("@angular/core").Signal<Partial<StyleTokenSet>>;
20
+ dataConsumer: import("@angular/core").Signal<"image" | "none" | "value" | "list">;
21
+ bindingShape: import("@angular/core").Signal<import("ngx-form-designer").DataShape | null>;
22
+ getWidgetIcon(): string;
23
+ onStyleChange(style: Partial<StyleTokenSet>): void;
24
+ onFieldConfigChange(field: FieldSchema): void;
25
+ onRulesConfigChange(rules: FormRule[]): void;
26
+ constructor();
27
+ private cloneField;
28
+ static ɵfac: i0.ɵɵFactoryDeclaration<WidgetInspectorComponent, never>;
29
+ static ɵcmp: i0.ɵɵComponentDeclaration<WidgetInspectorComponent, "widget-inspector", never, { "node": { "alias": "node"; "required": true; "isSignal": true; }; "field": { "alias": "field"; "required": true; "isSignal": true; }; "readOnly": { "alias": "readOnly"; "required": false; "isSignal": true; }; }, { "fieldChange": "fieldChange"; "styleChange": "styleChange"; "rulesChange": "rulesChange"; "duplicate": "duplicate"; "delete": "delete"; }, never, never, true, never>;
30
+ }
@@ -0,0 +1,56 @@
1
+ import { type ColumnNode, type FieldSchema, type FormSchema, type LayoutNode, type RowNode, type UploadedFileRef, type WidgetNode } from '../../form-core/models';
2
+ import * as i0 from "@angular/core";
3
+ interface DisplayColumn {
4
+ key: string;
5
+ label: string;
6
+ }
7
+ export declare class FormViewerReadonlyComponent {
8
+ schema: FormSchema;
9
+ values: Record<string, unknown>;
10
+ breakpoint: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
11
+ protected asRow(node: LayoutNode): RowNode;
12
+ protected asCol(node: LayoutNode): ColumnNode;
13
+ protected asWidget(node: LayoutNode): WidgetNode;
14
+ protected getField(fieldId: string): FieldSchema | undefined;
15
+ protected getFieldLabel(field: FieldSchema): string;
16
+ protected getFieldValue(field: FieldSchema): unknown;
17
+ protected getHeadingText(field: FieldSchema): string;
18
+ protected getHeadingLevel(field: FieldSchema): string;
19
+ protected getParagraphText(field: FieldSchema): string;
20
+ protected getNodeStyle(node: LayoutNode): Record<string, unknown>;
21
+ protected getFieldStyle(field: FieldSchema): Record<string, unknown>;
22
+ protected getColClasses(node: LayoutNode): string;
23
+ protected formatFieldValue(field: FieldSchema, value: unknown): string;
24
+ protected formatScalarValue(value: unknown, field?: FieldSchema): string;
25
+ protected getDisplayList(field: FieldSchema, value: unknown): string[];
26
+ protected getUploadedFiles(value: unknown): UploadedFileRef[];
27
+ protected getImageSource(field: FieldSchema, value: unknown): string | null;
28
+ protected getRepeatableItems(value: unknown): Record<string, unknown>[];
29
+ protected getRepeatableFields(field: FieldSchema): FieldSchema[];
30
+ protected getRepeatableItemTitle(field: FieldSchema, index: number): string;
31
+ protected getNestedFieldValue(item: Record<string, unknown>, nestedField: FieldSchema): unknown;
32
+ protected getTableRows(value: unknown): Record<string, unknown>[];
33
+ protected getTableColumns(field: FieldSchema, value: unknown): DisplayColumn[];
34
+ protected readPathValue(value: unknown, path: string): unknown;
35
+ protected isTruthy(value: unknown): boolean;
36
+ protected getEmptyValueLabel(field?: FieldSchema): string;
37
+ protected formatFileSize(size: number): string;
38
+ protected trackByNodeId(_: number, node: LayoutNode): string;
39
+ protected trackByIndex(index: number): number;
40
+ protected trackByFieldId(_: number, field: FieldSchema): string;
41
+ protected trackByTableColumn(_: number, column: DisplayColumn): string;
42
+ protected trackByUploadedFile(_: number, file: UploadedFileRef): string;
43
+ private getEffectiveSpan;
44
+ private getSpanClass;
45
+ private resolveOptionLabel;
46
+ private getFieldOptions;
47
+ private optionMatches;
48
+ private formatDateValue;
49
+ private formatTimeValue;
50
+ private formatDateTimeValue;
51
+ private isRecord;
52
+ private isUploadedFileRef;
53
+ static ɵfac: i0.ɵɵFactoryDeclaration<FormViewerReadonlyComponent, never>;
54
+ static ɵcmp: i0.ɵɵComponentDeclaration<FormViewerReadonlyComponent, "app-form-viewer-readonly", never, { "schema": { "alias": "schema"; "required": true; }; "values": { "alias": "values"; "required": false; }; "breakpoint": { "alias": "breakpoint"; "required": false; }; }, {}, never, never, true, never>;
55
+ }
56
+ export {};