@acorex/platform 18.1.3 → 18.1.4

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 (32) hide show
  1. package/common/lib/schema/widgets/text/largetext-widget-edit.component.d.ts +1 -1
  2. package/esm2022/common/lib/schema/widgets/text/largetext-widget-edit.component.mjs +15 -16
  3. package/esm2022/layout/builder/lib/builder/widget.types.mjs +1 -2
  4. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.mjs +22 -5
  5. package/esm2022/layouts/lib/admin/entity-layout/workflows/delete-entity.workflow.mjs +2 -1
  6. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-detail-list-view/entity-detail-list-view.component.mjs +3 -3
  7. package/esm2022/themes/shared/lib/comments/comment-list-view.component.mjs +44 -20
  8. package/esm2022/widgets/lib/widgets/editors/contact/contact-widget-edit.component.mjs +11 -10
  9. package/esm2022/widgets/lib/widgets/editors/large-text/large-text-widget-edit.component.mjs +32 -22
  10. package/esm2022/widgets/lib/widgets/editors/select/select-box-widget-edit.component.mjs +23 -11
  11. package/fesm2022/{acorex-platform-common-largetext-widget-edit.component-CrqPJ58V.mjs → acorex-platform-common-largetext-widget-edit.component-DD7S5j12.mjs} +15 -16
  12. package/fesm2022/acorex-platform-common-largetext-widget-edit.component-DD7S5j12.mjs.map +1 -0
  13. package/fesm2022/acorex-platform-common.mjs +1 -1
  14. package/fesm2022/acorex-platform-layout-builder.mjs +0 -1
  15. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  16. package/fesm2022/acorex-platform-layout-entity.mjs +20 -3
  17. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  18. package/fesm2022/acorex-platform-layouts.mjs +1 -0
  19. package/fesm2022/acorex-platform-layouts.mjs.map +1 -1
  20. package/fesm2022/acorex-platform-themes-default.mjs +2 -2
  21. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  22. package/fesm2022/acorex-platform-themes-shared.mjs +43 -19
  23. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  24. package/fesm2022/acorex-platform-widgets.mjs +80 -59
  25. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  26. package/package.json +19 -19
  27. package/themes/shared/README.md +2 -3
  28. package/themes/shared/lib/comments/comment-list-view.component.d.ts +3 -2
  29. package/widgets/lib/widgets/editors/contact/contact-widget-edit.component.d.ts +1 -1
  30. package/widgets/lib/widgets/editors/large-text/large-text-widget-edit.component.d.ts +1 -3
  31. package/widgets/lib/widgets/editors/select/select-box-widget-edit.component.d.ts +2 -0
  32. package/fesm2022/acorex-platform-common-largetext-widget-edit.component-CrqPJ58V.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-layout-builder.mjs","sources":["../../../../libs/platform/layout/builder/src/lib/builder/builder.service.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget-registery.service.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget-catalog.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget.types.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget-renderer.component.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget-container.component.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget-column-renderer.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget-renderer.component.directive.ts","../../../../libs/platform/layout/builder/src/lib/builder/builder.module.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget-groups.ts","../../../../libs/platform/layout/builder/src/acorex-platform-layout-builder.ts"],"sourcesContent":["import { Injectable, signal } from '@angular/core';\nimport { clone, get, isEqual, set } from 'lodash-es';\nimport { Subject, Subscription, debounceTime } from 'rxjs';\nimport { AXPLayoutContextEvent } from './widget.types';\n\n\nexport type AXPLayoutElementAPI = { [name: string]: Subject<any> | Function }\n\nexport abstract class AXPLayoutElement {\n abstract get id(): string | null;\n\n api(): AXPLayoutElementAPI {\n return {}\n }\n}\n\n@Injectable()\nexport class AXPLayoutBuilderService {\n private readonly context$ = signal<any>({});\n private readonly variables$ = signal<any>({});\n private readonly functions$ = signal<{ [key: string]: Function }>({});\n\n public readonly onChanged: Subject<AXPLayoutContextEvent> = new Subject<AXPLayoutContextEvent>();\n private debouncers: { [key: string]: Subject<{ path: string; value: any, init: boolean }> } = {};\n private debouncerSubscriptions: { [key: string]: Subscription } = {};\n\n private widgets = new Map<string, AXPLayoutElement>();;\n\n get context() {\n return this.context$();\n }\n\n get variables() {\n return this.variables$();\n }\n\n get functions(): { [key: string]: Function } {\n return this.functions$();\n }\n\n initial(value: any) {\n this.context$.set(value);\n }\n\n\n setVariables(keysValues: any): void;\n setVariables(key: string, value: any): void;\n setVariables(...args: any[]): void {\n if (args.length == 0)\n return;\n else if (args.length == 1)\n this.variables$.set(args[0]);\n else if (args.length == 2) {\n this.variables$.update(v => set(v, args[0], args[1]));\n }\n }\n\n\n setFunctions(keysValues: any): void;\n setFunctions(key: string, value: any): void;\n setFunctions(...args: any[]): void {\n if (args.length == 0)\n return;\n else if (args.length == 1)\n this.functions$.set(args[0]);\n else if (args.length == 2) {\n this.functions$.update(v => set(v, args[0], args[1]));\n }\n }\n\n\n setValue(path: string, value: any, init: boolean = false) {\n const oldValue = get(this.context$(), path);\n if (isEqual(oldValue, value))\n return;\n if (!this.debouncers[path]) {\n // Create a new Subject for debouncing if it doesn't exist\n this.debouncers[path] = new Subject<{ path: string; value: any, init: boolean }>();\n\n // Subscribe to the subject with debounceTime\n this.debouncerSubscriptions[path] =\n this.debouncers[path]\n .pipe(debounceTime(150))\n .subscribe(({ value, init }) => {\n // Only emit onChanged event after debounce time\n this.onChanged.next({\n oldValue: oldValue,\n newValue: value,\n data: this.context,\n path,\n init\n });\n });\n }\n\n // Update context immediately\n this.context$.update((ctx) => set(clone(ctx), path, value));\n // Emit value through the debouncer subject\n this.debouncers[path].next({ path, value, init });\n }\n\n getValue(path: string) {\n return get(this.context, path);\n }\n\n registerWidget(id: string, widget: AXPLayoutElement) {\n this.widgets.set(id, widget);\n }\n\n getWidget(id: string): AXPLayoutElement | undefined {\n return this.widgets.get(id);\n }\n\n private unsubscribeDebouncers() {\n Object.keys(this.debouncerSubscriptions).forEach((path) => {\n this.debouncerSubscriptions[path].unsubscribe();\n delete this.debouncerSubscriptions[path]; // Clean up the reference\n delete this.debouncers[path]; // Also clean up the debouncer subject\n });\n }\n\n ngOnDestroy(): void {\n this.unsubscribeDebouncers();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { merge } from 'lodash-es';\nimport { AXPWidgetConfig } from './widget.types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPWidgetRegistryService {\n private types: Map<string, AXPWidgetConfig> = new Map();\n\n register(widget: AXPWidgetConfig) {\n this.types.set(widget.name, widget);\n }\n\n extend(parentName: string, widget: AXPWidgetConfig) {\n const parentWidget = this.resolve(parentName);\n const newWidget = merge({}, parentWidget, widget);\n newWidget.name = widget.name;\n this.register(newWidget);\n }\n\n resolve(name: string): AXPWidgetConfig | undefined {\n const widget = this.types.get(name);\n if (!widget) {\n throw new Error(`Widget with name \"${name}\" does not exist.`);\n }\n return widget;\n }\n\n public all(): AXPWidgetConfig[] {\n return Array.from(this.types.values());\n }\n}\n","import { AXPWidgetTypesMap } from './widget.types';\n\nconst AXPWidgetsCatalog: AXPWidgetTypesMap = {\n checkbox: 'checkbox-editor',\n color: 'color-editor',\n contact: 'contact-editor',\n dateTime: 'date-time-editor',\n email: 'email-editor',\n largeText: 'large-text-editor',\n link: 'link-editor',\n number: 'number-editor',\n password: 'password-editor',\n phone: 'phone-editor',\n richText: 'rich-text-editor',\n select: 'select-editor',\n selectionList: 'selection-list-editor',\n text: 'text-editor',\n toggle: 'toggle-editor',\n blockLayout: 'block-layout',\n pageLayout: 'page-layout',\n repeaterLayout: 'repeater-layout',\n textBlockLayout: 'text-block-layout',\n file: 'file',\n map: 'map',\n gallery: 'gallery',\n signature: 'signature',\n buttonAction: 'button-action',\n document: 'document-layout',\n lookup: 'lookup-editor',\n formField: 'form-field',\n qrcode: 'qrcode',\n grid: 'grid-layout',\n gridItem: 'grid-item-layout',\n gridRow: 'grid-row-layout',\n widgetSelector: 'widget-selector',\n};\n\nexport { AXPWidgetsCatalog };\n","import { AXDataSource, AXValueChangedEvent } from '@acorex/components/common';\nimport { AXPMetaData, AXPOptionsData, AXPPartialNested, AXPValidationRules } from '@acorex/platform/core';\nimport { ElementRef, Injectable, InjectionToken, afterNextRender, computed, inject, signal } from '@angular/core';\nimport { cloneDeep, get, isUndefined, merge } from 'lodash-es';\nimport { Subject } from 'rxjs';\nimport { AXPLayoutBuilderService, AXPLayoutElement } from './builder.service';\nimport { AXPWidgetsCatalog } from './widget-catalog';\n\nexport type AXPWidgetTrigger = { event: string; action: string; disabled?: boolean };\nexport type AXPWidgetTriggers = AXPWidgetTrigger[];\n\nexport interface AXPWidgetDataSource {\n name: string;\n columns: {\n name: string;\n title: string;\n // dataType: string;\n // nullable?: boolean;\n // interface?: Partial<AXEntityPropertyWidget>;\n }[];\n source: AXDataSource;\n}\n\nexport interface AXPWidgetPropertyGroup {\n name: string;\n title: string;\n order: number;\n}\n\nexport interface AXPWidgetGroup {\n name: string;\n title: string;\n order: number;\n}\n\nexport type AXPWidgetDataType = 'string' | 'number' | 'object' | 'boolean' | 'array';\n\nexport interface AXPWidgetProperty {\n name: string;\n title: string;\n description?: string;\n group: AXPWidgetPropertyGroup;\n schema: {\n dataType: AXPWidgetDataType;\n nullable?: boolean;\n defaultValue?: any | string | ((context: any | null) => any);\n interface: Required<Pick<AXPWidgetNode, 'path'>> & Omit<AXPWidgetNode, 'path'>;\n };\n options?: AXPOptionsData;\n validations?: AXPValidationRules;\n visible: boolean;\n}\n\nexport function cloneProperty(\n property: AXPWidgetProperty,\n values: AXPPartialNested<AXPWidgetProperty>\n): AXPWidgetProperty {\n return merge(cloneDeep(property), values);\n}\n\nexport function createStringProperty(ctor: {\n defaultValue?: string;\n name: string;\n title: string;\n path?: string;\n group: AXPWidgetPropertyGroup;\n visible?: boolean;\n}): AXPWidgetProperty {\n return {\n name: ctor.name,\n title: ctor.title,\n group: ctor.group,\n schema: {\n dataType: 'string',\n defaultValue: ctor.defaultValue,\n interface: {\n name: ctor.name,\n path: ctor.path ?? ctor.name,\n type: AXPWidgetsCatalog.text,\n },\n },\n visible: ctor.visible ?? true,\n };\n}\n\nexport function createBooleanProperty(ctor: {\n defaultValue?: boolean;\n name: string;\n title: string;\n path?: string;\n group: AXPWidgetPropertyGroup;\n visible?: boolean;\n}): AXPWidgetProperty {\n return {\n name: ctor.name,\n title: ctor.title,\n group: ctor.group,\n schema: {\n dataType: 'boolean',\n defaultValue: ctor.defaultValue ?? false,\n interface: {\n name: ctor.name,\n path: ctor.path ?? ctor.name,\n type: AXPWidgetsCatalog.toggle,\n },\n },\n visible: ctor.visible ?? true,\n };\n}\n\nexport function createSelectProperty<T = string | { id: string; title: string }>(ctor: {\n defaultValue: T | T[];\n dataSource: T[];\n name: string;\n title: string;\n path?: string;\n group: AXPWidgetPropertyGroup;\n visible?: boolean;\n}): AXPWidgetProperty {\n return {\n name: ctor.name,\n title: ctor.title,\n group: ctor.group,\n schema: {\n dataType: 'string',\n defaultValue: Array.isArray(ctor.defaultValue)\n ? ctor.defaultValue.map((item) => (typeof item === 'string' ? { id: item } : item))\n : typeof ctor.defaultValue === 'string'\n ? { id: ctor.defaultValue, title: ctor.defaultValue }\n : ctor.defaultValue,\n interface: {\n name: ctor.name,\n path: ctor.path ?? ctor.name,\n type: AXPWidgetsCatalog.select,\n options: {\n dataSource: ctor.dataSource.map((item) => (typeof item === 'string' ? { id: item, title: item } : item)),\n },\n },\n },\n visible: ctor.visible ?? true,\n };\n}\n\nexport interface AXPWidgetNode {\n type: AXPWidgetTypesMap[keyof AXPWidgetTypesMap];\n path?: string;\n name?: string;\n defaultValue?: any;\n formula?: string;\n children?: AXPWidgetNode[];\n options?: AXPOptionsData;\n triggers?: AXPWidgetTriggers;\n}\n\nexport interface AXPWidgetTypesMap {\n checkbox: 'checkbox-editor';\n color: 'color-editor';\n contact: 'contact-editor';\n dateTime: 'date-time-editor';\n email: 'email-editor';\n largeText: 'large-text-editor';\n link: 'link-editor';\n number: 'number-editor';\n password: 'password-editor';\n phone: 'phone-editor';\n richText: 'rich-text-editor';\n select: 'select-editor';\n selectionList: 'selection-list-editor';\n text: 'text-editor';\n toggle: 'toggle-editor';\n blockLayout: 'block-layout';\n pageLayout: 'page-layout';\n repeaterLayout: 'repeater-layout';\n textBlockLayout: 'text-block-layout';\n file: 'file';\n map: 'map';\n gallery: 'gallery';\n signature: 'signature';\n buttonAction: 'button-action';\n document: 'document-layout';\n lookup: 'lookup-editor';\n formField: 'form-field';\n grid: 'grid-layout';\n gridRow: 'grid-row-layout';\n gridItem: 'grid-item-layout';\n qrcode: 'qrcode';\n widgetSelector: 'widget-selector';\n}\n\nexport interface AXPWidgetNodeToken {\n config: AXPWidgetConfig;\n node: AXPWidgetNode;\n options?: AXPOptionsData;\n}\n\nexport interface AXPWidgetColumnNode {\n type: string;\n path: string;\n options?: AXPOptionsData;\n}\n\nexport interface AXPWidgetColumnNodeToken extends AXPWidgetColumnNode {\n config: AXPWidgetConfig;\n}\n\nexport const AXP_WIDGET_TOKEN = new InjectionToken<AXPWidgetNodeToken>('AXP_WIDGET_TOKEN');\nexport const AXP_WIDGET_COLUMN_TOKEN = new InjectionToken<AXPWidgetColumnNodeToken>('AXP_WIDGET_COLUMN_TOKEN');\n\nexport interface AXPWidgetComponentConfig {\n component: () => Promise<any>;\n properties?: AXPWidgetProperty[];\n}\n\nexport interface AXPWidgetConfigComponents {\n designer?: AXPWidgetComponentConfig;\n view?: AXPWidgetComponentConfig;\n edit?: AXPWidgetComponentConfig;\n print?: AXPWidgetComponentConfig;\n column?: AXPWidgetComponentConfig;\n filter?: AXPWidgetComponentConfig;\n}\n\nexport type AXPWidgetType = 'container' | 'editor' | 'action' | 'view';\n\nexport interface AXPWidgetConfig {\n name: AXPWidgetTypesMap[keyof AXPWidgetTypesMap];\n title: string;\n icon?: string;\n description?: string;\n group: AXPWidgetGroup;\n properties?: AXPWidgetProperty[];\n components: AXPWidgetConfigComponents;\n meta?: AXPMetaData;\n type: AXPWidgetType;\n visible?: boolean;\n}\n\nexport type AXPWidgetRenderMode = keyof AXPWidgetConfigComponents;\n\nexport interface AXPLayoutContextEvent {\n oldValue: any;\n newValue: any;\n path?: string | null;\n data: any;\n init: boolean;\n}\n\n@Injectable()\nexport abstract class AXPWidgetComponent<T = any | null | void> extends AXPLayoutElement {\n protected readonly token = inject(AXP_WIDGET_TOKEN);\n public readonly host = inject(ElementRef).nativeElement as HTMLDivElement;\n\n protected readonly config = this.token.config;\n\n protected readonly name = this.token.node.name;\n protected readonly path = this.token.node.path ?? (this.config.type == 'editor' ? this.name : null);\n protected readonly defaultValue = this.token.node.defaultValue;\n\n protected readonly _children = signal(this.token.node.children ?? []);\n protected children = this._children.asReadonly();\n\n protected _options = signal<any>(this.token.options ?? {});\n protected options = this._options.asReadonly();\n\n private readonly contextService = inject(AXPLayoutBuilderService);\n\n protected readonly rawValue = computed<T>(() => {\n debugger;\n return this._fullPath ? get(this.contextService.context, this._fullPath) : null;\n });\n\n public readonly onReady = new Subject<void>();\n\n private isRendered = false;\n\n private _id: string | null;\n public get id(): string | null {\n return this._id;\n }\n\n parent: AXPWidgetComponent | null | undefined;\n index: number | null | undefined;\n mode: AXPWidgetRenderMode;\n\n private _fullPath: string;\n\n ngOnInit() {\n this.initRender();\n }\n\n private nextRender = afterNextRender(() => {\n //\n if (!this.isRendered) {\n //this.detectFullPath();\n //\n this.onReady.next();\n //\n this.isRendered = true;\n }\n });\n\n private initRender() {\n if (this.config.type == 'editor') {\n this.detectFullPath();\n if (this.defaultValue != null) {\n this.setValue(this.defaultValue, true);\n }\n }\n }\n\n getValue<T>() {\n return this.rawValue();\n }\n\n setValue(value: T | null, init: boolean = false) {\n const oldValue = this.rawValue();\n value = isUndefined(value) ? null : value;\n if (this._fullPath) {\n this.contextService.setValue(this._fullPath, value, init);\n this.onValueChanged(oldValue, value);\n }\n }\n\n setOptions(values: any): void {\n this._options.set({ ...this.options(), ...values });\n }\n\n call(name: string, ...args: any[]): void {\n const fn = get(this, name) as Function;\n if (fn && typeof fn == 'function') {\n fn.bind(this)(...args);\n }\n }\n\n setChildren(children: AXPWidgetNode[]) {\n this._children.set([...children]);\n }\n\n onValueChanged(oldValue: T | null, newValue: T | null) {}\n\n private detectFullPath() {\n let sections = [];\n let ids = [];\n //\n let parent: AXPWidgetComponent | null | undefined = this;\n //\n while (parent) {\n const path = parent.path; //?? parent.name;\n const id = parent.name;\n //\n if (path) {\n sections.push(path);\n if (parent.index != null) {\n sections.push(`[${parent.index}]`);\n }\n }\n if (id) {\n ids.push(id);\n if (parent.index != null) {\n ids.push(`${parent.index}`);\n }\n }\n parent = parent.parent;\n }\n //\n this._fullPath = sections.reverse().join('.');\n this._id = this.name || this.parent ? ids.reverse().join('_') : null;\n if (this._id) {\n this.contextService.registerWidget(this._id, this);\n }\n }\n\n protected handleValueChanged(e: AXValueChangedEvent<T>) {\n if (e.isUserInteraction) {\n this.setValue(e.value!);\n }\n }\n}\n\n@Injectable()\nexport abstract class AXPContainerWidgetComponent<T> extends AXPWidgetComponent<T> {\n public readonly node = this.token.node;\n}\n\n@Injectable()\nexport abstract class AXPColumnWidgetComponent<T = any | null | void> {\n private readonly token = inject(AXP_WIDGET_COLUMN_TOKEN);\n\n protected readonly path = this.token.path;\n protected readonly options = this.token.options ?? {};\n protected readonly rawValue: any = null;\n}\n","import { AXUnsubscriber } from '@acorex/core/utils';\nimport { CdkPortalOutletAttachedRef, ComponentPortal } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, Component, ComponentRef, Injector, Input, WritableSignal, inject, signal } from '@angular/core';\nimport { cloneDeep, get, merge, set, sum } from 'lodash-es';\nimport { Observable, filter } from 'rxjs';\nimport { AXPLayoutBuilderService } from './builder.service';\nimport { AXPWidgetRegistryService } from './widget-registery.service';\nimport { AXPWidgetComponent, AXPWidgetNode, AXPWidgetNodeToken, AXPWidgetRenderMode, AXP_WIDGET_TOKEN } from './widget.types';\n\n@Component({\n selector: 'axp-widget-renderer',\n template: `\n @if(mergedOptions().isVisible!=false) { @if(isLoading()){\n <ax-skeleton [animated]=\"true\" class=\"ax-w-full lg:ax-w-[50%] ax-h-8 ax-rounded\"></ax-skeleton>\n } @else {\n <ng-container *ngTemplateOutlet=\"tt\"></ng-container>\n } }\n <ng-template #tt>\n <ng-template [cdkPortalOutlet]=\"portal\" (attached)=\"handleAttached($event)\"></ng-template>\n </ng-template>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: AXUnsubscriber,\n },\n ],\n})\nexport class AXPWidgetRendererComponent {\n private _node: AXPWidgetNode;\n @Input({ required: true })\n public get node(): AXPWidgetNode {\n return this._node;\n }\n public set node(v: AXPWidgetNode) {\n this._node = v;\n this.loadComponent();\n }\n\n private _mode: AXPWidgetRenderMode = 'edit';\n @Input()\n public get mode(): AXPWidgetRenderMode {\n return this._mode;\n }\n public set mode(v: AXPWidgetRenderMode) {\n this._mode = v;\n }\n\n @Input()\n parentNode: AXPWidgetComponent | null;\n\n @Input()\n index: number | null;\n\n protected mergedOptions: WritableSignal<any> = signal<any>({});\n\n private injector = inject(Injector);\n protected builderService = inject(AXPLayoutBuilderService);\n protected widgetRegistery = inject(AXPWidgetRegistryService);\n protected unsubscriber = inject(AXUnsubscriber);\n\n protected isLoading = signal(true);\n private instance!: AXPWidgetComponent;\n protected portal!: ComponentPortal<any>;\n private expressionCache: Map<string, () => Promise<any>> = new Map();\n private expressionEvaluators: Map<string, () => Promise<any>> = new Map();\n private scope: any = null;\n\n constructor() {\n this.builderService.onChanged.pipe(this.unsubscriber.takeUntilDestroy).subscribe(async (e) => {\n if ((await this.updateOptionsBasedOnContext()) > 0) {\n this.applyOptions();\n }\n if (this.checkFormulaForUpdate(this.node.formula, e.path)) {\n await this.updateValueBasedOnFormula();\n }\n });\n }\n\n private async loadComponent() {\n this.isLoading.set(true);\n const widget = this.widgetRegistery.resolve(this.node.type);\n //\n const props = widget?.components[this.mode]?.properties\n ?.filter((c) => c.schema.defaultValue)\n .map((c) => ({ [c.name]: c.schema.defaultValue }))\n .reduce((acc, curr) => {\n return { ...acc, ...curr };\n }, {});\n //\n this.mergedOptions.set(merge(props, this.node.options) || {});\n this.preprocessAndInitialOptions(cloneDeep(this.node.options));\n await this.updateOptionsBasedOnContext();\n const tokenValue = {\n node: this.node,\n options: this.mergedOptions(),\n config: widget,\n } as AXPWidgetNodeToken;\n const token = Injector.create({\n parent: this.injector,\n providers: [\n {\n provide: AXP_WIDGET_TOKEN,\n useValue: tokenValue,\n },\n ],\n });\n var com = await widget?.components[this.mode]?.component();\n this.portal = new ComponentPortal(com, null, token);\n this.isLoading.set(false);\n }\n\n protected async handleAttached(portalOutletRef: CdkPortalOutletAttachedRef) {\n portalOutletRef = portalOutletRef as ComponentRef<AXPWidgetComponent>;\n this.instance = portalOutletRef.instance as AXPWidgetComponent;\n this.instance.parent = this.parentNode;\n this.instance.index = this.index;\n this.instance.mode = this.mode;\n await this.updateValueBasedOnFormula();\n await this.assignTriggers();\n }\n\n private applyOptions() {\n if (!this.instance) return;\n this.instance.setOptions(this.mergedOptions());\n }\n\n private checkFormulaForUpdate(formula: string | undefined, path?: string | null): boolean {\n if (formula) {\n const regex = /context\\.eval\\('([^']+)'\\)/g;\n const matches = formula.match(regex);\n const nodes = matches ? matches.map((match: any) => match.match(/'([^']+)'/)[1]) : [];\n return nodes.includes(path);\n } else return false;\n }\n\n preprocessAndInitialOptions(obj: any, pathPrefix: string = ''): void {\n if (!obj) return;\n Object.entries(obj).forEach(([key, value]) => {\n const currentPath = pathPrefix ? `${pathPrefix}.${key}` : key;\n if (typeof value === 'string' && value.includes('{{')) {\n // Cache dynamic expression for later evaluation\n this.expressionEvaluators.set(currentPath, () => this.evaluateExpression(value));\n } else if (typeof value === 'object' && value !== null && (value.constructor === Object || Array.isArray(value))) {\n // Recursively handle nested objects\n this.preprocessAndInitialOptions(value, currentPath);\n } else {\n // Apply static values directly\n this.mergedOptions.update((currentOptions) => {\n return set(currentOptions, currentPath, value);\n });\n }\n });\n }\n\n async updateOptionsBasedOnContext() {\n const updates: any[] = [];\n for (let [path, evaluator] of this.expressionEvaluators) {\n const newValue = await evaluator();\n updates.push({ path, newValue });\n }\n // Apply updates to mergedOptions\n if (updates.length > 0) {\n this.mergedOptions.update((o) => {\n const updatedOptions = { ...o };\n updates.forEach(({ path, newValue }) => {\n // Set the new value in the updatedOptions object by path\n set(updatedOptions, path, newValue); // Assuming 'set' can handle paths like 'property.subproperty'\n });\n return updatedOptions;\n });\n }\n return updates.length;\n }\n\n async updateValueBasedOnFormula() {\n if (this.node.formula) {\n const value = await this.evaluateExpression(this.node.formula);\n this.instance.setValue(value);\n }\n }\n\n private async evaluateExpression(templateExpression: string): Promise<any> {\n try {\n // Check cache first, but cache the function for evaluation, not the evaluated value\n if (!this.expressionCache.has(templateExpression)) {\n const expressionMatch = templateExpression.match(/\\{\\{\\s*(.*?)\\s*\\}\\}/);\n if (!expressionMatch) {\n throw Error(`No valid expression found in \"${templateExpression}\"`);\n }\n const expression = expressionMatch[1];\n\n // Cache the evaluation function instead of the result\n const scope = this.getGlobalScope();\n const evaluationFunction = async () => {\n const sandbox = new Function('scope', `with (scope) { return (async function() { return ${expression}; })(); }`);\n return await sandbox(scope);\n };\n\n this.expressionCache.set(templateExpression, evaluationFunction);\n }\n\n // Retrieve the function from the cache and call it to evaluate the expression\n const evaluate = this.expressionCache.get(templateExpression);\n if (evaluate) {\n const result = await evaluate();\n return result;\n } else {\n throw Error(`Failed to retrieve evaluation function for expression: \"${templateExpression}\"`);\n }\n } catch (error) {\n console.error('Error evaluating expression:', error);\n return false;\n }\n }\n\n private getGlobalScope() {\n if (this.scope) return this.scope;\n this.scope = {};\n set(this.scope, 'context', this.getContextScope());\n set(this.scope, 'events', this.getEventScope());\n set(this.scope, 'widget', this.getWidgetScope());\n set(this.scope, 'methods', this.getFunctionScope());\n set(this.scope, 'vars', this.getVariablesScope());\n return this.scope;\n }\n\n private getContextScope(): any {\n const scope: any = {};\n set(scope, 'eval', (path: string) => this.builderService.getValue(path));\n return scope;\n }\n\n private getEventScope(): any {\n const scope: any = {};\n set(scope, 'context', (path: string) => this.builderService.onChanged.pipe(filter((c) => c.path == path)));\n set(scope, 'from', (event: string) => get(this.instance.api(), event));\n return scope;\n }\n\n private getWidgetScope(): any {\n const scope: any = {};\n set(scope, 'call', (name: string, ...args: any[]) => {\n this.instance.call(name, ...args);\n });\n set(scope, 'find', (id: string) => {\n return this.builderService.getWidget(id)?.api();\n });\n return scope;\n }\n\n private getFunctionScope(): any {\n const scope: any = {};\n set(scope, 'sum', (values: any) => {\n return sum(values);\n });\n Object.entries(this.builderService.functions).forEach((i) => {\n set(scope, i[0], (...args: any[]) => {\n return i[1](...args);\n });\n });\n return scope;\n }\n\n private getVariablesScope(): any {\n const scope: any = {};\n set(scope, 'eval', (path: string) => get(this.builderService.variables, path));\n return scope;\n }\n\n private async assignTriggers() {\n this.node.triggers?.forEach((t) => {\n const event = this.evaluateTrigger(t.event);\n event?.pipe(this.unsubscriber.takeUntilDestroy).subscribe((c) => {\n this.evaluateAction(t.action);\n });\n });\n }\n\n private evaluateTrigger(templateExpression: string): Observable<any> | null {\n try {\n const expressionMatch = templateExpression.match(/\\{\\{\\s*(.*?)\\s*\\}\\}/);\n if (!expressionMatch) {\n throw Error(`No valid expression found in \"${templateExpression}\"`);\n }\n const expression = expressionMatch[1];\n\n // Cache the evaluation function instead of the result\n const scope = this.getGlobalScope();\n const sandbox = new Function('scope', `with (scope) { return ( function() { return ${expression}; })(); }`);\n return sandbox(scope);\n } catch (error) {\n console.error('Error evaluating expression:', error);\n return null;\n }\n }\n\n private evaluateAction(templateExpression: string) {\n try {\n const expressionMatch = templateExpression.match(/\\{\\{\\s*(.*?)\\s*\\}\\}/);\n if (!expressionMatch) {\n throw Error(`No valid expression found in \"${templateExpression}\"`);\n }\n const expression = expressionMatch[1];\n\n // Cache the evaluation function instead of the result\n const scope: any = this.getGlobalScope();\n const sandbox = new Function('scope', `with (scope) { ${expression} }`);\n sandbox(scope);\n } catch (error) {\n console.error('Error evaluating expression:', error);\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, effect, inject, model } from \"@angular/core\";\nimport { AXPLayoutBuilderService } from \"./builder.service\";\nimport { AXUnsubscriber } from \"@acorex/core/utils\";\nimport { cloneDeep } from \"lodash-es\";\nimport { AXPLayoutContextEvent } from \"./widget.types\";\n\n\n@Component({\n selector: 'axp-widgets-container',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { style: 'display: contents;' },\n providers: [AXPLayoutBuilderService, AXUnsubscriber],\n})\nexport class AXPWidgetContainerComponent {\n\n @Output()\n public readonly onChanged = new EventEmitter<AXPLayoutContextEvent>();\n\n public context = model<any>({});\n\n @Input()\n public set variables(v: any) {\n this.builderService.setVariables(v);\n }\n\n @Input()\n public set functions(v: any) {\n this.builderService.setFunctions(v);\n }\n\n\n private unsubscriber = inject(AXUnsubscriber);\n private builderService = inject(AXPLayoutBuilderService);\n\n private ef = effect(() => {\n this.builderService.initial(this.context());\n }, { allowSignalWrites: true })\n\n ngOnInit() {\n this.builderService\n .onChanged\n .pipe(this.unsubscriber.takeUntilDestroy)\n .subscribe(e => {\n this.context.set(e.data);\n this.onChanged.emit(e);\n });\n }\n}","import { AXDataTableColumnComponent } from '@acorex/components/data-table';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Injector, Input, TemplateRef, ViewChild, inject, signal } from '@angular/core';\nimport { AXPWidgetColumnNode, AXP_WIDGET_COLUMN_TOKEN } from './widget.types';\nimport { AXPLayoutBuilderService } from './builder.service';\nimport { AXPWidgetRegistryService } from './widget-registery.service';\nimport { get, merge } from 'lodash-es';\n\n@Component({\n selector: 'axp-widget-column-renderer',\n template: `\n <ng-template #header>{{ caption }}</ng-template>\n <ng-template #cell let-row>\n @if(component && widgetInjector && row?.data) {\n <ng-container *ngComponentOutlet=\"component; injector: widgetInjector; inputs: getInputs(row.data)\"></ng-container>\n }\n </ng-template>\n <ng-template #footer></ng-template>\n `,\n providers: [AXPLayoutBuilderService, { provide: AXDataTableColumnComponent, useExisting: AXPWidgetColumnRendererComponent }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: ['caption'],\n})\nexport class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent {\n\n protected widgetRegistery = inject(AXPWidgetRegistryService);\n\n private _node: AXPWidgetColumnNode;\n @Input({ required: true })\n public get node(): AXPWidgetColumnNode {\n return this._node;\n }\n public set node(v: AXPWidgetColumnNode) {\n this._node = v;\n }\n\n private mergedOptions = signal<any>({});\n\n @Input()\n public footerTemplate: TemplateRef<unknown>;\n\n @ViewChild('footer')\n private _contentFooterTemplate: TemplateRef<unknown>;\n\n get renderFooterTemplate(): TemplateRef<unknown> {\n return this.footerTemplate ?? this._contentFooterTemplate;\n }\n\n @Input()\n public cellTemplate: TemplateRef<unknown>;\n\n @ViewChild('cell')\n private _contentCellTemplate: TemplateRef<unknown>;\n\n get renderCellTemplate(): TemplateRef<unknown> {\n return this.cellTemplate ?? this._contentCellTemplate;\n }\n\n @Input()\n public headerTemplate: TemplateRef<unknown>;\n\n @ViewChild('header')\n private _contentHeaderTemplate: TemplateRef<unknown>;\n\n get renderHeaderTemplate(): TemplateRef<unknown> {\n return this.headerTemplate ?? this._contentHeaderTemplate;\n }\n\n get loadingEnabled(): boolean {\n return true;\n }\n\n get name(): string {\n return `col-${this.node.path}`;\n }\n\n\n private injector = inject(Injector);\n private cdr = inject(ChangeDetectorRef);\n protected widgetInjector!: Injector;\n protected component!: any;\n\n async ngOnInit() {\n const widget = this.widgetRegistery.resolve(this.node.type);\n const mode = 'column'\n this.component = await widget?.components[mode]?.component();\n //\n const props = widget?.components[mode]?.properties?.filter(c => c.schema.defaultValue)\n .map(c => ({ [c.name]: c.schema.defaultValue }))\n .reduce((acc, curr) => {\n return { ...acc, ...curr };\n }, {});\n //\n this.mergedOptions.set(\n merge(props, this.node.options) || {}\n );\n\n const tokenValue = {\n path: this.node.path,\n options: this.mergedOptions()\n };\n this.widgetInjector = Injector.create({\n parent: this.injector,\n providers: [\n {\n provide: AXP_WIDGET_COLUMN_TOKEN,\n useValue: tokenValue,\n },\n ],\n });\n\n this.width = this.mergedOptions().width ?? '200px';\n this.allowResizing = this.mergedOptions().allowResizing || true;\n this.cdr.detectChanges();\n }\n\n getInputs(data: any): any {\n return { rawValue: get(data, this.node.path!) };\n }\n}\n","import { AXUnsubscriber } from '@acorex/core/utils';\nimport { Directive, Injector, ViewContainerRef, WritableSignal, effect, inject, input, signal } from '@angular/core';\nimport { cloneDeep, get, merge, set, sum } from 'lodash-es';\nimport { Observable, filter } from 'rxjs';\nimport { AXPLayoutBuilderService } from './builder.service';\nimport { AXPWidgetRegistryService } from './widget-registery.service';\nimport { AXPWidgetComponent, AXPWidgetNode, AXPWidgetNodeToken, AXPWidgetRenderMode, AXP_WIDGET_TOKEN } from './widget.types';\n\n\n@Directive({\n selector: '[axp-widget-renderer]',\n providers: [\n {\n provide: AXUnsubscriber,\n },\n ],\n})\nexport class AXPWidgetRendererDirective {\n\n\n parentNode = input<AXPWidgetComponent | null>();\n\n index = input<number | null>();\n\n mode = input.required<AXPWidgetRenderMode>();\n node = input.required<AXPWidgetNode>();\n\n protected mergedOptions: WritableSignal<any> = signal<any>({});\n\n private injector = inject(Injector);\n protected builderService = inject(AXPLayoutBuilderService);\n protected widgetRegistery = inject(AXPWidgetRegistryService);\n protected unsubscriber = inject(AXUnsubscriber);\n private viewContainerRef = inject(ViewContainerRef);\n\n protected isLoading = signal(true);\n private instance!: AXPWidgetComponent;\n private expressionCache: Map<string, () => Promise<any>> = new Map();\n private expressionEvaluators: Map<string, () => Promise<any>> = new Map();\n private scope: any = null;\n\n constructor() {\n this.builderService.onChanged.pipe(this.unsubscriber.takeUntilDestroy).subscribe(async (e) => {\n if ((await this.updateOptionsBasedOnContext()) > 0) {\n this.applyOptions();\n }\n if (this.checkFormulaForUpdate(this.node().formula, e.path)) {\n await this.updateValueBasedOnFormula();\n }\n });\n //\n effect(\n async () => {\n await this.loadComponent();\n },\n { allowSignalWrites: true }\n );\n }\n\n private async loadComponent() {\n this.isLoading.set(true);\n this.viewContainerRef.clear();\n const widget = this.widgetRegistery.resolve(this.node().type);\n //\n const props = widget?.components[this.mode()]?.properties\n ?.filter((c) => c.schema.defaultValue)\n .map((c) => ({ [c.name]: c.schema.defaultValue }))\n .reduce((acc, curr) => {\n return { ...acc, ...curr };\n }, {});\n //\n this.mergedOptions.set(merge(props, this.node().options) || {});\n this.preprocessAndInitialOptions(cloneDeep(this.node().options));\n await this.updateOptionsBasedOnContext();\n //\n const tokenValue = {\n node: this.node(),\n options: this.mergedOptions(),\n config: widget,\n } as AXPWidgetNodeToken;\n const token = Injector.create({\n parent: this.injector,\n providers: [\n {\n provide: AXP_WIDGET_TOKEN,\n useValue: tokenValue,\n },\n ],\n });\n //\n var com = await widget?.components[this.mode()]?.component();\n this.instance = this.viewContainerRef.createComponent<AXPWidgetComponent<any>>(com, { injector: token }).instance;\n this.instance.parent = this.parentNode();\n this.instance.index = this.index();\n this.instance.mode = this.mode();\n await this.updateValueBasedOnFormula();\n await this.assignTriggers();\n //\n this.isLoading.set(false);\n }\n\n private applyOptions() {\n if (!this.instance) return;\n this.instance.setOptions(this.mergedOptions());\n }\n\n private checkFormulaForUpdate(formula: string | undefined, path?: string | null): boolean {\n if (formula) {\n const regex = /context\\.eval\\('([^']+)'\\)/g;\n const matches = formula.match(regex);\n const nodes = matches ? matches.map((match: any) => match.match(/'([^']+)'/)[1]) : [];\n return nodes.includes(path);\n } else return false;\n }\n\n preprocessAndInitialOptions(obj: any, pathPrefix: string = ''): void {\n if (!obj) return;\n Object.entries(obj).forEach(([key, value]) => {\n const currentPath = pathPrefix ? `${pathPrefix}.${key}` : key;\n if (typeof value === 'string' && value.includes('{{')) {\n // Cache dynamic expression for later evaluation\n this.expressionEvaluators.set(currentPath, () => this.evaluateExpression(value));\n } else if (typeof value === 'object' && value !== null && (value.constructor === Object || Array.isArray(value))) {\n // Recursively handle nested objects\n this.preprocessAndInitialOptions(value, currentPath);\n } else {\n // Apply static values directly\n this.mergedOptions.update((currentOptions) => {\n return set(currentOptions, currentPath, value);\n });\n }\n });\n }\n\n async updateOptionsBasedOnContext() {\n const updates: any[] = [];\n for (let [path, evaluator] of this.expressionEvaluators) {\n const newValue = await evaluator();\n updates.push({ path, newValue });\n }\n // Apply updates to mergedOptions\n if (updates.length > 0) {\n this.mergedOptions.update((o) => {\n const updatedOptions = { ...o };\n updates.forEach(({ path, newValue }) => {\n // Set the new value in the updatedOptions object by path\n set(updatedOptions, path, newValue); // Assuming 'set' can handle paths like 'property.subproperty'\n });\n return updatedOptions;\n });\n }\n return updates.length;\n }\n\n async updateValueBasedOnFormula() {\n if (this.node().formula) {\n const value = await this.evaluateExpression(this.node().formula!);\n this.instance.setValue(value);\n }\n }\n\n private async evaluateExpression(templateExpression: string): Promise<any> {\n try {\n // Check cache first, but cache the function for evaluation, not the evaluated value\n if (!this.expressionCache.has(templateExpression)) {\n const expressionMatch = templateExpression.match(/\\{\\{\\s*(.*?)\\s*\\}\\}/);\n if (!expressionMatch) {\n throw Error(`No valid expression found in \"${templateExpression}\"`);\n }\n const expression = expressionMatch[1];\n\n // Cache the evaluation function instead of the result\n const scope = this.getGlobalScope();\n const evaluationFunction = async () => {\n const sandbox = new Function('scope', `with (scope) { return (async function() { return ${expression}; })(); }`);\n return await sandbox(scope);\n };\n\n this.expressionCache.set(templateExpression, evaluationFunction);\n }\n\n // Retrieve the function from the cache and call it to evaluate the expression\n const evaluate = this.expressionCache.get(templateExpression);\n if (evaluate) {\n const result = await evaluate();\n return result;\n } else {\n throw Error(`Failed to retrieve evaluation function for expression: \"${templateExpression}\"`);\n }\n } catch (error) {\n console.error('Error evaluating expression:', error);\n return false;\n }\n }\n\n private getGlobalScope() {\n if (this.scope) return this.scope;\n this.scope = {};\n set(this.scope, 'context', this.getContextScope());\n set(this.scope, 'events', this.getEventScope());\n set(this.scope, 'widget', this.getWidgetScope());\n set(this.scope, 'methods', this.getFunctionScope());\n set(this.scope, 'vars', this.getVariablesScope());\n return this.scope;\n }\n\n private getContextScope(): any {\n const scope: any = {};\n set(scope, 'eval', (path: string) => this.builderService.getValue(path));\n return scope;\n }\n\n private getEventScope(): any {\n const scope: any = {};\n set(scope, 'context', (path: string) => this.builderService.onChanged.pipe(filter((c) => c.path == path)));\n set(scope, 'from', (event: string) => get(this.instance.api(), event));\n return scope;\n }\n\n private getWidgetScope(): any {\n const scope: any = {};\n set(scope, 'call', (name: string, ...args: any[]) => {\n this.instance.call(name, ...args);\n });\n set(scope, 'find', (id: string) => {\n return this.builderService.getWidget(id)?.api();\n });\n return scope;\n }\n\n private getFunctionScope(): any {\n const scope: any = {};\n set(scope, 'sum', (values: any) => {\n return sum(values);\n });\n Object.entries(this.builderService.functions).forEach((i) => {\n set(scope, i[0], (...args: any[]) => {\n return i[1](...args);\n });\n });\n return scope;\n }\n\n private getVariablesScope(): any {\n const scope: any = {};\n set(scope, 'eval', (path: string) => get(this.builderService.variables, path));\n return scope;\n }\n\n private async assignTriggers() {\n this.node().triggers?.forEach((t) => {\n const event = this.evaluateTrigger(t.event);\n event?.pipe(this.unsubscriber.takeUntilDestroy).subscribe((c) => {\n this.evaluateAction(t.action);\n });\n });\n }\n\n private evaluateTrigger(templateExpression: string): Observable<any> | null {\n try {\n const expressionMatch = templateExpression.match(/\\{\\{\\s*(.*?)\\s*\\}\\}/);\n if (!expressionMatch) {\n throw Error(`No valid expression found in \"${templateExpression}\"`);\n }\n const expression = expressionMatch[1];\n\n // Cache the evaluation function instead of the result\n const scope = this.getGlobalScope();\n const sandbox = new Function('scope', `with (scope) { return ( function() { return ${expression}; })(); }`);\n return sandbox(scope);\n } catch (error) {\n console.error('Error evaluating expression:', error);\n return null;\n }\n }\n\n private evaluateAction(templateExpression: string) {\n try {\n const expressionMatch = templateExpression.match(/\\{\\{\\s*(.*?)\\s*\\}\\}/);\n if (!expressionMatch) {\n throw Error(`No valid expression found in \"${templateExpression}\"`);\n }\n const expression = expressionMatch[1];\n\n // Cache the evaluation function instead of the result\n const scope: any = this.getGlobalScope();\n const sandbox = new Function('scope', `with (scope) { ${expression} }`);\n sandbox(scope);\n } catch (error) {\n console.error('Error evaluating expression:', error);\n }\n }\n}\n","import { AXSkeletonModule } from \"@acorex/components/skeleton\";\nimport { PortalModule } from \"@angular/cdk/portal\";\nimport { CommonModule } from \"@angular/common\";\nimport { Inject, ModuleWithProviders, NgModule, Optional } from \"@angular/core\";\nimport { AXPWidgetRendererComponent } from \"./widget-renderer.component\";\nimport { AXPWidgetContainerComponent } from \"./widget-container.component\";\nimport { AXPWidgetRegistryService } from \"./widget-registery.service\";\nimport { AXPWidgetConfig } from \"./widget.types\";\nimport { AXPWidgetColumnRendererComponent } from \"./widget-column-renderer\";\nimport { AXPWidgetRendererDirective } from \"./widget-renderer.component.directive\";\n\nexport interface AXPLayoutBuilderModuleConfigs {\n widgets: AXPWidgetConfig[]\n}\n\nconst COMPONENTS = [AXPWidgetContainerComponent, AXPWidgetRendererComponent, AXPWidgetColumnRendererComponent, AXPWidgetRendererDirective];\n\n@NgModule({\n imports: [CommonModule, PortalModule, AXSkeletonModule, CommonModule],\n exports: [...COMPONENTS],\n declarations: [...COMPONENTS],\n})\nexport class AXPLayoutBuilderModule {\n static forRoot(config?: AXPLayoutBuilderModuleConfigs): ModuleWithProviders<AXPLayoutBuilderModule> {\n return {\n ngModule: AXPLayoutBuilderModule,\n providers: [\n {\n provide: 'AXPLayoutBuilderModuleFactory',\n useFactory: (registry: AXPWidgetRegistryService) => () => {\n config?.widgets?.forEach(w => registry.register(w));\n },\n deps: [AXPWidgetRegistryService],\n multi: true\n },\n ]\n };\n }\n\n static forChild(config?: AXPLayoutBuilderModuleConfigs): ModuleWithProviders<AXPLayoutBuilderModule> {\n return {\n ngModule: AXPLayoutBuilderModule,\n providers: [\n {\n provide: 'AXPLayoutBuilderModuleFactory',\n useFactory: (registry: AXPWidgetRegistryService) => () => {\n config?.widgets?.forEach(w => registry.register(w));\n },\n deps: [AXPWidgetRegistryService],\n multi: true\n }\n ]\n };\n }\n\n /**\n * @ignore\n */\n constructor(@Optional() @Inject('AXPLayoutBuilderModuleFactory') instances: any[]) {\n instances?.forEach(f => {\n f();\n });\n }\n}\n","import { AXPWidgetGroup } from './widget.types';\n\nexport const AXP_WIDGETS_EDITOR_GROUP: AXPWidgetGroup = {\n name: 'editor',\n order: 2,\n title: 'Editors',\n};\n\nexport const AXP_WIDGETS_ACTION_GROUP: AXPWidgetGroup = {\n name: 'action',\n order: 3,\n title: 'Action',\n};\n\nexport const AXP_WIDGETS_LAYOUT_GROUP: AXPWidgetGroup = {\n name: 'layout',\n order: 1,\n title: 'Layout',\n};\n\nexport const AXP_WIDGETS_ADVANCE_GROUP: AXPWidgetGroup = {\n name: 'advance',\n order: 4,\n title: 'Advance',\n};\n\nexport const AXP_WIDGETS_GROUPS: AXPWidgetGroup[] = [\n AXP_WIDGETS_EDITOR_GROUP,\n AXP_WIDGETS_ACTION_GROUP,\n AXP_WIDGETS_LAYOUT_GROUP,\n AXP_WIDGETS_ADVANCE_GROUP,\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-platform-layout-builder.mjs","sources":["../../../../libs/platform/layout/builder/src/lib/builder/builder.service.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget-registery.service.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget-catalog.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget.types.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget-renderer.component.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget-container.component.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget-column-renderer.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget-renderer.component.directive.ts","../../../../libs/platform/layout/builder/src/lib/builder/builder.module.ts","../../../../libs/platform/layout/builder/src/lib/builder/widget-groups.ts","../../../../libs/platform/layout/builder/src/acorex-platform-layout-builder.ts"],"sourcesContent":["import { Injectable, signal } from '@angular/core';\nimport { clone, get, isEqual, set } from 'lodash-es';\nimport { Subject, Subscription, debounceTime } from 'rxjs';\nimport { AXPLayoutContextEvent } from './widget.types';\n\n\nexport type AXPLayoutElementAPI = { [name: string]: Subject<any> | Function }\n\nexport abstract class AXPLayoutElement {\n abstract get id(): string | null;\n\n api(): AXPLayoutElementAPI {\n return {}\n }\n}\n\n@Injectable()\nexport class AXPLayoutBuilderService {\n private readonly context$ = signal<any>({});\n private readonly variables$ = signal<any>({});\n private readonly functions$ = signal<{ [key: string]: Function }>({});\n\n public readonly onChanged: Subject<AXPLayoutContextEvent> = new Subject<AXPLayoutContextEvent>();\n private debouncers: { [key: string]: Subject<{ path: string; value: any, init: boolean }> } = {};\n private debouncerSubscriptions: { [key: string]: Subscription } = {};\n\n private widgets = new Map<string, AXPLayoutElement>();;\n\n get context() {\n return this.context$();\n }\n\n get variables() {\n return this.variables$();\n }\n\n get functions(): { [key: string]: Function } {\n return this.functions$();\n }\n\n initial(value: any) {\n this.context$.set(value);\n }\n\n\n setVariables(keysValues: any): void;\n setVariables(key: string, value: any): void;\n setVariables(...args: any[]): void {\n if (args.length == 0)\n return;\n else if (args.length == 1)\n this.variables$.set(args[0]);\n else if (args.length == 2) {\n this.variables$.update(v => set(v, args[0], args[1]));\n }\n }\n\n\n setFunctions(keysValues: any): void;\n setFunctions(key: string, value: any): void;\n setFunctions(...args: any[]): void {\n if (args.length == 0)\n return;\n else if (args.length == 1)\n this.functions$.set(args[0]);\n else if (args.length == 2) {\n this.functions$.update(v => set(v, args[0], args[1]));\n }\n }\n\n\n setValue(path: string, value: any, init: boolean = false) {\n const oldValue = get(this.context$(), path);\n if (isEqual(oldValue, value))\n return;\n if (!this.debouncers[path]) {\n // Create a new Subject for debouncing if it doesn't exist\n this.debouncers[path] = new Subject<{ path: string; value: any, init: boolean }>();\n\n // Subscribe to the subject with debounceTime\n this.debouncerSubscriptions[path] =\n this.debouncers[path]\n .pipe(debounceTime(150))\n .subscribe(({ value, init }) => {\n // Only emit onChanged event after debounce time\n this.onChanged.next({\n oldValue: oldValue,\n newValue: value,\n data: this.context,\n path,\n init\n });\n });\n }\n\n // Update context immediately\n this.context$.update((ctx) => set(clone(ctx), path, value));\n // Emit value through the debouncer subject\n this.debouncers[path].next({ path, value, init });\n }\n\n getValue(path: string) {\n return get(this.context, path);\n }\n\n registerWidget(id: string, widget: AXPLayoutElement) {\n this.widgets.set(id, widget);\n }\n\n getWidget(id: string): AXPLayoutElement | undefined {\n return this.widgets.get(id);\n }\n\n private unsubscribeDebouncers() {\n Object.keys(this.debouncerSubscriptions).forEach((path) => {\n this.debouncerSubscriptions[path].unsubscribe();\n delete this.debouncerSubscriptions[path]; // Clean up the reference\n delete this.debouncers[path]; // Also clean up the debouncer subject\n });\n }\n\n ngOnDestroy(): void {\n this.unsubscribeDebouncers();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { merge } from 'lodash-es';\nimport { AXPWidgetConfig } from './widget.types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPWidgetRegistryService {\n private types: Map<string, AXPWidgetConfig> = new Map();\n\n register(widget: AXPWidgetConfig) {\n this.types.set(widget.name, widget);\n }\n\n extend(parentName: string, widget: AXPWidgetConfig) {\n const parentWidget = this.resolve(parentName);\n const newWidget = merge({}, parentWidget, widget);\n newWidget.name = widget.name;\n this.register(newWidget);\n }\n\n resolve(name: string): AXPWidgetConfig | undefined {\n const widget = this.types.get(name);\n if (!widget) {\n throw new Error(`Widget with name \"${name}\" does not exist.`);\n }\n return widget;\n }\n\n public all(): AXPWidgetConfig[] {\n return Array.from(this.types.values());\n }\n}\n","import { AXPWidgetTypesMap } from './widget.types';\n\nconst AXPWidgetsCatalog: AXPWidgetTypesMap = {\n checkbox: 'checkbox-editor',\n color: 'color-editor',\n contact: 'contact-editor',\n dateTime: 'date-time-editor',\n email: 'email-editor',\n largeText: 'large-text-editor',\n link: 'link-editor',\n number: 'number-editor',\n password: 'password-editor',\n phone: 'phone-editor',\n richText: 'rich-text-editor',\n select: 'select-editor',\n selectionList: 'selection-list-editor',\n text: 'text-editor',\n toggle: 'toggle-editor',\n blockLayout: 'block-layout',\n pageLayout: 'page-layout',\n repeaterLayout: 'repeater-layout',\n textBlockLayout: 'text-block-layout',\n file: 'file',\n map: 'map',\n gallery: 'gallery',\n signature: 'signature',\n buttonAction: 'button-action',\n document: 'document-layout',\n lookup: 'lookup-editor',\n formField: 'form-field',\n qrcode: 'qrcode',\n grid: 'grid-layout',\n gridItem: 'grid-item-layout',\n gridRow: 'grid-row-layout',\n widgetSelector: 'widget-selector',\n};\n\nexport { AXPWidgetsCatalog };\n","import { AXDataSource, AXValueChangedEvent } from '@acorex/components/common';\nimport { AXPMetaData, AXPOptionsData, AXPPartialNested, AXPValidationRules } from '@acorex/platform/core';\nimport { ElementRef, Injectable, InjectionToken, afterNextRender, computed, inject, signal } from '@angular/core';\nimport { cloneDeep, get, isUndefined, merge } from 'lodash-es';\nimport { Subject } from 'rxjs';\nimport { AXPLayoutBuilderService, AXPLayoutElement } from './builder.service';\nimport { AXPWidgetsCatalog } from './widget-catalog';\n\nexport type AXPWidgetTrigger = { event: string; action: string; disabled?: boolean };\nexport type AXPWidgetTriggers = AXPWidgetTrigger[];\n\nexport interface AXPWidgetDataSource {\n name: string;\n columns: {\n name: string;\n title: string;\n // dataType: string;\n // nullable?: boolean;\n // interface?: Partial<AXEntityPropertyWidget>;\n }[];\n source: AXDataSource;\n}\n\nexport interface AXPWidgetPropertyGroup {\n name: string;\n title: string;\n order: number;\n}\n\nexport interface AXPWidgetGroup {\n name: string;\n title: string;\n order: number;\n}\n\nexport type AXPWidgetDataType = 'string' | 'number' | 'object' | 'boolean' | 'array';\n\nexport interface AXPWidgetProperty {\n name: string;\n title: string;\n description?: string;\n group: AXPWidgetPropertyGroup;\n schema: {\n dataType: AXPWidgetDataType;\n nullable?: boolean;\n defaultValue?: any | string | ((context: any | null) => any);\n interface: Required<Pick<AXPWidgetNode, 'path'>> & Omit<AXPWidgetNode, 'path'>;\n };\n options?: AXPOptionsData;\n validations?: AXPValidationRules;\n visible: boolean;\n}\n\nexport function cloneProperty(\n property: AXPWidgetProperty,\n values: AXPPartialNested<AXPWidgetProperty>\n): AXPWidgetProperty {\n return merge(cloneDeep(property), values);\n}\n\nexport function createStringProperty(ctor: {\n defaultValue?: string;\n name: string;\n title: string;\n path?: string;\n group: AXPWidgetPropertyGroup;\n visible?: boolean;\n}): AXPWidgetProperty {\n return {\n name: ctor.name,\n title: ctor.title,\n group: ctor.group,\n schema: {\n dataType: 'string',\n defaultValue: ctor.defaultValue,\n interface: {\n name: ctor.name,\n path: ctor.path ?? ctor.name,\n type: AXPWidgetsCatalog.text,\n },\n },\n visible: ctor.visible ?? true,\n };\n}\n\nexport function createBooleanProperty(ctor: {\n defaultValue?: boolean;\n name: string;\n title: string;\n path?: string;\n group: AXPWidgetPropertyGroup;\n visible?: boolean;\n}): AXPWidgetProperty {\n return {\n name: ctor.name,\n title: ctor.title,\n group: ctor.group,\n schema: {\n dataType: 'boolean',\n defaultValue: ctor.defaultValue ?? false,\n interface: {\n name: ctor.name,\n path: ctor.path ?? ctor.name,\n type: AXPWidgetsCatalog.toggle,\n },\n },\n visible: ctor.visible ?? true,\n };\n}\n\nexport function createSelectProperty<T = string | { id: string; title: string }>(ctor: {\n defaultValue: T | T[];\n dataSource: T[];\n name: string;\n title: string;\n path?: string;\n group: AXPWidgetPropertyGroup;\n visible?: boolean;\n}): AXPWidgetProperty {\n return {\n name: ctor.name,\n title: ctor.title,\n group: ctor.group,\n schema: {\n dataType: 'string',\n defaultValue: Array.isArray(ctor.defaultValue)\n ? ctor.defaultValue.map((item) => (typeof item === 'string' ? { id: item } : item))\n : typeof ctor.defaultValue === 'string'\n ? { id: ctor.defaultValue, title: ctor.defaultValue }\n : ctor.defaultValue,\n interface: {\n name: ctor.name,\n path: ctor.path ?? ctor.name,\n type: AXPWidgetsCatalog.select,\n options: {\n dataSource: ctor.dataSource.map((item) => (typeof item === 'string' ? { id: item, title: item } : item)),\n },\n },\n },\n visible: ctor.visible ?? true,\n };\n}\n\nexport interface AXPWidgetNode {\n type: AXPWidgetTypesMap[keyof AXPWidgetTypesMap];\n path?: string;\n name?: string;\n defaultValue?: any;\n formula?: string;\n children?: AXPWidgetNode[];\n options?: AXPOptionsData;\n triggers?: AXPWidgetTriggers;\n}\n\nexport interface AXPWidgetTypesMap {\n checkbox: 'checkbox-editor';\n color: 'color-editor';\n contact: 'contact-editor';\n dateTime: 'date-time-editor';\n email: 'email-editor';\n largeText: 'large-text-editor';\n link: 'link-editor';\n number: 'number-editor';\n password: 'password-editor';\n phone: 'phone-editor';\n richText: 'rich-text-editor';\n select: 'select-editor';\n selectionList: 'selection-list-editor';\n text: 'text-editor';\n toggle: 'toggle-editor';\n blockLayout: 'block-layout';\n pageLayout: 'page-layout';\n repeaterLayout: 'repeater-layout';\n textBlockLayout: 'text-block-layout';\n file: 'file';\n map: 'map';\n gallery: 'gallery';\n signature: 'signature';\n buttonAction: 'button-action';\n document: 'document-layout';\n lookup: 'lookup-editor';\n formField: 'form-field';\n grid: 'grid-layout';\n gridRow: 'grid-row-layout';\n gridItem: 'grid-item-layout';\n qrcode: 'qrcode';\n widgetSelector: 'widget-selector';\n}\n\nexport interface AXPWidgetNodeToken {\n config: AXPWidgetConfig;\n node: AXPWidgetNode;\n options?: AXPOptionsData;\n}\n\nexport interface AXPWidgetColumnNode {\n type: string;\n path: string;\n options?: AXPOptionsData;\n}\n\nexport interface AXPWidgetColumnNodeToken extends AXPWidgetColumnNode {\n config: AXPWidgetConfig;\n}\n\nexport const AXP_WIDGET_TOKEN = new InjectionToken<AXPWidgetNodeToken>('AXP_WIDGET_TOKEN');\nexport const AXP_WIDGET_COLUMN_TOKEN = new InjectionToken<AXPWidgetColumnNodeToken>('AXP_WIDGET_COLUMN_TOKEN');\n\nexport interface AXPWidgetComponentConfig {\n component: () => Promise<any>;\n properties?: AXPWidgetProperty[];\n}\n\nexport interface AXPWidgetConfigComponents {\n designer?: AXPWidgetComponentConfig;\n view?: AXPWidgetComponentConfig;\n edit?: AXPWidgetComponentConfig;\n print?: AXPWidgetComponentConfig;\n column?: AXPWidgetComponentConfig;\n filter?: AXPWidgetComponentConfig;\n}\n\nexport type AXPWidgetType = 'container' | 'editor' | 'action' | 'view';\n\nexport interface AXPWidgetConfig {\n name: AXPWidgetTypesMap[keyof AXPWidgetTypesMap];\n title: string;\n icon?: string;\n description?: string;\n group: AXPWidgetGroup;\n properties?: AXPWidgetProperty[];\n components: AXPWidgetConfigComponents;\n meta?: AXPMetaData;\n type: AXPWidgetType;\n visible?: boolean;\n}\n\nexport type AXPWidgetRenderMode = keyof AXPWidgetConfigComponents;\n\nexport interface AXPLayoutContextEvent {\n oldValue: any;\n newValue: any;\n path?: string | null;\n data: any;\n init: boolean;\n}\n\n@Injectable()\nexport abstract class AXPWidgetComponent<T = any | null | void> extends AXPLayoutElement {\n protected readonly token = inject(AXP_WIDGET_TOKEN);\n public readonly host = inject(ElementRef).nativeElement as HTMLDivElement;\n\n protected readonly config = this.token.config;\n\n protected readonly name = this.token.node.name;\n protected readonly path = this.token.node.path ?? (this.config.type == 'editor' ? this.name : null);\n protected readonly defaultValue = this.token.node.defaultValue;\n\n protected readonly _children = signal(this.token.node.children ?? []);\n protected children = this._children.asReadonly();\n\n protected _options = signal<any>(this.token.options ?? {});\n protected options = this._options.asReadonly();\n\n private readonly contextService = inject(AXPLayoutBuilderService);\n\n protected readonly rawValue = computed<T>(() => {\n\n return this._fullPath ? get(this.contextService.context, this._fullPath) : null;\n });\n\n public readonly onReady = new Subject<void>();\n\n private isRendered = false;\n\n private _id: string | null;\n public get id(): string | null {\n return this._id;\n }\n\n parent: AXPWidgetComponent | null | undefined;\n index: number | null | undefined;\n mode: AXPWidgetRenderMode;\n\n private _fullPath: string;\n\n ngOnInit() {\n this.initRender();\n }\n\n private nextRender = afterNextRender(() => {\n //\n if (!this.isRendered) {\n //this.detectFullPath();\n //\n this.onReady.next();\n //\n this.isRendered = true;\n }\n });\n\n private initRender() {\n if (this.config.type == 'editor') {\n this.detectFullPath();\n if (this.defaultValue != null) {\n this.setValue(this.defaultValue, true);\n }\n }\n }\n\n getValue<T>() {\n return this.rawValue();\n }\n\n setValue(value: T | null, init: boolean = false) {\n const oldValue = this.rawValue();\n value = isUndefined(value) ? null : value;\n if (this._fullPath) {\n this.contextService.setValue(this._fullPath, value, init);\n this.onValueChanged(oldValue, value);\n }\n }\n\n setOptions(values: any): void {\n this._options.set({ ...this.options(), ...values });\n }\n\n call(name: string, ...args: any[]): void {\n const fn = get(this, name) as Function;\n if (fn && typeof fn == 'function') {\n fn.bind(this)(...args);\n }\n }\n\n setChildren(children: AXPWidgetNode[]) {\n this._children.set([...children]);\n }\n\n onValueChanged(oldValue: T | null, newValue: T | null) {}\n\n private detectFullPath() {\n let sections = [];\n let ids = [];\n //\n let parent: AXPWidgetComponent | null | undefined = this;\n //\n while (parent) {\n const path = parent.path; //?? parent.name;\n const id = parent.name;\n //\n if (path) {\n sections.push(path);\n if (parent.index != null) {\n sections.push(`[${parent.index}]`);\n }\n }\n if (id) {\n ids.push(id);\n if (parent.index != null) {\n ids.push(`${parent.index}`);\n }\n }\n parent = parent.parent;\n }\n //\n this._fullPath = sections.reverse().join('.');\n this._id = this.name || this.parent ? ids.reverse().join('_') : null;\n if (this._id) {\n this.contextService.registerWidget(this._id, this);\n }\n }\n\n protected handleValueChanged(e: AXValueChangedEvent<T>) {\n if (e.isUserInteraction) {\n this.setValue(e.value!);\n }\n }\n}\n\n@Injectable()\nexport abstract class AXPContainerWidgetComponent<T> extends AXPWidgetComponent<T> {\n public readonly node = this.token.node;\n}\n\n@Injectable()\nexport abstract class AXPColumnWidgetComponent<T = any | null | void> {\n private readonly token = inject(AXP_WIDGET_COLUMN_TOKEN);\n\n protected readonly path = this.token.path;\n protected readonly options = this.token.options ?? {};\n protected readonly rawValue: any = null;\n}\n","import { AXUnsubscriber } from '@acorex/core/utils';\nimport { CdkPortalOutletAttachedRef, ComponentPortal } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, Component, ComponentRef, Injector, Input, WritableSignal, inject, signal } from '@angular/core';\nimport { cloneDeep, get, merge, set, sum } from 'lodash-es';\nimport { Observable, filter } from 'rxjs';\nimport { AXPLayoutBuilderService } from './builder.service';\nimport { AXPWidgetRegistryService } from './widget-registery.service';\nimport { AXPWidgetComponent, AXPWidgetNode, AXPWidgetNodeToken, AXPWidgetRenderMode, AXP_WIDGET_TOKEN } from './widget.types';\n\n@Component({\n selector: 'axp-widget-renderer',\n template: `\n @if(mergedOptions().isVisible!=false) { @if(isLoading()){\n <ax-skeleton [animated]=\"true\" class=\"ax-w-full lg:ax-w-[50%] ax-h-8 ax-rounded\"></ax-skeleton>\n } @else {\n <ng-container *ngTemplateOutlet=\"tt\"></ng-container>\n } }\n <ng-template #tt>\n <ng-template [cdkPortalOutlet]=\"portal\" (attached)=\"handleAttached($event)\"></ng-template>\n </ng-template>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: AXUnsubscriber,\n },\n ],\n})\nexport class AXPWidgetRendererComponent {\n private _node: AXPWidgetNode;\n @Input({ required: true })\n public get node(): AXPWidgetNode {\n return this._node;\n }\n public set node(v: AXPWidgetNode) {\n this._node = v;\n this.loadComponent();\n }\n\n private _mode: AXPWidgetRenderMode = 'edit';\n @Input()\n public get mode(): AXPWidgetRenderMode {\n return this._mode;\n }\n public set mode(v: AXPWidgetRenderMode) {\n this._mode = v;\n }\n\n @Input()\n parentNode: AXPWidgetComponent | null;\n\n @Input()\n index: number | null;\n\n protected mergedOptions: WritableSignal<any> = signal<any>({});\n\n private injector = inject(Injector);\n protected builderService = inject(AXPLayoutBuilderService);\n protected widgetRegistery = inject(AXPWidgetRegistryService);\n protected unsubscriber = inject(AXUnsubscriber);\n\n protected isLoading = signal(true);\n private instance!: AXPWidgetComponent;\n protected portal!: ComponentPortal<any>;\n private expressionCache: Map<string, () => Promise<any>> = new Map();\n private expressionEvaluators: Map<string, () => Promise<any>> = new Map();\n private scope: any = null;\n\n constructor() {\n this.builderService.onChanged.pipe(this.unsubscriber.takeUntilDestroy).subscribe(async (e) => {\n if ((await this.updateOptionsBasedOnContext()) > 0) {\n this.applyOptions();\n }\n if (this.checkFormulaForUpdate(this.node.formula, e.path)) {\n await this.updateValueBasedOnFormula();\n }\n });\n }\n\n private async loadComponent() {\n this.isLoading.set(true);\n const widget = this.widgetRegistery.resolve(this.node.type);\n //\n const props = widget?.components[this.mode]?.properties\n ?.filter((c) => c.schema.defaultValue)\n .map((c) => ({ [c.name]: c.schema.defaultValue }))\n .reduce((acc, curr) => {\n return { ...acc, ...curr };\n }, {});\n //\n this.mergedOptions.set(merge(props, this.node.options) || {});\n this.preprocessAndInitialOptions(cloneDeep(this.node.options));\n await this.updateOptionsBasedOnContext();\n const tokenValue = {\n node: this.node,\n options: this.mergedOptions(),\n config: widget,\n } as AXPWidgetNodeToken;\n const token = Injector.create({\n parent: this.injector,\n providers: [\n {\n provide: AXP_WIDGET_TOKEN,\n useValue: tokenValue,\n },\n ],\n });\n var com = await widget?.components[this.mode]?.component();\n this.portal = new ComponentPortal(com, null, token);\n this.isLoading.set(false);\n }\n\n protected async handleAttached(portalOutletRef: CdkPortalOutletAttachedRef) {\n portalOutletRef = portalOutletRef as ComponentRef<AXPWidgetComponent>;\n this.instance = portalOutletRef.instance as AXPWidgetComponent;\n this.instance.parent = this.parentNode;\n this.instance.index = this.index;\n this.instance.mode = this.mode;\n await this.updateValueBasedOnFormula();\n await this.assignTriggers();\n }\n\n private applyOptions() {\n if (!this.instance) return;\n this.instance.setOptions(this.mergedOptions());\n }\n\n private checkFormulaForUpdate(formula: string | undefined, path?: string | null): boolean {\n if (formula) {\n const regex = /context\\.eval\\('([^']+)'\\)/g;\n const matches = formula.match(regex);\n const nodes = matches ? matches.map((match: any) => match.match(/'([^']+)'/)[1]) : [];\n return nodes.includes(path);\n } else return false;\n }\n\n preprocessAndInitialOptions(obj: any, pathPrefix: string = ''): void {\n if (!obj) return;\n Object.entries(obj).forEach(([key, value]) => {\n const currentPath = pathPrefix ? `${pathPrefix}.${key}` : key;\n if (typeof value === 'string' && value.includes('{{')) {\n // Cache dynamic expression for later evaluation\n this.expressionEvaluators.set(currentPath, () => this.evaluateExpression(value));\n } else if (typeof value === 'object' && value !== null && (value.constructor === Object || Array.isArray(value))) {\n // Recursively handle nested objects\n this.preprocessAndInitialOptions(value, currentPath);\n } else {\n // Apply static values directly\n this.mergedOptions.update((currentOptions) => {\n return set(currentOptions, currentPath, value);\n });\n }\n });\n }\n\n async updateOptionsBasedOnContext() {\n const updates: any[] = [];\n for (let [path, evaluator] of this.expressionEvaluators) {\n const newValue = await evaluator();\n updates.push({ path, newValue });\n }\n // Apply updates to mergedOptions\n if (updates.length > 0) {\n this.mergedOptions.update((o) => {\n const updatedOptions = { ...o };\n updates.forEach(({ path, newValue }) => {\n // Set the new value in the updatedOptions object by path\n set(updatedOptions, path, newValue); // Assuming 'set' can handle paths like 'property.subproperty'\n });\n return updatedOptions;\n });\n }\n return updates.length;\n }\n\n async updateValueBasedOnFormula() {\n if (this.node.formula) {\n const value = await this.evaluateExpression(this.node.formula);\n this.instance.setValue(value);\n }\n }\n\n private async evaluateExpression(templateExpression: string): Promise<any> {\n try {\n // Check cache first, but cache the function for evaluation, not the evaluated value\n if (!this.expressionCache.has(templateExpression)) {\n const expressionMatch = templateExpression.match(/\\{\\{\\s*(.*?)\\s*\\}\\}/);\n if (!expressionMatch) {\n throw Error(`No valid expression found in \"${templateExpression}\"`);\n }\n const expression = expressionMatch[1];\n\n // Cache the evaluation function instead of the result\n const scope = this.getGlobalScope();\n const evaluationFunction = async () => {\n const sandbox = new Function('scope', `with (scope) { return (async function() { return ${expression}; })(); }`);\n return await sandbox(scope);\n };\n\n this.expressionCache.set(templateExpression, evaluationFunction);\n }\n\n // Retrieve the function from the cache and call it to evaluate the expression\n const evaluate = this.expressionCache.get(templateExpression);\n if (evaluate) {\n const result = await evaluate();\n return result;\n } else {\n throw Error(`Failed to retrieve evaluation function for expression: \"${templateExpression}\"`);\n }\n } catch (error) {\n console.error('Error evaluating expression:', error);\n return false;\n }\n }\n\n private getGlobalScope() {\n if (this.scope) return this.scope;\n this.scope = {};\n set(this.scope, 'context', this.getContextScope());\n set(this.scope, 'events', this.getEventScope());\n set(this.scope, 'widget', this.getWidgetScope());\n set(this.scope, 'methods', this.getFunctionScope());\n set(this.scope, 'vars', this.getVariablesScope());\n return this.scope;\n }\n\n private getContextScope(): any {\n const scope: any = {};\n set(scope, 'eval', (path: string) => this.builderService.getValue(path));\n return scope;\n }\n\n private getEventScope(): any {\n const scope: any = {};\n set(scope, 'context', (path: string) => this.builderService.onChanged.pipe(filter((c) => c.path == path)));\n set(scope, 'from', (event: string) => get(this.instance.api(), event));\n return scope;\n }\n\n private getWidgetScope(): any {\n const scope: any = {};\n set(scope, 'call', (name: string, ...args: any[]) => {\n this.instance.call(name, ...args);\n });\n set(scope, 'find', (id: string) => {\n return this.builderService.getWidget(id)?.api();\n });\n return scope;\n }\n\n private getFunctionScope(): any {\n const scope: any = {};\n set(scope, 'sum', (values: any) => {\n return sum(values);\n });\n Object.entries(this.builderService.functions).forEach((i) => {\n set(scope, i[0], (...args: any[]) => {\n return i[1](...args);\n });\n });\n return scope;\n }\n\n private getVariablesScope(): any {\n const scope: any = {};\n set(scope, 'eval', (path: string) => get(this.builderService.variables, path));\n return scope;\n }\n\n private async assignTriggers() {\n this.node.triggers?.forEach((t) => {\n const event = this.evaluateTrigger(t.event);\n event?.pipe(this.unsubscriber.takeUntilDestroy).subscribe((c) => {\n this.evaluateAction(t.action);\n });\n });\n }\n\n private evaluateTrigger(templateExpression: string): Observable<any> | null {\n try {\n const expressionMatch = templateExpression.match(/\\{\\{\\s*(.*?)\\s*\\}\\}/);\n if (!expressionMatch) {\n throw Error(`No valid expression found in \"${templateExpression}\"`);\n }\n const expression = expressionMatch[1];\n\n // Cache the evaluation function instead of the result\n const scope = this.getGlobalScope();\n const sandbox = new Function('scope', `with (scope) { return ( function() { return ${expression}; })(); }`);\n return sandbox(scope);\n } catch (error) {\n console.error('Error evaluating expression:', error);\n return null;\n }\n }\n\n private evaluateAction(templateExpression: string) {\n try {\n const expressionMatch = templateExpression.match(/\\{\\{\\s*(.*?)\\s*\\}\\}/);\n if (!expressionMatch) {\n throw Error(`No valid expression found in \"${templateExpression}\"`);\n }\n const expression = expressionMatch[1];\n\n // Cache the evaluation function instead of the result\n const scope: any = this.getGlobalScope();\n const sandbox = new Function('scope', `with (scope) { ${expression} }`);\n sandbox(scope);\n } catch (error) {\n console.error('Error evaluating expression:', error);\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, effect, inject, model } from \"@angular/core\";\nimport { AXPLayoutBuilderService } from \"./builder.service\";\nimport { AXUnsubscriber } from \"@acorex/core/utils\";\nimport { cloneDeep } from \"lodash-es\";\nimport { AXPLayoutContextEvent } from \"./widget.types\";\n\n\n@Component({\n selector: 'axp-widgets-container',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { style: 'display: contents;' },\n providers: [AXPLayoutBuilderService, AXUnsubscriber],\n})\nexport class AXPWidgetContainerComponent {\n\n @Output()\n public readonly onChanged = new EventEmitter<AXPLayoutContextEvent>();\n\n public context = model<any>({});\n\n @Input()\n public set variables(v: any) {\n this.builderService.setVariables(v);\n }\n\n @Input()\n public set functions(v: any) {\n this.builderService.setFunctions(v);\n }\n\n\n private unsubscriber = inject(AXUnsubscriber);\n private builderService = inject(AXPLayoutBuilderService);\n\n private ef = effect(() => {\n this.builderService.initial(this.context());\n }, { allowSignalWrites: true })\n\n ngOnInit() {\n this.builderService\n .onChanged\n .pipe(this.unsubscriber.takeUntilDestroy)\n .subscribe(e => {\n this.context.set(e.data);\n this.onChanged.emit(e);\n });\n }\n}","import { AXDataTableColumnComponent } from '@acorex/components/data-table';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Injector, Input, TemplateRef, ViewChild, inject, signal } from '@angular/core';\nimport { AXPWidgetColumnNode, AXP_WIDGET_COLUMN_TOKEN } from './widget.types';\nimport { AXPLayoutBuilderService } from './builder.service';\nimport { AXPWidgetRegistryService } from './widget-registery.service';\nimport { get, merge } from 'lodash-es';\n\n@Component({\n selector: 'axp-widget-column-renderer',\n template: `\n <ng-template #header>{{ caption }}</ng-template>\n <ng-template #cell let-row>\n @if(component && widgetInjector && row?.data) {\n <ng-container *ngComponentOutlet=\"component; injector: widgetInjector; inputs: getInputs(row.data)\"></ng-container>\n }\n </ng-template>\n <ng-template #footer></ng-template>\n `,\n providers: [AXPLayoutBuilderService, { provide: AXDataTableColumnComponent, useExisting: AXPWidgetColumnRendererComponent }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: ['caption'],\n})\nexport class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent {\n\n protected widgetRegistery = inject(AXPWidgetRegistryService);\n\n private _node: AXPWidgetColumnNode;\n @Input({ required: true })\n public get node(): AXPWidgetColumnNode {\n return this._node;\n }\n public set node(v: AXPWidgetColumnNode) {\n this._node = v;\n }\n\n private mergedOptions = signal<any>({});\n\n @Input()\n public footerTemplate: TemplateRef<unknown>;\n\n @ViewChild('footer')\n private _contentFooterTemplate: TemplateRef<unknown>;\n\n get renderFooterTemplate(): TemplateRef<unknown> {\n return this.footerTemplate ?? this._contentFooterTemplate;\n }\n\n @Input()\n public cellTemplate: TemplateRef<unknown>;\n\n @ViewChild('cell')\n private _contentCellTemplate: TemplateRef<unknown>;\n\n get renderCellTemplate(): TemplateRef<unknown> {\n return this.cellTemplate ?? this._contentCellTemplate;\n }\n\n @Input()\n public headerTemplate: TemplateRef<unknown>;\n\n @ViewChild('header')\n private _contentHeaderTemplate: TemplateRef<unknown>;\n\n get renderHeaderTemplate(): TemplateRef<unknown> {\n return this.headerTemplate ?? this._contentHeaderTemplate;\n }\n\n get loadingEnabled(): boolean {\n return true;\n }\n\n get name(): string {\n return `col-${this.node.path}`;\n }\n\n\n private injector = inject(Injector);\n private cdr = inject(ChangeDetectorRef);\n protected widgetInjector!: Injector;\n protected component!: any;\n\n async ngOnInit() {\n const widget = this.widgetRegistery.resolve(this.node.type);\n const mode = 'column'\n this.component = await widget?.components[mode]?.component();\n //\n const props = widget?.components[mode]?.properties?.filter(c => c.schema.defaultValue)\n .map(c => ({ [c.name]: c.schema.defaultValue }))\n .reduce((acc, curr) => {\n return { ...acc, ...curr };\n }, {});\n //\n this.mergedOptions.set(\n merge(props, this.node.options) || {}\n );\n\n const tokenValue = {\n path: this.node.path,\n options: this.mergedOptions()\n };\n this.widgetInjector = Injector.create({\n parent: this.injector,\n providers: [\n {\n provide: AXP_WIDGET_COLUMN_TOKEN,\n useValue: tokenValue,\n },\n ],\n });\n\n this.width = this.mergedOptions().width ?? '200px';\n this.allowResizing = this.mergedOptions().allowResizing || true;\n this.cdr.detectChanges();\n }\n\n getInputs(data: any): any {\n return { rawValue: get(data, this.node.path!) };\n }\n}\n","import { AXUnsubscriber } from '@acorex/core/utils';\nimport { Directive, Injector, ViewContainerRef, WritableSignal, effect, inject, input, signal } from '@angular/core';\nimport { cloneDeep, get, merge, set, sum } from 'lodash-es';\nimport { Observable, filter } from 'rxjs';\nimport { AXPLayoutBuilderService } from './builder.service';\nimport { AXPWidgetRegistryService } from './widget-registery.service';\nimport { AXPWidgetComponent, AXPWidgetNode, AXPWidgetNodeToken, AXPWidgetRenderMode, AXP_WIDGET_TOKEN } from './widget.types';\n\n\n@Directive({\n selector: '[axp-widget-renderer]',\n providers: [\n {\n provide: AXUnsubscriber,\n },\n ],\n})\nexport class AXPWidgetRendererDirective {\n\n\n parentNode = input<AXPWidgetComponent | null>();\n\n index = input<number | null>();\n\n mode = input.required<AXPWidgetRenderMode>();\n node = input.required<AXPWidgetNode>();\n\n protected mergedOptions: WritableSignal<any> = signal<any>({});\n\n private injector = inject(Injector);\n protected builderService = inject(AXPLayoutBuilderService);\n protected widgetRegistery = inject(AXPWidgetRegistryService);\n protected unsubscriber = inject(AXUnsubscriber);\n private viewContainerRef = inject(ViewContainerRef);\n\n protected isLoading = signal(true);\n private instance!: AXPWidgetComponent;\n private expressionCache: Map<string, () => Promise<any>> = new Map();\n private expressionEvaluators: Map<string, () => Promise<any>> = new Map();\n private scope: any = null;\n\n constructor() {\n this.builderService.onChanged.pipe(this.unsubscriber.takeUntilDestroy).subscribe(async (e) => {\n if ((await this.updateOptionsBasedOnContext()) > 0) {\n this.applyOptions();\n }\n if (this.checkFormulaForUpdate(this.node().formula, e.path)) {\n await this.updateValueBasedOnFormula();\n }\n });\n //\n effect(\n async () => {\n await this.loadComponent();\n },\n { allowSignalWrites: true }\n );\n }\n\n private async loadComponent() {\n this.isLoading.set(true);\n this.viewContainerRef.clear();\n const widget = this.widgetRegistery.resolve(this.node().type);\n //\n const props = widget?.components[this.mode()]?.properties\n ?.filter((c) => c.schema.defaultValue)\n .map((c) => ({ [c.name]: c.schema.defaultValue }))\n .reduce((acc, curr) => {\n return { ...acc, ...curr };\n }, {});\n //\n this.mergedOptions.set(merge(props, this.node().options) || {});\n this.preprocessAndInitialOptions(cloneDeep(this.node().options));\n await this.updateOptionsBasedOnContext();\n //\n const tokenValue = {\n node: this.node(),\n options: this.mergedOptions(),\n config: widget,\n } as AXPWidgetNodeToken;\n const token = Injector.create({\n parent: this.injector,\n providers: [\n {\n provide: AXP_WIDGET_TOKEN,\n useValue: tokenValue,\n },\n ],\n });\n //\n var com = await widget?.components[this.mode()]?.component();\n this.instance = this.viewContainerRef.createComponent<AXPWidgetComponent<any>>(com, { injector: token }).instance;\n this.instance.parent = this.parentNode();\n this.instance.index = this.index();\n this.instance.mode = this.mode();\n await this.updateValueBasedOnFormula();\n await this.assignTriggers();\n //\n this.isLoading.set(false);\n }\n\n private applyOptions() {\n if (!this.instance) return;\n this.instance.setOptions(this.mergedOptions());\n }\n\n private checkFormulaForUpdate(formula: string | undefined, path?: string | null): boolean {\n if (formula) {\n const regex = /context\\.eval\\('([^']+)'\\)/g;\n const matches = formula.match(regex);\n const nodes = matches ? matches.map((match: any) => match.match(/'([^']+)'/)[1]) : [];\n return nodes.includes(path);\n } else return false;\n }\n\n preprocessAndInitialOptions(obj: any, pathPrefix: string = ''): void {\n if (!obj) return;\n Object.entries(obj).forEach(([key, value]) => {\n const currentPath = pathPrefix ? `${pathPrefix}.${key}` : key;\n if (typeof value === 'string' && value.includes('{{')) {\n // Cache dynamic expression for later evaluation\n this.expressionEvaluators.set(currentPath, () => this.evaluateExpression(value));\n } else if (typeof value === 'object' && value !== null && (value.constructor === Object || Array.isArray(value))) {\n // Recursively handle nested objects\n this.preprocessAndInitialOptions(value, currentPath);\n } else {\n // Apply static values directly\n this.mergedOptions.update((currentOptions) => {\n return set(currentOptions, currentPath, value);\n });\n }\n });\n }\n\n async updateOptionsBasedOnContext() {\n const updates: any[] = [];\n for (let [path, evaluator] of this.expressionEvaluators) {\n const newValue = await evaluator();\n updates.push({ path, newValue });\n }\n // Apply updates to mergedOptions\n if (updates.length > 0) {\n this.mergedOptions.update((o) => {\n const updatedOptions = { ...o };\n updates.forEach(({ path, newValue }) => {\n // Set the new value in the updatedOptions object by path\n set(updatedOptions, path, newValue); // Assuming 'set' can handle paths like 'property.subproperty'\n });\n return updatedOptions;\n });\n }\n return updates.length;\n }\n\n async updateValueBasedOnFormula() {\n if (this.node().formula) {\n const value = await this.evaluateExpression(this.node().formula!);\n this.instance.setValue(value);\n }\n }\n\n private async evaluateExpression(templateExpression: string): Promise<any> {\n try {\n // Check cache first, but cache the function for evaluation, not the evaluated value\n if (!this.expressionCache.has(templateExpression)) {\n const expressionMatch = templateExpression.match(/\\{\\{\\s*(.*?)\\s*\\}\\}/);\n if (!expressionMatch) {\n throw Error(`No valid expression found in \"${templateExpression}\"`);\n }\n const expression = expressionMatch[1];\n\n // Cache the evaluation function instead of the result\n const scope = this.getGlobalScope();\n const evaluationFunction = async () => {\n const sandbox = new Function('scope', `with (scope) { return (async function() { return ${expression}; })(); }`);\n return await sandbox(scope);\n };\n\n this.expressionCache.set(templateExpression, evaluationFunction);\n }\n\n // Retrieve the function from the cache and call it to evaluate the expression\n const evaluate = this.expressionCache.get(templateExpression);\n if (evaluate) {\n const result = await evaluate();\n return result;\n } else {\n throw Error(`Failed to retrieve evaluation function for expression: \"${templateExpression}\"`);\n }\n } catch (error) {\n console.error('Error evaluating expression:', error);\n return false;\n }\n }\n\n private getGlobalScope() {\n if (this.scope) return this.scope;\n this.scope = {};\n set(this.scope, 'context', this.getContextScope());\n set(this.scope, 'events', this.getEventScope());\n set(this.scope, 'widget', this.getWidgetScope());\n set(this.scope, 'methods', this.getFunctionScope());\n set(this.scope, 'vars', this.getVariablesScope());\n return this.scope;\n }\n\n private getContextScope(): any {\n const scope: any = {};\n set(scope, 'eval', (path: string) => this.builderService.getValue(path));\n return scope;\n }\n\n private getEventScope(): any {\n const scope: any = {};\n set(scope, 'context', (path: string) => this.builderService.onChanged.pipe(filter((c) => c.path == path)));\n set(scope, 'from', (event: string) => get(this.instance.api(), event));\n return scope;\n }\n\n private getWidgetScope(): any {\n const scope: any = {};\n set(scope, 'call', (name: string, ...args: any[]) => {\n this.instance.call(name, ...args);\n });\n set(scope, 'find', (id: string) => {\n return this.builderService.getWidget(id)?.api();\n });\n return scope;\n }\n\n private getFunctionScope(): any {\n const scope: any = {};\n set(scope, 'sum', (values: any) => {\n return sum(values);\n });\n Object.entries(this.builderService.functions).forEach((i) => {\n set(scope, i[0], (...args: any[]) => {\n return i[1](...args);\n });\n });\n return scope;\n }\n\n private getVariablesScope(): any {\n const scope: any = {};\n set(scope, 'eval', (path: string) => get(this.builderService.variables, path));\n return scope;\n }\n\n private async assignTriggers() {\n this.node().triggers?.forEach((t) => {\n const event = this.evaluateTrigger(t.event);\n event?.pipe(this.unsubscriber.takeUntilDestroy).subscribe((c) => {\n this.evaluateAction(t.action);\n });\n });\n }\n\n private evaluateTrigger(templateExpression: string): Observable<any> | null {\n try {\n const expressionMatch = templateExpression.match(/\\{\\{\\s*(.*?)\\s*\\}\\}/);\n if (!expressionMatch) {\n throw Error(`No valid expression found in \"${templateExpression}\"`);\n }\n const expression = expressionMatch[1];\n\n // Cache the evaluation function instead of the result\n const scope = this.getGlobalScope();\n const sandbox = new Function('scope', `with (scope) { return ( function() { return ${expression}; })(); }`);\n return sandbox(scope);\n } catch (error) {\n console.error('Error evaluating expression:', error);\n return null;\n }\n }\n\n private evaluateAction(templateExpression: string) {\n try {\n const expressionMatch = templateExpression.match(/\\{\\{\\s*(.*?)\\s*\\}\\}/);\n if (!expressionMatch) {\n throw Error(`No valid expression found in \"${templateExpression}\"`);\n }\n const expression = expressionMatch[1];\n\n // Cache the evaluation function instead of the result\n const scope: any = this.getGlobalScope();\n const sandbox = new Function('scope', `with (scope) { ${expression} }`);\n sandbox(scope);\n } catch (error) {\n console.error('Error evaluating expression:', error);\n }\n }\n}\n","import { AXSkeletonModule } from \"@acorex/components/skeleton\";\nimport { PortalModule } from \"@angular/cdk/portal\";\nimport { CommonModule } from \"@angular/common\";\nimport { Inject, ModuleWithProviders, NgModule, Optional } from \"@angular/core\";\nimport { AXPWidgetRendererComponent } from \"./widget-renderer.component\";\nimport { AXPWidgetContainerComponent } from \"./widget-container.component\";\nimport { AXPWidgetRegistryService } from \"./widget-registery.service\";\nimport { AXPWidgetConfig } from \"./widget.types\";\nimport { AXPWidgetColumnRendererComponent } from \"./widget-column-renderer\";\nimport { AXPWidgetRendererDirective } from \"./widget-renderer.component.directive\";\n\nexport interface AXPLayoutBuilderModuleConfigs {\n widgets: AXPWidgetConfig[]\n}\n\nconst COMPONENTS = [AXPWidgetContainerComponent, AXPWidgetRendererComponent, AXPWidgetColumnRendererComponent, AXPWidgetRendererDirective];\n\n@NgModule({\n imports: [CommonModule, PortalModule, AXSkeletonModule, CommonModule],\n exports: [...COMPONENTS],\n declarations: [...COMPONENTS],\n})\nexport class AXPLayoutBuilderModule {\n static forRoot(config?: AXPLayoutBuilderModuleConfigs): ModuleWithProviders<AXPLayoutBuilderModule> {\n return {\n ngModule: AXPLayoutBuilderModule,\n providers: [\n {\n provide: 'AXPLayoutBuilderModuleFactory',\n useFactory: (registry: AXPWidgetRegistryService) => () => {\n config?.widgets?.forEach(w => registry.register(w));\n },\n deps: [AXPWidgetRegistryService],\n multi: true\n },\n ]\n };\n }\n\n static forChild(config?: AXPLayoutBuilderModuleConfigs): ModuleWithProviders<AXPLayoutBuilderModule> {\n return {\n ngModule: AXPLayoutBuilderModule,\n providers: [\n {\n provide: 'AXPLayoutBuilderModuleFactory',\n useFactory: (registry: AXPWidgetRegistryService) => () => {\n config?.widgets?.forEach(w => registry.register(w));\n },\n deps: [AXPWidgetRegistryService],\n multi: true\n }\n ]\n };\n }\n\n /**\n * @ignore\n */\n constructor(@Optional() @Inject('AXPLayoutBuilderModuleFactory') instances: any[]) {\n instances?.forEach(f => {\n f();\n });\n }\n}\n","import { AXPWidgetGroup } from './widget.types';\n\nexport const AXP_WIDGETS_EDITOR_GROUP: AXPWidgetGroup = {\n name: 'editor',\n order: 2,\n title: 'Editors',\n};\n\nexport const AXP_WIDGETS_ACTION_GROUP: AXPWidgetGroup = {\n name: 'action',\n order: 3,\n title: 'Action',\n};\n\nexport const AXP_WIDGETS_LAYOUT_GROUP: AXPWidgetGroup = {\n name: 'layout',\n order: 1,\n title: 'Layout',\n};\n\nexport const AXP_WIDGETS_ADVANCE_GROUP: AXPWidgetGroup = {\n name: 'advance',\n order: 4,\n title: 'Advance',\n};\n\nexport const AXP_WIDGETS_GROUPS: AXPWidgetGroup[] = [\n AXP_WIDGETS_EDITOR_GROUP,\n AXP_WIDGETS_ACTION_GROUP,\n AXP_WIDGETS_LAYOUT_GROUP,\n AXP_WIDGETS_ADVANCE_GROUP,\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1601,7 +1601,7 @@ class AXPLookupWidgetEditComponent extends AXPWidgetComponent {
1601
1601
  this.isOpen = signal(false);
1602
1602
  this.vm = signal(null);
1603
1603
  this.placeholder = computed(() => {
1604
- return this.translateService.translateSync('widget.lookup.search') + this.vm()?.inlineFiltersPlaceholders().join(', ');
1604
+ return (this.translateService.translateSync('widget.lookup.search') + this.vm()?.inlineFiltersPlaceholders().join(', '));
1605
1605
  });
1606
1606
  }
1607
1607
  async ngOnInit() {
@@ -1696,21 +1696,30 @@ class AXPLookupWidgetEditComponent extends AXPWidgetComponent {
1696
1696
  const text = this.formatService.format(this.textField(), 'string', item);
1697
1697
  this.displayText.set(text);
1698
1698
  this.setValue(item.id);
1699
+ // extract data from valueField and set context by expose path
1699
1700
  if (this.expose()) {
1700
1701
  if (typeof this.expose() == 'string') {
1701
1702
  this.builderService.setValue(this.expose(), item);
1702
1703
  }
1704
+ // support multiple expose items
1703
1705
  else if (Array.isArray(this.expose())) {
1704
1706
  this.expose().forEach((i) => {
1705
1707
  if (typeof i == 'string') {
1706
1708
  this.builderService.setValue(i, item);
1707
1709
  }
1708
1710
  else {
1711
+ // extract data from item by source path and set context by target path
1709
1712
  const key = get(item, i.source);
1710
1713
  this.builderService.setValue(i.target, key);
1711
1714
  }
1712
1715
  });
1713
1716
  }
1717
+ // extract data from item by source path and set context by target path
1718
+ else if (typeof this.expose() == 'object') {
1719
+ const i = this.expose();
1720
+ const key = get(item, i.source);
1721
+ this.builderService.setValue(i.target, key);
1722
+ }
1714
1723
  }
1715
1724
  }
1716
1725
  handleClearClick() {
@@ -1732,7 +1741,11 @@ class AXPLookupWidgetEditComponent extends AXPWidgetComponent {
1732
1741
  (onBlur)="handleOnBlur($event)"
1733
1742
  >
1734
1743
  @for (validation of validationRules; track $index) {
1735
- <ax-validation-rule [rule]="validation.rule" [message]="validation.options?.message" [options]="validation.options"></ax-validation-rule>
1744
+ <ax-validation-rule
1745
+ [rule]="validation.rule"
1746
+ [message]="validation.options?.message"
1747
+ [options]="validation.options"
1748
+ ></ax-validation-rule>
1736
1749
  }
1737
1750
  <ax-clear-button (click)="handleClearClick()"></ax-clear-button>
1738
1751
 
@@ -1760,7 +1773,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
1760
1773
  (onBlur)="handleOnBlur($event)"
1761
1774
  >
1762
1775
  @for (validation of validationRules; track $index) {
1763
- <ax-validation-rule [rule]="validation.rule" [message]="validation.options?.message" [options]="validation.options"></ax-validation-rule>
1776
+ <ax-validation-rule
1777
+ [rule]="validation.rule"
1778
+ [message]="validation.options?.message"
1779
+ [options]="validation.options"
1780
+ ></ax-validation-rule>
1764
1781
  }
1765
1782
  <ax-clear-button (click)="handleClearClick()"></ax-clear-button>
1766
1783