{"version":3,"file":"acorex-platform-layout-components-binding-expression-editor-popup.component-RttFwaw9.mjs","sources":["../../../../libs/platform/layout/components/src/lib/property-viewer/binding-expression-editor-popup.component.ts"],"sourcesContent":["import { AXButtonModule } from '@acorex/components/button';\nimport { AXCodeEditorModule } from '@acorex/components/code-editor';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { setupPopupFooterKeyboardShortcuts } from '@acorex/platform/core';\nimport { CommonModule } from '@angular/common';\nimport {\n    ChangeDetectionStrategy,\n    Component,\n    input,\n    linkedSignal,\n    WritableSignal,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\n/**\n * Popup for editing a binding/expression string (e.g. `{{ context.eval('x') }}`).\n * Mirrors the trigger expression editor UX: code editor with Save/Cancel.\n */\n@Component({\n    selector: 'axp-binding-expression-editor-popup',\n    template: `\n        <div class=\"ax-flex ax-flex-col ax-h-full ax-overflow-hidden\">\n            <div class=\"ax-flex-1 ax-p-4 ax-overflow-hidden\" style=\"direction: ltr;\">\n                <ax-code-editor\n                    [ngModel]=\"currentValue()\"\n                    (ngModelChange)=\"handleValueChange($event)\"\n                    language=\"javascript\"\n                    [lineNumbers]=\"true\"\n                    class=\"ax-w-full ax-h-full ax-min-h-96\"\n                ></ax-code-editor>\n            </div>\n        </div>\n\n        <ax-footer>\n            <ax-suffix>\n                <ax-button\n                    look=\"solid\"\n                    [text]=\"'@general:actions.cancel.title' | translate | async\"\n                    (onClick)=\"handleCancelClick()\"\n                ></ax-button>\n                <ax-button\n                    look=\"solid\"\n                    color=\"primary\"\n                    [text]=\"'@general:actions.save.title' | translate | async\"\n                    (onClick)=\"handleSaveClick()\"\n                ></ax-button>\n            </ax-suffix>\n        </ax-footer>\n    `,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [\n        CommonModule,\n        FormsModule,\n        AXButtonModule,\n        AXCodeEditorModule,\n        AXDecoratorModule,\n        AXTranslationModule,\n    ],\n})\nexport class AXPBindingExpressionEditorPopupComponent extends AXBasePageComponent {\n    //#region ----   Inputs   ----\n\n    /** Use a distinct name to avoid popup 'data.value' overwriting the input signal. */\n    initialValue = input.required<string | null>();\n\n    //#endregion\n\n    //#region ----   Properties   ----\n\n    protected readonly currentValue: WritableSignal<string> = linkedSignal(\n        () => (this.initialValue() ?? '') as string,\n    );\n\n    constructor() {\n        super();\n        setupPopupFooterKeyboardShortcuts(\n            () => [\n                {\n                    title: '@general:actions.cancel.title',\n                    command: 'cancel',\n                    handler: () => this.handleCancelClick(),\n                },\n                {\n                    title: '@general:actions.save.title',\n                    command: 'submit',\n                    handler: () => this.handleSaveClick(),\n                },\n            ],\n            { id: 'binding-expression-editor-popup' },\n        );\n    }\n\n    //#endregion\n\n    //#region ----   Event Handlers   ----\n\n    protected handleValueChange(newValue: string): void {\n        this.currentValue.set(newValue);\n    }\n\n    protected handleCancelClick(): void {\n        this.close();\n    }\n\n    protected handleSaveClick(): void {\n        this.close({\n            value: this.currentValue(),\n        });\n    }\n\n    //#endregion\n}\n"],"names":["i3","i4","i5","i6"],"mappings":"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"}