{"version":3,"file":"acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs","sources":["../../../../libs/platform/layout/widgets/src/lib/widgets/layout/page/page-widget-designer.component.ts"],"sourcesContent":["import type { AXPWidgetNode } from '@acorex/platform/contracts';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPLayoutBaseWidgetComponent, AXPWidgetCoreModule } from '@acorex/platform/layout/widget-core';\n\nimport {\n  AXPDesignerAddWidgetLineButtonComponent,\n  AXPDesignerService,\n  AXPWidgetDesignerRendererDirective,\n} from '@acorex/platform/layout/designer';\n\nimport { ChangeDetectionStrategy, Component, computed, HostBinding, inject, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'axp-page-widget-designer',\n  template: `\n    @if (hasHeader()) {\n      @if (headerNodes().length) {\n        <header class=\"axp-page-widget-header\">\n          @for (node of headerNodes(); track $index) {\n            <ng-container\n              axp-widget-designer-renderer\n              [node]=\"node\"\n              [parentNode]=\"this\"\n              [mode]=\"mode\"\n              [locked]=\"this.locked\"\n            ></ng-container>\n          }\n        </header>\n      } @else {\n        <axp-designer-add-widget-line-button\n          [text]=\"'Page Header'\"\n          (onClick)=\"handleAddHeader()\"\n        ></axp-designer-add-widget-line-button>\n      }\n    }\n    @for (node of onlyChildren(); track $index) {\n      <ng-container axp-widget-designer-renderer [node]=\"node\" [parentNode]=\"this\" [mode]=\"mode\"></ng-container>\n    }\n    <!-- <axp-designer-add-widget-mini-button></axp-designer-add-widget-mini-button> -->\n    <axp-designer-add-widget-line-button\n      [text]=\"'Add Element'\"\n      (onClick)=\"handleAddElement()\"\n    ></axp-designer-add-widget-line-button>\n    @if (hasFooter()) {\n      @if (footerNodes().length) {\n        <footer class=\"axp-page-widget-footer\">\n          @for (node of footerNodes(); track $index) {\n            <ng-container axp-widget-designer-renderer [node]=\"node\" [parentNode]=\"this\" [mode]=\"mode\"></ng-container>\n          }\n        </footer>\n      } @else {\n        <axp-designer-add-widget-line-button\n          [text]=\"'Page Footer'\"\n          (onClick)=\"handleAddFooter()\"\n        ></axp-designer-add-widget-line-button>\n      }\n    }\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  imports: [\n    AXPWidgetCoreModule,\n    AXButtonModule,\n    AXDecoratorModule,\n    AXPWidgetDesignerRendererDirective,\n    AXPDesignerAddWidgetLineButtonComponent,\n  ],\n  providers: [\n    {\n      provide: AXPLayoutBaseWidgetComponent,\n      useExisting: AXPPageWidgetDesignerComponent,\n    },\n  ],\n})\nexport class AXPPageWidgetDesignerComponent extends AXPLayoutBaseWidgetComponent {\n  protected designerService = inject(AXPDesignerService);\n\n  protected backgroundColor = computed<string>(() => this.options()['backgroundColor'] as string);\n\n  protected theme = computed<string>(() => (this.options()['theme']?.id as string) ?? 'default');\n  protected hasHeader = computed<boolean>(() => this.options()['hasHeader']);\n  protected hasFooter = computed<boolean>(() => this.options()['hasFooter']);\n  protected direction = computed<string>(() => this.options()['direction']);\n\n  protected onlyChildren = computed<AXPWidgetNode[]>(() =>\n    this.children().filter((c) => !c.meta?.['footer'] && !c.meta?.['header']),\n  );\n  protected headerNodes = computed<AXPWidgetNode[]>(() => this.children().filter((c) => c.meta?.['header']) ?? []);\n  protected footerNodes = computed<AXPWidgetNode[]>(() => this.children().filter((c) => c.meta?.['footer']) ?? []);\n\n  protected async handleAddHeader() {\n    const widgets = await this.designerService.showPicker(this.node);\n    widgets.forEach((c) => (c.meta = { header: true }));\n  }\n\n  protected async handleAddFooter() {\n    const widgets = await this.designerService.showPicker(this.node);\n    widgets.forEach((c) => (c.meta = { footer: true }));\n  }\n\n  protected async handleAddElement() {\n    await this.designerService.showPicker(this.node);\n  }\n\n  @HostBinding('style')\n  private get __style(): any {\n    return {\n      'background-color': this.backgroundColor(),\n    };\n  }\n\n  @HostBinding('class')\n  private get __class(): any {\n    return {\n      'ax-widget-container': true,\n      'ax-dark': this.theme() == 'dark',\n      'ax-light': this.theme() == 'light',\n      'ax-block': true,\n      'ax-w-full': true,\n      'ax-overflow-auto': true,\n      'ax-rtl': this.direction() == 'rtl',\n    };\n  }\n}\n"],"names":[],"mappings":"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"}