x-print-designer 0.0.1
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.
- package/LICENSE +663 -0
- package/README.md +4 -0
- package/dist/assets/Axis-hDyHms34.js +21 -0
- package/dist/assets/JsBarcode-BOwNyIpk.js +1 -0
- package/dist/assets/barcode-BoWGE6Vo.js +8 -0
- package/dist/assets/browser-CR_q2Gy7.js +1 -0
- package/dist/assets/canvg-ChoTXRpY.js +18 -0
- package/dist/assets/charts-oAXpTr-7.js +1 -0
- package/dist/assets/components-scMrpbvF.js +22 -0
- package/dist/assets/core-DLbFUvXo.js +1 -0
- package/dist/assets/createSeriesData-DY7MF9QR.js +1 -0
- package/dist/assets/customGraphicKeyframeAnimation-g4tvH6et.js +3 -0
- package/dist/assets/dom-to-image-more.min-Bzng6PqA.js +1 -0
- package/dist/assets/favicon-o5K9zUr2.ico +0 -0
- package/dist/assets/graphic-Cay9kDL2.js +29 -0
- package/dist/assets/html2canvas.esm-QH1iLAAe.js +22 -0
- package/dist/assets/index-BQQffM8S.css +1 -0
- package/dist/assets/index-EEoYfeHo.js +153 -0
- package/dist/assets/jszip.min-DLPWIKb1.js +12 -0
- package/dist/assets/logo-DXm7qK2I.png +0 -0
- package/dist/assets/monaco-BQthl4Am.js +11 -0
- package/dist/assets/pdf-Cjgn4CZy.js +170 -0
- package/dist/assets/purify.es-B5CD4DQe.js +2 -0
- package/dist/assets/renderers-CHDIdITR.js +3 -0
- package/dist/assets/utils-C6aID195.js +1 -0
- package/dist/assets/vendor-B8_O41fo.js +39 -0
- package/dist/index.html +19 -0
- package/package.json +68 -0
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/JsBarcode-BOwNyIpk.js","assets/canvg-ChoTXRpY.js","assets/barcode-BoWGE6Vo.js","assets/browser-CR_q2Gy7.js","assets/core-DLbFUvXo.js","assets/Axis-hDyHms34.js","assets/graphic-Cay9kDL2.js","assets/createSeriesData-DY7MF9QR.js","assets/charts-oAXpTr-7.js","assets/customGraphicKeyframeAnimation-g4tvH6et.js","assets/components-scMrpbvF.js","assets/renderers-CHDIdITR.js","assets/dom-to-image-more.min-Bzng6PqA.js","assets/pdf-Cjgn4CZy.js","assets/jszip.min-DLPWIKb1.js","assets/monaco-BQthl4Am.js","assets/vendor-B8_O41fo.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
var su=Object.defineProperty;var iu=(t,e,r)=>e in t?su(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var _l=(t,e,r)=>iu(t,typeof e!="symbol"?e+"":e,r);import{b as du,e as sc,t as El,r as G,w as De,c as le,m as Pe,f,g as w,i as a,j as Qt,d as Oe,u as Ke,k as Te,l as _e,p as ic,q as ge,v as l,x as he,F as Ie,y as b,z as st,A as Me,B as Ue,C as He,D as Le,n as tt,a as ot,o as at,E as qe,G as Be,H as _t,I as yt,T as Et,J as Ft,K as jt,L as Jn,M as dc,h as cu,N as cc,O as uc,P as vt,Q as Ct,R as uu,S as pu}from"./vendor-B8_O41fo.js";import{c as Sr,g as br}from"./canvg-ChoTXRpY.js";import{v as rt}from"./utils-C6aID195.js";import{_ as gt}from"./pdf-Cjgn4CZy.js";import{loader as gu}from"./monaco-BQthl4Am.js";(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))n(o);new MutationObserver(o=>{for(const d of o)if(d.type==="childList")for(const s of d.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&n(s)}).observe(document,{childList:!0,subtree:!0});function r(o){const d={};return o.integrity&&(d.integrity=o.integrity),o.referrerPolicy&&(d.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?d.credentials="include":o.crossOrigin==="anonymous"?d.credentials="omit":d.credentials="same-origin",d}function n(o){if(o.ep)return;o.ep=!0;const d=r(o);fetch(o.href,d)}})();const hu={common:{save:"Save",cancel:"Cancel",confirm:"Confirm",close:"Close",delete:"Delete",copy:"Copy",cut:"Cut",paste:"Paste",undo:"Undo",redo:"Redo",edit:"Edit",loading:"Loading...",success:"Success",input:"Input",actions:"Actions",width:"Width",height:"Height",mm:"mm",px:"px",pt:"pt",in:"in",cm:"cm",rotate:"Rotate",lock:"Lock",unlock:"Unlock",appTitle:"Print Designer",testData:"Test Data",invalidJson:"Invalid JSON. Changes were not saved.",testDataKeyChanged:"Test data keys cannot be changed. Please only edit values.",variables:"Available Variables",fields:"Field Selection",sampleData:"View Sample Data",fieldType:"Field Type",textField:"Text",arrayField:"Array",noData:"No Data"},template:{select:"Select Template",noTemplates:"No templates yet",new:"New Template",edit:"Edit Template",confirmDelete:'Are you sure you want to delete "{name}"?'},editor:{preview:"Print Preview",exportPdf:"Export PDF",exportHtml:"Export HTML",exportImage:"Export Image",print:"Print",viewJson:"View JSON",viewBlob:"View Blob",viewImageBlob:"View Image Blob",viewPdfBlob:"View PDF Blob",zoomIn:"Zoom In",zoomOut:"Zoom Out",zoomLevel:"Zoom Level",zoomSettings:"Zoom Settings",unit:"Unit",advancedSettings:"Advanced Settings",watermark:"Watermark",watermarkEnable:"Enable",watermarkText:"Text",watermarkTextPlaceholder:"Enter watermark text",watermarkAngle:"Angle",watermarkColor:"Color",watermarkOpacity:"Opacity (%)",watermarkSize:"Size",watermarkDensity:"Density",template:"Template",newTemplate:"New Template",saveTemplate:"Save Template",saveAsTemplate:"Save As Template",templates:"Templates",shortcuts:"Shortcuts",help:"Help",about:"About",paperSettings:"Paper Settings",sizePreset:"Size Preset",custom:"Custom",spacingX:"Horizontal Margin",spacingY:"Vertical Margin",showMarginLines:"Show Margin Lines",showCornerMarkers:"Show Corner Markers",showGrid:"Show Grid",showMinimap:"Show Minimap",headerFooter:"Header & Footer",headerLine:"Header Line",footerLine:"Footer Line",addNewPage:"Add New Page",fonts:{default:"Default",arial:"Arial",timesNewRoman:"Times New Roman",courierNew:"Courier New",simSun:"SimSun (宋体)",simHei:"SimHei (黑体)"},bold:"Bold",italic:"Italic",underline:"Underline",verticalText:"Vertical Text",textColor:"Text Color",backgroundColor:"Background Color",resetRotation:"Reset Rotation",alignLeft:"Align Left",alignCenter:"Align Center",alignRight:"Align Right",alignTop:"Align Top",alignMiddle:"Align Middle",alignBottom:"Align Bottom",group:"Group",lock:"Lock",unlock:"Unlock",fontFamily:"Font Family",settings:"Settings"},canvas:{addPage:"Add Page",copyPage:"Copy Page",pastePage:"Paste Page",deletePage:"Delete Page",newText:"New Text",headerLabel:"Header",footerLabel:"Footer",defaultTableHeaders:{id:"ID",name:"Name",qty:"Qty",price:"Price",total:"Total"},defaultTableData:{item:"Item",pageSum:"Page Sum",total:"Total",inWords:"In Words"},defaultChartData:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun"}},sidebar:{elements:"Elements",dragToCanvas:"Drag elements to the canvas",standard:"Standard",custom:"Custom",general:"General",dataCodes:"Data & Codes",shapes:"Shapes",text:"Text",image:"Image",pagination:"Pagination",table:"Table",dataTable:"Data Table",barcode:"Barcode",qrcode:"QR Code",line:"Line",rect:"Rect",circle:"Circle",chart:"Chart",noCustomElements:"No custom elements saved yet.",moreOptions:"More options",editElement:"Design Element",edit:"Edit",copy:"Copy",delete:"Delete",editModalTitle:"Edit Custom Element",enterNamePlaceholder:"Enter element name...",confirmDelete:'Are you sure you want to delete "{name}"?',confirmSwitchEdit:'Exit current edit for "{name}"?',confirmExitEdit:"You have unsaved changes. Exit anyway?",editingElement:"Editing custom element: {name}",saveEdit:"Save",saveAs:"Save As",exitEdit:"Exit",saveAsCustomElement:"Save as Custom Element",editSaveFailed:"Nothing to save. Please select an element."},elements:{text:"Text",image:"Image",table:"Table",line:"Line",rect:"Rect",circle:"Circle",barcode:"Barcode",qrcode:"QR Code",pageNumber:"Page Number",chart:"Chart",custom:"Custom",layers:"Layers"},properties:{title:"Properties",subtitle:"Edit element properties",locked:"Locked",multiSelectMode:"Multi-select mode",selectedElements:"{n} elements selected",deleteSelected:"Delete Selected Elements",tab:{properties:"Properties",style:"Style",advanced:"Advanced"},section:{positionSize:"Position & Size",layer:"Layer",dataBehavior:"Data & Behavior",layoutDimensions:"Layout & Dimensions",headerStyle:"Header Style",footerStyle:"Footer Style",cellOperations:"Cell Operations",appearance:"Appearance",elementInfo:"Element Info",content:"Content",typography:"Typography",border:"Border",barcodeSettings:"Barcode Settings",qrSettings:"QR Settings",labelContent:"Label Content",paginationTypography:"Pagination Typography",labelStyle:"Label Style",frameBorder:"Frame Border",lineStyle:"Line Style",dataSource:"Data Source",tableColumns:"Table Columns",tableLayout:"Table Layout",cellStyle:"Cell Style",imageSource:"Image Source",chartAppearance:"Chart Appearance",chartTitleStyle:"Title Style",chartLegend:"Legend Settings",chartAxis:"Axis Settings",chartBarStyle:"Bar Chart Style",chartLineStyle:"Line Chart Style",chartPieStyle:"Pie Chart Style",chartDataLabel:"Data Label",advanced:"Advanced"},action:{mergeCells:"Merge Cells",splitCells:"Split Cells",bringToFront:"Bring to Front",sendToBack:"Send to Back",moveUp:"Move Up",moveDown:"Move Down",copyId:"Copy ID",copied:"Copied!",saveCustom:"Save as Custom Element",deleteElement:"Delete Current Element",saveCustomModal:"Save Custom Element"},empty:{noSelection:"No Selection",selectInstruction:"Select an element to edit properties"},label:{type:"Type",textAlign:"Text Align",x:"X",y:"Y",width:"Width",height:"Height",zIndex:"Layer",content:"Content",variable:"Variable",dataVariable:"Data Variable",selectField:"Select Field",selectDataField:"Please select a data field in the properties panel",columnsVariable:"Columns Variable",footerDataVariable:"Footer Data Variable",writingMode:"Writing Mode",fontSize:"Font Size",color:"Color",verticalAlign:"Vertical Align",fontFamily:"Font Family",fontWeight:"Font Weight",borderStyle:"Border Style",borderWidth:"Border Width",borderColor:"Border Color",backgroundColor:"Background Color",imageSource:"Image Source",format:"Format",showText:"Show Text",lineWidth:"Line Width",barcodeHeight:"Height",margin:"Margin",textPosition:"Text Position",errorCorrection:"Error Correction",thickness:"Thickness",cornerRadius:"Corner Radius",background:"Background",autoPaginate:"Auto Paginate",autoHeight:"Auto Height",repeatPerPage:"Repeat Per Page",repeatFooter:"Repeat Footer",showFooter:"Show Footer",columns:"Columns",columnPicker:"Select Columns",columnAlias:"Header Alias",headerAliasPlaceholder:"Enter alias",data:"Data",footerData:"Footer Data",customScript:"Custom Script",customScriptVariable:"Custom Script Variable",headerHeight:"Header Height",rowHeight:"Row Height",footerHeight:"Footer Height",textColor:"Text Color",editCell:"Edit Cell",editColumn:"Edit Column",headerText:"Header Text",fieldKey:"Field Key",variableField:"Variable Field",headerNamePlaceholder:"Header Name",displayTextPlaceholder:"Display Text (e.g. Total:)",dataFieldPlaceholder:"Data Field (e.g. {#amount})",id:"ID",labelBorderColor:"Label Border Color",barcodeContentPlaceholder:"Barcode Value",qrContentPlaceholder:"QR Code Value",textContentPlaceholder:"Enter text content",variablePlaceholder:"Variable Name (e.g. @name)",labelText:"Label Text",labelPosition:"Label Position",labelFontSize:"Label Font Size",labelColor:"Label Color",labelFontFamily:"Label Font Family",labelFontWeight:"Label Font Weight",labelBackgroundColor:"Label Background Color",labelBorderStyle:"Label Border Style",labelBorderWidth:"Label Border Width",pageFormat:"Page Format",labelTextPlaceholder:"e.g. Page",columnsPlaceholder:'[{ "field": "name", "header": "Name", "width": 100 }]',dataPlaceholder:"[{...}]",footerDataPlaceholder:'[{ "id": { "value": "Total" }, "amount": { "value": "Total:", "field": "{#sum}" } }]',customScriptPlaceholder:"return { data: ... };",fontStyle:"Font Style",padding:"Padding (px)",chartTitle:"Chart Title",chartType:"Chart Type",chartData:"Chart Data",chartDataSource:"Data Source",chartDataSourcePlaceholder:"Select array data source",chartXField:"X Field",chartXFieldPlaceholder:"Select X axis field",chartYField:"Y Field",chartYFieldPlaceholder:"Select Y axis field",chartNameField:"Name Field",chartNameFieldPlaceholder:"Select name field (Pie)",chartValueField:"Value Field",chartValueFieldPlaceholder:"Select value field (Pie)",chartShowLegend:"Show Legend",chartShowTooltip:"Show Tooltip",chartShowDataLabel:"Show Data Label",chartColors:"Color List",chartTitleFontSize:"Title Font Size",chartTitleColor:"Title Color",chartTitleFontWeight:"Title Weight",chartTitlePlaceholder:"Enter chart title",chartLegendPosition:"Legend Position",chartLegendFontSize:"Legend Font Size",chartLegendColor:"Legend Color",chartXAxisTitle:"X Axis Title",chartXAxisTitlePlaceholder:"Enter X axis title",chartYAxisTitle:"Y Axis Title",chartYAxisTitlePlaceholder:"Enter Y axis title",chartXAxisFontSize:"X Axis Font Size",chartYAxisFontSize:"Y Axis Font Size",chartXAxisColor:"X Axis Color",chartYAxisColor:"Y Axis Color",chartShowGrid:"Show Grid",chartGridColor:"Grid Color",chartBarWidth:"Bar Width",chartBarColor:"Bar Color",chartLineSmooth:"Smooth Curve",chartLineWidth:"Line Width",chartLineColor:"Line Color",chartPieRadius:"Pie Radius",chartDoughnutInnerRadius:"Doughnut Inner Radius",chartDoughnutOuterRadius:"Doughnut Outer Radius",chartDataPlaceholder:'[{ "name": "Jan", "value": 820 }, ...]',chartColorsPlaceholder:'["#5470c6", "#91cc75", ...]',customOptions:"Custom Options (JSON)",customOptionsPlaceholder:'{ "title": { "text": "..." }, ... }',headerBackgroundColor:"Header Background",headerColor:"Header Color",headerFontSize:"Header Font Size",headerTextAlign:"Header Align",selectDataSource:"Select Data Source",selectDataSourceFirst:"Please select data source first"},option:{horizontal:"Horizontal",vertical:"Vertical",default:"Default",left:"Left",center:"Center",right:"Right",normal:"Normal",medium:"Medium",bold:"Bold",none:"None",solid:"Solid",dashed:"Dashed",dotted:"Dotted",yes:"Yes",no:"No",top:"Top",middle:"Middle",bottom:"Bottom",before:"Before",after:"After",eccLow:"Low (7%)",eccMedium:"Medium (15%)",eccQuartile:"Quartile (25%)",eccHigh:"High (30%)",arial:"Arial",timesNewRoman:"Times New Roman",courierNew:"Courier New",simSun:"SimSun (宋体)",simHei:"SimHei (黑体)",page1:"Page 1",oneTotal:"1/Total",code128:"CODE128",ean13:"EAN-13",upc:"UPC",code39:"CODE39",itf14:"ITF-14",msi:"MSI",pharmacode:"Pharmacode",numberOnly:"Number (1)",chartBar:"Bar",chartLine:"Line",chartArea:"Area",chartPie:"Pie",chartDoughnut:"Doughnut"},image:{urlPlaceholder:"https://... or data:image/...",uploadBtn:"Upload Image",uploadTip:"Max 2MB, converts to Base64",sizeError:"Image size must be less than 2MB",readError:"Failed to read file"},align:{left:"Align Left",center:"Align Center",right:"Align Right"}},shortcuts:{title:"Shortcuts",keyboardShortcuts:"Keyboard Shortcuts",general:"General",editing:"Editing",manipulation:"Manipulation",newTemplate:"New Template",openSettings:"Open Settings",openHelp:"Open Help",zoom:"Zoom In/Out",closeModal:"Close Modal",selectAll:"Select All",multiSelect:"Multi-select",move:"Move",fastMove:"Fast Move",snapRotate:"Snap Rotate",resize:"Proportional Resize",saveAsTemplate:"Save As Template",customEditSave:"Save Custom Edit",customEditSaveAs:"Save Custom Edit As",customEditExit:"Exit Custom Edit",ctrl:"Ctrl",shift:"Shift",alt:"Alt",esc:"Esc",del:"Delete",enter:"Enter",arrow:"Arrow Keys",drag:"Drag",click:"Click",wheel:"Wheel"},help:{title:"Help Center",about:"About",aboutProject:"About {name}",links:"Links",github:"Project URL",website:"Website",dependencies:"Open Source Dependencies",package:"Package",version:"Version"},colorPicker:{clear:"Clear",transparent:"Transparent"},settings:{title:"Settings",basic:"Basic",language:"Language",connection:"Connections",themeColor:"Theme Color",themeColorDesc:"Pick a preset theme color and apply instantly.",themePresetDefault:"Blue",themePresetEmerald:"Emerald",themePresetAmber:"Amber",themePresetRose:"Rose",themePresetCustom:"Custom",theme:"Theme",themeSystem:"Follow System",themeLight:"Light",themeDark:"Dark",themeDesc:"Defaults to following system; you can force Light or Dark.",autoSave:"Auto Save",autoSaveDesc:"Automatically save changes (saved templates only).",printQuality:"Print Quality",printQualityFast:"Fast",printQualityNormal:"Normal",printQualityHigh:"High",printQualityUltra:"Ultra",printQualityDesc:"Set the rendering quality for exporting images and printing",exportImageMerged:"Export Image As Single",exportImageMergedDesc:"When off, export each page as a separate image inside a ZIP file.",languageDesc:"Choose the interface language.",connectionDesc:"Connection settings placeholder.",printMode:"Print Mode",printModeLocal:"Local Client",printModeRemote:"Remote Cloud",printModeBrowser:"Browser",printModeDesc:"Local and remote options require a successful connection test.",silentPrint:"Silent Print",silentPrintDesc:"When enabled, skip the custom print dialog; browser print still uses the browser dialog.",localConnection:"Client Print",remoteConnection:"Remote Print",host:"Host",port:"Port",wsPath:"WS Path",protocol:"Protocol",wsAddress:"WS Address",wsAddressPlaceholder:"ws://host:port/ws/request",localWsAddressPlaceholder:"ws://host:port/ws",secretKey:"Secret Key",connectionUrl:"Connection URL",connect:"Connect",disconnect:"Disconnect",connecting:"Connecting...",connectionTesting:"Testing connection...",connectionOk:"Connection OK",connectionOkWithUser:"Connection OK (User: {userId})",connectionFailed:"Connection failed",connectionTimeout:"Connection timeout",connectionMissingFields:"Please fill in API URL, username, and password.",connectionMissingToken:"Login succeeded but token is missing.",apiBaseUrl:"Login URL",apiBasePlaceholder:"http://host:port/api/login",username:"Username",password:"Password",remoteLoginTitle:"Login (HTTP)",remoteLoginDesc:"Used to obtain the JWT token. Enter the full login URL.",remoteWsTitle:"WebSocket (Print Relay)",remoteWsDesc:"Used for printing and client/printer queries. Token is appended to the WS URL.",localClientTitle:"Local Client",downloadClient:"Download Client",cloudPrint:"Cloud Print",localClientDesc:"Configure the local client WebSocket and secret key for on-device printing.",remoteClient:"Default Client",remoteClientPlaceholder:"Select a client",remoteAuthHint:"Remote WS URL appends ?token=JWT for browser WebSocket authentication.",status:{connected:"Connected",connecting:"Connecting",disconnected:"Disconnected",error:"Error"},retrying:"Retrying ({count}/{max})",cancelRetry:"Cancel Retry",selectLanguage:"Select Language",zhLabel:"Chinese",enLabel:"English"},printDialog:{title:"Print Options",titleLocal:"Client Print Options",titleRemote:"Remote Print Options",sectionBasic:"Basic",sectionAdvanced:"Advanced",printer:"Printer",printerSelect:"Select printer",printerEmpty:"No printers found.",remoteClient:"Client",remoteClientPlaceholder:"Select client",remoteClientEmpty:"No clients found.",remotePrinterInfo:"Type: {type} | Paper: {paper} | Formats: {format}",printerPlaceholder:"Printer name",jobName:"Job Name",jobNamePlaceholder:"Optional job name",copies:"Copies",intervalMs:"Interval (ms)",pageRange:"Page Range",pageRangePlaceholder:"e.g. 1-3,5",pageSet:"Page Set",pageSetAll:"All",pageSetOdd:"Odd",pageSetEven:"Even",scale:"Scale",scaleNo:"No Scale",scaleShrink:"Shrink",scaleFit:"Fit",orientation:"Orientation",portrait:"Portrait",landscape:"Landscape",colorMode:"Color Mode",color:"Color",monochrome:"Monochrome",sidesMode:"Duplex",simplex:"Simplex",duplex:"Duplex",duplexShort:"Duplex (Short Edge)",duplexLong:"Duplex (Long Edge)",paperSize:"Paper Size",paperSizePlaceholder:"e.g. A4",trayBin:"Tray",trayBinPlaceholder:"e.g. 2 or Manual",confirm:"Print"},preview:{title:"Print Preview",templateJson:"Template JSON",zoomIn:"Zoom In",zoomOut:"Zoom Out"},input:{title:"Input",placeholder:"Enter value..."},toast:{templateReadOnly:"System template is read-only and cannot be edited.",templateCopyNotAllowed:"System template cannot be copied.",templateDeleteNotAllowed:"System template cannot be deleted.",templateSaveFailed:"Failed to save template.",templateDeleteFailed:"Failed to delete template.",templateEditFailed:"Failed to edit template.",templateCopyFailed:"Failed to copy template.",templateUpsertFailed:"Failed to save template.",customElementReadOnly:"System custom element is read-only and cannot be edited.",customElementCopyNotAllowed:"System custom element cannot be copied.",customElementDeleteNotAllowed:"System custom element cannot be deleted.",customElementCopyFailed:"Failed to copy custom element.",customElementAddFailed:"Failed to add custom element.",customElementRemoveFailed:"Failed to delete custom element",customElementEditFailed:"Failed to edit custom element",customElementUpsertFailed:"Failed to save custom element",printerRequired:"Printer is required",clientRequired:"Client is required",printFailed:"Print failed",exportPdfFailed:"Export PDF failed",exportImageFailed:"Export Image failed"}},mu={common:{save:"保存",cancel:"取消",confirm:"确认",close:"关闭",delete:"删除",copy:"复制",cut:"剪切",paste:"粘贴",undo:"撤销",redo:"重做",edit:"编辑",loading:"加载中...",success:"成功",input:"输入",actions:"操作",width:"宽度",height:"高度",mm:"毫米",px:"像素",pt:"磅",in:"英寸",cm:"厘米",rotate:"旋转",lock:"锁定",unlock:"解锁",appTitle:"打印设计器",testData:"测试数据",invalidJson:"JSON 无效,未保存更改。",testDataKeyChanged:"测试数据的键不允许修改,请仅编辑值。",variables:"可用变量",fields:"字段选择",sampleData:"查看示例数据",fieldType:"字段类型",textField:"文本",arrayField:"数组",noData:"暂无数据"},template:{select:"选择模版",noTemplates:"暂无模版",new:"新建模版",edit:"编辑模版",confirmDelete:'确定要删除 "{name}" 吗?'},editor:{preview:"打印预览",exportPdf:"导出 PDF",exportHtml:"导出 HTML",exportImage:"导出图片",print:"打印",viewJson:"查看 JSON",viewBlob:"查看 Blob",viewImageBlob:"查看图片 Blob",viewPdfBlob:"查看 PDF Blob",zoomIn:"放大",zoomOut:"缩小",zoomLevel:"缩放级别",zoomSettings:"缩放设置",unit:"单位",advancedSettings:"高级设置",watermark:"水印",watermarkEnable:"启用",watermarkText:"文字",watermarkTextPlaceholder:"请输入水印文字",watermarkAngle:"方向",watermarkColor:"颜色",watermarkOpacity:"透明度(%)",watermarkSize:"大小",watermarkDensity:"密度",template:"模版",newTemplate:"新建模版",saveTemplate:"保存模版",saveAsTemplate:"另存为模版",templates:"模版列表",shortcuts:"快捷键",help:"帮助",about:"关于",paperSettings:"页面设置",sizePreset:"纸张尺寸",custom:"自定义",spacingX:"水平边距",spacingY:"垂直边距",showMarginLines:"显示边距线",showCornerMarkers:"显示角标",showGrid:"显示网格",showMinimap:"显示缩略图",headerFooter:"页眉页脚",headerLine:"页眉线",footerLine:"页脚线",addNewPage:"添加新页",fonts:{default:"默认",arial:"Arial",timesNewRoman:"Times New Roman",courierNew:"Courier New",simSun:"宋体",simHei:"黑体"},bold:"加粗",italic:"斜体",underline:"下划线",verticalText:"竖排文本",textColor:"文本颜色",backgroundColor:"背景颜色",resetRotation:"重置旋转",alignLeft:"左对齐",alignCenter:"水平居中",alignRight:"右对齐",alignTop:"顶部对齐",alignMiddle:"垂直居中",alignBottom:"底部对齐",group:"组合",lock:"锁定",unlock:"解锁",fontFamily:"字体",settings:"设置"},canvas:{addPage:"添加页",copyPage:"复制页",pastePage:"粘贴页",deletePage:"删除页",newText:"新文本",headerLabel:"页眉",footerLabel:"页脚",defaultTableHeaders:{id:"ID",name:"名称",qty:"数量",price:"单价",total:"合计"},defaultTableData:{item:"商品",pageSum:"本页合计",total:"总计",inWords:"大写金额"},defaultChartData:{jan:"一月",feb:"二月",mar:"三月",apr:"四月",may:"五月",jun:"六月"}},sidebar:{custom:"自定义",elements:"元素库",dragToCanvas:"拖拽元素到画布",standard:"标准元素",general:"通用",dataCodes:"数据 & 条码",shapes:"图形",text:"文本",image:"图片",pagination:"页码",table:"表格",dataTable:"数据表格",barcode:"条形码",qrcode:"二维码",line:"直线",rect:"矩形",circle:"圆形",chart:"图表",noCustomElements:"暂无自定义元素",moreOptions:"更多选项",editElement:"设计元素",edit:"编辑",copy:"复制",delete:"删除",editModalTitle:"编辑自定义元素",enterNamePlaceholder:"输入元素名称...",confirmDelete:'确定要删除 "{name}" 吗?',confirmSwitchEdit:'退出当前对 "{name}" 的编辑?',confirmExitEdit:"存在未保存的更改,确定退出吗?",editingElement:"正在编辑自定义元素:{name}",saveEdit:"保存",saveAs:"另存为",exitEdit:"退出",saveAsCustomElement:"另存为自定义元素",editSaveFailed:"没有可保存的元素,请先选中一个元素。"},elements:{text:"文本",image:"图片",table:"表格",line:"直线",rect:"矩形",circle:"圆形",barcode:"条形码",qrcode:"二维码",pageNumber:"页码",chart:"图表",custom:"自定义",layers:"图层"},properties:{title:"属性面板",subtitle:"编辑元素属性",locked:"已锁定",multiSelectMode:"多选模式",selectedElements:"已选择 {n} 个元素",deleteSelected:"删除选中元素",tab:{properties:"属性",style:"样式",advanced:"高级"},section:{positionSize:"位置 & 尺寸",layer:"层级",dataBehavior:"数据 & 行为",layoutDimensions:"布局 & 尺寸",headerStyle:"表头样式",footerStyle:"表脚样式",cellOperations:"单元格操作",appearance:"外观",elementInfo:"元素信息",content:"内容",typography:"排版",border:"边框",barcodeSettings:"条形码设置",qrSettings:"二维码设置",labelContent:"标签内容",paginationTypography:"页码排版",labelStyle:"标签样式",frameBorder:"框架边框",lineStyle:"线条样式",dataSource:"数据源",tableColumns:"表格列",tableLayout:"表格布局",cellStyle:"单元格样式",imageSource:"图片来源",chartAppearance:"图表外观",chartTitleStyle:"标题样式",chartLegend:"图例设置",chartAxis:"坐标轴设置",chartBarStyle:"柱状图样式",chartLineStyle:"折线图样式",chartPieStyle:"饼图样式",chartDataLabel:"数据标签",advanced:"高级设置"},action:{mergeCells:"合并单元格",splitCells:"拆分单元格",bringToFront:"置于顶层",sendToBack:"置于底层",moveUp:"上移一层",moveDown:"下移一层",copyId:"复制 ID",copied:"已复制!",saveCustom:"保存为自定义元素",deleteElement:"删除当前元素",saveCustomModal:"保存自定义元素"},empty:{noSelection:"未选择",selectInstruction:"选择一个元素以编辑属性"},label:{textAlign:"对齐方式",type:"类型",x:"X",y:"Y",width:"宽度",height:"高度",zIndex:"层级",content:"内容",variable:"变量",dataVariable:"数据变量",selectField:"选择字段",selectDataField:"请在属性面板中选择数据字段",columnsVariable:"列定义变量",footerDataVariable:"表脚数据变量",writingMode:"书写模式",fontSize:"字号",color:"颜色",verticalAlign:"垂直对齐",fontFamily:"字体",fontWeight:"字重",borderStyle:"边框样式",borderWidth:"边框宽度",borderColor:"边框颜色",backgroundColor:"背景颜色",imageSource:"图片来源",format:"格式",showText:"显示文本",lineWidth:"线宽",barcodeHeight:"高度",margin:"边距",textPosition:"文本位置",errorCorrection:"纠错等级",thickness:"粗细",cornerRadius:"圆角半径",background:"背景",autoPaginate:"自动分页",autoHeight:"自适应高度",repeatPerPage:"每页重复",repeatFooter:"重复表脚",showFooter:"显示表脚",columns:"列定义",columnPicker:"选择表头字段",columnAlias:"表头别名",headerAliasPlaceholder:"输入别名",data:"数据",footerData:"表脚数据",customScript:"自定义脚本",customScriptVariable:"自定义脚本变量",headerHeight:"表头高度",rowHeight:"行高",footerHeight:"表脚高度",textColor:"文本颜色",editCell:"编辑单元格",editColumn:"编辑列",headerText:"表头文本",fieldKey:"字段键",variableField:"变量字段",headerNamePlaceholder:"表头名称",displayTextPlaceholder:"显示文本 (如: 合计:)",dataFieldPlaceholder:"数据字段 (如: {#amount})",id:"ID",labelBorderColor:"标签边框颜色",barcodeContentPlaceholder:"条码内容",qrContentPlaceholder:"二维码内容",textContentPlaceholder:"请输入文本内容",variablePlaceholder:"变量名 (例如 @name)",labelText:"标签文本",labelPosition:"标签位置",labelFontSize:"标签字号",labelColor:"标签颜色",labelFontFamily:"标签字体",labelFontWeight:"标签字重",labelBackgroundColor:"标签背景颜色",labelBorderStyle:"标签边框样式",labelBorderWidth:"标签边框宽度",pageFormat:"页码格式",labelTextPlaceholder:"例如:第",columnsPlaceholder:'[{ "field": "name", "header": "姓名", "width": 100 }]',dataPlaceholder:"[{...}]",footerDataPlaceholder:'[{ "id": { "value": "合计" }, "amount": { "value": "合计:", "field": "{#sum}" } }]',customScriptPlaceholder:"return { data: ... };",fontStyle:"字体样式",padding:"内边距 (px)",chartTitle:"图表标题",chartType:"图表类型",chartData:"图表数据",chartDataSource:"数据源",chartDataSourcePlaceholder:"选择数组数据源",chartXField:"X 轴字段",chartXFieldPlaceholder:"选择 X 轴字段",chartYField:"Y 轴字段",chartYFieldPlaceholder:"选择 Y 轴字段",chartNameField:"名称字段",chartNameFieldPlaceholder:"选择名称字段(饼图)",chartValueField:"值字段",chartValueFieldPlaceholder:"选择值字段(饼图)",chartShowLegend:"显示图例",chartShowTooltip:"显示提示",chartShowDataLabel:"显示数据标签",chartColors:"颜色列表",chartTitleFontSize:"标题字号",chartTitleColor:"标题颜色",chartTitleFontWeight:"标题加粗",chartTitlePlaceholder:"输入图表标题",chartLegendPosition:"图例位置",chartLegendFontSize:"图例字号",chartLegendColor:"图例颜色",chartXAxisTitle:"X 轴标题",chartXAxisTitlePlaceholder:"输入 X 轴标题",chartYAxisTitle:"Y 轴标题",chartYAxisTitlePlaceholder:"输入 Y 轴标题",chartXAxisFontSize:"X 轴字号",chartYAxisFontSize:"Y 轴字号",chartXAxisColor:"X 轴颜色",chartYAxisColor:"Y 轴颜色",chartShowGrid:"显示网格线",chartGridColor:"网格线颜色",chartBarWidth:"柱宽",chartBarColor:"柱子颜色",chartLineSmooth:"平滑曲线",chartLineWidth:"线宽",chartLineColor:"线条颜色",chartPieRadius:"饼图半径",chartDoughnutInnerRadius:"环形内半径",chartDoughnutOuterRadius:"环形外半径",chartDataPlaceholder:'[{ "name": "一月", "value": 820 }, ...]',chartColorsPlaceholder:'["#5470c6", "#91cc75", ...]',customOptions:"自定义选项 (JSON)",customOptionsPlaceholder:'{ "title": { "text": "..." }, ... }',headerBackgroundColor:"表头背景色",headerColor:"表头文字色",headerFontSize:"表头字号",headerTextAlign:"表头对齐",selectDataSource:"请选择数据源",selectDataSourceFirst:"请先选择数据源"},option:{horizontal:"水平",vertical:"垂直",default:"默认",left:"左对齐",center:"居中",right:"右对齐",normal:"常规",medium:"中等",bold:"加粗",none:"无",solid:"实线",dashed:"虚线",dotted:"点线",yes:"是",no:"否",top:"顶部",middle:"居中",bottom:"底部",before:"之前",after:"之后",eccLow:"低 (7%)",eccMedium:"中 (15%)",eccQuartile:"四分 (25%)",eccHigh:"高 (30%)",arial:"Arial",timesNewRoman:"Times New Roman",courierNew:"Courier New",simSun:"宋体",simHei:"黑体",page1:"第 1 页",oneTotal:"1/共几页",code128:"CODE128",ean13:"EAN-13",upc:"UPC",code39:"CODE39",itf14:"ITF-14",msi:"MSI",pharmacode:"Pharmacode",numberOnly:"数字 (1)",chartBar:"柱状图",chartLine:"折线图",chartArea:"面积图",chartPie:"饼图",chartDoughnut:"环形图"},image:{urlPlaceholder:"请输入图片地址或 Base64...",uploadBtn:"上传图片",uploadTip:"最大 2MB,自动转换为 Base64",sizeError:"图片大小不能超过 2MB",readError:"读取文件失败"},align:{left:"左对齐",center:"居中对齐",right:"右对齐"}},shortcuts:{title:"快捷键",keyboardShortcuts:"键盘快捷键",general:"通用",editing:"编辑",manipulation:"操作",newTemplate:"新建模版",openSettings:"打开设置",openHelp:"打开帮助",zoom:"缩放",closeModal:"关闭弹窗",selectAll:"全选",multiSelect:"多选",move:"移动",fastMove:"快速移动",snapRotate:"吸附旋转",resize:"等比缩放",saveAsTemplate:"另存为模版",customEditSave:"保存自定义编辑",customEditSaveAs:"另存自定义编辑",customEditExit:"退出自定义编辑",ctrl:"Ctrl",shift:"Shift",alt:"Alt",esc:"Esc",del:"Delete",enter:"Enter",arrow:"方向键",drag:"拖拽",click:"点击",wheel:"滚轮"},help:{title:"帮助中心",about:"关于",aboutProject:"关于 {name}",links:"相关链接",github:"项目地址",website:"官网地址",dependencies:"开源依赖",package:"依赖包",version:"版本"},colorPicker:{clear:"清除",transparent:"透明"},settings:{title:"设置",basic:"基础",language:"语言",connection:"连接",themeColor:"主题色",themeColorDesc:"选择一个预设主题色,立即生效。",themePresetDefault:"蓝色",themePresetEmerald:"绿色",themePresetAmber:"橙色",themePresetRose:"玫红",themePresetCustom:"自定义",theme:"主题",themeSystem:"跟随系统",themeLight:"亮色",themeDark:"暗色",themeDesc:"默认跟随系统;可手动切换为亮色或暗色。",autoSave:"自动保存",autoSaveDesc:"当模版发生变更时自动保存(仅对已保存过的模版生效)。",printQuality:"打印质量",printQualityFast:"极速",printQualityNormal:"普通",printQualityHigh:"高清",printQualityUltra:"极清",printQualityDesc:"设置导出图片和打印时的渲染质量",exportImageMerged:"导出为整张图片",exportImageMergedDesc:"关闭后将每一页导出为单张图片,并打包为 ZIP。",languageDesc:"选择界面的显示语言。",connectionDesc:"连接设置占位内容。",printMode:"打印方式",printModeLocal:"本地客户端打印",printModeRemote:"远程云打印",printModeBrowser:"浏览器打印",printModeDesc:"本地/远程需连接测试成功后才能启用。",silentPrint:"静默打印",silentPrintDesc:"开启后跳过自定义打印对话框;浏览器打印仍会弹出浏览器打印设置。",localConnection:"本地客户端打印",remoteConnection:"远程云打印",host:"主机",port:"端口",wsPath:"WS 路径",protocol:"协议",wsAddress:"WS 地址",wsAddressPlaceholder:"ws://host:port/ws/request",localWsAddressPlaceholder:"ws://host:port/ws",secretKey:"密钥",connectionUrl:"连接地址",connect:"连接",disconnect:"断开",connecting:"连接中...",connectionTesting:"正在测试连接...",connectionOk:"连接成功",connectionOkWithUser:"连接成功(用户:{userId})",connectionFailed:"连接失败",connectionTimeout:"连接超时",connectionMissingFields:"请填写 API 地址、用户名和密码。",connectionMissingToken:"登录成功但未返回 Token。",apiBaseUrl:"登录地址",apiBasePlaceholder:"http://host:port/api/login",username:"用户名",password:"密码",remoteLoginTitle:"登录(HTTP)",remoteLoginDesc:"用于获取 JWT,请填写完整的登录地址。",remoteWsTitle:"WebSocket(打印中转)",remoteWsDesc:"用于打印与查询客户端/打印机,Token 会拼到 WS 地址。",localClientTitle:"本地客户端",downloadClient:"下载客户端",cloudPrint:"云打印",localClientDesc:"配置本地客户端的 WebSocket 与密钥,用于本机打印。",remoteClient:"默认客户端",remoteClientPlaceholder:"请选择客户端",remoteAuthHint:"远程 WS 地址会附加 ?token=JWT 以便浏览器鉴权。",status:{connected:"已连接",connecting:"连接中",disconnected:"未连接",error:"错误"},retrying:"重试中({count}/{max})",cancelRetry:"停止重试",selectLanguage:"选择语言",zhLabel:"中文",enLabel:"English"},printDialog:{title:"打印参数",titleLocal:"本地客户端打印参数",titleRemote:"远程云打印参数",sectionBasic:"基础",sectionAdvanced:"高级",printer:"打印机",printerSelect:"请选择打印机",printerEmpty:"未获取到打印机。",remoteClient:"客户端",remoteClientPlaceholder:"请选择客户端",remoteClientEmpty:"未获取到客户端。",remotePrinterInfo:"类型:{type} | 纸张:{paper} | 格式:{format}",printerPlaceholder:"打印机名称",jobName:"任务名称",jobNamePlaceholder:"可选任务名称",copies:"打印份数",intervalMs:"份数间隔(ms)",pageRange:"页码范围",pageRangePlaceholder:"如 1-3,5",pageSet:"奇偶页",pageSetAll:"全部",pageSetOdd:"奇数页",pageSetEven:"偶数页",scale:"缩放",scaleNo:"不缩放",scaleShrink:"缩小",scaleFit:"适应",orientation:"方向",portrait:"纵向",landscape:"横向",colorMode:"颜色模式",color:"彩色",monochrome:"黑白",sidesMode:"单双面",simplex:"单面",duplex:"双面",duplexShort:"双面(短边翻转)",duplexLong:"双面(长边翻转)",paperSize:"纸张",paperSizePlaceholder:"如 A4",trayBin:"纸盒",trayBinPlaceholder:"如 2 或 Manual",confirm:"打印"},preview:{title:"打印预览",templateJson:"模版 JSON",zoomIn:"放大",zoomOut:"缩小"},input:{title:"输入",placeholder:"请输入..."},toast:{templateReadOnly:"系统模板为只读,无法编辑",templateCopyNotAllowed:"系统模板不允许复制",templateDeleteNotAllowed:"系统模板无法删除",templateSaveFailed:"保存模板失败",templateDeleteFailed:"删除模板失败",templateEditFailed:"编辑模板失败",templateCopyFailed:"复制模板失败",templateUpsertFailed:"保存模板失败",customElementReadOnly:"系统自定义元素为只读,无法编辑",customElementCopyNotAllowed:"系统自定义元素不允许复制",customElementDeleteNotAllowed:"系统自定义元素无法删除",customElementCopyFailed:"复制自定义元素失败",customElementAddFailed:"新增自定义元素失败",customElementRemoveFailed:"删除自定义元素失败",customElementEditFailed:"编辑自定义元素失败",customElementUpsertFailed:"保存自定义元素失败",printerRequired:"请指定打印机",clientRequired:"请指定客户端",printFailed:"打印失败",exportPdfFailed:"导出 PDF 失败",exportImageFailed:"导出图片失败"}},bu={en:hu,zh:mu},fu=()=>{const t=localStorage.getItem("print-designer-language");return t&&(t==="zh"||t==="en")?t:navigator.language.toLowerCase().startsWith("zh")?"zh":"en"},vu=t=>du({legacy:!1,locale:fu(),fallbackLocale:"en",messages:bu}),Qe=vu();class yu{show(e,r={}){return new Promise(n=>{const o=document.createElement("div");o.style.position="fixed",o.style.inset="0",o.style.backgroundColor="rgba(0, 0, 0, 0.5)",o.style.zIndex="2000",o.style.display="flex",o.style.alignItems="center",o.style.justifyContent="center",o.style.pointerEvents="auto";const d=document.documentElement.classList.contains("dark")||document.body.classList.contains("dark"),s=document.createElement("div");s.style.backgroundColor=d?"#111827":"#ffffff",s.style.borderRadius="0.5rem",s.style.width="24rem",s.style.boxShadow="0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)",s.style.display="flex",s.style.flexDirection="column",s.style.overflow="hidden",s.style.fontFamily="inherit";const i=document.createElement("div");i.style.height="60px",i.style.display="flex",i.style.alignItems="center",i.style.padding="0 16px",i.style.borderBottom=`1px solid ${d?"#1f2937":"#e5e7eb"}`,i.style.flexShrink="0";const c=document.createElement("h3");c.textContent=r.title||"提示",c.style.margin="0",c.style.fontSize="1.125rem",c.style.fontWeight="600",c.style.color=d?"#f3f4f6":"#1f2937",i.appendChild(c),s.appendChild(i);const u=document.createElement("div");u.style.padding="16px";const m=document.createElement("div");m.textContent=e,m.style.marginBottom="16px",m.style.fontSize="0.875rem",m.style.color=d?"#d1d5db":"#374151",m.style.lineHeight="1.5",u.appendChild(m);const g=document.createElement("div");g.style.display="flex",g.style.justifyContent="flex-end",g.style.gap="8px";const C=document.createElement("button");C.type="button",C.textContent=r.cancelText||"取消",C.style.padding="8px 16px",C.style.fontSize="0.875rem",C.style.fontWeight="500",C.style.border="none",C.style.borderRadius="0.375rem",C.style.cursor="pointer",C.style.transition="background-color 0.15s ease",C.style.backgroundColor=d?"#1f2937":"#f3f4f6",C.style.color=d?"#d1d5db":"#374151",C.onmouseover=()=>{C.style.backgroundColor=d?"#374151":"#e5e7eb"},C.onmouseout=()=>{C.style.backgroundColor=d?"#1f2937":"#f3f4f6"};const x=document.createElement("button");x.type="button",x.textContent=r.confirmText||"确定",x.style.padding="8px 16px",x.style.fontSize="0.875rem",x.style.fontWeight="500",x.style.border="none",x.style.borderRadius="0.375rem",x.style.cursor="pointer",x.style.transition="background-color 0.15s ease",x.style.backgroundColor=d?"#3b82f6":"#2563eb",x.style.color="#ffffff",x.onmouseover=()=>{x.style.backgroundColor=d?"#2563eb":"#1d4ed8"},x.onmouseout=()=>{x.style.backgroundColor=d?"#3b82f6":"#2563eb"};const h=()=>{document.body.contains(o)&&document.body.removeChild(o)};C.onclick=k=>{k.stopPropagation(),h(),n(!1)},x.onclick=k=>{k.stopPropagation(),h(),n(!0)},g.appendChild(C),g.appendChild(x),u.appendChild(m),u.appendChild(g),s.appendChild(u),o.appendChild(s),document.body.appendChild(o),setTimeout(()=>x.focus(),10)})}}const Tr=new yu;var Hr,Tl;function xu(){if(Tl)return Hr;Tl=1;function t(){this.__data__=[],this.size=0}return Hr=t,Hr}var Nr,Al;function fr(){if(Al)return Nr;Al=1;function t(e,r){return e===r||e!==e&&r!==r}return Nr=t,Nr}var Ur,$l;function Ir(){if($l)return Ur;$l=1;var t=fr();function e(r,n){for(var o=r.length;o--;)if(t(r[o][0],n))return o;return-1}return Ur=e,Ur}var Wr,Pl;function wu(){if(Pl)return Wr;Pl=1;var t=Ir(),e=Array.prototype,r=e.splice;function n(o){var d=this.__data__,s=t(d,o);if(s<0)return!1;var i=d.length-1;return s==i?d.pop():r.call(d,s,1),--this.size,!0}return Wr=n,Wr}var Yr,Il;function ku(){if(Il)return Yr;Il=1;var t=Ir();function e(r){var n=this.__data__,o=t(n,r);return o<0?void 0:n[o][1]}return Yr=e,Yr}var Gr,Dl;function Su(){if(Dl)return Gr;Dl=1;var t=Ir();function e(r){return t(this.__data__,r)>-1}return Gr=e,Gr}var Xr,Ml;function Cu(){if(Ml)return Xr;Ml=1;var t=Ir();function e(r,n){var o=this.__data__,d=t(o,r);return d<0?(++this.size,o.push([r,n])):o[d][1]=n,this}return Xr=e,Xr}var Kr,Ll;function Dr(){if(Ll)return Kr;Ll=1;var t=xu(),e=wu(),r=ku(),n=Su(),o=Cu();function d(s){var i=-1,c=s==null?0:s.length;for(this.clear();++i<c;){var u=s[i];this.set(u[0],u[1])}}return d.prototype.clear=t,d.prototype.delete=e,d.prototype.get=r,d.prototype.has=n,d.prototype.set=o,Kr=d,Kr}var Qr,zl;function _u(){if(zl)return Qr;zl=1;var t=Dr();function e(){this.__data__=new t,this.size=0}return Qr=e,Qr}var Jr,Rl;function Eu(){if(Rl)return Jr;Rl=1;function t(e){var r=this.__data__,n=r.delete(e);return this.size=r.size,n}return Jr=t,Jr}var Zr,Fl;function Tu(){if(Fl)return Zr;Fl=1;function t(e){return this.__data__.get(e)}return Zr=t,Zr}var eo,ql;function Au(){if(ql)return eo;ql=1;function t(e){return this.__data__.has(e)}return eo=t,eo}var to,Bl;function pc(){if(Bl)return to;Bl=1;var t=typeof Sr=="object"&&Sr&&Sr.Object===Object&&Sr;return to=t,to}var ro,Ol;function Tt(){if(Ol)return ro;Ol=1;var t=pc(),e=typeof self=="object"&&self&&self.Object===Object&&self,r=t||e||Function("return this")();return ro=r,ro}var oo,Vl;function vr(){if(Vl)return oo;Vl=1;var t=Tt(),e=t.Symbol;return oo=e,oo}var ao,jl;function $u(){if(jl)return ao;jl=1;var t=vr(),e=Object.prototype,r=e.hasOwnProperty,n=e.toString,o=t?t.toStringTag:void 0;function d(s){var i=r.call(s,o),c=s[o];try{s[o]=void 0;var u=!0}catch{}var m=n.call(s);return u&&(i?s[o]=c:delete s[o]),m}return ao=d,ao}var no,Hl;function Pu(){if(Hl)return no;Hl=1;var t=Object.prototype,e=t.toString;function r(n){return e.call(n)}return no=r,no}var lo,Nl;function or(){if(Nl)return lo;Nl=1;var t=vr(),e=$u(),r=Pu(),n="[object Null]",o="[object Undefined]",d=t?t.toStringTag:void 0;function s(i){return i==null?i===void 0?o:n:d&&d in Object(i)?e(i):r(i)}return lo=s,lo}var so,Ul;function Dt(){if(Ul)return so;Ul=1;function t(e){var r=typeof e;return e!=null&&(r=="object"||r=="function")}return so=t,so}var io,Wl;function ol(){if(Wl)return io;Wl=1;var t=or(),e=Dt(),r="[object AsyncFunction]",n="[object Function]",o="[object GeneratorFunction]",d="[object Proxy]";function s(i){if(!e(i))return!1;var c=t(i);return c==n||c==o||c==r||c==d}return io=s,io}var co,Yl;function Iu(){if(Yl)return co;Yl=1;var t=Tt(),e=t["__core-js_shared__"];return co=e,co}var uo,Gl;function Du(){if(Gl)return uo;Gl=1;var t=Iu(),e=(function(){var n=/[^.]+$/.exec(t&&t.keys&&t.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""})();function r(n){return!!e&&e in n}return uo=r,uo}var po,Xl;function gc(){if(Xl)return po;Xl=1;var t=Function.prototype,e=t.toString;function r(n){if(n!=null){try{return e.call(n)}catch{}try{return n+""}catch{}}return""}return po=r,po}var go,Kl;function Mu(){if(Kl)return go;Kl=1;var t=ol(),e=Du(),r=Dt(),n=gc(),o=/[\\^$.*+?()[\]{}|]/g,d=/^\[object .+?Constructor\]$/,s=Function.prototype,i=Object.prototype,c=s.toString,u=i.hasOwnProperty,m=RegExp("^"+c.call(u).replace(o,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function g(C){if(!r(C)||e(C))return!1;var x=t(C)?m:d;return x.test(n(C))}return go=g,go}var ho,Ql;function Lu(){if(Ql)return ho;Ql=1;function t(e,r){return e==null?void 0:e[r]}return ho=t,ho}var mo,Jl;function Ht(){if(Jl)return mo;Jl=1;var t=Mu(),e=Lu();function r(n,o){var d=e(n,o);return t(d)?d:void 0}return mo=r,mo}var bo,Zl;function al(){if(Zl)return bo;Zl=1;var t=Ht(),e=Tt(),r=t(e,"Map");return bo=r,bo}var fo,es;function Mr(){if(es)return fo;es=1;var t=Ht(),e=t(Object,"create");return fo=e,fo}var vo,ts;function zu(){if(ts)return vo;ts=1;var t=Mr();function e(){this.__data__=t?t(null):{},this.size=0}return vo=e,vo}var yo,rs;function Ru(){if(rs)return yo;rs=1;function t(e){var r=this.has(e)&&delete this.__data__[e];return this.size-=r?1:0,r}return yo=t,yo}var xo,os;function Fu(){if(os)return xo;os=1;var t=Mr(),e="__lodash_hash_undefined__",r=Object.prototype,n=r.hasOwnProperty;function o(d){var s=this.__data__;if(t){var i=s[d];return i===e?void 0:i}return n.call(s,d)?s[d]:void 0}return xo=o,xo}var wo,as;function qu(){if(as)return wo;as=1;var t=Mr(),e=Object.prototype,r=e.hasOwnProperty;function n(o){var d=this.__data__;return t?d[o]!==void 0:r.call(d,o)}return wo=n,wo}var ko,ns;function Bu(){if(ns)return ko;ns=1;var t=Mr(),e="__lodash_hash_undefined__";function r(n,o){var d=this.__data__;return this.size+=this.has(n)?0:1,d[n]=t&&o===void 0?e:o,this}return ko=r,ko}var So,ls;function Ou(){if(ls)return So;ls=1;var t=zu(),e=Ru(),r=Fu(),n=qu(),o=Bu();function d(s){var i=-1,c=s==null?0:s.length;for(this.clear();++i<c;){var u=s[i];this.set(u[0],u[1])}}return d.prototype.clear=t,d.prototype.delete=e,d.prototype.get=r,d.prototype.has=n,d.prototype.set=o,So=d,So}var Co,ss;function Vu(){if(ss)return Co;ss=1;var t=Ou(),e=Dr(),r=al();function n(){this.size=0,this.__data__={hash:new t,map:new(r||e),string:new t}}return Co=n,Co}var _o,is;function ju(){if(is)return _o;is=1;function t(e){var r=typeof e;return r=="string"||r=="number"||r=="symbol"||r=="boolean"?e!=="__proto__":e===null}return _o=t,_o}var Eo,ds;function Lr(){if(ds)return Eo;ds=1;var t=ju();function e(r,n){var o=r.__data__;return t(n)?o[typeof n=="string"?"string":"hash"]:o.map}return Eo=e,Eo}var To,cs;function Hu(){if(cs)return To;cs=1;var t=Lr();function e(r){var n=t(this,r).delete(r);return this.size-=n?1:0,n}return To=e,To}var Ao,us;function Nu(){if(us)return Ao;us=1;var t=Lr();function e(r){return t(this,r).get(r)}return Ao=e,Ao}var $o,ps;function Uu(){if(ps)return $o;ps=1;var t=Lr();function e(r){return t(this,r).has(r)}return $o=e,$o}var Po,gs;function Wu(){if(gs)return Po;gs=1;var t=Lr();function e(r,n){var o=t(this,r),d=o.size;return o.set(r,n),this.size+=o.size==d?0:1,this}return Po=e,Po}var Io,hs;function hc(){if(hs)return Io;hs=1;var t=Vu(),e=Hu(),r=Nu(),n=Uu(),o=Wu();function d(s){var i=-1,c=s==null?0:s.length;for(this.clear();++i<c;){var u=s[i];this.set(u[0],u[1])}}return d.prototype.clear=t,d.prototype.delete=e,d.prototype.get=r,d.prototype.has=n,d.prototype.set=o,Io=d,Io}var Do,ms;function Yu(){if(ms)return Do;ms=1;var t=Dr(),e=al(),r=hc(),n=200;function o(d,s){var i=this.__data__;if(i instanceof t){var c=i.__data__;if(!e||c.length<n-1)return c.push([d,s]),this.size=++i.size,this;i=this.__data__=new r(c)}return i.set(d,s),this.size=i.size,this}return Do=o,Do}var Mo,bs;function nl(){if(bs)return Mo;bs=1;var t=Dr(),e=_u(),r=Eu(),n=Tu(),o=Au(),d=Yu();function s(i){var c=this.__data__=new t(i);this.size=c.size}return s.prototype.clear=e,s.prototype.delete=r,s.prototype.get=n,s.prototype.has=o,s.prototype.set=d,Mo=s,Mo}var Lo,fs;function Gu(){if(fs)return Lo;fs=1;function t(e,r){for(var n=-1,o=e==null?0:e.length;++n<o&&r(e[n],n,e)!==!1;);return e}return Lo=t,Lo}var zo,vs;function mc(){if(vs)return zo;vs=1;var t=Ht(),e=(function(){try{var r=t(Object,"defineProperty");return r({},"",{}),r}catch{}})();return zo=e,zo}var Ro,ys;function ll(){if(ys)return Ro;ys=1;var t=mc();function e(r,n,o){n=="__proto__"&&t?t(r,n,{configurable:!0,enumerable:!0,value:o,writable:!0}):r[n]=o}return Ro=e,Ro}var Fo,xs;function bc(){if(xs)return Fo;xs=1;var t=ll(),e=fr(),r=Object.prototype,n=r.hasOwnProperty;function o(d,s,i){var c=d[s];(!(n.call(d,s)&&e(c,i))||i===void 0&&!(s in d))&&t(d,s,i)}return Fo=o,Fo}var qo,ws;function yr(){if(ws)return qo;ws=1;var t=bc(),e=ll();function r(n,o,d,s){var i=!d;d||(d={});for(var c=-1,u=o.length;++c<u;){var m=o[c],g=s?s(d[m],n[m],m,d,n):void 0;g===void 0&&(g=n[m]),i?e(d,m,g):t(d,m,g)}return d}return qo=r,qo}var Bo,ks;function Xu(){if(ks)return Bo;ks=1;function t(e,r){for(var n=-1,o=Array(e);++n<e;)o[n]=r(n);return o}return Bo=t,Bo}var Oo,Ss;function qt(){if(Ss)return Oo;Ss=1;function t(e){return e!=null&&typeof e=="object"}return Oo=t,Oo}var Vo,Cs;function Ku(){if(Cs)return Vo;Cs=1;var t=or(),e=qt(),r="[object Arguments]";function n(o){return e(o)&&t(o)==r}return Vo=n,Vo}var jo,_s;function fc(){if(_s)return jo;_s=1;var t=Ku(),e=qt(),r=Object.prototype,n=r.hasOwnProperty,o=r.propertyIsEnumerable,d=t((function(){return arguments})())?t:function(s){return e(s)&&n.call(s,"callee")&&!o.call(s,"callee")};return jo=d,jo}var Ho,Es;function ar(){if(Es)return Ho;Es=1;var t=Array.isArray;return Ho=t,Ho}var dr={exports:{}},No,Ts;function Qu(){if(Ts)return No;Ts=1;function t(){return!1}return No=t,No}dr.exports;var As;function zr(){return As||(As=1,(function(t,e){var r=Tt(),n=Qu(),o=e&&!e.nodeType&&e,d=o&&!0&&t&&!t.nodeType&&t,s=d&&d.exports===o,i=s?r.Buffer:void 0,c=i?i.isBuffer:void 0,u=c||n;t.exports=u})(dr,dr.exports)),dr.exports}var Uo,$s;function vc(){if($s)return Uo;$s=1;var t=9007199254740991,e=/^(?:0|[1-9]\d*)$/;function r(n,o){var d=typeof n;return o=o??t,!!o&&(d=="number"||d!="symbol"&&e.test(n))&&n>-1&&n%1==0&&n<o}return Uo=r,Uo}var Wo,Ps;function yc(){if(Ps)return Wo;Ps=1;var t=9007199254740991;function e(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=t}return Wo=e,Wo}var Yo,Is;function Ju(){if(Is)return Yo;Is=1;var t=or(),e=yc(),r=qt(),n="[object Arguments]",o="[object Array]",d="[object Boolean]",s="[object Date]",i="[object Error]",c="[object Function]",u="[object Map]",m="[object Number]",g="[object Object]",C="[object RegExp]",x="[object Set]",h="[object String]",k="[object WeakMap]",D="[object ArrayBuffer]",M="[object DataView]",$="[object Float32Array]",E="[object Float64Array]",p="[object Int8Array]",L="[object Int16Array]",N="[object Int32Array]",X="[object Uint8Array]",K="[object Uint8ClampedArray]",re="[object Uint16Array]",j="[object Uint32Array]",_={};_[$]=_[E]=_[p]=_[L]=_[N]=_[X]=_[K]=_[re]=_[j]=!0,_[n]=_[o]=_[D]=_[d]=_[M]=_[s]=_[i]=_[c]=_[u]=_[m]=_[g]=_[C]=_[x]=_[h]=_[k]=!1;function V(O){return r(O)&&e(O.length)&&!!_[t(O)]}return Yo=V,Yo}var Go,Ds;function sl(){if(Ds)return Go;Ds=1;function t(e){return function(r){return e(r)}}return Go=t,Go}var cr={exports:{}};cr.exports;var Ms;function il(){return Ms||(Ms=1,(function(t,e){var r=pc(),n=e&&!e.nodeType&&e,o=n&&!0&&t&&!t.nodeType&&t,d=o&&o.exports===n,s=d&&r.process,i=(function(){try{var c=o&&o.require&&o.require("util").types;return c||s&&s.binding&&s.binding("util")}catch{}})();t.exports=i})(cr,cr.exports)),cr.exports}var Xo,Ls;function dl(){if(Ls)return Xo;Ls=1;var t=Ju(),e=sl(),r=il(),n=r&&r.isTypedArray,o=n?e(n):t;return Xo=o,Xo}var Ko,zs;function xc(){if(zs)return Ko;zs=1;var t=Xu(),e=fc(),r=ar(),n=zr(),o=vc(),d=dl(),s=Object.prototype,i=s.hasOwnProperty;function c(u,m){var g=r(u),C=!g&&e(u),x=!g&&!C&&n(u),h=!g&&!C&&!x&&d(u),k=g||C||x||h,D=k?t(u.length,String):[],M=D.length;for(var $ in u)(m||i.call(u,$))&&!(k&&($=="length"||x&&($=="offset"||$=="parent")||h&&($=="buffer"||$=="byteLength"||$=="byteOffset")||o($,M)))&&D.push($);return D}return Ko=c,Ko}var Qo,Rs;function cl(){if(Rs)return Qo;Rs=1;var t=Object.prototype;function e(r){var n=r&&r.constructor,o=typeof n=="function"&&n.prototype||t;return r===o}return Qo=e,Qo}var Jo,Fs;function wc(){if(Fs)return Jo;Fs=1;function t(e,r){return function(n){return e(r(n))}}return Jo=t,Jo}var Zo,qs;function Zu(){if(qs)return Zo;qs=1;var t=wc(),e=t(Object.keys,Object);return Zo=e,Zo}var ea,Bs;function ep(){if(Bs)return ea;Bs=1;var t=cl(),e=Zu(),r=Object.prototype,n=r.hasOwnProperty;function o(d){if(!t(d))return e(d);var s=[];for(var i in Object(d))n.call(d,i)&&i!="constructor"&&s.push(i);return s}return ea=o,ea}var ta,Os;function Rr(){if(Os)return ta;Os=1;var t=ol(),e=yc();function r(n){return n!=null&&e(n.length)&&!t(n)}return ta=r,ta}var ra,Vs;function ul(){if(Vs)return ra;Vs=1;var t=xc(),e=ep(),r=Rr();function n(o){return r(o)?t(o):e(o)}return ra=n,ra}var oa,js;function tp(){if(js)return oa;js=1;var t=yr(),e=ul();function r(n,o){return n&&t(o,e(o),n)}return oa=r,oa}var aa,Hs;function rp(){if(Hs)return aa;Hs=1;function t(e){var r=[];if(e!=null)for(var n in Object(e))r.push(n);return r}return aa=t,aa}var na,Ns;function op(){if(Ns)return na;Ns=1;var t=Dt(),e=cl(),r=rp(),n=Object.prototype,o=n.hasOwnProperty;function d(s){if(!t(s))return r(s);var i=e(s),c=[];for(var u in s)u=="constructor"&&(i||!o.call(s,u))||c.push(u);return c}return na=d,na}var la,Us;function xr(){if(Us)return la;Us=1;var t=xc(),e=op(),r=Rr();function n(o){return r(o)?t(o,!0):e(o)}return la=n,la}var sa,Ws;function ap(){if(Ws)return sa;Ws=1;var t=yr(),e=xr();function r(n,o){return n&&t(o,e(o),n)}return sa=r,sa}var ur={exports:{}};ur.exports;var Ys;function kc(){return Ys||(Ys=1,(function(t,e){var r=Tt(),n=e&&!e.nodeType&&e,o=n&&!0&&t&&!t.nodeType&&t,d=o&&o.exports===n,s=d?r.Buffer:void 0,i=s?s.allocUnsafe:void 0;function c(u,m){if(m)return u.slice();var g=u.length,C=i?i(g):new u.constructor(g);return u.copy(C),C}t.exports=c})(ur,ur.exports)),ur.exports}var ia,Gs;function Sc(){if(Gs)return ia;Gs=1;function t(e,r){var n=-1,o=e.length;for(r||(r=Array(o));++n<o;)r[n]=e[n];return r}return ia=t,ia}var da,Xs;function np(){if(Xs)return da;Xs=1;function t(e,r){for(var n=-1,o=e==null?0:e.length,d=0,s=[];++n<o;){var i=e[n];r(i,n,e)&&(s[d++]=i)}return s}return da=t,da}var ca,Ks;function Cc(){if(Ks)return ca;Ks=1;function t(){return[]}return ca=t,ca}var ua,Qs;function pl(){if(Qs)return ua;Qs=1;var t=np(),e=Cc(),r=Object.prototype,n=r.propertyIsEnumerable,o=Object.getOwnPropertySymbols,d=o?function(s){return s==null?[]:(s=Object(s),t(o(s),function(i){return n.call(s,i)}))}:e;return ua=d,ua}var pa,Js;function lp(){if(Js)return pa;Js=1;var t=yr(),e=pl();function r(n,o){return t(n,e(n),o)}return pa=r,pa}var ga,Zs;function _c(){if(Zs)return ga;Zs=1;function t(e,r){for(var n=-1,o=r.length,d=e.length;++n<o;)e[d+n]=r[n];return e}return ga=t,ga}var ha,ei;function gl(){if(ei)return ha;ei=1;var t=wc(),e=t(Object.getPrototypeOf,Object);return ha=e,ha}var ma,ti;function Ec(){if(ti)return ma;ti=1;var t=_c(),e=gl(),r=pl(),n=Cc(),o=Object.getOwnPropertySymbols,d=o?function(s){for(var i=[];s;)t(i,r(s)),s=e(s);return i}:n;return ma=d,ma}var ba,ri;function sp(){if(ri)return ba;ri=1;var t=yr(),e=Ec();function r(n,o){return t(n,e(n),o)}return ba=r,ba}var fa,oi;function Tc(){if(oi)return fa;oi=1;var t=_c(),e=ar();function r(n,o,d){var s=o(n);return e(n)?s:t(s,d(n))}return fa=r,fa}var va,ai;function Ac(){if(ai)return va;ai=1;var t=Tc(),e=pl(),r=ul();function n(o){return t(o,r,e)}return va=n,va}var ya,ni;function ip(){if(ni)return ya;ni=1;var t=Tc(),e=Ec(),r=xr();function n(o){return t(o,r,e)}return ya=n,ya}var xa,li;function dp(){if(li)return xa;li=1;var t=Ht(),e=Tt(),r=t(e,"DataView");return xa=r,xa}var wa,si;function cp(){if(si)return wa;si=1;var t=Ht(),e=Tt(),r=t(e,"Promise");return wa=r,wa}var ka,ii;function up(){if(ii)return ka;ii=1;var t=Ht(),e=Tt(),r=t(e,"Set");return ka=r,ka}var Sa,di;function pp(){if(di)return Sa;di=1;var t=Ht(),e=Tt(),r=t(e,"WeakMap");return Sa=r,Sa}var Ca,ci;function Fr(){if(ci)return Ca;ci=1;var t=dp(),e=al(),r=cp(),n=up(),o=pp(),d=or(),s=gc(),i="[object Map]",c="[object Object]",u="[object Promise]",m="[object Set]",g="[object WeakMap]",C="[object DataView]",x=s(t),h=s(e),k=s(r),D=s(n),M=s(o),$=d;return(t&&$(new t(new ArrayBuffer(1)))!=C||e&&$(new e)!=i||r&&$(r.resolve())!=u||n&&$(new n)!=m||o&&$(new o)!=g)&&($=function(E){var p=d(E),L=p==c?E.constructor:void 0,N=L?s(L):"";if(N)switch(N){case x:return C;case h:return i;case k:return u;case D:return m;case M:return g}return p}),Ca=$,Ca}var _a,ui;function gp(){if(ui)return _a;ui=1;var t=Object.prototype,e=t.hasOwnProperty;function r(n){var o=n.length,d=new n.constructor(o);return o&&typeof n[0]=="string"&&e.call(n,"index")&&(d.index=n.index,d.input=n.input),d}return _a=r,_a}var Ea,pi;function $c(){if(pi)return Ea;pi=1;var t=Tt(),e=t.Uint8Array;return Ea=e,Ea}var Ta,gi;function hl(){if(gi)return Ta;gi=1;var t=$c();function e(r){var n=new r.constructor(r.byteLength);return new t(n).set(new t(r)),n}return Ta=e,Ta}var Aa,hi;function hp(){if(hi)return Aa;hi=1;var t=hl();function e(r,n){var o=n?t(r.buffer):r.buffer;return new r.constructor(o,r.byteOffset,r.byteLength)}return Aa=e,Aa}var $a,mi;function mp(){if(mi)return $a;mi=1;var t=/\w*$/;function e(r){var n=new r.constructor(r.source,t.exec(r));return n.lastIndex=r.lastIndex,n}return $a=e,$a}var Pa,bi;function bp(){if(bi)return Pa;bi=1;var t=vr(),e=t?t.prototype:void 0,r=e?e.valueOf:void 0;function n(o){return r?Object(r.call(o)):{}}return Pa=n,Pa}var Ia,fi;function Pc(){if(fi)return Ia;fi=1;var t=hl();function e(r,n){var o=n?t(r.buffer):r.buffer;return new r.constructor(o,r.byteOffset,r.length)}return Ia=e,Ia}var Da,vi;function fp(){if(vi)return Da;vi=1;var t=hl(),e=hp(),r=mp(),n=bp(),o=Pc(),d="[object Boolean]",s="[object Date]",i="[object Map]",c="[object Number]",u="[object RegExp]",m="[object Set]",g="[object String]",C="[object Symbol]",x="[object ArrayBuffer]",h="[object DataView]",k="[object Float32Array]",D="[object Float64Array]",M="[object Int8Array]",$="[object Int16Array]",E="[object Int32Array]",p="[object Uint8Array]",L="[object Uint8ClampedArray]",N="[object Uint16Array]",X="[object Uint32Array]";function K(re,j,_){var V=re.constructor;switch(j){case x:return t(re);case d:case s:return new V(+re);case h:return e(re,_);case k:case D:case M:case $:case E:case p:case L:case N:case X:return o(re,_);case i:return new V;case c:case g:return new V(re);case u:return r(re);case m:return new V;case C:return n(re)}}return Da=K,Da}var Ma,yi;function vp(){if(yi)return Ma;yi=1;var t=Dt(),e=Object.create,r=(function(){function n(){}return function(o){if(!t(o))return{};if(e)return e(o);n.prototype=o;var d=new n;return n.prototype=void 0,d}})();return Ma=r,Ma}var La,xi;function Ic(){if(xi)return La;xi=1;var t=vp(),e=gl(),r=cl();function n(o){return typeof o.constructor=="function"&&!r(o)?t(e(o)):{}}return La=n,La}var za,wi;function yp(){if(wi)return za;wi=1;var t=Fr(),e=qt(),r="[object Map]";function n(o){return e(o)&&t(o)==r}return za=n,za}var Ra,ki;function xp(){if(ki)return Ra;ki=1;var t=yp(),e=sl(),r=il(),n=r&&r.isMap,o=n?e(n):t;return Ra=o,Ra}var Fa,Si;function wp(){if(Si)return Fa;Si=1;var t=Fr(),e=qt(),r="[object Set]";function n(o){return e(o)&&t(o)==r}return Fa=n,Fa}var qa,Ci;function kp(){if(Ci)return qa;Ci=1;var t=wp(),e=sl(),r=il(),n=r&&r.isSet,o=n?e(n):t;return qa=o,qa}var Ba,_i;function Sp(){if(_i)return Ba;_i=1;var t=nl(),e=Gu(),r=bc(),n=tp(),o=ap(),d=kc(),s=Sc(),i=lp(),c=sp(),u=Ac(),m=ip(),g=Fr(),C=gp(),x=fp(),h=Ic(),k=ar(),D=zr(),M=xp(),$=Dt(),E=kp(),p=ul(),L=xr(),N=1,X=2,K=4,re="[object Arguments]",j="[object Array]",_="[object Boolean]",V="[object Date]",O="[object Error]",se="[object Function]",W="[object GeneratorFunction]",Q="[object Map]",ee="[object Number]",ve="[object Object]",ce="[object RegExp]",J="[object Set]",ne="[object String]",te="[object Symbol]",ue="[object WeakMap]",z="[object ArrayBuffer]",ie="[object DataView]",de="[object Float32Array]",fe="[object Float64Array]",B="[object Int8Array]",oe="[object Int16Array]",pe="[object Int32Array]",Ae="[object Uint8Array]",Ce="[object Uint8ClampedArray]",xe="[object Uint16Array]",Ee="[object Uint32Array]",we={};we[re]=we[j]=we[z]=we[ie]=we[_]=we[V]=we[de]=we[fe]=we[B]=we[oe]=we[pe]=we[Q]=we[ee]=we[ve]=we[ce]=we[J]=we[ne]=we[te]=we[Ae]=we[Ce]=we[xe]=we[Ee]=!0,we[O]=we[se]=we[ue]=!1;function R(U,Z,y,T,v,S){var P,ae=Z&N,q=Z&X,ye=Z&K;if(y&&(P=v?y(U,T,v,S):y(U)),P!==void 0)return P;if(!$(U))return U;var F=k(U);if(F){if(P=C(U),!ae)return s(U,P)}else{var A=g(U),I=A==se||A==W;if(D(U))return d(U,ae);if(A==ve||A==re||I&&!v){if(P=q||I?{}:h(U),!ae)return q?c(U,o(P,U)):i(U,n(P,U))}else{if(!we[A])return v?U:{};P=x(U,A,ae)}}S||(S=new t);var H=S.get(U);if(H)return H;S.set(U,P),E(U)?U.forEach(function(be){P.add(R(be,Z,y,be,U,S))}):M(U)&&U.forEach(function(be,me){P.set(me,R(be,Z,y,me,U,S))});var ke=ye?q?m:u:q?L:p,Y=F?void 0:ke(U);return e(Y||U,function(be,me){Y&&(me=be,be=U[me]),r(P,me,R(be,Z,y,me,U,S))}),P}return Ba=R,Ba}var Oa,Ei;function Cp(){if(Ei)return Oa;Ei=1;var t=Sp(),e=1,r=4;function n(o){return t(o,e|r)}return Oa=n,Oa}var _p=Cp();const Se=br(_p);var $e=(t=>(t.TEXT="text",t.IMAGE="image",t.TABLE="table",t.PAGE_NUMBER="pageNumber",t.BARCODE="barcode",t.QRCODE="qrcode",t.LINE="line",t.RECT="rect",t.CIRCLE="circle",t.CHART="chart",t))($e||{});const Ep={mode:"local",endpoints:{baseUrl:"",templates:{list:"/api/print/templates",get:"/api/print/templates/{id}",upsert:"/api/print/templates",delete:"/api/print/templates/{id}"},customElements:{list:"/api/print/custom-elements",get:"/api/print/custom-elements/{id}",upsert:"/api/print/custom-elements",delete:"/api/print/custom-elements/{id}"}},headers:{"Content-Type":"application/json"}};let pr={...Ep};const Tp=(t,e)=>({...t}),lt=()=>({mode:pr.mode,endpoints:Tp(pr.endpoints),headers:{...pr.headers||{}},fetcher:pr.fetcher}),Ap=t=>{const e=pr.endpoints.baseUrl||"";return t?/^https?:\/\//i.test(t)||!e?t:t.startsWith("/")?`${e.replace(/\/+$/,"")}${t}`:`${e.replace(/\/+$/,"")}/${t}`:e||""},ut=(t,e)=>{const r=typeof t=="string"?t:(t==null?void 0:t.url)||"",n=e?r.replace("{id}",e):r;return Ap(n)},pt=(t,e,r,n)=>{const o=typeof t=="object"&&t.method?t.method.toUpperCase():e.toUpperCase(),d=o==="POST"||o==="PUT"||o==="PATCH",s={method:o,headers:r,cache:"no-store"};return d&&n!==void 0&&(s.body=JSON.stringify(n)),s};class $p{constructor(){_l(this,"container",null)}initContainer(){this.container||(this.container=document.createElement("div"),this.container.style.position="fixed",this.container.style.top="20px",this.container.style.left="50%",this.container.style.transform="translateX(-50%)",this.container.style.zIndex="9999",this.container.style.display="flex",this.container.style.flexDirection="column",this.container.style.gap="10px",this.container.style.pointerEvents="none",document.body.appendChild(this.container))}show(e,r="info",n=3e3){this.initContainer();const o=document.createElement("div");switch(o.style.padding="12px 24px",o.style.borderRadius="0.5rem",o.style.color="#fff",o.style.fontSize="0.875rem",o.style.boxShadow="0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)",o.style.transition="opacity 0.2s, transform 0.2s",o.style.opacity="0",o.style.transform="translateY(-20px)",r){case"success":o.style.backgroundColor="#10b981";break;case"error":o.style.backgroundColor="#ef4444";break;case"warning":o.style.backgroundColor="#f59e0b";break;case"info":o.style.backgroundColor="#3b82f6";break}o.textContent=e,this.container.appendChild(o),requestAnimationFrame(()=>{o.style.opacity="1",o.style.transform="translateY(0)"}),setTimeout(()=>{o.style.opacity="0",o.style.transform="translateY(-20px)",setTimeout(()=>{o.parentNode===this.container&&this.container&&this.container.removeChild(o)},200)},n)}success(e,r){this.show(e,"success",r)}error(e,r){this.show(e,"error",r)}info(e,r){this.show(e,"info",r)}warning(e,r){this.show(e,"warning",r)}}const Fe=new $p;var Va,Ti;function Dc(){if(Ti)return Va;Ti=1;var t=ll(),e=fr();function r(n,o,d){(d!==void 0&&!e(n[o],d)||d===void 0&&!(o in n))&&t(n,o,d)}return Va=r,Va}var ja,Ai;function Pp(){if(Ai)return ja;Ai=1;function t(e){return function(r,n,o){for(var d=-1,s=Object(r),i=o(r),c=i.length;c--;){var u=i[e?c:++d];if(n(s[u],u,s)===!1)break}return r}}return ja=t,ja}var Ha,$i;function Ip(){if($i)return Ha;$i=1;var t=Pp(),e=t();return Ha=e,Ha}var Na,Pi;function Dp(){if(Pi)return Na;Pi=1;var t=Rr(),e=qt();function r(n){return e(n)&&t(n)}return Na=r,Na}var Ua,Ii;function Mp(){if(Ii)return Ua;Ii=1;var t=or(),e=gl(),r=qt(),n="[object Object]",o=Function.prototype,d=Object.prototype,s=o.toString,i=d.hasOwnProperty,c=s.call(Object);function u(m){if(!r(m)||t(m)!=n)return!1;var g=e(m);if(g===null)return!0;var C=i.call(g,"constructor")&&g.constructor;return typeof C=="function"&&C instanceof C&&s.call(C)==c}return Ua=u,Ua}var Wa,Di;function Mc(){if(Di)return Wa;Di=1;function t(e,r){if(!(r==="constructor"&&typeof e[r]=="function")&&r!="__proto__")return e[r]}return Wa=t,Wa}var Ya,Mi;function Lp(){if(Mi)return Ya;Mi=1;var t=yr(),e=xr();function r(n){return t(n,e(n))}return Ya=r,Ya}var Ga,Li;function zp(){if(Li)return Ga;Li=1;var t=Dc(),e=kc(),r=Pc(),n=Sc(),o=Ic(),d=fc(),s=ar(),i=Dp(),c=zr(),u=ol(),m=Dt(),g=Mp(),C=dl(),x=Mc(),h=Lp();function k(D,M,$,E,p,L,N){var X=x(D,$),K=x(M,$),re=N.get(K);if(re){t(D,$,re);return}var j=L?L(X,K,$+"",D,M,N):void 0,_=j===void 0;if(_){var V=s(K),O=!V&&c(K),se=!V&&!O&&C(K);j=K,V||O||se?s(X)?j=X:i(X)?j=n(X):O?(_=!1,j=e(K,!0)):se?(_=!1,j=r(K,!0)):j=[]:g(K)||d(K)?(j=X,d(X)?j=h(X):(!m(X)||u(X))&&(j=o(K))):_=!1}_&&(N.set(K,j),p(j,K,E,L,N),N.delete(K)),t(D,$,j)}return Ga=k,Ga}var Xa,zi;function Rp(){if(zi)return Xa;zi=1;var t=nl(),e=Dc(),r=Ip(),n=zp(),o=Dt(),d=xr(),s=Mc();function i(c,u,m,g,C){c!==u&&r(u,function(x,h){if(C||(C=new t),o(x))n(c,u,h,m,i,g,C);else{var k=g?g(s(c,h),x,h+"",c,u,C):void 0;k===void 0&&(k=x),e(c,h,k)}},d)}return Xa=i,Xa}var Ka,Ri;function Lc(){if(Ri)return Ka;Ri=1;function t(e){return e}return Ka=t,Ka}var Qa,Fi;function Fp(){if(Fi)return Qa;Fi=1;function t(e,r,n){switch(n.length){case 0:return e.call(r);case 1:return e.call(r,n[0]);case 2:return e.call(r,n[0],n[1]);case 3:return e.call(r,n[0],n[1],n[2])}return e.apply(r,n)}return Qa=t,Qa}var Ja,qi;function qp(){if(qi)return Ja;qi=1;var t=Fp(),e=Math.max;function r(n,o,d){return o=e(o===void 0?n.length-1:o,0),function(){for(var s=arguments,i=-1,c=e(s.length-o,0),u=Array(c);++i<c;)u[i]=s[o+i];i=-1;for(var m=Array(o+1);++i<o;)m[i]=s[i];return m[o]=d(u),t(n,this,m)}}return Ja=r,Ja}var Za,Bi;function Bp(){if(Bi)return Za;Bi=1;function t(e){return function(){return e}}return Za=t,Za}var en,Oi;function Op(){if(Oi)return en;Oi=1;var t=Bp(),e=mc(),r=Lc(),n=e?function(o,d){return e(o,"toString",{configurable:!0,enumerable:!1,value:t(d),writable:!0})}:r;return en=n,en}var tn,Vi;function Vp(){if(Vi)return tn;Vi=1;var t=800,e=16,r=Date.now;function n(o){var d=0,s=0;return function(){var i=r(),c=e-(i-s);if(s=i,c>0){if(++d>=t)return arguments[0]}else d=0;return o.apply(void 0,arguments)}}return tn=n,tn}var rn,ji;function jp(){if(ji)return rn;ji=1;var t=Op(),e=Vp(),r=e(t);return rn=r,rn}var on,Hi;function Hp(){if(Hi)return on;Hi=1;var t=Lc(),e=qp(),r=jp();function n(o,d){return r(e(o,d,t),o+"")}return on=n,on}var an,Ni;function Np(){if(Ni)return an;Ni=1;var t=fr(),e=Rr(),r=vc(),n=Dt();function o(d,s,i){if(!n(i))return!1;var c=typeof s;return(c=="number"?e(i)&&r(s,i.length):c=="string"&&s in i)?t(i[s],d):!1}return an=o,an}var nn,Ui;function Up(){if(Ui)return nn;Ui=1;var t=Hp(),e=Np();function r(n){return t(function(o,d){var s=-1,i=d.length,c=i>1?d[i-1]:void 0,u=i>2?d[2]:void 0;for(c=n.length>3&&typeof c=="function"?(i--,c):void 0,u&&e(d[0],d[1],u)&&(c=i<3?void 0:c,i=1),o=Object(o);++s<i;){var m=d[s];m&&n(o,m,s,c)}return o})}return nn=r,nn}var ln,Wi;function Wp(){if(Wi)return ln;Wi=1;var t=Rp(),e=Up(),r=e(function(n,o,d,s){t(n,o,d,s)});return ln=r,ln}var Yp=Wp();const Gp=br(Yp),Zn=t=>{if(t===null||typeof t!="object")return t;if(Array.isArray(t))return t.map(Zn);const e={};for(const r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=Zn(t[r]));return e},Bt=t=>!!t&&typeof t=="object"&&!Array.isArray(t),et=(...t)=>Gp({},...t.filter(Bt),(e,r)=>{if(Array.isArray(r))return r}),$t=t=>typeof t=="boolean"?t:void 0,qr=t=>{const e=Bt(t)?t:{},r=Bt(e.permissions)?e.permissions:{},n=$t(e.system)??$t(e.isSystem)??$t(r.system)??$t(r.isSystem)??!1,o=$t(e.editable)??$t(r.editable)??!n,d=$t(e.deletable)??$t(r.deletable)??!n,s=$t(e.copyable)??$t(r.copyable)??!0;return{system:n,editable:n?!1:o,deletable:n?!1:d,copyable:s}},Xe=t=>{const e=qr(t),r=Bt(t.ext)?t.ext:{},n={id:t.id,name:t.name,ext:r,permissions:{...Bt(t.permissions)?t.permissions:{},...e}};return"data"in t&&(n.data=t.data),"updatedAt"in t&&(n.updatedAt=t.updatedAt),"element"in t&&(n.element=t.element),"testData"in t&&(n.testData=t.testData),n},ht=t=>qr(t).editable,er=t=>qr(t).deletable,tr=t=>qr(t).copyable,Xp=t=>{if(!t||!Bt(t))return;const e={};for(const r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=Zn(t[r]));return Object.keys(e).length>0?e:void 0},zt=(t,e,r)=>{const n=Xp(r),o=t.ext&&Bt(t.ext)?t.ext:{},d=o.templateModalForm&&Bt(o.templateModalForm)?o.templateModalForm:{},s=d.lastMode;let i=n;return i||(d[e]?i=d[e]:s&&d[s]&&(i=d[s])),{...t,ext:{...o,templateModalForm:{...d,...i?{[e]:i}:{},lastMode:e,updatedAt:Date.now()}}}};var sn,Yi;function Kp(){if(Yi)return sn;Yi=1;var t="__lodash_hash_undefined__";function e(r){return this.__data__.set(r,t),this}return sn=e,sn}var dn,Gi;function Qp(){if(Gi)return dn;Gi=1;function t(e){return this.__data__.has(e)}return dn=t,dn}var cn,Xi;function Jp(){if(Xi)return cn;Xi=1;var t=hc(),e=Kp(),r=Qp();function n(o){var d=-1,s=o==null?0:o.length;for(this.__data__=new t;++d<s;)this.add(o[d])}return n.prototype.add=n.prototype.push=e,n.prototype.has=r,cn=n,cn}var un,Ki;function Zp(){if(Ki)return un;Ki=1;function t(e,r){for(var n=-1,o=e==null?0:e.length;++n<o;)if(r(e[n],n,e))return!0;return!1}return un=t,un}var pn,Qi;function eg(){if(Qi)return pn;Qi=1;function t(e,r){return e.has(r)}return pn=t,pn}var gn,Ji;function zc(){if(Ji)return gn;Ji=1;var t=Jp(),e=Zp(),r=eg(),n=1,o=2;function d(s,i,c,u,m,g){var C=c&n,x=s.length,h=i.length;if(x!=h&&!(C&&h>x))return!1;var k=g.get(s),D=g.get(i);if(k&&D)return k==i&&D==s;var M=-1,$=!0,E=c&o?new t:void 0;for(g.set(s,i),g.set(i,s);++M<x;){var p=s[M],L=i[M];if(u)var N=C?u(L,p,M,i,s,g):u(p,L,M,s,i,g);if(N!==void 0){if(N)continue;$=!1;break}if(E){if(!e(i,function(X,K){if(!r(E,K)&&(p===X||m(p,X,c,u,g)))return E.push(K)})){$=!1;break}}else if(!(p===L||m(p,L,c,u,g))){$=!1;break}}return g.delete(s),g.delete(i),$}return gn=d,gn}var hn,Zi;function tg(){if(Zi)return hn;Zi=1;function t(e){var r=-1,n=Array(e.size);return e.forEach(function(o,d){n[++r]=[d,o]}),n}return hn=t,hn}var mn,ed;function rg(){if(ed)return mn;ed=1;function t(e){var r=-1,n=Array(e.size);return e.forEach(function(o){n[++r]=o}),n}return mn=t,mn}var bn,td;function og(){if(td)return bn;td=1;var t=vr(),e=$c(),r=fr(),n=zc(),o=tg(),d=rg(),s=1,i=2,c="[object Boolean]",u="[object Date]",m="[object Error]",g="[object Map]",C="[object Number]",x="[object RegExp]",h="[object Set]",k="[object String]",D="[object Symbol]",M="[object ArrayBuffer]",$="[object DataView]",E=t?t.prototype:void 0,p=E?E.valueOf:void 0;function L(N,X,K,re,j,_,V){switch(K){case $:if(N.byteLength!=X.byteLength||N.byteOffset!=X.byteOffset)return!1;N=N.buffer,X=X.buffer;case M:return!(N.byteLength!=X.byteLength||!_(new e(N),new e(X)));case c:case u:case C:return r(+N,+X);case m:return N.name==X.name&&N.message==X.message;case x:case k:return N==X+"";case g:var O=o;case h:var se=re&s;if(O||(O=d),N.size!=X.size&&!se)return!1;var W=V.get(N);if(W)return W==X;re|=i,V.set(N,X);var Q=n(O(N),O(X),re,j,_,V);return V.delete(N),Q;case D:if(p)return p.call(N)==p.call(X)}return!1}return bn=L,bn}var fn,rd;function ag(){if(rd)return fn;rd=1;var t=Ac(),e=1,r=Object.prototype,n=r.hasOwnProperty;function o(d,s,i,c,u,m){var g=i&e,C=t(d),x=C.length,h=t(s),k=h.length;if(x!=k&&!g)return!1;for(var D=x;D--;){var M=C[D];if(!(g?M in s:n.call(s,M)))return!1}var $=m.get(d),E=m.get(s);if($&&E)return $==s&&E==d;var p=!0;m.set(d,s),m.set(s,d);for(var L=g;++D<x;){M=C[D];var N=d[M],X=s[M];if(c)var K=g?c(X,N,M,s,d,m):c(N,X,M,d,s,m);if(!(K===void 0?N===X||u(N,X,i,c,m):K)){p=!1;break}L||(L=M=="constructor")}if(p&&!L){var re=d.constructor,j=s.constructor;re!=j&&"constructor"in d&&"constructor"in s&&!(typeof re=="function"&&re instanceof re&&typeof j=="function"&&j instanceof j)&&(p=!1)}return m.delete(d),m.delete(s),p}return fn=o,fn}var vn,od;function ng(){if(od)return vn;od=1;var t=nl(),e=zc(),r=og(),n=ag(),o=Fr(),d=ar(),s=zr(),i=dl(),c=1,u="[object Arguments]",m="[object Array]",g="[object Object]",C=Object.prototype,x=C.hasOwnProperty;function h(k,D,M,$,E,p){var L=d(k),N=d(D),X=L?m:o(k),K=N?m:o(D);X=X==u?g:X,K=K==u?g:K;var re=X==g,j=K==g,_=X==K;if(_&&s(k)){if(!s(D))return!1;L=!0,re=!1}if(_&&!re)return p||(p=new t),L||i(k)?e(k,D,M,$,E,p):r(k,D,X,M,$,E,p);if(!(M&c)){var V=re&&x.call(k,"__wrapped__"),O=j&&x.call(D,"__wrapped__");if(V||O){var se=V?k.value():k,W=O?D.value():D;return p||(p=new t),E(se,W,M,$,p)}}return _?(p||(p=new t),n(k,D,M,$,E,p)):!1}return vn=h,vn}var yn,ad;function lg(){if(ad)return yn;ad=1;var t=ng(),e=qt();function r(n,o,d,s,i){return n===o?!0:n==null||o==null||!e(n)&&!e(o)?n!==n&&o!==o:t(n,o,d,s,r,i)}return yn=r,yn}var xn,nd;function sg(){if(nd)return xn;nd=1;var t=lg();function e(r,n){return t(r,n)}return xn=e,xn}var ig=sg();const wn=br(ig),dg=t=>!t||typeof t!="object"||typeof t.id!="string"||!t.id||typeof t.type!="string"||!t.type?null:{...t,style:t.style&&typeof t.style=="object"?t.style:{}},Rc=t=>Array.isArray(t)?t.filter(e=>e&&typeof e=="object").map((e,r)=>({...e,id:typeof e.id=="string"&&e.id?e.id:`page-${r+1}`,elements:Array.isArray(e.elements)?e.elements.map(dg).filter(Boolean):[]})):[],Pt=t=>{const e=t&&typeof t=="object"?t:{};return{...e,pages:Rc(e.pages)}},cg=t=>!t||typeof t!="object"?!1:!!(Array.isArray(t.pages)&&t.pages.length>0||t.canvasSize&&typeof t.canvasSize=="object"),Fc=t=>Array.isArray(t)?Se(t):[],kt=(...t)=>{var e;for(const r of t)if(!(!r||typeof r!="object")&&Array.isArray((e=r.ext)==null?void 0:e.availableVariables))return Fc(r.ext.availableVariables);return[]},ft=(t,e)=>et(t,{availableVariables:Fc(e)}),wr=sc("templates",{state:()=>({templates:[],templateDetailCache:{},currentTemplateId:null,isSaving:!1,isLoading:!1}),actions:{async fetchTemplateDetail(t){var d,s;const{mode:e,endpoints:r,headers:n,fetcher:o}=lt();if(e==="remote"){this.isLoading=!0;try{const i=ut((d=r.templates)==null?void 0:d.get,t),c=pt((s=r.templates)==null?void 0:s.get,"GET",n),m=await(await(o||fetch)(i,c)).json(),g=(m==null?void 0:m.template)||m;if(!g)return null;const C=Pt(g.data),x=g.id||t,h=this.templates.find($=>$.id===x),k=this.templateDetailCache[x],D={id:x,name:g.name||(h==null?void 0:h.name)||(k==null?void 0:k.name)||"",data:C,updatedAt:g.updatedAt||(k==null?void 0:k.updatedAt)||(h==null?void 0:h.updatedAt)||Date.now(),permissions:g.permissions??(k==null?void 0:k.permissions)??(h==null?void 0:h.permissions),ext:ft(et(h==null?void 0:h.ext,k==null?void 0:k.ext,g.ext),kt(g,k,h))},M=Xe(D);return this.templateDetailCache[x]=M,M}catch(i){return console.error("Failed to fetch template detail",i),null}finally{this.isLoading=!1}}else{const i=this.templates.find(c=>c.id===t);return i?(this.templateDetailCache[t]=i,i):null}},async loadTemplates(){var d,s;const{mode:t,endpoints:e,headers:r,fetcher:n}=lt();if(t==="remote"){this.isLoading=!0;try{const i=ut((d=e.templates)==null?void 0:d.list,""),c=pt((s=e.templates)==null?void 0:s.list,"GET",r),m=await(await(n||fetch)(i,c)).json(),C=(Array.isArray(m)?m:(m==null?void 0:m.templates)||[]).filter(h=>h&&typeof h.id=="string"&&typeof h.name=="string").map(h=>{const k=this.templates.find(E=>E.id===h.id),D=this.templateDetailCache[h.id],M={id:h.id,name:h.name,data:cg(h.data)?Pt(h.data):(D==null?void 0:D.data)||(k==null?void 0:k.data)||Pt(void 0),updatedAt:h.updatedAt||(D==null?void 0:D.updatedAt)||(k==null?void 0:k.updatedAt)||Date.now(),permissions:h.permissions??(D==null?void 0:D.permissions)??(k==null?void 0:k.permissions),ext:ft(et(k==null?void 0:k.ext,D==null?void 0:D.ext,h.ext),kt(h,D,k))},$=Xe(M);return this.templateDetailCache[h.id]=$,$}),x=Se(El(this.templates));wn(x,C)||(this.templates=C);return}catch(i){console.error("Failed to load templates",i),this.templates=[];return}finally{this.isLoading=!1}}const o=localStorage.getItem("print-designer-templates");if(o)try{const i=JSON.parse(o),u=(Array.isArray(i)?i:[]).filter(g=>g&&typeof g.id=="string"&&typeof g.name=="string").map(g=>{const C=this.templates.find(x=>x.id===g.id);return Xe({id:g.id,name:g.name,data:g.data?Pt(g.data):(C==null?void 0:C.data)||Pt(void 0),updatedAt:g.updatedAt||(C==null?void 0:C.updatedAt)||Date.now(),permissions:g.permissions??(C==null?void 0:C.permissions),ext:ft(et(C==null?void 0:C.ext,g.ext),kt(g,C))})}),m=Se(El(this.templates));wn(m,u)||(this.templates=u)}catch(i){console.error("Failed to parse templates",i),this.templates=[]}},saveToLocalStorage(){const{mode:t}=lt();t!=="remote"&&localStorage.setItem("print-designer-templates",JSON.stringify(this.templates))},async saveCurrentTemplate(t,e=!1){var m,g,C;const{mode:r,endpoints:n,headers:o,fetcher:d}=lt(),s=je(),i=this.currentTemplateId,c=i?this.templates.find(x=>x.id===i):void 0;if(i&&c&&!ht(c)){e||Fe.warning(Qe.global.t("toast.templateReadOnly"));return}const u={...(c==null?void 0:c.data)||{},pages:Rc(Se(s.pages)),canvasSize:Se(s.canvasSize),guides:Se(s.guides),zoom:s.zoom,showGrid:s.showGrid,headerHeight:s.headerHeight,footerHeight:s.footerHeight,showHeaderLine:s.showHeaderLine,showFooterLine:s.showFooterLine,showMinimap:s.showMinimap,canvasBackground:s.canvasBackground,pageSpacingX:s.pageSpacingX,pageSpacingY:s.pageSpacingY,unit:s.unit,watermark:Se(s.watermark),testData:Se(s.testData||{})};if(i&&c){const x=Pt(c.data||{}),h=Pt(u);if(c.name===t&&wn(x,h))return}this.isSaving=!0,r==="remote"&&!e&&(this.isLoading=!0);try{if(r==="remote")try{const x=i?this.templateDetailCache[i]||c||{}:{},h={id:i||rt(),name:t,data:{...(x==null?void 0:x.data)||{},...u},updatedAt:Date.now(),permissions:x==null?void 0:x.permissions,ext:ft(et(c==null?void 0:c.ext,x==null?void 0:x.ext),s.availableVariables)},k=Xe(zt(h,i?"edit":"create")),D=ut((m=n.templates)==null?void 0:m.upsert,""),M=pt((g=n.templates)==null?void 0:g.upsert,"POST",o,k),E=await(await(d||fetch)(D,M)).json(),p=(E==null?void 0:E.id)||k.id,L=this.templates.findIndex(K=>K.id===p),N=E&&typeof E=="object"&&E.ext?E.ext:{},X=Xe({...k,ext:et(k.ext,N),id:p});L>=0?this.templates[L]=X:this.templates.push(X),this.templateDetailCache[p]={...this.templateDetailCache[p]||{},...X},(!i||this.currentTemplateId===i)&&(this.currentTemplateId=p),e||await this.loadTemplates();return}catch(x){throw console.error("Failed to save template",x),e||Fe.error(Qe.global.t("toast.templateSaveFailed")),x}if(i){const x=this.templates.findIndex(h=>h.id===i);x>=0&&(this.templates[x]=Xe({...this.templates[x],name:t,data:u,updatedAt:Date.now(),ext:ft((C=this.templates[x])==null?void 0:C.ext,s.availableVariables)}))}else this.createTemplate(t,u);this.saveToLocalStorage()}finally{this.isSaving=!1,r==="remote"&&!e&&(this.isLoading=!1)}},async updateTemplate(t,e){var m,g;const{mode:r,endpoints:n,headers:o,fetcher:d}=lt(),s=this.templates.find(C=>C.id===t);let i=this.templateDetailCache[t];if(r==="remote"){const C=await this.fetchTemplateDetail(t);C&&(i=C)}if(!s&&!i)return;const u=Xe({...i||s,...e,updatedAt:Date.now()});if(r==="remote")try{const C=ut((m=n.templates)==null?void 0:m.upsert,""),x=pt((g=n.templates)==null?void 0:g.upsert,"POST",o,u),k=await(await(d||fetch)(C,x)).json(),D=k&&typeof k=="object"&&k.ext?k.ext:{},M=Xe({...u,ext:et(u.ext,D),id:(k==null?void 0:k.id)||u.id}),$=this.templates.findIndex(E=>E.id===M.id);$>=0&&(this.templates[$]=M),this.templateDetailCache[M.id]=M}catch(C){console.error("Failed to update template",C),Fe.error(Qe.global.t("toast.templateSaveFailed"))}else{const C=this.templates.findIndex(x=>x.id===t);C>=0&&(this.templates[C]=u),this.templateDetailCache[t]=u,this.saveToLocalStorage()}},async createTemplate(t,e,r,n="create"){var x,h;const{mode:o,endpoints:d,headers:s,fetcher:i}=lt(),c=je(),u=e||{pages:Se(c.pages),canvasSize:Se(c.canvasSize),pageSpacingX:c.pageSpacingX,pageSpacingY:c.pageSpacingY,unit:c.unit,watermark:Se(c.watermark),testData:Se(c.testData||{}),guides:Se(c.guides),zoom:c.zoom,showGrid:c.showGrid,headerHeight:c.headerHeight,footerHeight:c.footerHeight,showHeaderLine:c.showHeaderLine,showFooterLine:c.showFooterLine,showMinimap:c.showMinimap,canvasBackground:c.canvasBackground},m=Pt(u),g=zt({id:rt(),name:t,data:m,updatedAt:Date.now(),ext:ft(void 0,c.availableVariables)},n,r),C=Xe(g);if(o==="remote"){this.isLoading=!0;try{const k=ut((x=d.templates)==null?void 0:x.upsert,""),D=pt((h=d.templates)==null?void 0:h.upsert,"POST",s,C),$=await(await(i||fetch)(k,D)).json();$&&typeof $=="object"&&$.ext&&(C.ext={...C.ext||{},...$.ext});const E=($==null?void 0:$.id)||C.id;C.id=E;const p=this.templateDetailCache[E];this.templateDetailCache[E]=Xe({id:C.id,name:C.name,data:C.data||(p==null?void 0:p.data),updatedAt:C.updatedAt||(p==null?void 0:p.updatedAt),permissions:C.permissions??(p==null?void 0:p.permissions),ext:ft(et(p==null?void 0:p.ext,C.ext),kt(C,p))}),await this.loadTemplates()}catch(k){console.error("Failed to create template",k)}finally{this.isLoading=!1}}else this.templates.push(C),this.saveToLocalStorage();this.currentTemplateId=C.id},async deleteTemplate(t){var s,i;const{mode:e,endpoints:r,headers:n,fetcher:o}=lt(),d=this.templates.find(c=>c.id===t);if(d&&!er(d)){Fe.warning(Qe.global.t("toast.templateDeleteNotAllowed"));return}if(this.templates=this.templates.filter(c=>c.id!==t),delete this.templateDetailCache[t],this.currentTemplateId===t&&(this.currentTemplateId=null),e==="remote"){this.isLoading=!0;try{const c=ut((s=r.templates)==null?void 0:s.delete,t),u=pt((i=r.templates)==null?void 0:i.delete,"DELETE",n);await(o||fetch)(c,u),await this.loadTemplates()}catch(c){console.error("Failed to delete template",c),Fe.error(Qe.global.t("toast.templateDeleteFailed"))}finally{this.isLoading=!1}return}this.saveToLocalStorage()},async editTemplate(t,e,r){var c,u;const{mode:n,endpoints:o,headers:d,fetcher:s}=lt(),i=this.templates.find(m=>m.id===t);if(i){if(!ht(i)){Fe.warning(Qe.global.t("toast.templateReadOnly"));return}i.name=e,i.updatedAt=Date.now();const m=zt(i,"edit",r);if(m!==i&&Object.assign(i,m),n==="remote"){this.isLoading=!0;try{let g=this.templateDetailCache[t];const C=await this.fetchTemplateDetail(t);C&&(g=C);const x=zt({id:i.id,name:e,data:(g==null?void 0:g.data)||i.data||{},updatedAt:i.updatedAt,permissions:i.permissions??(g==null?void 0:g.permissions),ext:ft(et(g==null?void 0:g.ext,i.ext),kt(i,g))},"edit",r),h=Xe(x),k=ut((c=o.templates)==null?void 0:c.upsert,""),D=pt((u=o.templates)==null?void 0:u.upsert,"POST",d,h);await(s||fetch)(k,D),this.templateDetailCache[t]={...this.templateDetailCache[t]||{},...h},await this.loadTemplates()}catch(g){console.error("Failed to edit template",g),Fe.error(Qe.global.t("toast.templateEditFailed"))}finally{this.isLoading=!1}return}this.saveToLocalStorage()}},async copyTemplate(t,e,r){var c,u;const{mode:n,endpoints:o,headers:d,fetcher:s}=lt(),i=this.templates.find(m=>m.id===t);if(i){if(!tr(i)){Fe.warning(Qe.global.t("toast.templateCopyNotAllowed"));return}let m=this.templateDetailCache[t];if(n==="remote"){const k=await this.fetchTemplateDetail(t);k&&(m=k)}const g=(m==null?void 0:m.data)||i.data,C=n==="remote"?{id:i.id,name:i.name,data:g,ext:ft(et(m==null?void 0:m.ext,i.ext),kt(i,m))}:i,x=zt({id:rt(),name:typeof e=="string"&&e.trim()?e.trim():`${C.name} Copy`,data:Pt(JSON.parse(JSON.stringify(C.data))),updatedAt:Date.now(),ext:ft(C.ext,kt(C)),permissions:{...C.permissions&&typeof C.permissions=="object"?C.permissions:{}}},"copy",r),h=Xe(x);if(n==="remote"){this.isLoading=!0;try{const k=ut((c=o.templates)==null?void 0:c.upsert,""),D=pt((u=o.templates)==null?void 0:u.upsert,"POST",d,h),$=await(await(s||fetch)(k,D)).json();$&&typeof $=="object"&&$.ext&&(h.ext={...h.ext||{},...$.ext}),h.id=($==null?void 0:$.id)||h.id;const E=this.templateDetailCache[h.id];this.templateDetailCache[h.id]=Xe({id:h.id,name:h.name,data:h.data||(E==null?void 0:E.data),updatedAt:h.updatedAt||(E==null?void 0:E.updatedAt),permissions:h.permissions??(E==null?void 0:E.permissions),ext:ft(et(E==null?void 0:E.ext,h.ext),kt(h,E))}),await this.loadTemplates(),this.currentTemplateId=h.id,await this.loadTemplate(h.id)}catch(k){console.error("Failed to copy template",k),Fe.error(Qe.global.t("toast.templateCopyFailed"))}finally{this.isLoading=!1}}else this.templates.unshift(h),this.saveToLocalStorage(),this.currentTemplateId=h.id,await this.loadTemplate(h.id)}},async loadTemplate(t){this.isLoading=!0;try{const{mode:e,endpoints:r,headers:n,fetcher:o}=lt();if(e==="remote")try{const s=await this.fetchTemplateDetail(t);if(!s)return;const i=s,c=je();c.resetCanvas();const u=i.data;u.pages&&u.pages.length>0&&(c.pages=Se(u.pages)),u.canvasSize&&(c.canvasSize=Se(u.canvasSize)),u.guides&&(c.guides=Se(u.guides)),u.zoom!==void 0&&(c.zoom=u.zoom),u.showGrid!==void 0&&(c.showGrid=u.showGrid),u.headerHeight!==void 0&&(c.headerHeight=u.headerHeight),u.footerHeight!==void 0&&(c.footerHeight=u.footerHeight),u.showHeaderLine!==void 0&&(c.showHeaderLine=u.showHeaderLine),u.showFooterLine!==void 0&&(c.showFooterLine=u.showFooterLine),u.showMinimap!==void 0&&(c.showMinimap=u.showMinimap),u.canvasBackground!==void 0&&(c.canvasBackground=u.canvasBackground),u.pageSpacingX!==void 0&&(c.pageSpacingX=u.pageSpacingX),u.pageSpacingY!==void 0&&(c.pageSpacingY=u.pageSpacingY),u.unit!==void 0&&(c.unit=u.unit),u.watermark!==void 0&&(c.watermark=Se(u.watermark)),c.testData=Se(u.testData||{}),c.setAvailableVariables(kt(i)),c.selectedElementId=null,c.selectedGuideId=null,c.historyPast=[],c.historyFuture=[];const m=i.id||t;this.currentTemplateId=m;const g=this.templates.findIndex(C=>C.id===m);g>=0?this.templates[g]=Xe({id:m,name:i.name||this.templates[g].name,data:u,updatedAt:i.updatedAt||this.templates[g].updatedAt,permissions:i.permissions??this.templates[g].permissions,ext:ft(et(this.templates[g].ext,i.ext),kt(i,this.templates[g]))}):this.templates.push(Xe({id:m,name:i.name||"",data:u,updatedAt:i.updatedAt||Date.now(),permissions:i.permissions,ext:ft(i.ext||{},kt(i))}));return}catch(s){console.error("Failed to load template",s);return}const d=this.templates.find(s=>s.id===t);if(d){const s=je();s.resetCanvas();const i=Pt(d.data);i.pages&&i.pages.length>0&&(s.pages=Se(i.pages)),i.canvasSize&&(s.canvasSize=Se(i.canvasSize)),i.guides&&(s.guides=Se(i.guides)),i.zoom!==void 0&&(s.zoom=i.zoom),i.showGrid!==void 0&&(s.showGrid=i.showGrid),i.headerHeight!==void 0&&(s.headerHeight=i.headerHeight),i.footerHeight!==void 0&&(s.footerHeight=i.footerHeight),i.showHeaderLine!==void 0&&(s.showHeaderLine=i.showHeaderLine),i.showFooterLine!==void 0&&(s.showFooterLine=i.showFooterLine),i.showMinimap!==void 0&&(s.showMinimap=i.showMinimap),i.canvasBackground!==void 0&&(s.canvasBackground=i.canvasBackground),i.pageSpacingX!==void 0&&(s.pageSpacingX=i.pageSpacingX),i.pageSpacingY!==void 0&&(s.pageSpacingY=i.pageSpacingY),i.unit!==void 0&&(s.unit=i.unit),i.watermark!==void 0&&(s.watermark=Se(i.watermark)),s.testData=Se(i.testData||{}),s.setAvailableVariables(kt(d)),s.selectedElementId=null,s.selectedGuideId=null,s.historyPast=[],s.historyFuture=[],this.currentTemplateId=d.id||t}}finally{setTimeout(()=>{this.isLoading=!1},100)}}}}),Ze=t=>{const e=t.trim();return e?e.startsWith("@")?e.slice(1).trim():e.startsWith("{#")&&e.endsWith("}")?e.slice(2,-1).trim():e:""},qc=t=>[$e.TEXT,$e.BARCODE,$e.QRCODE,$e.TABLE].includes(t.type),ug=t=>{if(Array.isArray(t.data)&&t.data.length>0)return Se(t.data);const e=t.columns||[];if(e.length===0)return[];const r={};return e.forEach(n=>{r[n.field]=""}),[r]},el=(t,e={})=>{const r={...e};if(!qc(t))return r;const n=(o,d)=>{const s=Ze(o);s&&(Object.prototype.hasOwnProperty.call(r,s)||(d==="tableData"?r[s]=ug(t):d==="tableColumns"?r[s]=Array.isArray(t.columns)&&t.columns.length>0?Se(t.columns):[]:d==="tableFooterData"?r[s]=Array.isArray(t.footerData)&&t.footerData.length>0?Se(t.footerData):[]:r[s]=t.content??""))};return n(t.variable||"",t.type===$e.TABLE?"tableData":"text"),t.type===$e.TABLE&&(t.columnsVariable&&n(t.columnsVariable,"tableColumns"),t.footerDataVariable&&n(t.footerDataVariable,"tableFooterData")),r},pg=(t=[],e={})=>{let r={...e};return t.forEach(n=>{n.elements.forEach(o=>{r=el(o,r)})}),r};function Bc(t){if(t==null)return"null";if(Array.isArray(t))return"array";const e=typeof t;return e==="string"||e==="number"||e==="boolean"?e:e==="object"?"object":"string"}function tl(t,e=""){if(!t||typeof t!="object")return[];const r=[];for(const[n,o]of Object.entries(t)){const d=e?`${e}.${n}`:n,s=Bc(o);if(s==="array"){const i={id:d,label:n,isArray:!0};if(Array.isArray(o)&&o.length>0){const c=o[0];c&&typeof c=="object"&&!Array.isArray(c)&&(i.children=tl(c,d))}r.push(i)}else if(s==="object"){const i={id:d,label:n,children:tl(o,d)};r.push(i)}else r.push({id:d,label:n,isArray:!1})}return r}function We(t,e){if(!t||!e)return;if(!e.includes("."))return Object.prototype.hasOwnProperty.call(t,e)?t[e]:void 0;const r=e.split(".");let n=t;for(const o of r){if(n==null||typeof n!="object"||!Object.prototype.hasOwnProperty.call(n,o))return;n=n[o]}return n}const gr={enabled:!1,text:"",angle:-30,color:"#000000",opacity:.1,size:24,density:160},gg={title:"",logoUrl:"",showTitle:!0,showLogo:!0},hg=()=>{const t=localStorage.getItem("print-designer-watermark");if(!t)return{...gr};try{return{...gr,...JSON.parse(t)}}catch{return{...gr}}},Ar=t=>{var e;return((e=t.style)==null?void 0:e.zIndex)||1},mg=t=>t.elements.map((e,r)=>({element:e,index:r})).sort((e,r)=>{const n=Ar(e.element),o=Ar(r.element);return n===o?e.index-r.index:n-o}),bg=(t,e,r)=>{const n=mg(t);if(n.filter(i=>e.has(i.element.id)).length===0)return null;let d=[...n];if(r==="front"){const i=n.filter(u=>e.has(u.element.id));d=[...n.filter(u=>!e.has(u.element.id)),...i]}else if(r==="back"){const i=n.filter(u=>e.has(u.element.id)),c=n.filter(u=>!e.has(u.element.id));d=[...i,...c]}else if(r==="forward")for(let i=d.length-2;i>=0;i-=1){const c=d[i],u=d[i+1];e.has(c.element.id)&&!e.has(u.element.id)&&(d[i]=u,d[i+1]=c)}else for(let i=1;i<d.length;i+=1){const c=d[i],u=d[i-1];e.has(c.element.id)&&!e.has(u.element.id)&&(d[i]=u,d[i-1]=c)}const s=new Map;return d.forEach((i,c)=>{const u=c+1;Ar(i.element)!==u&&s.set(i.element.id,u)}),s.size===0?null:s},ld=t=>{if(!t||!Array.isArray(t.items))return null;const e=t.items.filter(r=>!!(r&&typeof r.key=="string"&&r.key&&typeof r.label=="string")).map(r=>({...r}));return e.length===0?null:{mode:t.mode==="replace"?"replace":"append",items:e}},fg=t=>{if(!Array.isArray(t))return;const e=t.filter(r=>r&&typeof r.key=="string"&&r.key&&typeof r.type=="string").map(r=>({...r,options:Array.isArray(r.options)?r.options.filter(n=>n&&typeof n.label=="string"):void 0}));return e.length>0?e:void 0},sd=t=>{if(!t||typeof t!="object")return null;const e={};return["create","edit","copy"].forEach(r=>{const n=t[r];if(!n||typeof n!="object")return;const o=fg(n.fields),d=n.initialValues&&typeof n.initialValues=="object"?{...n.initialValues}:void 0;(o||d)&&(e[r]={...o?{fields:o}:{},...d?{initialValues:d}:{}})}),Object.keys(e).length>0?e:null},je=sc("designer",{state:()=>({unit:localStorage.getItem("print-designer-unit")||"mm",watermark:hg(),branding:{...gg},pages:[{id:rt(),elements:[]}],currentPageIndex:0,customElements:JSON.parse(localStorage.getItem("print-designer-custom-elements")||"[]"),customElementDetailCache:{},templateContextMenuConfig:null,customElementContextMenuConfig:null,templateModalFormConfig:null,customElementModalFormConfig:null,contextMenuEventEmitter:null,testData:{},variables:{},availableVariables:[],showVariablesPanel:!1,showFieldsPanel:!1,showSampleDataModal:!1,tableAvailableFields:[],editingCustomElementId:null,customElementEditSnapshot:null,selectedElementId:null,selectedElementIds:[],selectedGuideId:null,highlightedGuideId:null,highlightedEdge:null,canvasSize:{width:794,height:1123},zoom:1,isDragging:!1,showGrid:!0,showMarginLines:!0,showCornerMarkers:!0,headerHeight:100,footerHeight:100,showHeaderLine:!1,showFooterLine:!1,showMinimap:!1,showHelp:!1,showSettings:!1,canvasBackground:"#ffffff",pageSpacingX:0,pageSpacingY:0,guides:[],historyPast:[],historyFuture:[],clipboard:[],copiedPage:null,isExporting:!1,disableGlobalShortcuts:!1,disableShortcutsCount:0,tableSelection:null,clientUrl:"https://github.com/0ldFive/PrintDot-Client/releases",cloudUrl:"https://printdot.cc/cloud-print",showClientLink:!0,showCloudLink:!0}),actions:{setContextMenuEventEmitter(t){this.contextMenuEventEmitter=t},setAvailableVariables(t){this.availableVariables=t},setShowVariablesPanel(t){this.showVariablesPanel=t},setShowFieldsPanel(t){this.showFieldsPanel=t,t&&this.regenerateFieldTree()},setShowSampleDataModal(t){this.showSampleDataModal=t},regenerateFieldTree(){this.availableVariables=tl(this.testData||{})},setSampleData(t){this.testData=t,this.regenerateFieldTree()},setTableAvailableFields(t){this.tableAvailableFields=t||[]},emitContextMenuEvent(t,e){var r;!t||typeof t!="string"||(r=this.contextMenuEventEmitter)==null||r.call(this,t,e||{})},setTemplateContextMenuConfig(t){this.templateContextMenuConfig=ld(t)},setCustomElementContextMenuConfig(t){this.customElementContextMenuConfig=ld(t)},setTemplateModalFormConfig(t){this.templateModalFormConfig=sd(t)},setCustomElementModalFormConfig(t){this.customElementModalFormConfig=sd(t)},setClientUrl(t){this.clientUrl=t},setCloudUrl(t){this.cloudUrl=t},setShowClientLink(t){this.showClientLink=t},setShowCloudLink(t){this.showCloudLink=t},setShowLinks(t){this.showClientLink=t,this.showCloudLink=t},setBranding(t){if(!t||typeof t!="object")return;const e={...this.branding,...t};t.showTitle!==void 0&&(e.showTitle=!!t.showTitle),t.showLogo!==void 0&&(e.showLogo=!!t.showLogo),this.branding=e},setWatermark(t){this.watermark={...this.watermark||gr,...t},localStorage.setItem("print-designer-watermark",JSON.stringify(this.watermark))},setUnit(t){this.unit=t,localStorage.setItem("print-designer-unit",t)},setDragging(t){this.isDragging=t},setDisableGlobalShortcuts(t){const e=this.disableShortcutsCount||0;t?this.disableShortcutsCount=e+1:this.disableShortcutsCount=Math.max(0,e-1),this.disableGlobalShortcuts=this.disableShortcutsCount>0},setIsExporting(t){this.isExporting=t},setPageSpacingX(t){this.pageSpacingX=Math.max(0,Math.round(t))},setPageSpacingY(t){this.pageSpacingY=Math.max(0,Math.round(t))},resetCanvas(){this.watermark={...gr},localStorage.setItem("print-designer-watermark",JSON.stringify(this.watermark)),this.pages=[{id:rt(),elements:[]}],this.currentPageIndex=0,this.testData={},this.variables={},this.selectedElementId=null,this.selectedElementIds=[],this.selectedGuideId=null,this.guides=[],this.historyPast=[],this.historyFuture=[],this.headerHeight=100,this.footerHeight=100,this.showHeaderLine=!1,this.showFooterLine=!1,this.canvasBackground="#ffffff",this.pageSpacingX=0,this.pageSpacingY=0,this.canvasSize={width:794,height:1123},this.zoom=1,this.showGrid=!0,this.showCornerMarkers=!0,this.showMinimap=!1,this.showHelp=!1,this.showSettings=!1,this.copiedPage=null},startCustomElementEdit(t){const e=this.customElements.find(n=>n.id===t);if(!e)return;this.customElementEditSnapshot||(this.customElementEditSnapshot={pages:Se(this.pages),historyPast:Se(this.historyPast),historyFuture:Se(this.historyFuture),canvasSize:Se(this.canvasSize),guides:Se(this.guides),zoom:this.zoom,showGrid:this.showGrid,showMarginLines:this.showMarginLines,showCornerMarkers:this.showCornerMarkers,headerHeight:this.headerHeight,footerHeight:this.footerHeight,showHeaderLine:this.showHeaderLine,showFooterLine:this.showFooterLine,showMinimap:this.showMinimap,canvasBackground:this.canvasBackground,pageSpacingX:this.pageSpacingX,pageSpacingY:this.pageSpacingY,unit:this.unit,watermark:Se(this.watermark),testData:Se(this.testData),currentPageIndex:this.currentPageIndex,selectedElementId:this.selectedElementId,selectedElementIds:Se(this.selectedElementIds),selectedGuideId:this.selectedGuideId,highlightedGuideId:this.highlightedGuideId,highlightedEdge:this.highlightedEdge}),this.editingCustomElementId=t,this.resetCanvas();const r=Se(e.element);r.id=rt(),this.pages=[{id:rt(),elements:[r]}],this.currentPageIndex=0,this.selectedElementId=r.id,this.selectedElementIds=[r.id],this.historyPast=[],this.historyFuture=[],this.guides=[],this.tableSelection=null},cancelCustomElementEdit(){const t=this.customElementEditSnapshot;this.editingCustomElementId=null,this.customElementEditSnapshot=null,t&&(this.pages=t.pages,this.historyPast=t.historyPast||[],this.historyFuture=t.historyFuture||[],this.canvasSize=t.canvasSize,this.guides=t.guides,this.zoom=t.zoom,this.showGrid=t.showGrid,this.showMarginLines=t.showMarginLines,this.showCornerMarkers=t.showCornerMarkers,this.headerHeight=t.headerHeight,this.footerHeight=t.footerHeight,this.showHeaderLine=t.showHeaderLine,this.showFooterLine=t.showFooterLine,this.showMinimap=t.showMinimap,this.canvasBackground=t.canvasBackground,this.pageSpacingX=t.pageSpacingX??this.pageSpacingX,this.pageSpacingY=t.pageSpacingY??this.pageSpacingY,this.unit=t.unit||this.unit,t.unit&&localStorage.setItem("print-designer-unit",t.unit),t.watermark&&(this.watermark=Se(t.watermark),localStorage.setItem("print-designer-watermark",JSON.stringify(this.watermark))),this.testData=t.testData||{},this.currentPageIndex=t.currentPageIndex,this.selectedElementId=t.selectedElementId,this.selectedElementIds=t.selectedElementIds,this.selectedGuideId=t.selectedGuideId,this.highlightedGuideId=t.highlightedGuideId,this.highlightedEdge=t.highlightedEdge,this.tableSelection=null)},async commitCustomElementEdit(){var s,i,c;if(!this.editingCustomElementId)return!1;const t=this.customElements.find(u=>u.id===this.editingCustomElementId);if(!t)return!1;const e=this.selectedElement||((s=this.pages[0])==null?void 0:s.elements[0]);if(!e)return!1;if(!ht(t))return Fe.warning(Qe.global.t("toast.customElementReadOnly")),!1;t.element=Se(e);const{mode:r,endpoints:n,headers:o,fetcher:d}=lt();if(r==="remote")try{const u=this.customElementDetailCache[t.id],m={id:t.id,name:t.name,element:Se(t.element),testData:t.testData,permissions:t.permissions??(u==null?void 0:u.permissions),ext:et(u==null?void 0:u.ext,t.ext)},g=Xe(zt(m,"edit")),C=ut((i=n.customElements)==null?void 0:i.upsert,""),x=pt((c=n.customElements)==null?void 0:c.upsert,"POST",o,g);await(d||fetch)(C,x);const h=this.customElementDetailCache[t.id];this.customElementDetailCache[t.id]=Xe({id:g.id,name:g.name,element:Se(g.element||(h==null?void 0:h.element)||{}),testData:g.testData||(h==null?void 0:h.testData),permissions:g.permissions??(h==null?void 0:h.permissions),ext:et(h==null?void 0:h.ext,g.ext)})}catch(u){console.error("Failed to commit custom element edit",u)}else this.saveCustomElements();return!0},saveCustomElementEditAs(t){var r;const e=this.selectedElement||((r=this.pages[0])==null?void 0:r.elements[0]);return e?(this.addCustomElement(t,e),!0):!1},copyPage(t){if(!this.isTemplateEditable)return;const e=this.pages[t];e&&(this.copiedPage=Se(e))},pastePage(t){if(!this.isTemplateEditable||!this.copiedPage)return;this.snapshot();const e=Se(this.copiedPage);e.id=rt(),e.elements.forEach(r=>{r.id=rt()}),this.pages.splice(t+1,0,e),this.currentPageIndex=t+1},addPage(){this.isTemplateEditable&&(this.snapshot(),this.pages.push({id:rt(),elements:[]}),this.currentPageIndex=this.pages.length-1)},removePage(t){this.isTemplateEditable&&(this.pages.length<=1||(this.snapshot(),this.pages.splice(t,1),this.currentPageIndex>=this.pages.length&&(this.currentPageIndex=this.pages.length-1)))},setTableSelection(t,e,r){if(this.tableSelection&&this.tableSelection.elementId!==t){this.tableSelection={elementId:t,cells:[e]};return}if(!this.tableSelection){this.tableSelection={elementId:t,cells:[e]};return}if(r){const n=this.tableSelection.cells.findIndex(o=>o.rowIndex===e.rowIndex&&o.colField===e.colField&&o.section===e.section);n>=0?(this.tableSelection.cells.splice(n,1),this.tableSelection.cells.length===0&&(this.tableSelection=null)):this.tableSelection.cells.length>0&&this.tableSelection.cells[0].section!==e.section?this.tableSelection={elementId:t,cells:[e]}:this.tableSelection.cells.push(e)}else this.tableSelection={elementId:t,cells:[e]}},setTableSelectionCells(t,e){this.tableSelection={elementId:t,cells:e}},clearTableSelection(){this.tableSelection=null},mergeSelectedCells(){if(!this.isTemplateEditable||!this.tableSelection||this.tableSelection.cells.length<2)return;const{elementId:t,cells:e}=this.tableSelection,r=e[0].section||"body";let n=null,o=-1,d=-1;for(let $=0;$<this.pages.length;$++){const E=this.pages[$].elements.findIndex(p=>p.id===t);if(E!==-1){n=this.pages[$].elements[E],o=$,d=E;break}}if(!n)return;const s=r==="footer"?"footerData":"data",i=e.map($=>$.rowIndex),c=Math.min(...i),u=Math.max(...i);let m=n.columns||[];if(n.columnsVariable&&this.testData){const $=Ze(n.columnsVariable),E=$?We(this.testData,$):void 0;Array.isArray(E)&&(m=E)}if(m.length===0)return;const g=m.map($=>$.field),C=e.map($=>g.indexOf($.colField)).filter($=>$!==-1);if(C.length!==e.length)return;const x=Math.min(...C),h=Math.max(...C),k=u-c+1,D=h-x+1;this.snapshot();const M=Se(n[s]||[]);for(let $=0;$<=u;$++)M[$]||(M[$]={});for(let $=c;$<=u;$++)for(let E=x;E<=h;E++){const p=g[E],L=M[$];(typeof L[p]!="object"||L[p]===null)&&(L[p]={value:L[p]!==void 0?L[p]:""}),$===c&&E===x?(L[p].rowSpan=k,L[p].colSpan=D):(L[p].rowSpan=0,L[p].colSpan=0,L[p].value="")}this.pages[o].elements[d]={...n,[s]:M},this.tableSelection=null},splitSelectedCells(){var D;if(!this.isTemplateEditable||!this.tableSelection||this.tableSelection.cells.length!==1)return;const{elementId:t,cells:e}=this.tableSelection,r=e[0],n=r.section||"body";let o=null,d=-1,s=-1;for(let M=0;M<this.pages.length;M++){const $=this.pages[M].elements.findIndex(E=>E.id===t);if($!==-1){o=this.pages[M].elements[$],d=M,s=$;break}}if(!o)return;const i=n==="footer"?"footerData":"data",c=(D=o[i])==null?void 0:D[r.rowIndex];if(!c)return;const u=c[r.colField];if(!u||typeof u!="object"||!u.rowSpan&&!u.colSpan)return;const m=u.rowSpan||1,g=u.colSpan||1;if(m<=1&&g<=1)return;let C=o.columns||[];if(o.columnsVariable&&this.testData){const M=Ze(o.columnsVariable),$=M?We(this.testData,M):void 0;Array.isArray($)&&(C=$)}if(C.length===0)return;this.snapshot();const x=Se(o[i]||[]),h=C.map(M=>M.field),k=h.indexOf(r.colField);if(k!==-1){for(let M=r.rowIndex;M<r.rowIndex+m;M++)for(let $=k;$<k+g;$++){const E=h[$],p=x[M];p&&p[E]&&typeof p[E]=="object"&&(p[E].rowSpan=1,p[E].colSpan=1)}this.pages[d].elements[s]={...o,[i]:x},this.tableSelection=null}},setHeaderHeight(t){this.isTemplateEditable&&(this.headerHeight=t)},setFooterHeight(t){this.isTemplateEditable&&(this.footerHeight=t)},setShowHeaderLine(t){this.showHeaderLine=t},setShowFooterLine(t){this.showFooterLine=t},setShowMinimap(t){this.showMinimap=t},setShowHelp(t){this.showHelp=t},setShowSettings(t){this.showSettings=t},setCanvasBackground(t){this.canvasBackground=t},snapshot(){this.historyPast.length>=20&&this.historyPast.shift(),this.historyPast.push(Se(this.pages)),this.historyFuture=[]},undo(){if(this.historyPast.length===0)return;const t=this.historyPast.pop();this.historyFuture.push(Se(this.pages)),this.pages=Se(t),this.selectedElementId&&(this.pages.some(r=>r.elements.some(n=>n.id===this.selectedElementId))||(this.selectedElementId=null,this.selectedElementIds=[])),this.selectedElementIds=this.selectedElementIds.filter(e=>this.pages.some(r=>r.elements.some(n=>n.id===e))),this.currentPageIndex>=this.pages.length&&(this.currentPageIndex=Math.max(0,this.pages.length-1))},redo(){if(this.historyFuture.length===0)return;const t=this.historyFuture.pop();this.historyPast.push(Se(this.pages)),this.pages=Se(t),this.currentPageIndex>=this.pages.length&&(this.currentPageIndex=Math.max(0,this.pages.length-1))},addGuide(t){this.guides.push({...t,id:rt()})},updateGuide(t,e){const r=this.guides.find(n=>n.id===t);r&&(r.position=e)},removeGuide(t){const e=this.guides.findIndex(r=>r.id===t);e!==-1&&(this.guides.splice(e,1),this.selectedGuideId===t&&(this.selectedGuideId=null))},clearGuides(){this.guides=[]},selectGuide(t){this.selectedGuideId=t,t&&(this.selectedElementId=null,this.selectedElementIds=[],this.tableSelection=null)},setHighlightedGuide(t){this.highlightedGuideId=t},setHighlightedEdge(t){this.highlightedEdge=t},setShowMarginLines(t){this.showMarginLines=t},setShowCornerMarkers(t){this.showCornerMarkers=t},getElementBoundsAtPosition(t,e,r){var k;const o=((((k=t.style)==null?void 0:k.rotate)||0)%360+360)%360;if(o===0)return{minX:e,maxX:e+t.width,minY:r,maxY:r+t.height};const d=e+t.width/2,s=r+t.height/2,i=o*Math.PI/180,c=Math.cos(i),u=Math.sin(i),m=[{x:e,y:r},{x:e+t.width,y:r},{x:e,y:r+t.height},{x:e+t.width,y:r+t.height}];let g=1/0,C=-1/0,x=1/0,h=-1/0;for(const D of m){const M=d+(D.x-d)*c-(D.y-s)*u,$=s+(D.x-d)*u+(D.y-s)*c;M<g&&(g=M),M>C&&(C=M),$<x&&(x=$),$>h&&(h=$)}return{minX:g,maxX:C,minY:x,maxY:h}},getElementMovementBounds(t){const e=this.pageSpacingX||0,r=this.pageSpacingY||0,n=this.canvasSize.width-e,o=this.canvasSize.height-r,d=this.getElementBoundsAtPosition(t,0,0),s=e-d.minX,i=Math.max(s,n-d.maxX),c=r-d.minY,u=Math.max(c,o-d.maxY);return{minX:s,maxX:i,minY:c,maxY:u,maxXBoundary:n,maxYBoundary:o,originBounds:d}},getSnapPosition(t,e,r,n=!1,o=!0,d=-1){let i=e,c=r,u=null,m=null;const g=(O,se,W)=>{const Q=Math.abs(O-W);if(Q>5)return!1;if(n){const ee=Math.abs(se-W);return Q<ee}return!0},C=this.getElementBoundsAtPosition(t,t.x,t.y),x=this.getElementMovementBounds(t),{minX:h,maxX:k,minY:D,maxY:M,maxXBoundary:$,maxYBoundary:E,originBounds:p}=x,L=this.pageSpacingX||0,N=this.pageSpacingY||0,X=this.getElementBoundsAtPosition(t,i,c);g(X.minX,C.minX,L)?(i=h,m="left"):g(X.maxX,C.maxX,$)&&(i=k,m="right");const K=this.getElementBoundsAtPosition(t,i,c);g(K.minY,C.minY,N)?(c=D,m=m||"top"):g(K.maxY,C.maxY,E)&&(c=M,m=m||"bottom");for(const O of this.guides)if(O.type==="vertical"){const se=this.getElementBoundsAtPosition(t,i,c);g(se.minX,C.minX,O.position)?(i=O.position-p.minX,u=O.id):g(se.maxX,C.maxX,O.position)&&(i=O.position-p.maxX,u=O.id)}else{const se=this.getElementBoundsAtPosition(t,i,c);g(se.minY,C.minY,O.position)?(c=O.position-p.minY,u=O.id):g(se.maxY,C.maxY,O.position)&&(c=O.position-p.maxY,u=O.id)}let re=o,j=o,_=!1,V=!1;return o||(this.pages.length<=1?(re=!0,j=!0):(re=!0,d===0&&(_=!0),d===this.pages.length-1&&(V=!0))),re&&(i=Math.min(Math.max(h,i),k)),j?c=Math.min(Math.max(D,c),M):(_&&(c=Math.max(D,c)),V&&(c=Math.min(c,M))),{x:i,y:c,highlightedGuideId:u,highlightedEdge:m}},moveElementWithSnap(t,e,r,n=!0,o=!0){if(this.isTemplateEditable)for(let d=0;d<this.pages.length;d++){const s=this.pages[d],i=s.elements.findIndex(c=>c.id===t);if(i!==-1){const c=s.elements[i];if(c.locked)return;const u=this.getSnapPosition(c,e,r,!1,o,d);this.setHighlightedGuide(u.highlightedGuideId||null),this.setHighlightedEdge(u.highlightedEdge||null),this.updateElement(t,{x:u.x,y:u.y},n);return}}},moveSelectedElements(t,e,r,n=!0,o=!0){if(!this.isTemplateEditable)return;n&&this.snapshot();let d=null,s=-1;const i=[],c=new Set(this.selectedElementIds);for(let h=0;h<this.pages.length;h++){const k=this.pages[h];for(let D=0;D<k.elements.length;D++){const M=k.elements[D];M.id===t&&(d=M,s=h),c.has(M.id)&&!M.locked&&i.push({pageIndex:h,elementIndex:D,element:M})}}if(!d||d.locked)return;const u=this.getSnapPosition(d,e,r,!1,o,s);this.setHighlightedGuide(u.highlightedGuideId||null),this.setHighlightedEdge(u.highlightedEdge||null);let m=u.x-d.x,g=u.y-d.y;if(m===0&&g===0)return;let C=o,x=o;if(o||(this.pages.length<=1?(C=!0,x=!0):(C=!0,x=!1)),C||x||!x&&this.pages.length>1)for(const h of i){const k=h.element,D=h.pageIndex,M=this.getElementMovementBounds(k);C&&(m>0?k.x+m>M.maxX&&(m=M.maxX-k.x):m<0&&k.x+m<M.minX&&(m=M.minX-k.x)),x?g>0?k.y+g>M.maxY&&(g=M.maxY-k.y):g<0&&k.y+g<M.minY&&(g=M.minY-k.y):(D===0&&g<0&&k.y+g<M.minY&&(g=M.minY-k.y),D===this.pages.length-1&&g>0&&k.y+g>M.maxY&&(g=M.maxY-k.y))}if(!(m===0&&g===0))for(const h of i){const{pageIndex:k,elementIndex:D,element:M}=h;this.pages[k].elements[D]={...M,x:M.x+m,y:M.y+g}}},nudgeSelectedElements(t,e){if(!this.isTemplateEditable||this.selectedElementIds.length===0)return;const r=this.selectedElementIds.filter(m=>{for(const g of this.pages){const C=g.elements.find(x=>x.id===m);if(C&&!C.locked)return!0}return!1});if(r.length===0)return;this.snapshot();let n=this.selectedElementId;(!n||!r.includes(n))&&(n=r[0]);let o=null;for(const m of this.pages){const g=m.elements.find(C=>C.id===n);if(g){o=g;break}}if(!o)return;const d=o.x+t,s=o.y+e,i=this.getSnapPosition(o,d,s,!0);this.setHighlightedGuide(i.highlightedGuideId||null),this.setHighlightedEdge(i.highlightedEdge||null);let c=i.x-o.x,u=i.y-o.y;for(const m of r)for(const g of this.pages){const C=g.elements.find(x=>x.id===m);if(C){const x=this.getElementMovementBounds(C);c>0?C.x+c>x.maxX&&(c=x.maxX-C.x):c<0&&C.x+c<x.minX&&(c=x.minX-C.x),u>0?C.y+u>x.maxY&&(u=x.maxY-C.y):u<0&&C.y+u<x.minY&&(u=x.minY-C.y)}}if(!(c===0&&u===0))for(const m of r)for(const g of this.pages){const C=g.elements.findIndex(x=>x.id===m);if(C!==-1){const x=g.elements[C];g.elements[C]={...x,x:x.x+c,y:x.y+u};break}}},addElement(t,e){if(!this.isTemplateEditable)return;this.snapshot();const r={...t,id:rt()},n=e!==void 0&&e>=0&&e<this.pages.length?e:this.currentPageIndex;this.pages[n].elements.push(r),this.selectedElementId=r.id,this.currentPageIndex=n},moveElementToPage(t,e,r,n){if(!this.isTemplateEditable)return;this.snapshot();let o=-1,d=-1,s;for(let i=0;i<this.pages.length;i++){const c=this.pages[i].elements.findIndex(u=>u.id===t);if(c!==-1){o=i,d=c,s=this.pages[i].elements[c];break}}!s||o===-1||(this.pages[o].elements.splice(d,1),s.x=r,s.y=n,e>=0&&e<this.pages.length?(this.pages[e].elements.push(s),this.currentPageIndex=e):this.pages[o].elements.push(s))},bringElementsToFront(t){if(!t||t.length===0)return;const e=new Set(t);for(const r of this.pages){const n=r.elements.filter(c=>e.has(c.id));if(n.length===0)continue;let o=0;for(const c of r.elements)e.has(c.id)||(o=Math.max(o,c.style.zIndex||1));if(!n.some(c=>(c.style.zIndex||1)<=o))continue;let s=o+1;const i=t.filter(c=>n.some(u=>u.id===c));for(const c of i){const u=r.elements.findIndex(g=>g.id===c);if(u===-1)continue;const m=r.elements[u];r.elements[u]={...m,style:{...m.style,zIndex:s}},s+=1}}},moveElementsLayer(t,e){if(!this.isTemplateEditable||!t||t.length===0)return;const r=new Set(t),n=new Set;for(const d of this.pages)for(const s of d.elements)r.has(s.id)&&!s.locked&&n.add(s.id);if(n.size===0)return;const o=[];for(let d=0;d<this.pages.length;d+=1){const s=bg(this.pages[d],n,e);s&&s.size>0&&o.push({pageIndex:d,assignments:s})}if(o.length!==0){this.snapshot();for(const{pageIndex:d,assignments:s}of o){const i=this.pages[d];for(let c=0;c<i.elements.length;c+=1){const u=i.elements[c],m=s.get(u.id);!m||Ar(u)===m||(i.elements[c]={...u,style:{...u.style,zIndex:m}})}}}},sendElementsToBack(t){this.moveElementsLayer(t,"back")},moveElementsForward(t){this.moveElementsLayer(t,"forward")},moveElementsBackward(t){this.moveElementsLayer(t,"backward")},updateElement(t,e,r=!0){if(this.isTemplateEditable){r&&this.snapshot();for(const n of this.pages){const o=n.elements.findIndex(d=>d.id===t);if(o!==-1){if(n.elements[o].locked&&e.locked===void 0)return;n.elements[o]={...n.elements[o],...e};return}}}},removeElement(t){if(this.isTemplateEditable){for(const e of this.pages){const r=e.elements.find(n=>n.id===t);if(r&&r.locked)return}this.snapshot();for(const e of this.pages){const r=e.elements.findIndex(n=>n.id===t);if(r!==-1){e.elements.splice(r,1),this.selectedElementId===t&&(this.selectedElementId=null),this.tableSelection&&this.tableSelection.elementId===t&&(this.tableSelection=null);const n=this.selectedElementIds.indexOf(t);n!==-1&&this.selectedElementIds.splice(n,1);return}}}},selectElement(t,e=!1){if(t&&(this.selectedGuideId=null),this.tableSelection&&(this.tableSelection=null),e&&t){if(this.selectedElementIds.includes(t)){const r=this.selectedElementIds.indexOf(t);this.selectedElementIds.splice(r,1)}else this.selectedElementIds.push(t);this.selectedElementId=this.selectedElementIds.length>0?this.selectedElementIds[this.selectedElementIds.length-1]:null}else this.selectedElementId=t,this.selectedElementIds=t?[t]:[];if(this.selectedElementIds.length>0&&this.bringElementsToFront(this.selectedElementIds),t){const r=this.pages.findIndex(n=>n.elements.some(o=>o.id===t));r!==-1&&(this.currentPageIndex=r)}},clearSelection(){this.selectedElementId=null,this.selectedElementIds=[],this.tableSelection=null},setSelection(t){if(this.tableSelection=null,t.length>0&&(this.selectedGuideId=null),this.selectedElementIds=t,this.selectedElementId=t.length>0?t[t.length-1]:null,t.length>0&&this.bringElementsToFront(t),t.length>0){const e=this.pages.findIndex(r=>r.elements.some(n=>n.id===this.selectedElementId));e!==-1&&(this.currentPageIndex=e)}},removeSelectedElements(){if(!this.isTemplateEditable||this.selectedElementIds.length===0)return;const t=this.selectedElementIds.filter(e=>{for(const r of this.pages){const n=r.elements.find(o=>o.id===e);if(n&&!n.locked)return!0}return!1});if(t.length!==0){this.snapshot();for(const e of t)for(const r of this.pages){const n=r.elements.findIndex(o=>o.id===e);if(n!==-1){r.elements.splice(n,1);break}}this.selectedElementId=null,this.selectedElementIds=[],this.tableSelection=null}},alignSelectedElements(t){if(!this.isTemplateEditable||this.selectedElementIds.length===0)return;const e=[];for(const r of this.selectedElementIds)for(const n of this.pages){const o=n.elements.find(d=>d.id===r);if(o&&!o.locked){e.push(o);break}}if(e.length!==0)if(this.snapshot(),e.length===1){const r=e[0],n=this.canvasSize.width,o=this.canvasSize.height,d=this.pageSpacingX||0,s=this.pageSpacingY||0,i=d,c=s,u=Math.max(0,n-d*2),m=Math.max(0,o-s*2);switch(t){case"left":r.x=i;break;case"center":r.x=i+(u-r.width)/2;break;case"right":r.x=i+u-r.width;break;case"top":r.y=c;break;case"middle":r.y=c+(m-r.height)/2;break;case"bottom":r.y=c+m-r.height;break}}else{const r=Math.min(...e.map(c=>c.x)),n=Math.max(...e.map(c=>c.x+c.width)),o=Math.min(...e.map(c=>c.y)),d=Math.max(...e.map(c=>c.y+c.height)),s=(r+n)/2,i=(o+d)/2;e.forEach(c=>{switch(t){case"left":c.x=r;break;case"center":c.x=s-c.width/2;break;case"right":c.x=n-c.width;break;case"top":c.y=o;break;case"middle":c.y=i-c.height/2;break;case"bottom":c.y=d-c.height;break}})}},resizeSelectedElements(t,e){if(!this.isTemplateEditable||this.selectedElementIds.length===0)return;const r=this.selectedElementIds.filter(n=>{for(const o of this.pages){const d=o.elements.find(s=>s.id===n);if(d&&!d.locked)return!0}return!1});if(r.length!==0){this.snapshot();for(const n of r)for(const o of this.pages){const d=o.elements.findIndex(s=>s.id===n);if(d!==-1){const s=o.elements[d],i=Math.max(10,s.width+t),c=Math.max(10,s.height+e);o.elements[d]={...s,width:i,height:c};break}}}},updateSelectedElementsStyle(t){if(!this.isTemplateEditable||this.selectedElementIds.length===0)return;this.selectedElementIds.some(r=>{for(const n of this.pages){const o=n.elements.find(d=>d.id===r);if(o&&o.locked)return!0}return!1});const e=this.selectedElementIds.filter(r=>{for(const n of this.pages){const o=n.elements.find(d=>d.id===r);if(o&&!o.locked)return!0}return!1});if(e.length!==0){this.snapshot();for(const r of e)for(const n of this.pages){const o=n.elements.findIndex(d=>d.id===r);if(o!==-1){const d=n.elements[o];n.elements[o]={...d,style:{...d.style,...t}};break}}}},toggleLock(){if(!this.isTemplateEditable||this.selectedElementIds.length===0)return;this.snapshot();let t=!0;const e=this.selectedElement;e&&(t=!e.locked);for(const r of this.selectedElementIds)for(const n of this.pages){const o=n.elements.findIndex(d=>d.id===r);if(o!==-1){n.elements[o].locked=t;break}}},setZoom(t){this.zoom=t},setCanvasSize(t,e){this.isTemplateEditable&&(this.snapshot(),this.canvasSize={width:t,height:e})},setShowGrid(t){this.showGrid=t},deletePage(t){this.isTemplateEditable&&this.pages.length>1&&(this.snapshot(),this.pages.splice(t,1),this.currentPageIndex>=this.pages.length&&(this.currentPageIndex=this.pages.length-1))},copy(){if(this.selectedElementIds.length===0)return;const t=[];for(const e of this.selectedElementIds)for(const r of this.pages){const n=r.elements.find(o=>o.id===e);if(n&&!n.locked){t.push(Se(n));break}}this.clipboard=t},cut(){this.isTemplateEditable&&this.selectedElementIds.length!==0&&(this.copy(),this.removeSelectedElements())},paste(t){if(!this.isTemplateEditable||this.clipboard.length===0)return;this.snapshot();const e=[],r=(t==null?void 0:t.pageIndex)??this.currentPageIndex;let n=1/0,o=1/0;if(t)for(const d of this.clipboard)n=Math.min(n,d.x),o=Math.min(o,d.y);for(const d of this.clipboard){const s=Se(d);if(s.id=rt(),t){const i=d.x-n,c=d.y-o;s.x=t.x+i,s.y=t.y+c}else s.x+=20,s.y+=20;s.x+s.width>this.canvasSize.width&&(s.x=Math.max(0,this.canvasSize.width-s.width)),s.y+s.height>this.canvasSize.height&&(s.y=Math.max(0,this.canvasSize.height-s.height)),s.x=Math.max(0,s.x),s.y=Math.max(0,s.y),this.pages[r]?this.pages[r].elements.push(s):this.pages[this.currentPageIndex].elements.push(s),e.push(s.id)}r!==this.currentPageIndex&&this.pages[r]&&(this.currentPageIndex=r),this.setSelection(e)},paginateTable(t){if(!this.isTemplateEditable)return;this.snapshot();let e=-1,r;for(let k=0;k<this.pages.length;k++){const D=this.pages[k].elements.findIndex(M=>M.id===t);if(D!==-1){e=k,r=this.pages[k].elements[D];break}}if(!r||r.type!==$e.TABLE||!r.data)return;const n=this.canvasSize.height,o=50,d=r.style.headerHeight||40,s=r.style.rowHeight||30,i=r.y,u=n-i-o-d,m=Math.floor(Math.max(0,u)/s);if(m>=r.data.length)return;const g=r.data.slice(0,m),C=r.data.slice(m);this.updateElement(r.id,{data:g,height:d+g.length*s});const x=e+1;x>=this.pages.length&&this.addPage();const h={...Se(r),id:rt(),y:50,data:C,height:d+C.length*s};this.pages[x].elements.push(h),this.paginateTable(h.id)},groupSelectedElements(){this.isTemplateEditable&&(this.selectedElementIds.length<2||(console.log("Group selected elements:",this.selectedElementIds),Fe.warning("Grouping feature is under development")))},async loadCustomElements(){var o,d;const{mode:t,endpoints:e,headers:r,fetcher:n}=lt();if(t==="remote")try{const s=ut((o=e.customElements)==null?void 0:o.list,""),i=pt((d=e.customElements)==null?void 0:d.list,"GET",r),u=await(await(n||fetch)(s,i)).json(),m=Array.isArray(u)?u:(u==null?void 0:u.customElements)||[];this.customElements=m.filter(g=>g&&typeof g.id=="string"&&typeof g.name=="string"&&(g.element||this.customElements.some(C=>C.id===g.id)||this.customElementDetailCache[g.id])).map(g=>{const C=this.customElements.find(D=>D.id===g.id),x=this.customElementDetailCache[g.id],h={id:g.id,name:g.name,element:g.element?Se(g.element):Se((x==null?void 0:x.element)||(C==null?void 0:C.element)||{}),testData:g.testData||(x==null?void 0:x.testData)||(C==null?void 0:C.testData),permissions:g.permissions??(x==null?void 0:x.permissions)??(C==null?void 0:C.permissions),ext:et(C==null?void 0:C.ext,x==null?void 0:x.ext,g.ext)},k=Xe(h);return this.customElementDetailCache[g.id]=k,k})}catch(s){console.error("Failed to load custom elements",s)}},async copyCustomElement(t,e){var C,x;const{mode:r,endpoints:n,headers:o,fetcher:d}=lt(),s=this.customElements.find(h=>h.id===t);if(!s)return;if(!tr(s)){Fe.warning(Qe.global.t("toast.customElementCopyNotAllowed"));return}const i=this.customElementDetailCache[t],c=r==="remote"?{id:s.id,name:s.name,element:s.element||(i==null?void 0:i.element),testData:s.testData||(i==null?void 0:i.testData),ext:et(i==null?void 0:i.ext,s.ext)}:s;let u=`${c.name} Copy`;e&&e.name&&(u=e.name,delete e.name);const m=zt({id:rt(),name:u,element:Se(c.element),testData:Se(c.testData),ext:c.ext,permissions:{...c.permissions&&typeof c.permissions=="object"?c.permissions:{}}},"copy",e),g=Xe(m);if(r==="remote")try{const h=ut((C=n.customElements)==null?void 0:C.upsert,""),k=pt((x=n.customElements)==null?void 0:x.upsert,"POST",o,g),M=await(await(d||fetch)(h,k)).json();M&&typeof M=="object"&&M.ext&&(g.ext={...g.ext||{},...M.ext}),g.id=(M==null?void 0:M.id)||g.id;const $=this.customElementDetailCache[g.id];this.customElementDetailCache[g.id]=Xe({id:g.id,name:g.name,element:Se(g.element||($==null?void 0:$.element)||{}),testData:g.testData||($==null?void 0:$.testData),permissions:g.permissions??($==null?void 0:$.permissions),ext:et($==null?void 0:$.ext,g.ext)}),await this.loadCustomElements()}catch(h){console.error("Failed to copy custom element",h),Fe.error(Qe.global.t("toast.customElementCopyFailed"))}else this.customElements.push(g),this.saveCustomElements()},async addCustomElement(t,e,r){var u,m;const{mode:n,endpoints:o,headers:d,fetcher:s}=lt(),i=zt({id:rt(),name:t,element:Se(e),ext:{}},"create",r),c=Xe(i);if(n==="remote")try{const g=ut((u=o.customElements)==null?void 0:u.upsert,""),C=pt((m=o.customElements)==null?void 0:m.upsert,"POST",d,c),h=await(await(s||fetch)(g,C)).json();h&&typeof h=="object"&&h.ext&&(c.ext={...c.ext||{},...h.ext}),c.id=(h==null?void 0:h.id)||c.id;const k=this.customElementDetailCache[c.id];this.customElementDetailCache[c.id]=Xe({id:c.id,name:c.name,element:Se(c.element||(k==null?void 0:k.element)||{}),testData:c.testData||(k==null?void 0:k.testData),permissions:c.permissions??(k==null?void 0:k.permissions),ext:et(k==null?void 0:k.ext,c.ext)}),await this.loadCustomElements()}catch(g){console.error("Failed to add custom element",g),Fe.error(Qe.global.t("toast.customElementAddFailed"))}else this.customElements.push(c),this.saveCustomElements()},async removeCustomElement(t){var i,c;const{mode:e,endpoints:r,headers:n,fetcher:o}=lt(),d=this.customElements.find(u=>u.id===t);if(d&&!er(d)){Fe.warning(Qe.global.t("toast.customElementDeleteNotAllowed"));return}const s=this.customElements.findIndex(u=>u.id===t);if(s!==-1){if(this.customElements.splice(s,1),delete this.customElementDetailCache[t],e==="remote"){try{const u=ut((i=r.customElements)==null?void 0:i.delete,t),m=pt((c=r.customElements)==null?void 0:c.delete,"DELETE",n);await(o||fetch)(u,m),await this.loadCustomElements()}catch(u){console.error("Failed to remove custom element",u),Fe.error(Qe.global.t("toast.customElementRemoveFailed"))}return}this.saveCustomElements()}},async editCustomElement(t,e,r){var c,u;const{mode:n,endpoints:o,headers:d,fetcher:s}=lt(),i=this.customElements.find(m=>m.id===t);if(i){if(!ht(i)){Fe.warning(Qe.global.t("toast.customElementReadOnly"));return}i.name=e;const m=this.customElementDetailCache[t],g=zt({...i,ext:et(m==null?void 0:m.ext,i.ext)},"edit",r);if(i.ext=g.ext,n==="remote"){try{const C=Xe({id:i.id,name:e,element:Se(i.element),testData:i.testData,permissions:i.permissions??(m==null?void 0:m.permissions),ext:g.ext}),x=ut((c=o.customElements)==null?void 0:c.upsert,""),h=pt((u=o.customElements)==null?void 0:u.upsert,"POST",d,C);await(s||fetch)(x,h);const k=this.customElementDetailCache[t];this.customElementDetailCache[t]=Xe({id:C.id,name:C.name,element:Se(C.element||(k==null?void 0:k.element)||{}),testData:C.testData||(k==null?void 0:k.testData),permissions:C.permissions??(k==null?void 0:k.permissions),ext:et(k==null?void 0:k.ext,C.ext)}),await this.loadCustomElements()}catch(C){console.error("Failed to edit custom element",C),Fe.error(Qe.global.t("toast.customElementEditFailed"))}return}this.saveCustomElements()}},saveCustomElements(){const{mode:t}=lt();t!=="remote"&&localStorage.setItem("print-designer-custom-elements",JSON.stringify(this.customElements))}},getters:{isTemplateEditable:t=>{if(t.editingCustomElementId)return!0;const e=wr();if(!e.currentTemplateId)return!0;const r=e.templates.find(n=>n.id===e.currentTemplateId);return r?ht(r):!0},selectedElement:t=>{if(!t.selectedElementId)return null;for(const e of t.pages){const r=e.elements.find(n=>n.id===t.selectedElementId);if(r)return r}return null},currentPage:t=>t.pages[t.currentPageIndex],editingCustomElement:t=>t.editingCustomElementId&&t.customElements.find(e=>e.id===t.editingCustomElementId)||null}}),Oc=G(localStorage.getItem("print-designer-autosave")!=="false");De(Oc,t=>{localStorage.setItem("print-designer-autosave",String(t))});function Vc(){return{autoSave:Oc}}const $r=G(localStorage.getItem("print-designer-theme")||"system"),jc=G(window.matchMedia("(prefers-color-scheme: dark)").matches),kn=window.matchMedia("(prefers-color-scheme: dark)");var lc;(lc=kn.addEventListener)==null||lc.call(kn,"change",t=>{jc.value=t.matches});const vg=le(()=>$r.value==="dark"?!0:$r.value==="light"?!1:jc.value),yg=t=>{$r.value=t,localStorage.setItem("print-designer-theme",t)};function Nt(){return{theme:$r,isDark:vg,setTheme:yg}}var Sn,id;function xg(){if(id)return Sn;id=1;var t=Tt(),e=function(){return t.Date.now()};return Sn=e,Sn}var Cn,dd;function wg(){if(dd)return Cn;dd=1;var t=/\s/;function e(r){for(var n=r.length;n--&&t.test(r.charAt(n)););return n}return Cn=e,Cn}var _n,cd;function kg(){if(cd)return _n;cd=1;var t=wg(),e=/^\s+/;function r(n){return n&&n.slice(0,t(n)+1).replace(e,"")}return _n=r,_n}var En,ud;function Hc(){if(ud)return En;ud=1;var t=or(),e=qt(),r="[object Symbol]";function n(o){return typeof o=="symbol"||e(o)&&t(o)==r}return En=n,En}var Tn,pd;function Sg(){if(pd)return Tn;pd=1;var t=kg(),e=Dt(),r=Hc(),n=NaN,o=/^[-+]0x[0-9a-f]+$/i,d=/^0b[01]+$/i,s=/^0o[0-7]+$/i,i=parseInt;function c(u){if(typeof u=="number")return u;if(r(u))return n;if(e(u)){var m=typeof u.valueOf=="function"?u.valueOf():u;u=e(m)?m+"":m}if(typeof u!="string")return u===0?u:+u;u=t(u);var g=d.test(u);return g||s.test(u)?i(u.slice(2),g?2:8):o.test(u)?n:+u}return Tn=c,Tn}var An,gd;function Cg(){if(gd)return An;gd=1;var t=Dt(),e=xg(),r=Sg(),n="Expected a function",o=Math.max,d=Math.min;function s(i,c,u){var m,g,C,x,h,k,D=0,M=!1,$=!1,E=!0;if(typeof i!="function")throw new TypeError(n);c=r(c)||0,t(u)&&(M=!!u.leading,$="maxWait"in u,C=$?o(r(u.maxWait)||0,c):C,E="trailing"in u?!!u.trailing:E);function p(O){var se=m,W=g;return m=g=void 0,D=O,x=i.apply(W,se),x}function L(O){return D=O,h=setTimeout(K,c),M?p(O):x}function N(O){var se=O-k,W=O-D,Q=c-se;return $?d(Q,C-W):Q}function X(O){var se=O-k,W=O-D;return k===void 0||se>=c||se<0||$&&W>=C}function K(){var O=e();if(X(O))return re(O);h=setTimeout(K,N(O))}function re(O){return h=void 0,E&&m?p(O):(m=g=void 0,x)}function j(){h!==void 0&&clearTimeout(h),D=0,m=k=g=h=void 0}function _(){return h===void 0?x:re(e())}function V(){var O=e(),se=X(O);if(m=arguments,g=this,k=O,se){if(h===void 0)return L(k);if($)return clearTimeout(h),h=setTimeout(K,c),p(k)}return h===void 0&&(h=setTimeout(K,c)),x}return V.cancel=j,V.flush=_,V}return An=s,An}var _g=Cg();const Eg=br(_g),Nc=96/25.4,Tg=25.4/96,Uc=96/72,Ag=72/96,Wc=96,$g=1/96,Yc=96/2.54,Pg=2.54/96;function rl(t){return Number((t*Tg).toFixed(2))}function Ig(t){return t*Nc}function Dg(t){return Number((t*Ag).toFixed(2))}function Mg(t){return t*Uc}function Lg(t){return Number((t*$g).toFixed(2))}function zg(t){return t*Wc}function Rg(t){return Number((t*Pg).toFixed(2))}function Fg(t){return t*Yc}function It(t,e){return e==="mm"?rl(t):e==="pt"?Dg(t):e==="in"?Lg(t):e==="cm"?Rg(t):Math.round(t)}function xt(t,e){return e==="mm"?Ig(t):e==="pt"?Mg(t):e==="in"?zg(t):e==="cm"?Fg(t):Math.round(t)}function mr(t,e,r){t=t%360,t<0&&(t+=360),e=Math.max(0,Math.min(1,e)),r=Math.max(0,Math.min(1,r));const n=r*e,o=n*(1-Math.abs(t/60%2-1)),d=r-n;let s=0,i=0,c=0;return t>=0&&t<60?(s=n,i=o,c=0):t>=60&&t<120?(s=o,i=n,c=0):t>=120&&t<180?(s=0,i=n,c=o):t>=180&&t<240?(s=0,i=o,c=n):t>=240&&t<300?(s=o,i=0,c=n):(s=n,i=0,c=o),{r:Math.round((s+d)*255),g:Math.round((i+d)*255),b:Math.round((c+d)*255)}}function hd(t,e,r){t/=255,e/=255,r/=255;const n=Math.max(t,e,r),o=Math.min(t,e,r),d=n-o;let s=0;const i=n===0?0:d/n,c=n;if(n!==o){switch(n){case t:s=(e-r)/d+(e<r?6:0);break;case e:s=(r-t)/d+2;break;case r:s=(t-e)/d+4;break}s/=6}return{h:s*360,s:i,v:c}}function hr(t){if(!t)return null;if(t==="transparent")return{h:0,s:0,v:0,a:0};if(t.startsWith("#")){const e=t.slice(1);let r=0,n=0,o=0,d=1;if(e.length===3)r=parseInt(e[0]+e[0],16),n=parseInt(e[1]+e[1],16),o=parseInt(e[2]+e[2],16);else if(e.length===6)r=parseInt(e.substring(0,2),16),n=parseInt(e.substring(2,4),16),o=parseInt(e.substring(4,6),16);else if(e.length===8)r=parseInt(e.substring(0,2),16),n=parseInt(e.substring(2,4),16),o=parseInt(e.substring(4,6),16),d=parseInt(e.substring(6,8),16)/255;else return null;return{...hd(r,n,o),a:d}}if(t.startsWith("rgb")){const e=t.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*([\d.]+))?\)/);if(e){const r=parseInt(e[1]),n=parseInt(e[2]),o=parseInt(e[3]),d=e[4]!==void 0?parseFloat(e[4]):1;return{...hd(r,n,o),a:d}}}return null}function md(t,e,r,n=1){const{r:o,g:d,b:s}=mr(t,e,r),i=c=>{const u=Math.round(c).toString(16);return u.length===1?"0"+u:u};if(n>=1)return`#${i(o)}${i(d)}${i(s)}`;{const c=Math.round(n*255);return`#${i(o)}${i(d)}${i(s)}${i(c)}`}}function qg(t,e,r,n=1){const{r:o,g:d,b:s}=mr(t,e,r);return`rgba(${o}, ${d}, ${s}, ${parseFloat(n.toFixed(2))})`}const Bg={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Og(t,e){return f(),w("svg",Bg,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M18 7H6V3h12zm0 5.5q.425 0 .713-.288T19 11.5t-.288-.712T18 10.5t-.712.288T17 11.5t.288.713t.712.287M16 19v-4H8v4zm2 2H6v-4H2v-6q0-1.275.875-2.137T5 8h14q1.275 0 2.138.863T22 11v6h-4z"},null,-1)])])}const ml=Pe({name:"material-symbols-print",render:Og}),Vg={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function jg(t,e){return f(),w("svg",Vg,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M5 21q-.825 0-1.412-.587T3 19V5q0-.825.588-1.412T5 3h14q.825 0 1.413.588T21 5v14q0 .825-.587 1.413T19 21zm0-2h14V7H5zm3.338-3.113Q6.725 14.776 6 13q.725-1.775 2.338-2.887T12 9t3.663 1.113T18 13q-.725 1.775-2.337 2.888T12 17t-3.662-1.112m2.6-1.826Q10.5 13.626 10.5 13t.438-1.062T12 11.5t1.063.438T13.5 13t-.437 1.063T12 14.5t-1.062-.437m2.837.712Q14.5 14.05 14.5 13t-.725-1.775T12 10.5t-1.775.725T9.5 13t.725 1.775T12 15.5t1.775-.725"},null,-1)])])}const Hg=Pe({name:"material-symbols-preview",render:jg}),Ng={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Ug(t,e){return f(),w("svg",Ng,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"m12 16l-5-5l1.4-1.45l2.6 2.6V4h2v8.15l2.6-2.6L17 11zm-6 4q-.825 0-1.412-.587T4 18v-3h2v3h12v-3h2v3q0 .825-.587 1.413T18 20z"},null,-1)])])}const Jt=Pe({name:"material-symbols-file-download",render:Ug}),Wg={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Yg(t,e){return f(),w("svg",Wg,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M9 12.5h1v-2h1q.425 0 .713-.288T12 9.5v-1q0-.425-.288-.712T11 7.5H9zm1-3v-1h1v1zm3 3h2q.425 0 .713-.288T16 11.5v-3q0-.425-.288-.712T15 7.5h-2zm1-1v-3h1v3zm3 1h1v-2h1v-1h-1v-1h1v-1h-2zM8 18q-.825 0-1.412-.587T6 16V4q0-.825.588-1.412T8 2h12q.825 0 1.413.588T22 4v12q0 .825-.587 1.413T20 18zm-4 4q-.825 0-1.412-.587T2 20V6h2v14h14v2z"},null,-1)])])}Pe({name:"material-symbols-picture-as-pdf",render:Yg});const Gg={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Xg(t,e){return f(),w("svg",Gg,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M5 21q-.825 0-1.412-.587T3 19V5q0-.825.588-1.412T5 3h14q.825 0 1.413.588T21 5v14q0 .825-.587 1.413T19 21zm1-4h12l-3.75-5l-3 4L9 13z"},null,-1)])])}const bd=Pe({name:"material-symbols-image",render:Xg}),Kg={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Qg(t,e){return f(),w("svg",Kg,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"m19.6 21l-6.3-6.3q-.75.6-1.725.95T9.5 16q-2.725 0-4.612-1.888T3 9.5t1.888-4.612T9.5 3t4.613 1.888T16 9.5q0 1.1-.35 2.075T14.7 13.3l6.3 6.3zM9.5 14q1.875 0 3.188-1.312T14 9.5t-1.312-3.187T9.5 5T6.313 6.313T5 9.5t1.313 3.188T9.5 14m-1-1.5v-2h-2v-2h2v-2h2v2h2v2h-2v2z"},null,-1)])])}const Gc=Pe({name:"material-symbols-zoom-in",render:Qg}),Jg={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Zg(t,e){return f(),w("svg",Jg,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"m19.6 21l-6.3-6.3q-.75.6-1.725.95T9.5 16q-2.725 0-4.612-1.888T3 9.5t1.888-4.612T9.5 3t4.613 1.888T16 9.5q0 1.1-.35 2.075T14.7 13.3l6.3 6.3zM9.5 14q1.875 0 3.188-1.312T14 9.5t-1.312-3.187T9.5 5T6.313 6.313T5 9.5t1.313 3.188T9.5 14M7 10.5v-2h5v2z"},null,-1)])])}const Xc=Pe({name:"material-symbols-zoom-out",render:Zg}),e0={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function t0(t,e){return f(),w("svg",e0,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"m9.25 22l-.4-3.2q-.325-.125-.612-.3t-.563-.375L4.7 19.375l-2.75-4.75l2.575-1.95Q4.5 12.5 4.5 12.338v-.675q0-.163.025-.338L1.95 9.375l2.75-4.75l2.975 1.25q.275-.2.575-.375t.6-.3l.4-3.2h5.5l.4 3.2q.325.125.613.3t.562.375l2.975-1.25l2.75 4.75l-2.575 1.95q.025.175.025.338v.674q0 .163-.05.338l2.575 1.95l-2.75 4.75l-2.95-1.25q-.275.2-.575.375t-.6.3l-.4 3.2zm2.8-6.5q1.45 0 2.475-1.025T15.55 12t-1.025-2.475T12.05 8.5q-1.475 0-2.488 1.025T8.55 12t1.013 2.475T12.05 15.5"},null,-1)])])}const Pr=Pe({name:"material-symbols-settings",render:t0}),r0={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function o0(t,e){return f(),w("svg",r0,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M21 7v12q0 .825-.587 1.413T19 21H5q-.825 0-1.412-.587T3 19V5q0-.825.588-1.412T5 3h12zm-6.875 10.125Q15 16.25 15 15t-.875-2.125T12 12t-2.125.875T9 15t.875 2.125T12 18t2.125-.875M6 10h9V6H6z"},null,-1)])])}const bl=Pe({name:"material-symbols-save",render:o0}),a0={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function n0(t,e){return f(),w("svg",a0,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M13 23v-3.075l5.525-5.5q.225-.225.5-.325t.55-.1q.3 0 .575.113t.5.337l.925.925q.2.225.313.5t.112.55t-.1.563t-.325.512l-5.5 5.5zM6 10h9V6H6zm13.575 7.4l.925-.975l-.925-.925l-.95.95zM11 21H5q-.825 0-1.412-.587T3 19V5q0-.825.588-1.412T5 3h12l4 4v5.3q-.475-.2-.987-.262T19 12.05t-.975.313t-.875.612L15 15.125V15q0-1.25-.875-2.125T12 12t-2.125.875T9 15t.875 2.125T12 18h.1L11 19.1z"},null,-1)])])}const Kc=Pe({name:"material-symbols-save-as",render:n0}),l0={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function s0(t,e){return f(),w("svg",l0,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M8.125 21.213q-1.825-.788-3.187-2.15t-2.15-3.188T2 11.988t.788-3.875t2.15-3.175t3.187-2.15T12 2q.425 0 .713.288T13 3t-.288.713T12 4Q8.675 4 6.337 6.338T4 12t2.338 5.663T12 20t5.663-2.337T20 12q0-.425.288-.712T21 11t.713.288T22 12q0 2.05-.788 3.875t-2.15 3.188t-3.175 2.15t-3.875.787t-3.887-.787"},null,-1)])])}const i0=Pe({name:"material-symbols-progress-activity",render:s0}),d0={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function c0(t,e){return f(),w("svg",d0,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M7 19v-2h7.1q1.575 0 2.738-1T18 13.5T16.838 11T14.1 10H7.8l2.6 2.6L9 14L4 9l5-5l1.4 1.4L7.8 8h6.3q2.425 0 4.163 1.575T20 13.5t-1.737 3.925T14.1 19z"},null,-1)])])}const Qc=Pe({name:"material-symbols-undo",render:c0}),u0={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function p0(t,e){return f(),w("svg",u0,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M9.9 19q-2.425 0-4.163-1.575T4 13.5t1.738-3.925T9.9 8h6.3l-2.6-2.6L15 4l5 5l-5 5l-1.4-1.4l2.6-2.6H9.9q-1.575 0-2.738 1T6 13.5T7.163 16T9.9 17H17v2z"},null,-1)])])}const Jc=Pe({name:"material-symbols-redo",render:p0}),g0={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function h0(t,e){return f(),w("svg",g0,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M7 21q-.825 0-1.412-.587T5 19V6H4V4h5V3h6v1h5v2h-1v13q0 .825-.587 1.413T17 21zm2-4h2V8H9zm4 0h2V8h-2z"},null,-1)])])}const nr=Pe({name:"material-symbols-delete",render:h0}),m0={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function b0(t,e){return f(),w("svg",m0,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M12.838 17.638q.362-.363.362-.888t-.362-.888t-.888-.362t-.887.363t-.363.887t.363.888t.887.362t.888-.363M11.05 14.15h1.85q0-.825.188-1.3t1.062-1.3q.65-.65 1.025-1.238T15.55 8.9q0-1.4-1.025-2.15T12.1 6q-1.425 0-2.312.75T8.55 8.55l1.65.65q.125-.45.563-.975T12.1 7.7q.8 0 1.2.438t.4.962q0 .5-.3.938t-.75.812q-1.1.975-1.35 1.475t-.25 1.825M12 22q-2.075 0-3.9-.787t-3.175-2.138T2.788 15.9T2 12t.788-3.9t2.137-3.175T8.1 2.788T12 2t3.9.788t3.175 2.137T21.213 8.1T22 12t-.788 3.9t-2.137 3.175t-3.175 2.138T12 22"},null,-1)])])}const f0=Pe({name:"material-symbols-help",render:b0}),v0={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function y0(t,e){return f(),w("svg",v0,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M3 21v-2h18v2zm0-4v-2h12v2zm0-4v-2h18v2zm0-4V7h12v2zm0-4V3h18v2z"},null,-1)])])}const x0=Pe({name:"material-symbols-format-align-left",render:y0}),w0={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function k0(t,e){return f(),w("svg",w0,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M3 21v-2h18v2zm4-4v-2h10v2zm-4-4v-2h18v2zm4-4V7h10v2zM3 5V3h18v2z"},null,-1)])])}const S0=Pe({name:"material-symbols-format-align-center",render:k0}),C0={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function _0(t,e){return f(),w("svg",C0,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M3 5V3h18v2zm6 4V7h12v2zm-6 4v-2h18v2zm6 4v-2h12v2zm-6 4v-2h18v2z"},null,-1)])])}const E0=Pe({name:"material-symbols-format-align-right",render:_0}),T0={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function A0(t,e){return f(),w("svg",T0,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M4 5V3h16v2zm7 16V10.8l-2.6 2.6L7 12l5-5l5 5l-1.4 1.4l-2.6-2.6V21z"},null,-1)])])}const $0=Pe({name:"material-symbols-vertical-align-top",render:A0}),P0={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function I0(t,e){return f(),w("svg",P0,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M11 22v-4.2l-1.6 1.6L8 18l4-4l4 4l-1.4 1.4l-1.6-1.6V22zm-7-9v-2h16v2zm8-3L8 6l1.4-1.4L11 6.2V2h2v4.2l1.6-1.6L16 6z"},null,-1)])])}const D0=Pe({name:"material-symbols-vertical-align-center",render:I0}),M0={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function L0(t,e){return f(),w("svg",M0,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M4 21v-2h16v2zm8-4l-5-5l1.4-1.4l2.6 2.6V3h2v10.2l2.6-2.6L17 12z"},null,-1)])])}const z0=Pe({name:"material-symbols-vertical-align-bottom",render:L0}),R0={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function F0(t,e){return f(),w("svg",R0,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M6.8 19V5h5.525q1.625 0 3 1T16.7 8.775q0 1.275-.575 1.963t-1.075.987q.625.275 1.388 1.025T17.2 15q0 2.225-1.625 3.113t-3.05.887zm3.025-2.8h2.6q1.2 0 1.463-.612t.262-.888t-.262-.887t-1.538-.613H9.825zm0-5.7h2.325q.825 0 1.2-.425t.375-.95q0-.6-.425-.975t-1.1-.375H9.825z"},null,-1)])])}const q0=Pe({name:"material-symbols-format-bold",render:F0}),B0={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function O0(t,e){return f(),w("svg",B0,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M5 19v-2.5h4l3-9H8V5h10v2.5h-3.5l-3 9H15V19z"},null,-1)])])}const V0=Pe({name:"material-symbols-format-italic",render:O0}),j0={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function H0(t,e){return f(),w("svg",j0,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M5 21v-2h14v2zm3.075-5.575q-1.4-1.575-1.4-4.175V3H9.25v8.4q0 1.4.7 2.275t2.05.875t2.05-.875t.7-2.275V3h2.575v8.25q0 2.6-1.4 4.175T12 17t-3.925-1.575"},null,-1)])])}const N0=Pe({name:"material-symbols-format-underlined",render:H0}),U0={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function W0(t,e){return f(),w("svg",U0,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M10.9 16L15 5h2l4.1 11h-1.9l-1-2.8h-4.4l-1 2.8zm3.45-4.4h3.3l-1.6-4.55h-.1zM6 20l-3.5-3.5l1.4-1.4L5 16.15V3h2v13.15l1.1-1.05l1.4 1.4z"},null,-1)])])}const Y0=Pe({name:"material-symbols-text-rotate-vertical",render:W0}),G0={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function X0(t,e){return f(),w("svg",G0,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M11 22q-1.25-.125-2.4-.612T6.4 20.1l1.4-1.45q.725.525 1.538.85t1.662.45zm2 0v-2.05q2.6-.375 4.3-2.337T19 13.05q0-2.925-2.037-4.962T12 6.05h-.2l1.6 1.6l-1.4 1.4l-4-4l4-4l1.4 1.45l-1.55 1.55H12q1.875 0 3.513.713t2.85 1.925t1.925 2.85T21 13.05q0 3.425-2.275 5.963T13 22m-8.05-3.35q-.8-1.05-1.288-2.2t-.612-2.4H5.1q.125.85.45 1.663t.85 1.537zm-1.9-6.6q.15-1.275.625-2.45T4.95 7.45l1.45 1.4q-.525.725-.85 1.538T5.1 12.05z"},null,-1)])])}const K0=Pe({name:"material-symbols-rotate-left",render:X0}),Q0={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function J0(t,e){return f(),w("svg",Q0,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M9 18q-.825 0-1.412-.587T7 16V4q0-.825.588-1.412T9 2h9q.825 0 1.413.588T20 4v12q0 .825-.587 1.413T18 18zm-4 4q-.825 0-1.412-.587T3 20V6h2v14h11v2z"},null,-1)])])}const lr=Pe({name:"material-symbols-content-copy",render:J0}),Z0={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function eh(t,e){return f(),w("svg",Z0,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M6.4 18h2.1l1.1-3.05h4.8L15.5 18h2.1L13.05 6h-2.1zm3.8-4.8l1.75-4.95h.1l1.75 4.95zM4 22q-.825 0-1.412-.587T2 20V4q0-.825.588-1.412T4 2h16q.825 0 1.413.588T22 4v16q0 .825-.587 1.413T20 22z"},null,-1)])])}const th=Pe({name:"material-symbols-font-download",render:eh}),rh={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function oh(t,e){return f(),w("svg",rh,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M6.175 1.4L7.6 0l8.575 8.575q.575.575.575 1.425t-.575 1.425l-4.75 4.75q-.575.575-1.425.575t-1.425-.575l-4.75-4.75Q3.25 10.85 3.25 10t.575-1.425L8.575 3.8zM10 5.225L5.225 10h9.55zm7.588 11.188Q17 15.825 17 15q0-.525.313-1.125T18 12.75q.225-.3.475-.625T19 11.5q.275.3.525.625t.475.625q.375.525.688 1.125T21 15q0 .825-.587 1.413T19 17t-1.412-.587M2 24v-4h20v4z"},null,-1)])])}const ah=Pe({name:"material-symbols-format-color-fill",render:oh}),nh={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function lh(t,e){return f(),w("svg",nh,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M5 21q-.825 0-1.412-.587T3 19V5q0-.825.588-1.412T5 3h4.175q.275-.875 1.075-1.437T12 1q1 0 1.788.563T14.85 3H19q.825 0 1.413.588T21 5v14q0 .825-.587 1.413T19 21zm0-2h14V5h-2v3H7V5H5zm7.713-14.288Q13 4.425 13 4t-.288-.712T12 3t-.712.288T11 4t.288.713T12 5t.713-.288"},null,-1)])])}const fl=Pe({name:"material-symbols-content-paste",render:lh}),sh={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function ih(t,e){return f(),w("svg",sh,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M8 16q.825 0 1.413-.587T10 14t-.587-1.412T8 12t-1.412.588T6 14t.588 1.413T8 16m9.413-.587Q18 14.825 18 14t-.587-1.412T16 12t-1.412.588T14 14t.588 1.413T16 16t1.413-.587m-4-6Q14 8.825 14 8t-.587-1.412T12 6t-1.412.588T10 8t.588 1.413T12 10t1.413-.587M12 22q-2.075 0-3.9-.788t-3.175-2.137T2.788 15.9T2 12t.788-3.9t2.137-3.175T8.1 2.788T12 2t3.9.788t3.175 2.137T21.213 8.1T22 12t-.788 3.9t-2.137 3.175t-3.175 2.138T12 22"},null,-1)])])}const dh=Pe({name:"material-symbols-group-work",render:ih}),ch={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function uh(t,e){return f(),w("svg",ch,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M6 22q-.825 0-1.412-.587T4 20V10q0-.825.588-1.412T6 8h1V6q0-2.075 1.463-3.537T12 1t3.538 1.463T17 6v2h1q.825 0 1.413.588T20 10v10q0 .825-.587 1.413T18 22zm7.413-5.587Q14 15.825 14 15t-.587-1.412T12 13t-1.412.588T10 15t.588 1.413T12 17t1.413-.587M9 8h6V6q0-1.25-.875-2.125T12 3t-2.125.875T9 6z"},null,-1)])])}const Br=Pe({name:"material-symbols-lock",render:uh}),ph={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function gh(t,e){return f(),w("svg",ph,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M6 8h9V6q0-1.25-.875-2.125T12 3t-2.125.875T9 6H7q0-2.075 1.463-3.537T12 1t3.538 1.463T17 6v2h1q.825 0 1.413.588T20 10v10q0 .825-.587 1.413T18 22H6q-.825 0-1.412-.587T4 20V10q0-.825.588-1.412T6 8m7.413 8.413Q14 15.825 14 15t-.587-1.412T12 13t-1.412.588T10 15t.588 1.413T12 17t1.413-.587"},null,-1)])])}const Zc=Pe({name:"material-symbols-lock-open",render:gh}),hh={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function mh(t,e){return f(),w("svg",hh,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"m12 15.375l-6-6l1.4-1.4l4.6 4.6l4.6-4.6l1.4 1.4z"},null,-1)])])}const vl=Pe({name:"material-symbols-expand-more",render:mh}),Ge={printMode:"print-designer-print-mode",preferredPrintMode:"print-designer-preferred-print-mode",silentPrint:"print-designer-silent-print",exportImageMerged:"print-designer-export-image-merged",printQuality:"print-designer-print-quality",localSettings:"print-designer-local-settings",remoteSettings:"print-designer-remote-settings",localPrintOptions:"print-designer-local-print-options",remotePrintOptions:"print-designer-remote-print-options",remoteAuthToken:"print-designer-remote-auth-token",remoteSelectedClientId:"print-designer-remote-selected-client-id"},bh={wsAddress:"ws://localhost:1122/ws",secretKey:""},fh={wsAddress:"ws://localhost:8080/ws/request",apiBaseUrl:"http://localhost:8080/api/login",username:"",password:""},fd={printer:"",jobName:"",copies:1,intervalMs:0,pageRange:"",pageSet:"",scale:"fit",orientation:"portrait",colorMode:"color",sidesMode:"simplex",paperSize:"",trayBin:""},Cr=(t,e)=>{const r=localStorage.getItem(t);if(!r)return e;try{return{...e,...JSON.parse(r)}}catch{return e}},_r=(t,e)=>{localStorage.setItem(t,JSON.stringify(e))},vh=t=>t.trim(),vd=t=>{const e=vh(t);return e?/^wss?:\/\//i.test(e)?e:`ws://${e.replace(/^\/+/,"")}`:"ws://"},yd=(t,e,r)=>{if(!r)return t;try{const n=new URL(t);return n.searchParams.set(e,r),n.toString()}catch{const n=t.includes("?")?"&":"?";return`${t}${n}${encodeURIComponent(e)}=${encodeURIComponent(r)}`}};let $n=null;const yh=()=>{const t=localStorage.getItem(Ge.preferredPrintMode),e=G(t||localStorage.getItem(Ge.printMode)||"browser"),r=G(localStorage.getItem(Ge.silentPrint)==="true"),n=G(localStorage.getItem(Ge.exportImageMerged)!=="false"),o=localStorage.getItem(Ge.printQuality),s=o&&["fast","normal","high","ultra"].includes(o)?o:"normal",i=G(s),c=Qt(Cr(Ge.localSettings,bh));if(!c.wsAddress){const Y=c;if(Y.host||Y.port||Y.path){const be=Y.host||"localhost",me=Y.port?`:${Y.port}`:"",Re=Y.path||"/ws",ze=Y.protocol||"ws";c.wsAddress=`${ze}://${be}${me}${Re}`}}const u=Qt(Cr(Ge.remoteSettings,fh));if(!u.wsAddress){const Y=u;if(Y.host||Y.wsPort||Y.wsPath){const be=Y.host||"localhost",me=Y.wsPort?`:${Y.wsPort}`:"",Re=Y.wsPath||"/ws/request";u.wsAddress=`${be}${me}${Re}`}}const m=G("disconnected"),g=G("disconnected"),C=G(""),x=G(""),h=Qt(Cr(Ge.localPrintOptions,fd)),k=Qt(Cr(Ge.remotePrintOptions,fd)),D=G(localStorage.getItem(Ge.remoteAuthToken)||""),M=G(localStorage.getItem(Ge.remoteSelectedClientId)||""),$=G([]),E=G([]),p=G([]),L=Qt({}),N=G(null),X=G(null),K=[],re=[];let j=null,_=null;const V=G(0),O=G(0),se=G(null),W=G(null),Q=G(!1),ee=G(!1),ve=3e3,ce=10,J=G(null),ne=3e4,te=G(null),ue=3e4,z=le(()=>{const Y=vd(c.wsAddress);return yd(Y,"key",c.secretKey.trim())}),ie=le(()=>{const Y=vd(u.wsAddress);return yd(Y,"token",D.value.trim())});De(e,Y=>{if(localStorage.setItem(Ge.printMode,Y),Y!=="browser"){localStorage.setItem(Ge.preferredPrintMode,Y);return}localStorage.removeItem(Ge.preferredPrintMode)}),De(r,Y=>{localStorage.setItem(Ge.silentPrint,String(Y))}),De(n,Y=>{localStorage.setItem(Ge.exportImageMerged,String(Y))}),De(i,Y=>{localStorage.setItem(Ge.printQuality,Y.toString())}),De(c,Y=>{_r(Ge.localSettings,Y),m.value="disconnected",C.value=""},{deep:!0}),De(u,Y=>{_r(Ge.remoteSettings,Y),g.value="disconnected",x.value=""},{deep:!0}),De(h,Y=>{_r(Ge.localPrintOptions,Y)},{deep:!0}),De(k,Y=>{_r(Ge.remotePrintOptions,Y)},{deep:!0}),De(D,Y=>{localStorage.setItem(Ge.remoteAuthToken,Y)}),De(M,Y=>{localStorage.setItem(Ge.remoteSelectedClientId,Y)});const de=()=>{const Y=localStorage.getItem(Ge.preferredPrintMode);!Y||Y==="browser"||e.value==="browser"&&(Y==="local"&&m.value==="connected"&&(e.value="local"),Y==="remote"&&g.value==="connected"&&(e.value="remote"))},fe=()=>{const Y=m.value==="connected",be=g.value==="connected";if(e.value==="local"&&!Y){e.value="browser";return}if(e.value==="remote"&&!be){e.value="browser";return}!Y&&!be&&(e.value="browser")};De([m,g],()=>{fe(),de()},{immediate:!0});const B=(Y,be)=>{Y.slice().forEach(me=>{me.match(be)&&(window.clearTimeout(me.timeoutId),Y.splice(Y.indexOf(me),1),me.resolve(be))})},oe=(Y,be)=>{Y.slice().forEach(me=>{window.clearTimeout(me.timeoutId),Y.splice(Y.indexOf(me),1),me.reject(be)})},pe=()=>{se.value&&(window.clearTimeout(se.value),se.value=null),V.value=0},Ae=()=>{W.value&&(window.clearTimeout(W.value),W.value=null),O.value=0},Ce=()=>{Q.value=!0,pe(),N.value&&N.value.close(),N.value=null,m.value="disconnected",C.value=""},xe=()=>{ee.value=!0,Ae(),X.value&&X.value.close(),X.value=null,g.value="disconnected",x.value=""},Ee=()=>{if(!Q.value&&!se.value){if(V.value>=ce){m.value="error",C.value="Local connection failed",V.value=0;return}V.value+=1,m.value="connecting",se.value=window.setTimeout(()=>{se.value=null,y()},ve)}},we=()=>{if(!ee.value&&!W.value){if(O.value>=ce){g.value="error",x.value="Remote connection failed",O.value=0;return}O.value+=1,g.value="connecting",W.value=window.setTimeout(()=>{W.value=null,v()},ve)}},R=(Y,be,me,Re,ze=5e3)=>new Promise((Ne,Je)=>{const it=Y.value;if(!it||it.readyState!==WebSocket.OPEN){Je(new Error("WebSocket not connected"));return}const mt=window.setTimeout(()=>{const bt=be.findIndex(At=>At.resolve===Ne);bt>=0&&be.splice(bt,1),Je(new Error("WebSocket timeout"))},ze);be.push({match:Re,resolve:Ne,reject:Je,timeoutId:mt}),it.send(JSON.stringify(me))}),U=Y=>{Y.onmessage=be=>{try{const me=JSON.parse(be.data);(me==null?void 0:me.type)==="printer_list"&&($.value=Array.isArray(me.data)?me.data:[]),(me==null?void 0:me.type)==="printer_caps"&&me.printer&&(L[me.printer]=(me==null?void 0:me.data)||{}),B(K,me)}catch(me){oe(K,me)}},Y.onclose=()=>{N.value=null,m.value!=="error"&&(m.value="disconnected"),oe(K,new Error("WebSocket closed")),Ee()},Y.onerror=()=>{m.value="error",C.value="Local connection failed",oe(K,new Error("WebSocket error")),Ee()}},Z=Y=>{Y.onmessage=be=>{try{const me=JSON.parse(be.data);if((me==null?void 0:me.cmd)==="clients_list")if(p.value=Array.isArray(me.clients)?me.clients:[],p.value.length>0){if(!p.value.some(ze=>ze.client_id===M.value)){const ze=p.value.find(Ne=>Ne.online)||p.value[0];M.value=(ze==null?void 0:ze.client_id)||""}}else M.value="";if((me==null?void 0:me.cmd)==="printers_list"){const Re=Array.isArray(me.printers)?me.printers:[];E.value=Re.map(ze=>{var Ne,Je;return!ze.paper_spec&&((Je=(Ne=ze.capabilities)==null?void 0:Ne.config)!=null&&Je.paperSize)?{...ze,paper_spec:ze.capabilities.config.paperSize}:ze})}B(re,me)}catch(me){oe(re,me)}},Y.onclose=()=>{X.value=null,g.value!=="error"&&(g.value="disconnected"),oe(re,new Error("WebSocket closed")),we()},Y.onerror=()=>{g.value="error",x.value="Remote connection failed",oe(re,new Error("WebSocket error")),we()}},y=async()=>{if(j)return j;if(N.value&&N.value.readyState===WebSocket.OPEN)return m.value="connected",Promise.resolve();Q.value=!1,m.value="connecting",C.value="";const Y=new WebSocket(z.value);return N.value=Y,U(Y),j=new Promise((be,me)=>{Y.addEventListener("open",()=>{m.value="connected",pe(),j=null,Y.send(JSON.stringify({type:"get_printers"})),be()}),Y.addEventListener("error",()=>{m.value="error",C.value="Local connection failed",j=null,Ee(),me(new Error("WebSocket error"))})}),j},T=()=>{Q.value=!0,pe(),N.value&&N.value.close(),N.value=null,m.value="disconnected",C.value="",e.value="browser"},v=async()=>_||(X.value&&X.value.readyState===WebSocket.OPEN?(g.value="connected",Promise.resolve()):(ee.value=!1,g.value="connecting",x.value="",_=(async()=>{try{if(!u.apiBaseUrl||!u.username||!u.password){g.value="error",x.value="Missing remote connection fields";return}const Y=await fetch(u.apiBaseUrl,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:u.username,password:u.password})});if(!Y.ok){const Re=await Y.text();throw new Error(Re||`HTTP ${Y.status}`)}const be=await Y.json();if(!(be!=null&&be.token))throw new Error("Missing auth token");D.value=be.token;const me=new WebSocket(ie.value);X.value=me,Z(me),await new Promise((Re,ze)=>{me.addEventListener("open",()=>{g.value="connected",Ae(),me.send(JSON.stringify({cmd:"get_clients"})),Re()}),me.addEventListener("error",()=>{g.value="error",x.value="Remote connection failed",we(),ze(new Error("WebSocket error"))})})}catch(Y){g.value="error",x.value=Y.message||"Remote connection failed",we()}finally{_=null}})(),_)),S=()=>{ee.value=!0,Ae(),X.value&&X.value.close(),X.value=null,g.value="disconnected",x.value="",e.value="browser"},P=async()=>{await y();const Y=await R(N,K,{type:"get_printers"},be=>(be==null?void 0:be.type)==="printer_list");return $.value=Array.isArray(Y.data)?Y.data:[],$.value},ae=async Y=>{if(!Y)return;if(L[Y])return L[Y];await y();const be=await R(N,K,{type:"get_printer_caps",printer:Y},me=>(me==null?void 0:me.type)==="printer_caps");return L[Y]=(be==null?void 0:be.data)||{},L[Y]},q=async()=>{await v();const Y=await R(X,re,{cmd:"get_clients"},be=>(be==null?void 0:be.cmd)==="clients_list");if(p.value=Array.isArray(Y.clients)?Y.clients:[],p.value.length>0){if(!p.value.some(me=>me.client_id===M.value)){const me=p.value.find(Re=>Re.online)||p.value[0];M.value=(me==null?void 0:me.client_id)||""}}else M.value="";return p.value},ye=async Y=>{const be=Y||M.value;if(!be)return E.value=[],E.value;await v();const me=await R(X,re,{cmd:"get_printers",client_id:be},ze=>(ze==null?void 0:ze.cmd)==="printers_list"),Re=Array.isArray(me.printers)?me.printers:[];return E.value=Re.map(ze=>{var Ne,Je;return!ze.paper_spec&&((Je=(Ne=ze.capabilities)==null?void 0:Ne.config)!=null&&Je.paperSize)?{...ze,paper_spec:ze.capabilities.config.paperSize}:ze}),E.value},F=()=>{J.value&&(window.clearInterval(J.value),J.value=null)},A=()=>{J.value||(J.value=window.setInterval(()=>{m.value==="connected"&&P().catch(()=>{})},ne))},I=async(Y,be=3e4)=>(await v(),await R(X,re,Y,me=>(me==null?void 0:me.cmd)==="task_result",be)),H=()=>{te.value&&(window.clearInterval(te.value),te.value=null)},ke=()=>{te.value||(te.value=window.setInterval(()=>{g.value==="connected"&&q().catch(()=>{})},ue))};return De(g,Y=>{if(Y==="connected"){q().catch(()=>{}),ke();return}H()},{immediate:!0}),De(m,Y=>{if(Y==="connected"){P().catch(()=>{}),A();return}F()},{immediate:!0}),{printMode:e,silentPrint:r,exportImageMerged:n,printQuality:i,localSettings:c,remoteSettings:u,localStatus:m,remoteStatus:g,localStatusMessage:C,remoteStatusMessage:x,localRetryCount:V,remoteRetryCount:O,localPrintOptions:h,remotePrintOptions:k,localWsUrl:z,remoteWsUrl:ie,remoteAuthToken:D,localPrinters:$,remotePrinters:E,remoteClients:p,remoteSelectedClientId:M,localPrinterCaps:L,fetchLocalPrinters:P,fetchRemoteClients:q,fetchRemotePrinters:ye,fetchLocalPrinterCaps:ae,submitRemoteTask:I,cancelLocalRetry:Ce,cancelRemoteRetry:xe,connectLocal:y,disconnectLocal:T,connectRemote:v,disconnectRemote:S}},Zt=()=>($n||($n=yh()),$n),xh={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function wh(t,e){return f(),w("svg",xh,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M13.05 22v-2.05q.85-.125 1.663-.45t1.537-.85l1.4 1.45q-1.05.8-2.2 1.287t-2.4.613m-2 0q-3.45-.45-5.725-2.988T3.05 13.05q0-1.875.713-3.512t1.925-2.85t2.85-1.925t3.512-.713h.15L10.65 2.5l1.4-1.45l4 4l-4 4l-1.4-1.4l1.6-1.6h-.2q-2.925 0-4.962 2.038T5.05 13.05q0 2.6 1.7 4.563t4.3 2.337zm8.05-3.35l-1.45-1.4q.525-.725.85-1.537t.45-1.663H21q-.125 1.25-.612 2.4t-1.288 2.2m1.9-6.6h-2.05q-.125-.85-.45-1.662t-.85-1.538l1.45-1.4q.8.975 1.275 2.15T21 12.05"},null,-1)])])}const kh=Pe({name:"material-symbols-rotate-right",render:wh}),Sh=["data-element-id","data-read-only","data-repeat-per-page"],Ch={key:0,"data-print-exclude":"true",class:"absolute -top-3 -right-3 bg-red-500 rounded-full p-1 shadow-md z-50"},_h=["title"],xd=Oe({__name:"ElementWrapper",props:{element:{},isSelected:{type:Boolean},zoom:{},pageIndex:{},readOnly:{type:Boolean}},setup(t){const e=t,{t:r}=Ke(),n=je(),o=G(null),d=st("designer-root",G(null)),s=()=>{var N;return((N=d==null?void 0:d.value)==null?void 0:N.getRootNode())||document},i=le(()=>{const N=!e.isSelected&&n.selectedElementIds.includes(e.element.id),X=!e.readOnly&&(e.isSelected||N),K={left:`${e.element.x}px`,top:`${e.element.y}px`,width:`${e.element.width}px`,height:`${e.element.height}px`,zIndex:e.element.style.zIndex||1,transform:`rotate(${e.element.style.rotate||0}deg)`,...e.element.style},re=[$e.TABLE,$e.LINE,$e.RECT,$e.CIRCLE];return re.includes(e.element.type)&&(delete K.backgroundColor,delete K.border,delete K.borderWidth,delete K.borderStyle,delete K.borderColor,delete K.borderRadius),X?K.border=e.element.locked?"2px solid #ef4444":"2px solid var(--brand-500)":!re.includes(e.element.type)&&e.element.style.borderStyle&&e.element.style.borderStyle!=="none"?(K.borderStyle=e.element.style.borderStyle,K.borderWidth=`${e.element.style.borderWidth||1}px`,K.borderColor=e.element.style.borderColor||"#000",delete K.border):!re.includes(e.element.type)&&e.element.style.border?K.border=e.element.style.border:K.border="1px dashed transparent",K});let c=0,u=0,m=0,g=0,C=!1,x=!1;const h=N=>{e.readOnly||N.button!==0||N.target.closest(".resize-handle")||N.target.closest(".rotate-handle")||(N.ctrlKey||N.metaKey?n.selectElement(e.element.id,!0):n.selectedElementIds.includes(e.element.id)||n.selectElement(e.element.id,!1),n.selectedElementIds.includes(e.element.id)&&n.bringElementsToFront(n.selectedElementIds),e.element.locked)||(C=!0,n.setDragging(!0),x=!1,c=N.clientX,u=N.clientY,m=e.element.x,g=e.element.y,window.addEventListener("mousemove",k),window.addEventListener("mouseup",D))},k=N=>{if(!C)return;const X=(N.clientX-c)/e.zoom,K=(N.clientY-u)/e.zoom;(Math.abs(X)>2||Math.abs(K)>2)&&(x||(n.snapshot(),x=!0),n.selectedElementIds.length>1&&n.selectedElementIds.includes(e.element.id)?n.moveSelectedElements(e.element.id,m+X,g+K,!1,!1):n.moveElementWithSnap(e.element.id,m+X,g+K,!1,!1))},D=N=>{if(C&&x){const X=s(),re=X.elementsFromPoint(N.clientX,N.clientY).find(j=>j.classList.contains("print-page"));if(re){const j=re.id,_=parseInt(j.replace("page-",""),10);if(!isNaN(_)&&_!==e.pageIndex){const V=X.getElementById(`page-${e.pageIndex}`);if(V){const O=V.getBoundingClientRect(),se=re.getBoundingClientRect(),W=(O.left-se.left)/e.zoom,Q=(O.top-se.top)/e.zoom;(n.selectedElementIds.length>1&&n.selectedElementIds.includes(e.element.id)?[...n.selectedElementIds]:[e.element.id]).forEach(ve=>{const J=n.pages[e.pageIndex].elements.find(ne=>ne.id===ve);J&&n.moveElementToPage(ve,_,J.x+W,J.y+Q)})}}else n.selectedElementIds.length>1&&n.selectedElementIds.includes(e.element.id)?n.moveSelectedElements(e.element.id,e.element.x,e.element.y,!1,!0):n.moveElementWithSnap(e.element.id,e.element.x,e.element.y,!1,!0)}}C&&!x&&(N.ctrlKey||N.metaKey||n.selectElement(e.element.id,!1)),C=!1,n.setDragging(!1),window.removeEventListener("mousemove",k),window.removeEventListener("mouseup",D),n.setHighlightedGuide(null),n.setHighlightedEdge(null)},M=G(!1),$=G(!1),E=G(0),p=N=>{if(N.stopPropagation(),N.preventDefault(),!o.value)return;M.value=!0,$.value=!1,x=!1,E.value=e.element.style.rotate||0;const X=o.value.getBoundingClientRect(),K=X.left+X.width/2,re=X.top+X.height/2,j=Math.atan2(N.clientY-re,N.clientX-K),_=e.element.style.rotate||0,V=se=>{const Q=(Math.atan2(se.clientY-re,se.clientX-K)-j)*(180/Math.PI);let ee=_+Q;if(ee=ee%360,ee<0&&(ee+=360),$.value=!1,se.shiftKey)ee=Math.round(ee/45)*45,$.value=!0;else if(!se.ctrlKey){const ce=[0,90,180,270,360];for(const J of ce)if(Math.abs(ee-J)<=5){ee=J===360?0:J,$.value=!0;break}}ee=Math.round(ee),ee===360&&(ee=0),E.value=ee,x||(n.snapshot(),x=!0),n.updateElement(e.element.id,{style:{...e.element.style,rotate:ee}},!1)},O=()=>{M.value=!1,window.removeEventListener("mousemove",V),window.removeEventListener("mouseup",O)};window.addEventListener("mousemove",V),window.addEventListener("mouseup",O)},L=N=>{N.stopPropagation(),N.preventDefault();const X=N.clientX,K=N.clientY,re=e.element.width,j=e.element.height;x=!1;const _=O=>{const se=(O.clientX-X)/e.zoom,W=(O.clientY-K)/e.zoom;x||(n.snapshot(),x=!0);let Q=re+se,ee=j+W;if(O.shiftKey){const ve=re/j;Math.abs(Q/re-1)>Math.abs(ee/j-1)?ee=Q/ve:Q=ee*ve}n.updateElement(e.element.id,{width:Math.max(10,Q),height:Math.max(10,ee)},!1)},V=()=>{window.removeEventListener("mousemove",_),window.removeEventListener("mouseup",V)};window.addEventListener("mousemove",_),window.addEventListener("mouseup",V)};return(N,X)=>(f(),w("div",{ref_key:"elementRef",ref:o,class:_e(["element-wrapper absolute select-none",[t.readOnly?"cursor-not-allowed":"group theme-outline-hover",!t.readOnly&&t.element.locked?"cursor-not-allowed":"",!t.readOnly&&!t.element.locked?"cursor-move":""]]),"data-element-id":t.element.id,"data-read-only":t.readOnly?"true":"false","data-repeat-per-page":t.element.repeatPerPage===!0?"true":null,style:Te(i.value),onMousedown:h},[ic(N.$slots,"default"),!t.readOnly&&t.element.locked&&t.isSelected?(f(),w("div",Ch,[ge(l(Br),{class:"w-3 h-3 text-white"})])):he("",!0),!t.readOnly&&t.isSelected&&l(n).selectedElementIds.length<=1&&!t.element.locked?(f(),w(Ie,{key:1},[a("div",{"data-print-exclude":"true",class:"resize-handle absolute bottom-0 right-0 w-3 h-3 bg-blue-600 cursor-se-resize z-50",onMousedown:L},null,32),a("div",{"data-print-exclude":"true",class:"rotate-handle absolute -top-4 -right-5 w-5 h-5 flex items-center justify-center cursor-grab z-50 theme-text theme-text-hover",title:l(r)("common.rotate"),onMousedown:p},[ge(l(kh),{class:"w-3 h-3"}),M.value?(f(),w("div",{key:0,class:_e(["absolute top-6 left-1/2 transform -translate-x-1/2 text-xs px-2 py-1 rounded whitespace-nowrap z-50 pointer-events-none font-sans font-normal not-italic leading-none tracking-normal normal-case",$.value?"theme-bg-strong text-white":"theme-bg-soft text-white"])},b(E.value)+"° ",3)):he("",!0)],40,_h)],64)):he("",!0)],46,Sh))}}),Eh=["data-auto-height"],Th={sections:[{title:"properties.section.content",tab:"properties",fields:[{label:"properties.label.content",type:"textarea",target:"element",key:"content",placeholder:"properties.label.textContentPlaceholder"},{label:"properties.label.variable",type:"field",target:"element",key:"variable",placeholder:"properties.label.selectField"}]},{title:"properties.section.dataBehavior",tab:"properties",fields:[{label:"properties.label.autoHeight",type:"switch",target:"style",key:"autoHeight"}]},{title:"properties.section.typography",tab:"style",fields:[{label:"properties.label.writingMode",type:"select",target:"style",key:"writingMode",options:[{label:"properties.option.horizontal",value:"horizontal-tb"},{label:"properties.option.vertical",value:"vertical-rl"}]},{label:"properties.label.fontSize",type:"number",target:"style",key:"fontSize",min:8,max:96,step:1},{label:"properties.label.color",type:"color",target:"style",key:"color"},{label:"properties.label.textAlign",type:"select",target:"style",key:"textAlign",options:[{label:"properties.option.default",value:""},{label:"properties.option.left",value:"left"},{label:"properties.option.center",value:"center"},{label:"properties.option.right",value:"right"}]},{label:"properties.label.verticalAlign",type:"select",target:"style",key:"verticalAlign",options:[{label:"properties.option.default",value:""},{label:"properties.option.top",value:"top"},{label:"properties.option.middle",value:"middle"},{label:"properties.option.bottom",value:"bottom"}]},{label:"properties.label.fontFamily",type:"select",target:"style",key:"fontFamily",options:[{label:"properties.option.default",value:""},{label:"properties.option.arial",value:"Arial, sans-serif"},{label:"properties.option.timesNewRoman",value:'"Times New Roman", serif'},{label:"properties.option.courierNew",value:'"Courier New", monospace'},{label:"properties.option.simSun",value:"SimSun, serif"},{label:"properties.option.simHei",value:"SimHei, sans-serif"}]},{label:"properties.label.fontWeight",type:"select",target:"style",key:"fontWeight",options:[{label:"properties.option.default",value:""},{label:"properties.option.normal",value:"400"},{label:"properties.option.medium",value:"500"},{label:"properties.option.bold",value:"700"}]}]},{title:"properties.section.border",tab:"style",fields:[{label:"properties.label.borderStyle",type:"select",target:"style",key:"borderStyle",options:[{label:"properties.option.none",value:"none"},{label:"properties.option.solid",value:"solid"},{label:"properties.option.dashed",value:"dashed"},{label:"properties.option.dotted",value:"dotted"}]},{label:"properties.label.borderWidth",type:"number",target:"style",key:"borderWidth",min:0,max:20,step:1},{label:"properties.label.borderColor",type:"color",target:"style",key:"borderColor"}]}]},wd=Oe({__name:"TextElement",props:{element:{}},setup(t){const e=t,r=je(),n=G(!1),o=G(""),d=G(null),s=le(()=>{const x=e.element.variable||"",h=r.variables||{};if(r.isExporting&&x){const k=Ze(x);if(k){const D=We(h,k);if(D!=null)return String(D);const M=We(r.testData,k);if(M!=null)return String(M)}}if(!r.isExporting&&e.element.variable){const k=Ze(e.element.variable);if(k){const D=We(r.testData,k);if(D!=null)return String(D)}}if(e.element.variable){const k=Ze(e.element.variable);return k?`@${k}`:e.element.content}return e.element.content}),i=le(()=>r.isTemplateEditable&&!e.element.locked),c=le(()=>{const x=e.element.style.verticalAlign;return x==="middle"?"center":x==="bottom"?"flex-end":"flex-start"}),u=async x=>{var k,D,M;if(!i.value)return;const h=(k=x.currentTarget)==null?void 0:k.closest(".element-wrapper");(h==null?void 0:h.getAttribute("data-read-only"))!=="true"&&(r.selectedElementId!==e.element.id&&!r.selectedElementIds.includes(e.element.id)||(x.stopPropagation(),o.value=e.element.content||"",n.value=!0,await tt(),(D=d.value)==null||D.focus(),(M=d.value)==null||M.select()))},m=()=>{n.value&&(n.value=!1,o.value!==(e.element.content||"")&&r.updateElement(e.element.id,{content:o.value}))},g=()=>{n.value&&(n.value=!1,o.value=e.element.content||"")},C=x=>{if(x.key==="Escape"){x.preventDefault(),g();return}x.key==="Enter"&&!x.shiftKey&&(x.preventDefault(),m())};return De(()=>r.selectedElementId,x=>{x!==e.element.id&&m()}),(x,h)=>(f(),w("div",{class:"w-full h-full overflow-hidden",onDblclick:u,"data-auto-height":t.element.style.autoHeight?"true":void 0,style:Te({display:"flex",flexDirection:"column",justifyContent:c.value,fontSize:`${t.element.style.fontSize}px`,fontFamily:t.element.style.fontFamily,fontWeight:t.element.style.fontWeight,fontStyle:t.element.style.fontStyle,textAlign:t.element.style.textAlign,textDecoration:t.element.style.textDecoration,color:t.element.style.color,padding:`${t.element.style.padding||0}px`,writingMode:t.element.style.writingMode||"horizontal-tb",whiteSpace:"pre-wrap"})},[n.value?Me((f(),w("textarea",{key:0,ref_key:"editorRef",ref:d,"onUpdate:modelValue":h[0]||(h[0]=k=>o.value=k),class:"w-full h-full resize-none bg-transparent outline-none",style:Te({fontSize:`${t.element.style.fontSize}px`,fontFamily:t.element.style.fontFamily,fontWeight:t.element.style.fontWeight,fontStyle:t.element.style.fontStyle,textAlign:t.element.style.textAlign,color:t.element.style.color,padding:`${t.element.style.padding||0}px`}),onMousedown:h[1]||(h[1]=He(()=>{},["stop"])),onClick:h[2]||(h[2]=He(()=>{},["stop"])),onBlur:m,onKeydown:C},null,36)),[[Ue,o.value]]):(f(),w(Ie,{key:1},[Le(b(s.value),1)],64))],44,Eh))}}),Ah=["src"],$h={key:1,class:"text-gray-400 text-xs"},Ph={sections:[{title:"properties.section.imageSource",tab:"properties",fields:[{label:"properties.label.imageSource",type:"image",target:"element",key:"content"},{label:"properties.label.variable",type:"field",target:"element",key:"variable",placeholder:"properties.label.selectField"}]},{title:"properties.section.border",tab:"style",fields:[{label:"properties.label.borderStyle",type:"select",target:"style",key:"borderStyle",options:[{label:"properties.option.none",value:"none"},{label:"properties.option.solid",value:"solid"},{label:"properties.option.dashed",value:"dashed"},{label:"properties.option.dotted",value:"dotted"}]},{label:"properties.label.borderWidth",type:"number",target:"style",key:"borderWidth",min:0,max:20,step:1},{label:"properties.label.borderColor",type:"color",target:"style",key:"borderColor"}]}]},Ih=Oe({__name:"ImageElement",props:{element:{}},setup(t){const e=t,{t:r}=Ke(),n=je(),o=G(null),d=le(()=>{if(e.element.variable){const u=Ze(e.element.variable);if(n.isExporting){const m=n.variables||{};if(u){const g=We(m,u);if(g!=null)return String(g)}}if(u){const m=We(n.testData,u);if(m!=null)return String(m)}}return e.element.content}),s=()=>!(!n.isTemplateEditable||e.element.locked||n.selectedElementId!==e.element.id&&!n.selectedElementIds.includes(e.element.id)),i=u=>{var g,C;if(!s())return;const m=(g=u.currentTarget)==null?void 0:g.closest(".element-wrapper");(m==null?void 0:m.getAttribute("data-read-only"))!=="true"&&(u.stopPropagation(),(C=o.value)==null||C.click())},c=u=>{var x;const m=u.target,g=(x=m.files)==null?void 0:x[0];if(!g)return;if(g.size>2*1024*1024){Fe.error(r("properties.image.sizeError")),m.value="";return}const C=new FileReader;C.onload=h=>{var D;const k=(D=h.target)==null?void 0:D.result;k&&n.updateElement(e.element.id,{content:k})},C.onerror=()=>{Fe.error(r("properties.image.readError"))},C.readAsDataURL(g),m.value=""};return(u,m)=>(f(),w("div",{class:"w-full h-full overflow-hidden flex items-center justify-center",onDblclick:i},[d.value?(f(),w("img",{key:0,src:d.value,class:"w-full h-full object-contain pointer-events-none",alt:"Element"},null,8,Ah)):(f(),w("span",$h,"No Image")),a("input",{ref_key:"fileInputRef",ref:o,type:"file",accept:"image/*",class:"hidden",onChange:c},null,544)],32))}}),Dh=["data-tfoot-repeat","data-auto-paginate","data-custom-script"],Mh=["onDblclick"],Lh=["onMousedown"],zh={key:0},Rh={class:"p-4 text-center text-sm text-gray-400 dark:text-gray-500 select-none"},Fh=["rowspan","colspan","data-field","onMousedown","onMouseover"],qh={key:0},Bh=["colspan"],Oh={key:2,class:"h-full border-none bg-transparent"},Vh=["colspan"],jh={key:0},Hh=["rowspan","colspan","data-field","data-value","onMousedown","onMouseover","onDblclick"],Nh={class:"text-sm font-semibold text-gray-700"},Uh={class:"flex flex-col gap-1"},Wh={class:"text-xs text-gray-500"},Yh=["placeholder"],Gh={class:"flex flex-col gap-1"},Xh={class:"text-xs text-gray-500"},Kh={value:"",disabled:"",class:"text-gray-400"},Qh=["value"],Jh={class:"flex flex-col gap-1"},Zh={class:"text-xs text-gray-500"},em=["placeholder"],tm={class:"flex flex-col gap-1"},rm={class:"text-xs text-gray-500"},om=["placeholder"],am={class:"flex justify-end gap-2 mt-1"},nm={sections:[{title:"properties.section.dataBehavior",tab:"properties",fields:[{label:"properties.label.autoPaginate",type:"switch",target:"element",key:"autoPaginate"},{label:"properties.label.repeatFooter",type:"switch",target:"element",key:"tfootRepeat"},{label:"properties.label.showFooter",type:"switch",target:"element",key:"showFooter"},{label:"properties.label.dataVariable",type:"field",target:"element",key:"variable",placeholder:"properties.label.selectField",filter:"array"},{label:"properties.label.columnPicker",type:"columnPicker",target:"element"},{label:"properties.label.columnAlias",type:"columnAlias",target:"element"},{label:"properties.label.footerDataVariable",type:"field",target:"element",key:"footerDataVariable",placeholder:"properties.label.selectField",filter:"array"},{label:"properties.label.customScriptVariable",type:"field",target:"element",key:"customScriptVariable",placeholder:"properties.label.selectField",filter:"text"},{label:"properties.label.footerData",type:"code",language:"json",target:"element",key:"footerData",placeholder:"properties.label.footerDataPlaceholder"},{label:"properties.label.customScript",type:"code",language:"javascript",target:"element",key:"customScript",placeholder:"properties.label.customScriptPlaceholder"}]},{title:"properties.section.layoutDimensions",tab:"style",fields:[{label:"properties.label.headerHeight",type:"number",target:"style",key:"headerHeight",min:20,max:200,step:1},{label:"properties.label.rowHeight",type:"number",target:"style",key:"rowHeight",min:20,max:200,step:1},{label:"properties.label.footerHeight",type:"number",target:"style",key:"footerHeight",min:20,max:200,step:1}]},{title:"properties.section.appearance",tab:"style",fields:[{label:"properties.label.backgroundColor",type:"color",target:"style",key:"backgroundColor"},{label:"properties.label.textColor",type:"color",target:"style",key:"color"},{label:"properties.label.fontSize",type:"number",target:"style",key:"fontSize",min:8,max:72,step:1},{label:"properties.label.textAlign",type:"select",target:"style",key:"textAlign",options:[{label:"properties.align.left",value:"left"},{label:"properties.align.center",value:"center"},{label:"properties.align.right",value:"right"}]}]},{title:"properties.section.headerStyle",tab:"style",fields:[{label:"properties.label.background",type:"color",target:"style",key:"headerBackgroundColor"},{label:"properties.label.textColor",type:"color",target:"style",key:"headerColor"},{label:"properties.label.fontSize",type:"number",target:"style",key:"headerFontSize",min:8,max:72,step:1},{label:"properties.label.textAlign",type:"select",target:"style",key:"headerTextAlign",options:[{label:"properties.align.left",value:"left"},{label:"properties.align.center",value:"center"},{label:"properties.align.right",value:"right"}]}]},{title:"properties.section.footerStyle",tab:"style",fields:[{label:"properties.label.background",type:"color",target:"style",key:"footerBackgroundColor"},{label:"properties.label.textColor",type:"color",target:"style",key:"footerColor"},{label:"properties.label.fontSize",type:"number",target:"style",key:"footerFontSize",min:8,max:72,step:1},{label:"properties.label.textAlign",type:"select",target:"style",key:"footerTextAlign",options:[{label:"properties.align.left",value:"left"},{label:"properties.align.center",value:"center"},{label:"properties.align.right",value:"right"}]}]},{title:"properties.section.border",tab:"style",fields:[{label:"properties.label.borderStyle",type:"select",target:"style",key:"borderStyle",options:[{label:"properties.option.none",value:"none"},{label:"properties.option.solid",value:"solid"},{label:"properties.option.dashed",value:"dashed"},{label:"properties.option.dotted",value:"dotted"}]},{label:"properties.label.borderWidth",type:"number",target:"style",key:"borderWidth",min:0,max:20,step:1},{label:"properties.label.borderColor",type:"color",target:"style",key:"borderColor"}]}]},lm=Oe({__name:"TableElement",props:{element:{}},setup(t){const e=t,{t:r}=Ke(),n=je(),o=st("modal-container",G(null));function d(te,ue,z="body"){var ie;return n.tableSelection&&n.tableSelection.elementId!==e.element.id?!1:((ie=n.tableSelection)==null?void 0:ie.cells.some(de=>de.rowIndex===te&&de.colField===ue&&(de.section||"body")===z))??!1}const s=G(null),i=G(null),c=G({header:"",field:"",value:"",variable:""}),u=G({top:0,left:0}),m=G(null),g=async(te,ue)=>{if(n.selectedElementId!==e.element.id||e.element.locked)return;const z=E.value.columns[ue];if(z){if(s.value=ue,i.value=null,c.value={header:z.header,field:z.field,value:"",variable:""},u.value={top:te.clientY+10,left:te.clientX+10},await tt(),m.value){const ie=m.value.getBoundingClientRect(),de=window.innerWidth,fe=window.innerHeight;u.value.left+ie.width>de&&(u.value.left=de-ie.width-20),u.value.top+ie.height>fe&&(u.value.top=fe-ie.height-20)}setTimeout(()=>{window.addEventListener("click",x)},100)}},C=async(te,ue,z)=>{if(n.selectedElementId!==e.element.id||e.element.locked)return;const ie=E.value.footerData[ue];if(!ie)return;const de=ie[z];let fe="",B="";if(de&&typeof de=="object"&&(fe=de.value||"",B=de.field||""),i.value={rowIndex:ue,colField:z},s.value=null,c.value={header:"",field:z,value:fe,variable:B},u.value={top:te.clientY+10,left:te.clientX+10},await tt(),m.value){const oe=m.value.getBoundingClientRect(),pe=window.innerWidth,Ae=window.innerHeight;u.value.left+oe.width>pe&&(u.value.left=pe-oe.width-20),u.value.top+oe.height>Ae&&(u.value.top=Ae-oe.height-20)}setTimeout(()=>{window.addEventListener("click",x)},100)},x=te=>{m.value&&!m.value.contains(te.target)&&h()},h=()=>{s.value=null,i.value=null,window.removeEventListener("click",x)},k=()=>{if(s.value!==null){const te=e.element.columns?[...e.element.columns]:[];if(te.length===0&&E.value.columns.length>0){const ue=JSON.parse(JSON.stringify(E.value.columns));ue[s.value]&&(ue[s.value].header=c.value.header,ue[s.value].field=c.value.field,n.updateElement(e.element.id,{columns:ue})),h();return}s.value<te.length&&(te[s.value]={...te[s.value],header:c.value.header,field:c.value.field},n.updateElement(e.element.id,{columns:te}))}else if(i.value){const{rowIndex:te,colField:ue}=i.value,z=e.element.footerData?JSON.parse(JSON.stringify(e.element.footerData)):[];if(!z[te])return;const ie=z[te],de=ie[ue];de&&typeof de=="object"?(de.value=c.value.value,de.field=c.value.variable):ie[ue]={value:c.value.value,field:c.value.variable},n.updateElement(e.element.id,{footerData:z})}h()},D=G(!1),M=G(null);function $(te){if(!Array.isArray(te)||te.length===0)return[];const ue=te[0];return!ue||typeof ue!="object"?[]:Object.keys(ue).map(z=>({field:z,header:z,width:100}))}const E=le(()=>{let te=[],ue=[],z=Array.isArray(e.element.footerData)?e.element.footerData:[];const ie=n.testData||{},de=n.variables||{};console.log("[DEBUG TableElement] element.variable:",e.element.variable),console.log("[DEBUG TableElement] element.columns:",e.element.columns),console.log("[DEBUG TableElement] testData keys:",Object.keys(ie));const B=(()=>{const Ce=Ze(e.element.variable||"");if(console.log("[DEBUG TableElement] resolveDataVar key:",Ce),!Ce)return;let xe=We(ie,Ce);if(console.log("[DEBUG TableElement] source from testData:",xe),Array.isArray(xe))return console.log("[DEBUG TableElement] Found array in testData"),Se(xe);if(xe&&typeof xe=="object")for(const Ee of Object.keys(xe)){const we=xe[Ee];if(Array.isArray(we)&&we.length>0)return console.log("[DEBUG TableElement] Found array at key:",Ee),Se(we)}if(n.isExporting){if(xe=We(de,Ce),Array.isArray(xe))return Se(xe);if(xe&&typeof xe=="object")for(const Ee of Object.keys(xe)){const we=xe[Ee];if(Array.isArray(we)&&we.length>0)return Se(we)}}if(!xe){const Ee=Ce.startsWith("variables.")?Ce.slice(10):Ce;if(console.log("[DEBUG TableElement] Trying shortKey:",Ee),Ee!==Ce){if(xe=We(ie,Ee),console.log("[DEBUG TableElement] source from shortKey:",xe),Array.isArray(xe))return console.log("[DEBUG TableElement] Found array with shortKey"),Se(xe);if(xe&&typeof xe=="object")for(const we of Object.keys(xe)){const R=xe[we];if(Array.isArray(R)&&R.length>0)return console.log("[DEBUG TableElement] Found array at shortKey:",we),Se(R)}}}console.log("[DEBUG TableElement] resolveDataVar returning undefined")})();if(console.log("[DEBUG TableElement] resolvedVarData:",B),B?(ue=B,Array.isArray(e.element.columns)&&e.element.columns.length>0?te=Se(e.element.columns):te=$(B)):(console.log("[DEBUG TableElement] No resolvedVarData, using fallback"),te=Array.isArray(e.element.columns)?Se(e.element.columns):[],ue=Array.isArray(e.element.data)?Se(e.element.data):[]),console.log("[DEBUG TableElement] Final cols:",te),console.log("[DEBUG TableElement] Final data:",ue),n.isExporting&&e.element.footerDataVariable){const Ce=Ze(e.element.footerDataVariable),xe=Ce?We(de,Ce)??We(ie,Ce):void 0;Array.isArray(xe)&&(z=xe.map((Ee,we)=>{const R=Array.isArray(e.element.footerData)?e.element.footerData[we]:void 0;if(!R)return Se(Ee);const U=Se(Ee);return Object.keys(R).forEach(Z=>{R[Z]&&typeof R[Z]=="object"&&("rowSpan"in R[Z]||"colSpan"in R[Z])&&(U[Z]===void 0?U[Z]={value:"",rowSpan:R[Z].rowSpan,colSpan:R[Z].colSpan}:typeof U[Z]!="object"?U[Z]={value:U[Z],rowSpan:R[Z].rowSpan,colSpan:R[Z].colSpan}:(U[Z].rowSpan=R[Z].rowSpan,U[Z].colSpan=R[Z].colSpan))}),U}))}else if(!n.isExporting&&e.element.footerDataVariable){const Ce=Ze(e.element.footerDataVariable),xe=Ce?We(ie,Ce):void 0;Array.isArray(xe)&&(z=xe.map((Ee,we)=>{const R=Array.isArray(e.element.footerData)?e.element.footerData[we]:void 0;if(!R)return Se(Ee);const U=Se(Ee);return Object.keys(R).forEach(Z=>{R[Z]&&typeof R[Z]=="object"&&("rowSpan"in R[Z]||"colSpan"in R[Z])&&(U[Z]===void 0?U[Z]={value:"",rowSpan:R[Z].rowSpan,colSpan:R[Z].colSpan}:typeof U[Z]!="object"?U[Z]={value:U[Z],rowSpan:R[Z].rowSpan,colSpan:R[Z].colSpan}:(U[Z].rowSpan=R[Z].rowSpan,U[Z].colSpan=R[Z].colSpan))}),U}))}let oe=e.element.customScript;if(n.isExporting&&e.element.customScriptVariable){const Ce=Ze(e.element.customScriptVariable),xe=Ce?We(de,Ce)??We(ie,Ce):void 0;typeof xe=="string"&&(oe=xe)}else if(!n.isExporting&&e.element.customScriptVariable){const Ce=Ze(e.element.customScriptVariable),xe=Ce?We(ie,Ce):void 0;typeof xe=="string"&&(oe=xe)}if(oe)try{const xe=new Function("data","footerData","columns","type",oe)(Se(ue),Se(z),Se(te),"global");if(xe&&(xe.data&&(ue=xe.data),xe.footerData&&(z=xe.footerData),xe.columns))return{...xe,columns:xe.columns}}catch(Ce){console.error("Custom script error",Ce)}const pe=Se(z),Ae=te.map(Ce=>Ce.field);return pe.forEach(Ce=>{Object.keys(Ce).forEach(xe=>{const Ee=Ce[xe];if(Ee&&typeof Ee=="object"&&Ee.field&&Ae.includes(Ee.field)){const we=Ee.field,R=ue.reduce((U,Z)=>{const y=parseFloat(Z[we]);return U+(isNaN(y)?0:y)},0);Ee.result=R}})}),{columns:te,data:ue,footerData:pe,scriptContent:oe}}),p=le(()=>{const te=E.value.data[0];return!te||typeof te!="object"?[]:Object.keys(te).map(ue=>({value:ue,label:ue}))}),L=le(()=>({color:e.element.style.color||"#000000",fontFamily:e.element.style.fontFamily,borderColor:e.element.style.borderColor||"#000",borderWidth:(e.element.style.borderWidth||1)+"px",borderStyle:e.element.style.borderStyle||"solid"})),N=(te,ue)=>{if(!te)return"";const z=te[ue];if(z&&typeof z=="object"){const ie=z.value||"",de=z.printValue!==void 0?z.printValue:z.result!==void 0?z.result:"";return ie+de}return z},X=(te,ue)=>{if(!te)return"";const z=te[ue];if(z&&typeof z=="object"){const ie=z.value||"",de=z.result!==void 0?z.result:z.printValue!==void 0?z.printValue:"";return ie+de}return z},K=(te,ue)=>{const z=te[ue];return z&&typeof z=="object"&&"rowSpan"in z?z.rowSpan:1},re=(te,ue)=>{const z=te[ue];return z&&typeof z=="object"&&"colSpan"in z?z.colSpan:1},j=(te,ue)=>{const z=te[ue];return!(z&&typeof z=="object"&&(z.rowSpan===0||z.colSpan===0))},_=(te,ue)=>{const z=te[ue];return z&&typeof z=="object"&&z.style?z.style:{}},V=G({}),O=G(null),se=G(0),W=G(0),Q=(te,ue)=>{if(e.element.locked)return;te.preventDefault(),te.stopPropagation(),O.value=ue,se.value=te.clientX;const z=E.value.columns[ue];W.value=z.width||100,window.addEventListener("mousemove",ee),window.addEventListener("mouseup",ve)},ee=te=>{if(O.value===null)return;const ue=te.clientX-se.value,z=Math.max(20,W.value+ue),ie=E.value.columns[O.value];V.value[ie.field]=z},ve=()=>{if(O.value!==null){const te=E.value.columns[O.value],ue=V.value[te.field];if(ue){const z=[...e.element.columns||[]];z[O.value]&&(z[O.value]={...z[O.value],width:ue},n.updateElement(e.element.id,{columns:z}))}}O.value=null,V.value={},window.removeEventListener("mousemove",ee),window.removeEventListener("mouseup",ve)},ce=(te,ue,z,ie="body")=>{n.selectedElementId===e.element.id&&(te.stopPropagation(),D.value=!0,M.value={rowIndex:ue,colField:z,section:ie},n.setTableSelection(e.element.id,{rowIndex:ue,colField:z,section:ie},!1))},J=(te,ue,z="body")=>{if(!D.value||!M.value||M.value.section!==z)return;const ie=M.value.rowIndex,de=te,fe=E.value.columns.findIndex(Ee=>Ee.field===M.value.colField),B=E.value.columns.findIndex(Ee=>Ee.field===ue);if(fe===-1||B===-1)return;const oe=Math.min(ie,de),pe=Math.max(ie,de),Ae=Math.min(fe,B),Ce=Math.max(fe,B),xe=[];for(let Ee=oe;Ee<=pe;Ee++)for(let we=Ae;we<=Ce;we++)xe.push({rowIndex:Ee,colField:E.value.columns[we].field,section:z});n.setTableSelectionCells(e.element.id,xe)},ne=()=>{D.value=!1,M.value=null};return ot(()=>{window.addEventListener("mouseup",ne)}),at(()=>{window.removeEventListener("mouseup",ne)}),(te,ue)=>(f(),w("div",{class:"w-full h-full overflow-hidden",style:Te({backgroundColor:t.element.style.backgroundColor||"transparent"})},[a("table",{class:_e(["w-full border-collapse",{"h-full":!l(n).isExporting}]),"data-tfoot-repeat":t.element.tfootRepeat,"data-auto-paginate":t.element.autoPaginate,"data-custom-script":E.value.scriptContent||t.element.customScript},[a("thead",null,[a("tr",null,[(f(!0),w(Ie,null,qe(E.value.columns,(z,ie)=>(f(),w("th",{key:z.field,class:"p-1 font-bold text-sm relative group select-none",style:Te({...L.value,width:`${V.value[z.field]||z.width}px`,height:t.element.style.headerHeight?`${t.element.style.headerHeight}px`:void 0,backgroundColor:t.element.style.headerBackgroundColor||"#f3f4f6",color:t.element.style.headerColor||"#000000",fontSize:t.element.style.headerFontSize?`${t.element.style.headerFontSize}px`:void 0,textAlign:t.element.style.headerTextAlign||"left",cursor:l(n).selectedElementId===t.element.id?"pointer":"default"}),onDblclick:de=>g(de,ie)},[Le(b(z.header)+" ",1),l(n).selectedElementId===t.element.id&&ie<E.value.columns.length-1&&!t.element.locked?(f(),w("div",{key:0,class:_e(["absolute -right-1 top-0 bottom-0 w-2 cursor-col-resize hover:bg-blue-400 opacity-0 hover:opacity-100 z-10 transition-opacity",{"bg-blue-400 opacity-100":O.value===ie}]),onMousedown:de=>Q(de,ie),onClick:ue[0]||(ue[0]=He(()=>{},["stop"]))},null,42,Lh)):he("",!0)],44,Mh))),128))])]),a("tbody",null,[E.value.columns.length===0?(f(),w("tr",zh,[a("td",Rh,b(l(r)("properties.label.selectDataField")),1)])):(f(),w(Ie,{key:1},[(f(!0),w(Ie,null,qe(l(n).isExporting?E.value.data:E.value.data.slice(0,5),(z,ie)=>(f(),w("tr",{key:ie},[(f(!0),w(Ie,null,qe(E.value.columns,de=>(f(),w(Ie,{key:de.field},[j(z,de.field)?(f(),w("td",{key:0,class:_e(["p-1 select-none",{"bg-blue-100 ring-1 ring-blue-400":d(ie,de.field)}]),style:Te({...L.value,..._(z,de.field),height:t.element.style.rowHeight?`${t.element.style.rowHeight}px`:void 0,textAlign:t.element.style.textAlign||"left",fontSize:t.element.style.fontSize?`${t.element.style.fontSize}px`:void 0}),rowspan:K(z,de.field),colspan:re(z,de.field),"data-field":de.field,onMousedown:fe=>ce(fe,ie,de.field),onMouseover:fe=>J(ie,de.field)},b(X(z,de.field)),47,Fh)):he("",!0)],64))),128))]))),128)),!l(n).isExporting&&E.value.data.length>5?(f(),w("tr",qh,[a("td",{colspan:E.value.columns.length,class:"p-1 text-center text-gray-500 select-none",style:Te({...L.value,height:t.element.style.rowHeight?`${t.element.style.rowHeight}px`:void 0})}," ... ",12,Bh)])):he("",!0)],64)),l(n).isExporting?he("",!0):(f(),w("tr",Oh,[a("td",{colspan:E.value.columns.length||1,class:"border-none p-0"},null,8,Vh)]))]),t.element.showFooter?(f(),w("tfoot",jh,[(f(!0),w(Ie,null,qe(E.value.footerData,(z,ie)=>(f(),w("tr",{key:ie},[(f(!0),w(Ie,null,qe(E.value.columns,de=>(f(),w(Ie,{key:de.field},[j(z,de.field)?(f(),w("td",{key:0,class:_e(["p-1 text-sm font-bold select-none",{"!bg-blue-100 ring-1 ring-blue-400":d(ie,de.field,"footer")}]),style:Te({...L.value,..._(z,de.field),height:t.element.style.footerHeight?`${t.element.style.footerHeight}px`:void 0,backgroundColor:t.element.style.footerBackgroundColor||"#f9fafb",color:t.element.style.footerColor||"#000000",fontSize:t.element.style.footerFontSize?`${t.element.style.footerFontSize}px`:void 0,textAlign:t.element.style.footerTextAlign||"left",cursor:l(n).selectedElementId===t.element.id?"pointer":"default"}),rowspan:K(z,de.field),colspan:re(z,de.field),"data-field":de.field,"data-value":N(z,de.field),onMousedown:fe=>ce(fe,ie,de.field,"footer"),onMouseover:fe=>J(ie,de.field,"footer"),onDblclick:fe=>C(fe,ie,de.field)},b(X(z,de.field)),47,Hh)):he("",!0)],64))),128))]))),128))])):he("",!0)],10,Dh),(f(),Be(Et,{to:l(o)||"body"},[s.value!==null||i.value?(f(),w("div",{key:0,ref_key:"editFormRef",ref:m,class:"fixed z-[9999] bg-white shadow-xl border border-gray-200 rounded-lg p-4 w-64 flex flex-col gap-3 pointer-events-auto",style:Te({top:`${u.value.top}px`,left:`${u.value.left}px`}),onClick:ue[5]||(ue[5]=He(()=>{},["stop"]))},[a("h4",Nh,b(i.value?l(r)("properties.label.editCell"):l(r)("properties.label.editColumn")),1),s.value!==null?(f(),w(Ie,{key:0},[a("div",Uh,[a("label",Wh,b(l(r)("properties.label.headerText")),1),Me(a("input",{"onUpdate:modelValue":ue[1]||(ue[1]=z=>c.value.header=z),class:"border border-gray-300 rounded px-2 py-1 text-sm focus:border-blue-500 focus:outline-none",placeholder:l(r)("properties.label.headerNamePlaceholder"),onKeydown:_t(k,["enter"]),autofocus:""},null,40,Yh),[[Ue,c.value.header]])]),a("div",Gh,[a("label",Xh,b(l(r)("properties.label.fieldKey")),1),Me(a("select",{"onUpdate:modelValue":ue[2]||(ue[2]=z=>c.value.field=z),class:"border border-gray-300 rounded px-2 py-1 text-sm focus:border-blue-500 focus:outline-none bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200"},[a("option",Kh,b(l(r)("properties.label.selectField")),1),(f(!0),w(Ie,null,qe(p.value,z=>(f(),w("option",{key:z.value,value:z.value,class:"dark:bg-gray-800 dark:text-gray-200"},b(z.label),9,Qh))),128))],512),[[yt,c.value.field]])])],64)):he("",!0),i.value?(f(),w(Ie,{key:1},[a("div",Jh,[a("label",Zh,b(l(r)("properties.label.content")),1),Me(a("input",{"onUpdate:modelValue":ue[3]||(ue[3]=z=>c.value.value=z),class:"border border-gray-300 rounded px-2 py-1 text-sm focus:border-blue-500 focus:outline-none",placeholder:l(r)("properties.label.displayTextPlaceholder"),onKeydown:_t(k,["enter"]),autofocus:""},null,40,em),[[Ue,c.value.value]])]),a("div",tm,[a("label",rm,b(l(r)("properties.label.variableField")),1),Me(a("input",{"onUpdate:modelValue":ue[4]||(ue[4]=z=>c.value.variable=z),class:"border border-gray-300 rounded px-2 py-1 text-sm focus:border-blue-500 focus:outline-none",placeholder:l(r)("properties.label.dataFieldPlaceholder"),onKeydown:_t(k,["enter"])},null,40,om),[[Ue,c.value.variable]])])],64)):he("",!0),a("div",am,[a("button",{onClick:h,class:"px-3 py-1 text-xs text-gray-600 hover:bg-gray-100 rounded"},b(l(r)("common.cancel")),1),a("button",{onClick:k,class:"px-3 py-1 text-xs bg-blue-600 text-white hover:bg-blue-700 rounded"},b(l(r)("common.save")),1)])],4)):he("",!0)],8,["to"]))],4))}}),sm={class:"page-number-text"},im={sections:[{title:"properties.section.labelContent",tab:"properties",fields:[{label:"properties.label.labelText",type:"text",target:"element",key:"labelText",placeholder:"properties.label.labelTextPlaceholder"},{label:"properties.label.labelPosition",type:"select",target:"element",key:"labelPosition",options:[{label:"properties.option.before",value:"before"},{label:"properties.option.after",value:"after"}]},{label:"properties.label.pageFormat",type:"select",target:"element",key:"format",options:[{label:"properties.option.numberOnly",value:"1"},{label:"properties.option.page1",value:"Page 1"},{label:"properties.option.oneTotal",value:"1/Total"}]}]},{title:"properties.section.paginationTypography",tab:"style",fields:[{label:"properties.label.fontSize",type:"number",target:"style",key:"fontSize",min:8,max:96,step:1},{label:"properties.label.color",type:"color",target:"style",key:"color"},{label:"properties.label.textAlign",type:"select",target:"style",key:"textAlign",options:[{label:"properties.option.default",value:""},{label:"properties.option.left",value:"left"},{label:"properties.option.center",value:"center"},{label:"properties.option.right",value:"right"}]},{label:"properties.label.fontFamily",type:"select",target:"style",key:"fontFamily",options:[{label:"properties.option.default",value:""},{label:"properties.option.arial",value:"Arial, sans-serif"},{label:"properties.option.timesNewRoman",value:'"Times New Roman", serif'},{label:"properties.option.courierNew",value:'"Courier New", monospace'},{label:"properties.option.simSun",value:"SimSun, serif"},{label:"properties.option.simHei",value:"SimHei, sans-serif"}]},{label:"properties.label.fontWeight",type:"select",target:"style",key:"fontWeight",options:[{label:"properties.option.default",value:""},{label:"properties.option.normal",value:"400"},{label:"properties.option.medium",value:"500"},{label:"properties.option.bold",value:"700"}]}]},{title:"properties.section.labelStyle",tab:"style",fields:[{label:"properties.label.labelFontSize",type:"number",target:"element",key:"labelFontSize",min:8,max:96,step:1},{label:"properties.label.labelColor",type:"color",target:"element",key:"labelColor"},{label:"properties.label.labelFontFamily",type:"select",target:"element",key:"labelFontFamily",options:[{label:"properties.option.default",value:""},{label:"properties.option.arial",value:"Arial, sans-serif"},{label:"properties.option.timesNewRoman",value:'"Times New Roman", serif'},{label:"properties.option.courierNew",value:'"Courier New", monospace'},{label:"properties.option.simSun",value:"SimSun, serif"},{label:"properties.option.simHei",value:"SimHei, sans-serif"}]},{label:"properties.label.labelFontWeight",type:"select",target:"element",key:"labelFontWeight",options:[{label:"properties.option.default",value:""},{label:"properties.option.normal",value:"400"},{label:"properties.option.medium",value:"500"},{label:"properties.option.bold",value:"700"}]},{label:"properties.label.labelBackgroundColor",type:"color",target:"element",key:"labelBackgroundColor"},{label:"properties.label.labelBorderStyle",type:"select",target:"element",key:"labelBorderStyle",options:[{label:"properties.option.none",value:""},{label:"properties.option.solid",value:"solid"},{label:"properties.option.dashed",value:"dashed"},{label:"properties.option.dotted",value:"dotted"}]},{label:"properties.label.labelBorderWidth",type:"number",target:"element",key:"labelBorderWidth",min:0,max:20,step:1},{label:"properties.label.labelBorderColor",type:"color",target:"element",key:"labelBorderColor"}]},{title:"properties.section.frameBorder",tab:"style",fields:[{label:"properties.label.borderStyle",type:"select",target:"style",key:"borderStyle",options:[{label:"properties.option.none",value:"none"},{label:"properties.option.solid",value:"solid"},{label:"properties.option.dashed",value:"dashed"},{label:"properties.option.dotted",value:"dotted"}]},{label:"properties.label.borderWidth",type:"number",target:"style",key:"borderWidth",min:0,max:20,step:1},{label:"properties.label.borderColor",type:"color",target:"style",key:"borderColor"}]}]},dm=Oe({__name:"PageNumberElement",props:{element:{},pageIndex:{},totalPages:{}},setup(t){const e=t,{t:r}=Ke(),n=le(()=>{const o=e.pageIndex+1,d=e.totalPages||1;switch(e.element.format||"1/Total"){case"1":return`${o}`;case"Page 1":return r("properties.option.page1").replace("1",o.toString());case"1/Total":return`${o}/${d}`;default:return`${o}/${d}`}});return(o,d)=>(f(),w("div",{class:"w-full h-full overflow-hidden","data-print-type":"page-number",style:Te({fontSize:`${t.element.style.fontSize}px`,fontFamily:t.element.style.fontFamily,fontWeight:t.element.style.fontWeight,fontStyle:t.element.style.fontStyle,textAlign:t.element.style.textAlign,color:t.element.style.color,padding:`${t.element.style.padding||0}px`})},[t.element.labelText&&t.element.labelPosition!=="after"?(f(),w("span",{key:0,style:Te({fontSize:t.element.labelFontSize?`${t.element.labelFontSize}px`:void 0,fontFamily:t.element.labelFontFamily||void 0,fontWeight:t.element.labelFontWeight||void 0,color:t.element.labelColor||void 0,backgroundColor:t.element.labelBackgroundColor||"transparent",borderStyle:t.element.labelBorderStyle||"none",borderWidth:`${t.element.labelBorderWidth||0}px`,borderColor:t.element.labelBorderColor||"transparent",marginRight:"4px",padding:"0 4px"})},b(t.element.labelText),5)):he("",!0),a("span",sm,b(n.value),1),t.element.labelText&&t.element.labelPosition==="after"?(f(),w("span",{key:1,style:Te({fontSize:t.element.labelFontSize?`${t.element.labelFontSize}px`:void 0,fontFamily:t.element.labelFontFamily||void 0,fontWeight:t.element.labelFontWeight||void 0,color:t.element.labelColor||void 0,backgroundColor:t.element.labelBackgroundColor||"transparent",borderStyle:t.element.labelBorderStyle||"none",borderWidth:`${t.element.labelBorderWidth||0}px`,borderColor:t.element.labelBorderColor||"transparent",marginLeft:"4px",padding:"0 4px"})},b(t.element.labelText),5)):he("",!0)],4))}}),cm={class:"w-full h-full flex items-center justify-center overflow-hidden"},um={sections:[{title:"properties.section.content",tab:"properties",fields:[{label:"properties.label.content",type:"text",target:"element",key:"content",placeholder:"properties.label.barcodeContentPlaceholder"},{label:"properties.label.variable",type:"field",target:"element",key:"variable",placeholder:"properties.label.selectField"}]},{title:"properties.section.barcodeSettings",tab:"style",fields:[{label:"properties.label.format",type:"select",target:"style",key:"barcodeFormat",options:[{label:"properties.option.code128",value:"CODE128"},{label:"properties.option.ean13",value:"EAN13"},{label:"properties.option.upc",value:"UPC"},{label:"properties.option.code39",value:"CODE39"},{label:"properties.option.itf14",value:"ITF14"},{label:"properties.option.msi",value:"MSI"},{label:"properties.option.pharmacode",value:"pharmacode"}]},{label:"properties.label.showText",type:"select",target:"style",key:"showText",options:[{label:"properties.option.yes",value:!0},{label:"properties.option.no",value:!1}]},{label:"properties.label.color",type:"color",target:"style",key:"color"},{label:"properties.label.lineWidth",type:"number",target:"style",key:"barcodeWidth",placeholder:"2"},{label:"properties.label.barcodeHeight",type:"number",target:"style",key:"barcodeHeight",placeholder:"40"},{label:"properties.label.margin",type:"number",target:"style",key:"margin",placeholder:"0"},{label:"properties.label.fontSize",type:"number",target:"style",key:"fontSize",placeholder:"20"},{label:"properties.label.textPosition",type:"select",target:"style",key:"textPosition",options:[{label:"properties.option.bottom",value:"bottom"},{label:"properties.option.top",value:"top"}]},{label:"properties.label.textAlign",type:"select",target:"style",key:"textAlign",options:[{label:"properties.option.left",value:"left"},{label:"properties.option.center",value:"center"},{label:"properties.option.right",value:"right"}]}]}]},pm=Oe({__name:"BarcodeElement",props:{element:{}},setup(t){const e=t,r=je(),n=st("registerRenderTask",null),o=G(null),d=le(()=>{const i=e.element.variable||"",c=r.variables||{};if(r.isExporting&&i){const u=Ze(i);if(u){const m=We(c,u);if(m!=null)return String(m);const g=We(r.testData,u);if(g!=null)return String(g)}}if(!r.isExporting&&e.element.variable){const u=Ze(e.element.variable);if(u){const m=We(r.testData,u);if(m!=null)return String(m)}}return e.element.variable||e.element.content||"12345678"}),s=async()=>{if(o.value)try{const i=await gt(()=>import("./JsBarcode-BOwNyIpk.js").then(g=>g.J),__vite__mapDeps([0,1,2])),c=(i==null?void 0:i.default)||i,u=d.value,m=e.element.style;c(o.value,u,{format:m.barcodeFormat||"CODE128",lineColor:m.color||"#000000",width:Number(m.barcodeWidth)||2,height:Number(m.barcodeHeight)||40,displayValue:m.showText!==!1&&m.showText!=="false",fontOptions:m.fontOptions||"",font:m.font||"monospace",textAlign:m.textAlign||"center",textPosition:m.textPosition||"bottom",textMargin:Number(m.textMargin)||2,fontSize:Number(m.fontSize)||20,background:"transparent",margin:Number(m.margin)||0})}catch(i){console.error("Barcode render error",i)}};return ot(()=>{const i=tt().then(s);n&&n(i)}),De(()=>[e.element.content,e.element.variable,e.element.style,r.isExporting,r.testData,r.variables],()=>{const i=tt().then(s);n&&n(i)},{deep:!0}),(i,c)=>(f(),w("div",cm,[a("img",{ref_key:"barcodeRef",ref:o,class:"w-full h-full object-contain pointer-events-none"},null,512)]))}}),gm={class:"w-full h-full flex items-center justify-center overflow-hidden"},hm=["src"],mm={sections:[{title:"properties.section.content",tab:"properties",fields:[{label:"properties.label.content",type:"text",target:"element",key:"content",placeholder:"properties.label.qrContentPlaceholder"},{label:"properties.label.variable",type:"field",target:"element",key:"variable",placeholder:"properties.label.selectField"}]},{title:"properties.section.qrSettings",tab:"style",fields:[{label:"properties.label.errorCorrection",type:"select",target:"style",key:"qrErrorCorrection",options:[{label:"properties.option.eccLow",value:"L"},{label:"properties.option.eccMedium",value:"M"},{label:"properties.option.eccQuartile",value:"Q"},{label:"properties.option.eccHigh",value:"H"}]},{label:"properties.label.color",type:"color",target:"style",key:"color"}]}]},bm=Oe({__name:"QRCodeElement",props:{element:{}},setup(t){const e=t,r=je(),n=st("registerRenderTask",null),o=G(""),d=le(()=>{const i=e.element.variable||"",c=r.variables||{};if(r.isExporting&&i){const u=Ze(i);if(u){const m=We(c,u);if(m!=null)return String(m);const g=We(r.testData,u);if(g!=null)return String(g)}}if(!r.isExporting&&e.element.variable){const u=Ze(e.element.variable);if(u){const m=We(r.testData,u);if(m!=null)return String(m)}}return e.element.variable||e.element.content||"https://example.com"}),s=async()=>{try{const i=await gt(()=>import("./browser-CR_q2Gy7.js").then(m=>m.b),__vite__mapDeps([3,1,2])),c=(i==null?void 0:i.default)||i,u=d.value;o.value=await c.toDataURL(u,{margin:0,color:{dark:e.element.style.color||"#000000",light:"#00000000"},errorCorrectionLevel:e.element.style.qrErrorCorrection||"M"})}catch(i){console.error("QR render error",i)}};return ot(()=>{const i=tt().then(s);n&&n(i)}),De(()=>[e.element.content,e.element.variable,e.element.style,r.isExporting,r.testData,r.variables],()=>{const i=tt().then(s);n&&n(i)},{deep:!0}),(i,c)=>(f(),w("div",gm,[o.value?(f(),w("img",{key:0,src:o.value,class:"w-full h-full object-contain pointer-events-none",draggable:"false"},null,8,hm)):he("",!0)]))}}),fm={class:"w-full h-full flex items-center justify-center"},vm={sections:[{title:"properties.section.lineStyle",tab:"style",fields:[{label:"properties.label.color",type:"color",target:"style",key:"borderColor",defaultValue:"#000000"},{label:"properties.label.thickness",type:"number",target:"style",key:"borderWidth",min:1,max:100,step:1,defaultValue:1},{label:"properties.label.borderStyle",type:"select",target:"style",key:"borderStyle",defaultValue:"solid",options:[{label:"properties.option.solid",value:"solid"},{label:"properties.option.dashed",value:"dashed"},{label:"properties.option.dotted",value:"dotted"}]}]}]},ym=Oe({__name:"LineElement",props:{element:{}},setup(t){return(e,r)=>(f(),w("div",fm,[a("div",{class:"w-full",style:Te({borderTopWidth:`${t.element.style.borderWidth||1}px`,borderTopStyle:t.element.style.borderStyle||"solid",borderTopColor:t.element.style.borderColor||"#000000"})},null,4)]))}}),xm={sections:[{title:"properties.section.appearance",tab:"style",fields:[{label:"properties.label.background",type:"color",target:"style",key:"backgroundColor",defaultValue:"transparent"},{label:"properties.label.borderColor",type:"color",target:"style",key:"borderColor",defaultValue:"#000000"},{label:"properties.label.borderWidth",type:"number",target:"style",key:"borderWidth",min:0,max:100,defaultValue:1},{label:"properties.label.borderStyle",type:"select",target:"style",key:"borderStyle",defaultValue:"solid",options:[{label:"properties.option.none",value:"none"},{label:"properties.option.solid",value:"solid"},{label:"properties.option.dashed",value:"dashed"},{label:"properties.option.dotted",value:"dotted"}]},{label:"properties.label.cornerRadius",type:"number",target:"style",key:"borderRadius",min:0,max:1e3}]}]},wm=Oe({__name:"RectElement",props:{element:{}},setup(t){return(e,r)=>(f(),w("div",{class:"w-full h-full",style:Te({backgroundColor:t.element.style.backgroundColor||"transparent",borderWidth:`${t.element.style.borderWidth||1}px`,borderStyle:t.element.style.borderStyle||"solid",borderColor:t.element.style.borderColor||"#000000",borderRadius:`${t.element.style.borderRadius||0}px`})},null,4))}}),km={sections:[{title:"properties.section.appearance",tab:"style",fields:[{label:"properties.label.background",type:"color",target:"style",key:"backgroundColor",defaultValue:"transparent"},{label:"properties.label.borderColor",type:"color",target:"style",key:"borderColor",defaultValue:"#000000"},{label:"properties.label.borderWidth",type:"number",target:"style",key:"borderWidth",min:0,max:100,defaultValue:1},{label:"properties.label.borderStyle",type:"select",target:"style",key:"borderStyle",defaultValue:"solid",options:[{label:"properties.option.none",value:"none"},{label:"properties.option.solid",value:"solid"},{label:"properties.option.dashed",value:"dashed"},{label:"properties.option.dotted",value:"dotted"}]}]}]},Sm=Oe({__name:"CircleElement",props:{element:{}},setup(t){return(e,r)=>(f(),w("div",{class:"w-full h-full rounded-full",style:Te({backgroundColor:t.element.style.backgroundColor||"transparent",borderWidth:`${t.element.style.borderWidth||1}px`,borderStyle:t.element.style.borderStyle||"solid",borderColor:t.element.style.borderColor||"#000000"})},null,4))}}),Cm={sections:[{title:"properties.section.dataSource",tab:"properties",fields:[{label:"properties.label.chartDataSource",type:"chartDataSelect",target:"element",key:"chartDataVariable",placeholder:"properties.label.chartDataSourcePlaceholder"}]},{title:"properties.section.content",tab:"properties",fields:[{label:"properties.label.chartType",type:"select",target:"element",key:"chartType",defaultValue:"bar",options:[{label:"properties.option.chartBar",value:"bar"},{label:"properties.option.chartLine",value:"line"},{label:"properties.option.chartArea",value:"area"},{label:"properties.option.chartPie",value:"pie"},{label:"properties.option.chartDoughnut",value:"doughnut"}]},{label:"properties.label.chartXField",type:"chartFieldSelect",target:"element",key:"chartXField",placeholder:"properties.label.chartXFieldPlaceholder",condition:{field:"chartType",values:["bar","line","area"]}},{label:"properties.label.chartYField",type:"chartFieldSelect",target:"element",key:"chartYField",placeholder:"properties.label.chartYFieldPlaceholder",condition:{field:"chartType",values:["bar","line","area"]}},{label:"properties.label.chartNameField",type:"chartFieldSelect",target:"element",key:"chartNameField",placeholder:"properties.label.chartNameFieldPlaceholder",condition:{field:"chartType",values:["pie","doughnut"]}},{label:"properties.label.chartValueField",type:"chartFieldSelect",target:"element",key:"chartValueField",placeholder:"properties.label.chartValueFieldPlaceholder",condition:{field:"chartType",values:["pie","doughnut"]}}]},{title:"properties.section.chartTitleStyle",tab:"style",fields:[{label:"properties.label.chartTitle",type:"text",target:"element",key:"chartTitle",placeholder:"properties.label.chartTitlePlaceholder"},{label:"properties.label.chartTitleFontSize",type:"number",target:"element",key:"chartTitleFontSize",min:10,max:32,step:1,defaultValue:14},{label:"properties.label.chartTitleColor",type:"color",target:"element",key:"chartTitleColor"},{label:"properties.label.chartTitleFontWeight",type:"select",target:"element",key:"chartTitleFontWeight",options:[{label:"properties.option.normal",value:"normal"},{label:"properties.option.bold",value:"bold"}]}]},{title:"properties.section.chartLegend",tab:"style",fields:[{label:"properties.label.chartShowLegend",type:"switch",target:"element",key:"chartShowLegend",defaultValue:!0},{label:"properties.label.chartLegendPosition",type:"select",target:"element",key:"chartLegendPosition",options:[{label:"properties.option.top",value:"top"},{label:"properties.option.bottom",value:"bottom"},{label:"properties.option.left",value:"left"},{label:"properties.option.right",value:"right"}]},{label:"properties.label.chartLegendFontSize",type:"number",target:"element",key:"chartLegendFontSize",min:8,max:20,step:1,defaultValue:11},{label:"properties.label.chartLegendColor",type:"color",target:"element",key:"chartLegendColor"}]},{title:"properties.section.chartAxis",tab:"style",fields:[{label:"properties.label.chartXAxisTitle",type:"text",target:"element",key:"chartXAxisTitle",placeholder:"properties.label.chartXAxisTitlePlaceholder"},{label:"properties.label.chartYAxisTitle",type:"text",target:"element",key:"chartYAxisTitle",placeholder:"properties.label.chartYAxisTitlePlaceholder"},{label:"properties.label.chartXAxisFontSize",type:"number",target:"element",key:"chartXAxisFontSize",min:8,max:20,step:1,defaultValue:10},{label:"properties.label.chartYAxisFontSize",type:"number",target:"element",key:"chartYAxisFontSize",min:8,max:20,step:1,defaultValue:10},{label:"properties.label.chartXAxisColor",type:"color",target:"element",key:"chartXAxisColor"},{label:"properties.label.chartYAxisColor",type:"color",target:"element",key:"chartYAxisColor"},{label:"properties.label.chartShowGrid",type:"switch",target:"element",key:"chartShowGrid",defaultValue:!0},{label:"properties.label.chartGridColor",type:"color",target:"element",key:"chartGridColor"}]},{title:"properties.section.chartBarStyle",tab:"style",condition:{field:"chartType",values:["bar"]},fields:[{label:"properties.label.chartBarWidth",type:"number",target:"element",key:"chartBarWidth",min:10,max:100,step:5,defaultValue:40},{label:"properties.label.chartBarColor",type:"color",target:"element",key:"chartBarColor"}]},{title:"properties.section.chartLineStyle",tab:"style",condition:{field:"chartType",values:["line","area"]},fields:[{label:"properties.label.chartLineSmooth",type:"switch",target:"element",key:"chartLineSmooth",defaultValue:!0},{label:"properties.label.chartLineWidth",type:"number",target:"element",key:"chartLineWidth",min:1,max:10,step:1,defaultValue:2},{label:"properties.label.chartLineColor",type:"color",target:"element",key:"chartLineColor"}]},{title:"properties.section.chartDataLabel",tab:"style",condition:{field:"chartType",values:["bar","line","area"]},fields:[{label:"properties.label.chartShowDataLabel",type:"switch",target:"element",key:"chartShowDataLabel",defaultValue:!1}]},{title:"properties.section.chartPieStyle",tab:"style",condition:{field:"chartType",values:["pie","doughnut"]},fields:[{label:"properties.label.chartPieRadius",type:"number",target:"element",key:"chartPieRadius",min:30,max:100,step:5,defaultValue:70,condition:{field:"chartType",values:["pie"]}},{label:"properties.label.chartDoughnutInnerRadius",type:"number",target:"element",key:"chartDoughnutInnerRadius",min:10,max:60,step:5,defaultValue:40,condition:{field:"chartType",values:["doughnut"]}},{label:"properties.label.chartDoughnutOuterRadius",type:"number",target:"element",key:"chartDoughnutOuterRadius",min:40,max:100,step:5,defaultValue:70,condition:{field:"chartType",values:["doughnut"]}}]},{title:"properties.section.advanced",tab:"style",fields:[{label:"properties.label.chartShowTooltip",type:"switch",target:"element",key:"chartShowTooltip",defaultValue:!0}]}]},_m=Oe({__name:"ChartElement",props:{element:{}},setup(t){const e=t,r=je(),n=G(null),o=G(!1);let d=null,s=null;const i=le(()=>e.element.chartType||"bar"),c=le(()=>{const E=e.element.chartColors;return E&&E.length>0?E:["#5470c6","#91cc75","#fac858","#ee6666","#73c0de","#3ba272","#fc8452","#9a60b4","#ea7ccc"]}),u=le(()=>{const E=e.element.chartDataVariable;if(E){const p=Ze(E),L=r.testData;let N=We(L||{},p);if(!Array.isArray(N)){const X=p.split(".");let K=L;for(const re of X)if(K&&typeof K=="object"&&re in K)K=K[re];else break;Array.isArray(K)&&(N=K)}if(Array.isArray(N))return N}return e.element.chartData||[]}),m=le(()=>e.element.chartTitle||""),g=le(()=>e.element.chartShowLegend!==!1),C=le(()=>e.element.chartShowTooltip!==!1),x=le(()=>{try{const E=e.element.chartCustomOptions;if(E&&typeof E=="string"&&E.trim())return JSON.parse(E)}catch{}return null});let h=null;async function k(){if(h)return h;try{const[E,p,L,N]=await Promise.all([gt(()=>import("./core-DLbFUvXo.js"),__vite__mapDeps([4,5,6,7])),gt(()=>import("./charts-oAXpTr-7.js"),__vite__mapDeps([8,6,5,7,9])),gt(()=>import("./components-scMrpbvF.js"),__vite__mapDeps([10,6,5,9])),gt(()=>import("./renderers-CHDIdITR.js"),__vite__mapDeps([11,6]))]);return E.use([p.BarChart,p.LineChart,p.PieChart,L.TitleComponent,L.TooltipComponent,L.LegendComponent,L.GridComponent,N.CanvasRenderer]),h=E,E}catch(E){return console.error("Failed to load echarts:",E),o.value=!0,null}}function D(){const E=i.value,p=u.value,L=c.value,N=e.element.chartXField||"name",X=e.element.chartYField||"value",K=e.element.chartNameField||"name",re=e.element.chartValueField||"value",j=x.value;if(j)return j;const _=e.element.chartTitleFontSize||14,V=e.element.chartTitleColor||"#333333",O=e.element.chartTitleFontWeight||"normal",se=e.element.chartLegendPosition||"bottom",W=e.element.chartLegendFontSize||11,Q=e.element.chartLegendColor||"#666666",ee=e.element.chartXAxisTitle,ve=e.element.chartYAxisTitle,ce=e.element.chartXAxisFontSize||10,J=e.element.chartYAxisFontSize||10,ne=e.element.chartXAxisColor||"#666666",te=e.element.chartYAxisColor||"#666666",ue=e.element.chartShowGrid!==!1,z=e.element.chartGridColor||"#e5e7eb",ie=e.element.chartBarWidth||40,de=e.element.chartBarColor,fe=e.element.chartLineSmooth!==!1,B=e.element.chartLineWidth||2,oe=e.element.chartLineColor,pe=e.element.chartShowDataLabel||!1,Ae=e.element.chartPieRadius||70,Ce=e.element.chartDoughnutInnerRadius||40,xe=e.element.chartDoughnutOuterRadius||70,Ee={color:L,title:m.value?{text:m.value,left:"center",textStyle:{fontSize:_,color:V,fontWeight:O}}:void 0,tooltip:C.value?{trigger:E==="pie"||E==="doughnut"?"item":"axis"}:void 0,legend:g.value?{[se]:se==="top"||se==="bottom"?0:10,left:se==="left"||se==="right"?se==="left"?10:"auto":"center",orient:se==="left"||se==="right"?"vertical":"horizontal",textStyle:{fontSize:W,color:Q}}:void 0};if(E==="pie"||E==="doughnut"){const T={type:"pie",radius:E==="doughnut"?[`${Ce}%`,`${xe}%`]:`${Ae}%`,center:["50%","55%"],data:p.map(v=>({name:v[K]||"",value:v[re]||0})),label:{show:pe,fontSize:11,formatter:"{b}: {c} ({d}%)"},emphasis:{itemStyle:{shadowBlur:10,shadowOffsetX:0,shadowColor:"rgba(0, 0, 0, 0.5)"}}};return{...Ee,series:[T]}}const we=p.map(T=>T[N]||""),R=p.map(T=>T[X]||0),U=ue?{left:"3%",right:"4%",bottom:g.value&&se==="bottom"?"15%":"8%",top:m.value&&se==="top"?"15%":"8%",containLabel:!0}:void 0,Z={type:"category",data:we,name:ee,nameTextStyle:{fontSize:ce,color:ne},axisLabel:{fontSize:ce,color:ne},axisLine:{lineStyle:{color:ne}},splitLine:ue?{lineStyle:{color:z}}:void 0,boundaryGap:E!=="bar"},y={type:"value",name:ve,nameTextStyle:{fontSize:J,color:te},axisLabel:{fontSize:J,color:te},axisLine:{lineStyle:{color:te}},splitLine:ue?{lineStyle:{color:z}}:void 0};return E==="bar"?{...Ee,grid:U,xAxis:Z,yAxis:y,series:[{type:"bar",data:R,barMaxWidth:ie,itemStyle:{color:de||void 0},label:pe?{show:!0,position:"top",fontSize:10}:void 0}]}:E==="line"?{...Ee,grid:U,xAxis:Z,yAxis:y,series:[{type:"line",data:R,smooth:fe,lineStyle:{width:B,color:oe||void 0},symbol:"circle",symbolSize:6,label:pe?{show:!0,position:"top",fontSize:10}:void 0}]}:E==="area"?{...Ee,grid:U,xAxis:Z,yAxis:y,series:[{type:"line",data:R,smooth:fe,lineStyle:{width:B,color:oe||void 0},symbol:"circle",symbolSize:6,areaStyle:{},label:pe?{show:!0,position:"top",fontSize:10}:void 0}]}:{}}async function M(){if(!n.value||o.value)return;$();const E=await k();if(!(!E||!n.value)){try{d=E.init(n.value),d.setOption(D())}catch(p){console.error("Chart init error:",p),o.value=!0;return}s=new ResizeObserver(()=>{d==null||d.resize()}),s.observe(n.value)}}function $(){if(s&&(s.disconnect(),s=null),d){try{d.dispose()}catch{}d=null}}return ot(()=>{tt(()=>{M()})}),at(()=>{$()}),De(()=>[e.element.chartType,e.element.chartData,e.element.chartDataVariable,e.element.chartColors,e.element.chartXField,e.element.chartYField,e.element.chartNameField,e.element.chartValueField,e.element.chartShowLegend,e.element.chartShowTooltip,e.element.chartTitle,e.element.chartBarWidth,e.element.chartBarColor,e.element.chartLineSmooth,e.element.chartLineWidth,e.element.chartLineColor,e.element.chartShowDataLabel,e.element.chartCustomOptions,r.testData],()=>{if(d)try{d.setOption(D(),!0)}catch{}else o.value||tt(()=>M())},{deep:!0}),(E,p)=>(f(),w("div",{ref_key:"chartRef",ref:n,class:"w-full h-full"},null,512))}}),Em={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Tm(t,e){return f(),w("svg",Em,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M11 13H5v-2h6V5h2v6h6v2h-6v6h-2z"},null,-1)])])}const yl=Pe({name:"material-symbols-add",render:Tm}),Am=`// RMB Uppercase Conversion
|
|
3
|
+
try {
|
|
4
|
+
function digitUppercase(n) {
|
|
5
|
+
var fraction = ['角', '分'];
|
|
6
|
+
var digit = [
|
|
7
|
+
'零', '壹', '贰', '叁', '肆',
|
|
8
|
+
'伍', '陆', '柒', '捌', '玖'
|
|
9
|
+
];
|
|
10
|
+
var unit = [
|
|
11
|
+
['元', '万', '亿'],
|
|
12
|
+
['', '拾', '佰', '仟']
|
|
13
|
+
];
|
|
14
|
+
var head = n < 0 ? '欠' : '';
|
|
15
|
+
n = Math.abs(n);
|
|
16
|
+
var s = '';
|
|
17
|
+
for (var i = 0; i < fraction.length; i++) {
|
|
18
|
+
s += (digit[Math.floor(n * 10 * Math.pow(10, i)) % 10] + fraction[i]).replace(/零./, '');
|
|
19
|
+
}
|
|
20
|
+
s = s || '整';
|
|
21
|
+
n = Math.floor(n);
|
|
22
|
+
for (var i = 0; i < unit[0].length && n > 0; i++) {
|
|
23
|
+
var p = '';
|
|
24
|
+
for (var j = 0; j < unit[1].length && n > 0; j++) {
|
|
25
|
+
p = digit[n % 10] + unit[1][j] + p;
|
|
26
|
+
n = Math.floor(n / 10);
|
|
27
|
+
}
|
|
28
|
+
s = p.replace(/(零.)*零$/, '').replace(/^$/, '零') + unit[0][i] + s;
|
|
29
|
+
}
|
|
30
|
+
return head + s.replace(/(零.)*零元/, '元')
|
|
31
|
+
.replace(/(零.)+/g, '零')
|
|
32
|
+
.replace(/^整$/, '零元整');
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// 1. Calculate Total (works for both Global and Page data)
|
|
36
|
+
let totalAmount = 0;
|
|
37
|
+
let totalQty = 0;
|
|
38
|
+
if (data && Array.isArray(data)) {
|
|
39
|
+
data.forEach(row => {
|
|
40
|
+
// Ensure numeric values
|
|
41
|
+
const val = Number(row.total) || 0;
|
|
42
|
+
const qty = Number(row.qty) || 0;
|
|
43
|
+
totalAmount += val;
|
|
44
|
+
totalQty += qty;
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// 2. Update Footer Data
|
|
49
|
+
if (footerData && Array.isArray(footerData)) {
|
|
50
|
+
footerData.forEach(row => {
|
|
51
|
+
Object.keys(row).forEach(key => {
|
|
52
|
+
const val = row[key];
|
|
53
|
+
const processValue = (v) => {
|
|
54
|
+
if (typeof v !== 'string') return v;
|
|
55
|
+
|
|
56
|
+
// Global replacements (Grand Total)
|
|
57
|
+
if (typeof type === 'undefined' || type !== 'page') {
|
|
58
|
+
if (v.includes('{#totalSum}')) return v.replace('{#totalSum}', totalAmount.toFixed(2));
|
|
59
|
+
if (v.includes('{#totalQty}')) return v.replace('{#totalQty}', String(totalQty));
|
|
60
|
+
if (v.includes('{#totalCap}')) return v.replace('{#totalCap}', digitUppercase(totalAmount));
|
|
61
|
+
|
|
62
|
+
// For {#pageSum}, we want to show the Grand Total in the Designer (visual feedback),
|
|
63
|
+
// but pass the original {#pageSum} token to the Print logic (via data-value).
|
|
64
|
+
if (v.includes('{#pageSum}')) {
|
|
65
|
+
const displayVal = v.replace('{#pageSum}', totalAmount.toFixed(2));
|
|
66
|
+
// printValue keeps {#pageSum} but resolves other globals
|
|
67
|
+
const printVal = v.replace('{#totalSum}', totalAmount.toFixed(2))
|
|
68
|
+
.replace('{#totalQty}', String(totalQty))
|
|
69
|
+
.replace('{#totalCap}', digitUppercase(totalAmount));
|
|
70
|
+
|
|
71
|
+
return { value: displayVal, printValue: printVal };
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// For {#pageQty}
|
|
75
|
+
if (v.includes('{#pageQty}')) {
|
|
76
|
+
const displayVal = v.replace('{#pageQty}', String(totalQty));
|
|
77
|
+
// printValue keeps {#pageQty} but resolves other globals
|
|
78
|
+
const printVal = v.replace('{#totalSum}', totalAmount.toFixed(2))
|
|
79
|
+
.replace('{#totalQty}', String(totalQty))
|
|
80
|
+
.replace('{#totalCap}', digitUppercase(totalAmount));
|
|
81
|
+
|
|
82
|
+
return { value: displayVal, printValue: printVal };
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// Page replacements (Page Sum)
|
|
87
|
+
if (typeof type !== 'undefined' && type === 'page') {
|
|
88
|
+
if (v.includes('{#pageSum}')) return v.replace('{#pageSum}', totalAmount.toFixed(2));
|
|
89
|
+
if (v.includes('{#pageQty}')) return v.replace('{#pageQty}', String(totalQty));
|
|
90
|
+
}
|
|
91
|
+
return v;
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
// Handle object values
|
|
95
|
+
if (val && typeof val === 'object') {
|
|
96
|
+
// If it has a 'field' property, check if it contains a variable
|
|
97
|
+
if (val.field && typeof val.field === 'string') {
|
|
98
|
+
const processed = processValue(val.field);
|
|
99
|
+
// If processed is different from field (meaning a replacement happened)
|
|
100
|
+
// OR if processValue returned an object (for {#pageSum})
|
|
101
|
+
if (processed !== val.field || typeof processed === 'object') {
|
|
102
|
+
if (typeof processed === 'object') {
|
|
103
|
+
val.result = processed.value; // Store in result, keep val.value as text
|
|
104
|
+
val.printValue = processed.printValue;
|
|
105
|
+
} else {
|
|
106
|
+
val.result = processed;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
// Also check 'value' if it was set manually and looks like a variable
|
|
111
|
+
else if (val.value && typeof val.value === 'string') {
|
|
112
|
+
// Only process if value looks like a variable, otherwise it's just text
|
|
113
|
+
if (val.value.includes('{#')) {
|
|
114
|
+
const processed = processValue(val.value);
|
|
115
|
+
if (typeof processed === 'object') {
|
|
116
|
+
val.result = processed.value;
|
|
117
|
+
val.printValue = processed.printValue;
|
|
118
|
+
} else {
|
|
119
|
+
val.result = processed;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
return { data, footerData };
|
|
129
|
+
} catch (e) {
|
|
130
|
+
console.error('Script Execution Error:', e);
|
|
131
|
+
return { data, footerData };
|
|
132
|
+
}`,$m={[$e.TEXT]:t=>({content:t("canvas.newText"),style:{backgroundColor:"transparent",borderColor:"transparent"}}),[$e.IMAGE]:()=>({style:{backgroundColor:"transparent",borderColor:"transparent"}}),[$e.BARCODE]:()=>({height:80,content:"12345678",style:{backgroundColor:"transparent",borderColor:"transparent"}}),[$e.QRCODE]:()=>({width:100,content:"https://example.com",style:{backgroundColor:"transparent",borderColor:"transparent"}}),[$e.LINE]:()=>({height:20,style:{borderColor:"#000000"}}),[$e.RECT]:()=>({width:100,style:{backgroundColor:"transparent",borderColor:"#000000"}}),[$e.CIRCLE]:()=>({width:100,style:{backgroundColor:"transparent",borderColor:"#000000"}}),[$e.CHART]:t=>({width:300,height:200,chartType:"bar",chartTitle:t("sidebar.chart"),chartXField:"name",chartYField:"value",chartShowLegend:!0,chartShowTooltip:!0,chartData:[{name:t("canvas.defaultChartData.jan"),value:820},{name:t("canvas.defaultChartData.feb"),value:932},{name:t("canvas.defaultChartData.mar"),value:901},{name:t("canvas.defaultChartData.apr"),value:934},{name:t("canvas.defaultChartData.may"),value:1290},{name:t("canvas.defaultChartData.jun"),value:1330}],style:{backgroundColor:"#ffffff",borderColor:"#cccccc"}}),[$e.PAGE_NUMBER]:()=>({width:52,height:20,format:"1/Total",labelColor:"#000000",labelBackgroundColor:"transparent",labelBorderColor:"transparent",style:{backgroundColor:"transparent",borderColor:"#000000"}}),[$e.TABLE]:t=>({height:150,columnsVariable:"",footerDataVariable:"",columns:[],data:[],showFooter:!0,tfootRepeat:!0,autoPaginate:!0,repeatPerPage:!1,footerData:[],customScript:Am,style:{backgroundColor:"transparent",borderColor:"#000000",headerBackgroundColor:"#f3f4f6",headerColor:"#000000",footerBackgroundColor:"#f9fafb",footerColor:"#000000",textAlign:"left",headerTextAlign:"left",footerTextAlign:"left"}})};function Pm(t,e,r,n){const o={type:t,x:e,y:r,width:200,height:100,variable:"",style:{fontSize:14,color:"#000000"}},d=$m[t],s=d?d(n):{};return{...o,...s,style:{...o.style,...s.style||{}}}}const Im={class:"absolute top-0 -right-12 flex flex-col gap-2 z-10"},Dm=["title","disabled"],Mm=["title","disabled","onClick"],Lm=["title","disabled","onClick"],zm=["title","disabled","onClick"],Rm=["id","onDrop","onMousedown","onContextmenu"],Fm={key:0,"data-print-exclude":"true",class:"absolute inset-0 pointer-events-none opacity-50",style:{"background-image":"linear-gradient(#e5e7eb 1px, transparent 1px), linear-gradient(90deg, #e5e7eb 1px, transparent 1px)","background-size":"20px 20px"}},qm=["onMousedown"],Bm=["onMousedown"],Om={key:5,"data-print-exclude":"true",class:"marker absolute inset-0 pointer-events-none z-50 opacity-50"},Vm={key:6,"data-print-exclude":"true",class:"margin-guides absolute inset-0 pointer-events-none z-40"},eu=Oe({__name:"Canvas",setup(t){const e=je(),r=st("designer-root",G(null)),n=()=>{var z;return((z=r==null?void 0:r.value)==null?void 0:z.getRootNode())||document},{t:o}=Ke(),d=le(()=>e.pages),s=le(()=>e.zoom),i=le(()=>e.pageSpacingX||0),c=le(()=>e.pageSpacingX||0),u=le(()=>e.pageSpacingY||0),m=le(()=>e.pageSpacingY||0),g=le(()=>e.isTemplateEditable),C=G(!1),x=G(null),h=G(null),k=(z,ie)=>{if(!e.isTemplateEditable)return;z.preventDefault(),z.stopPropagation(),C.value=!0,x.value=ie;const de=z.target;h.value=de.closest(".print-page"),window.addEventListener("mousemove",D),window.addEventListener("mouseup",M)},D=z=>{if(!C.value||!h.value)return;const ie=h.value.getBoundingClientRect(),de=(z.clientY-ie.top)/e.zoom,fe=Math.max(0,Math.min(e.canvasSize.height,de));if(x.value==="header"){const B=e.pageSpacingY||0,oe=Math.max(0,fe-B);e.setHeaderHeight(Math.round(oe))}else if(x.value==="footer"){const B=e.pageSpacingY||0,oe=Math.max(0,e.canvasSize.height-fe-B);e.setFooterHeight(Math.round(oe))}},M=()=>{C.value=!1,x.value=null,h.value=null,window.removeEventListener("mousemove",D),window.removeEventListener("mouseup",M)};at(()=>{window.removeEventListener("mousemove",D),window.removeEventListener("mouseup",M)});const $=le(()=>{const z={width:`${e.canvasSize.width}px`,height:`${e.canvasSize.height}px`,backgroundColor:e.canvasBackground};return p.value?{...z,...p.value}:z}),E=z=>z.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),p=le(()=>{const z=e.watermark;if(!z||!z.enabled||!z.text)return null;const ie=E(z.text),de=Number.isFinite(z.angle)?z.angle:-30,fe=Math.max(6,z.size||24),B=Math.max(40,z.density||160),oe=z.color||"#000000",pe=Math.min(1,Math.max(0,z.opacity??.1)),Ae=`<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="${B}" height="${B}"><text x="50%" y="50%" dominant-baseline="middle" text-anchor="middle" fill="${oe}" fill-opacity="${pe}" font-size="${fe}" transform="rotate(${de} ${B/2} ${B/2})">${ie}</text></svg>`;return{backgroundImage:`url("data:image/svg+xml,${encodeURIComponent(Ae)}")`,backgroundRepeat:"repeat",backgroundSize:`${B}px ${B}px`}}),L=le(()=>!e.isDragging||!e.selectedElementId?-1:e.pages.findIndex(z=>z.elements.some(ie=>(ie==null?void 0:ie.id)===e.selectedElementId))),N=G(!1),X=G({x:0,y:0}),K=G({x:0,y:0}),re=G(null),j=G(!1),_=le(()=>{if(!N.value)return{display:"none"};const z=Math.min(X.value.x,K.value.x),ie=Math.min(X.value.y,K.value.y),de=Math.abs(K.value.x-X.value.x),fe=Math.abs(K.value.y-X.value.y);return{position:"absolute",left:`${z}px`,top:`${ie}px`,width:`${de}px`,height:`${fe}px`,border:"1px solid var(--brand-500)",backgroundColor:"var(--brand-500-alpha-10)",pointerEvents:"none",zIndex:1e3}}),V=z=>{switch(z){case $e.TEXT:return wd;case $e.IMAGE:return Ih;case $e.TABLE:return lm;case $e.PAGE_NUMBER:return dm;case $e.BARCODE:return pm;case $e.QRCODE:return bm;case $e.LINE:return ym;case $e.RECT:return wm;case $e.CIRCLE:return Sm;case $e.CHART:return _m;default:return wd}},O=z=>!!z&&typeof z.id=="string"&&typeof z.type=="string",se=z=>z.filter(O),W=z=>{const ie=String(z||"").trim();return ie?ie.startsWith("@")?ie:`@${ie}`:""},Q=(z,ie)=>{var Ee;if(z.preventDefault(),!e.isTemplateEditable)return;const de=(Ee=z.dataTransfer)==null?void 0:Ee.getData("application/json");if(!de)return;const{type:fe,payload:B,variable:oe,dataVariable:pe}=JSON.parse(de),Ae=z.currentTarget.getBoundingClientRect(),Ce=(z.clientX-Ae.left)/e.zoom,xe=(z.clientY-Ae.top)/e.zoom;if(B){e.addElement({...B,x:Ce,y:xe,locked:!1},ie);return}if(oe||pe){const we=e.pages[ie];if(we)for(let R=we.elements.length-1;R>=0;R--){const U=we.elements[R];if(!U)continue;if(Ce>=U.x&&Ce<=U.x+U.width&&xe>=U.y&&xe<=U.y+U.height){if(oe&&U.type===$e.TEXT){const y=W(oe);e.updateElement(U.id,{variable:y,content:y});return}else if(pe&&U.type===$e.TABLE){e.updateElement(U.id,{variable:W(pe)});return}}}return}if(fe){const we=Pm(fe,Ce,xe,o);e.addElement(we,ie)}},ee=z=>{z.preventDefault()},ve=z=>{!z.ctrlKey&&!z.metaKey&&!j.value&&e.selectElement(null)},ce=(z,ie)=>{if(!e.isTemplateEditable||z.button!==0||z.ctrlKey||z.metaKey||z.target.closest(".element-wrapper"))return;z.preventDefault(),N.value=!0,re.value=ie;const B=z.currentTarget.getBoundingClientRect();X.value={x:(z.clientX-B.left)/s.value,y:(z.clientY-B.top)/s.value},K.value={...X.value},window.addEventListener("mousemove",J),window.addEventListener("mouseup",ne)},J=z=>{if(!N.value||re.value===null)return;const de=n().getElementById(`page-${re.value}`);if(!de)return;const fe=de.getBoundingClientRect();K.value={x:(z.clientX-fe.left)/s.value,y:(z.clientY-fe.top)/s.value}},ne=()=>{if(!N.value)return;const z=Math.min(X.value.x,K.value.x),ie=Math.min(X.value.y,K.value.y),de=Math.abs(K.value.x-X.value.x),fe=Math.abs(K.value.y-X.value.y),B=[];if(re.value!==null){const oe=d.value[re.value];if(oe)for(const pe of se(oe.elements)){const Ae=pe.x+pe.width,Ce=pe.y+pe.height,xe=z+de,Ee=ie+fe;pe.x<xe&&Ae>z&&pe.y<Ee&&Ce>ie&&B.push(pe.id)}}e.setSelection(B),N.value=!1,re.value=null,j.value=!0,setTimeout(()=>{j.value=!1},50),window.removeEventListener("mousemove",J),window.removeEventListener("mouseup",ne)},te=(z,ie)=>{var Ee;const fe=z.currentTarget.getBoundingClientRect(),B=(z.clientX-fe.left)/s.value,oe=(z.clientY-fe.top)/s.value,pe=d.value[ie];if(!pe)return;let Ae=null,Ce=-1/0;const xe=se(pe.elements);for(let we=0;we<xe.length;we++){const R=xe[we];if(B>=R.x&&B<=R.x+R.width&&oe>=R.y&&oe<=R.y+R.height){const Z=((Ee=R.style)==null?void 0:Ee.zIndex)??1;Z>=Ce&&(Ce=Z,Ae=R.id)}}Ae&&e.selectElement(Ae,!1)},ue=()=>{if(d.value.length===0)return[];const z=d.value[0],ie=e.pageSpacingY||0,de=e.pageSpacingY||0,fe=e.headerHeight+ie,B=e.canvasSize.height-(e.footerHeight+de);return se(z.elements).filter(oe=>{if(oe.type===$e.TABLE)return!1;const pe=e.getElementBoundsAtPosition(oe,oe.x,oe.y),Ae=oe.repeatPerPage===!0,Ce=e.showHeaderLine&&pe.maxY<=fe,xe=e.showFooterLine&&pe.minY>=B;return Ae||Ce||xe})};return(z,ie)=>(f(),w("div",{class:"flex flex-col",style:Te({transform:`scale(${s.value})`,transformOrigin:"top left",width:"fit-content",rowGap:"20px"})},[(f(!0),w(Ie,null,qe(d.value,(de,fe)=>(f(),w("div",{key:de.id,class:"relative group"},[a("div",Im,[a("button",{class:"w-8 h-8 flex items-center justify-center bg-white border border-gray-200 rounded shadow hover:bg-blue-50 hover:text-blue-600 text-gray-600 transition-colors disabled:opacity-50 disabled:cursor-not-allowed",title:l(o)("canvas.addPage"),disabled:!g.value,onClick:ie[0]||(ie[0]=B=>l(e).addPage())},[ge(l(yl))],8,Dm),a("button",{class:"w-8 h-8 flex items-center justify-center bg-white border border-gray-200 rounded shadow hover:bg-blue-50 hover:text-blue-600 text-gray-600 transition-colors disabled:opacity-50 disabled:cursor-not-allowed",title:l(o)("canvas.copyPage"),disabled:!g.value,onClick:B=>l(e).copyPage(fe)},[ge(l(lr))],8,Mm),l(e).copiedPage?(f(),w("button",{key:0,class:"w-8 h-8 flex items-center justify-center bg-white border border-gray-200 rounded shadow hover:bg-blue-50 hover:text-blue-600 text-gray-600 transition-colors disabled:opacity-50 disabled:cursor-not-allowed",title:l(o)("canvas.pastePage"),disabled:!g.value,onClick:B=>l(e).pastePage(fe)},[ge(l(fl))],8,Lm)):he("",!0),fe>0?(f(),w("button",{key:1,class:"w-8 h-8 flex items-center justify-center bg-white border border-gray-200 rounded shadow hover:bg-red-50 hover:text-red-600 text-gray-600 transition-colors disabled:opacity-50 disabled:cursor-not-allowed",title:l(o)("canvas.deletePage"),disabled:!g.value,onClick:B=>l(e).removePage(fe)},[ge(l(nr))],8,zm)):he("",!0)]),a("div",{id:`page-${fe}`,class:"print-page shadow-lg relative overflow-hidden transition-all",style:Te([$.value,{overflow:L.value===fe?"visible":"hidden",zIndex:L.value===fe?50:1}]),onDrop:B=>Q(B,fe),onDragover:ee,onMousedown:B=>ce(B,fe),onContextmenu:B=>te(B,fe),onClick:He(ve,["self"])},[l(e).showGrid?(f(),w("div",Fm)):he("",!0),N.value&&re.value===fe?(f(),w("div",{key:1,"data-print-exclude":"true",style:Te(_.value)},null,4)):he("",!0),l(e).showHeaderLine?(f(),w("div",{key:2,"data-print-exclude":"true",class:_e(["absolute left-0 w-full z-20 group flex flex-col justify-center items-center",fe===0&&g.value?"cursor-row-resize":"cursor-default"]),style:Te({top:`${l(e).headerHeight+u.value}px`,left:`${i.value}px`,width:`${l(e).canvasSize.width-i.value-c.value}px`,height:"12px",marginTop:"-6px"}),onMousedown:B=>fe===0&&k(B,"header")},[a("div",{class:"w-full h-px",style:Te({backgroundImage:fe===0?"linear-gradient(to right, #f87171 60%, transparent 40%)":"linear-gradient(to right, #d1d5db 60%, transparent 40%)",backgroundSize:"20px 1px",backgroundRepeat:"repeat-x"})},null,4),a("div",{class:_e(["absolute right-0 -top-4 text-xs bg-white/80 px-1 pointer-events-none",fe===0?"text-red-400":"text-gray-400"])},b(l(o)("canvas.headerLabel")),3)],46,qm)):he("",!0),l(e).showFooterLine?(f(),w("div",{key:3,"data-print-exclude":"true",class:_e(["absolute left-0 w-full z-20 group flex flex-col justify-center items-center",fe===0&&g.value?"cursor-row-resize":"cursor-default"]),style:Te({bottom:`${l(e).footerHeight+m.value}px`,left:`${i.value}px`,width:`${l(e).canvasSize.width-i.value-c.value}px`,height:"12px",marginBottom:"-6px"}),onMousedown:B=>fe===0&&k(B,"footer")},[a("div",{class:"w-full h-px",style:Te({backgroundImage:fe===0?"linear-gradient(to right, #f87171 60%, transparent 40%)":"linear-gradient(to right, #d1d5db 60%, transparent 40%)",backgroundSize:"20px 1px",backgroundRepeat:"repeat-x"})},null,4),a("div",{class:_e(["absolute right-0 -bottom-4 text-xs bg-white/80 px-1 pointer-events-none",fe===0?"text-red-400":"text-gray-400"])},b(l(o)("canvas.footerLabel")),3)],46,Bm)):he("",!0),fe>0&&d.value.length>0?(f(!0),w(Ie,{key:4},qe(ue(),B=>(f(),Be(xd,{key:`global-${B.id}`,element:B,"is-selected":l(e).selectedElementId===B.id||l(e).selectedElementIds.includes(B.id),zoom:s.value,"page-index":0,"read-only":!0},{default:Ft(()=>[(f(),Be(jt(V(B.type)),{element:B,"page-index":fe,"total-pages":d.value.length},null,8,["element","page-index","total-pages"]))]),_:2},1032,["element","is-selected","zoom"]))),128)):he("",!0),(f(!0),w(Ie,null,qe(se(de.elements),B=>(f(),Be(xd,{key:B.id,element:B,"is-selected":l(e).selectedElementId===B.id||l(e).selectedElementIds.includes(B.id),zoom:s.value,"page-index":fe,"read-only":!g.value},{default:Ft(()=>[(f(),Be(jt(V(B.type)),{element:B,"page-index":fe,"total-pages":d.value.length},null,8,["element","page-index","total-pages"]))]),_:2},1032,["element","is-selected","zoom","page-index","read-only"]))),128)),l(e).showCornerMarkers?(f(),w("div",Om,[a("div",{class:"absolute w-3 h-3 border-t-2 border-l-2 border-gray-300",style:Te({top:`${u.value}px`,left:`${i.value}px`})},null,4),a("div",{class:"absolute w-3 h-3 border-t-2 border-r-2 border-gray-300",style:Te({top:`${u.value}px`,right:`${c.value}px`})},null,4),a("div",{class:"absolute w-3 h-3 border-b-2 border-l-2 border-gray-300",style:Te({bottom:`${m.value}px`,left:`${i.value}px`})},null,4),a("div",{class:"absolute w-3 h-3 border-b-2 border-r-2 border-gray-300",style:Te({bottom:`${m.value}px`,right:`${c.value}px`})},null,4)])):he("",!0),l(e).showMarginLines&&(i.value>0||u.value>0)?(f(),w("div",Vm,[u.value>0?(f(),w("div",{key:0,class:"absolute border-t border-dashed border-gray-400 w-full",style:Te({top:`${u.value}px`})},null,4)):he("",!0),m.value>0?(f(),w("div",{key:1,class:"absolute border-b border-dashed border-gray-400 w-full",style:Te({bottom:`${m.value}px`})},null,4)):he("",!0),i.value>0?(f(),w("div",{key:2,class:"absolute border-l border-dashed border-gray-400 h-full",style:Te({left:`${i.value}px`})},null,4)):he("",!0),c.value>0?(f(),w("div",{key:3,class:"absolute border-r border-dashed border-gray-400 h-full",style:Te({right:`${c.value}px`})},null,4)):he("",!0)])):he("",!0)],44,Rm)]))),128))],4))}}),jm=Oe({__name:"PrintRenderer",props:{payload:{},token:{}},setup(t){const e=t,r=G(null),n=je(),o=e.token||new URLSearchParams(window.location.search).get("printToken")||"",d=window.location.origin,s=G([]);Jn("registerRenderTask",h=>{s.value.push(h)});const i=()=>{var h;return((h=r.value)==null?void 0:h.ownerDocument)||document},c=()=>i().defaultView||window,u=h=>{const k=c();k.parent&&k.parent!==k&&k.parent.postMessage({type:h,token:o},d),window.dispatchEvent(new CustomEvent(`print-renderer:${h}`,{detail:{token:o}}))},m=async(h=2e3)=>{const D=i().fonts;!D||!D.ready||await Promise.race([D.ready,new Promise(M=>setTimeout(M,h))])},g=async(h=2e3)=>{const k=i(),M=Array.from(k.images||[]).filter($=>!$.complete);M.length!==0&&await Promise.race([Promise.all(M.map($=>new Promise(E=>{const p=()=>{$.removeEventListener("load",p),$.removeEventListener("error",p),E()};$.addEventListener("load",p,{once:!0}),$.addEventListener("error",p,{once:!0})}))),new Promise($=>setTimeout($,h))])},C=async h=>{n.$patch({pages:Se(h.pages||[]),canvasSize:h.canvasSize||n.canvasSize,canvasBackground:h.canvasBackground||n.canvasBackground,headerHeight:h.headerHeight??n.headerHeight,footerHeight:h.footerHeight??n.footerHeight,pageSpacingX:h.pageSpacingX??n.pageSpacingX,pageSpacingY:h.pageSpacingY??n.pageSpacingY,showHeaderLine:h.showHeaderLine??!1,showFooterLine:h.showFooterLine??!1,showGrid:!1,showCornerMarkers:!1,zoom:1,currentPageIndex:0,selectedElementId:null,selectedElementIds:[],guides:[],testData:h.testData||{},variables:h.variables||{}}),h.watermark&&(n.watermark=Se(h.watermark)),h.unit&&(n.unit=h.unit),n.setIsExporting(!0),i().body.classList.add("exporting"),s.value=[],await tt(),await Promise.all(s.value),await m(),await g(),requestAnimationFrame(()=>{u("print-renderer-rendered")})},x=h=>{if(h.origin!==d)return;const k=h.data;!k||k.type!=="print-renderer-payload"||k.token!==o||C(k.payload||{})};return ot(()=>{const h=i(),k=c();h.body.style.margin="0",h.body.style.background="#ffffff",k.addEventListener("message",x),e.payload?C(e.payload):u("print-renderer-ready")}),at(()=>{c().removeEventListener("message",x)}),(h,k)=>(f(),w("div",{class:"print-renderer",ref_key:"root",ref:r},[ge(eu)],512))}}),St=(t,e)=>{const r=t.__vccOpts||t;for(const[n,o]of e)r[n]=o;return r},tu=St(jm,[["__scopeId","data-v-d181d33d"]]),kd=`*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(147 197 253 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(147 197 253 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--brand-50: #eff6ff;--brand-100: #dbeafe;--brand-200: #bfdbfe;--brand-300: #93c5fd;--brand-400: #60a5fa;--brand-500: #3b82f6;--brand-600: #2563eb;--brand-700: #1d4ed8;--brand-800: #1e40af;--brand-900: #1e3a8a;--brand-950: #172554;--brand-500-alpha-10: rgb(59 130 246 / .1)}input[type=radio]{accent-color:var(--brand-600)}.theme-outline-hover:hover{outline:1px solid var(--brand-300)}.theme-hover-bg:hover{background-color:var(--brand-50)}.theme-hover-border:hover{border-color:var(--brand-500)}.theme-text{color:var(--brand-500)}.theme-text-hover:hover{color:var(--brand-700)}.theme-border{border-color:var(--brand-500)}.theme-border-strong{border-color:var(--brand-600)}.theme-border-hover{border-color:var(--brand-500)}.group:hover .theme-border-hover{border-color:var(--brand-400)}.theme-bg{background-color:var(--brand-500)}.theme-bg-strong{background-color:var(--brand-600)}.theme-bg-soft{background-color:#000000b3}.exporting .marker{display:none!important}.exporting,.previewing{overflow:hidden!important}html{color-scheme:light}.dark{color-scheme:dark}.dark body{background-color:#0f172a;color:#e5e7eb}.dark .bg-white{background-color:#1f2937!important}.dark .bg-gray-50{background-color:#111827!important}.dark :not(.canvas-scroll).bg-gray-100{background-color:#1f2937!important}.dark .canvas-scroll.bg-gray-100{background-color:#334155!important}.dark .hover\\\\:bg-gray-50:hover{background-color:#1f2937!important}.dark .hover\\\\:bg-gray-100:hover{background-color:#374151!important}.dark .bg-gray-200{background-color:#374151!important}.dark .hover\\:bg-gray-200:hover{background-color:#4b5563!important}.dark .hover\\:bg-blue-50:hover,.dark .theme-hover-bg:hover{background-color:color-mix(in srgb,var(--brand-500) 16%,transparent)!important}.dark .hover\\:border-blue-500:hover{border-color:#3b82f680!important}.dark .text-gray-800{color:#f3f4f6!important}.dark .text-gray-700{color:#e5e7eb!important}.dark .text-gray-600{color:#d1d5db!important}.dark .text-gray-500{color:#cbd5e1!important}.dark .text-gray-400{color:#9ca3af!important}.dark .text-gray-900{color:#f9fafb!important}.dark .border-gray-100{border-color:#1f2937!important}.dark .border-gray-200{border-color:#374151!important}.dark .border-gray-300{border-color:#4b5563!important}.dark select,.dark option{background-color:#1f2937;color:#e5e7eb}.dark .shadow-sm,.dark .shadow,.dark .shadow-xl,.dark .\\!shadow{box-shadow:0 1px 2px #0009,0 1px 1px #0006!important}.dark .print-page{color-scheme:light}.dark .print-page .bg-white{background-color:#fff!important}.dark .print-page .border-gray-100{border-color:#f3f4f6!important}.dark .print-page .border-gray-200{border-color:#e5e7eb!important}.dark .print-page .border-gray-300{border-color:#d1d5db!important}.dark .print-page .text-gray-500{color:#6b7280!important}.dark .print-page .text-gray-600{color:#4b5563!important}.dark .print-page .text-gray-700{color:#374151!important}.dark .print-page .text-gray-800{color:#1f2937!important}.dark .print-page .text-gray-900{color:#111827!important}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:#f3f4f6;border-radius:0}::-webkit-scrollbar-thumb{background-color:#d1d5db;border-radius:0;border:2px solid #f3f4f6}::-webkit-scrollbar-corner{background:#f3f4f6}*{scrollbar-width:thin;scrollbar-color:#d1d5db #f3f4f6}.dark ::-webkit-scrollbar-track{background:#1f2937}.dark ::-webkit-scrollbar-thumb{background-color:#4b5563;border:2px solid #1f2937}.dark ::-webkit-scrollbar-thumb:hover{background-color:#6b7280}.dark *{scrollbar-color:#4b5563 #1f2937}.\\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\\!container{max-width:1536px!important}.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.-bottom-4{bottom:-1rem}.-left-2{left:-.5rem}.-left-4{left:-1rem}.-right-1{right:-.25rem}.-right-12{right:-3rem}.-right-3{right:-.75rem}.-right-5{right:-1.25rem}.-top-3{top:-.75rem}.-top-4{top:-1rem}.-top-6{top:-1.5rem}.bottom-0{bottom:0}.bottom-4{bottom:1rem}.left-0{left:0}.left-1\\/2{left:50%}.left-2{left:.5rem}.right-0{right:0}.right-1{right:.25rem}.right-4{right:1rem}.top-0{top:0}.top-1{top:.25rem}.top-1\\/2{top:50%}.top-2{top:.5rem}.top-6{top:1.5rem}.top-full{top:100%}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\\[-1\\]{z-index:-1}.z-\\[100000\\]{z-index:100000}.z-\\[10000\\]{z-index:10000}.z-\\[1000\\]{z-index:1000}.z-\\[100\\]{z-index:100}.z-\\[2000\\]{z-index:2000}.z-\\[2001\\]{z-index:2001}.z-\\[3000\\]{z-index:3000}.z-\\[99999\\]{z-index:99999}.z-\\[9999\\]{z-index:9999}.z-\\[999\\]{z-index:999}.col-span-2{grid-column:span 2 / span 2}.m-0{margin:0}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0\\.5{margin-top:.125rem;margin-bottom:.125rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-4{margin-top:1rem;margin-bottom:1rem}.-ml-1\\.5{margin-left:-.375rem}.-mt-1\\.5{margin-top:-.375rem}.mb-1{margin-bottom:.25rem}.mb-1\\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-6{margin-left:1.5rem}.mr-1{margin-right:.25rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.box-content{box-sizing:content-box}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.\\!table{display:table!important}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0\\.5{height:.125rem}.h-1\\.5{height:.375rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-2{height:.5rem}.h-2\\.5{height:.625rem}.h-24{height:6rem}.h-3{height:.75rem}.h-3\\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\\[1px\\]{height:1px}.h-\\[500px\\]{height:500px}.h-\\[56px\\]{height:56px}.h-\\[60px\\]{height:60px}.h-\\[80vh\\]{height:80vh}.h-\\[90vh\\]{height:90vh}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-40{max-height:10rem}.max-h-48{max-height:12rem}.max-h-\\[300px\\]{max-height:300px}.max-h-\\[500px\\]{max-height:500px}.max-h-\\[90vh\\]{max-height:90vh}.min-h-\\[30px\\]{min-height:30px}.w-1{width:.25rem}.w-1\\.5{width:.375rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\\.5{width:.625rem}.w-20{width:5rem}.w-3{width:.75rem}.w-3\\.5{width:.875rem}.w-32{width:8rem}.w-4{width:1rem}.w-40{width:10rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-52{width:13rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-96{width:24rem}.w-\\[240px\\]{width:240px}.w-\\[260px\\]{width:260px}.w-\\[380px\\]{width:380px}.w-\\[60vw\\]{width:60vw}.w-\\[640px\\]{width:640px}.w-\\[700px\\]{width:700px}.w-\\[90vw\\]{width:90vw}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.w-px{width:1px}.w-screen{width:100vw}.min-w-0{min-width:0px}.min-w-\\[160px\\]{min-width:160px}.max-w-\\[100px\\]{max-width:100px}.max-w-full{max-width:100%}.max-w-md{max-width:28rem}.flex-1{flex:1 1 0%}.flex-none{flex:none}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.-translate-x-1\\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-4{--tw-translate-x: 1rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-5{--tw-translate-x: 1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-45{--tw-rotate: 45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-100{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-150{--tw-scale-x: 1.5;--tw-scale-y: 1.5;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-95{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes ping{75%,to{transform:scale(2);opacity:0}}.animate-\\[ping_2\\.4s_ease-in-out_infinite\\]{animation:ping 2.4s ease-in-out infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-col-resize{cursor:col-resize}.cursor-crosshair{cursor:crosshair}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-move{cursor:move}.cursor-not-allowed{cursor:not-allowed}.cursor-ns-resize{cursor:ns-resize}.cursor-pointer{cursor:pointer}.cursor-row-resize{cursor:row-resize}.cursor-se-resize{cursor:se-resize}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.resize-none{resize:none}.resize-y{resize:vertical}.resize{resize:both}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-y-0\\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(229 231 235 / var(--tw-divide-opacity, 1))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-\\[1px\\]{border-radius:1px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-sm{border-radius:.125rem}.rounded-b-lg{border-bottom-right-radius:.5rem;border-bottom-left-radius:.5rem}.rounded-l-md{border-top-left-radius:.375rem;border-bottom-left-radius:.375rem}.rounded-r-md{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.rounded-br-lg{border-bottom-right-radius:.5rem}.border{border-width:1px}.border-2{border-width:2px}.border-\\[0\\.5px\\]{border-width:.5px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-r-2{border-right-width:2px}.border-t{border-top-width:1px}.border-t-2{border-top-width:2px}.border-dashed{border-style:dashed}.border-none{border-style:none}.border-blue-200{border-color:var(--brand-200)}.border-blue-500{border-color:var(--brand-500)}.border-blue-600{border-color:var(--brand-600)}.border-gray-100{--tw-border-opacity: 1;border-color:rgb(243 244 246 / var(--tw-border-opacity, 1))}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.border-gray-400{--tw-border-opacity: 1;border-color:rgb(156 163 175 / var(--tw-border-opacity, 1))}.border-red-100{--tw-border-opacity: 1;border-color:rgb(254 226 226 / var(--tw-border-opacity, 1))}.border-red-200{--tw-border-opacity: 1;border-color:rgb(254 202 202 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.border-white{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.border-yellow-400{--tw-border-opacity: 1;border-color:rgb(250 204 21 / var(--tw-border-opacity, 1))}.border-yellow-500{--tw-border-opacity: 1;border-color:rgb(234 179 8 / var(--tw-border-opacity, 1))}.\\!bg-blue-100{background-color:var(--brand-100)!important}.bg-black\\/20{background-color:#0003}.bg-black\\/50{background-color:#00000080}.bg-blue-100{background-color:var(--brand-100)}.bg-blue-200{background-color:var(--brand-200)}.bg-blue-400{background-color:var(--brand-400)}.bg-blue-50{background-color:var(--brand-50)}.bg-blue-500{background-color:var(--brand-500)}.bg-blue-600{background-color:var(--brand-600)}.bg-emerald-400\\/80{background-color:#34d399cc}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.bg-gray-300{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-gray-600{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity, 1))}.bg-green-50{--tw-bg-opacity: 1;background-color:rgb(240 253 244 / var(--tw-bg-opacity, 1))}.bg-green-900\\/20{background-color:#14532d33}.bg-orange-50{--tw-bg-opacity: 1;background-color:rgb(255 247 237 / var(--tw-bg-opacity, 1))}.bg-orange-900\\/20{background-color:#7c2d1233}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-slate-200{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\\/80{background-color:#fffc}.bg-\\[url\\(\\'data\\:image\\/png\\;base64\\,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwZ\\+5wNisxL\\/\\/8n04mEeRAAAhNwX869V4DYAAAAASUVORK5CYII\\=\\'\\)\\]{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwZ+5wNisxL//8n04mEeRAAAhNwX869V4DYAAAAASUVORK5CYII=)}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.bg-gradient-to-tl{background-image:linear-gradient(to top left,var(--tw-gradient-stops))}.from-black{--tw-gradient-from: #000 var(--tw-gradient-from-position);--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-gray-300{--tw-gradient-from: #d1d5db var(--tw-gradient-from-position);--tw-gradient-to: rgb(209 213 219 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-white{--tw-gradient-from: #fff var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.bg-\\[length\\:6px_6px\\]{background-size:6px 6px}.bg-repeat{background-repeat:repeat}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-0\\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-0\\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pb-1{padding-bottom:.25rem}.pb-20{padding-bottom:5rem}.pl-1{padding-left:.25rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-sans{font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}.text-\\[10px\\]{font-size:10px}.text-\\[11px\\]{font-size:11px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.normal-case{text-transform:none}.italic{font-style:italic}.not-italic{font-style:normal}.leading-none{line-height:1}.tracking-normal{letter-spacing:0em}.tracking-wider{letter-spacing:.05em}.text-blue-400{color:var(--brand-400)}.text-blue-600{color:var(--brand-600)}.text-blue-700{color:var(--brand-700)}.text-blue-900{color:var(--brand-900)}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-slate-900{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.overline{text-decoration-line:overline}.line-through{text-decoration-line:line-through}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-50{opacity:.5}.\\!shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1) !important;--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color) !important;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)!important}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-0{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-blue-400{--tw-ring-color: var(--brand-400)}.ring-blue-500{--tw-ring-color: var(--brand-500)}.ring-red-500{--tw-ring-opacity: 1;--tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity, 1))}.ring-offset-1{--tw-ring-offset-width: 1px}.ring-offset-gray-900{--tw-ring-offset-color: #111827}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-75{transition-duration:75ms}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.\\[-moz-appearance\\:textfield\\]{-moz-appearance:textfield}.\\[appearance\\:textfield\\]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.dark .hover\\:bg-gray-50:hover{background-color:#111827!important}.dark .hover\\:bg-gray-100:hover:not(.canvas-scroll){background-color:#1f2937!important}.dark .hover\\:bg-gray-100:hover.canvas-scroll{background-color:#334155!important}.dark .hover\\:bg-gray-200:hover{background-color:#374151!important}.dark .hover\\:text-gray-800:hover{color:#f3f4f6!important}.dark .hover\\:text-gray-700:hover{color:#e5e7eb!important}.dark .hover\\:text-gray-600:hover{color:#d1d5db!important}.dark .print-page .hover\\:text-gray-600:hover{color:#4b5563!important}.dark .print-page .hover\\:text-gray-700:hover{color:#374151!important}.dark .print-page .hover\\:text-gray-800:hover{color:#1f2937!important}.dark .disabled\\:bg-gray-50:disabled{background-color:#111827!important}.dark .disabled\\:bg-gray-100:disabled:not(.canvas-scroll){background-color:#1f2937!important}.dark .disabled\\:bg-gray-100:disabled.canvas-scroll{background-color:#334155!important}.dark .disabled\\:text-gray-500:disabled{color:#cbd5e1!important}.dark .disabled\\:text-gray-400:disabled{color:#9ca3af!important}.dark .disabled\\:border-gray-200:disabled{border-color:#374151!important}.dark .print-page .disabled\\:border-gray-200:disabled{border-color:#e5e7eb!important}.dark .print-page .disabled\\:text-gray-500:disabled{color:#6b7280!important}.dark .disabled\\:hover\\:bg-white:hover:disabled{background-color:#1f2937!important}.dark .disabled\\:hover\\:bg-gray-100:hover:disabled:not(.canvas-scroll){background-color:#1f2937!important}.dark .disabled\\:hover\\:bg-gray-100:hover:disabled.canvas-scroll{background-color:#334155!important}.dark .print-page .disabled\\:hover\\:bg-white:hover:disabled{background-color:#fff!important}.dark .dark\\:bg-gray-100:is(.dark *):not(.canvas-scroll){background-color:#1f2937!important}.dark .dark\\:bg-gray-100:is(.dark *).canvas-scroll{background-color:#334155!important}.dark .dark\\:text-gray-500:is(.dark *){color:#cbd5e1!important}.dark .dark\\:text-gray-400:is(.dark *){color:#9ca3af!important}.dark .print-page .dark\\:text-gray-500:is(.dark *){color:#6b7280!important}.dark .dark\\:disabled\\:text-gray-600:disabled:is(.dark *){color:#d1d5db!important}.dark .dark\\:disabled\\:text-gray-400:disabled:is(.dark *){color:#9ca3af!important}.dark .print-page .dark\\:disabled\\:text-gray-600:disabled:is(.dark *){color:#4b5563!important}.first\\:border-0:first-child{border-width:0px}.first\\:pt-0:first-child{padding-top:0}.last\\:border-0:last-child{border-width:0px}.last\\:border-b-0:last-child{border-bottom-width:0px}.focus-within\\:border-blue-500:focus-within{border-color:var(--brand-500)}.focus-within\\:ring-1:focus-within{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-within\\:ring-blue-500:focus-within{--tw-ring-color: var(--brand-500)}.hover\\:z-10:hover{z-index:10}.hover\\:scale-110:hover{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\\:border-blue-400:hover{border-color:var(--brand-400)}.hover\\:border-blue-500:hover{border-color:var(--brand-500)}.hover\\:border-gray-400:hover{--tw-border-opacity: 1;border-color:rgb(156 163 175 / var(--tw-border-opacity, 1))}.hover\\:bg-blue-100:hover{background-color:var(--brand-100)}.hover\\:bg-blue-300:hover{background-color:var(--brand-300)}.hover\\:bg-blue-400:hover{background-color:var(--brand-400)}.hover\\:bg-blue-50:hover{background-color:var(--brand-50)}.hover\\:bg-blue-700:hover{background-color:var(--brand-700)}.hover\\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.hover\\:bg-gray-200:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.hover\\:bg-gray-50:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.hover\\:bg-red-100:hover{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.hover\\:bg-red-50:hover{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.hover\\:bg-slate-300:hover{--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity, 1))}.hover\\:text-blue-600:hover{color:var(--brand-600)}.hover\\:text-blue-700:hover{color:var(--brand-700)}.hover\\:text-blue-800:hover{color:var(--brand-800)}.hover\\:text-gray-600:hover{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.hover\\:text-gray-700:hover{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.hover\\:text-gray-800:hover{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.hover\\:text-red-600:hover{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.hover\\:text-red-800:hover{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity, 1))}.hover\\:underline:hover{text-decoration-line:underline}.hover\\:decoration-blue-600:hover{text-decoration-color:var(--brand-600)}.hover\\:opacity-100:hover{opacity:1}.hover\\:outline:hover{outline-style:solid}.hover\\:outline-1:hover{outline-width:1px}.hover\\:outline-blue-300:hover{outline-color:var(--brand-300)}.focus\\:border-blue-500:focus{border-color:var(--brand-500)}.focus\\:border-blue-600:focus{border-color:var(--brand-600)}.focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\\:ring-0:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\\:ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\\:ring-blue-500:focus{--tw-ring-color: var(--brand-500)}.focus\\:ring-blue-600:focus{--tw-ring-color: var(--brand-600)}.focus\\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.active\\:cursor-grabbing:active{cursor:grabbing}.disabled\\:pointer-events-none:disabled{pointer-events:none}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:border-gray-200:disabled{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.disabled\\:bg-gray-100:disabled{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.disabled\\:bg-gray-400:disabled{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.disabled\\:bg-gray-50:disabled{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.disabled\\:text-gray-400:disabled{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.disabled\\:text-gray-500:disabled{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.disabled\\:opacity-30:disabled{opacity:.3}.disabled\\:opacity-50:disabled{opacity:.5}.disabled\\:hover\\:bg-blue-600:hover:disabled{background-color:var(--brand-600)}.disabled\\:hover\\:bg-gray-100:hover:disabled{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.disabled\\:hover\\:bg-white:hover:disabled{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.group:hover .group-hover\\:opacity-100{opacity:1}.dark\\:border-blue-800:is(.dark *){border-color:var(--brand-800)}.dark\\:border-gray-600:is(.dark *){--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity, 1))}.dark\\:border-gray-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity, 1))}.dark\\:border-gray-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(31 41 55 / var(--tw-border-opacity, 1))}.dark\\:border-red-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(153 27 27 / var(--tw-border-opacity, 1))}.dark\\:border-yellow-500:is(.dark *){--tw-border-opacity: 1;border-color:rgb(234 179 8 / var(--tw-border-opacity, 1))}.dark\\:bg-black\\/40:is(.dark *){background-color:#0006}.dark\\:bg-blue-400:is(.dark *){background-color:var(--brand-400)}.dark\\:bg-blue-500:is(.dark *){background-color:var(--brand-500)}.dark\\:bg-blue-700:is(.dark *){background-color:var(--brand-700)}.dark\\:bg-blue-950:is(.dark *){background-color:var(--brand-950)}.dark\\:bg-gray-100:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.dark\\:bg-gray-600:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity, 1))}.dark\\:bg-gray-700:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.dark\\:bg-gray-700\\/50:is(.dark *){background-color:#37415180}.dark\\:bg-gray-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\\:bg-gray-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.dark\\:bg-green-900\\/20:is(.dark *){background-color:#14532d33}.dark\\:bg-orange-900\\/20:is(.dark *){background-color:#7c2d1233}.dark\\:bg-red-900\\/30:is(.dark *){background-color:#7f1d1d4d}.dark\\:bg-slate-700:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity, 1))}.dark\\:text-blue-100:is(.dark *){color:var(--brand-100)}.dark\\:text-blue-400:is(.dark *){color:var(--brand-400)}.dark\\:text-gray-100:is(.dark *){--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity, 1))}.dark\\:text-gray-200:is(.dark *){--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.dark\\:text-gray-300:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.dark\\:text-gray-400:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.dark\\:text-gray-500:is(.dark *){--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.dark\\:text-green-400:is(.dark *){--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.dark\\:text-orange-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.dark\\:text-red-400:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\\:text-slate-100:is(.dark *){--tw-text-opacity: 1;color:rgb(241 245 249 / var(--tw-text-opacity, 1))}.dark\\:text-white:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.dark\\:ring-blue-400:is(.dark *){--tw-ring-color: var(--brand-400)}.dark\\:ring-offset-gray-900:is(.dark *){--tw-ring-offset-color: #111827}.dark\\:hover\\:border-blue-400:hover:is(.dark *){border-color:var(--brand-400)}.dark\\:hover\\:border-blue-500:hover:is(.dark *){border-color:var(--brand-500)}.dark\\:hover\\:border-gray-500:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(107 114 128 / var(--tw-border-opacity, 1))}.dark\\:hover\\:bg-blue-400:hover:is(.dark *){background-color:var(--brand-400)}.dark\\:hover\\:bg-blue-600:hover:is(.dark *){background-color:var(--brand-600)}.dark\\:hover\\:bg-gray-600:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity, 1))}.dark\\:hover\\:bg-gray-700:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.dark\\:hover\\:bg-gray-800:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\\:hover\\:bg-red-900\\/30:hover:is(.dark *){background-color:#7f1d1d4d}.dark\\:hover\\:bg-red-900\\/50:hover:is(.dark *){background-color:#7f1d1d80}.dark\\:hover\\:bg-slate-600:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(71 85 105 / var(--tw-bg-opacity, 1))}.dark\\:hover\\:text-blue-400:hover:is(.dark *){color:var(--brand-400)}.dark\\:hover\\:text-gray-200:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.dark\\:hover\\:text-gray-300:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.dark\\:hover\\:text-red-300:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.dark\\:focus\\:border-blue-400:focus:is(.dark *){border-color:var(--brand-400)}.dark\\:disabled\\:border-gray-700:disabled:is(.dark *){--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity, 1))}.dark\\:disabled\\:bg-gray-700:disabled:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.dark\\:disabled\\:bg-gray-800:disabled:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\\:disabled\\:text-gray-400:disabled:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.dark\\:disabled\\:text-gray-600:disabled:is(.dark *){--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.\\[\\&\\:\\:-moz-range-thumb\\]\\:h-4::-moz-range-thumb{height:1rem}.\\[\\&\\:\\:-moz-range-thumb\\]\\:w-4::-moz-range-thumb{width:1rem}.\\[\\&\\:\\:-moz-range-thumb\\]\\:cursor-pointer::-moz-range-thumb{cursor:pointer}.\\[\\&\\:\\:-moz-range-thumb\\]\\:rounded-full::-moz-range-thumb{border-radius:9999px}.\\[\\&\\:\\:-moz-range-thumb\\]\\:border-none::-moz-range-thumb{border-style:none}.\\[\\&\\:\\:-moz-range-thumb\\]\\:bg-blue-600::-moz-range-thumb{background-color:var(--brand-600)}.\\[\\&\\:\\:-moz-range-thumb\\]\\:transition-all::-moz-range-thumb{-moz-transition-property:all;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.\\[\\&\\:\\:-moz-range-thumb\\]\\:hover\\:scale-110:hover::-moz-range-thumb{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark\\:\\[\\&\\:\\:-moz-range-thumb\\]\\:bg-blue-500:is(.dark *)::-moz-range-thumb{background-color:var(--brand-500)}.\\[\\&\\:\\:-webkit-inner-spin-button\\]\\:appearance-none::-webkit-inner-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.\\[\\&\\:\\:-webkit-outer-spin-button\\]\\:appearance-none::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:h-4::-webkit-slider-thumb{height:1rem}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:w-4::-webkit-slider-thumb{width:1rem}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:cursor-pointer::-webkit-slider-thumb{cursor:pointer}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:appearance-none::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:rounded-full::-webkit-slider-thumb{border-radius:9999px}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:bg-blue-600::-webkit-slider-thumb{background-color:var(--brand-600)}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:transition-all::-webkit-slider-thumb{-webkit-transition-property:all;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.\\[\\&\\:\\:-webkit-slider-thumb\\]\\:hover\\:scale-110:hover::-webkit-slider-thumb{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark\\:\\[\\&\\:\\:-webkit-slider-thumb\\]\\:bg-blue-500:is(.dark *)::-webkit-slider-thumb{background-color:var(--brand-500)}`,ru=()=>{const t=je(),{printMode:e,silentPrint:r,localSettings:n,remoteSettings:o,localStatus:d,remoteStatus:s,localPrintOptions:i,remotePrintOptions:c,localWsUrl:u,remoteSelectedClientId:m,fetchRemoteClients:g,fetchRemotePrinters:C,submitRemoteTask:x,exportImageMerged:h}=Zt(),k=R=>{const U=Se(R);if(U.length===0)return U;const Z=t.headerHeight>0&&t.showHeaderLine,y=t.footerHeight>0&&t.showFooterLine,T=U[0],v=t.canvasSize.height,S=t.pageSpacingY||0,P=t.pageSpacingY||0,ae=t.headerHeight+S,q=v-(t.footerHeight+P),ye=Z?T.elements.filter(Y=>t.getElementBoundsAtPosition(Y,Y.x,Y.y).maxY<=ae):[],F=y?T.elements.filter(Y=>t.getElementBoundsAtPosition(Y,Y.x,Y.y).minY>=q):[],A=T.elements.filter(Y=>Y.type!==$e.TABLE&&Y.repeatPerPage===!0),I=new Map;[...ye,...F,...A].forEach(Y=>{I.set(Y.id,Y)});const H=Array.from(I.values());if(H.length===0)return U;const ke=Se(U);for(let Y=0;Y<ke.length;Y++){if(Y===0)continue;const be=ke[Y];for(const me of H)be.elements.push({...Se(me),id:rt()})}return ke},D=async(R={})=>{const U=R.mutateStore===!0,Z=R.setExporting===!0,y=t.selectedElementId,T=t.showGrid,v=t.zoom,S=Se(t.pages),P=t.showHeaderLine,ae=t.showFooterLine,q=t.showCornerMarkers,ye=!!t.isExporting,F=document.body.classList.contains("exporting"),A=document.documentElement.style.overflowX,I=document.documentElement.style.overflowY,H=document.body.style.overflowX,ke=document.body.style.overflowY;return U&&(t.selectElement(null),t.setShowGrid(!1),t.setZoom(1),t.pages=k(t.pages),t.setShowHeaderLine(!1),t.setShowFooterLine(!1),t.showCornerMarkers=!1),Z&&(t.setIsExporting(!0),document.body.classList.add("exporting")),(U||Z)&&(document.documentElement.style.overflowX="hidden",document.documentElement.style.overflowY="hidden",document.body.style.overflowX="hidden",document.body.style.overflowY="hidden",await tt(),await new Promise(Y=>setTimeout(Y,500))),()=>{document.body.classList.contains("exporting")&&!F&&document.body.classList.remove("exporting"),t.isExporting!==ye&&t.setIsExporting(ye),t.showCornerMarkers!==q&&(t.showCornerMarkers=q),(U||Z)&&(document.documentElement.style.overflowX=A,document.documentElement.style.overflowY=I,document.body.style.overflowX=H,document.body.style.overflowY=ke),U&&(t.setShowGrid(T),t.selectElement(y),t.setZoom(v),t.pages=S,t.setShowHeaderLine(P),t.setShowFooterLine(ae))}},M=R=>{if(!R||typeof R=="string")return!1;const U=Array.isArray(R)?R[0]:R;return U instanceof HTMLElement?U.getRootNode()instanceof ShadowRoot:!1},$=(R=!0)=>{const U=document.documentElement.style.overflowX,Z=document.documentElement.style.overflowY,y=document.documentElement.style.scrollbarGutter,T=document.body.style.overflowX,v=document.body.style.overflowY,S=document.body.style.scrollbarGutter;return document.documentElement.style.overflowX="hidden",document.documentElement.style.overflowY="hidden",document.documentElement.style.scrollbarGutter=R?"stable":"",document.body.style.overflowX="hidden",document.body.style.overflowY="hidden",document.body.style.scrollbarGutter=R?"stable":"",()=>{document.documentElement.style.overflowX=U,document.documentElement.style.overflowY=Z,document.documentElement.style.scrollbarGutter=y,document.body.style.overflowX=T,document.body.style.overflowY=v,document.body.style.scrollbarGutter=S}},E=R=>{R.classList.remove("group","cursor-move","select-none","ring-2","ring-blue-500","ring-red-500","hover:outline","hover:outline-1","hover:outline-blue-300");const U=[];R.classList.forEach(y=>{(y.startsWith("hover:")||y.startsWith("focus:")||y.startsWith("active:"))&&U.push(y)}),U.forEach(y=>R.classList.remove(y)),(R.style.borderColor==="transparent"||R.style.border.includes("transparent")||R.style.borderStyle==="dashed"&&(R.style.borderColor==="transparent"||!R.style.borderColor&&R.style.border.includes("transparent")))&&(R.style.border="none",R.style.outline="none",R.style.boxShadow="none"),Array.from(R.children).forEach(y=>E(y))},p={enabled:!1,text:"",angle:-30,color:"#000000",opacity:.1,size:24,density:160},L=()=>({pages:k(t.pages),canvasSize:{...t.canvasSize},canvasBackground:t.canvasBackground,headerHeight:t.headerHeight,footerHeight:t.footerHeight,pageSpacingX:t.pageSpacingX||0,pageSpacingY:t.pageSpacingY||0,showHeaderLine:t.showHeaderLine,showFooterLine:t.showFooterLine,watermark:Se(t.watermark||p),unit:t.unit||"mm",testData:Se(t.testData||{}),variables:Se(t.variables||{})}),N=(R,U,Z=15e3)=>new Promise((y,T)=>{const v=window.location.origin,S=window.setTimeout(()=>{window.removeEventListener("message",P),window.removeEventListener(`print-renderer:${U}`,ae),T(new Error(`Print renderer timeout: ${U}`))},Z),P=q=>{if(q.origin!==v)return;const ye=q.data;!ye||ye.type!==U||ye.token!==R||(window.clearTimeout(S),window.removeEventListener("message",P),window.removeEventListener(`print-renderer:${U}`,ae),y(ye))},ae=q=>{q.detail&&q.detail.token===R&&(window.clearTimeout(S),window.removeEventListener("message",P),window.removeEventListener(`print-renderer:${U}`,ae),y({type:U,token:R}))};window.addEventListener("message",P),window.addEventListener(`print-renderer:${U}`,ae)}),X=async()=>{const R=rt(),U=document.createElement("iframe");U.setAttribute("data-print-renderer","true"),U.style.cssText="position:fixed;left:0;top:0;width:0;height:0;border:0;visibility:hidden;",document.body.appendChild(U);const Z=U.contentDocument,y=U.contentWindow;if(!Z||!y)throw new Error("Print renderer not available");const T=Z.createElement("style");T.textContent=kd,Z.head.appendChild(T);const v=Z.createElement("div");v.id="app",Z.body.appendChild(v);const S=L(),P=dc({render:()=>cu(tu,{payload:S,token:R})});P.use(cc()),P.use(Qe),P.mount(v);const ae=()=>{P.unmount(),U.parentNode&&U.parentNode.removeChild(U)};try{return await N(R,"print-renderer-rendered"),{pages:Array.from(Z.querySelectorAll(".print-page")),cleanup:ae,getComputedStyleFn:y.getComputedStyle.bind(y)}}catch(q){throw ae(),q}},K=async R=>{if(typeof R=="string")return{content:R,cleanup:null,getComputedStyleFn:window.getComputedStyle};const U=await X();return{content:U.pages,cleanup:U.cleanup,getComputedStyleFn:U.getComputedStyleFn}},re=async R=>{const U=R||Array.from(document.querySelectorAll(".print-page")),Z=await D({mutateStore:!1,setExporting:!1}),y=t.canvasSize.width,T=t.canvasSize.height;let v=null,S=null,P=null;try{const ae=await K(U);P=ae.cleanup;const q=await Q(ae.content,y,T,!0,ae.getComputedStyleFn);v=q.container,S=q.tempWrapper;const ye=document.createElement("div");ye.style.width="100%",ye.style.display="flex",ye.style.flexDirection="column",ye.style.alignItems="center";const F=Array.from(v.children).filter(A=>!["STYLE","LINK","SCRIPT"].includes(A.tagName));return F.forEach((A,I)=>{const H=A.cloneNode(!0),ke=I===F.length-1;H.style.position="relative",H.style.left="auto",H.style.top="auto",H.style.width=`${y}px`,H.style.height=`${T}px`,H.style.margin=ke?"0":"0 0 20px 0",H.style.backgroundColor=t.canvasBackground,H.style.transform="none",ye.appendChild(H)}),ye.outerHTML}finally{S&&S.parentNode&&S.parentNode.removeChild(S),P&&P(),Z()}},j=async R=>{const U=R.querySelectorAll("svg");if(U.length===0)return;const{Canvg:Z}=await gt(async()=>{const{Canvg:y}=await import("./canvg-ChoTXRpY.js").then(T=>T.i);return{Canvg:y}},[]);U.forEach(y=>{const T=y.parentElement;if(!T)return;const v=getComputedStyle(T),S=parseFloat(v.width),P=parseFloat(v.height),ae=document.createElement("canvas");ae.width=Number.isFinite(S)?Math.max(1,Math.round(S)):10,ae.height=Number.isFinite(P)?Math.max(1,Math.round(P)):10;const q=ae.getContext("2d");if(!q)return;const ye=new XMLSerializer;y.setAttribute("width",`${S}px`),y.setAttribute("height",`${P}px`);const F=ye.serializeToString(y);Z.fromString(q,F).render();const I=document.createElement("img");I.src=ae.toDataURL("image/png"),I.style.width=`${S}px`,I.style.height=`${P}px`,I.style.display="block",y.before(I),T.removeChild(y)})},_=(R,U)=>{Array.from(R.children).filter(y=>!["STYLE","LINK","SCRIPT"].includes(y.tagName)).forEach((y,T)=>{y.querySelectorAll('[data-print-type="page-number"]').forEach(S=>{const P=S.querySelector(".page-number-text");P&&(P.textContent=`${T+1}/${U}`)})})},V=(R,U,Z,y,T,v,S)=>{const P=R.querySelectorAll("[data-print-wrapper]"),ae=t.pageSpacingY||0,q=t.pageSpacingY||0;P.forEach(ye=>{const F=ye;if(F.hasAttribute("data-flow-id"))return;const A=F.getAttribute("data-repeat-per-page")==="true",I=parseFloat(F.style.top)||0;parseFloat(F.style.height)||F.offsetHeight;const H=v&&I<Z+ae,ke=S&&I>=T-y-q;if(H||ke||A){const Y=F.cloneNode(!0);U.appendChild(Y)}})},O=R=>{const U=R.querySelector("tfoot");if(!U)return;const Z=R.getAttribute("data-custom-script");if(Z)try{const y=R.querySelector("tbody"),T=[];y&&Array.from(y.querySelectorAll("tr")).forEach(q=>{const ye={};Array.from(q.querySelectorAll("td")).forEach(A=>{const I=A.getAttribute("data-field");I&&(ye[I]=A.textContent||"")}),Object.keys(ye).length>0&&T.push(ye)});const v=[];Array.from(U.querySelectorAll("tr")).forEach(ae=>{const q={};Array.from(ae.querySelectorAll("td")).forEach(F=>{const A=F.getAttribute("data-field");A&&(q[A]={value:F.getAttribute("data-value")||F.textContent||""})}),v.push(q)}),new Function("data","footerData","columns","type",Z)(T,v,[],"page"),v.length>0&&Array.from(U.querySelectorAll("tr")).forEach((q,ye)=>{v[ye]&&Array.from(q.querySelectorAll("td")).forEach(A=>{const I=A.getAttribute("data-field");if(I&&v[ye][I]!==void 0){let H=v[ye][I];H&&typeof H=="object"&&(H.result!==void 0?H=H.result:H.value!==void 0&&(H=H.value)),A.textContent=String(H)}})});return}catch(y){console.error("Page sum script error:",y)}},se=(R,U,Z,y,T,v)=>{const S=(F,A,I=0)=>{const H=parseFloat(F.getAttribute(A)||"");return Number.isFinite(H)?H:I},P=()=>{let F=Array.from(R.children).filter(ke=>!["STYLE","LINK","SCRIPT"].includes(ke.tagName));if(F.length===0)return;const A=t.pageSpacingY||0,I=t.pageSpacingY||0,H=new Map;F.forEach((ke,Y)=>{const be=ke.getBoundingClientRect();Array.from(ke.querySelectorAll("[data-print-wrapper][data-flow-id]")).forEach(Re=>{const ze=Re.querySelector("table"),Ne=Re.querySelector('[data-auto-height="true"]');if(!ze&&!Ne||ze&&ze.getAttribute("data-auto-paginate")!=="true")return;const Je=S(Re,"data-origin-page-index",Y),it=S(Re,"data-original-top",parseFloat(Re.style.top||"")||0),mt=S(Re,"data-original-height",Re.getBoundingClientRect().height),bt=it+mt,dt=(ze||Ne).getBoundingClientRect().bottom-be.top,Mt=Y*U+dt,Lt=H.get(Je)||[],ct=Lt.find(wt=>Math.abs(wt.originalBottom-bt)<.5);ct?Mt>ct.finalGlobalBottom&&(ct.finalGlobalBottom=Mt):Lt.push({originalBottom:bt,finalGlobalBottom:Mt}),H.set(Je,Lt)})}),H.forEach(ke=>{ke.sort((Y,be)=>Y.originalBottom-be.originalBottom)});for(let ke=0;ke<F.length;ke++){const Y=F[ke];Array.from(Y.querySelectorAll("[data-print-wrapper]")).forEach(me=>{if(me.hasAttribute("data-flow-id")&&(me.hasAttribute("data-flow-paginated")||me.hasAttribute("data-is-split-chunk"))||me.getAttribute("data-repeat-per-page")==="true")return;const Re=S(me,"data-origin-page-index",ke),ze=H.get(Re);if(!ze||ze.length===0)return;const Ne=S(me,"data-original-top",parseFloat(me.style.top||"")||0),Je=T&&Ne<Z+A,it=v&&Ne>=U-y-I;if(Je||it)return;let mt=null;for(let ct=0;ct<ze.length;ct++){const wt=ze[ct];if(wt.originalBottom<=Ne+.01)mt=wt;else break}if(!mt)return;const bt=Ne-mt.originalBottom,At=mt.finalGlobalBottom+bt;let dt=Math.floor(At/U);for(dt<0&&(dt=0);dt>=F.length;){const ct=F[F.length-1],wt=document.createElement("div");wt.className=ct.className,wt.style.cssText=ct.style.cssText,wt.innerHTML="",V(ct,wt,Z,y,U,T,v),R.appendChild(wt),F=Array.from(R.children).filter(kr=>!["STYLE","LINK","SCRIPT"].includes(kr.tagName))}const Mt=F[dt],Lt=At-dt*U;me.parentElement!==Mt&&Mt.appendChild(me),me.style.removeProperty("top"),me.style.setProperty("top",`${Lt}px`,"important")})}};let ae=Array.from(R.children).filter(F=>!["STYLE","LINK","SCRIPT"].includes(F.tagName));for(let F=0;F<ae.length;F++){const A=ae[F];A.querySelectorAll('table, [data-auto-height="true"]').forEach(H=>{var kl;const ke=H.tagName==="TABLE"?H:null,Y=H.getAttribute("data-auto-height")==="true",be=H.closest("[data-print-wrapper]");if(!be||be.parentElement!==A||be.hasAttribute("data-flow-paginated")||ke&&!(ke.getAttribute("data-auto-paginate")==="true"))return;const Re=window.getComputedStyle(be).transform;if(Re&&Re!=="none"&&Re.startsWith("matrix")){const Ye=Re.substring(7,Re.length-1).split(",");if(Ye.length>=4){const nt=parseFloat(Ye[1]),ir=parseFloat(Ye[2]);if(Math.abs(nt)>.001||Math.abs(ir)>.001)return}}if(be.style.height="auto",ke){ke.style.height="auto";const Ye=ke.querySelector("tbody");Ye&&(Ye.style.height="auto");const nt=ke.parentElement;nt&&(nt.classList.remove("h-full","overflow-hidden"),nt.style.height="auto",nt.style.overflow="visible")}else if(Y){const Ye=H;Ye.classList.remove("h-full","overflow-hidden"),Ye.style.height="auto",Ye.style.overflow="visible";const nt=Ye.parentElement;nt&&(nt.style.height="auto",nt.style.overflow="visible")}const ze=A.getBoundingClientRect(),Ne=t.pageSpacingY||0,Je=v?y:0,it=ze.top+U-Je-Ne,bt=be.getBoundingClientRect().top;if((ke||H).getBoundingClientRect().bottom<=it+1||!ke){ke&&O(ke),be.setAttribute("data-flow-paginated","true"),P();return}let dt=-1;const Mt=ke.querySelector("tbody");if(!Mt)return;const Lt=Array.from(Mt.querySelectorAll("tr")),ct=ke.querySelector("tfoot"),wt=ke.getAttribute("data-tfoot-repeat")==="true";let kr=0;ct&&wt&&(kr=ct.getBoundingClientRect().height);for(let Ye=0;Ye<Lt.length;Ye++)if(Lt[Ye].getBoundingClientRect().bottom+kr>it+1){if(dt=Ye,dt===0){const Ut=t.pageSpacingY||0,Wt=T&&Z>0?Z+Ut:Ut;let Yt=Wt;const Gt=S(be,"data-original-top",parseFloat(be.style.top||"")||0);Gt>=Wt&&Gt<=Wt+100&&(Yt=Gt),bt<=Yt+5&&(dt=1)}break}if(dt!==-1){const Ye=document.createElement("div");Ye.className=A.className,Ye.style.cssText=A.style.cssText,Ye.innerHTML="",V(A,Ye,Z,y,U,T,v),F===ae.length-1?R.appendChild(Ye):R.insertBefore(Ye,ae[F+1]),ae=Array.from(R.children).filter(Vt=>!["STYLE","LINK","SCRIPT"].includes(Vt.tagName));const nt=be.cloneNode(!0),ir=t.pageSpacingY||0,Ut=T&&Z>0?Z+ir:ir;let Wt=Ut;const Yt=S(be,"data-original-top",parseFloat(be.style.top||"")||0);Yt>=Ut&&Yt<=Ut+100&&(Wt=Yt),nt.style.removeProperty("top"),nt.style.setProperty("top",`${Wt}px`,"important");const Gt=Lt;for(let Vt=dt;Vt<Gt.length;Vt++)Gt[Vt].remove();dt===0&&be.remove();const Sl=ke.querySelector("tfoot"),lu=ke.getAttribute("data-tfoot-repeat")==="true";Sl&&(lu?O(ke):Sl.remove());const Cl=nt.querySelector("table");Cl.style.height="auto";const Vr=Cl.querySelector("tbody");if(Vr){Vr.style.height="auto";const Vt=Array.from(Vr.querySelectorAll("tr"));for(let jr=0;jr<dt;jr++)(kl=Vt[jr])==null||kl.remove()}Ye.appendChild(nt),be.setAttribute("data-flow-paginated","true"),nt.setAttribute("data-is-split-chunk","true"),P()}else ke&&O(ke),be.setAttribute("data-flow-paginated","true"),P()})}P(),ae=Array.from(R.children).filter(F=>!["STYLE","LINK","SCRIPT"].includes(F.tagName));const q=t.pageSpacingY||0,ye=t.pageSpacingY||0;for(let F=ae.length-1;F>0;F--){const A=ae[F];Array.from(A.querySelectorAll("[data-print-wrapper]")).some(ke=>{if(ke.hasAttribute("data-flow-id"))return!0;if(ke.getAttribute("data-repeat-per-page")==="true")return!1;const be=parseFloat(ke.style.top)||0,me=T&&be<Z+q,Re=v&&be>=U-y-ye;return!(me||Re)})||A.remove()}return ae=Array.from(R.children).filter(F=>!["STYLE","LINK","SCRIPT"].includes(F.tagName)),ae.forEach((F,A)=>{F.style.top=`${A*U}px`}),ae.length},W=(R,U=window.getComputedStyle)=>{const Z=R.cloneNode(!0),y=[[R,Z]];for(;y.length>0;){const[T,v]=y.shift();if(T.nodeType===1){const S=U(T),P=v.style;for(let ae=0;ae<S.length;ae++){const q=S[ae];P.setProperty(q,S.getPropertyValue(q),S.getPropertyPriority(q))}}for(let S=0;S<T.children.length;S++)v.children[S]&&y.push([T.children[S],v.children[S]])}return Z},Q=async(R,U,Z,y=!0,T=window.getComputedStyle)=>{const v=document.createElement("div");v.style.position="fixed",v.style.left="0",v.style.top="0",v.style.width="0",v.style.height="0",v.style.overflow="hidden",v.style.zIndex="-9999",v.style.visibility="hidden",v.style.pointerEvents="none",v.className="print_temp_container",document.body.appendChild(v);const S=document.createElement("div");S.style.position="absolute",S.style.left="0",S.style.top="0",S.style.width=`${U}px`,S.style.height=`${Z}px`,v.appendChild(S);let P=[];typeof R=="string"?(S.innerHTML=R,P=Array.from(S.children).filter(q=>!["STYLE","LINK","SCRIPT"].includes(q.tagName))):Array.isArray(R)?P=R:R.classList.contains("design-workspace")?P=Array.from(R.children):P=[R],P.forEach((q,ye)=>{const F=W(q,T);F.style.position="absolute",F.style.left="0",F.style.top=`${ye*Z}px`,F.style.width=`${U}px`,F.style.height=`${Z}px`,F.style.transform="none",F.style.backgroundColor=t.canvasBackground,F.querySelectorAll('[data-print-exclude="true"]').forEach(H=>H.remove()),F.querySelectorAll(".element-wrapper").forEach((H,ke)=>{const Y=H;Y.setAttribute("data-print-wrapper","true");const be=parseFloat(Y.style.top||""),me=parseFloat(Y.style.height||""),Re=Number.isFinite(be)?be:0,ze=Number.isFinite(me)?me:Y.getBoundingClientRect().height;Y.setAttribute("data-original-top",`${Re}`),Y.setAttribute("data-original-height",`${ze}`),Y.setAttribute("data-origin-page-index",`${ye}`);const Ne=`${ye}-${ke}`;Y.setAttribute("data-wrapper-seq",Ne);const Je=Y.querySelector("table"),it=Y.querySelector('[data-auto-height="true"]');Je||it?Y.setAttribute("data-flow-id",Ne):Y.removeAttribute("data-flow-id")}),E(F),F.querySelectorAll("svg").forEach(H=>{const ke=H.getBoundingClientRect();if(ke.width===0||ke.height===0){const Y=H.getAttribute("width"),be=H.getAttribute("height");Y&&(H.style.width=Y.includes("px")?Y:`${Y}px`),be&&(H.style.height=be.includes("px")?be:`${be}px`)}}),S.appendChild(F)}),await new Promise(q=>setTimeout(q,200)),y&&await j(S);const ae=se(S,Z,t.headerHeight,t.footerHeight,t.showHeaderLine,t.showFooterLine);return _(S,ae),S.style.height=`${Z*ae}px`,{container:S,tempWrapper:v,pagesCount:ae}},ee=async(R,U,Z)=>{var ye;const y=Array.from(R.children).filter(F=>!["STYLE","LINK","SCRIPT"].includes(F.tagName));y.forEach(F=>{F.style.top="0px"});const T=Array.from(document.querySelectorAll('link[href*="monaco-editor"]')),v=T.map(F=>F.parentNode);T.forEach(F=>{var A;return(A=F.parentNode)==null?void 0:A.removeChild(F)});const S=Zt(),P=((ye=S==null?void 0:S.printQuality)==null?void 0:ye.value)??"normal";let ae=1,q=.8;P==="fast"?(ae=.5,q=.6):P==="normal"?(ae=1,q=.8):P==="high"?(ae=1.5,q=.9):P==="ultra"&&(ae=2,q=1);try{const F=async H=>{const ke=await gt(()=>import("./dom-to-image-more.min-Bzng6PqA.js").then(Re=>Re.d),__vite__mapDeps([12,1,13])),be=await((ke==null?void 0:ke.default)||ke).toCanvas(H,{filter:Re=>{if(Re.nodeType===1&&Re.tagName==="LINK"){const ze=Re.href;if(ze&&ze.includes("monaco-editor"))return!1}return!0},scale:ae,width:U,height:Z,useCORS:!0,bgcolor:t.canvasBackground}),me=be.getContext("2d");return me&&(me.mozImageSmoothingEnabled=!0,me.webkitImageSmoothingEnabled=!0,me.msImageSmoothingEnabled=!0,me.imageSmoothingEnabled=!0),be.toDataURL("image/jpeg",q)},I=[];for(let H=0;H<y.length;H+=3){const ke=y.slice(H,H+3),Y=await Promise.all(ke.map(be=>F(be)));I.push(...Y)}return I}finally{T.forEach((F,A)=>{var I;v[A]&&((I=v[A])==null||I.appendChild(F))})}},ve=async R=>{const U=await D({mutateStore:!1,setExporting:!1}),Z=$(!M(R)),y=t.canvasSize.width,T=t.canvasSize.height,v=rl(y),S=rl(T);let P=null,ae=null;try{const q=await K(R);ae=q.cleanup;const{container:ye,tempWrapper:F}=await Q(q.content,y,T,!0,q.getComputedStyleFn);P=F;const A=await gt(()=>import("./pdf-Cjgn4CZy.js").then(Y=>Y.j),__vite__mapDeps([13,1])),I=(A==null?void 0:A.default)||(A==null?void 0:A.jsPDF)||A,H=new I({orientation:y>T?"l":"p",unit:"mm",format:[v,S],hotfixes:["px_scaling"]});return(await ee(ye,y,T)).forEach((Y,be)=>{be>0&&H.addPage([v,S]),H.addImage(Y,"JPEG",0,0,v,S)}),H}finally{P&&P.parentNode&&P.parentNode.removeChild(P),ae&&ae(),Z(),U()}},ce=async(R,U="print-design.pdf")=>{try{const Z=R||Array.from(document.querySelectorAll(".print-page"));(await ve(Z)).save(U)}catch(Z){console.error("Export PDF failed",Z),Fe.error(Qe.global.t("toast.exportPdfFailed"))}},J=async(R,U="print-design.html")=>{try{const Z=R||Array.from(document.querySelectorAll(".print-page")),y=await re(Z),T=`<!DOCTYPE html>
|
|
133
|
+
<html lang="en">
|
|
134
|
+
<head>
|
|
135
|
+
<meta charset="UTF-8">
|
|
136
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
137
|
+
<title>${U}</title>
|
|
138
|
+
<style>
|
|
139
|
+
${kd}
|
|
140
|
+
body {
|
|
141
|
+
background-color: #f3f4f6;
|
|
142
|
+
padding: 20px;
|
|
143
|
+
margin: 0;
|
|
144
|
+
display: flex;
|
|
145
|
+
flex-direction: column;
|
|
146
|
+
align-items: center;
|
|
147
|
+
}
|
|
148
|
+
</style>
|
|
149
|
+
</head>
|
|
150
|
+
<body>
|
|
151
|
+
${y}
|
|
152
|
+
</body>
|
|
153
|
+
</html>`,v=new Blob([T],{type:"text/html;charset=utf-8"}),S=URL.createObjectURL(v),P=document.createElement("a");P.href=S,P.download=U.endsWith(".html")?U:`${U}.html`,document.body.appendChild(P),P.click(),document.body.removeChild(P),URL.revokeObjectURL(S)}catch(Z){console.error("Export HTML failed",Z),Fe.error("Export HTML failed")}},ne=async R=>{const U=$(!M(R));try{const y=(await ve(R)).output("blob"),T=URL.createObjectURL(y);if(/Edg\//.test(navigator.userAgent)){const S=window.open(T,"_blank","noopener,noreferrer");if(!S){URL.revokeObjectURL(T);return}return S.addEventListener("beforeunload",()=>{URL.revokeObjectURL(T)}),S.onload=()=>{try{S.focus(),S.print()}finally{setTimeout(()=>{URL.revokeObjectURL(T)},1e3)}},{status:"success",mode:"browser"}}return await new Promise(S=>{const P=document.createElement("iframe");P.style.position="fixed",P.style.left="0",P.style.top="0",P.style.width="0px",P.style.height="0px",P.style.border="0",P.style.visibility="hidden",P.src=T,document.body.appendChild(P),P.onload=()=>{const ae=P.contentWindow;ae&&(ae.focus(),setTimeout(()=>{ae.print()},100)),setTimeout(()=>{P.parentNode&&P.parentNode.removeChild(P),URL.revokeObjectURL(T),S()},1e3)}}),{status:"success",mode:"browser"}}catch(Z){throw console.error("Print failed",Z),Fe.error("Print failed"),Z}finally{U()}},te=R=>new Promise((U,Z)=>{const y=new FileReader;y.onloadend=()=>U(y.result),y.onerror=()=>Z(new Error("Failed to read PDF blob")),y.readAsDataURL(R)}),ue=(R,U,Z)=>{const y={printer:R.printer,content:U};return Z&&(y.key=Z),(R.jobName||R.copies||R.intervalMs)&&(y.job={...R.jobName?{name:R.jobName}:{},...R.copies?{copies:R.copies}:{},...R.intervalMs?{intervalMs:R.intervalMs}:{}}),(R.pageRange||R.pageSet)&&(y.pages={...R.pageRange?{range:R.pageRange}:{},...R.pageSet?{set:R.pageSet}:{}}),(R.scale||R.orientation)&&(y.layout={...R.scale?{scale:R.scale}:{},...R.orientation?{orientation:R.orientation}:{}}),R.colorMode&&(y.color={mode:R.colorMode}),R.sidesMode&&(y.sides={mode:R.sidesMode}),R.paperSize&&(y.paper={size:R.paperSize}),R.trayBin&&(y.tray={bin:R.trayBin}),y};let z=null,ie="",de=null,fe=Promise.resolve();const B=()=>{z&&z.readyState===WebSocket.OPEN&&z.close(),z=null,ie="",de=null},oe=R=>z&&z.readyState===WebSocket.OPEN&&ie===R?Promise.resolve(z):de||(ie=R,de=new Promise((U,Z)=>{const y=new WebSocket(R),T=()=>{y.removeEventListener("open",T),y.removeEventListener("error",v),z=y,de=null,U(y)},v=()=>{y.removeEventListener("open",T),y.removeEventListener("error",v),B(),Z(new Error("Print connection failed"))};y.addEventListener("open",T),y.addEventListener("error",v)}),de),pe=(R,U,Z,y=3e4)=>(fe=fe.catch(()=>{}).then(()=>new Promise(async(T,v)=>{let S=!1,P=null;const ae=window.setTimeout(()=>{S||(S=!0,B(),v(new Error("Print request timeout")))},y),q=()=>{P&&(P.removeEventListener("message",ye),P.removeEventListener("error",F),P.removeEventListener("close",A))},ye=I=>{if(!S)try{const H=JSON.parse(I.data);(H.status==="success"||H.status==="error"||H.status==="ok"||H.type==="print_result")&&(S=!0,window.clearTimeout(ae),q(),H.status==="success"||H.status==="ok"||H.type==="print_result"&&H.status!=="error"?T(H):v(new Error(H.message||"Print failed")))}catch(H){I.data==="success"||I.data==="ok"?(S=!0,window.clearTimeout(ae),q(),T({status:"success",message:I.data})):(S=!0,window.clearTimeout(ae),q(),v(H instanceof Error?H:new Error("Print failed")))}},F=()=>{S||(S=!0,window.clearTimeout(ae),q(),B(),v(new Error("Print connection failed")))},A=()=>{S||(S=!0,window.clearTimeout(ae),q(),B(),v(new Error("Print connection closed")))};try{P=await oe(R),P.addEventListener("message",ye),P.addEventListener("error",F),P.addEventListener("close",A),P.send(JSON.stringify(U))}catch(I){S=!0,window.clearTimeout(ae),q(),v(I instanceof Error?I:new Error("Print connection failed"))}})),fe),Ae=async(R,U)=>{var S,P,ae;const Z=(U==null?void 0:U.mode)||e.value;if(Z==="browser")return await ne(R);if(!(Z==="local"?d.value==="connected":s.value==="connected"))return await ne(R);const v={...(U==null?void 0:U.options)||(Z==="local"?i:c)};if(Z==="remote"&&r.value&&(m.value||await g(),!v.printer&&m.value)){const ye=((S=(await C(m.value))[0])==null?void 0:S.printer_name)||"";ye&&(v.printer=ye,c.printer=ye)}if(Z==="local"&&r.value&&!v.printer){const{fetchLocalPrinters:q}=Zt(),ye=await q(),F=((P=ye.find(A=>A.isDefault))==null?void 0:P.name)||((ae=ye[0])==null?void 0:ae.name)||"";F&&(v.printer=F,i.printer=F)}if(!v.printer)throw Fe.error(Qe.global.t("toast.printerRequired")),new Error("Printer is required");try{const q=await we(R),ye=await te(q);if(Z==="local"){const I=ue(v,ye,n.secretKey.trim());return await pe(u.value,I,"status",v.timeout||3e4)}if(!m.value)throw Fe.error(Qe.global.t("toast.clientRequired")),new Error("Client is required");const F=ue(v,ye);return F.cmd="submit_task",F.client_id=m.value,await x(F,v.timeout||3e4)}catch(q){throw console.error("Print failed",q),Fe.error(Qe.global.t("toast.printFailed")),q}},Ce=async R=>{if(R.length===0)return"";const U=await new Promise((P,ae)=>{const q=new Image;q.onload=()=>P(q),q.onerror=ae,q.src=R[0]}),Z=U.width,y=U.height,T=y*R.length,v=document.createElement("canvas");v.width=Z,v.height=T;const S=v.getContext("2d");if(!S)throw new Error("Could not get canvas context");S.drawImage(U,0,0);for(let P=1;P<R.length;P++)await new Promise((ae,q)=>{const ye=new Image;ye.onload=()=>{S.drawImage(ye,0,P*y),ae()},ye.onerror=q,ye.src=R[P]});return v.toDataURL("image/jpeg",.8)},xe=async(R,U="print-design")=>{try{const Z=R||Array.from(document.querySelectorAll(".print-page")),y=await D({mutateStore:!1,setExporting:!1}),T=$(!M(Z)),v=t.canvasSize.width,S=t.canvasSize.height;let P=null;const ae=await K(Z);P=ae.cleanup;const{container:q,tempWrapper:ye}=await Q(ae.content,v,S,!0,ae.getComputedStyleFn);try{const F=await ee(q,v,S);if(F.length===0)return;if(h.value){const A=await Ce(F),I=document.createElement("a");I.href=A,I.download=`${U}.jpg`,document.body.appendChild(I),I.click(),document.body.removeChild(I)}else{const A=await gt(()=>import("./jszip.min-DLPWIKb1.js").then(me=>me.j),__vite__mapDeps([14,1])),I=(A==null?void 0:A.default)||A,H=new I;await Promise.all(F.map(async(me,Re)=>{const Ne=await(await fetch(me)).blob();H.file(`${U}-${Re+1}.jpg`,Ne)}));const ke=await H.generateAsync({type:"blob"}),Y=URL.createObjectURL(ke),be=document.createElement("a");be.href=Y,be.download=`${U}.zip`,document.body.appendChild(be),be.click(),document.body.removeChild(be),URL.revokeObjectURL(Y)}}finally{ye&&ye.parentNode&&ye.parentNode.removeChild(ye),P&&P(),T(),y()}}catch(Z){console.error("Export Images failed",Z),Fe.error("Export Images failed")}},Ee=async R=>{try{const U=R||Array.from(document.querySelectorAll(".print-page")),Z=await D({mutateStore:!1,setExporting:!1}),y=$(!M(U)),T=t.canvasSize.width,v=t.canvasSize.height;let S=null;const P=await K(U);S=P.cleanup;const{container:ae,tempWrapper:q}=await Q(P.content,T,v,!0,P.getComputedStyleFn);try{const ye=await ee(ae,T,v);if(ye.length===0)throw new Error("No images generated");const F=await Ce(ye);return await(await fetch(F)).blob()}finally{q&&q.parentNode&&q.parentNode.removeChild(q),S&&S(),y(),Z()}}catch(U){throw console.error("Get Image Blob failed",U),U}},we=async R=>{try{return(await ve(R)).output("blob")}catch(U){throw console.error("Get PDF Blob failed",U),U}};return{getPrintHtml:re,print:Ae,exportPdf:ce,exportHtml:J,exportImages:xe,getPdfBlob:we,getImageBlob:Ee}},Hm={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Nm(t,e){return f(),w("svg",Hm,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M6.4 19L5 17.6l5.6-5.6L5 6.4L6.4 5l5.6 5.6L17.6 5L19 6.4L13.4 12l5.6 5.6l-1.4 1.4l-5.6-5.6z"},null,-1)])])}const Ot=Pe({name:"material-symbols-close",render:Nm}),Um={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Wm(t,e){return f(),w("svg",Um,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M14 20v-2h3q.425 0 .713-.288T18 17v-2q0-.95.55-1.725t1.45-1.1v-.35q-.9-.325-1.45-1.1T18 9V7q0-.425-.288-.712T17 6h-3V4h3q1.25 0 2.125.875T20 7v2q0 .425.288.713T21 10h1v4h-1q-.425 0-.712.288T20 15v2q0 1.25-.875 2.125T17 20zm-7 0q-1.25 0-2.125-.875T4 17v-2q0-.425-.288-.712T3 14H2v-4h1q.425 0 .713-.288T4 9V7q0-1.25.875-2.125T7 4h3v2H7q-.425 0-.712.288T6 7v2q0 .95-.55 1.725T4 11.825v.35q.9.325 1.45 1.1T6 15v2q0 .425.288.713T7 18h3v2z"},null,-1)])])}const Rt=Pe({name:"material-symbols-data-object",render:Wm}),Ym={class:"bg-white dark:bg-gray-900 rounded-lg shadow-xl w-[60vw] h-[80vh] flex flex-col overflow-hidden animate-fade-in"},Gm={class:"h-[60px] flex items-center justify-between px-4 border-b border-gray-200 dark:border-gray-800 shrink-0"},Xm={class:"flex items-center gap-2"},Km={class:"text-lg font-semibold text-gray-800 dark:text-gray-100"},Qm={class:"px-2 py-0.5 rounded bg-gray-200 dark:bg-gray-800 text-gray-600 dark:text-gray-400 text-xs font-mono uppercase"},Jm={class:"flex-1 overflow-hidden relative"},Zm={class:"p-4 border-t border-gray-200 dark:border-gray-800 bg-gray-50 dark:bg-gray-800 flex justify-end rounded-b-lg"},eb=Oe({__name:"CodeEditorModal",props:{visible:{type:Boolean},title:{},value:{},language:{},readOnly:{type:Boolean}},emits:["update:visible","update:value","close"],setup(t,{emit:e}){const r=uc(()=>gt(()=>import("./monaco-BQthl4Am.js"),__vite__mapDeps([15,16])).then(x=>x.Editor)),{t:n}=Ke(),{isDark:o}=Nt(),d=st("modal-container",G(null)),s=t,i=e,c=je(),u=le(()=>({minimap:{enabled:!0},lineNumbers:"on",glyphMargin:!1,folding:!0,wordWrap:"on",automaticLayout:!0,scrollBeyondLastLine:!1,theme:o.value?"vs-dark":"vs",fontSize:14,fontFamily:'Consolas, "Courier New", monospace',renderLineHighlight:"none",overviewRulerLanes:0,hideCursorInOverviewRuler:!0,contextmenu:!0})),m=x=>{i("update:value",x||"")},g=()=>{i("update:visible",!1),i("close")},C=x=>{s.visible&&x.key==="Escape"&&g()};return De(()=>s.visible,x=>{c.setDisableGlobalShortcuts(x)}),ot(()=>{window.addEventListener("keydown",C)}),at(()=>{window.removeEventListener("keydown",C),s.visible&&c.setDisableGlobalShortcuts(!1)}),(x,h)=>(f(),Be(Et,{to:l(d)||"body"},[t.visible?(f(),w("div",{key:0,class:_e([{dark:l(o)},"fixed inset-0 z-[99999] flex items-center justify-center bg-black/50 pointer-events-auto"]),onClick:He(g,["self"])},[a("div",Ym,[a("div",Gm,[a("div",Xm,[a("h3",Km,b(t.title),1),a("span",Qm,b(t.language),1)]),a("button",{onClick:g,class:"p-1 hover:bg-gray-100 dark:hover:bg-gray-800 rounded-full transition-colors text-gray-500 dark:text-gray-400"},[ge(l(Ot),{class:"w-4 h-4"})])]),a("div",Jm,[ge(l(r),{value:t.value,language:t.language,options:{...u.value,readOnly:t.readOnly},"onUpdate:value":m,class:"w-full h-full"},null,8,["value","language","options"])]),a("div",Zm,[a("button",{onClick:g,class:"px-4 py-2 bg-blue-600 dark:bg-blue-500 text-white rounded hover:bg-blue-700 dark:hover:bg-blue-600 transition-colors text-sm"},b(l(n)("common.close")),1)])])],2)):he("",!0)],8,["to"]))}}),sr=St(eb,[["__scopeId","data-v-4c59b77a"]]),tb={class:"bg-white rounded-lg shadow-xl w-[90vw] h-[90vh] flex flex-col overflow-hidden"},rb={class:"relative flex items-center justify-between p-4 border-b border-gray-200"},ob={class:"text-lg font-semibold text-gray-800"},ab={class:"absolute left-1/2 -translate-x-1/2 flex items-center gap-2"},nb=["title"],lb=["title"],sb={class:"text-xs text-gray-600 w-9 text-right select-none"},ib=["innerHTML"],db={class:"p-4 border-t border-gray-200 bg-gray-50 flex justify-end gap-3 rounded-b-lg"},cb=Oe({__name:"PreviewModal",props:{visible:{type:Boolean},htmlContent:{},width:{}},emits:["update:visible"],setup(t,{emit:e}){const r=t,n=e,{t:o}=Ke(),d=je(),s=st("modal-container",G(null)),{exportPdf:i,exportHtml:c,getPdfBlob:u,exportImages:m,getImageBlob:g}=ru(),C=wr(),x=G(null),h=G(null),k=G(100),D=G(!1),M=G(""),$=G(""),E=G("json"),p=J=>{document.documentElement.classList.toggle("previewing",J),document.body.classList.toggle("previewing",J)};De(()=>r.visible,J=>{J||(k.value=100),d.setDisableGlobalShortcuts(J),p(J)});const L=()=>{n("update:visible",!1)},N=()=>{const J={pages:Se(d.pages),canvasSize:Se(d.canvasSize),guides:Se(d.guides),zoom:d.zoom,showGrid:d.showGrid,headerHeight:d.headerHeight,footerHeight:d.footerHeight,showHeaderLine:d.showHeaderLine,showFooterLine:d.showFooterLine,showMinimap:d.showMinimap,canvasBackground:d.canvasBackground};M.value=JSON.stringify(J,null,2),$.value=o("preview.templateJson"),E.value="json",D.value=!0},X=async()=>{try{if(!x.value)return;const J=Array.from(x.value.querySelectorAll(".print-page")),ne=await g(J),te=new FileReader;te.readAsDataURL(ne),te.onloadend=()=>{M.value=te.result,$.value=o("editor.viewImageBlob"),E.value="text",D.value=!0}}catch(J){console.error(J),Fe.error("Failed to generate blob")}},K=async()=>{try{if(!x.value)return;const J=Array.from(x.value.querySelectorAll(".print-page")),ne=await u(J),te=new FileReader;te.readAsDataURL(ne),te.onloadend=()=>{M.value=te.result,$.value=o("editor.viewPdfBlob"),E.value="text",D.value=!0}}catch(J){console.error(J),Fe.error("Failed to generate PDF blob")}},re=()=>{window.dispatchEvent(new CustomEvent("designer:print"))},j=()=>{if(x.value){const J=Array.from(x.value.querySelectorAll(".print-page"));i(J,`${O()}.pdf`)}},_=async()=>{if(x.value){const J=Array.from(x.value.querySelectorAll(".print-page"));await c(J,`${O()}.html`)}},V=async()=>{if(x.value){const J=Array.from(x.value.querySelectorAll(".print-page"));await m(J,O())}},O=()=>{const J=C.templates.find(fe=>fe.id===C.currentTemplateId),te=((J==null?void 0:J.name)||"print-design").trim().replace(/[\\/:*?"<>|]/g,"-").replace(/\s+/g," ").trim()||"print-design",ue=new Date,z=ue.getFullYear(),ie=String(ue.getMonth()+1).padStart(2,"0"),de=String(ue.getDate()).padStart(2,"0");return`${te}-${z}${ie}${de}`},se=()=>{k.value=Math.min(500,k.value+10)},W=()=>{k.value=Math.max(20,k.value-10)},Q=J=>{J.ctrlKey&&(J.preventDefault(),J.deltaY<0?se():W())},ee=J=>{var ne,te;(J.key==="Control"||J.key==="Meta")&&(J.type==="keydown"&&!J.repeat?(ne=h.value)==null||ne.addEventListener("wheel",Q,{passive:!1}):J.type==="keyup"&&((te=h.value)==null||te.removeEventListener("wheel",Q)))},ve=()=>{var J;(J=h.value)==null||J.removeEventListener("wheel",Q)},ce=J=>{r.visible&&J.key==="Escape"&&L(),ee(J)};return ot(()=>{window.addEventListener("keydown",ce),window.addEventListener("keyup",ee),window.addEventListener("blur",ve)}),at(()=>{var J;window.removeEventListener("keydown",ce),window.removeEventListener("keyup",ee),window.removeEventListener("blur",ve),(J=h.value)==null||J.removeEventListener("wheel",Q),r.visible&&d.setDisableGlobalShortcuts(!1),p(!1)}),(J,ne)=>(f(),w(Ie,null,[(f(),Be(Et,{to:l(s)||"body"},[t.visible?(f(),w("div",{key:0,class:"fixed inset-0 z-[99999] flex items-center justify-center bg-black/50 pointer-events-auto",onClick:He(L,["self"])},[a("div",tb,[a("div",rb,[a("h3",ob,b(l(o)("preview.title")),1),a("div",ab,[a("button",{onClick:W,class:"p-1 hover:bg-gray-100 rounded text-gray-600 transition-colors",title:l(o)("preview.zoomOut")},[ge(l(Xc),{class:"w-4 h-4"})],8,nb),Me(a("input",{type:"range",min:"20",max:"500",step:"10","onUpdate:modelValue":ne[0]||(ne[0]=te=>k.value=te),class:"w-32 h-2 bg-gray-200 rounded-lg appearance-none cursor-pointer [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:w-4 [&::-webkit-slider-thumb]:h-4 [&::-webkit-slider-thumb]:bg-blue-600 [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:cursor-pointer [&::-webkit-slider-thumb]:transition-all [&::-webkit-slider-thumb]:hover:scale-110 [&::-moz-range-thumb]:w-4 [&::-moz-range-thumb]:h-4 [&::-moz-range-thumb]:bg-blue-600 [&::-moz-range-thumb]:border-none [&::-moz-range-thumb]:rounded-full [&::-moz-range-thumb]:cursor-pointer [&::-moz-range-thumb]:transition-all [&::-moz-range-thumb]:hover:scale-110"},null,512),[[Ue,k.value,void 0,{number:!0}]]),a("button",{onClick:se,class:"p-1 hover:bg-gray-100 rounded text-gray-600 transition-colors",title:l(o)("preview.zoomIn")},[ge(l(Gc),{class:"w-4 h-4"})],8,lb),a("span",sb,b(k.value)+"%",1)]),a("button",{onClick:L,class:"p-1 hover:bg-gray-100 rounded-full transition-colors text-gray-500"},[ge(l(Ot),{class:"w-4 h-4"})])]),a("div",{class:"flex-1 overflow-auto bg-gray-100 p-8 flex justify-center",ref_key:"wrapperRef",ref:h},[a("div",{ref_key:"previewContainer",ref:x,class:"preview-content",style:Te(`width: ${t.width}px; zoom: ${k.value/100}`),innerHTML:t.htmlContent},null,12,ib)],512),a("div",db,[a("button",{onClick:re,class:"px-4 py-2 bg-blue-600 text-white rounded hover:bg-blue-700 flex items-center gap-2 text-sm transition-colors disabled:opacity-50 disabled:cursor-not-allowed disabled:hover:bg-blue-600"},[ge(l(ml),{class:"text-lg"}),Le(" "+b(l(o)("editor.print")),1)]),a("button",{onClick:j,class:"px-4 py-2 bg-blue-600 text-white rounded hover:bg-blue-700 flex items-center gap-2 text-sm transition-colors disabled:opacity-50 disabled:cursor-not-allowed disabled:hover:bg-blue-600"},[ge(l(Jt),{class:"text-lg"}),Le(" "+b(l(o)("editor.exportPdf")),1)]),a("button",{onClick:V,class:"px-4 py-2 bg-blue-600 text-white rounded hover:bg-blue-700 flex items-center gap-2 text-sm transition-colors disabled:opacity-50 disabled:cursor-not-allowed disabled:hover:bg-blue-600"},[ge(l(Jt),{class:"text-lg"}),Le(" "+b(l(o)("editor.exportImage")),1)]),a("button",{onClick:_,class:"px-4 py-2 bg-blue-600 text-white rounded hover:bg-blue-700 flex items-center gap-2 text-sm transition-colors disabled:opacity-50 disabled:cursor-not-allowed disabled:hover:bg-blue-600"},[ge(l(Jt),{class:"text-lg"}),Le(" "+b(l(o)("editor.exportHtml")),1)]),a("button",{onClick:X,class:"px-4 py-2 border border-gray-300 rounded hover:bg-gray-100 text-sm text-gray-700 flex items-center gap-2 transition-colors disabled:opacity-50 disabled:cursor-not-allowed disabled:hover:bg-gray-100"},[ge(l(Rt),{class:"text-lg"}),Le(" "+b(l(o)("editor.viewImageBlob")),1)]),a("button",{onClick:K,class:"px-4 py-2 border border-gray-300 rounded hover:bg-gray-100 text-sm text-gray-700 flex items-center gap-2 transition-colors disabled:opacity-50 disabled:cursor-not-allowed disabled:hover:bg-gray-100"},[ge(l(Rt),{class:"text-lg"}),Le(" "+b(l(o)("editor.viewPdfBlob")),1)]),a("button",{onClick:N,class:"px-4 py-2 border border-gray-300 rounded hover:bg-gray-100 text-sm text-gray-700 flex items-center gap-2 transition-colors disabled:opacity-50 disabled:cursor-not-allowed disabled:hover:bg-gray-100"},[ge(l(Rt),{class:"text-lg"}),Le(" "+b(l(o)("editor.viewJson")),1)]),a("button",{onClick:L,class:"px-4 py-2 border border-gray-300 rounded hover:bg-gray-100 text-sm text-gray-700 flex items-center gap-2 transition-colors disabled:opacity-50 disabled:cursor-not-allowed disabled:hover:bg-gray-100"},b(l(o)("common.close")),1)])])])):he("",!0)],8,["to"])),ge(sr,{visible:D.value,"onUpdate:visible":ne[1]||(ne[1]=te=>D.value=te),title:$.value,value:M.value,language:E.value,"read-only":""},null,8,["visible","title","value","language"])],64))}}),ub=St(cb,[["__scopeId","data-v-3e59cbc1"]]),pb={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function gb(t,e){return f(),w("svg",pb,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"m9.55 18l-5.7-5.7l1.425-1.425L9.55 15.15l9.175-9.175L20.15 7.4z"},null,-1)])])}const hb=Pe({name:"material-symbols-check",render:gb}),mb={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function bb(t,e){return f(),w("svg",mb,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M19.25 16.4L8.4 5.55L12 2l5.65 5.55q1.1 1.05 1.725 2.488T20 13.1q0 .9-.2 1.725t-.55 1.575m.55 6.2l-3.1-3.1q-1.025.725-2.2 1.113T12 21q-3.325 0-5.663-2.312T4 13.1q0-1.275.4-2.45T5.6 8.4L1.4 4.2l1.4-1.4l18.4 18.4z"},null,-1)])])}Pe({name:"material-symbols-format-color-reset",render:bb});const fb={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function vb(t,e){return f(),w("svg",fb,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"m20.475 23.3l-2.3-2.3h-1.85v-1.85l-2-2V21h-4.65v-4.675H13.5l-2-2H9.675v-1.85l-2-2v3.85H3v-4.65h3.875l-2-2H3V5.8L.7 3.5l1.4-1.4l19.8 19.8zM5 21q-.825 0-1.412-.587T3 19v-2.675h4.675V21zm16-2.9l-1.775-1.775H21zm-3.775-3.775l-.9-.9v-3.75H21v4.65zm-2.9-2.9l-1.75-1.75h1.75zm-3.75-3.75l-.9-.9V3h4.65v4.675zm5.75 0V3H19q.825 0 1.413.588T21 5v2.675zm-8.65-2.9L5.9 3h1.775z"},null,-1)])])}Pe({name:"material-symbols-grid-off",render:vb});const yb={key:0,class:"w-full h-[1px] bg-red-500 rotate-45 absolute"},xb={key:1,class:"w-full h-full bg-[url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwZ+5wNisxL//8n04mEeRAAAhNwX869V4DYAAAAASUVORK5CYII=')] opacity-50"},wb={class:"flex gap-2 mb-3"},kb={class:"flex-1 flex flex-col gap-2"},Sb={class:"relative h-3 rounded bg-[url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwZ+5wNisxL//8n04mEeRAAAhNwX869V4DYAAAAASUVORK5CYII=')] border border-gray-200 dark:border-gray-700"},Cb={class:"w-8 h-8 rounded border border-gray-200 dark:border-gray-700 overflow-hidden relative"},_b={key:0,class:"absolute inset-0 flex items-center justify-center pointer-events-none"},Eb={class:"flex gap-2 mb-3"},Tb={class:"flex-1"},Ab={class:"w-16 text-right text-xs text-gray-500 dark:text-gray-400 flex items-center justify-end"},$b={class:"grid grid-cols-9 gap-1.5 mb-3"},Pb=["onClick","title"],Ib={class:"flex justify-between border-t border-gray-100 dark:border-gray-700 pt-2"},Db={key:0},rr=Oe({__name:"ColorPicker",props:{modelValue:{},disabled:{type:Boolean},defaultColor:{},allowTransparent:{type:Boolean},teleportToBody:{type:Boolean}},emits:["update:modelValue"],setup(t,{emit:e}){const r=t,n=e,{t:o}=Ke(),{isDark:d}=Nt(),s=st("modal-container",G(null)),i=G(!1),c=G(null),u=G(null),m=G({h:0,s:0,v:0,a:1}),g=G(null),C=G(null),x=G(null),h=le(()=>r.modelValue?r.modelValue==="transparent"?"transparent":r.modelValue:r.defaultColor||"#000000"),k=le(()=>r.modelValue==="transparent"),D=le({get:()=>md(m.value.h,m.value.s,m.value.v,m.value.a),set:Q=>{const ee=hr(Q);ee&&(m.value=ee,K())}}),M=le(()=>{const{r:Q,g:ee,b:ve}=mr(m.value.h,m.value.s,m.value.v);return`rgba(${Q}, ${ee}, ${ve}, ${parseFloat(m.value.a.toFixed(2))})`}),$=le(()=>({backgroundColor:`hsl(${m.value.h}, 100%, 50%)`})),E=le(()=>({top:`${(1-m.value.v)*100}%`,left:`${m.value.s*100}%`})),p=le(()=>({left:`${m.value.h/360*100}%`})),L=le(()=>({left:`${m.value.a*100}%`})),N=le(()=>{const{r:Q,g:ee,b:ve}=mr(m.value.h,m.value.s,m.value.v);return{background:`linear-gradient(to right, rgba(${Q},${ee},${ve},0) 0%, rgba(${Q},${ee},${ve},1) 100%)`}});De(()=>r.modelValue,Q=>{if(Q){const ee=hr(Q);ee&&(m.value=ee)}},{immediate:!0});const X=(Q,ee)=>{Q.preventDefault();const ve=ee==="sv"?g.value:ee==="hue"?C.value:x.value;if(!ve)return;const ce=(te,ue)=>{const z=ve.getBoundingClientRect();let ie=(te-z.left)/z.width,de=(ue-z.top)/z.height;ie=Math.max(0,Math.min(1,ie)),de=Math.max(0,Math.min(1,de)),ee==="sv"?(m.value.s=ie,m.value.v=1-de,m.value.a===0&&(m.value.a=1)):ee==="hue"?(m.value.h=ie*360,m.value.a===0&&(m.value.a=1)):ee==="alpha"&&(m.value.a=ie),K()};ce(Q.clientX,Q.clientY);const J=te=>{ce(te.clientX,te.clientY)},ne=()=>{window.removeEventListener("mousemove",J),window.removeEventListener("mouseup",ne)};window.addEventListener("mousemove",J),window.addEventListener("mouseup",ne)},K=()=>{m.value.a===0&&r.allowTransparent?n("update:modelValue","transparent"):n("update:modelValue",md(m.value.h,m.value.s,m.value.v,m.value.a))},re=G({top:"100%",left:"0",marginTop:"8px"}),j=()=>{if(!c.value)return;const Q=c.value.getBoundingClientRect(),ee=window.innerWidth,ve=window.innerHeight,ce=240,J=350,ne={};if(r.teleportToBody){const te=Q.left+ce<=ee-20,ue=Q.bottom+J<=ve-10;ne.position="fixed",ne.left=`${te?Q.left:Math.max(8,Q.right-ce)}px`,ne.top=`${ue?Q.bottom+8:Math.max(8,Q.top-J-8)}px`,re.value=ne;return}Q.left+ce>ee-20?(ne.left="auto",ne.right="0"):(ne.left="0",ne.right="auto"),Q.bottom+J>ve-10?(ne.top="auto",ne.bottom="100%",ne.marginTop="0",ne.marginBottom="8px"):(ne.top="100%",ne.bottom="auto",ne.marginTop="8px",ne.marginBottom="0"),re.value=ne},_=Q=>{if(!i.value)return;const ee=Q.target;if(!ee)return;const ve=c.value,ce=u.value;if(!ve)return;const J=ve.contains(ee)||ee.closest(".color-picker-trigger"),ne=ce&&ce.contains(ee)||ee.closest(".color-picker-dropdown");!J&&!ne&&(i.value=!1)},V=async Q=>{r.disabled||(Q&&Q.stopPropagation(),i.value=!i.value,i.value&&(await tt(),j()))},O=()=>{i.value=!1};De(i,Q=>{r.teleportToBody&&(Q?(j(),window.addEventListener("scroll",j,!0),window.addEventListener("resize",j)):(window.removeEventListener("scroll",j,!0),window.removeEventListener("resize",j)))});const se=["#000000","#ffffff","#ff0000","#00ff00","#0000ff","#ffff00","#00ffff","#ff00ff","#f44336","#e91e63","#9c27b0","#673ab7","#3f51b5","#2196f3","#03a9f4","#00bcd4","#009688","#4caf50","#8bc34a","#cddc39","#ffeb3b","#ffc107","#ff9800","#ff5722","#795548","#9e9e9e","#607d8b"],W=Q=>{const ee=hr(Q);ee&&(m.value=ee,K())};return ot(()=>{document.addEventListener("mousedown",_)}),at(()=>{document.removeEventListener("mousedown",_)}),(Q,ee)=>(f(),w("div",{class:"relative flex",ref_key:"containerRef",ref:c},[a("div",{class:"flex color-picker-trigger",onClick:V,onMousedown:ee[0]||(ee[0]=He(()=>{},["stop"]))},[ic(Q.$slots,"trigger",{open:i.value,color:h.value,disabled:t.disabled},()=>[a("div",{class:_e(["w-6 h-6 rounded border border-gray-300 dark:border-gray-600 cursor-pointer flex items-center justify-center overflow-hidden transition-all hover:border-blue-500",{"opacity-50 cursor-not-allowed":t.disabled,"ring-2 ring-blue-500 ring-offset-1":i.value}]),style:Te({backgroundColor:k.value?"transparent":h.value})},[t.modelValue?he("",!0):(f(),w("div",yb)),k.value?(f(),w("div",xb)):he("",!0)],6)])],32),(f(),Be(Et,{to:l(s)||"body",disabled:!t.teleportToBody},[i.value?(f(),w("div",{key:0,ref_key:"dropdownRef",ref:u,class:_e(["color-picker-dropdown bg-white dark:bg-gray-800 rounded-lg shadow-xl border border-gray-200 dark:border-gray-700 p-3 w-[240px] pointer-events-auto",[t.teleportToBody?"fixed z-[100000]":"absolute z-[100]",{dark:l(d)}]]),style:Te(re.value),onClick:ee[7]||(ee[7]=He(()=>{},["stop"])),onMousedown:ee[8]||(ee[8]=He(()=>{},["stop"]))},[a("div",{ref_key:"svPanelRef",ref:g,class:"w-full h-32 rounded relative cursor-crosshair mb-3",style:Te($.value),onMousedown:ee[1]||(ee[1]=He(ve=>X(ve,"sv"),["stop"]))},[ee[9]||(ee[9]=a("div",{class:"absolute inset-0 bg-gradient-to-r from-white to-transparent rounded"},null,-1)),ee[10]||(ee[10]=a("div",{class:"absolute inset-0 bg-gradient-to-t from-black to-transparent rounded"},null,-1)),a("div",{class:"absolute w-3 h-3 border-2 border-white rounded-full shadow-sm -ml-1.5 -mt-1.5 pointer-events-none",style:Te(E.value)},null,4)],36),a("div",wb,[a("div",kb,[a("div",{ref_key:"hueSliderRef",ref:C,class:"h-3 rounded relative cursor-pointer border border-gray-200 dark:border-gray-700",style:{background:"linear-gradient(to right, #f00 0%, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%)"},onMousedown:ee[2]||(ee[2]=He(ve=>X(ve,"hue"),["stop"]))},[a("div",{class:"absolute top-1/2 -translate-y-1/2 w-3 h-3 bg-white dark:bg-gray-100 border border-gray-300 dark:border-gray-600 rounded-full shadow-sm -ml-1.5 pointer-events-none",style:Te(p.value)},null,4)],544),a("div",Sb,[a("div",{ref_key:"alphaSliderRef",ref:x,class:"absolute inset-0 cursor-pointer rounded",style:Te(N.value),onMousedown:ee[3]||(ee[3]=He(ve=>X(ve,"alpha"),["stop"]))},[a("div",{class:"absolute top-1/2 -translate-y-1/2 w-3 h-3 bg-white dark:bg-gray-100 border border-gray-300 dark:border-gray-600 rounded-full shadow-sm -ml-1.5 pointer-events-none",style:Te(L.value)},null,4)],36)])]),a("div",Cb,[ee[12]||(ee[12]=a("div",{class:"absolute inset-0 bg-[url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwZ+5wNisxL//8n04mEeRAAAhNwX869V4DYAAAAASUVORK5CYII=')] opacity-50"},null,-1)),a("div",{class:"absolute inset-0",style:Te({backgroundColor:M.value})},null,4),m.value.a===0?(f(),w("div",_b,[...ee[11]||(ee[11]=[a("div",{class:"w-full h-[1px] bg-red-500 rotate-45"},null,-1)])])):he("",!0)])]),a("div",Eb,[a("div",Tb,[Me(a("input",{type:"text","onUpdate:modelValue":ee[4]||(ee[4]=ve=>D.value=ve),class:"w-full text-xs px-2 py-1 border border-gray-300 dark:border-gray-700 bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 rounded focus:border-blue-500 outline-none font-mono uppercase",placeholder:"#000000"},null,512),[[Ue,D.value]])]),a("div",Ab,b(Math.round(m.value.a*100))+"% ",1)]),a("div",$b,[(f(),w(Ie,null,qe(se,ve=>a("div",{key:ve,class:_e(["w-4 h-4 rounded-sm cursor-pointer border border-transparent hover:scale-110 hover:border-gray-400 dark:hover:border-gray-500 hover:z-10 transition-all relative",{"ring-2 ring-blue-500 ring-offset-1 z-10":D.value===ve}]),style:Te({backgroundColor:ve}),onClick:ce=>W(ve),title:ve},null,14,Pb)),64))]),a("div",Ib,[a("button",{onClick:ee[5]||(ee[5]=ve=>{Q.$emit("update:modelValue",void 0),O()}),class:"text-xs text-red-600 dark:text-red-400 hover:text-red-800 dark:hover:text-red-300 hover:bg-red-50 dark:hover:bg-red-900/30 px-2 py-1 rounded transition-colors"},b(l(o)("colorPicker.clear")),1),t.allowTransparent?(f(),w("div",Db,[a("button",{onClick:ee[6]||(ee[6]=ve=>{Q.$emit("update:modelValue","transparent"),O()}),class:"text-xs text-gray-600 dark:text-gray-400 hover:text-gray-800 dark:hover:text-gray-200 hover:bg-gray-100 dark:hover:bg-gray-700 px-2 py-1 rounded transition-colors"},b(l(o)("colorPicker.transparent")),1)])):he("",!0)])],38)):he("",!0)],8,["to","disabled"]))],512))}}),Mb={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Lb(t,e){return f(),w("svg",Mb,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M12 20q-.825 0-1.412-.587T10 18t.588-1.412T12 16t1.413.588T14 18t-.587 1.413T12 20m0-6q-.825 0-1.412-.587T10 12t.588-1.412T12 10t1.413.588T14 12t-.587 1.413T12 14m0-6q-.825 0-1.412-.587T10 6t.588-1.412T12 4t1.413.588T14 6t-.587 1.413T12 8"},null,-1)])])}const ou=Pe({name:"material-symbols-more-vert",render:Lb}),zb={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Rb(t,e){return f(),w("svg",zb,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M3 21v-4.25L16.2 3.575q.3-.275.663-.425t.762-.15t.775.15t.65.45L20.425 5q.3.275.438.65T21 6.4q0 .4-.137.763t-.438.662L7.25 21zM17.6 7.8L19 6.4L17.6 5l-1.4 1.4z"},null,-1)])])}const au=Pe({name:"material-symbols-edit",render:Rb}),Fb={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function qb(t,e){return f(),w("svg",Fb,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M9 20h11q.825 0 1.413-.587T22 18v-2H9zM2 8h5V4H4q-.825 0-1.412.588T2 6zm0 6h5v-4H2zm2 6h3v-4H2v2q0 .825.588 1.413T4 20m5-6h13v-4H9zm0-6h13V6q0-.825-.587-1.412T20 4H9z"},null,-1)])])}const Bb=Pe({name:"material-symbols-view-list",render:qb}),Ob={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Vb(t,e){return f(),w("svg",Ob,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M8 18h8v-2H8zm0-4h8v-2H8zm-2 8q-.825 0-1.412-.587T4 20V4q0-.825.588-1.412T6 2h8l6 6v12q0 .825-.587 1.413T18 22zm7-13h5l-5-5z"},null,-1)])])}const jb=Pe({name:"material-symbols-description",render:Vb}),Hb={class:"h-[60px] flex items-center justify-between px-4 border-b border-gray-200 dark:border-gray-800 shrink-0"},Nb={class:"text-lg font-semibold text-gray-800 dark:text-gray-100"},Ub={class:"p-4"},Wb={class:"mb-4 space-y-3"},Yb={key:0,class:"block text-sm font-medium text-gray-700 dark:text-gray-200"},Gb=["onUpdate:modelValue","placeholder"],Xb=["value","placeholder","min","max","step","onInput"],Kb=["onUpdate:modelValue","rows","placeholder"],Qb=["onUpdate:modelValue"],Jb={key:0,value:""},Zb=["value"],ef={key:5,class:"space-y-2"},tf=["onUpdate:modelValue","value"],rf=["onUpdate:modelValue"],of=["onUpdate:modelValue"],af={class:"flex justify-end gap-2"},nf=["disabled"],Or=Oe({__name:"InputModal",props:{show:{type:Boolean},initialValue:{},initialValues:{},title:{},placeholder:{},fields:{}},emits:["close","save"],setup(t,{emit:e}){const r=t,n=e,{t:o}=Ke(),{isDark:d}=Nt(),s=je(),i=st("modal-container",G(null)),c=G(null),u=G({}),m=le(()=>r.fields&&r.fields.length>0?r.fields:[{key:"value",type:"input",required:!0,placeholder:r.placeholder||o("input.placeholder")}]),g=le(()=>!!(r.fields&&r.fields.length>0)),C=E=>(E.type==="number",""),x=()=>{const E={};m.value.forEach(p=>{if(r.initialValues&&Object.prototype.hasOwnProperty.call(r.initialValues,p.key)){E[p.key]=r.initialValues[p.key];return}if(!g.value&&p.key==="value"){E[p.key]=r.initialValue||"";return}E[p.key]=C(p)}),u.value=E},h=()=>{setTimeout(()=>{var p;const E=(p=c.value)==null?void 0:p.querySelector("input, textarea, select");E==null||E.focus()},100)};De(()=>r.show,E=>{if(E){x(),h(),s.setDisableGlobalShortcuts(!0);return}s.setDisableGlobalShortcuts(!1)});const k=E=>{if(E===""||E===null||E===void 0)return"";const p=Number(E);return Number.isFinite(p)?p:""},D=()=>{for(const E of m.value){const p=u.value[E.key],L=p===""||p===null||p===void 0;if(E.required&&L)return!1;if(E.type==="number"&&!L){const N=Number(p);if(!Number.isFinite(N)||typeof E.min=="number"&&N<E.min||typeof E.max=="number"&&N>E.max)return!1}}return!0},M=le(()=>{for(const E of m.value){const p=u.value[E.key],L=p===""||p===null||p===void 0;if(E.required&&L||E.type==="number"&&!L&&!Number.isFinite(Number(p)))return!1}return!0}),$=()=>{if(!D())return;if(!g.value){const p=String(u.value.value??"").trim();if(!p)return;n("save",p),n("close");return}const E={};m.value.forEach(p=>{const L=u.value[p.key];if(p.type==="number"){E[p.key]=L===""||L===null||L===void 0?null:Number(L);return}E[p.key]=L}),n("save",E),n("close")};return at(()=>{r.show&&s.setDisableGlobalShortcuts(!1)}),(E,p)=>(f(),Be(Et,{to:l(i)||"body"},[t.show?(f(),w("div",{key:0,class:_e([{dark:l(d)},"fixed inset-0 z-[2000] flex items-center justify-center bg-black/50 pointer-events-auto"])},[a("div",{ref_key:"modalRef",ref:c,class:"bg-white dark:bg-gray-900 rounded-lg shadow-xl w-96 animate-in fade-in zoom-in duration-200 flex flex-col overflow-hidden"},[a("div",Hb,[a("h3",Nb,b(t.title||l(o)("input.title")),1),a("button",{onClick:p[0]||(p[0]=L=>n("close")),class:"p-1 hover:bg-gray-100 dark:hover:bg-gray-800 rounded-full transition-colors text-gray-500 dark:text-gray-400"},[ge(l(Ot),{class:"w-4 h-4"})])]),a("div",Ub,[a("div",Wb,[(f(!0),w(Ie,null,qe(m.value,L=>(f(),w("div",{key:L.key,class:"space-y-1"},[L.label?(f(),w("label",Yb,b(L.label),1)):he("",!0),L.type==="input"?Me((f(),w("input",{key:1,"onUpdate:modelValue":N=>u.value[L.key]=N,type:"text",class:"w-full px-3 py-2 border border-gray-300 dark:border-gray-700 bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:L.placeholder||t.placeholder||l(o)("input.placeholder"),onKeydown:[_t($,["enter"]),p[1]||(p[1]=_t(N=>n("close"),["esc"]))]},null,40,Gb)),[[Ue,u.value[L.key]]]):L.type==="number"?(f(),w("input",{key:2,value:u.value[L.key],type:"number",class:"w-full px-3 py-2 border border-gray-300 dark:border-gray-700 bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:L.placeholder||t.placeholder||l(o)("input.placeholder"),min:L.min,max:L.max,step:L.step??1,onInput:N=>u.value[L.key]=k(N.target.value),onKeydown:[_t($,["enter"]),p[2]||(p[2]=_t(N=>n("close"),["esc"]))]},null,40,Xb)):L.type==="textarea"?Me((f(),w("textarea",{key:3,"onUpdate:modelValue":N=>u.value[L.key]=N,class:"w-full px-3 py-2 border border-gray-300 dark:border-gray-700 bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500",rows:L.rows??4,placeholder:L.placeholder||t.placeholder||l(o)("input.placeholder"),onKeydown:p[3]||(p[3]=_t(N=>n("close"),["esc"]))},null,40,Kb)),[[Ue,u.value[L.key]]]):L.type==="select"?Me((f(),w("select",{key:4,"onUpdate:modelValue":N=>u.value[L.key]=N,class:"w-full px-3 py-2 border border-gray-300 dark:border-gray-700 bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500",onKeydown:p[4]||(p[4]=_t(N=>n("close"),["esc"]))},[L.required?he("",!0):(f(),w("option",Jb,b(L.placeholder||l(o)("input.placeholder")),1)),(f(!0),w(Ie,null,qe(L.options||[],N=>(f(),w("option",{key:String(N.value),value:N.value},b(N.label),9,Zb))),128))],40,Qb)),[[yt,u.value[L.key]]]):L.type==="radio"?(f(),w("div",ef,[(f(!0),w(Ie,null,qe(L.options||[],N=>(f(),w("label",{key:String(N.value),class:"flex items-center gap-2 text-sm text-gray-700 dark:text-gray-200"},[Me(a("input",{"onUpdate:modelValue":X=>u.value[L.key]=X,type:"radio",value:N.value},null,8,tf),[[vt,u.value[L.key]]]),a("span",null,b(N.label),1)]))),128))])):L.type==="date"?Me((f(),w("input",{key:6,"onUpdate:modelValue":N=>u.value[L.key]=N,type:"date",class:"w-full px-3 py-2 border border-gray-300 dark:border-gray-700 bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500",onKeydown:p[5]||(p[5]=_t(N=>n("close"),["esc"]))},null,40,rf)),[[Ue,u.value[L.key]]]):L.type==="datetime"?Me((f(),w("input",{key:7,"onUpdate:modelValue":N=>u.value[L.key]=N,type:"datetime-local",class:"w-full px-3 py-2 border border-gray-300 dark:border-gray-700 bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500",onKeydown:p[6]||(p[6]=_t(N=>n("close"),["esc"]))},null,40,of)),[[Ue,u.value[L.key]]]):he("",!0)]))),128))]),a("div",af,[a("button",{onClick:p[7]||(p[7]=L=>n("close")),class:"px-4 py-2 text-sm font-medium text-gray-700 dark:text-gray-300 bg-gray-100 dark:bg-gray-800 hover:bg-gray-200 dark:hover:bg-gray-700 rounded-md transition-colors"},b(l(o)("common.cancel")),1),a("button",{onClick:$,disabled:!M.value,class:"px-4 py-2 text-sm font-medium text-white bg-blue-600 dark:bg-blue-500 hover:bg-blue-700 dark:hover:bg-blue-600 rounded-md transition-colors disabled:opacity-50 disabled:cursor-not-allowed"},b(l(o)("common.confirm")),9,nf)])])],512)],2)):he("",!0)],8,["to"]))}}),lf=["title"],sf={class:"flex-1 overflow-hidden flex items-center gap-1.5 text-left"},df={key:0,class:"inline-flex items-center px-1.5 py-0.5 rounded border text-[10px] leading-none flex-shrink-0 bg-gray-100 text-gray-600 border-gray-200 dark:bg-gray-700 dark:text-gray-300 dark:border-gray-600"},cf={class:"truncate"},uf={key:0,class:"absolute top-full left-0 mt-2 w-[260px] bg-white dark:bg-gray-800 rounded-lg shadow-xl border border-gray-200 dark:border-gray-700 z-[100] flex flex-col max-h-[500px]"},pf={class:"flex-1 overflow-y-auto py-1"},gf={key:0,class:"px-4 py-3 text-sm text-gray-500 dark:text-gray-400 text-center"},hf=["onClick","onContextmenu","title"],mf={class:"flex items-center gap-2 overflow-hidden flex-1"},bf={class:"w-2 h-2 flex items-center justify-center flex-shrink-0"},ff={key:0,class:"w-1.5 h-1.5 rounded-full bg-blue-500"},vf={key:0,class:"inline-flex items-center px-1.5 py-0.5 rounded border text-[10px] leading-none flex-shrink-0 bg-gray-100 text-gray-600 border-gray-200 dark:bg-gray-700 dark:text-gray-300 dark:border-gray-600"},yf=["onClick"],xf={class:"border-t border-gray-100 dark:border-gray-700 p-1"},wf=["onClick","disabled"],kf=["src"],Sf=["src"],Cf={key:4,class:"w-3.5 h-3.5 inline-flex items-center justify-center"},Pn=2,_f=Oe({__name:"TemplateDropdown",setup(t){const{t:e}=Ke(),r=wr(),n=je(),o=st("modal-container",G(null)),d=G(!1),s=G(null),i=G(null),c=G({}),u=G(!1),m=G("create"),g=G(""),C=G({}),x=G(null),h=G(!1),k=G(""),D=G(null),M=G([]),$=y=>{const T=n.templateModalFormConfig;if(!T)return null;const v=y;return T[v]?T[v]||null:y==="copy"?T.copy||T.edit||T.create||null:y==="edit"?T.edit||T.create||null:T.create||null},E=(y,T)=>{var H,ke;if(!y)return{};const v=r.templates.find(Y=>Y.id===y),S=(v==null?void 0:v.ext)||{},P=((ke=(H=r.templateDetailCache)==null?void 0:H[y])==null?void 0:ke.ext)||{},ae={...S,...P},q=S.templateModalForm||{},ye=P.templateModalForm||{};let F={};const A=T;if(q[A]&&typeof q[A]=="object")F={...q[A]};else if(ye[A]&&typeof ye[A]=="object")F={...ye[A]};else{const Y=q.lastMode||ye.lastMode;Y&&q[Y]&&typeof q[Y]=="object"?F={...q[Y]}:Y&&ye[Y]&&typeof ye[Y]=="object"&&(F={...ye[Y]})}const I={...ae,...F};return delete I.templateModalForm,I},p=(y,T,v=null)=>{const S=$(T),P=S!=null&&S.initialValues&&typeof S.initialValues=="object"?{...S.initialValues}:{},ae=E(v,T),q={...P,...ae};return Object.prototype.hasOwnProperty.call(q,"name")||(q.name=y),q},L=le(()=>{var y;return(y=$(m.value))==null?void 0:y.fields}),N=y=>typeof y=="string"?y.trim():String((y==null?void 0:y.name)??"").trim(),X=y=>{if(!y||typeof y=="string")return;const T={...y};return delete T.name,Object.keys(T).length>0?T:void 0},K=y=>!y||!/^[a-z0-9]+(?:-[a-z0-9]+)*:[a-z0-9-]+$/i.test(y)?null:`https://api.iconify.design/${encodeURIComponent(y)}.svg`,re=y=>{const T=(y||"").trim().toLowerCase();return T==="red"||T==="#ff4d4f"||T==="红色"||T==="红"?{backgroundColor:"#fef2f2",color:"#dc2626",borderColor:"#fecaca"}:T==="white"||T==="#ffffff"||T==="白色"||T==="白"?{backgroundColor:"#ffffff",color:"#374151",borderColor:"#d1d5db"}:T==="blue"||T==="#3b82f6"||T==="蓝色"||T==="蓝"?{backgroundColor:"#eff6ff",color:"#1d4ed8",borderColor:"#bfdbfe"}:T==="green"||T==="#22c55e"||T==="绿色"||T==="绿"?{backgroundColor:"#f0fdf4",color:"#15803d",borderColor:"#bbf7d0"}:T==="orange"||T==="#f97316"||T==="橙色"||T==="橙"?{backgroundColor:"#fff7ed",color:"#c2410c",borderColor:"#fed7aa"}:T?{backgroundColor:T,color:"#ffffff",borderColor:T}:{backgroundColor:"#f3f4f6",color:"#4b5563",borderColor:"#e5e7eb"}},j=y=>{var v;const T=(v=y.ext)==null?void 0:v.templateTags;return Array.isArray(T)?T.map(S=>{if(!S||typeof S!="object")return null;const P=String(S.label??"").trim();return P?{key:S.key?String(S.key):void 0,label:P,color:S.color?String(S.color):void 0}:null}).filter(S=>S!==null):[]},_=le(()=>{const y={};return r.templates.forEach(T=>{const v=j(T);y[T.id]={visible:v.slice(0,Pn),overflow:v.length>Pn?v.length-Pn:0}}),y}),V=y=>{var T;return((T=_.value[y.id])==null?void 0:T.visible)||[]},O=y=>{var T;return((T=_.value[y.id])==null?void 0:T.overflow)||0};ot(async()=>{await r.loadTemplates(),!r.currentTemplateId&&r.templates.length>0&&r.loadTemplate(r.templates[0].id),document.addEventListener("click",se),window.addEventListener("designer:new-template",ue),window.addEventListener("designer:save-as",z)}),at(()=>{document.removeEventListener("click",se),window.removeEventListener("designer:new-template",ue),window.removeEventListener("designer:save-as",z)});const se=y=>{var q;const T=y.composedPath(),v=s.value&&T.includes(s.value),P=(((q=s.value)==null?void 0:q.getRootNode())||document).querySelector(".row-menu-content"),ae=P&&T.includes(P);!v&&!ae&&(d.value=!1,i.value=null)},W=le(()=>r.templates.find(y=>y.id===r.currentTemplateId)||null),Q=le(()=>W.value?W.value.name:e("template.select")),ee=()=>{d.value=!d.value,d.value||(i.value=null)},ve=y=>{if(r.currentTemplateId){const T=r.templates.find(v=>v.id===r.currentTemplateId);T&&ht(T)&&r.saveCurrentTemplate(T.name)}r.loadTemplate(y.id),d.value=!1},ce=(y,T,v)=>{const S=r.templates.find(A=>A.id===v);if(!S)return;const P=160,q=Math.max(1,Ce(S).length)*30+10;let ye=Math.max(5,Math.min(y,window.innerWidth-P-5)),F=T;F+q>window.innerHeight-5&&(F=Math.max(5,T-q)),c.value={top:`${F}px`,left:`${ye}px`},i.value=v},J=(y,T)=>{if(y.stopPropagation(),i.value===T){i.value=null;return}const S=y.currentTarget.getBoundingClientRect();ce(S.right-160,S.bottom+5,T)},ne=(y,T)=>{y.stopPropagation(),y.preventDefault(),ce(y.clientX,y.clientY,T)},te=()=>r.templates.find(y=>y.id===i.value),ue=()=>{i.value=null,m.value="create",g.value="",C.value=p("","create"),u.value=!0,d.value=!1},z=async y=>{var ae;const v=((ae=y.detail)==null?void 0:ae.id)||r.currentTemplateId;if(!v)return;await r.fetchTemplateDetail(v);const S=r.templates.find(q=>q.id===v),P=S?`${S.name} Copy`:"";m.value="create",x.value=v,g.value=P,C.value=p(P,"create",v),u.value=!0,d.value=!1,i.value=null},ie=async y=>{if(!ht(y)){Fe.warning(e("toast.templateReadOnly"));return}await r.fetchTemplateDetail(y.id),i.value=null,m.value="edit",x.value=y.id,g.value=y.name,C.value=p(y.name,"edit",y.id),u.value=!0,d.value=!1},de=async y=>{if(!tr(y)){Fe.warning(e("toast.templateCopyNotAllowed"));return}await r.fetchTemplateDetail(y.id),m.value="copy",x.value=y.id,g.value=`${y.name} Copy`,C.value=p(`${y.name} Copy`,"copy",y.id),u.value=!0,d.value=!1,i.value=null},fe=async y=>{if(!er(y)){Fe.warning(e("toast.templateDeleteNotAllowed"));return}await Tr.show(e("template.confirmDelete",{name:y.name}))&&(await r.deleteTemplate(y.id),!r.currentTemplateId&&r.templates.length>0&&r.loadTemplate(r.templates[0].id)),i.value=null},B=y=>{var P,ae;const T=r.currentTemplateId===y.id,v=T?n.testData||{}:((P=y.data)==null?void 0:P.testData)||{},S=T?n.pages:((ae=y.data)==null?void 0:ae.pages)||[];return pg(S,v)},oe=async y=>{i.value=null;const T=await r.fetchTemplateDetail(y.id);D.value=T||y;const v=B(D.value);M.value=Object.keys(v),k.value=JSON.stringify(v,null,2),h.value=!0,d.value=!1},pe=le(()=>[{key:"testData",actionKey:"testData",label:e("common.testData"),iconComponent:Rt},{key:"variablesPanel",actionKey:"variablesPanel",label:e("common.variables"),iconComponent:Bb},{key:"edit",actionKey:"edit",label:e("common.edit"),iconComponent:au,disabled:({item:y})=>!ht(y)},{key:"copy",actionKey:"copy",label:e("common.copy"),iconComponent:lr,disabled:({item:y})=>!tr(y)},{key:"delete",actionKey:"delete",label:e("common.delete"),iconComponent:nr,danger:!0,disabled:({item:y})=>!er(y)}]),Ae=(y,T,v)=>{if(v==="replace")return T;const S=[...y];return T.forEach(P=>{const ae=S.findIndex(q=>q.key===P.key);if(ae>=0){S[ae]={...S[ae],...P};return}S.push(P)}),S};function Ce(y){const T=n.templateContextMenuConfig,v=((T==null?void 0:T.items)||[]).map(P=>({...P}));return Ae(pe.value,v,(T==null?void 0:T.mode)==="replace"?"replace":"append").filter(P=>typeof P.hidden=="function"?!P.hidden({source:"template",item:y}):!P.hidden)}const xe=(y,T)=>typeof y.disabled=="function"?y.disabled({source:"template",item:T}):!!y.disabled,Ee=(y,T)=>{const v=y||"";if(v==="testData"){oe(T);return}if(v==="variablesPanel"){n.setShowVariablesPanel(!0);return}if(v==="fieldsPanel"){n.setShowFieldsPanel(!0);return}if(v==="sampleData"){n.setShowSampleDataModal(!0);return}if(v==="edit"){ie(T);return}if(v==="copy"){de(T);return}v==="delete"&&fe(T)},we=async(y,T)=>{if(!xe(y,T)){i.value=null,d.value=!1,Ee(y.actionKey,T);try{typeof y.onClick=="function"&&await y.onClick({source:"template",item:T}),y.eventName&&n.emitContextMenuEvent(y.eventName,{source:"template",actionKey:y.actionKey||null,key:y.key,item:T})}catch(v){console.error("Template context menu action failed",v)}}},R=()=>{var S;const y=D.value,T=new Set(M.value||[]);if(D.value=null,M.value=[],!y)return;let v=null;try{const P=((S=k.value)==null?void 0:S.trim())||"{}",ae=JSON.parse(P);ae&&typeof ae=="object"&&!Array.isArray(ae)&&(v=ae)}catch{v=null}if(!v){Fe.error(e("common.invalidJson"));return}if(T.size>0){const P=Object.keys(v);if(P.length!==T.size||P.some(q=>!T.has(q))){Fe.error(e("common.testDataKeyChanged"));return}}y.data={...y.data||{},testData:v},y.updatedAt=Date.now(),r.currentTemplateId===y.id?(n.testData=v,r.saveCurrentTemplate(y.name)):r.updateTemplate(y.id,{data:y.data})},U=y=>{const T=N(y),v=X(y);if(T)if(m.value==="create"){if(r.currentTemplateId){const P=r.templates.find(ae=>ae.id===r.currentTemplateId);P&&ht(P)&&r.saveCurrentTemplate(P.name)}const S=je();x.value||S.resetCanvas(),r.createTemplate(T,void 0,v)}else m.value==="edit"&&x.value?r.editTemplate(x.value,T,v):m.value==="copy"&&x.value&&r.copyTemplate(x.value,T,v)},Z=le(()=>m.value==="edit"?e("template.edit"):m.value==="copy"?e("common.copy"):m.value==="create"&&x.value?e("editor.saveAsTemplate"):e("template.new"));return(y,T)=>(f(),w("div",{class:"relative",ref_key:"containerRef",ref:s},[a("button",{onClick:He(ee,["stop"]),class:"flex items-center gap-2 px-3 py-1.5 bg-gray-100 dark:bg-gray-800 hover:bg-gray-200 dark:hover:bg-gray-700 rounded-lg text-sm font-medium text-gray-700 dark:text-gray-200 transition-colors w-52",title:Q.value},[ge(l(jb),{class:"w-4 h-4 flex-shrink-0"}),a("div",sf,[(f(!0),w(Ie,null,qe(W.value?V(W.value):[],v=>{var S;return f(),w("span",{key:`${(S=W.value)==null?void 0:S.id}-${v.label}-${v.color||""}`,class:"inline-flex items-center px-1.5 py-0.5 rounded border text-[10px] leading-none flex-shrink-0",style:Te(re(v.color))},b(v.label),5)}),128)),W.value&&O(W.value)>0?(f(),w("span",df," +"+b(O(W.value)),1)):he("",!0),a("span",cf,b(Q.value),1)]),ge(l(vl),{class:"w-4 h-4 flex-shrink-0"})],8,lf),d.value?(f(),w("div",uf,[a("div",pf,[l(r).templates.length===0?(f(),w("div",gf,b(l(e)("template.noTemplates")),1)):he("",!0),(f(!0),w(Ie,null,qe(l(r).templates,v=>(f(),w("div",{key:v.id,class:"relative group border-b border-gray-100 dark:border-gray-700 last:border-b-0 flex items-center justify-between px-3 py-2 hover:bg-gray-50 dark:hover:bg-gray-700 cursor-pointer",onClick:S=>ve(v),onContextmenu:He(S=>ne(S,v.id),["prevent"]),title:v.name},[a("div",mf,[a("div",bf,[l(r).currentTemplateId===v.id?(f(),w("div",ff)):he("",!0)]),(f(!0),w(Ie,null,qe(V(v),S=>(f(),w("span",{key:`${v.id}-${S.label}-${S.color||""}`,class:"inline-flex items-center px-1.5 py-0.5 rounded border text-[10px] leading-none flex-shrink-0",style:Te(re(S.color))},b(S.label),5))),128)),O(v)>0?(f(),w("span",vf," +"+b(O(v)),1)):he("",!0),a("span",{class:_e(["text-sm text-gray-700 dark:text-gray-200 truncate",{"font-medium text-blue-600 dark:text-blue-400":l(r).currentTemplateId===v.id}])},b(v.name),3)]),a("button",{onClick:He(S=>J(S,v.id),["stop"]),class:_e(["row-menu-trigger p-1 hover:bg-gray-200 dark:hover:bg-gray-600 rounded-full text-gray-400 hover:text-gray-600 dark:hover:text-gray-200 opacity-0 group-hover:opacity-100 transition-opacity",{"opacity-100 bg-gray-200 dark:bg-gray-600":i.value===v.id}])},[ge(l(ou),{class:"w-4 h-4"})],10,yf)],40,hf))),128))]),a("div",xf,[a("button",{onClick:ue,class:"w-full flex items-center justify-center gap-2 px-3 py-2 text-sm text-blue-600 dark:text-blue-400 hover:bg-blue-50 dark:hover:bg-blue-900/30 rounded transition-colors"},[ge(l(yl),{class:"w-4 h-4"}),Le(" "+b(l(e)("template.new")),1)])])])):he("",!0),(f(),Be(Et,{to:l(o)||"body"},[i.value?(f(),w("div",{key:0,class:"fixed inset-0 z-[2000] pointer-events-auto",onClick:T[1]||(T[1]=v=>i.value=null)},[a("div",{class:"row-menu-content absolute w-40 bg-white dark:bg-gray-800 rounded shadow-lg border border-gray-100 dark:border-gray-700 z-[2001] py-1 pointer-events-auto",style:Te(c.value),onClick:T[0]||(T[0]=He(()=>{},["stop"]))},[te()?(f(!0),w(Ie,{key:0},qe(Ce(te()),v=>(f(),w("button",{key:v.key,onClick:S=>we(v,te()),disabled:xe(v,te()),class:_e(["w-full text-left px-3 py-1.5 text-xs flex items-center gap-2 disabled:opacity-50 disabled:cursor-not-allowed",v.danger?"text-red-600 dark:text-red-400 hover:bg-red-50 dark:hover:bg-red-900/30":"text-gray-700 dark:text-gray-200 hover:bg-gray-50 dark:hover:bg-gray-700"])},[v.iconComponent?(f(),Be(jt(v.iconComponent),{key:0,class:"w-3.5 h-3.5"})):v.iconImage?(f(),w("img",{key:1,src:v.iconImage,class:"w-3.5 h-3.5 object-contain"},null,8,kf)):v.iconClass?(f(),w("i",{key:2,class:_e(v.iconClass)},null,2)):K(v.icon)?(f(),w("img",{key:3,src:K(v.icon),class:"w-3.5 h-3.5 object-contain"},null,8,Sf)):v.icon?(f(),w("span",Cf,b(v.icon),1)):he("",!0),a("span",null,b(v.label),1)],10,wf))),128)):he("",!0)],4)])):he("",!0)],8,["to"])),ge(Or,{show:u.value,"initial-value":g.value,"initial-values":C.value,fields:L.value,title:Z.value,onClose:T[2]||(T[2]=v=>u.value=!1),onSave:U},null,8,["show","initial-value","initial-values","fields","title"]),ge(sr,{visible:h.value,"onUpdate:visible":T[3]||(T[3]=v=>h.value=v),title:l(e)("common.testData"),value:k.value,language:"json","onUpdate:value":T[4]||(T[4]=v=>k.value=v),onClose:R},null,8,["visible","title","value"])],512))}}),Xt={A3:{width:1123,height:1587},A4:{width:794,height:1123},A5:{width:559,height:794},LETTER:{width:816,height:1056},LEGAL:{width:816,height:1344},"Receipt 58mm":{width:219,height:794},"Receipt 80mm":{width:302,height:794},"241-1 (Full)":{width:911,height:1058},"241-2 (Half)":{width:911,height:529},"241-3 (Third)":{width:911,height:352}},Ef={class:"relative"},Tf={class:"flex items-center bg-gray-100 dark:bg-gray-800 rounded-lg p-1"},Af=["disabled","title"],$f=["disabled","title"],Pf={class:"truncate"},If=["disabled","title"],Df={key:0,class:"absolute top-full left-0 mt-2 w-64 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 shadow-xl rounded-lg p-4 z-[1000]"},Mf={class:"text-sm font-semibold text-gray-700 dark:text-gray-200 mb-3"},Lf={class:"space-y-3"},zf={class:"block text-xs text-gray-500 dark:text-gray-400 mb-1"},Rf=["value"],Ff={value:"CUSTOM",class:"dark:bg-gray-800 dark:text-gray-200"},qf={class:"block text-xs text-gray-500 dark:text-gray-400 mb-1"},Bf=["value"],Of={value:"mm",class:"dark:bg-gray-800 dark:text-gray-200"},Vf={value:"cm",class:"dark:bg-gray-800 dark:text-gray-200"},jf={value:"in",class:"dark:bg-gray-800 dark:text-gray-200"},Hf={value:"pt",class:"dark:bg-gray-800 dark:text-gray-200"},Nf={value:"px",class:"dark:bg-gray-800 dark:text-gray-200"},Uf={class:"grid grid-cols-2 gap-2"},Wf={class:"block text-xs text-gray-500 dark:text-gray-400 mb-1"},Yf=["value"],Gf={class:"block text-xs text-gray-500 dark:text-gray-400 mb-1"},Xf=["value"],Kf={class:"grid grid-cols-2 gap-2"},Qf={class:"block text-xs text-gray-500 dark:text-gray-400 mb-1"},Jf=["value"],Zf={class:"block text-xs text-gray-500 dark:text-gray-400 mb-1"},ev=["value"],tv={class:"mt-4 flex items-center justify-between"},rv={class:"text-sm text-gray-700 dark:text-gray-200 font-medium"},ov={class:"mt-3 flex items-center justify-between"},av={class:"text-sm text-gray-700 dark:text-gray-200 font-medium"},nv={class:"mt-3 flex items-center justify-between"},lv={class:"text-sm text-gray-700 dark:text-gray-200 font-medium"},sv={class:"mt-3 flex items-center justify-between"},iv={class:"text-sm text-gray-700 dark:text-gray-200 font-medium"},dv={class:"mt-3 flex items-center justify-between"},cv={class:"text-sm text-gray-700 dark:text-gray-200 font-medium"},uv={key:0,class:"absolute inset-0 flex items-center justify-center"},pv={class:"border-t border-gray-200 dark:border-gray-700 my-4 pt-3"},gv={class:"text-sm font-semibold text-gray-700 dark:text-gray-200 mb-3"},hv={class:"space-y-3"},mv={class:"flex items-center justify-between"},bv={class:"flex items-center gap-2"},fv={class:"text-xs text-gray-600 dark:text-gray-400"},vv={class:"flex items-center gap-1"},yv=["value"],xv={class:"text-xs text-gray-500 dark:text-gray-400"},wv={class:"flex items-center justify-between"},kv={class:"flex items-center gap-2"},Sv={class:"text-xs text-gray-600 dark:text-gray-400"},Cv={class:"flex items-center gap-1"},_v=["value"],Ev={class:"text-xs text-gray-500 dark:text-gray-400"},Tv={class:"border-t border-gray-200 dark:border-gray-700 pt-3 mt-3"},Av=["disabled"],$v=["disabled"],Pv={class:"bg-white dark:bg-gray-800 rounded-lg shadow-xl w-[640px] max-w-full max-h-[90vh] flex flex-col overflow-hidden border border-gray-200 dark:border-gray-700"},Iv={class:"h-[60px] flex items-center justify-between px-4 border-b border-gray-200 dark:border-gray-700 shrink-0"},Dv={class:"text-lg font-semibold text-gray-800 dark:text-gray-200"},Mv={class:"p-4 overflow-y-auto space-y-4"},Lv={class:"text-sm font-semibold text-gray-700 dark:text-gray-200 mb-3"},zv={class:"space-y-3"},Rv={class:"flex items-center justify-between"},Fv={class:"text-sm text-gray-700 dark:text-gray-200 font-medium"},qv={class:"block text-xs text-gray-500 dark:text-gray-400 mb-1"},Bv=["placeholder"],Ov={class:"grid grid-cols-2 gap-2"},Vv={class:"block text-xs text-gray-500 dark:text-gray-400 mb-1"},jv={class:"block text-xs text-gray-500 dark:text-gray-400 mb-1"},Hv={class:"grid grid-cols-2 gap-2"},Nv={class:"block text-xs text-gray-500 dark:text-gray-400 mb-1"},Uv={class:"block text-xs text-gray-500 dark:text-gray-400 mb-1"},Wv={class:"block text-xs text-gray-500 dark:text-gray-400 mb-1"},Yv={class:"p-4 border-t border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800 flex justify-end"},Gv=Oe({__name:"PaperSettings",setup(t){const{t:e}=Ke(),r=je(),n=st("modal-container",G(null)),o=G("A4"),d=G(Xt.A4.width),s=G(Xt.A4.height),i=G(!1),c=G(!1),u=le(()=>!r.isTemplateEditable),m=le({get:()=>r.canvasBackground,set:j=>r.setCanvasBackground(j)}),g=le({get:()=>{var j;return((j=r.watermark)==null?void 0:j.text)||""},set:j=>r.setWatermark({text:j})}),C=le({get:()=>{var j;return((j=r.watermark)==null?void 0:j.enabled)??!1},set:j=>r.setWatermark({enabled:!!j})}),x=le({get:()=>{var j;return((j=r.watermark)==null?void 0:j.angle)??-30},set:j=>r.setWatermark({angle:Number(j)})}),h=le({get:()=>{var j;return((j=r.watermark)==null?void 0:j.color)||"#000000"},set:j=>r.setWatermark({color:j})}),k=le({get:()=>{var j;return Math.round((((j=r.watermark)==null?void 0:j.opacity)??.1)*100)},set:j=>{const _=Math.max(0,Math.min(100,Number(j)));r.setWatermark({opacity:_/100})}}),D=le({get:()=>{var j;return L(((j=r.watermark)==null?void 0:j.size)??24)},set:j=>r.setWatermark({size:xt(Number(j),r.unit)})}),M=le({get:()=>{var j;return L(((j=r.watermark)==null?void 0:j.density)??160)},set:j=>r.setWatermark({density:xt(Number(j),r.unit)})}),$=le({get:()=>L(r.pageSpacingX||0),set:j=>r.setPageSpacingX(xt(Number(j),r.unit))}),E=le({get:()=>L(r.pageSpacingY||0),set:j=>r.setPageSpacingY(xt(Number(j),r.unit))}),p=le(()=>r.unit==="px"?e("common.px"):r.unit==="pt"?e("common.pt"):r.unit==="in"?e("common.in"):r.unit==="cm"?e("common.cm"):e("common.mm")),L=j=>{const _=It(j,r.unit);return r.unit==="px"?Math.round(_):Number(_.toFixed(1))},N=()=>{if(!u.value&&o.value!=="CUSTOM"){const j=Xt[o.value];d.value=j.width,s.value=j.height,r.setCanvasSize(j.width,j.height)}},X=()=>{u.value||(r.setCanvasSize(d.value,s.value),Object.values(Xt).some(j=>j.width===d.value&&j.height===s.value)||(o.value="CUSTOM"))},K=()=>{u.value||(i.value=!i.value)},re=()=>{u.value||(c.value=!0)};return De(()=>r.canvasSize,j=>{d.value=j.width,s.value=j.height;const _=Object.entries(Xt).find(([V,O])=>O.width===j.width&&O.height===j.height);_?o.value=_[0]:o.value="CUSTOM"},{immediate:!0}),De(c,j=>{r.setDisableGlobalShortcuts(j)}),De(u,j=>{j&&(i.value=!1,c.value=!1)}),(j,_)=>(f(),w("div",Ef,[a("div",Tf,[a("button",{onClick:K,disabled:u.value,class:"p-1 hover:bg-gray-200 dark:hover:bg-gray-700 rounded transition-colors dark:text-gray-200 disabled:opacity-50 disabled:cursor-not-allowed",title:l(e)("editor.paperSettings")},[ge(l(Pr),{class:"w-4 h-4"})],8,Af),a("button",{onClick:K,disabled:u.value,class:"flex items-center justify-center text-xs text-gray-700 dark:text-gray-200 hover:bg-gray-200 dark:hover:bg-gray-700 rounded px-1 py-0.5 transition-colors w-16 text-center disabled:opacity-50 disabled:cursor-not-allowed",title:l(e)("editor.paperSettings")},[a("span",Pf,b(o.value==="CUSTOM"?l(e)("editor.custom"):o.value),1)],8,$f),a("button",{onClick:K,disabled:u.value,class:"p-1 hover:bg-gray-200 dark:hover:bg-gray-700 rounded transition-colors dark:text-gray-200 disabled:opacity-50 disabled:cursor-not-allowed",title:l(e)("editor.paperSettings")},[ge(l(vl),{class:"w-4 h-4"})],8,If)]),i.value?(f(),w("div",Df,[a("h3",Mf,b(l(e)("editor.paperSettings")),1),a("div",Lf,[a("div",null,[a("label",zf,b(l(e)("editor.sizePreset")),1),Me(a("select",{"onUpdate:modelValue":_[0]||(_[0]=V=>o.value=V),onChange:N,class:"w-full px-2 py-1.5 text-sm border border-gray-300 dark:border-gray-700 bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200 rounded focus:border-blue-500 outline-none"},[(f(!0),w(Ie,null,qe(l(Xt),(V,O)=>(f(),w("option",{key:O,value:O,class:"dark:bg-gray-800 dark:text-gray-200"},b(O)+" ("+b(L(V.width))+b(p.value)+" x "+b(L(V.height))+b(p.value)+") ",9,Rf))),128)),a("option",Ff,b(l(e)("editor.custom")),1)],544),[[yt,o.value]])]),a("div",null,[a("label",qf,b(l(e)("editor.unit")),1),a("select",{value:l(r).unit,onChange:_[1]||(_[1]=V=>l(r).setUnit(V.target.value)),class:"w-full px-2 py-1.5 text-sm border border-gray-300 dark:border-gray-700 bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200 rounded focus:border-blue-500 outline-none"},[a("option",Of,b(l(e)("common.mm")),1),a("option",Vf,b(l(e)("common.cm")),1),a("option",jf,b(l(e)("common.in")),1),a("option",Hf,b(l(e)("common.pt")),1),a("option",Nf,b(l(e)("common.px")),1)],40,Bf)]),a("div",Uf,[a("div",null,[a("label",Wf,b(l(e)("common.width"))+" ("+b(p.value)+")",1),a("input",{type:"number",value:L(d.value),onChange:_[2]||(_[2]=V=>{d.value=l(xt)(Number(V.target.value),l(r).unit),X()}),class:"w-full px-2 py-1 text-sm border border-gray-300 dark:border-gray-700 bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200 rounded focus:border-blue-500 outline-none"},null,40,Yf)]),a("div",null,[a("label",Gf,b(l(e)("common.height"))+" ("+b(p.value)+")",1),a("input",{type:"number",value:L(s.value),onChange:_[3]||(_[3]=V=>{s.value=l(xt)(Number(V.target.value),l(r).unit),X()}),class:"w-full px-2 py-1 text-sm border border-gray-300 dark:border-gray-700 bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200 rounded focus:border-blue-500 outline-none"},null,40,Xf)])]),a("div",Kf,[a("div",null,[a("label",Qf,b(l(e)("editor.spacingX"))+" ("+b(p.value)+")",1),a("input",{type:"number",value:$.value,onChange:_[4]||(_[4]=V=>{$.value=Number(V.target.value)}),class:"w-full px-2 py-1 text-sm border border-gray-300 dark:border-gray-700 bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200 rounded focus:border-blue-500 outline-none"},null,40,Jf)]),a("div",null,[a("label",Zf,b(l(e)("editor.spacingY"))+" ("+b(p.value)+")",1),a("input",{type:"number",value:E.value,onChange:_[5]||(_[5]=V=>{E.value=Number(V.target.value)}),class:"w-full px-2 py-1 text-sm border border-gray-300 dark:border-gray-700 bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200 rounded focus:border-blue-500 outline-none"},null,40,ev)])])]),a("div",tv,[a("span",rv,b(l(e)("editor.showMarginLines")),1),a("button",{onClick:_[6]||(_[6]=V=>l(r).setShowMarginLines(!l(r).showMarginLines)),class:_e(["relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-blue-600 focus:ring-offset-2",l(r).showMarginLines?"bg-blue-600 dark:bg-blue-500":"bg-gray-200 dark:bg-gray-700"])},[_[27]||(_[27]=a("span",{class:"sr-only"},"Toggle margin lines",-1)),a("span",{"aria-hidden":"true",class:_e(["pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white dark:bg-gray-100 shadow ring-0 transition duration-200 ease-in-out",l(r).showMarginLines?"translate-x-5":"translate-x-0"])},null,2)],2)]),a("div",ov,[a("span",av,b(l(e)("editor.showCornerMarkers")),1),a("button",{onClick:_[7]||(_[7]=V=>l(r).setShowCornerMarkers(!l(r).showCornerMarkers)),class:_e(["relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-blue-600 focus:ring-offset-2",l(r).showCornerMarkers?"bg-blue-600 dark:bg-blue-500":"bg-gray-200 dark:bg-gray-700"])},[_[28]||(_[28]=a("span",{class:"sr-only"},"Toggle corner markers",-1)),a("span",{"aria-hidden":"true",class:_e(["pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white dark:bg-gray-100 shadow ring-0 transition duration-200 ease-in-out",l(r).showCornerMarkers?"translate-x-5":"translate-x-0"])},null,2)],2)]),a("div",nv,[a("span",lv,b(l(e)("editor.showGrid")),1),a("button",{onClick:_[8]||(_[8]=V=>l(r).setShowGrid(!l(r).showGrid)),class:_e(["relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-blue-600 focus:ring-offset-2",l(r).showGrid?"bg-blue-600 dark:bg-blue-500":"bg-gray-200 dark:bg-gray-700"])},[_[29]||(_[29]=a("span",{class:"sr-only"},"Toggle grid",-1)),a("span",{"aria-hidden":"true",class:_e(["pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white dark:bg-gray-100 shadow ring-0 transition duration-200 ease-in-out",l(r).showGrid?"translate-x-5":"translate-x-0"])},null,2)],2)]),a("div",sv,[a("span",iv,b(l(e)("editor.showMinimap")),1),a("button",{onClick:_[9]||(_[9]=V=>l(r).setShowMinimap(!l(r).showMinimap)),class:_e(["relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-blue-600 focus:ring-offset-2",l(r).showMinimap?"bg-blue-600 dark:bg-blue-500":"bg-gray-200 dark:bg-gray-700"])},[_[30]||(_[30]=a("span",{class:"sr-only"},"Toggle minimap",-1)),a("span",{"aria-hidden":"true",class:_e(["pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white dark:bg-gray-100 shadow ring-0 transition duration-200 ease-in-out",l(r).showMinimap?"translate-x-5":"translate-x-0"])},null,2)],2)]),a("div",dv,[a("span",cv,b(l(e)("editor.backgroundColor")),1),ge(rr,{modelValue:m.value,"onUpdate:modelValue":_[10]||(_[10]=V=>m.value=V),"allow-transparent":!0,"default-color":"#ffffff",placement:"bottom-end","teleport-to-body":!0},{trigger:Ft(({color:V,open:O})=>[a("div",{class:_e(["w-8 h-6 rounded border border-gray-300 dark:border-gray-600 cursor-pointer relative overflow-hidden hover:border-blue-500 dark:hover:border-blue-400 transition-colors",{"ring-2 ring-blue-500 dark:ring-blue-400 ring-offset-1 dark:ring-offset-gray-900":O}])},[_[32]||(_[32]=a("div",{class:"absolute inset-0 bg-[url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwZ+5wNisxL//8n04mEeRAAAhNwX869V4DYAAAAASUVORK5CYII=')] opacity-50"},null,-1)),a("div",{class:"absolute inset-0",style:Te({backgroundColor:V==="transparent"?"transparent":V})},null,4),V==="transparent"?(f(),w("div",uv,[..._[31]||(_[31]=[a("div",{class:"w-full h-[1px] bg-red-500 rotate-45"},null,-1)])])):he("",!0)],2)]),_:1},8,["modelValue"])]),a("div",pv,[a("h3",gv,b(l(e)("editor.headerFooter")),1),a("div",hv,[a("div",mv,[a("div",bv,[a("button",{onClick:_[11]||(_[11]=V=>l(r).setShowHeaderLine(!l(r).showHeaderLine)),class:_e(["relative inline-flex h-5 w-9 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-blue-600 focus:ring-offset-2",l(r).showHeaderLine?"bg-blue-600 dark:bg-blue-500":"bg-gray-200 dark:bg-gray-700"])},[_[33]||(_[33]=a("span",{class:"sr-only"},"Toggle header line",-1)),a("span",{"aria-hidden":"true",class:_e(["pointer-events-none inline-block h-4 w-4 transform rounded-full bg-white dark:bg-gray-100 shadow ring-0 transition duration-200 ease-in-out",l(r).showHeaderLine?"translate-x-4":"translate-x-0"])},null,2)],2),a("label",fv,b(l(e)("editor.headerLine")),1)]),a("div",vv,[a("input",{type:"number",value:L(l(r).headerHeight),onChange:_[12]||(_[12]=V=>l(r).setHeaderHeight(l(xt)(Number(V.target.value),l(r).unit))),class:"w-16 px-2 py-1 text-sm border border-gray-300 dark:border-gray-700 bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200 rounded focus:border-blue-500 outline-none text-right",min:"0"},null,40,yv),a("span",xv,b(p.value),1)])]),a("div",wv,[a("div",kv,[a("button",{onClick:_[13]||(_[13]=V=>l(r).setShowFooterLine(!l(r).showFooterLine)),class:_e(["relative inline-flex h-5 w-9 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-blue-600 focus:ring-offset-2",l(r).showFooterLine?"bg-blue-600 dark:bg-blue-500":"bg-gray-200 dark:bg-gray-700"])},[_[34]||(_[34]=a("span",{class:"sr-only"},"Toggle footer line",-1)),a("span",{"aria-hidden":"true",class:_e(["pointer-events-none inline-block h-4 w-4 transform rounded-full bg-white dark:bg-gray-100 shadow ring-0 transition duration-200 ease-in-out",l(r).showFooterLine?"translate-x-4":"translate-x-0"])},null,2)],2),a("label",Sv,b(l(e)("editor.footerLine")),1)]),a("div",Cv,[a("input",{type:"number",value:L(l(r).footerHeight),onChange:_[14]||(_[14]=V=>l(r).setFooterHeight(l(xt)(Number(V.target.value),l(r).unit))),class:"w-16 px-2 py-1 text-sm border border-gray-300 dark:border-gray-700 bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200 rounded focus:border-blue-500 outline-none text-right",min:"0"},null,40,_v),a("span",Ev,b(p.value),1)])])])]),a("div",Tv,[a("button",{onClick:_[15]||(_[15]=V=>{l(r).addPage(),i.value=!1}),disabled:u.value,class:"w-full flex items-center justify-center gap-2 px-3 py-2 bg-blue-50 dark:bg-blue-900/30 text-blue-700 dark:text-blue-400 hover:bg-blue-100 dark:hover:bg-blue-900/50 rounded-md transition-colors text-sm font-medium disabled:opacity-50 disabled:cursor-not-allowed"},[ge(l(yl),{class:"w-4 h-4"}),a("span",null,b(l(e)("editor.addNewPage")),1)],8,Av),a("button",{onClick:re,disabled:u.value,class:"w-full flex items-center justify-center gap-2 px-3 py-2 mt-2 bg-gray-50 dark:bg-gray-700/50 text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700 rounded-md transition-colors text-sm font-medium disabled:opacity-50 disabled:cursor-not-allowed"},[ge(l(Pr),{class:"w-4 h-4"}),a("span",null,b(l(e)("editor.advancedSettings")),1)],8,$v)]),a("div",{class:"fixed inset-0 z-[-1]",onClick:_[16]||(_[16]=V=>i.value=!1)})])):he("",!0),(f(),Be(Et,{to:l(n)||"body"},[c.value?(f(),w("div",{key:0,class:"fixed inset-0 z-[2000] flex items-center justify-center bg-black/50 pointer-events-auto",onClick:_[26]||(_[26]=He(V=>c.value=!1,["self"]))},[a("div",Pv,[a("div",Iv,[a("h3",Dv,b(l(e)("editor.advancedSettings")),1),a("button",{onClick:_[17]||(_[17]=V=>c.value=!1),class:"p-1 hover:bg-gray-100 dark:hover:bg-gray-700 rounded-full transition-colors text-gray-500 dark:text-gray-400"},[ge(l(Ot),{class:"w-4 h-4"})])]),a("div",Mv,[a("div",null,[a("h3",Lv,b(l(e)("editor.watermark")),1),a("div",zv,[a("div",Rv,[a("span",Fv,b(l(e)("editor.watermarkEnable")),1),a("button",{onClick:_[18]||(_[18]=V=>C.value=!C.value),class:_e(["relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-blue-600 focus:ring-offset-2",C.value?"bg-blue-600 dark:bg-blue-500":"bg-gray-200 dark:bg-gray-700"])},[_[35]||(_[35]=a("span",{class:"sr-only"},"Toggle watermark",-1)),a("span",{"aria-hidden":"true",class:_e(["pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white dark:bg-gray-100 shadow ring-0 transition duration-200 ease-in-out",C.value?"translate-x-5":"translate-x-0"])},null,2)],2)]),a("div",null,[a("label",qv,b(l(e)("editor.watermarkText")),1),Me(a("input",{"onUpdate:modelValue":_[19]||(_[19]=V=>g.value=V),type:"text",class:"w-full px-2 py-1.5 text-sm border border-gray-300 dark:border-gray-700 bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200 rounded focus:border-blue-500 outline-none",placeholder:l(e)("editor.watermarkTextPlaceholder")},null,8,Bv),[[Ue,g.value]])]),a("div",Ov,[a("div",null,[a("label",Vv,b(l(e)("editor.watermarkAngle")),1),Me(a("input",{"onUpdate:modelValue":_[20]||(_[20]=V=>x.value=V),type:"number",class:"w-full px-2 py-1 text-sm border border-gray-300 dark:border-gray-700 bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200 rounded focus:border-blue-500 outline-none"},null,512),[[Ue,x.value,void 0,{number:!0}]])]),a("div",null,[a("label",jv,b(l(e)("editor.watermarkOpacity")),1),Me(a("input",{"onUpdate:modelValue":_[21]||(_[21]=V=>k.value=V),type:"number",min:"0",max:"100",class:"w-full px-2 py-1 text-sm border border-gray-300 dark:border-gray-700 bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200 rounded focus:border-blue-500 outline-none"},null,512),[[Ue,k.value,void 0,{number:!0}]])])]),a("div",Hv,[a("div",null,[a("label",Nv,b(l(e)("editor.watermarkSize"))+" ("+b(p.value)+")",1),Me(a("input",{"onUpdate:modelValue":_[22]||(_[22]=V=>D.value=V),type:"number",min:"1",class:"w-full px-2 py-1 text-sm border border-gray-300 dark:border-gray-700 bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200 rounded focus:border-blue-500 outline-none"},null,512),[[Ue,D.value,void 0,{number:!0}]])]),a("div",null,[a("label",Uv,b(l(e)("editor.watermarkDensity"))+" ("+b(p.value)+")",1),Me(a("input",{"onUpdate:modelValue":_[23]||(_[23]=V=>M.value=V),type:"number",min:"20",class:"w-full px-2 py-1 text-sm border border-gray-300 dark:border-gray-700 bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200 rounded focus:border-blue-500 outline-none"},null,512),[[Ue,M.value,void 0,{number:!0}]])])]),a("div",null,[a("label",Wv,b(l(e)("editor.watermarkColor")),1),ge(rr,{modelValue:h.value,"onUpdate:modelValue":_[24]||(_[24]=V=>h.value=V),"default-color":"#000000",placement:"bottom-end","teleport-to-body":!0},{trigger:Ft(({color:V,open:O})=>[a("div",{class:_e(["w-8 h-6 rounded border border-gray-300 dark:border-gray-600 cursor-pointer relative overflow-hidden hover:border-blue-500 dark:hover:border-blue-400 transition-colors",{"ring-2 ring-blue-500 dark:ring-blue-400 ring-offset-1 dark:ring-offset-gray-900":O}])},[a("div",{class:"absolute inset-0",style:Te({backgroundColor:V})},null,4)],2)]),_:1},8,["modelValue"])])])])]),a("div",Yv,[a("button",{onClick:_[25]||(_[25]=V=>c.value=!1),class:"px-4 py-2 bg-blue-600 dark:bg-blue-500 text-white rounded hover:bg-blue-700 dark:hover:bg-blue-600 transition-colors text-sm font-medium"},b(l(e)("common.close")),1)])])])):he("",!0)],8,["to"]))]))}}),Xv=()=>typeof navigator>"u"?!1:/Mac|iPod|iPhone|iPad/.test(navigator.platform),Ve=t=>{const e=Xv();return t.map(r=>{switch(r.toLowerCase()){case"ctrl":case"control":return e?"⌘":"Ctrl";case"alt":return e?"⌥":"Alt";case"shift":return e?"⇧":"Shift";case"enter":return e?"⏎":"Enter";case"backspace":return e?"⌫":"Backspace";case"delete":return e?"⌦":"Del";case"esc":case"escape":return"Esc";default:return r.toUpperCase()}}).join(" + ")},Kv={class:"bg-white rounded-lg shadow-xl w-[700px] max-w-full max-h-[90vh] flex flex-col overflow-hidden"},Qv={class:"h-[56px] flex items-center justify-between px-4 border-b border-gray-200"},Jv={class:"text-lg font-semibold text-gray-800"},Zv={class:"flex-1 overflow-y-auto p-6 space-y-5 text-sm text-gray-700"},ey={class:"space-y-3"},ty={class:"font-medium text-gray-900"},ry={key:0,class:"grid grid-cols-2 gap-4"},oy={class:"flex flex-col gap-1 col-span-2"},ay={class:"text-xs text-gray-500"},ny=["disabled"],ly={value:""},sy=["value","disabled"],iy={class:"grid grid-cols-2 gap-4"},dy={class:"flex flex-col gap-1"},cy={class:"text-xs text-gray-500"},uy=["disabled"],py={value:""},gy=["value"],hy={class:"flex flex-col gap-1"},my={class:"text-xs text-gray-500"},by=["placeholder"],fy={key:1,class:"text-xs text-red-600"},vy={key:2,class:"text-xs text-gray-500"},yy={key:3,class:"text-xs text-gray-500"},xy={class:"grid grid-cols-3 gap-4"},wy={class:"flex flex-col gap-1"},ky={class:"text-xs text-gray-500"},Sy={class:"flex flex-col gap-1"},Cy={class:"text-xs text-gray-500"},_y={class:"flex flex-col gap-1"},Ey={class:"text-xs text-gray-500"},Ty=["placeholder"],Ay={class:"grid grid-cols-3 gap-4"},$y={class:"flex flex-col gap-1"},Py={class:"text-xs text-gray-500"},Iy={value:""},Dy={value:"odd"},My={value:"even"},Ly={class:"flex flex-col gap-1"},zy={class:"text-xs text-gray-500"},Ry={value:"noscale"},Fy={value:"shrink"},qy={value:"fit"},By={class:"flex flex-col gap-1"},Oy={class:"text-xs text-gray-500"},Vy={value:"portrait"},jy={value:"landscape"},Hy={class:"space-y-3"},Ny={class:"font-medium text-gray-900"},Uy={class:"grid grid-cols-2 gap-4"},Wy={class:"flex flex-col gap-1"},Yy={class:"text-xs text-gray-500"},Gy=["disabled"],Xy={value:"color"},Ky={value:"monochrome"},Qy={class:"flex flex-col gap-1"},Jy={class:"text-xs text-gray-500"},Zy=["disabled"],e1={value:"simplex"},t1={value:"duplex"},r1={value:"duplexshort"},o1={value:"duplexlong"},a1={class:"grid grid-cols-2 gap-4"},n1={class:"flex flex-col gap-1"},l1={class:"text-xs text-gray-500"},s1=["value"],i1=["placeholder"],d1={class:"flex flex-col gap-1"},c1={class:"text-xs text-gray-500"},u1=["placeholder"],p1={class:"p-4 border-t border-gray-200 bg-gray-50 flex justify-end gap-3 rounded-b-lg"},g1=Oe({__name:"PrintDialog",props:{show:{type:Boolean},mode:{},options:{}},emits:["update:show","confirm"],setup(t,{emit:e}){const r=t,n=e,{t:o}=Ke(),d=je(),s=st("modal-container",G(null)),{localPrinters:i,remotePrinters:c,remoteClients:u,remoteSelectedClientId:m,localPrinterCaps:g,fetchLocalPrinters:C,fetchRemoteClients:x,fetchRemotePrinters:h,fetchLocalPrinterCaps:k}=Zt(),D=G(!1),M=G(!1),$=G(""),E=G(""),p=Qt({printer:"",jobName:"",copies:1,intervalMs:0,pageRange:"",pageSet:"",scale:"fit",orientation:"portrait",colorMode:"color",sidesMode:"simplex",paperSize:"",trayBin:""});De(()=>r.show,ce=>{ce&&(Object.assign(p,JSON.parse(JSON.stringify(r.options))),E.value=m.value||"",O(),d.setDisableGlobalShortcuts(!0))}),De(()=>r.show,ce=>{ce||d.setDisableGlobalShortcuts(!1)}),De(()=>r.mode,()=>{r.show&&O()});const L=le(()=>(r.mode==="remote"?c.value:i.value)||[]),N=le(()=>u.value||[]),X=le(()=>{if(!(r.mode!=="local"||!p.printer))return g[p.printer]}),K=le(()=>{var ce,J,ne;if(r.mode==="local"){const te=X.value,ue=(ce=te==null?void 0:te.printerPaperNames)!=null&&ce.length?te.printerPaperNames:(te==null?void 0:te.paperSizes)||[];return Array.from(new Set(ue)).filter(Boolean)}if(r.mode==="remote"){const te=(J=V.value)==null?void 0:J.capabilities,ue=(te==null?void 0:te.printerPaperNames)||(te==null?void 0:te.papers)||(te==null?void 0:te.paperSizes)||[];return ue.length===0&&((ne=V.value)!=null&&ne.paper_spec)?[V.value.paper_spec]:Array.from(new Set(ue)).filter(Boolean)}return[]}),re=le(()=>L.value.map(ce=>{if(r.mode==="local"){const ne=ce;return{key:ne.name,label:ne.name}}const J=ce;return{key:J.printer_name,label:J.printer_name}})),j=le(()=>{var ce,J,ne;return r.mode==="local"?((ce=X.value)==null?void 0:ce.colorSupported)!==!1:r.mode==="remote"?((ne=(J=V.value)==null?void 0:J.capabilities)==null?void 0:ne.colorSupported)!==!1:!0}),_=le(()=>{var ce,J,ne;return r.mode==="local"?((ce=X.value)==null?void 0:ce.duplexSupported)!==!1:r.mode==="remote"?((ne=(J=V.value)==null?void 0:J.capabilities)==null?void 0:ne.duplexSupported)!==!1:!0}),V=le(()=>{if(r.mode==="remote")return(c.value||[]).find(ce=>ce.printer_name===p.printer)}),O=async()=>{D.value=!0,$.value="";try{if(r.mode==="remote"?(await x(),(!E.value||!N.value.some(ce=>ce.client_id===E.value))&&(E.value=m.value||""),E.value?await h(E.value):c.value=[]):r.mode==="local"&&await C(),!p.printer&&L.value.length>0){const ce=r.mode==="local"&&L.value.find(J=>J.isDefault)||L.value[0];p.printer=r.mode==="local"?ce.name:ce.printer_name}r.mode==="local"&&p.printer&&await se(p.printer)}catch(ce){$.value=ce.message||o("printDialog.printerLoadFailed")}finally{D.value=!1}},se=async ce=>{if(!(!ce||r.mode!=="local")){M.value=!0;try{await k(ce)}finally{M.value=!1}}};De(E,async(ce,J)=>{if(!(!r.show||r.mode!=="remote"||ce===J)){m.value=ce,p.printer="",D.value=!0,$.value="";try{ce?await h(ce):c.value=[]}catch(ne){$.value=ne.message||o("printDialog.printerLoadFailed")}finally{D.value=!1}}}),De(()=>p.printer,async(ce,J)=>{!r.show||ce===J||(r.mode==="local"&&await se(ce),K.value.length&&!p.paperSize&&(p.paperSize=K.value[0]))}),De(X,ce=>{ce&&(ce.colorSupported===!1&&p.colorMode==="color"&&(p.colorMode="monochrome"),ce.duplexSupported===!1&&p.sidesMode.startsWith("duplex")&&(p.sidesMode="simplex"))}),De(()=>{var ce;return(ce=V.value)==null?void 0:ce.capabilities},ce=>{ce&&(ce.colorSupported===!1&&p.colorMode==="color"&&(p.colorMode="monochrome"),ce.duplexSupported===!1&&p.sidesMode.startsWith("duplex")&&(p.sidesMode="simplex"))});const W=()=>{n("update:show",!1)},Q=ce=>{r.show&&ce.key==="Escape"&&(ce.preventDefault(),W())},ee=()=>{n("confirm",JSON.parse(JSON.stringify(p)))},ve=le(()=>r.mode==="local"?o("printDialog.titleLocal"):r.mode==="remote"?o("printDialog.titleRemote"):o("printDialog.title"));return ot(()=>{window.addEventListener("keydown",Q)}),at(()=>{window.removeEventListener("keydown",Q),r.show&&d.setDisableGlobalShortcuts(!1)}),(ce,J)=>(f(),Be(Et,{to:l(s)||"body"},[t.show?(f(),w("div",{key:0,class:"fixed inset-0 z-[99999] flex items-center justify-center bg-black/50 pointer-events-auto",onClick:He(W,["self"])},[a("div",Kv,[a("div",Qv,[a("h3",Jv,b(ve.value),1),a("button",{onClick:W,class:"p-1 hover:bg-gray-100 rounded-full transition-colors text-gray-500"},[ge(l(Ot),{class:"w-4 h-4"})])]),a("div",Zv,[a("div",ey,[a("div",ty,b(l(o)("printDialog.sectionBasic")),1),r.mode==="remote"?(f(),w("div",ry,[a("label",oy,[a("span",ay,b(l(o)("printDialog.remoteClient")),1),Me(a("select",{"onUpdate:modelValue":J[0]||(J[0]=ne=>E.value=ne),class:"w-full px-3 py-2 border rounded bg-white focus:ring-2 focus:ring-blue-600 focus:border-blue-600",disabled:D.value},[a("option",ly,b(l(o)("printDialog.remoteClientPlaceholder")),1),(f(!0),w(Ie,null,qe(N.value,ne=>(f(),w("option",{key:ne.client_id,value:ne.client_id,disabled:ne.online===!1},b(ne.client_name||ne.client_id)+b(ne.online===!1?" (offline)":""),9,sy))),128))],8,ny),[[yt,E.value]])])])):he("",!0),a("div",iy,[a("label",dy,[a("span",cy,b(l(o)("printDialog.printer")),1),Me(a("select",{"onUpdate:modelValue":J[1]||(J[1]=ne=>p.printer=ne),class:"w-full px-3 py-2 border rounded bg-white focus:ring-2 focus:ring-blue-600 focus:border-blue-600",disabled:D.value||M.value||r.mode==="remote"&&!E.value},[a("option",py,b(l(o)("printDialog.printerSelect")),1),(f(!0),w(Ie,null,qe(re.value,ne=>(f(),w("option",{key:ne.key,value:ne.key},b(ne.label),9,gy))),128))],8,uy),[[yt,p.printer]])]),a("label",hy,[a("span",my,b(l(o)("printDialog.jobName")),1),Me(a("input",{"onUpdate:modelValue":J[2]||(J[2]=ne=>p.jobName=ne),type:"text",class:"w-full px-3 py-2 border rounded focus:ring-2 focus:ring-blue-600 focus:border-blue-600",placeholder:l(o)("printDialog.jobNamePlaceholder")},null,8,by),[[Ue,p.jobName]])])]),$.value?(f(),w("div",fy,b($.value),1)):r.mode==="remote"&&N.value.length===0?(f(),w("div",vy,b(l(o)("printDialog.remoteClientEmpty")),1)):L.value.length===0?(f(),w("div",yy,b(l(o)("printDialog.printerEmpty")),1)):he("",!0),a("div",xy,[a("label",wy,[a("span",ky,b(l(o)("printDialog.copies")),1),Me(a("input",{"onUpdate:modelValue":J[3]||(J[3]=ne=>p.copies=ne),type:"number",min:"1",class:"w-full px-3 py-2 border rounded focus:ring-2 focus:ring-blue-600 focus:border-blue-600"},null,512),[[Ue,p.copies,void 0,{number:!0}]])]),a("label",Sy,[a("span",Cy,b(l(o)("printDialog.intervalMs")),1),Me(a("input",{"onUpdate:modelValue":J[4]||(J[4]=ne=>p.intervalMs=ne),type:"number",min:"0",class:"w-full px-3 py-2 border rounded focus:ring-2 focus:ring-blue-600 focus:border-blue-600"},null,512),[[Ue,p.intervalMs,void 0,{number:!0}]])]),a("label",_y,[a("span",Ey,b(l(o)("printDialog.pageRange")),1),Me(a("input",{"onUpdate:modelValue":J[5]||(J[5]=ne=>p.pageRange=ne),type:"text",class:"w-full px-3 py-2 border rounded focus:ring-2 focus:ring-blue-600 focus:border-blue-600",placeholder:l(o)("printDialog.pageRangePlaceholder")},null,8,Ty),[[Ue,p.pageRange]])])]),a("div",Ay,[a("label",$y,[a("span",Py,b(l(o)("printDialog.pageSet")),1),Me(a("select",{"onUpdate:modelValue":J[6]||(J[6]=ne=>p.pageSet=ne),class:"w-full px-3 py-2 border rounded bg-white focus:ring-2 focus:ring-blue-600 focus:border-blue-600"},[a("option",Iy,b(l(o)("printDialog.pageSetAll")),1),a("option",Dy,b(l(o)("printDialog.pageSetOdd")),1),a("option",My,b(l(o)("printDialog.pageSetEven")),1)],512),[[yt,p.pageSet]])]),a("label",Ly,[a("span",zy,b(l(o)("printDialog.scale")),1),Me(a("select",{"onUpdate:modelValue":J[7]||(J[7]=ne=>p.scale=ne),class:"w-full px-3 py-2 border rounded bg-white focus:ring-2 focus:ring-blue-600 focus:border-blue-600"},[a("option",Ry,b(l(o)("printDialog.scaleNo")),1),a("option",Fy,b(l(o)("printDialog.scaleShrink")),1),a("option",qy,b(l(o)("printDialog.scaleFit")),1)],512),[[yt,p.scale]])]),a("label",By,[a("span",Oy,b(l(o)("printDialog.orientation")),1),Me(a("select",{"onUpdate:modelValue":J[8]||(J[8]=ne=>p.orientation=ne),class:"w-full px-3 py-2 border rounded bg-white focus:ring-2 focus:ring-blue-600 focus:border-blue-600"},[a("option",Vy,b(l(o)("printDialog.portrait")),1),a("option",jy,b(l(o)("printDialog.landscape")),1)],512),[[yt,p.orientation]])])])]),a("div",Hy,[a("div",Ny,b(l(o)("printDialog.sectionAdvanced")),1),a("div",Uy,[a("label",Wy,[a("span",Yy,b(l(o)("printDialog.colorMode")),1),Me(a("select",{"onUpdate:modelValue":J[9]||(J[9]=ne=>p.colorMode=ne),class:"w-full px-3 py-2 border rounded bg-white focus:ring-2 focus:ring-blue-600 focus:border-blue-600",disabled:!j.value},[a("option",Xy,b(l(o)("printDialog.color")),1),a("option",Ky,b(l(o)("printDialog.monochrome")),1)],8,Gy),[[yt,p.colorMode]])]),a("label",Qy,[a("span",Jy,b(l(o)("printDialog.sidesMode")),1),Me(a("select",{"onUpdate:modelValue":J[10]||(J[10]=ne=>p.sidesMode=ne),class:"w-full px-3 py-2 border rounded bg-white focus:ring-2 focus:ring-blue-600 focus:border-blue-600",disabled:!_.value},[a("option",e1,b(l(o)("printDialog.simplex")),1),a("option",t1,b(l(o)("printDialog.duplex")),1),a("option",r1,b(l(o)("printDialog.duplexShort")),1),a("option",o1,b(l(o)("printDialog.duplexLong")),1)],8,Zy),[[yt,p.sidesMode]])])]),a("div",a1,[a("label",n1,[a("span",l1,b(l(o)("printDialog.paperSize")),1),K.value.length?Me((f(),w("select",{key:0,"onUpdate:modelValue":J[11]||(J[11]=ne=>p.paperSize=ne),class:"w-full px-3 py-2 border rounded bg-white focus:ring-2 focus:ring-blue-600 focus:border-blue-600"},[(f(!0),w(Ie,null,qe(K.value,ne=>(f(),w("option",{key:ne,value:ne},b(ne),9,s1))),128))],512)),[[yt,p.paperSize]]):Me((f(),w("input",{key:1,"onUpdate:modelValue":J[12]||(J[12]=ne=>p.paperSize=ne),type:"text",class:"w-full px-3 py-2 border rounded focus:ring-2 focus:ring-blue-600 focus:border-blue-600",placeholder:l(o)("printDialog.paperSizePlaceholder")},null,8,i1)),[[Ue,p.paperSize]])]),a("label",d1,[a("span",c1,b(l(o)("printDialog.trayBin")),1),Me(a("input",{"onUpdate:modelValue":J[13]||(J[13]=ne=>p.trayBin=ne),type:"text",class:"w-full px-3 py-2 border rounded focus:ring-2 focus:ring-blue-600 focus:border-blue-600",placeholder:l(o)("printDialog.trayBinPlaceholder")},null,8,u1),[[Ue,p.trayBin]])])])])]),a("div",p1,[a("button",{onClick:W,class:"px-4 py-2 border border-gray-300 rounded hover:bg-gray-100 text-sm text-gray-700"},b(l(o)("common.close")),1),a("button",{onClick:ee,class:"px-4 py-2 bg-blue-600 text-white rounded hover:bg-blue-700 transition-colors text-sm"},b(l(o)("printDialog.confirm")),1)])])])):he("",!0)],8,["to"]))}}),h1={class:"flex items-center gap-4 text-gray-700 dark:text-gray-200"},m1={class:"flex items-center gap-2 bg-gray-100 dark:bg-gray-800 rounded-lg p-1 px-2"},b1=["disabled","title"],f1=["value"],v1={class:"flex items-center gap-1"},y1=["disabled"],x1=["disabled"],w1=["disabled"],k1=["disabled","title"],S1=["disabled","title"],C1=["disabled","title"],_1=["disabled","title"],E1=["disabled","title"],T1=["disabled","title"],A1={class:"w-1 h-3.5 rounded-[1px] border border-gray-300 dark:border-gray-600 relative overflow-hidden bg-white"},$1={key:0,class:"absolute inset-0 bg-[url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwZ+5wNisxL//8n04mEeRAAAhNwX869V4DYAAAAASUVORK5CYII=')] opacity-50 bg-repeat bg-[length:6px_6px]"},P1={key:1,class:"absolute inset-0 flex items-center justify-center"},I1=["disabled","title"],D1={class:"flex items-center gap-1 bg-gray-100 dark:bg-gray-800 rounded-lg p-1"},M1=["disabled","title"],L1=["disabled","title"],z1=["disabled","title"],R1=["disabled","title"],F1=["disabled","title"],q1=["disabled","title"],B1=["disabled","title"],O1={class:"flex items-center gap-1 bg-gray-100 dark:bg-gray-800 rounded-lg p-1"},V1=["disabled","title"],j1=["disabled","title"],H1=["disabled","title"],N1=["disabled","title"],U1=["disabled","title"],W1=["disabled","title"],Y1={class:"relative"},G1={class:"flex items-center bg-gray-100 dark:bg-gray-800 rounded-lg p-1"},X1=["title"],K1=["title"],Q1=["title"],J1={key:0,class:"absolute top-full left-0 mt-2 w-64 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 shadow-xl rounded-lg p-4 z-[1000]"},Z1={class:"text-sm font-semibold text-gray-700 dark:text-gray-200 mb-3"},ex={class:"space-y-3"},tx={class:"block text-xs text-gray-500 dark:text-gray-400 mb-1"},rx={class:"text-right text-xs text-gray-600 dark:text-gray-400 mt-1"},ox={class:"flex items-center gap-1 bg-gray-100 dark:bg-gray-800 rounded-lg p-1"},ax=["title"],nx={class:"relative"},lx={class:"flex items-center shadow-sm"},sx=["disabled"],ix={key:0,class:"absolute top-full right-0 mt-2 w-max min-w-[160px] bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 shadow-xl rounded-lg p-1 z-[1000] flex flex-col gap-1"},dx=Oe({__name:"HeaderToolbar",emits:["toggleHelp","toggleSettings"],setup(t,{emit:e}){const r=e,{t:n}=Ke(),o=je(),d=wr(),s=st("designer-root",G(null)),i=()=>{var F;return((F=s==null?void 0:s.value)==null?void 0:F.getRootNode())||document},{printMode:c,silentPrint:u,localPrintOptions:m,remotePrintOptions:g}=Zt(),C=le(()=>c.value||"browser"),x=G(!1),h=G(""),k=G(""),D=G("json"),M=()=>{const F={pages:Se(o.pages),canvasSize:Se(o.canvasSize),guides:Se(o.guides),zoom:o.zoom,showGrid:o.showGrid,headerHeight:o.headerHeight,footerHeight:o.footerHeight,showHeaderLine:o.showHeaderLine,showFooterLine:o.showFooterLine,showMinimap:o.showMinimap,canvasBackground:o.canvasBackground};h.value=JSON.stringify(F,null,2),k.value=n("preview.templateJson"),D.value="json",x.value=!0},{getPrintHtml:$,print:E,exportPdf:p,exportHtml:L,getPdfBlob:N,exportImages:X,getImageBlob:K}=ru(),re=async()=>{try{const F=Array.from(i().querySelectorAll(".print-page")),A=await K(F),I=new FileReader;I.readAsDataURL(A),I.onloadend=()=>{h.value=I.result,k.value=n("editor.viewImageBlob"),D.value="text",x.value=!0}}catch(F){console.error(F),Fe.error("Failed to generate blob")}},j=async()=>{try{const F=Array.from(i().querySelectorAll(".print-page")),A=await N(F),I=new FileReader;I.readAsDataURL(A),I.onloadend=()=>{h.value=I.result,k.value=n("editor.viewPdfBlob"),D.value="text",x.value=!0}}catch(F){console.error(F),Fe.error("Failed to generate PDF blob")}},_=G(!1),V=G(""),O=G(!1),se=G(!1),W=G(null),Q=le(()=>c.value==="remote"?g:m),ee=G(!1),ve=G(Math.round(o.zoom*100)),ce=le({get:()=>o.selectedElement&&o.selectedElement.style.fontFamily||"",set:F=>{o.updateSelectedElementsStyle({fontFamily:F})}}),J=le({get:()=>o.selectedElement&&o.selectedElement.style.fontSize||12,set:F=>{o.updateSelectedElementsStyle({fontSize:F})}}),ne=le(()=>{var F,A;return((F=o.selectedElement)==null?void 0:F.style.fontWeight)==="700"||((A=o.selectedElement)==null?void 0:A.style.fontWeight)==="bold"}),te=le(()=>{var F;return((F=o.selectedElement)==null?void 0:F.style.fontStyle)==="italic"}),ue=le(()=>{var F;return((F=o.selectedElement)==null?void 0:F.style.textDecoration)==="underline"}),z=le(()=>{var F;return((F=o.selectedElement)==null?void 0:F.style.writingMode)==="vertical-rl"}),ie=le({get:()=>{if(o.selectedElement)return o.selectedElement.style.color},set:F=>{o.updateSelectedElementsStyle({color:F})}}),de=le({get:()=>{if(o.selectedElement)return o.selectedElement.style.backgroundColor},set:F=>{o.updateSelectedElementsStyle({backgroundColor:F})}}),fe=le(()=>{var F;return o.selectedElementIds.length===0?!1:((F=o.selectedElement)==null?void 0:F.locked)||!1}),B=le(()=>{var F;return!o.selectedElementId||fe.value||((F=o.selectedElement)==null?void 0:F.type)===$e.IMAGE||!o.isTemplateEditable}),oe=()=>{o.updateSelectedElementsStyle({fontWeight:ne.value?"400":"700"})},pe=()=>{o.updateSelectedElementsStyle({fontStyle:te.value?"normal":"italic"})},Ae=()=>{o.updateSelectedElementsStyle({textDecoration:ue.value?"none":"underline"})},Ce=()=>{o.updateSelectedElementsStyle({writingMode:z.value?"horizontal-tb":"vertical-rl"})},xe=()=>{o.updateSelectedElementsStyle({rotate:0})},Ee=le(()=>[{label:n("editor.fonts.default"),value:""},{label:n("editor.fonts.arial"),value:"Arial, sans-serif"},{label:n("editor.fonts.timesNewRoman"),value:'"Times New Roman", serif'},{label:n("editor.fonts.courierNew"),value:'"Courier New", monospace'},{label:n("editor.fonts.simSun"),value:"SimSun, serif"},{label:n("editor.fonts.simHei"),value:"SimHei, sans-serif"}]),we=()=>{const F=Math.round(o.zoom*100),A=Math.min(F+10,500);o.setZoom(A/100),ve.value=A},R=()=>{const F=Math.round(o.zoom*100),A=Math.max(F-10,20);o.setZoom(A/100),ve.value=A};De(()=>o.zoom,F=>{ve.value=Math.round(F*100)});const U=()=>{const F=Math.max(20,Math.min(500,ve.value));ve.value=F,o.setZoom(F/100)},Z=async()=>{try{const F=Array.from(i().querySelectorAll(".print-page"));V.value=await $(F),_.value=!0}catch(F){console.error(F),Fe.error("Preview generation failed")}},y=async()=>{const F=Array.from(i().querySelectorAll(".print-page"));if(c.value!=="browser"&&!u.value){W.value=F,se.value=!0;return}await E(F,{mode:C.value})},T=async F=>{c.value==="local"&&Object.assign(m,F),c.value==="remote"&&Object.assign(g,F);const A=W.value||Array.from(i().querySelectorAll(".print-page"));W.value=null,se.value=!1,await E(A,{mode:C.value,options:F})},v=async()=>{const F=ye();await p(void 0,`${F}.pdf`)},S=async()=>{const F=ye();await L(void 0,`${F}.html`)},P=async()=>{const F=ye();await X(void 0,F)},ae=()=>{if(d.currentTemplateId){const F=d.templates.find(A=>A.id===d.currentTemplateId);if(F){d.saveCurrentTemplate(F.name);return}}window.dispatchEvent(new CustomEvent("designer:new-template"))},q=()=>{const F=d.currentTemplateId;F&&window.dispatchEvent(new CustomEvent("designer:save-as",{detail:{id:F}}))},ye=()=>{const F=d.templates.find(me=>me.id===d.currentTemplateId),I=((F==null?void 0:F.name)||"print-design").trim().replace(/[\\/:*?"<>|]/g,"-").replace(/\s+/g," ").trim()||"print-design",H=new Date,ke=H.getFullYear(),Y=String(H.getMonth()+1).padStart(2,"0"),be=String(H.getDate()).padStart(2,"0");return`${I}-${ke}${Y}${be}`};return ot(()=>{window.addEventListener("designer:preview",Z),window.addEventListener("designer:save",ae),window.addEventListener("designer:save-as",q),window.addEventListener("designer:print",y),window.addEventListener("designer:export-pdf",v),window.addEventListener("designer:view-json",M),window.addEventListener("designer:view-blob",re)}),at(()=>{window.removeEventListener("designer:preview",Z),window.removeEventListener("designer:save",ae),window.removeEventListener("designer:save-as",q),window.removeEventListener("designer:print",y),window.removeEventListener("designer:export-pdf",v),window.removeEventListener("designer:view-json",M),window.removeEventListener("designer:view-blob",re)}),(F,A)=>(f(),w(Ie,null,[a("div",h1,[ge(_f),a("div",m1,[Me(a("select",{"onUpdate:modelValue":A[0]||(A[0]=I=>ce.value=I),disabled:B.value,class:"w-32 text-sm bg-transparent border-none outline-none focus:ring-0 cursor-pointer disabled:cursor-not-allowed disabled:opacity-50 dark:text-gray-200",title:l(n)("editor.fontFamily")},[(f(!0),w(Ie,null,qe(Ee.value,I=>(f(),w("option",{key:I.value,value:I.value,class:"dark:bg-gray-800 dark:text-gray-200"},b(I.label),9,f1))),128))],8,b1),[[yt,ce.value]]),A[40]||(A[40]=a("div",{class:"w-px h-4 bg-gray-300 dark:bg-gray-700"},null,-1)),a("div",v1,[a("button",{onClick:A[1]||(A[1]=I=>J.value--),disabled:B.value,class:"w-6 h-6 flex items-center justify-center hover:bg-gray-200 dark:hover:bg-gray-700 rounded text-sm font-medium disabled:opacity-50 disabled:cursor-not-allowed"},"-",8,y1),Me(a("input",{type:"number","onUpdate:modelValue":A[2]||(A[2]=I=>J.value=I),disabled:B.value,class:"w-12 text-center text-sm bg-transparent dark:bg-gray-800 border-none outline-none focus:ring-0 p-0 disabled:opacity-50 disabled:cursor-not-allowed [appearance:textfield] [-moz-appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none dark:text-gray-200",min:"1",max:"200"},null,8,x1),[[Ue,J.value]]),a("button",{onClick:A[3]||(A[3]=I=>J.value++),disabled:B.value,class:"w-6 h-6 flex items-center justify-center hover:bg-gray-200 dark:hover:bg-gray-700 rounded text-sm font-medium disabled:opacity-50 disabled:cursor-not-allowed"},"+",8,w1)]),A[41]||(A[41]=a("div",{class:"w-px h-4 bg-gray-300 dark:bg-gray-700"},null,-1)),a("button",{onClick:oe,disabled:B.value,class:_e(["p-1 hover:bg-gray-200 dark:hover:bg-gray-700 rounded transition-colors disabled:opacity-50 disabled:cursor-not-allowed",{"bg-gray-300 dark:bg-gray-700 text-blue-700 dark:text-blue-400":ne.value}]),title:l(n)("editor.bold")},[ge(l(q0),{class:"w-4 h-4"})],10,k1),a("button",{onClick:pe,disabled:B.value,class:_e(["p-1 hover:bg-gray-200 dark:hover:bg-gray-700 rounded transition-colors disabled:opacity-50 disabled:cursor-not-allowed",{"bg-gray-300 dark:bg-gray-700 text-blue-700 dark:text-blue-400":te.value}]),title:l(n)("editor.italic")},[ge(l(V0),{class:"w-4 h-4"})],10,S1),a("button",{onClick:Ae,disabled:B.value,class:_e(["p-1 hover:bg-gray-200 dark:hover:bg-gray-700 rounded transition-colors disabled:opacity-50 disabled:cursor-not-allowed",{"bg-gray-300 dark:bg-gray-700 text-blue-700 dark:text-blue-400":ue.value}]),title:l(n)("editor.underline")},[ge(l(N0),{class:"w-4 h-4"})],10,C1),a("button",{onClick:Ce,disabled:B.value,class:_e(["p-1 hover:bg-gray-200 dark:hover:bg-gray-700 rounded transition-colors disabled:opacity-50 disabled:cursor-not-allowed",{"bg-gray-300 dark:bg-gray-700 text-blue-700 dark:text-blue-400":z.value}]),title:l(n)("editor.verticalText")},[ge(l(Y0),{class:"w-4 h-4"})],10,_1),ge(rr,{modelValue:ie.value,"onUpdate:modelValue":A[4]||(A[4]=I=>ie.value=I),disabled:B.value,"default-color":"#000000"},{trigger:Ft(({color:I})=>[a("button",{type:"button",class:"flex items-center gap-1 p-1 hover:bg-gray-200 dark:hover:bg-gray-700 rounded transition-colors disabled:opacity-50 disabled:cursor-not-allowed",disabled:B.value,title:l(n)("editor.textColor")},[ge(l(th),{class:"w-4 h-4"}),a("div",{class:"w-1 h-3.5 rounded-[1px] border border-gray-300 dark:border-gray-600",style:Te({backgroundColor:I})},null,4)],8,E1)]),_:1},8,["modelValue","disabled"]),ge(rr,{modelValue:de.value,"onUpdate:modelValue":A[5]||(A[5]=I=>de.value=I),disabled:B.value,"allow-transparent":!0,"default-color":"transparent"},{trigger:Ft(({color:I})=>[a("button",{type:"button",class:"flex items-center gap-1 p-1 hover:bg-gray-200 dark:hover:bg-gray-700 rounded transition-colors disabled:opacity-50 disabled:cursor-not-allowed",disabled:B.value,title:l(n)("editor.backgroundColor")},[ge(l(ah),{class:"w-4 h-4"}),a("div",A1,[I==="transparent"?(f(),w("div",$1)):he("",!0),a("div",{class:"absolute inset-0",style:Te({backgroundColor:I==="transparent"?"transparent":I})},null,4),I==="transparent"?(f(),w("div",P1,[...A[39]||(A[39]=[a("div",{class:"w-full h-[1px] bg-red-500 rotate-90 transform scale-150"},null,-1)])])):he("",!0)])],8,T1)]),_:1},8,["modelValue","disabled"]),A[42]||(A[42]=a("div",{class:"w-px h-4 bg-gray-300 dark:bg-gray-700"},null,-1)),a("button",{onClick:xe,disabled:fe.value||!l(o).selectedElementId||!l(o).isTemplateEditable,class:"p-1 hover:bg-gray-200 dark:hover:bg-gray-700 rounded transition-colors disabled:opacity-50 disabled:cursor-not-allowed",title:l(n)("editor.resetRotation")},[ge(l(K0),{class:"w-4 h-4"})],8,I1)]),A[48]||(A[48]=a("div",{class:"h-6 w-px bg-gray-300 dark:bg-gray-700"},null,-1)),a("div",D1,[a("button",{onClick:A[6]||(A[6]=I=>l(o).alignSelectedElements("left")),disabled:!l(o).selectedElementId||fe.value||!l(o).isTemplateEditable,class:"p-1 hover:bg-gray-200 dark:hover:bg-gray-700 rounded disabled:opacity-30 disabled:cursor-not-allowed",title:l(n)("editor.alignLeft")},[ge(l(x0),{class:"w-4 h-4"})],8,M1),a("button",{onClick:A[7]||(A[7]=I=>l(o).alignSelectedElements("center")),disabled:!l(o).selectedElementId||fe.value||!l(o).isTemplateEditable,class:"p-1 hover:bg-gray-200 dark:hover:bg-gray-700 rounded disabled:opacity-30 disabled:cursor-not-allowed",title:l(n)("editor.alignCenter")},[ge(l(S0),{class:"w-4 h-4"})],8,L1),a("button",{onClick:A[8]||(A[8]=I=>l(o).alignSelectedElements("right")),disabled:!l(o).selectedElementId||fe.value||!l(o).isTemplateEditable,class:"p-1 hover:bg-gray-200 dark:hover:bg-gray-700 rounded disabled:opacity-30 disabled:cursor-not-allowed",title:l(n)("editor.alignRight")},[ge(l(E0),{class:"w-4 h-4"})],8,z1),A[44]||(A[44]=a("div",{class:"w-px h-4 bg-gray-300 dark:bg-gray-700 mx-1"},null,-1)),a("button",{onClick:A[9]||(A[9]=I=>l(o).alignSelectedElements("top")),disabled:!l(o).selectedElementId||fe.value||!l(o).isTemplateEditable,class:"p-1 hover:bg-gray-200 dark:hover:bg-gray-700 rounded disabled:opacity-30 disabled:cursor-not-allowed",title:l(n)("editor.alignTop")},[ge(l($0),{class:"w-4 h-4"})],8,R1),a("button",{onClick:A[10]||(A[10]=I=>l(o).alignSelectedElements("middle")),disabled:!l(o).selectedElementId||fe.value||!l(o).isTemplateEditable,class:"p-1 hover:bg-gray-200 dark:hover:bg-gray-700 rounded disabled:opacity-30 disabled:cursor-not-allowed",title:l(n)("editor.alignMiddle")},[ge(l(D0),{class:"w-4 h-4"})],8,F1),a("button",{onClick:A[11]||(A[11]=I=>l(o).alignSelectedElements("bottom")),disabled:!l(o).selectedElementId||fe.value||!l(o).isTemplateEditable,class:"p-1 hover:bg-gray-200 dark:hover:bg-gray-700 rounded disabled:opacity-30 disabled:cursor-not-allowed",title:l(n)("editor.alignBottom")},[ge(l(z0),{class:"w-4 h-4"})],8,q1),l(o).selectedElementIds.length>1?(f(),w(Ie,{key:0},[A[43]||(A[43]=a("div",{class:"w-px h-4 bg-gray-300 dark:bg-gray-700 mx-1"},null,-1)),a("button",{onClick:A[12]||(A[12]=I=>l(o).groupSelectedElements()),disabled:fe.value||!l(o).isTemplateEditable,class:"p-1 hover:bg-gray-200 dark:hover:bg-gray-700 rounded disabled:opacity-30 disabled:cursor-not-allowed",title:l(n)("editor.group")},[ge(l(dh),{class:"w-4 h-4"})],8,B1)],64)):he("",!0)]),A[49]||(A[49]=a("div",{class:"h-6 w-px bg-gray-300 dark:bg-gray-700"},null,-1)),a("div",O1,[a("button",{onClick:A[13]||(A[13]=I=>l(o).undo()),disabled:l(o).historyPast.length===0,class:"p-1 hover:bg-gray-200 dark:hover:bg-gray-700 rounded disabled:opacity-30 disabled:cursor-not-allowed",title:l(n)("common.undo")+" ("+l(Ve)(["Ctrl","Z"])+")"},[ge(l(Qc),{class:"w-4 h-4"})],8,V1),a("button",{onClick:A[14]||(A[14]=I=>l(o).redo()),disabled:l(o).historyFuture.length===0,class:"p-1 hover:bg-gray-200 dark:hover:bg-gray-700 rounded disabled:opacity-30 disabled:cursor-not-allowed",title:l(n)("common.redo")+" ("+l(Ve)(["Ctrl","Y"])+")"},[ge(l(Jc),{class:"w-4 h-4"})],8,j1),A[45]||(A[45]=a("div",{class:"w-px h-4 bg-gray-300 dark:bg-gray-700 mx-1"},null,-1)),a("button",{onClick:A[15]||(A[15]=I=>l(o).copy()),disabled:!l(o).selectedElementId||fe.value||!l(o).isTemplateEditable,class:"p-1 hover:bg-gray-200 dark:hover:bg-gray-700 rounded disabled:opacity-30 disabled:cursor-not-allowed",title:l(n)("common.copy")+" ("+l(Ve)(["Ctrl","C"])+")"},[ge(l(lr),{class:"w-4 h-4"})],8,H1),a("button",{onClick:A[16]||(A[16]=I=>l(o).paste()),disabled:l(o).clipboard.length===0||!l(o).isTemplateEditable,class:"p-1 hover:bg-gray-200 dark:hover:bg-gray-700 rounded disabled:opacity-30 disabled:cursor-not-allowed",title:l(n)("common.paste")+" ("+l(Ve)(["Ctrl","V"])+")"},[ge(l(fl),{class:"w-4 h-4"})],8,N1),A[46]||(A[46]=a("div",{class:"w-px h-4 bg-gray-300 dark:bg-gray-700 mx-1"},null,-1)),a("button",{onClick:A[17]||(A[17]=I=>l(o).toggleLock()),disabled:!l(o).selectedElementId||!l(o).isTemplateEditable,class:"p-1 hover:bg-gray-200 dark:hover:bg-gray-700 rounded disabled:opacity-30 disabled:cursor-not-allowed",title:(fe.value?l(n)("editor.unlock"):l(n)("editor.lock"))+" ("+l(Ve)(["Ctrl","L"])+")"},[fe.value?(f(),Be(l(Zc),{key:0,class:"w-4 h-4 text-red-500"})):(f(),Be(l(Br),{key:1,class:"w-4 h-4"}))],8,U1),a("button",{onClick:A[18]||(A[18]=I=>l(o).removeSelectedElements()),disabled:!l(o).selectedElementId||fe.value||!l(o).isTemplateEditable,class:"p-1 hover:bg-gray-200 dark:hover:bg-gray-700 rounded disabled:opacity-30 disabled:cursor-not-allowed",title:l(n)("common.delete")+" ("+l(Ve)(["Del"])+")"},[ge(l(nr),{class:"w-4 h-4"})],8,W1)]),A[50]||(A[50]=a("div",{class:"h-6 w-px bg-gray-300 dark:bg-gray-700"},null,-1)),ge(Gv),a("div",Y1,[a("div",G1,[a("button",{onClick:R,class:"p-1 hover:bg-gray-200 dark:hover:bg-gray-700 rounded",title:l(n)("editor.zoomOut")},[ge(l(Xc),{class:"w-4 h-4"})],8,X1),a("button",{onClick:A[19]||(A[19]=I=>ee.value=!ee.value),class:"text-xs w-12 text-center hover:bg-gray-200 dark:hover:bg-gray-700 rounded px-1 py-0.5",title:l(n)("editor.zoomSettings")},b(Math.round(l(o).zoom*100))+"% ",9,K1),a("button",{onClick:we,class:"p-1 hover:bg-gray-200 dark:hover:bg-gray-700 rounded",title:l(n)("editor.zoomIn")},[ge(l(Gc),{class:"w-4 h-4"})],8,Q1)]),ee.value?(f(),w("div",J1,[a("h3",Z1,b(l(n)("editor.zoomLevel")),1),a("div",ex,[a("div",null,[a("label",tx,b(l(n)("editor.zoomLevel"))+" (20% - 500%)",1),Me(a("input",{type:"range",min:"20",max:"500",step:"10","onUpdate:modelValue":A[20]||(A[20]=I=>ve.value=I),onInput:U,class:"w-full h-2 bg-gray-200 dark:bg-gray-700 rounded-lg appearance-none cursor-pointer [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:w-4 [&::-webkit-slider-thumb]:h-4 [&::-webkit-slider-thumb]:bg-blue-600 dark:[&::-webkit-slider-thumb]:bg-blue-500 [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:cursor-pointer [&::-webkit-slider-thumb]:transition-all [&::-webkit-slider-thumb]:hover:scale-110 [&::-moz-range-thumb]:w-4 [&::-moz-range-thumb]:h-4 [&::-moz-range-thumb]:bg-blue-600 dark:[&::-moz-range-thumb]:bg-blue-500 [&::-moz-range-thumb]:border-none [&::-moz-range-thumb]:rounded-full [&::-moz-range-thumb]:cursor-pointer [&::-moz-range-thumb]:transition-all [&::-moz-range-thumb]:hover:scale-110"},null,544),[[Ue,ve.value,void 0,{number:!0}]]),a("div",rx,b(ve.value)+"%",1)])]),a("div",{class:"fixed inset-0 z-[-1]",onClick:A[21]||(A[21]=I=>ee.value=!1)})])):he("",!0)]),A[51]||(A[51]=a("div",{class:"h-6 w-px bg-gray-300 dark:bg-gray-700"},null,-1)),a("div",ox,[a("button",{onClick:A[22]||(A[22]=I=>l(o).setShowSampleDataModal(!0)),class:"flex items-center gap-1 px-2 py-1 hover:bg-gray-200 dark:hover:bg-gray-700 rounded text-sm transition-colors",title:l(n)("common.sampleData")},[ge(l(Rt),{class:"w-4 h-4"}),a("span",null,b(l(n)("common.sampleData")),1)],8,ax)]),A[52]||(A[52]=a("div",{class:"h-6 w-px bg-gray-300 dark:bg-gray-700"},null,-1)),a("div",nx,[a("div",lx,[a("button",{onClick:ae,disabled:l(d).isSaving,class:"flex items-center gap-2 px-3 py-1.5 bg-blue-600 text-white rounded-l-md hover:bg-blue-700 transition-colors text-sm border-r border-blue-500 disabled:opacity-50 disabled:cursor-not-allowed"},[l(d).isSaving?(f(),Be(l(i0),{key:0,class:"w-4 h-4 animate-spin"})):(f(),Be(l(bl),{key:1,class:"w-4 h-4"})),a("span",null,b(l(n)("common.save")),1)],8,sx),a("button",{onClick:A[23]||(A[23]=I=>O.value=!O.value),class:"px-2 py-1.5 bg-blue-600 text-white rounded-r-md hover:bg-blue-700 transition-colors text-sm flex items-center"},[ge(l(vl),{class:"w-5 h-5"})])]),O.value?(f(),w("div",ix,[a("button",{onClick:A[24]||(A[24]=I=>{q(),O.value=!1}),class:"w-full flex items-center gap-2 px-3 py-2 text-gray-700 dark:text-gray-200 hover:bg-gray-50 dark:hover:bg-gray-700 rounded text-sm text-left transition-colors whitespace-nowrap"},[ge(l(Kc),{class:"w-4 h-4 text-gray-500 dark:text-gray-400"}),a("span",null,b(l(n)("editor.saveAsTemplate")),1)]),a("button",{onClick:A[25]||(A[25]=I=>{Z(),O.value=!1}),class:"w-full flex items-center gap-2 px-3 py-2 text-gray-700 dark:text-gray-200 hover:bg-gray-50 dark:hover:bg-gray-700 rounded text-sm text-left transition-colors whitespace-nowrap"},[ge(l(Hg),{class:"w-4 h-4 text-gray-500 dark:text-gray-400"}),a("span",null,b(l(n)("editor.preview")),1)]),a("button",{onClick:A[26]||(A[26]=I=>{y(),O.value=!1}),class:"w-full flex items-center gap-2 px-3 py-2 text-gray-700 dark:text-gray-200 hover:bg-gray-50 dark:hover:bg-gray-700 rounded text-sm text-left transition-colors whitespace-nowrap"},[ge(l(ml),{class:"w-4 h-4 text-gray-500 dark:text-gray-400"}),a("span",null,b(l(n)("editor.print")),1)]),a("button",{onClick:A[27]||(A[27]=I=>{v(),O.value=!1}),class:"w-full flex items-center gap-2 px-3 py-2 text-gray-700 dark:text-gray-200 hover:bg-gray-50 dark:hover:bg-gray-700 rounded text-sm text-left transition-colors whitespace-nowrap"},[ge(l(Jt),{class:"w-4 h-4 text-gray-500 dark:text-gray-400"}),a("span",null,b(l(n)("editor.exportPdf")),1)]),a("button",{onClick:A[28]||(A[28]=I=>{S(),O.value=!1}),class:"w-full flex items-center gap-2 px-3 py-2 text-gray-700 dark:text-gray-200 hover:bg-gray-50 dark:hover:bg-gray-700 rounded text-sm text-left transition-colors whitespace-nowrap"},[ge(l(Jt),{class:"w-4 h-4 text-gray-500 dark:text-gray-400"}),a("span",null,b(l(n)("editor.exportHtml")),1)]),a("button",{onClick:A[29]||(A[29]=I=>{P(),O.value=!1}),class:"w-full flex items-center gap-2 px-3 py-2 text-gray-700 dark:text-gray-200 hover:bg-gray-50 dark:hover:bg-gray-700 rounded text-sm text-left transition-colors whitespace-nowrap"},[ge(l(Jt),{class:"w-4 h-4 text-gray-500 dark:text-gray-400"}),a("span",null,b(l(n)("editor.exportImage")),1)]),a("button",{onClick:A[30]||(A[30]=I=>{re(),O.value=!1}),class:"w-full flex items-center gap-2 px-3 py-2 text-gray-700 dark:text-gray-200 hover:bg-gray-50 dark:hover:bg-gray-700 rounded text-sm text-left transition-colors whitespace-nowrap"},[ge(l(Rt),{class:"w-4 h-4 text-gray-500 dark:text-gray-400"}),a("span",null,b(l(n)("editor.viewImageBlob")),1)]),a("button",{onClick:A[31]||(A[31]=I=>{j(),O.value=!1}),class:"w-full flex items-center gap-2 px-3 py-2 text-gray-700 dark:text-gray-200 hover:bg-gray-50 dark:hover:bg-gray-700 rounded text-sm text-left transition-colors whitespace-nowrap"},[ge(l(Rt),{class:"w-4 h-4 text-gray-500 dark:text-gray-400"}),a("span",null,b(l(n)("editor.viewPdfBlob")),1)]),a("button",{onClick:A[32]||(A[32]=I=>{M(),O.value=!1}),class:"w-full flex items-center gap-2 px-3 py-2 text-gray-700 dark:text-gray-200 hover:bg-gray-50 dark:hover:bg-gray-700 rounded text-sm text-left transition-colors whitespace-nowrap"},[ge(l(Rt),{class:"w-4 h-4 text-gray-500 dark:text-gray-400"}),a("span",null,b(l(n)("editor.viewJson")),1)]),A[47]||(A[47]=a("div",{class:"h-px bg-gray-200 dark:bg-gray-700 my-0.5"},null,-1)),a("button",{onClick:A[33]||(A[33]=I=>{r("toggleHelp"),O.value=!1}),class:"w-full flex items-center gap-2 px-3 py-2 text-gray-700 dark:text-gray-200 hover:bg-gray-50 dark:hover:bg-gray-700 rounded text-sm text-left transition-colors whitespace-nowrap"},[ge(l(f0),{class:"w-4 h-4 text-gray-500 dark:text-gray-400"}),a("span",null,b(l(n)("editor.help")),1)]),a("button",{onClick:A[34]||(A[34]=I=>{r("toggleSettings"),O.value=!1}),class:"w-full flex items-center gap-2 px-3 py-2 text-gray-700 dark:text-gray-200 hover:bg-gray-50 dark:hover:bg-gray-700 rounded text-sm text-left transition-colors whitespace-nowrap"},[ge(l(Pr),{class:"w-4 h-4 text-gray-500 dark:text-gray-400"}),a("span",null,b(l(n)("editor.settings")),1)])])):he("",!0),O.value?(f(),w("div",{key:1,class:"fixed inset-0 z-[999]",onClick:A[35]||(A[35]=I=>O.value=!1)})):he("",!0)])]),ge(ub,{visible:_.value,"onUpdate:visible":A[36]||(A[36]=I=>_.value=I),"html-content":V.value,width:l(o).canvasSize.width},null,8,["visible","html-content","width"]),ge(g1,{show:se.value,"onUpdate:show":A[37]||(A[37]=I=>se.value=I),mode:C.value,options:Q.value,onConfirm:T},null,8,["show","mode","options"]),ge(sr,{visible:x.value,"onUpdate:visible":A[38]||(A[38]=I=>x.value=I),title:k.value,value:h.value,language:D.value,"read-only":""},null,8,["visible","title","value","language"])],64))}}),cx="/assets/logo-DXm7qK2I.png",ux="/assets/favicon-o5K9zUr2.ico";var In,Sd;function px(){if(Sd)return In;Sd=1;function t(e,r,n,o){var d=-1,s=e==null?0:e.length;for(o&&s&&(n=e[++d]);++d<s;)n=r(n,e[d],d,e);return n}return In=t,In}var Dn,Cd;function gx(){if(Cd)return Dn;Cd=1;function t(e){return function(r){return e==null?void 0:e[r]}}return Dn=t,Dn}var Mn,_d;function hx(){if(_d)return Mn;_d=1;var t=gx(),e={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},r=t(e);return Mn=r,Mn}var Ln,Ed;function mx(){if(Ed)return Ln;Ed=1;function t(e,r){for(var n=-1,o=e==null?0:e.length,d=Array(o);++n<o;)d[n]=r(e[n],n,e);return d}return Ln=t,Ln}var zn,Td;function bx(){if(Td)return zn;Td=1;var t=vr(),e=mx(),r=ar(),n=Hc(),o=t?t.prototype:void 0,d=o?o.toString:void 0;function s(i){if(typeof i=="string")return i;if(r(i))return e(i,s)+"";if(n(i))return d?d.call(i):"";var c=i+"";return c=="0"&&1/i==-1/0?"-0":c}return zn=s,zn}var Rn,Ad;function xl(){if(Ad)return Rn;Ad=1;var t=bx();function e(r){return r==null?"":t(r)}return Rn=e,Rn}var Fn,$d;function fx(){if($d)return Fn;$d=1;var t=hx(),e=xl(),r=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,n="\\u0300-\\u036f",o="\\ufe20-\\ufe2f",d="\\u20d0-\\u20ff",s=n+o+d,i="["+s+"]",c=RegExp(i,"g");function u(m){return m=e(m),m&&m.replace(r,t).replace(c,"")}return Fn=u,Fn}var qn,Pd;function vx(){if(Pd)return qn;Pd=1;var t=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function e(r){return r.match(t)||[]}return qn=e,qn}var Bn,Id;function yx(){if(Id)return Bn;Id=1;var t=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;function e(r){return t.test(r)}return Bn=e,Bn}var On,Dd;function xx(){if(Dd)return On;Dd=1;var t="\\ud800-\\udfff",e="\\u0300-\\u036f",r="\\ufe20-\\ufe2f",n="\\u20d0-\\u20ff",o=e+r+n,d="\\u2700-\\u27bf",s="a-z\\xdf-\\xf6\\xf8-\\xff",i="\\xac\\xb1\\xd7\\xf7",c="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",u="\\u2000-\\u206f",m=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",g="A-Z\\xc0-\\xd6\\xd8-\\xde",C="\\ufe0e\\ufe0f",x=i+c+u+m,h="['’]",k="["+x+"]",D="["+o+"]",M="\\d+",$="["+d+"]",E="["+s+"]",p="[^"+t+x+M+d+s+g+"]",L="\\ud83c[\\udffb-\\udfff]",N="(?:"+D+"|"+L+")",X="[^"+t+"]",K="(?:\\ud83c[\\udde6-\\uddff]){2}",re="[\\ud800-\\udbff][\\udc00-\\udfff]",j="["+g+"]",_="\\u200d",V="(?:"+E+"|"+p+")",O="(?:"+j+"|"+p+")",se="(?:"+h+"(?:d|ll|m|re|s|t|ve))?",W="(?:"+h+"(?:D|LL|M|RE|S|T|VE))?",Q=N+"?",ee="["+C+"]?",ve="(?:"+_+"(?:"+[X,K,re].join("|")+")"+ee+Q+")*",ce="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",J="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",ne=ee+Q+ve,te="(?:"+[$,K,re].join("|")+")"+ne,ue=RegExp([j+"?"+E+"+"+se+"(?="+[k,j,"$"].join("|")+")",O+"+"+W+"(?="+[k,j+V,"$"].join("|")+")",j+"?"+V+"+"+se,j+"+"+W,J,ce,M,te].join("|"),"g");function z(ie){return ie.match(ue)||[]}return On=z,On}var Vn,Md;function wx(){if(Md)return Vn;Md=1;var t=vx(),e=yx(),r=xl(),n=xx();function o(d,s,i){return d=r(d),s=i?void 0:s,s===void 0?e(d)?n(d):t(d):d.match(s)||[]}return Vn=o,Vn}var jn,Ld;function kx(){if(Ld)return jn;Ld=1;var t=px(),e=fx(),r=wx(),n="['’]",o=RegExp(n,"g");function d(s){return function(i){return t(r(e(i).replace(o,"")),s,"")}}return jn=d,jn}var Hn,zd;function Sx(){if(zd)return Hn;zd=1;function t(e,r,n){var o=-1,d=e.length;r<0&&(r=-r>d?0:d+r),n=n>d?d:n,n<0&&(n+=d),d=r>n?0:n-r>>>0,r>>>=0;for(var s=Array(d);++o<d;)s[o]=e[o+r];return s}return Hn=t,Hn}var Nn,Rd;function Cx(){if(Rd)return Nn;Rd=1;var t=Sx();function e(r,n,o){var d=r.length;return o=o===void 0?d:o,!n&&o>=d?r:t(r,n,o)}return Nn=e,Nn}var Un,Fd;function nu(){if(Fd)return Un;Fd=1;var t="\\ud800-\\udfff",e="\\u0300-\\u036f",r="\\ufe20-\\ufe2f",n="\\u20d0-\\u20ff",o=e+r+n,d="\\ufe0e\\ufe0f",s="\\u200d",i=RegExp("["+s+t+o+d+"]");function c(u){return i.test(u)}return Un=c,Un}var Wn,qd;function _x(){if(qd)return Wn;qd=1;function t(e){return e.split("")}return Wn=t,Wn}var Yn,Bd;function Ex(){if(Bd)return Yn;Bd=1;var t="\\ud800-\\udfff",e="\\u0300-\\u036f",r="\\ufe20-\\ufe2f",n="\\u20d0-\\u20ff",o=e+r+n,d="\\ufe0e\\ufe0f",s="["+t+"]",i="["+o+"]",c="\\ud83c[\\udffb-\\udfff]",u="(?:"+i+"|"+c+")",m="[^"+t+"]",g="(?:\\ud83c[\\udde6-\\uddff]){2}",C="[\\ud800-\\udbff][\\udc00-\\udfff]",x="\\u200d",h=u+"?",k="["+d+"]?",D="(?:"+x+"(?:"+[m,g,C].join("|")+")"+k+h+")*",M=k+h+D,$="(?:"+[m+i+"?",i,g,C,s].join("|")+")",E=RegExp(c+"(?="+c+")|"+$+M,"g");function p(L){return L.match(E)||[]}return Yn=p,Yn}var Gn,Od;function Tx(){if(Od)return Gn;Od=1;var t=_x(),e=nu(),r=Ex();function n(o){return e(o)?r(o):t(o)}return Gn=n,Gn}var Xn,Vd;function Ax(){if(Vd)return Xn;Vd=1;var t=Cx(),e=nu(),r=Tx(),n=xl();function o(d){return function(s){s=n(s);var i=e(s)?r(s):void 0,c=i?i[0]:s.charAt(0),u=i?t(i,1).join(""):s.slice(1);return c[d]()+u}}return Xn=o,Xn}var Kn,jd;function $x(){if(jd)return Kn;jd=1;var t=Ax(),e=t("toUpperCase");return Kn=e,Kn}var Qn,Hd;function Px(){if(Hd)return Qn;Hd=1;var t=kx(),e=$x(),r=t(function(n,o,d){return n+(d?" ":"")+e(o)});return Qn=r,Qn}var Ix=Px();const Dx=br(Ix),Mx={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Lx(t,e){return f(),w("svg",Mx,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M4 19q-.825 0-1.412-.587T2 17V7q0-.825.588-1.412T4 5h16q.825 0 1.413.588T22 7v10q0 .825-.587 1.413T20 19zm4-3h8v-2H8zm-3-3h2v-2H5zm3 0h2v-2H8zm3 0h2v-2h-2zm3 0h2v-2h-2zm3 0h2v-2h-2zM5 10h2V8H5zm3 0h2V8H8zm3 0h2V8h-2zm3 0h2V8h-2zm3 0h2V8h-2z"},null,-1)])])}const zx=Pe({name:"material-symbols-keyboard",render:Lx}),Rx={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Fx(t,e){return f(),w("svg",Rx,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M11 17h2v-6h-2zm1.713-8.287Q13 8.425 13 8t-.288-.712T12 7t-.712.288T11 8t.288.713T12 9t.713-.288M12 22q-2.075 0-3.9-.788t-3.175-2.137T2.788 15.9T2 12t.788-3.9t2.137-3.175T8.1 2.788T12 2t3.9.788t3.175 2.137T21.213 8.1T22 12t-.788 3.9t-2.137 3.175t-3.175 2.138T12 22"},null,-1)])])}const qx=Pe({name:"material-symbols-info",render:Fx}),Bx="x-print-designer",Ox="0.0.1",Vx={"@guolao/vue-monaco-editor":"^1.6.0",canvg:"^3.0.11","dom-to-image-more":"^3.7.2",echarts:"^6.0.0",jsbarcode:"^3.12.3",jspdf:"4.2",jszip:"^3.10.1",lodash:"^4.17.21",pinia:"^2.3.0",qrcode:"^1.5.4",uuid:"^11.0.3",vue:"^3.5.13","vue-i18n":"^11.2.8"},jx={"@iconify-json/material-symbols":"^1.2.53","@types/jsbarcode":"^3.11.4","@types/lodash":"^4.17.13","@types/node":"^22.10.2","@types/qrcode":"^1.5.6","@types/uuid":"^10.0.0","@vitejs/plugin-vue":"^5.2.1","@vue/tsconfig":"^0.7.0",autoprefixer:"^10.4.20",postcss:"^8.4.49","rollup-plugin-visualizer":"^7.0.1",sharp:"^0.34.5",tailwindcss:"^3.4.17",terser:"^5.46.1",typescript:"~5.6.2","unplugin-icons":"^23.0.1",vite:"^6.0.1","vue-tsc":"^2.1.10"},Er={name:Bx,version:Ox,dependencies:Vx,devDependencies:jx},Hx={class:"bg-white rounded-lg shadow-xl w-[700px] max-w-full h-[500px] flex overflow-hidden"},Nx={class:"w-48 bg-gray-50 border-r border-gray-200 flex flex-col"},Ux={class:"h-[60px] flex items-center px-4 border-b border-gray-200"},Wx={class:"text-lg font-semibold text-gray-800"},Yx={class:"flex-1 py-2"},Gx={class:"flex-1 flex flex-col min-w-0"},Xx={class:"h-[60px] flex items-center justify-between px-4 border-b border-gray-200"},Kx={class:"text-lg font-semibold text-gray-800"},Qx={class:"flex-1 overflow-y-auto p-6"},Jx={key:0,class:"space-y-6"},Zx={class:"grid grid-cols-1 gap-6 text-sm"},ew={class:"font-medium text-gray-900 mb-3 border-b pb-1"},tw={class:"space-y-2 text-gray-600"},rw={class:"flex justify-between items-center"},ow={class:"bg-gray-100 px-2 py-0.5 rounded border text-xs"},aw={class:"flex justify-between items-center"},nw={class:"bg-gray-100 px-2 py-0.5 rounded border text-xs"},lw={class:"flex justify-between items-center"},sw={class:"bg-gray-100 px-2 py-0.5 rounded border text-xs"},iw={class:"flex justify-between items-center"},dw={class:"bg-gray-100 px-2 py-0.5 rounded border text-xs"},cw={class:"flex justify-between items-center"},uw={class:"bg-gray-100 px-2 py-0.5 rounded border text-xs"},pw={class:"flex justify-between items-center"},gw={class:"bg-gray-100 px-2 py-0.5 rounded border text-xs"},hw={class:"flex justify-between items-center"},mw={class:"bg-gray-100 px-2 py-0.5 rounded border text-xs"},bw={class:"flex justify-between items-center"},fw={class:"bg-gray-100 px-2 py-0.5 rounded border text-xs"},vw={class:"flex justify-between items-center"},yw={class:"bg-gray-100 px-2 py-0.5 rounded border text-xs"},xw={class:"flex justify-between items-center"},ww={class:"bg-gray-100 px-2 py-0.5 rounded border text-xs"},kw={class:"flex justify-between items-center"},Sw={class:"bg-gray-100 px-2 py-0.5 rounded border text-xs"},Cw={class:"flex justify-between items-center"},_w={class:"bg-gray-100 px-2 py-0.5 rounded border text-xs"},Ew={class:"flex justify-between items-center"},Tw={class:"bg-gray-100 px-2 py-0.5 rounded border text-xs"},Aw={class:"font-medium text-gray-900 mb-3 border-b pb-1"},$w={class:"space-y-2 text-gray-600"},Pw={class:"flex justify-between items-center"},Iw={class:"bg-gray-100 px-2 py-0.5 rounded border text-xs"},Dw={class:"flex justify-between items-center"},Mw={class:"bg-gray-100 px-2 py-0.5 rounded border text-xs"},Lw={class:"flex justify-between items-center"},zw={class:"bg-gray-100 px-2 py-0.5 rounded border text-xs"},Rw={class:"flex justify-between items-center"},Fw={class:"bg-gray-100 px-2 py-0.5 rounded border text-xs"},qw={class:"flex justify-between items-center"},Bw={class:"bg-gray-100 px-2 py-0.5 rounded border text-xs"},Ow={class:"flex justify-between items-center"},Vw={class:"bg-gray-100 px-2 py-0.5 rounded border text-xs"},jw={class:"flex justify-between items-center"},Hw={class:"bg-gray-100 px-2 py-0.5 rounded border text-xs"},Nw={class:"flex justify-between items-center"},Uw={class:"bg-gray-100 px-2 py-0.5 rounded border text-xs"},Ww={class:"flex justify-between items-center"},Yw={class:"bg-gray-100 px-2 py-0.5 rounded border text-xs"},Gw={class:"flex justify-between items-center"},Xw={class:"bg-gray-100 px-2 py-0.5 rounded border text-xs"},Kw={class:"font-medium text-gray-900 mb-3 border-b pb-1"},Qw={class:"space-y-2 text-gray-600"},Jw={class:"flex justify-between items-center"},Zw={class:"bg-gray-100 px-2 py-0.5 rounded border text-xs"},e2={class:"flex justify-between items-center"},t2={class:"bg-gray-100 px-2 py-0.5 rounded border text-xs"},r2={class:"flex justify-between items-center"},o2={class:"bg-gray-100 px-2 py-0.5 rounded border text-xs"},a2={class:"flex justify-between items-center"},n2={class:"bg-gray-100 px-2 py-0.5 rounded border text-xs"},l2={key:1,class:"space-y-6"},s2={class:"text-center mb-8"},i2={class:"text-xl font-bold text-gray-800"},d2={class:"mt-1 text-xs text-gray-500"},c2={class:"mt-4 mx-auto max-w-md text-left"},u2={class:"font-medium text-gray-900 mb-2 border-b pb-1"},p2={class:"space-y-2"},g2={class:"flex items-center justify-between rounded-md border border-gray-200 bg-gray-50 px-3 py-2 text-xs"},h2={class:"inline-flex items-center gap-1.5 text-gray-500"},m2={class:"flex items-center justify-between rounded-md border border-gray-200 bg-gray-50 px-3 py-2 text-xs"},b2={class:"inline-flex items-center gap-1.5 text-gray-500"},f2={class:"font-medium text-gray-900 mb-3 border-b pb-1"},v2={class:"bg-gray-50 rounded-lg border border-gray-200 overflow-hidden"},y2={class:"w-full text-xs text-left"},x2={class:"bg-gray-100 text-gray-700 font-medium"},w2={class:"px-4 py-2 border-b"},k2={class:"px-4 py-2 border-b"},S2={class:"divide-y divide-gray-200"},C2={class:"px-4 py-1 text-gray-700 font-mono text-[11px]"},_2=["href","title"],E2={class:"px-4 py-1 text-gray-500 text-[11px]"},T2=Oe({__name:"HelpModal",props:{show:{type:Boolean}},emits:["update:show"],setup(t,{emit:e}){const r=t,n=e,{t:o}=Ke(),d=je(),s=st("modal-container",G(null)),i=G("shortcuts"),c=()=>{n("update:show",!1)},u=x=>{r.show&&x.key==="Escape"&&(x.preventDefault(),c())};ot(()=>{window.addEventListener("keydown",u)}),De(()=>r.show,x=>{d.setDisableGlobalShortcuts(x)}),at(()=>{window.removeEventListener("keydown",u),r.show&&d.setDisableGlobalShortcuts(!1)});const m=[...Object.entries(Er.dependencies||{}),...Object.entries(Er.devDependencies||{})].map(([x,h])=>({name:x,version:h,url:`https://www.npmjs.com/package/${encodeURIComponent(x)}`})),g=Er.version,C=Dx(Er.name);return(x,h)=>(f(),Be(Et,{to:l(s)||"body"},[t.show?(f(),w("div",{key:0,class:"fixed inset-0 z-[99999] flex items-center justify-center bg-black/50 pointer-events-auto",onClick:He(c,["self"])},[a("div",Hx,[a("div",Nx,[a("div",Ux,[a("h3",Wx,b(l(o)("help.title")),1)]),a("div",Yx,[a("button",{onClick:h[0]||(h[0]=k=>i.value="shortcuts"),class:_e(["w-full text-left px-4 py-3 flex items-center gap-3 transition-colors text-sm",i.value==="shortcuts"?"bg-white text-blue-600 border-l-4 border-blue-600 font-medium":"text-gray-600 hover:bg-gray-100 border-l-4 border-transparent"])},[ge(l(zx),{class:"w-5 h-5"}),Le(" "+b(l(o)("shortcuts.title")),1)],2),a("button",{onClick:h[1]||(h[1]=k=>i.value="about"),class:_e(["w-full text-left px-4 py-3 flex items-center gap-3 transition-colors text-sm",i.value==="about"?"bg-white text-blue-600 border-l-4 border-blue-600 font-medium":"text-gray-600 hover:bg-gray-100 border-l-4 border-transparent"])},[ge(l(qx),{class:"w-5 h-5"}),Le(" "+b(l(o)("help.about")),1)],2)])]),a("div",Gx,[a("div",Xx,[a("h3",Kx,b(i.value==="shortcuts"?l(o)("shortcuts.keyboardShortcuts"):l(o)("help.aboutProject",{name:l(C)})),1),a("button",{onClick:c,class:"p-1 hover:bg-gray-100 rounded-full transition-colors text-gray-500"},[ge(l(Ot),{class:"w-4 h-4"})])]),a("div",Qx,[i.value==="shortcuts"?(f(),w("div",Jx,[a("div",Zx,[a("div",null,[a("h4",ew,b(l(o)("shortcuts.general")),1),a("ul",tw,[a("li",rw,[a("span",null,b(l(o)("common.save")),1),h[2]||(h[2]=Le()),a("kbd",ow,b(l(Ve)(["Ctrl","S"])),1)]),a("li",aw,[a("span",null,b(l(o)("shortcuts.saveAsTemplate")),1),h[3]||(h[3]=Le()),a("kbd",nw,b(l(Ve)(["Ctrl","Shift","S"])),1)]),a("li",lw,[a("span",null,b(l(o)("editor.print")),1),h[4]||(h[4]=Le()),a("kbd",sw,b(l(Ve)(["Ctrl","P"])),1)]),a("li",iw,[a("span",null,b(l(o)("editor.exportPdf")),1),h[5]||(h[5]=Le()),a("kbd",dw,b(l(Ve)(["Ctrl","Shift","E"])),1)]),a("li",cw,[a("span",null,b(l(o)("editor.preview")),1),h[6]||(h[6]=Le()),a("kbd",uw,b(l(Ve)(["Ctrl","Shift","P"])),1)]),a("li",pw,[a("span",null,b(l(o)("editor.viewJson")),1),h[7]||(h[7]=Le()),a("kbd",gw,b(l(Ve)(["Ctrl","Shift","J"])),1)]),a("li",hw,[a("span",null,b(l(o)("shortcuts.newTemplate")),1),h[8]||(h[8]=Le()),a("kbd",mw,b(l(Ve)(["Ctrl","Alt","N"])),1)]),a("li",bw,[a("span",null,b(l(o)("shortcuts.openSettings")),1),h[9]||(h[9]=Le()),a("kbd",fw,b(l(Ve)(["Ctrl",","])),1)]),a("li",vw,[a("span",null,b(l(o)("common.undo")),1),h[10]||(h[10]=Le()),a("kbd",yw,b(l(Ve)(["Ctrl","Z"])),1)]),a("li",xw,[a("span",null,b(l(o)("common.redo")),1),h[11]||(h[11]=Le()),a("kbd",ww,b(l(Ve)(["Ctrl","Y"])),1)]),a("li",kw,[a("span",null,b(l(o)("shortcuts.openHelp")),1),h[12]||(h[12]=Le()),a("kbd",Sw,b(l(Ve)(["Ctrl","H"])),1)]),a("li",Cw,[a("span",null,b(l(o)("shortcuts.zoom")),1),h[13]||(h[13]=Le()),a("kbd",_w,b(l(Ve)(["Ctrl","Wheel"])),1)]),a("li",Ew,[a("span",null,b(l(o)("shortcuts.closeModal")),1),h[14]||(h[14]=Le()),a("kbd",Tw,b(l(Ve)(["Esc"])),1)])])]),a("div",null,[a("h4",Aw,b(l(o)("shortcuts.editing")),1),a("ul",$w,[a("li",Pw,[a("span",null,b(l(o)("common.copy")),1),h[15]||(h[15]=Le()),a("kbd",Iw,b(l(Ve)(["Ctrl","C"])),1)]),a("li",Dw,[a("span",null,b(l(o)("common.cut")),1),h[16]||(h[16]=Le()),a("kbd",Mw,b(l(Ve)(["Ctrl","X"])),1)]),a("li",Lw,[a("span",null,b(l(o)("common.paste")),1),h[17]||(h[17]=Le()),a("kbd",zw,b(l(Ve)(["Ctrl","V"])),1)]),a("li",Rw,[a("span",null,b(l(o)("common.delete")),1),h[18]||(h[18]=Le()),a("kbd",Fw,b(l(Ve)(["Delete"])),1)]),a("li",qw,[a("span",null,b(l(o)("shortcuts.selectAll")),1),h[19]||(h[19]=Le()),a("kbd",Bw,b(l(Ve)(["Ctrl","A"])),1)]),a("li",Ow,[a("span",null,b(l(o)("shortcuts.multiSelect")),1),h[20]||(h[20]=Le()),a("kbd",Vw,b(l(Ve)(["Ctrl","Click"])),1)]),a("li",jw,[a("span",null,b(l(o)("common.lock"))+"/"+b(l(o)("common.unlock")),1),h[21]||(h[21]=Le()),a("kbd",Hw,b(l(Ve)(["Ctrl","L"])),1)]),a("li",Nw,[a("span",null,b(l(o)("shortcuts.customEditSave")),1),h[22]||(h[22]=Le()),a("kbd",Uw,b(l(Ve)(["Ctrl","S"])),1)]),a("li",Ww,[a("span",null,b(l(o)("shortcuts.customEditSaveAs")),1),h[23]||(h[23]=Le()),a("kbd",Yw,b(l(Ve)(["Ctrl","Shift","S"])),1)]),a("li",Gw,[a("span",null,b(l(o)("shortcuts.customEditExit")),1),h[24]||(h[24]=Le()),a("kbd",Xw,b(l(Ve)(["Ctrl","Q"])),1)])])]),a("div",null,[a("h4",Kw,b(l(o)("shortcuts.manipulation")),1),a("ul",Qw,[a("li",Jw,[a("span",null,b(l(o)("shortcuts.move")),1),h[25]||(h[25]=Le()),a("kbd",Zw,b(l(o)("shortcuts.arrow")),1)]),a("li",e2,[a("span",null,b(l(o)("shortcuts.fastMove")),1),h[26]||(h[26]=Le()),a("kbd",t2,b(l(Ve)(["Shift",l(o)("shortcuts.arrow")])),1)]),a("li",r2,[a("span",null,b(l(o)("shortcuts.snapRotate")),1),h[27]||(h[27]=Le()),a("kbd",o2,b(l(Ve)(["Shift",l(o)("shortcuts.drag")])),1)]),a("li",a2,[a("span",null,b(l(o)("shortcuts.resize")),1),h[28]||(h[28]=Le()),a("kbd",n2,b(l(Ve)(["Shift",l(o)("shortcuts.resize")])),1)])])])])])):he("",!0),i.value==="about"?(f(),w("div",l2,[a("div",s2,[h[33]||(h[33]=a("img",{src:cx,alt:"Vue Print Designer",class:"w-12 h-12 mx-auto mb-2"},null,-1)),a("h2",i2,b(l(C)),1),a("div",d2,b(l(o)("help.version"))+" "+b(l(g)),1),a("div",c2,[a("h4",u2,b(l(o)("help.links")),1),a("div",p2,[a("div",g2,[a("span",h2,[h[29]||(h[29]=a("img",{src:ux,alt:"Website",class:"w-3.5 h-3.5 rounded-sm"},null,-1)),Le(" "+b(l(o)("help.website")),1)]),h[30]||(h[30]=a("a",{href:"https://printdot.cc",target:"_blank",rel:"noopener noreferrer",class:"text-gray-600 hover:text-blue-600 hover:underline",title:"https://printdot.cc"},"https://printdot.cc",-1))]),a("div",m2,[a("span",b2,[h[31]||(h[31]=a("svg",{viewBox:"0 0 16 16","aria-hidden":"true",class:"w-3.5 h-3.5"},[a("path",{fill:"currentColor",d:"M8 0C3.58 0 0 3.73 0 8.35c0 3.7 2.29 6.83 5.47 7.94.4.08.55-.18.55-.4 0-.2-.01-.86-.01-1.56-2.01.38-2.53-.5-2.69-.96-.09-.24-.48-.96-.82-1.16-.28-.16-.68-.56-.01-.57.63-.01 1.08.6 1.23.85.72 1.25 1.87.9 2.33.69.07-.54.28-.9.51-1.11-1.78-.21-3.64-.92-3.64-4.08 0-.9.31-1.64.82-2.22-.08-.21-.36-1.06.08-2.2 0 0 .67-.22 2.2.85.64-.18 1.32-.27 2-.27s1.36.09 2 .27c1.53-1.07 2.2-.85 2.2-.85.44 1.14.16 1.99.08 2.2.51.58.82 1.32.82 2.22 0 3.17-1.87 3.87-3.65 4.08.29.26.54.77.54 1.56 0 1.12-.01 2.03-.01 2.32 0 .22.15.48.55.4C13.71 15.18 16 12.04 16 8.35 16 3.73 12.42 0 8 0z"})],-1)),Le(" "+b(l(o)("help.github")),1)]),h[32]||(h[32]=a("a",{href:"https://github.com/0ldFive/Vue-Print-Designer",target:"_blank",rel:"noopener noreferrer",class:"text-gray-600 hover:text-blue-600 hover:underline",title:"https://github.com/0ldFive/Vue-Print-Designer"},"https://github.com/0ldFive/Vue-Print-Designer",-1))])])])]),a("div",null,[a("h4",f2,b(l(o)("help.dependencies")),1),a("div",v2,[a("table",y2,[a("thead",x2,[a("tr",null,[a("th",w2,b(l(o)("help.package")),1),a("th",k2,b(l(o)("help.version")),1)])]),a("tbody",S2,[(f(!0),w(Ie,null,qe(l(m),k=>(f(),w("tr",{key:k.name,class:"hover:bg-gray-50"},[a("td",C2,[a("a",{href:k.url,target:"_blank",rel:"noopener noreferrer",title:k.url,class:"hover:underline hover:decoration-blue-600 hover:text-blue-600 transition-colors"},b(k.name),9,_2)]),a("td",E2,b(k.version),1)]))),128))])])])])])):he("",!0)])])])])):he("",!0)],8,["to"]))}}),A2={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function $2(t,e){return f(),w("svg",A2,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"m11.9 22l4.55-12h2.1l4.55 12H21l-1.075-3.05h-4.85L14 22zM4 19l-1.4-1.4l5.05-5.05q-.875-.875-1.588-2T4.75 8h2.1q.5.975 1 1.7t1.2 1.45q.825-.825 1.713-2.313T12.1 6H1V4h7V2h2v2h7v2h-2.9q-.525 1.8-1.575 3.7t-2.075 2.9l2.4 2.45l-.75 2.05l-3.05-3.125zm11.7-1.8h3.6l-1.8-5.1z"},null,-1)])])}const P2=Pe({name:"material-symbols-translate",render:$2}),I2={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function D2(t,e){return f(),w("svg",I2,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M6.5 20q-2.275 0-3.887-1.575T1 14.575q0-1.95 1.175-3.475T5.25 9.15q.625-2.3 2.5-3.725T12 4q2.925 0 4.963 2.038T19 11q1.725.2 2.863 1.488T23 15.5q0 1.875-1.312 3.188T18.5 20z"},null,-1)])])}const M2=Pe({name:"material-symbols-cloud",render:D2}),L2={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function z2(t,e){return f(),w("svg",L2,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M11 17H7q-2.075 0-3.537-1.463T2 12t1.463-3.537T7 7h4v2H7q-1.25 0-2.125.875T4 12t.875 2.125T7 15h4zm-3-4v-2h8v2zm5 4v-2h4q1.25 0 2.125-.875T20 12t-.875-2.125T17 9h-4V7h4q2.075 0 3.538 1.463T22 12t-1.463 3.538T17 17z"},null,-1)])])}const Nd=Pe({name:"material-symbols-link",render:z2}),R2={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function F2(t,e){return f(),w("svg",R2,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"m19.25 16.45l-1.5-1.55q1-.275 1.625-1.063T20 12q0-1.25-.875-2.125T17 9h-4V7h4q2.075 0 3.538 1.463T22 12q0 1.425-.737 2.625T19.25 16.45M15.85 13l-2-2H16v2zm3.95 9.6L1.4 4.2l1.4-1.4l18.4 18.4zM11 17H7q-2.075 0-3.537-1.463T2 12q0-1.725 1.05-3.075t2.7-1.775L7.6 9H7q-1.25 0-2.125.875T4 12t.875 2.125T7 15h4zm-3-4v-2h1.625l1.975 2z"},null,-1)])])}const Ud=Pe({name:"material-symbols-link-off",render:F2}),q2={class:"bg-white rounded-lg shadow-xl w-[700px] max-w-full h-[500px] flex overflow-hidden"},B2={class:"w-48 bg-gray-50 border-r border-gray-200 flex flex-col"},O2={class:"h-[60px] flex items-center px-4 border-b border-gray-200"},V2={class:"text-lg font-semibold text-gray-800"},j2={class:"flex-1 py-2"},H2={class:"flex items-center gap-2"},N2={key:0,class:"relative inline-flex h-2.5 w-2.5"},U2={class:"flex items-center gap-2"},W2={key:0,class:"relative inline-flex h-2.5 w-2.5"},Y2={class:"flex-1 flex flex-col min-w-0 relative"},G2={class:"h-[60px] flex items-center justify-between px-4 border-b border-gray-200"},X2={class:"flex items-center gap-3"},K2={class:"text-lg font-semibold text-gray-800"},Q2={class:"flex-1 overflow-y-auto p-6"},J2={key:0,class:"space-y-4 text-sm text-gray-700"},Z2={class:"mb-2 font-medium text-gray-900"},e5={class:"flex items-center gap-3"},t5={class:"text-xs text-gray-500 mt-2"},r5={class:"border-t border-gray-200 pt-4"},o5={class:"mb-2 font-medium text-gray-900"},a5={class:"flex flex-wrap gap-2"},n5=["onClick"],l5={class:"text-xs text-gray-500 mt-2"},s5={class:"border-t border-gray-200 pt-4"},i5={class:"flex items-center justify-between"},d5={class:"font-medium text-gray-900"},c5={class:"sr-only"},u5={class:"text-xs text-gray-500 mt-2"},p5={class:"border-t border-gray-200 pt-4"},g5={class:"mb-2 font-medium text-gray-900"},h5={class:"flex items-center gap-3"},m5={class:"text-xs text-gray-500 mt-2"},b5={class:"border-t border-gray-200 pt-4"},f5={class:"flex items-center justify-between"},v5={class:"font-medium text-gray-900"},y5={class:"sr-only"},x5={class:"text-xs text-gray-500 mt-2"},w5={class:"border-t border-gray-200 pt-4 space-y-3"},k5={class:"mb-2 font-medium text-gray-900"},S5={class:"flex items-center gap-3"},C5=["disabled"],_5=["disabled"],E5={class:"text-xs text-gray-500 mt-2"},T5={class:"flex items-center justify-between"},A5={class:"font-medium text-gray-900"},$5={class:"sr-only"},P5={class:"text-xs text-gray-500"},I5={key:1,class:"space-y-4 text-sm text-gray-700"},D5={class:"mb-2 font-medium text-gray-900"},M5={class:"flex items-center gap-3"},L5={class:"text-xs text-gray-500 mt-2"},z5={key:2,class:"space-y-4 text-sm text-gray-700"},R5={class:"space-y-2"},F5={class:"flex items-center gap-2"},q5={class:"text-xl font-bold text-gray-900"},B5=["href"],O5={class:"text-xs text-gray-500"},V5={class:"grid grid-cols-2 gap-4"},j5={class:"flex flex-col gap-1 col-span-2"},H5={class:"text-xs text-gray-500"},N5=["placeholder"],U5={class:"flex flex-col gap-1 col-span-2"},W5={class:"text-xs text-gray-500"},Y5={class:"rounded bg-gray-100 px-3 py-2 text-xs text-gray-600 break-all"},G5={class:"font-medium text-gray-700"},X5={key:3,class:"space-y-4 text-sm text-gray-700"},K5={class:"space-y-2"},Q5={class:"flex items-center gap-2"},J5={class:"text-xl font-bold text-gray-900"},Z5=["href"],ek={class:"text-xs text-gray-500"},tk={class:"grid grid-cols-2 gap-4"},rk={class:"flex flex-col gap-1 col-span-2"},ok={class:"text-xs text-gray-500"},ak=["placeholder"],nk={class:"flex flex-col gap-1"},lk={class:"text-xs text-gray-500"},sk={class:"flex flex-col gap-1"},ik={class:"text-xs text-gray-500"},dk={class:"space-y-2 pt-2 border-t border-gray-200"},ck={class:"font-medium text-gray-900"},uk={class:"text-xs text-gray-500"},pk={class:"grid grid-cols-2 gap-4"},gk={class:"flex flex-col gap-1 col-span-2"},hk={class:"text-xs text-gray-500"},mk=["placeholder"],bk={class:"flex flex-col gap-1 col-span-2"},fk={class:"text-xs text-gray-500"},vk=["disabled"],yk={value:""},xk=["value","disabled"],wk={class:"rounded bg-gray-100 px-3 py-2 text-xs text-gray-600 break-all"},kk={class:"font-medium text-gray-700"},Sk={class:"text-xs text-gray-500"},Ck={key:0,class:"p-4 border-t border-gray-200 bg-gray-50 flex justify-end rounded-br-lg"},_k={key:0,class:"w-full"},Ek=["disabled"],Tk={key:0,class:"mt-2 flex items-center justify-between text-xs text-gray-500"},Ak={key:1,class:"w-full"},$k=["disabled"],Pk={key:0,class:"mt-2 flex items-center justify-between text-xs text-gray-500"},Ik=Oe({__name:"SettingsModal",props:{show:{type:Boolean}},emits:["update:show"],setup(t,{emit:e}){const r=t,n=e,{t:o,locale:d}=Ke(),{theme:s,setTheme:i}=Nt(),{autoSave:c}=Vc(),u=je(),m=st("modal-container",G(null)),{printMode:g,silentPrint:C,exportImageMerged:x,printQuality:h,localSettings:k,remoteSettings:D,localStatus:M,remoteStatus:$,localRetryCount:E,remoteRetryCount:p,remoteClients:L,remoteSelectedClientId:N,localWsUrl:X,remoteWsUrl:K,cancelLocalRetry:re,cancelRemoteRetry:j,connectLocal:_,disconnectLocal:V,connectRemote:O,disconnectRemote:se,fetchRemoteClients:W}=Zt(),Q=G("basic"),ee=G(d.value),ve=G(localStorage.getItem("print-designer-brand-key")||"default"),ce=G(localStorage.getItem("print-designer-brand-custom-hex")||"#3b82f6"),J=le(()=>M.value||"disconnected"),ne=le(()=>$.value||"disconnected"),te=le(()=>E.value||0),ue=le(()=>p.value||0),z=le(()=>L.value||[]),ie=le(()=>J.value==="connected"),de=le(()=>ne.value==="connected"),fe=le(()=>J.value==="connecting"),B=le(()=>ne.value==="connecting"),oe=le(()=>!!k.wsAddress),pe=le(()=>!!(D.apiBaseUrl&&D.username&&D.password)),Ae=le(()=>ie.value?o("settings.status.connected"):o("settings.status.disconnected")),Ce=le(()=>de.value?o("settings.status.connected"):o("settings.status.disconnected")),xe=A=>A==="connected"?"bg-blue-600 hover:bg-blue-700 text-white border border-blue-600":"bg-transparent text-blue-600 border border-blue-600 hover:bg-blue-50",Ee=(A,I=0,H=255)=>Math.min(Math.max(A,I),H),we=(A,I,H)=>{const ke=Y=>Ee(Math.round(Y)).toString(16).padStart(2,"0");return`#${ke(A)}${ke(I)}${ke(H)}`},R=(A,I,H)=>({r:A.r+(I.r-A.r)*H,g:A.g+(I.g-A.g)*H,b:A.b+(I.b-A.b)*H}),U=A=>{const I=hr(A);if(!I)return null;const H=mr(I.h,I.s,I.v),ke={r:255,g:255,b:255},Y={r:0,g:0,b:0},be=R(H,ke,.92),me=R(H,ke,.84),Re=R(H,ke,.68),ze=R(H,ke,.5),Ne=R(H,ke,.32),Je=R(H,ke,.16),it=R(H,Y,.12),mt=R(H,Y,.24),bt=R(H,Y,.36),At=R(H,Y,.5);return{"--brand-50":we(be.r,be.g,be.b),"--brand-100":we(me.r,me.g,me.b),"--brand-200":we(Re.r,Re.g,Re.b),"--brand-300":we(ze.r,ze.g,ze.b),"--brand-400":we(Ne.r,Ne.g,Ne.b),"--brand-500":we(Je.r,Je.g,Je.b),"--brand-600":we(H.r,H.g,H.b),"--brand-700":we(it.r,it.g,it.b),"--brand-800":we(mt.r,mt.g,mt.b),"--brand-900":we(bt.r,bt.g,bt.b),"--brand-950":we(At.r,At.g,At.b)}},Z=le(()=>U(ce.value)||{}),y=le(()=>[{key:"default",labelKey:"settings.themePresetDefault",colors:{"--brand-50":"#eff6ff","--brand-100":"#dbeafe","--brand-200":"#bfdbfe","--brand-300":"#93c5fd","--brand-400":"#60a5fa","--brand-500":"#3b82f6","--brand-600":"#2563eb","--brand-700":"#1d4ed8","--brand-800":"#1e40af","--brand-900":"#1e3a8a","--brand-950":"#172554"}},{key:"emerald",labelKey:"settings.themePresetEmerald",colors:{"--brand-50":"#ecfdf5","--brand-100":"#d1fae5","--brand-200":"#a7f3d0","--brand-300":"#6ee7b7","--brand-400":"#34d399","--brand-500":"#10b981","--brand-600":"#059669","--brand-700":"#047857","--brand-800":"#065f46","--brand-900":"#064e3b","--brand-950":"#022c22"}},{key:"amber",labelKey:"settings.themePresetAmber",colors:{"--brand-50":"#fffbeb","--brand-100":"#fef3c7","--brand-200":"#fde68a","--brand-300":"#fcd34d","--brand-400":"#fbbf24","--brand-500":"#f59e0b","--brand-600":"#d97706","--brand-700":"#b45309","--brand-800":"#92400e","--brand-900":"#78350f","--brand-950":"#451a03"}},{key:"rose",labelKey:"settings.themePresetRose",colors:{"--brand-50":"#fff1f2","--brand-100":"#ffe4e6","--brand-200":"#fecdd3","--brand-300":"#fda4af","--brand-400":"#fb7185","--brand-500":"#f43f5e","--brand-600":"#e11d48","--brand-700":"#be123c","--brand-800":"#9f1239","--brand-900":"#881337","--brand-950":"#4c0519"}},{key:"custom",labelKey:"settings.themePresetCustom",colors:Z.value}]),T=A=>{const I=document.documentElement;Object.entries(A).forEach(([H,ke])=>{I.style.setProperty(H,ke)}),window.dispatchEvent(new CustomEvent("brand-theme-updated"))},v=A=>{localStorage.setItem("print-designer-brand-vars",JSON.stringify(A))},S=A=>{const I=y.value.find(H=>H.key===A)||y.value[0];I.colors&&(T(I.colors),v(I.colors),localStorage.setItem("print-designer-brand-key",I.key))};(()=>{const A=localStorage.getItem("print-designer-brand-vars");if(A)try{const I=JSON.parse(A);I&&typeof I=="object"&&T(I)}catch{}})();const ae=async()=>{try{if(fe.value)return;if(ie.value){V();return}await _(),M.value==="connected"&&(g.value="local")}catch(A){console.error("Local connection error:",A)}},q=async()=>{try{if(B.value)return;if(de.value){se();return}await O(),$.value==="connected"&&(g.value="remote")}catch(A){console.error("Remote connection error:",A)}};De(ee,A=>{d.value=A,localStorage.setItem("print-designer-language",A)}),De(d,A=>{ee.value!==A&&(ee.value=A)}),De(s,A=>{i(A)}),De(()=>r.show,A=>{u.setDisableGlobalShortcuts(A)}),De(ce,A=>{A&&(localStorage.setItem("print-designer-brand-custom-hex",A),ve.value==="custom"&&S("custom"))}),De(ve,A=>{S(A)},{immediate:!0}),De([Q,$],([A,I])=>{A!=="remote"||I!=="connected"||W()});const ye=()=>{try{n("update:show",!1)}catch(A){console.error("Error closing modal:",A)}},F=A=>{try{if(!r.show)return;A.key==="Escape"&&(A.preventDefault(),ye())}catch(I){console.error("Error in keydown handler:",I)}};return ot(()=>{window.addEventListener("keydown",F)}),at(()=>{window.removeEventListener("keydown",F),r.show&&u.setDisableGlobalShortcuts(!1)}),(A,I)=>(f(),Be(Et,{to:l(m)||"body"},[t.show?(f(),w("div",{key:0,class:"fixed inset-0 z-[99999] flex items-center justify-center bg-black/50 pointer-events-auto",onClick:He(ye,["self"])},[a("div",q2,[a("div",B2,[a("div",O2,[a("h3",V2,b(l(o)("settings.title")),1)]),a("div",j2,[a("button",{onClick:I[0]||(I[0]=H=>Q.value="basic"),class:_e(["w-full text-left px-4 py-3 flex items-center gap-3 transition-colors text-sm",Q.value==="basic"?"bg-white text-blue-600 border-l-4 border-blue-600 font-medium":"text-gray-600 hover:bg-gray-100 border-l-4 border-transparent"])},[ge(l(Pr),{class:"w-5 h-5"}),Le(" "+b(l(o)("settings.basic")),1)],2),a("button",{onClick:I[1]||(I[1]=H=>Q.value="language"),class:_e(["w-full text-left px-4 py-3 flex items-center gap-3 transition-colors text-sm",Q.value==="language"?"bg-white text-blue-600 border-l-4 border-blue-600 font-medium":"text-gray-600 hover:bg-gray-100 border-l-4 border-transparent"])},[ge(l(P2),{class:"w-5 h-5"}),Le(" "+b(l(o)("settings.language")),1)],2),a("button",{onClick:I[2]||(I[2]=H=>Q.value="local"),class:_e(["w-full text-left px-4 py-3 flex items-center gap-3 transition-colors text-sm",Q.value==="local"?"bg-white text-blue-600 border-l-4 border-blue-600 font-medium":"text-gray-600 hover:bg-gray-100 border-l-4 border-transparent"])},[ge(l(ml),{class:"w-5 h-5"}),a("span",H2,[a("span",null,b(l(o)("settings.localConnection")),1),ie.value?(f(),w("span",N2,[...I[30]||(I[30]=[a("span",{class:"absolute inline-flex h-full w-full rounded-full bg-emerald-400/80 animate-[ping_2.4s_ease-in-out_infinite]"},null,-1),a("span",{class:"relative inline-flex h-2.5 w-2.5 rounded-full bg-emerald-500"},null,-1)])])):he("",!0)])],2),a("button",{onClick:I[3]||(I[3]=H=>Q.value="remote"),class:_e(["w-full text-left px-4 py-3 flex items-center gap-3 transition-colors text-sm",Q.value==="remote"?"bg-white text-blue-600 border-l-4 border-blue-600 font-medium":"text-gray-600 hover:bg-gray-100 border-l-4 border-transparent"])},[ge(l(M2),{class:"w-5 h-5"}),a("span",U2,[a("span",null,b(l(o)("settings.remoteConnection")),1),de.value?(f(),w("span",W2,[...I[31]||(I[31]=[a("span",{class:"absolute inline-flex h-full w-full rounded-full bg-emerald-400/80 animate-[ping_2.4s_ease-in-out_infinite]"},null,-1),a("span",{class:"relative inline-flex h-2.5 w-2.5 rounded-full bg-emerald-500"},null,-1)])])):he("",!0)])],2)])]),a("div",Y2,[a("div",G2,[a("div",X2,[a("h3",K2,b(Q.value==="basic"?l(o)("settings.basic"):Q.value==="language"?l(o)("settings.language"):Q.value==="local"?l(o)("settings.localConnection"):l(o)("settings.remoteConnection")),1)]),a("button",{onClick:ye,class:"p-1 hover:bg-gray-100 rounded-full transition-colors text-gray-500"},[ge(l(Ot),{class:"w-4 h-4"})])]),a("div",Q2,[Q.value==="basic"?(f(),w("div",J2,[a("div",null,[a("div",Z2,b(l(o)("settings.theme")),1),a("div",e5,[a("label",{class:_e(["flex items-center gap-2 px-3 py-2 border rounded cursor-pointer",l(s)==="system"?"border-blue-600 text-blue-700":"border-gray-300"])},[Me(a("input",{type:"radio",value:"system","onUpdate:modelValue":I[4]||(I[4]=H=>Ct(s)?s.value=H:null)},null,512),[[vt,l(s)]]),a("span",null,b(l(o)("settings.themeSystem")),1)],2),a("label",{class:_e(["flex items-center gap-2 px-3 py-2 border rounded cursor-pointer",l(s)==="light"?"border-blue-600 text-blue-700":"border-gray-300"])},[Me(a("input",{type:"radio",value:"light","onUpdate:modelValue":I[5]||(I[5]=H=>Ct(s)?s.value=H:null)},null,512),[[vt,l(s)]]),a("span",null,b(l(o)("settings.themeLight")),1)],2),a("label",{class:_e(["flex items-center gap-2 px-3 py-2 border rounded cursor-pointer",l(s)==="dark"?"border-blue-600 text-blue-700":"border-gray-300"])},[Me(a("input",{type:"radio",value:"dark","onUpdate:modelValue":I[6]||(I[6]=H=>Ct(s)?s.value=H:null)},null,512),[[vt,l(s)]]),a("span",null,b(l(o)("settings.themeDark")),1)],2)]),a("p",t5,b(l(o)("settings.themeDesc")),1)]),a("div",r5,[a("div",o5,b(l(o)("settings.themeColor")),1),a("div",a5,[(f(!0),w(Ie,null,qe(y.value.filter(H=>H.key!=="custom"),H=>(f(),w("button",{key:H.key,type:"button",class:_e(["flex items-center gap-2 px-3 py-2 border rounded text-xs transition-colors",ve.value===H.key?"border-blue-600 text-blue-700":"border-gray-300 text-gray-700 hover:bg-gray-50"]),onClick:ke=>ve.value=H.key},[a("span",{class:"inline-block w-3.5 h-3.5 rounded-full",style:Te({backgroundColor:H.colors["--brand-600"]})},null,4),a("span",null,b(l(o)(H.labelKey)),1)],10,n5))),128)),ge(rr,{"model-value":ce.value,"onUpdate:modelValue":I[8]||(I[8]=H=>{H&&(ce.value=H,ve.value="custom")}),"default-color":ce.value,"teleport-to-body":!0},{trigger:Ft(({color:H,open:ke})=>[a("button",{type:"button",class:_e(["flex items-center gap-2 px-3 py-2 border rounded text-xs transition-colors",ve.value==="custom"?"border-blue-600 text-blue-700":"border-gray-300 text-gray-700 hover:bg-gray-50"]),onClick:I[7]||(I[7]=Y=>ve.value="custom")},[a("span",{class:_e(["inline-block w-3.5 h-3.5 rounded-full border border-gray-200",{"ring-2 ring-blue-500 ring-offset-1":ke}]),style:Te({backgroundColor:H||ce.value})},null,6),a("span",null,b(l(o)("settings.themePresetCustom")),1)],2)]),_:1},8,["model-value","default-color"])]),a("p",l5,b(l(o)("settings.themeColorDesc")),1)]),a("div",s5,[a("div",i5,[a("div",d5,b(l(o)("settings.autoSave")),1),a("button",{onClick:I[9]||(I[9]=H=>c.value=!l(c)),class:_e(["relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-blue-600 focus:ring-offset-2",l(c)?"bg-blue-600":"bg-gray-200"])},[a("span",c5,b(l(o)("settings.autoSave")),1),a("span",{"aria-hidden":"true",class:_e(["pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out",l(c)?"translate-x-5":"translate-x-0"])},null,2)],2)]),a("p",u5,b(l(o)("settings.autoSaveDesc")),1)]),a("div",p5,[a("div",g5,b(l(o)("settings.printQuality")),1),a("div",h5,[a("label",{class:_e(["flex items-center gap-2 px-3 py-2 border rounded cursor-pointer",l(h)==="fast"?"border-blue-600 text-blue-700":"border-gray-300"])},[Me(a("input",{type:"radio",value:"fast","onUpdate:modelValue":I[10]||(I[10]=H=>Ct(h)?h.value=H:null)},null,512),[[vt,l(h)]]),a("span",null,b(l(o)("settings.printQualityFast")),1)],2),a("label",{class:_e(["flex items-center gap-2 px-3 py-2 border rounded cursor-pointer",l(h)==="normal"?"border-blue-600 text-blue-700":"border-gray-300"])},[Me(a("input",{type:"radio",value:"normal","onUpdate:modelValue":I[11]||(I[11]=H=>Ct(h)?h.value=H:null)},null,512),[[vt,l(h)]]),a("span",null,b(l(o)("settings.printQualityNormal")),1)],2),a("label",{class:_e(["flex items-center gap-2 px-3 py-2 border rounded cursor-pointer",l(h)==="high"?"border-blue-600 text-blue-700":"border-gray-300"])},[Me(a("input",{type:"radio",value:"high","onUpdate:modelValue":I[12]||(I[12]=H=>Ct(h)?h.value=H:null)},null,512),[[vt,l(h)]]),a("span",null,b(l(o)("settings.printQualityHigh")),1)],2),a("label",{class:_e(["flex items-center gap-2 px-3 py-2 border rounded cursor-pointer",l(h)==="ultra"?"border-blue-600 text-blue-700":"border-gray-300"])},[Me(a("input",{type:"radio",value:"ultra","onUpdate:modelValue":I[13]||(I[13]=H=>Ct(h)?h.value=H:null)},null,512),[[vt,l(h)]]),a("span",null,b(l(o)("settings.printQualityUltra")),1)],2)]),a("p",m5,b(l(o)("settings.printQualityDesc")),1)]),a("div",b5,[a("div",f5,[a("div",v5,b(l(o)("settings.exportImageMerged")),1),a("button",{onClick:I[14]||(I[14]=H=>x.value=!l(x)),class:_e(["relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-blue-600 focus:ring-offset-2",l(x)?"bg-blue-600":"bg-gray-200"])},[a("span",y5,b(l(o)("settings.exportImageMerged")),1),a("span",{"aria-hidden":"true",class:_e(["pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out",l(x)?"translate-x-5":"translate-x-0"])},null,2)],2)]),a("p",x5,b(l(o)("settings.exportImageMergedDesc")),1)]),a("div",w5,[a("div",null,[a("div",k5,b(l(o)("settings.printMode")),1),a("div",S5,[a("label",{class:_e(["flex items-center gap-2 px-3 py-2 border rounded cursor-pointer",l(g)==="browser"?"border-blue-600 text-blue-700":"border-gray-300"])},[Me(a("input",{type:"radio",value:"browser","onUpdate:modelValue":I[15]||(I[15]=H=>Ct(g)?g.value=H:null)},null,512),[[vt,l(g)]]),a("span",null,b(l(o)("settings.printModeBrowser")),1)],2),a("label",{class:_e(["flex items-center gap-2 px-3 py-2 border rounded cursor-pointer",l(g)==="local"?"border-blue-600 text-blue-700":"border-gray-300"])},[Me(a("input",{type:"radio",value:"local","onUpdate:modelValue":I[16]||(I[16]=H=>Ct(g)?g.value=H:null),disabled:!ie.value},null,8,C5),[[vt,l(g)]]),a("span",null,b(l(o)("settings.printModeLocal")),1)],2),a("label",{class:_e(["flex items-center gap-2 px-3 py-2 border rounded cursor-pointer",l(g)==="remote"?"border-blue-600 text-blue-700":"border-gray-300"])},[Me(a("input",{type:"radio",value:"remote","onUpdate:modelValue":I[17]||(I[17]=H=>Ct(g)?g.value=H:null),disabled:!de.value},null,8,_5),[[vt,l(g)]]),a("span",null,b(l(o)("settings.printModeRemote")),1)],2)]),a("p",E5,b(l(o)("settings.printModeDesc")),1)]),a("div",T5,[a("div",A5,b(l(o)("settings.silentPrint")),1),a("button",{onClick:I[18]||(I[18]=H=>C.value=!l(C)),class:_e(["relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-blue-600 focus:ring-offset-2",l(C)?"bg-blue-600":"bg-gray-200"])},[a("span",$5,b(l(o)("settings.silentPrint")),1),a("span",{"aria-hidden":"true",class:_e(["pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out",l(C)?"translate-x-5":"translate-x-0"])},null,2)],2)]),a("p",P5,b(l(o)("settings.silentPrintDesc")),1)])])):he("",!0),Q.value==="language"?(f(),w("div",I5,[a("div",D5,b(l(o)("settings.selectLanguage")),1),a("div",M5,[a("label",{class:_e(["flex items-center gap-2 px-3 py-2 border rounded cursor-pointer",ee.value==="zh"?"border-blue-600 text-blue-700":"border-gray-300"])},[Me(a("input",{type:"radio",value:"zh","onUpdate:modelValue":I[19]||(I[19]=H=>ee.value=H)},null,512),[[vt,ee.value]]),a("span",null,b(l(o)("settings.zhLabel")),1)],2),a("label",{class:_e(["flex items-center gap-2 px-3 py-2 border rounded cursor-pointer",ee.value==="en"?"border-blue-600 text-blue-700":"border-gray-300"])},[Me(a("input",{type:"radio",value:"en","onUpdate:modelValue":I[20]||(I[20]=H=>ee.value=H)},null,512),[[vt,ee.value]]),a("span",null,b(l(o)("settings.enLabel")),1)],2)]),a("p",L5,b(l(o)("settings.languageDesc")),1)])):he("",!0),Q.value==="local"?(f(),w("div",z5,[a("div",R5,[a("div",F5,[a("div",q5,b(l(o)("settings.localClientTitle")),1),l(u).showClientLink&&l(u).clientUrl?(f(),w("a",{key:0,href:l(u).clientUrl,target:"_blank",class:"flex items-center gap-1 text-sm font-normal text-blue-600 hover:text-blue-800 hover:underline transition-colors"},b(l(o)("settings.downloadClient")),9,B5)):he("",!0)]),a("p",O5,b(l(o)("settings.localClientDesc")),1)]),a("div",V5,[a("label",j5,[a("span",H5,b(l(o)("settings.wsAddress")),1),Me(a("input",{"onUpdate:modelValue":I[21]||(I[21]=H=>l(k).wsAddress=H),type:"text",class:"w-full px-3 py-2 border rounded focus:outline-none focus:border-blue-600",placeholder:l(o)("settings.localWsAddressPlaceholder")},null,8,N5),[[Ue,l(k).wsAddress]])]),a("label",U5,[a("span",W5,b(l(o)("settings.secretKey")),1),Me(a("input",{"onUpdate:modelValue":I[22]||(I[22]=H=>l(k).secretKey=H),type:"text",class:"w-full px-3 py-2 border rounded focus:outline-none focus:border-blue-600"},null,512),[[Ue,l(k).secretKey]])])]),a("div",Y5,[a("span",G5,b(l(o)("settings.connectionUrl"))+": ",1),a("span",null,b(l(X)),1)])])):he("",!0),Q.value==="remote"?(f(),w("div",X5,[a("div",K5,[a("div",Q5,[a("div",J5,b(l(o)("settings.remoteLoginTitle")),1),l(u).showCloudLink&&l(u).cloudUrl?(f(),w("a",{key:0,href:l(u).cloudUrl,target:"_blank",class:"flex items-center gap-1 text-sm font-normal text-blue-600 hover:text-blue-800 hover:underline transition-colors"},b(l(o)("settings.cloudPrint")),9,Z5)):he("",!0)]),a("p",ek,b(l(o)("settings.remoteLoginDesc")),1)]),a("div",tk,[a("label",rk,[a("span",ok,b(l(o)("settings.apiBaseUrl")),1),Me(a("input",{"onUpdate:modelValue":I[23]||(I[23]=H=>l(D).apiBaseUrl=H),type:"text",class:"w-full px-3 py-2 border rounded focus:outline-none focus:border-blue-600",placeholder:l(o)("settings.apiBasePlaceholder")},null,8,ak),[[Ue,l(D).apiBaseUrl]])]),a("label",nk,[a("span",lk,b(l(o)("settings.username")),1),Me(a("input",{"onUpdate:modelValue":I[24]||(I[24]=H=>l(D).username=H),type:"text",class:"w-full px-3 py-2 border rounded focus:outline-none focus:border-blue-600"},null,512),[[Ue,l(D).username]])]),a("label",sk,[a("span",ik,b(l(o)("settings.password")),1),Me(a("input",{"onUpdate:modelValue":I[25]||(I[25]=H=>l(D).password=H),type:"password",class:"w-full px-3 py-2 border rounded focus:outline-none focus:border-blue-600"},null,512),[[Ue,l(D).password]])])]),a("div",dk,[a("div",ck,b(l(o)("settings.remoteWsTitle")),1),a("p",uk,b(l(o)("settings.remoteWsDesc")),1)]),a("div",pk,[a("label",gk,[a("span",hk,b(l(o)("settings.wsAddress")),1),Me(a("input",{"onUpdate:modelValue":I[26]||(I[26]=H=>l(D).wsAddress=H),type:"text",class:"w-full px-3 py-2 border rounded focus:outline-none focus:border-blue-600",placeholder:l(o)("settings.wsAddressPlaceholder")},null,8,mk),[[Ue,l(D).wsAddress]])]),a("label",bk,[a("span",fk,b(l(o)("settings.remoteClient")),1),Me(a("select",{"onUpdate:modelValue":I[27]||(I[27]=H=>Ct(N)?N.value=H:null),class:"w-full px-3 py-2 border rounded bg-white focus:outline-none focus:border-blue-600",disabled:ne.value!=="connected"||z.value.length===0},[a("option",yk,b(l(o)("settings.remoteClientPlaceholder")),1),(f(!0),w(Ie,null,qe(z.value,H=>(f(),w("option",{key:H.client_id,value:H.client_id,disabled:H.online===!1},b(H.client_name||H.client_id)+b(H.online===!1?" (offline)":""),9,xk))),128))],8,vk),[[yt,l(N)]])])]),a("div",wk,[a("span",kk,b(l(o)("settings.connectionUrl"))+": ",1),a("span",null,b(l(K)),1)]),a("p",Sk,b(l(o)("settings.remoteAuthHint")),1)])):he("",!0)]),Q.value==="local"||Q.value==="remote"?(f(),w("div",Ck,[Q.value==="local"?(f(),w("div",_k,[a("button",{onClick:ae,disabled:fe.value||te.value>0||!ie.value&&!oe.value,class:_e(["w-full inline-flex items-center justify-center gap-2 px-3 h-9 rounded transition-colors text-sm shadow-sm disabled:opacity-50 disabled:pointer-events-none disabled:cursor-not-allowed",xe(J.value)])},[ie.value?(f(),Be(l(Nd),{key:0,class:"w-4 h-4"})):(f(),Be(l(Ud),{key:1,class:"w-4 h-4"})),a("span",null,b(Ae.value),1)],10,Ek),te.value>0&&!ie.value?(f(),w("div",Tk,[a("span",null,b(l(o)("settings.retrying",{count:te.value,max:10})),1),a("button",{onClick:I[28]||(I[28]=(...H)=>l(re)&&l(re)(...H)),class:"text-blue-600 hover:text-blue-700"},b(l(o)("settings.cancelRetry")),1)])):he("",!0)])):he("",!0),Q.value==="remote"?(f(),w("div",Ak,[a("button",{onClick:q,disabled:B.value||ue.value>0||!de.value&&!pe.value,class:_e(["w-full inline-flex items-center justify-center gap-2 px-3 h-9 rounded transition-colors text-sm shadow-sm disabled:opacity-50 disabled:pointer-events-none disabled:cursor-not-allowed",xe(ne.value)])},[de.value?(f(),Be(l(Nd),{key:0,class:"w-4 h-4"})):(f(),Be(l(Ud),{key:1,class:"w-4 h-4"})),a("span",null,b(Ce.value),1)],10,$k),ue.value>0&&!de.value?(f(),w("div",Pk,[a("span",null,b(l(o)("settings.retrying",{count:ue.value,max:10})),1),a("button",{onClick:I[29]||(I[29]=(...H)=>l(j)&&l(j)(...H)),class:"text-blue-600 hover:text-blue-700"},b(l(o)("settings.cancelRetry")),1)])):he("",!0)])):he("",!0)])):he("",!0)])])])):he("",!0)],8,["to"]))}}),Dk={class:"h-14 bg-white border-b border-gray-200 flex items-center justify-end px-4 z-[2000] relative shadow-sm"},Mk=Oe({__name:"Header",setup(t){const e=je();return(r,n)=>(f(),w("header",Dk,[ge(dx,{onToggleHelp:n[0]||(n[0]=o=>l(e).setShowHelp(!0)),onToggleSettings:n[1]||(n[1]=o=>l(e).setShowSettings(!0))}),ge(T2,{show:l(e).showHelp,"onUpdate:show":n[2]||(n[2]=o=>l(e).setShowHelp(o))},null,8,["show"]),ge(Ik,{show:l(e).showSettings,"onUpdate:show":n[3]||(n[3]=o=>l(e).setShowSettings(o))},null,8,["show"])]))}}),Lk={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function zk(t,e){return f(),w("svg",Lk,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M7 20V7H2V4h13v3h-5v13zm9 0v-8h-3V9h9v3h-3v8z"},null,-1)])])}const Wd=Pe({name:"material-symbols-text-fields",render:zk}),Rk={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Fk(t,e){return f(),w("svg",Rk,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"m6 20l1-4H3l.5-2h4l1-4h-4L5 8h4l1-4h2l-1 4h4l1-4h2l-1 4h4l-.5 2h-4l-1 4h4l-.5 2h-4l-1 4h-2l1-4H9l-1 4zm3.5-6h4l1-4h-4z"},null,-1)])])}const Yd=Pe({name:"material-symbols-numbers",render:Fk}),qk={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Bk(t,e){return f(),w("svg",qk,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M3 8V5q0-.825.588-1.412T5 3h14q.825 0 1.413.588T21 5v3zm2 13q-.825 0-1.412-.587T3 19v-9h4.5v11zm11.5 0V10H21v9q0 .825-.587 1.413T19 21zm-7 0V10h5v11z"},null,-1)])])}const Gd=Pe({name:"material-symbols-table-chart",render:Bk}),Ok={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Vk(t,e){return f(),w("svg",Ok,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M1 19V5h2v14zm3 0V5h2v14zm3 0V5h1v14zm3 0V5h2v14zm3 0V5h3v14zm4 0V5h1v14zm3 0V5h3v14z"},null,-1)])])}const Xd=Pe({name:"material-symbols-barcode",render:Vk}),jk={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Hk(t,e){return f(),w("svg",jk,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M3 11V3h8v8zm2-2h4V5H5zM3 21v-8h8v8zm2-2h4v-4H5zm8-8V3h8v8zm2-2h4V5h-4zm4 12v-2h2v2zm-6-6v-2h2v2zm2 2v-2h2v2zm-2 2v-2h2v2zm2 2v-2h2v2zm2-2v-2h2v2zm0-4v-2h2v2zm2 2v-2h2v2z"},null,-1)])])}const Kd=Pe({name:"material-symbols-qr-code",render:Hk}),Nk={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Uk(t,e){return f(),w("svg",Nk,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M16 20v-7h4v7zm-6 0V4h4v16zm-6 0V9h4v11z"},null,-1)])])}const Qd=Pe({name:"material-symbols-bar-chart",render:Uk}),Wk={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Yk(t,e){return f(),w("svg",Wk,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M4 13v-2h16v2z"},null,-1)])])}const Jd=Pe({name:"material-symbols-horizontal-rule",render:Yk}),Gk={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Xk(t,e){return f(),w("svg",Gk,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M5 21q-.825 0-1.412-.587T3 19V5q0-.825.588-1.412T5 3h14q.825 0 1.413.588T21 5v14q0 .825-.587 1.413T19 21zm0-2h14V5H5z"},null,-1)])])}const Zd=Pe({name:"material-symbols-check-box-outline-blank",render:Xk}),Kk={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Qk(t,e){return f(),w("svg",Kk,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M12 22q-2.075 0-3.9-.788t-3.175-2.137T2.788 15.9T2 12t.788-3.9t2.137-3.175T8.1 2.788T12 2t3.9.788t3.175 2.137T21.213 8.1T22 12t-.788 3.9t-2.137 3.175t-3.175 2.138T12 22m0-2q3.35 0 5.675-2.325T20 12t-2.325-5.675T12 4T6.325 6.325T4 12t2.325 5.675T12 20"},null,-1)])])}const ec=Pe({name:"material-symbols-radio-button-unchecked",render:Qk}),Jk={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Zk(t,e){return f(),w("svg",Jk,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"m5.825 21l1.625-7.025L2 9.25l7.2-.625L12 2l2.8 6.625l7.2.625l-5.45 4.725L18.175 21L12 17.275z"},null,-1)])])}const e4=Pe({name:"material-symbols-star",render:Zk}),t4={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function r4(t,e){return f(),w("svg",t4,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M12 22q-2.05 0-3.875-.788t-3.187-2.15t-2.15-3.187T2 12q0-2.075.813-3.9t2.2-3.175T8.25 2.788T12.2 2q2 0 3.775.688t3.113 1.9t2.125 2.875T22 11.05q0 2.875-1.75 4.413T16 17h-1.85q-.225 0-.312.125t-.088.275q0 .3.375.863t.375 1.287q0 1.25-.687 1.85T12 22m-4.425-9.425Q8 12.15 8 11.5t-.425-1.075T6.5 10t-1.075.425T5 11.5t.425 1.075T6.5 13t1.075-.425m3-4Q11 8.15 11 7.5t-.425-1.075T9.5 6t-1.075.425T8 7.5t.425 1.075T9.5 9t1.075-.425m5 0Q16 8.15 16 7.5t-.425-1.075T14.5 6t-1.075.425T13 7.5t.425 1.075T14.5 9t1.075-.425m3 4Q19 12.15 19 11.5t-.425-1.075T17.5 10t-1.075.425T16 11.5t.425 1.075T17.5 13t1.075-.425"},null,-1)])])}const o4=Pe({name:"material-symbols-palette",render:r4}),a4={class:"w-64 bg-white dark:bg-gray-900 border-r border-gray-200 dark:border-gray-700 flex flex-col h-full z-40"},n4={class:"p-4 border-b border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800"},l4={class:"font-semibold text-gray-700 dark:text-gray-200"},s4={class:"text-xs text-gray-500 dark:text-gray-400 mt-1"},i4={class:"flex border-b border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-900"},d4={key:0,class:"absolute bottom-0 left-0 w-full h-0.5 bg-blue-600 dark:bg-blue-400"},c4={key:0,class:"absolute bottom-0 left-0 w-full h-0.5 bg-blue-600 dark:bg-blue-400"},u4={class:"flex-1 overflow-y-auto"},p4={class:"text-xs font-semibold text-gray-500 dark:text-gray-400 uppercase tracking-wider mb-3 px-1"},g4={class:"grid grid-cols-2 gap-3"},h4=["onDragstart"],m4={class:"text-sm font-medium text-gray-700 dark:text-gray-200"},b4={key:0,class:"p-6 text-center"},f4={class:"text-sm text-gray-500 dark:text-gray-400"},v4={key:1,class:"p-4 grid grid-cols-2 gap-3"},y4=["onDragstart","onContextmenu"],x4=["title"],w4=["onClick","title"],k4=["onClick","disabled"],S4=["src"],C4=["src"],_4={key:4,class:"w-3.5 h-3.5 inline-flex items-center justify-center"},E4=Oe({__name:"Sidebar",setup(t){const{t:e}=Ke(),r=je(),n=st("modal-container",G(null)),o=G("standard"),d=le(()=>r.customElements),s=G(null),i=G({}),c=G(!1),u=G("edit"),m=G(null),g=G(""),C=G({}),x=le(()=>{var B,oe;return(oe=(B=r.customElementModalFormConfig)==null?void 0:B[u.value])==null?void 0:oe.fields}),h=G(!1),k=G(""),D=G(null),M=G([]),$=B=>!B||!/^[a-z0-9]+(?:-[a-z0-9]+)*:[a-z0-9-]+$/i.test(B)?null:`https://api.iconify.design/${encodeURIComponent(B)}.svg`,E=[{title:"sidebar.general",items:[{type:$e.TEXT,label:"sidebar.text",icon:Wd},{type:$e.IMAGE,label:"sidebar.image",icon:bd},{type:$e.PAGE_NUMBER,label:"sidebar.pagination",icon:Yd}]},{title:"sidebar.dataCodes",items:[{type:$e.TABLE,label:"sidebar.table",icon:Gd},{type:$e.BARCODE,label:"sidebar.barcode",icon:Xd},{type:$e.QRCODE,label:"sidebar.qrcode",icon:Kd},{type:$e.CHART,label:"sidebar.chart",icon:Qd}]},{title:"sidebar.shapes",items:[{type:$e.LINE,label:"sidebar.line",icon:Jd},{type:$e.RECT,label:"sidebar.rect",icon:Zd},{type:$e.CIRCLE,label:"sidebar.circle",icon:ec}]}],p=(B,oe)=>{B.dataTransfer&&(B.dataTransfer.setData("application/json",JSON.stringify({type:oe})),B.dataTransfer.effectAllowed="copy")},L=(B,oe)=>{B.dataTransfer&&(B.dataTransfer.setData("application/json",JSON.stringify({type:oe.element.type,payload:oe.element})),B.dataTransfer.effectAllowed="copy")},N=B=>{switch(B){case $e.TEXT:return Wd;case $e.IMAGE:return bd;case $e.TABLE:return Gd;case $e.PAGE_NUMBER:return Yd;case $e.BARCODE:return Xd;case $e.QRCODE:return Kd;case $e.LINE:return Jd;case $e.RECT:return Zd;case $e.CIRCLE:return ec;case $e.CHART:return Qd;default:return e4}},X=le(()=>s.value&&d.value.find(B=>B.id===s.value)||null),K=(B,oe,pe)=>{const Ae=d.value.find(U=>U.id===pe);if(!Ae)return;const Ce=160,Ee=Math.max(1,ue(Ae).length)*30+10,we=Math.max(5,Math.min(B,window.innerWidth-Ce-5));let R=oe;R+Ee>window.innerHeight-5&&(R=Math.max(5,oe-Ee)),i.value={top:`${R}px`,left:`${we}px`},s.value=pe},re=(B,oe)=>{if(B.stopPropagation(),s.value===oe){s.value=null;return}const Ae=B.currentTarget.getBoundingClientRect();K(Ae.right-160,Ae.bottom+5,oe)},j=(B,oe)=>{B.stopPropagation(),B.preventDefault(),K(B.clientX,B.clientY,oe)},_=B=>{if(!s.value)return;B.composedPath().some(Ae=>Ae instanceof Element?Ae.classList.contains("sidebar-context-menu"):!1)||(s.value=null)},V=(B,oe)=>{var R,U;if(!B)return{};const pe=((R=r.customElementDetailCache[B])==null?void 0:R.ext)||{},xe={...((U=r.customElements.find(Z=>Z.id===B))==null?void 0:U.ext)||{},...pe}.templateModalForm||{},Ee=pe.templateModalForm||{},we={...xe[oe],...Ee[oe]};if(Object.keys(we).length===0){const Z=Ee.lastMode||xe.lastMode;if(Z&&(xe[Z]||Ee[Z]))return{...xe[Z],...Ee[Z]}}return we},O=(B,oe)=>{var Ee;const pe=(Ee=r.customElementModalFormConfig)==null?void 0:Ee[oe];if(!pe)return{};const Ae=pe.initialValues||{},Ce=V(B.id,oe),xe={...Ae,...Ce,...B.ext};return delete xe.templateModalForm,xe},se=B=>{if(!ht(B)){Fe.warning(e("toast.customElementReadOnly"));return}s.value=null,u.value="edit",m.value=B.id,g.value=B.name,C.value=O(B,"edit"),c.value=!0},W=B=>{if(m.value){let oe="",pe;if(typeof B=="string")oe=B;else{oe=B.name;const{name:Ae,...Ce}=B;Object.keys(Ce).length>0&&(pe=Ce)}oe&&(u.value==="edit"?r.editCustomElement(m.value,oe,pe):u.value==="copy"&&r.copyCustomElement(m.value,{...pe,name:oe}))}},Q=B=>{if(!tr(B)){Fe.warning(e("toast.customElementCopyNotAllowed"));return}s.value=null,u.value="copy",m.value=B.id,g.value=`${B.name} Copy`,C.value=O(B,"copy"),c.value=!0},ee=async B=>{if(!er(B)){Fe.warning(e("toast.customElementDeleteNotAllowed"));return}s.value=null,await Tr.show(e("sidebar.confirmDelete",{name:B.name}))&&await r.removeCustomElement(B.id)},ve=async B=>{if(!ht(B)){Fe.warning(e("toast.customElementReadOnly"));return}if(s.value=null,r.editingCustomElementId!==B.id){if(r.editingCustomElementId&&r.editingCustomElementId!==B.id){const oe=r.customElements.find(Ae=>Ae.id===r.editingCustomElementId),pe=oe?oe.name:"";if(!await Tr.show(e("sidebar.confirmSwitchEdit",{name:pe})))return;r.cancelCustomElementEdit()}r.startCustomElementEdit(B.id)}},ce=B=>qc(B.element),J=async B=>{s.value=null,D.value=B;const oe=B.testData||{},pe=el(B.element,oe);M.value=Object.keys(pe),k.value=JSON.stringify(pe,null,2),h.value=!0},ne=le(()=>[{key:"editElement",actionKey:"editElement",label:e("sidebar.editElement"),iconComponent:o4,disabled:({item:B})=>!ht(B)},{key:"testData",actionKey:"testData",label:e("common.testData"),iconComponent:Rt,hidden:({item:B})=>!ce(B)},{key:"edit",actionKey:"edit",label:e("sidebar.edit"),iconComponent:au,disabled:({item:B})=>!ht(B)},{key:"copy",actionKey:"copy",label:e("sidebar.copy"),iconComponent:lr,disabled:({item:B})=>!tr(B)},{key:"delete",actionKey:"delete",label:e("sidebar.delete"),iconComponent:nr,danger:!0,disabled:({item:B})=>!er(B)}]),te=(B,oe,pe)=>{if(pe==="replace")return oe;const Ae=[...B];return oe.forEach(Ce=>{const xe=Ae.findIndex(Ee=>Ee.key===Ce.key);if(xe>=0){Ae[xe]={...Ae[xe],...Ce};return}Ae.push(Ce)}),Ae};function ue(B){const oe=r.customElementContextMenuConfig,pe=((oe==null?void 0:oe.items)||[]).map(Ce=>({...Ce}));return te(ne.value,pe,(oe==null?void 0:oe.mode)==="replace"?"replace":"append").filter(Ce=>typeof Ce.hidden=="function"?!Ce.hidden({source:"customElement",item:B}):!Ce.hidden)}const z=(B,oe)=>typeof B.disabled=="function"?B.disabled({source:"customElement",item:oe}):!!B.disabled,ie=(B,oe)=>{const pe=B||"";if(pe==="editElement"){ve(oe);return}if(pe==="testData"){J(oe);return}if(pe==="edit"){se(oe);return}if(pe==="copy"){Q(oe);return}pe==="delete"&&ee(oe)},de=async(B,oe)=>{if(!z(B,oe)){s.value=null,ie(B.actionKey,oe);try{typeof B.onClick=="function"&&await B.onClick({source:"customElement",item:oe}),B.eventName&&r.emitContextMenuEvent(B.eventName,{source:"customElement",actionKey:B.actionKey||null,key:B.key,item:oe})}catch(pe){console.error("Custom element context menu action failed",pe)}}},fe=()=>{var xe;const B=D.value,oe=new Set(M.value||[]);if(D.value=null,M.value=[],!B)return;let pe=null;try{const Ee=((xe=k.value)==null?void 0:xe.trim())||"{}",we=JSON.parse(Ee);we&&typeof we=="object"&&!Array.isArray(we)&&(pe=we)}catch{pe=null}if(!pe){Fe.error(e("common.invalidJson"));return}if(oe.size>0){const Ee=Object.keys(pe);if(Ee.length!==oe.size||Ee.some(R=>!oe.has(R))){Fe.error(e("common.testDataKeyChanged"));return}}const Ae=el(B.element,B.testData||{}),Ce={};Object.keys(Ae).forEach(Ee=>{(oe.size===0||oe.has(Ee))&&(Ce[Ee]=Object.prototype.hasOwnProperty.call(pe,Ee)?pe[Ee]:Ae[Ee])}),B.testData=Ce,r.saveCustomElements()};return ot(()=>{window.addEventListener("mousedown",_)}),at(()=>{window.removeEventListener("mousedown",_)}),(B,oe)=>(f(),w("aside",a4,[a("div",n4,[a("h2",l4,b(l(e)("sidebar.elements")),1),a("p",s4,b(l(e)("sidebar.dragToCanvas")),1)]),a("div",i4,[a("button",{onClick:oe[0]||(oe[0]=pe=>o.value="standard"),class:_e(["flex-1 py-3 text-sm font-medium transition-colors relative",o.value==="standard"?"text-blue-600 dark:text-blue-400":"text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-200 hover:bg-gray-50 dark:hover:bg-gray-800"])},[Le(b(l(e)("sidebar.standard"))+" ",1),o.value==="standard"?(f(),w("div",d4)):he("",!0)],2),a("button",{onClick:oe[1]||(oe[1]=pe=>o.value="custom"),class:_e(["flex-1 py-3 text-sm font-medium transition-colors relative",o.value==="custom"?"text-blue-600 dark:text-blue-400":"text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-200 hover:bg-gray-50 dark:hover:bg-gray-800"])},[Le(b(l(e)("sidebar.custom"))+" ",1),o.value==="custom"?(f(),w("div",c4)):he("",!0)],2)]),a("div",u4,[o.value==="standard"?(f(),w(Ie,{key:0},qe(E,pe=>a("div",{key:pe.title,class:"p-4 border-b border-gray-100 dark:border-gray-800 last:border-0"},[a("h3",p4,b(l(e)(pe.title)),1),a("div",g4,[(f(!0),w(Ie,null,qe(pe.items,Ae=>(f(),w("div",{key:Ae.type,class:"flex flex-col items-center justify-center p-4 border border-gray-200 dark:border-gray-700 rounded-lg theme-hover-border theme-hover-bg cursor-move transition-all dark:bg-gray-800 dark:hover:bg-gray-700",draggable:"true",onDragstart:Ce=>p(Ce,Ae.type)},[(f(),Be(jt(Ae.icon),{class:"w-8 h-8 text-gray-600 dark:text-gray-300 mb-2"})),a("span",m4,b(l(e)(Ae.label)),1)],40,h4))),128))])])),64)):he("",!0),o.value==="custom"?(f(),w(Ie,{key:1},[d.value.length===0?(f(),w("div",b4,[a("p",f4,b(l(e)("sidebar.noCustomElements")),1)])):(f(),w("div",v4,[(f(!0),w(Ie,null,qe(d.value,pe=>(f(),w("div",{key:pe.id,class:"group relative flex flex-col items-center justify-center p-4 border border-gray-200 dark:border-gray-700 rounded-lg theme-hover-border theme-hover-bg cursor-move transition-all dark:bg-gray-800 dark:hover:bg-gray-700",draggable:"true",onDragstart:Ae=>L(Ae,pe),onContextmenu:He(Ae=>j(Ae,pe.id),["prevent"])},[(f(),Be(jt(N(pe.element.type)),{class:"w-8 h-8 text-gray-600 dark:text-gray-300 mb-2"})),a("span",{class:"text-sm font-medium text-gray-700 dark:text-gray-200 truncate w-full text-center",title:pe.name},b(pe.name),9,x4),a("button",{onClick:He(Ae=>re(Ae,pe.id),["stop"]),class:_e(["absolute top-1 right-1 p-1 text-gray-400 dark:text-gray-500 hover:text-gray-600 dark:hover:text-gray-300 rounded-full hover:bg-gray-100 dark:hover:bg-gray-700 opacity-0 group-hover:opacity-100 transition-opacity",{"opacity-100 bg-gray-100 dark:bg-gray-700 text-gray-600 dark:text-gray-300":s.value===pe.id}]),title:l(e)("sidebar.moreOptions")},[ge(l(ou),{class:"w-4 h-4"})],10,w4)],40,y4))),128))]))],64)):he("",!0)]),(f(),Be(Et,{to:l(n)||"body"},[s.value?(f(),w("div",{key:0,class:"fixed inset-0 z-[2000] pointer-events-auto",onClick:oe[3]||(oe[3]=pe=>s.value=null)},[a("div",{class:"sidebar-context-menu absolute w-40 bg-white dark:bg-gray-800 rounded shadow-lg border border-gray-100 dark:border-gray-700 z-[2001] py-1 pointer-events-auto",style:Te(i.value),onClick:oe[2]||(oe[2]=He(()=>{},["stop"]))},[X.value?(f(!0),w(Ie,{key:0},qe(ue(X.value),pe=>(f(),w("button",{key:pe.key,onClick:Ae=>de(pe,X.value),disabled:z(pe,X.value),class:_e(["w-full text-left px-3 py-1.5 text-xs flex items-center gap-2 disabled:opacity-50 disabled:cursor-not-allowed",pe.danger?"text-red-600 dark:text-red-400 hover:bg-red-50 dark:hover:bg-red-900/30":"text-gray-700 dark:text-gray-200 hover:bg-gray-50 dark:hover:bg-gray-700"])},[pe.iconComponent?(f(),Be(jt(pe.iconComponent),{key:0,class:"w-3.5 h-3.5"})):pe.iconImage?(f(),w("img",{key:1,src:pe.iconImage,class:"w-3.5 h-3.5 object-contain"},null,8,S4)):pe.iconClass?(f(),w("i",{key:2,class:_e(pe.iconClass)},null,2)):$(pe.icon)?(f(),w("img",{key:3,src:$(pe.icon),class:"w-3.5 h-3.5 object-contain"},null,8,C4)):pe.icon?(f(),w("span",_4,b(pe.icon),1)):he("",!0),a("span",null,b(pe.label),1)],10,k4))),128)):he("",!0)],4)])):he("",!0)],8,["to"])),ge(Or,{show:c.value,"initial-value":g.value,"initial-values":C.value,fields:x.value,title:u.value==="edit"?l(e)("sidebar.editModalTitle"):l(e)("common.copy"),placeholder:l(e)("sidebar.enterNamePlaceholder"),onClose:oe[4]||(oe[4]=pe=>c.value=!1),onSave:W},null,8,["show","initial-value","initial-values","fields","title","placeholder"]),ge(sr,{visible:h.value,"onUpdate:visible":oe[5]||(oe[5]=pe=>h.value=pe),title:l(e)("common.testData"),value:k.value,language:"json","onUpdate:value":oe[6]||(oe[6]=pe=>k.value=pe),onClose:fe},null,8,["visible","title","value"])]))}}),T4={key:0,class:"flex items-center justify-between"},A4={class:"text-sm text-gray-700 dark:text-gray-200 font-medium"},$4=["disabled"],P4={class:"sr-only"},I4={key:1},D4={class:"block text-xs text-gray-500 dark:text-gray-400 mb-1"},M4=["value","disabled","placeholder"],L4=["type","value","disabled","placeholder","min","max","step"],Kt=Oe({__name:"PropertyInput",props:{label:{},value:{type:[String,Number,Boolean]},type:{},placeholder:{},min:{},max:{},step:{},disabled:{type:Boolean}},emits:["update:value"],setup(t,{emit:e}){const r=e,n=o=>{const d=o.target;r("update:value",d.value)};return(o,d)=>t.type==="switch"?(f(),w("div",T4,[a("label",A4,b(t.label),1),a("button",{type:"button",disabled:t.disabled,onClick:d[0]||(d[0]=s=>o.$emit("update:value",!t.value)),class:_e(["relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-blue-600 focus:ring-offset-2 disabled:opacity-50 disabled:cursor-not-allowed",t.value?"bg-blue-600 dark:bg-blue-500":"bg-gray-200 dark:bg-gray-700"])},[a("span",P4,"Toggle "+b(t.label),1),a("span",{"aria-hidden":"true",class:_e(["pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white dark:bg-gray-100 shadow ring-0 transition duration-200 ease-in-out",t.value?"translate-x-5":"translate-x-0"])},null,2)],10,$4)])):(f(),w("div",I4,[a("label",D4,b(t.label),1),t.type==="textarea"?(f(),w("textarea",{key:0,value:t.value===void 0||t.value===null?"":String(t.value),disabled:t.disabled,placeholder:t.placeholder,onInput:n,class:"w-full px-2 py-1 text-sm border border-gray-300 dark:border-gray-700 rounded focus:border-blue-500 dark:focus:border-blue-400 outline-none h-24 resize-y disabled:bg-gray-100 dark:disabled:bg-gray-800 disabled:text-gray-500 dark:disabled:text-gray-400 bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200"},null,40,M4)):(f(),w("input",{key:1,type:t.type||"text",value:t.value===void 0||t.value===null?"":String(t.value),disabled:t.disabled,placeholder:t.placeholder,min:t.min,max:t.max,step:t.step,onChange:n,class:"w-full px-2 py-1 text-sm border border-gray-300 dark:border-gray-700 rounded focus:border-blue-500 dark:focus:border-blue-400 outline-none disabled:bg-gray-100 dark:disabled:bg-gray-800 disabled:text-gray-500 dark:disabled:text-gray-400 bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200"},null,40,L4))]))}}),z4={class:"block text-xs text-gray-500 dark:text-gray-400 mb-1"},R4=["value","disabled"],F4=["value"],q4=Oe({__name:"PropertySelect",props:{label:{},value:{type:[String,Number,Boolean]},options:{},disabled:{type:Boolean}},emits:["update:value"],setup(t,{emit:e}){const r=t,n=e,o=d=>{const i=d.target.value,c=r.options.find(u=>String(u.value)===i);n("update:value",c?c.value:i)};return(d,s)=>(f(),w("div",null,[a("label",z4,b(t.label),1),a("select",{value:t.value,disabled:t.disabled,onChange:o,class:"w-full px-2 py-1 text-sm border border-gray-300 dark:border-gray-700 rounded focus:border-blue-500 dark:focus:border-blue-400 outline-none disabled:bg-gray-100 dark:disabled:bg-gray-800 disabled:text-gray-500 dark:disabled:text-gray-400 bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200"},[(f(!0),w(Ie,null,qe(t.options,i=>(f(),w("option",{key:String(i.value),value:i.value,class:"dark:bg-gray-800 dark:text-gray-200"},b(i.label),9,F4))),128))],40,R4)]))}}),B4={class:"flex items-center justify-between"},O4={class:"text-xs text-gray-500 dark:text-gray-400"},V4={class:"flex items-center gap-2"},j4={key:0,class:"absolute inset-0 flex items-center justify-center"},tc=Oe({__name:"PropertyColor",props:{label:{},value:{},disabled:{type:Boolean}},emits:["update:value"],setup(t,{emit:e}){const r=e;return(n,o)=>(f(),w("div",B4,[a("label",O4,b(t.label),1),a("div",V4,[ge(rr,{"model-value":t.value,"onUpdate:modelValue":o[0]||(o[0]=d=>r("update:value",d)),disabled:t.disabled,"allow-transparent":!0},{trigger:Ft(({color:d,open:s})=>[a("div",{class:_e(["w-8 h-6 rounded border border-gray-300 dark:border-gray-600 cursor-pointer relative overflow-hidden hover:border-blue-500 dark:hover:border-blue-400 transition-colors",{"ring-2 ring-blue-500 dark:ring-blue-400 ring-offset-1 dark:ring-offset-gray-900":s,"opacity-50 cursor-not-allowed":t.disabled}])},[o[2]||(o[2]=a("div",{class:"absolute inset-0 bg-[url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwZ+5wNisxL//8n04mEeRAAAhNwX869V4DYAAAAASUVORK5CYII=')] opacity-50"},null,-1)),a("div",{class:"absolute inset-0",style:Te({backgroundColor:d==="transparent"?"transparent":d})},null,4),d==="transparent"?(f(),w("div",j4,[...o[1]||(o[1]=[a("div",{class:"w-full h-[1px] bg-red-500 rotate-45"},null,-1)])])):he("",!0)],2)]),_:1},8,["model-value","disabled"])])]))}}),H4={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function N4(t,e){return f(),w("svg",H4,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M3 21v-8h2v4.6L17.6 5H13V3h8v8h-2V6.4L6.4 19H11v2z"},null,-1)])])}const U4=Pe({name:"material-symbols-open-in-full",render:N4}),W4={class:"flex flex-col gap-1"},Y4={class:"flex justify-between items-center"},G4={class:"text-xs text-gray-500 font-medium"},X4={class:"flex items-center gap-2"},K4={class:"text-[10px] text-gray-400 uppercase"},Q4=Oe({__name:"PropertyCode",props:{label:{},value:{},language:{},disabled:{type:Boolean},height:{}},emits:["update:value"],setup(t,{emit:e}){const r=uc(()=>gt(()=>import("./monaco-BQthl4Am.js"),__vite__mapDeps([15,16])).then(g=>g.Editor)),n=e;je();const{isDark:o}=Nt(),d=G(!1),s=le(()=>({minimap:{enabled:!1},lineNumbers:"on",glyphMargin:!1,folding:!0,wordWrap:"on",automaticLayout:!0,scrollBeyondLastLine:!1,theme:o.value?"vs-dark":"vs",fontSize:12,fontFamily:'Consolas, "Courier New", monospace',renderLineHighlight:"none",overviewRulerLanes:0,hideCursorInOverviewRuler:!0,contextmenu:!1})),i=g=>{n("update:value",g||"")},c=()=>{d.value=!d.value},u=()=>{d.value=!1},m=g=>{n("update:value",g)};return(g,C)=>(f(),w("div",W4,[a("div",Y4,[a("label",G4,b(t.label),1),a("div",X4,[a("span",K4,b(t.language),1),a("button",{onClick:c,class:"text-gray-400 hover:text-blue-600 transition-colors p-0.5 rounded hover:bg-gray-100",title:"Expand Editor"},[ge(l(U4),{class:"w-3.5 h-3.5"})])])]),a("div",{class:"border border-gray-300 rounded overflow-hidden focus-within:border-blue-500 focus-within:ring-1 focus-within:ring-blue-500 resize-y relative group",style:Te({height:`${t.height||200}px`,minHeight:"100px",maxHeight:"600px"})},[ge(l(r),{value:t.value,language:t.language,options:{...s.value,readOnly:t.disabled},"onUpdate:value":i,class:"w-full h-full"},null,8,["value","language","options"]),C[1]||(C[1]=a("div",{class:"absolute bottom-0 right-0 w-3 h-3 cursor-ns-resize pointer-events-none bg-gradient-to-tl from-gray-300 to-transparent opacity-50 group-hover:opacity-100"},null,-1))],4),ge(sr,{visible:d.value,"onUpdate:visible":C[0]||(C[0]=x=>d.value=x),title:t.label,value:t.value,language:t.language,"read-only":t.disabled,"onUpdate:value":m,onClose:u},null,8,["visible","title","value","language","read-only"])]))}}),J4=St(Q4,[["__scopeId","data-v-e19d1803"]]),Z4={class:"block text-xs text-gray-500 dark:text-gray-400 mb-1"},e3={class:"space-y-2"},t3=["value","disabled","placeholder"],r3={class:"flex flex-col gap-1"},o3=["disabled"],a3={class:"text-[10px] text-gray-400 dark:text-gray-500 text-center"},n3={key:0,class:"text-xs text-red-500 mt-1"},l3=Oe({__name:"PropertyImage",props:{label:{},value:{},disabled:{type:Boolean},placeholder:{}},emits:["update:value"],setup(t,{emit:e}){const r=t,n=e,{t:o}=Ke(),d=G(null),s=G(""),i=()=>{var m;r.disabled||(m=d.value)==null||m.click()},c=m=>{var h;const g=m.target,C=(h=g.files)==null?void 0:h[0];if(!C)return;if(s.value="",C.size>2*1024*1024){s.value=o("properties.image.sizeError"),g.value="";return}const x=new FileReader;x.onload=k=>{var M;const D=(M=k.target)==null?void 0:M.result;n("update:value",D)},x.onerror=()=>{s.value=o("properties.image.readError")},x.readAsDataURL(C),g.value=""},u=m=>{const g=m.target;n("update:value",g.value)};return(m,g)=>(f(),w("div",null,[a("label",Z4,b(t.label),1),a("div",e3,[a("input",{type:"text",value:t.value||"",disabled:t.disabled,placeholder:t.placeholder||l(o)("properties.image.urlPlaceholder"),onInput:u,class:"w-full px-2 py-1 text-sm border border-gray-300 dark:border-gray-700 rounded focus:border-blue-500 dark:focus:border-blue-400 outline-none disabled:bg-gray-100 dark:disabled:bg-gray-800 disabled:text-gray-500 dark:disabled:text-gray-400 bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200"},null,40,t3),a("div",r3,[a("button",{type:"button",onClick:i,disabled:t.disabled,class:"w-full py-1.5 px-3 bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200 border border-gray-300 dark:border-gray-700 rounded hover:bg-gray-50 dark:hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-blue-500 disabled:opacity-50 disabled:cursor-not-allowed flex items-center justify-center gap-2 transition-colors"},[g[0]||(g[0]=a("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[a("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-8l-4-4m0 0L8 8m4-4v12"})],-1)),Le(" "+b(l(o)("properties.image.uploadBtn")),1)],8,o3),a("span",a3,b(l(o)("properties.image.uploadTip")),1)]),s.value?(f(),w("p",n3,b(s.value),1)):he("",!0),a("input",{ref_key:"fileInput",ref:d,type:"file",accept:"image/*",class:"hidden",onChange:c},null,544)])]))}}),s3={class:"block text-xs text-gray-500 dark:text-gray-400 mb-1"},i3={class:"relative"},d3=["disabled"],c3={key:0,class:"truncate flex-1"},u3={key:1,class:"text-gray-400 dark:text-gray-500 truncate flex-1"},p3={key:0,class:"absolute top-full left-0 right-0 mt-1 max-h-48 overflow-y-auto bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg shadow-lg z-[3000] custom-scrollbar"},g3={key:0,class:"px-3 py-2 text-xs text-gray-400 dark:text-gray-500 text-center"},h3=["onMousedown"],m3={class:"truncate text-gray-700 dark:text-gray-200"},b3=Oe({__name:"PropertyFieldSelect",props:{label:{},value:{},placeholder:{},disabled:{type:Boolean},filter:{}},emits:["update:value"],setup(t,{emit:e}){const r=t,n=e,{t:o}=Ke(),d=je(),s=le(()=>{const x=[],h=(k,D,M)=>{for(const $ of k){const E=M?`${M}.${$.id}`:$.id,p=!!$.isArray;(!r.filter||r.filter==="array"&&p||r.filter==="text"&&!p)&&x.push({path:E,label:$.label,depth:D,isArray:p,key:E}),$.children&&$.children.length>0&&h($.children,D+1,E)}};return h(d.availableVariables||[],0,""),x}),i=le(()=>r.value?Ze(r.value):""),c=G(!1),u=x=>{n("update:value",x),c.value=!1},m=()=>{n("update:value","")},g=()=>{r.disabled||(c.value=!c.value)},C=x=>{const h=x.relatedTarget;h&&x.currentTarget.contains(h)||(c.value=!1)};return(x,h)=>(f(),w("div",{class:"relative",onFocusout:C},[a("label",s3,b(t.label),1),a("div",i3,[a("button",{type:"button",disabled:t.disabled,onClick:g,class:"w-full flex items-center justify-between px-2 py-1 text-sm border border-gray-300 dark:border-gray-700 rounded focus:border-blue-500 dark:focus:border-blue-400 outline-none disabled:bg-gray-100 dark:disabled:bg-gray-800 disabled:text-gray-500 dark:disabled:text-gray-400 disabled:cursor-not-allowed bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200 text-left min-h-[30px]"},[i.value?(f(),w("span",c3,b(i.value),1)):(f(),w("span",u3,b(t.placeholder||l(o)("properties.label.selectField")),1)),i.value?(f(),w("span",{key:2,onClick:He(m,["stop"]),class:"text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 ml-1 flex-shrink-0 cursor-pointer"},"×")):he("",!0),h[0]||(h[0]=a("svg",{class:"w-3.5 h-3.5 text-gray-400 ml-1 flex-shrink-0",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[a("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 9l-7 7-7-7"})],-1))],8,d3),c.value?(f(),w("div",p3,[s.value.length===0?(f(),w("div",g3,b(l(o)("common.noData")),1)):he("",!0),(f(!0),w(Ie,null,qe(s.value,k=>(f(),w("div",{key:k.key,onMousedown:He(D=>u(k.path),["prevent"]),class:_e(["flex items-center gap-1.5 px-3 py-1.5 text-sm cursor-pointer hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors",{"bg-blue-50 dark:bg-blue-900/20 text-blue-600 dark:text-blue-400":i.value===k.path}])},[a("span",{style:Te({width:`${k.depth*16}px`}),class:"flex-shrink-0"},null,4),a("span",{class:_e(["flex-shrink-0 text-[10px] px-1 py-0.5 rounded",k.isArray?"text-blue-600 dark:text-blue-400 bg-blue-50 dark:bg-blue-900/20":"text-gray-500 dark:text-gray-400 bg-gray-100 dark:bg-gray-700"])},b(k.isArray?"[]":"T"),3),a("span",m3,b(k.label),1)],42,h3))),128))])):he("",!0)])],32))}}),f3=St(b3,[["__scopeId","data-v-dacba85f"]]),v3={class:"block text-xs text-gray-500 dark:text-gray-400 mb-1"},y3={key:0,class:"text-xs text-gray-400 dark:text-gray-500 py-2"},x3={key:1,class:"max-h-40 overflow-y-auto space-y-0.5 custom-scrollbar border border-gray-200 dark:border-gray-700 rounded p-1.5 bg-white dark:bg-gray-800"},w3=["checked","disabled","onChange"],k3={class:"text-gray-700 dark:text-gray-200 truncate"},S3=Oe({__name:"PropertyColumnPicker",props:{label:{},fields:{},value:{},disabled:{type:Boolean}},emits:["update:value"],setup(t,{emit:e}){const r=t,n=e,o=()=>new Set(r.value||[]),d=s=>{const i=[...r.value||[]],c=i.indexOf(s);c>=0?i.splice(c,1):i.push(s),n("update:value",i)};return(s,i)=>(f(),w("div",null,[a("label",v3,b(t.label),1),!t.fields||t.fields.length===0?(f(),w("div",y3,b(s.$t("common.noData")),1)):(f(),w("div",x3,[(f(!0),w(Ie,null,qe(t.fields,c=>(f(),w("label",{key:c,class:_e(["flex items-center gap-2 px-2 py-1 rounded hover:bg-gray-50 dark:hover:bg-gray-700 cursor-pointer select-none text-sm",{"opacity-50":t.disabled}])},[a("input",{type:"checkbox",checked:o().has(c),disabled:t.disabled,onChange:u=>d(c),class:"w-3.5 h-3.5 rounded border-gray-300 dark:border-gray-600 text-blue-600 focus:ring-blue-500 cursor-pointer"},null,40,w3),a("span",k3,b(c),1)],2))),128))]))]))}}),C3=St(S3,[["__scopeId","data-v-1e890fd6"]]),_3={class:"block text-xs text-gray-500 dark:text-gray-400 mb-1"},E3={class:"relative"},T3=["disabled"],A3={key:0,class:"truncate flex-1"},$3={key:1,class:"text-gray-400 dark:text-gray-500 truncate flex-1"},P3={key:0,class:"absolute top-full left-0 right-0 mt-1 max-h-48 overflow-y-auto bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg shadow-lg z-[3000] custom-scrollbar"},I3={key:0,class:"px-3 py-2 text-xs text-gray-400 dark:text-gray-500 text-center"},D3=["onMousedown"],M3={class:"truncate text-gray-700 dark:text-gray-200"},L3=Oe({__name:"PropertyChartDataSelect",props:{label:{},value:{},placeholder:{},disabled:{type:Boolean}},emits:["update:value"],setup(t,{emit:e}){const r=t,n=e,{t:o}=Ke(),d=je(),s=le(()=>{const x=[],h=d.testData;if(!h||typeof h!="object")return x;const k=(D,M,$)=>{for(const[E,p]of Object.entries(D)){const L=M?`${M}.${E}`:E;Array.isArray(p)&&p.length>0?x.push({path:L,label:E,depth:$,key:L}):p&&typeof p=="object"&&!Array.isArray(p)&&k(p,L,$+1)}};return k(h,"",0),x}),i=le(()=>r.value?Ze(r.value):""),c=G(!1),u=x=>{n("update:value",x),c.value=!1},m=()=>{n("update:value","")},g=()=>{r.disabled||(c.value=!c.value)},C=x=>{const h=x.relatedTarget;h&&x.currentTarget.contains(h)||(c.value=!1)};return(x,h)=>(f(),w("div",{class:"relative",onFocusout:C},[a("label",_3,b(t.label),1),a("div",E3,[a("button",{type:"button",disabled:t.disabled,onClick:g,class:"w-full flex items-center justify-between px-2 py-1 text-sm border border-gray-300 dark:border-gray-700 rounded focus:border-blue-500 dark:focus:border-blue-400 outline-none disabled:bg-gray-100 dark:disabled:bg-gray-800 disabled:text-gray-500 dark:disabled:text-gray-400 disabled:cursor-not-allowed bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200 text-left min-h-[30px]"},[i.value?(f(),w("span",A3,b(i.value),1)):(f(),w("span",$3,b(t.placeholder||l(o)("properties.label.selectDataSource")),1)),i.value?(f(),w("span",{key:2,onClick:He(m,["stop"]),class:"text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 ml-1 flex-shrink-0 cursor-pointer"},"×")):he("",!0),h[0]||(h[0]=a("svg",{class:"w-3.5 h-3.5 text-gray-400 ml-1 flex-shrink-0",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[a("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 9l-7 7-7-7"})],-1))],8,T3),c.value?(f(),w("div",P3,[s.value.length===0?(f(),w("div",I3,b(l(o)("common.noData")),1)):he("",!0),(f(!0),w(Ie,null,qe(s.value,k=>(f(),w("div",{key:k.key,onMousedown:He(D=>u(k.path),["prevent"]),class:_e(["flex items-center gap-1.5 px-3 py-1.5 text-sm cursor-pointer hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors",{"bg-blue-50 dark:bg-blue-900/20 text-blue-600 dark:text-blue-400":i.value===k.path}])},[a("span",{style:Te({width:`${k.depth*16}px`}),class:"flex-shrink-0"},null,4),h[1]||(h[1]=a("span",{class:"flex-shrink-0 text-[10px] px-1 py-0.5 rounded text-blue-600 dark:text-blue-400 bg-blue-50 dark:bg-blue-900/20"}," [] ",-1)),a("span",M3,b(k.label),1)],42,D3))),128))])):he("",!0)])],32))}}),z3=St(L3,[["__scopeId","data-v-2ce9799f"]]),R3={class:"block text-xs text-gray-500 dark:text-gray-400 mb-1"},F3={class:"relative"},q3=["disabled"],B3={key:0,class:"truncate flex-1"},O3={key:1,class:"text-gray-400 dark:text-gray-500 truncate flex-1"},V3={key:3,class:"w-3.5 h-3.5 text-gray-400 ml-1 flex-shrink-0",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},j3={key:0,class:"absolute top-full left-0 right-0 mt-1 max-h-48 overflow-y-auto bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg shadow-lg z-[3000] custom-scrollbar"},H3={key:0,class:"px-3 py-2 text-xs text-gray-400 dark:text-gray-500 text-center"},N3={key:1,class:"px-3 py-2 text-xs text-gray-400 dark:text-gray-500 text-center"},U3=["onMousedown"],W3={class:"truncate text-gray-700 dark:text-gray-200"},Y3=Oe({__name:"PropertyChartFieldSelect",props:{label:{},value:{},placeholder:{},disabled:{type:Boolean},dataVariable:{}},emits:["update:value"],setup(t,{emit:e}){const r=t,n=e,{t:o}=Ke(),d=je(),s=le(()=>{const x=[];if(!r.dataVariable)return x;const h=Ze(r.dataVariable),k=d.testData;if(!k||typeof k!="object")return x;let D=We(k,h);if(!Array.isArray(D)){const E=h.split(".");let p=k;for(const L of E)if(p&&typeof p=="object"&&L in p)p=p[L];else break;Array.isArray(p)&&(D=p)}if(!Array.isArray(D)||D.length===0)return x;const M=D[0];return!M||typeof M!="object"||((E,p,L)=>{for(const[N,X]of Object.entries(E)){const K=N,re=Bc(X);re!=="object"&&re!=="array"&&x.push({path:K,label:N,depth:L,type:re,key:K})}})(M,"",0),x}),i=le(()=>r.value?r.value:""),c=G(!1),u=x=>{n("update:value",x),c.value=!1},m=()=>{n("update:value","")},g=()=>{r.disabled||r.dataVariable&&(c.value=!c.value)},C=x=>{const h=x.relatedTarget;h&&x.currentTarget.contains(h)||(c.value=!1)};return De(()=>r.dataVariable,async(x,h)=>{r.value&&(s.value.some(M=>M.path===r.value)||n("update:value",""))},{immediate:!0}),De(()=>d.testData,()=>{r.value&&(s.value.some(k=>k.path===r.value)||n("update:value",""))},{deep:!0}),(x,h)=>(f(),w("div",{class:"relative",onFocusout:C},[a("label",R3,b(t.label),1),a("div",F3,[a("button",{type:"button",disabled:t.disabled||!t.dataVariable,onClick:g,class:_e(["w-full flex items-center justify-between px-2 py-1 text-sm border border-gray-300 dark:border-gray-700 rounded focus:border-blue-500 dark:focus:border-blue-400 outline-none disabled:bg-gray-100 dark:disabled:bg-gray-800 disabled:text-gray-500 dark:disabled:text-gray-400 disabled:cursor-not-allowed bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200 text-left min-h-[30px]",{"border-yellow-400 dark:border-yellow-500":t.dataVariable&&!i.value}])},[i.value?(f(),w("span",B3,b(i.value),1)):(f(),w("span",O3,b(t.dataVariable?t.placeholder||l(o)("properties.label.selectField"):l(o)("properties.label.selectDataSourceFirst")),1)),i.value&&!t.disabled?(f(),w("span",{key:2,onClick:He(m,["stop"]),class:"text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 ml-1 flex-shrink-0 cursor-pointer"},"×")):he("",!0),t.dataVariable?(f(),w("svg",V3,[...h[0]||(h[0]=[a("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 9l-7 7-7-7"},null,-1)])])):he("",!0)],10,q3)]),c.value?(f(),w("div",j3,[t.dataVariable?s.value.length===0?(f(),w("div",N3,b(l(o)("common.noData")),1)):(f(!0),w(Ie,{key:2},qe(s.value,k=>(f(),w("div",{key:k.key,onMousedown:He(D=>u(k.path),["prevent"]),class:_e(["flex items-center gap-1.5 px-3 py-1.5 text-sm cursor-pointer hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors",{"bg-blue-50 dark:bg-blue-900/20 text-blue-600 dark:text-blue-400":i.value===k.path}])},[a("span",{style:Te({width:`${k.depth*16}px`}),class:"flex-shrink-0"},null,4),a("span",{class:_e(["flex-shrink-0 text-[10px] px-1 py-0.5 rounded",{"text-blue-600 dark:text-blue-400 bg-blue-50 dark:bg-blue-900/20":k.type==="string","text-green-600 dark:text-green-400 bg-green-50 dark:bg-green-900/20":k.type==="number","text-orange-600 dark:text-orange-400 bg-orange-50 dark:bg-orange-900/20":k.type==="boolean"}])},b(k.type==="string"?"T":k.type==="number"?"#":"?"),3),a("span",W3,b(k.label),1)],42,U3))),128)):(f(),w("div",H3,b(l(o)("properties.label.selectDataSourceFirst")),1))])):he("",!0)],32))}}),G3=St(Y3,[["__scopeId","data-v-9d2cf375"]]),X3={class:"block text-xs text-gray-500 dark:text-gray-400 mb-1"},K3={key:0,class:"text-xs text-gray-400 dark:text-gray-500 py-2"},Q3={key:1,class:"max-h-48 overflow-y-auto space-y-1 custom-scrollbar border border-gray-200 dark:border-gray-700 rounded p-2 bg-white dark:bg-gray-800"},J3=["title"],Z3=["value","disabled","onInput","placeholder"],eS=Oe({__name:"ColumnAliasEditor",props:{label:{},columns:{},disabled:{type:Boolean},testData:{},variable:{},variables:{}},emits:["update:columns"],setup(t,{emit:e}){const r=t,n=e,o=c=>{const u=Ze(c||"");if(!u)return[];const m=(x,h)=>{const k=We(x,h);if(Array.isArray(k))return k;if(k&&typeof k=="object")for(const D of Object.keys(k)){const M=k[D];if(Array.isArray(M)&&M.length>0)return M}return null};let g=m(r.testData||{},u);if(!g||g.length===0){const x=u.startsWith("variables.")?u.slice(10):u;x!==u&&(g=m(r.testData||{},x))}if((!g||g.length===0)&&(g=m(r.variables||{},u)),!g||g.length===0)return[];const C=g[0];return!C||typeof C!="object"?[]:Object.keys(C).map(x=>({field:x,header:x}))},d=le(()=>o(r.variable||""));De(()=>r.variable,c=>{const u=o(c||"");u.length>0&&(!r.columns||r.columns.length===0)&&n("update:columns",u)});const s=le(()=>r.columns&&r.columns.length>0?r.columns:r.variable?d.value:[]),i=(c,u)=>{const g=s.value.map(C=>C.field===c?{...C,header:u}:C);n("update:columns",g)};return(c,u)=>(f(),w("div",null,[a("label",X3,b(t.label),1),s.value.length===0?(f(),w("div",K3,b(c.$t("common.noData")),1)):(f(),w("div",Q3,[(f(!0),w(Ie,null,qe(s.value,m=>(f(),w("div",{key:m.field,class:_e(["flex items-center gap-2",{"opacity-50":t.disabled}])},[a("span",{class:"text-xs text-gray-500 dark:text-gray-400 w-20 truncate flex-shrink-0",title:m.field},b(m.field),9,J3),a("input",{type:"text",value:m.header,disabled:t.disabled,onInput:g=>i(m.field,g.target.value),class:"flex-1 text-xs px-2 py-1 border border-gray-200 dark:border-gray-600 rounded bg-white dark:bg-gray-700 text-gray-700 dark:text-gray-200 focus:outline-none focus:ring-1 focus:ring-blue-500 disabled:opacity-50",placeholder:c.$t("properties.label.headerAliasPlaceholder")},null,40,Z3)],2))),128))]))]))}}),tS=St(eS,[["__scopeId","data-v-89c1feca"]]),rS={class:"p-4 border-b border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800 flex items-center justify-between"},oS={class:"font-semibold text-gray-700 dark:text-gray-200"},aS={class:"text-xs text-gray-500 dark:text-gray-400 mt-1"},nS={key:0,class:"flex items-center text-red-500 dark:text-red-400 gap-1 text-xs font-medium bg-red-50 dark:bg-red-900/30 px-2 py-1 rounded border border-red-100 dark:border-red-800"},lS={key:0,class:"p-6 text-center"},sS={class:"mb-4"},iS={class:"text-lg font-semibold text-gray-900 dark:text-gray-100"},dS={class:"text-sm text-gray-500 dark:text-gray-400 mt-2"},cS={class:"font-medium text-gray-700 dark:text-gray-200"},uS=["disabled"],pS={key:1,class:"flex flex-col h-full overflow-hidden"},gS={class:"flex border-b border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-900"},hS=["onClick"],mS={key:0,class:"absolute bottom-0 left-0 w-full h-0.5 bg-blue-600 dark:bg-blue-400"},bS={class:"p-4 space-y-6 overflow-y-auto flex-1 custom-scrollbar dark:bg-gray-900"},fS={key:0,class:"space-y-3"},vS={class:"text-xs font-bold text-gray-500 dark:text-gray-400 uppercase tracking-wider"},yS={class:"grid grid-cols-2 gap-3"},xS={key:1,class:"space-y-3 pt-2 border-t border-gray-100 dark:border-gray-800"},wS={class:"text-xs font-bold text-gray-500 dark:text-gray-400 uppercase tracking-wider"},kS={class:"grid grid-cols-2 gap-3"},SS=["disabled"],CS=["disabled"],_S=["disabled"],ES=["disabled"],TS={key:2,class:"space-y-3 pt-2 border-t border-gray-100 dark:border-gray-800"},AS={class:"text-xs font-bold text-gray-500 dark:text-gray-400 uppercase tracking-wider"},$S={class:"grid grid-cols-2 gap-3"},PS=["disabled"],IS=["disabled"],DS={key:0,class:"space-y-3 pt-2 first:pt-0 border-t first:border-0 border-gray-100 dark:border-gray-800"},MS={class:"text-xs font-bold text-gray-500 dark:text-gray-400 uppercase tracking-wider"},LS={class:"space-y-3"},zS={key:0},RS=["onClick","disabled"],FS={key:11},qS={class:"block text-xs text-gray-500 dark:text-gray-400 mb-1 font-medium"},BS=["placeholder","disabled","value","onChange"],OS={key:3,class:"space-y-3 pt-2 border-t border-gray-100 dark:border-gray-800"},VS={class:"text-xs font-bold text-gray-500 dark:text-gray-400 uppercase tracking-wider"},jS={key:4,class:"space-y-4"},HS={class:"p-4 bg-gray-50 dark:bg-gray-800 rounded border border-gray-200 dark:border-gray-700"},NS={class:"text-sm font-medium text-gray-700 dark:text-gray-200 mb-3"},US={class:"space-y-3"},WS={class:"text-xs text-gray-500 dark:text-gray-400 mb-1.5 font-medium"},YS={class:"flex items-center gap-2 bg-white dark:bg-gray-900 border border-gray-200 dark:border-gray-700 rounded px-2 py-1.5 hover:border-blue-400 dark:hover:border-blue-500 transition-colors"},GS=["title"],XS=["title"],KS={class:"text-xs text-gray-500 flex items-center justify-between border-t border-gray-100 pt-2"},QS={class:"font-medium"},JS={class:"px-2 py-0.5 bg-gray-100 rounded text-gray-600"},ZS=["disabled"],eC={key:2,class:"p-6 text-center"},tC={class:"mb-4"},rC={class:"text-lg font-semibold text-gray-900"},oC={class:"text-sm text-gray-500 mt-2"},aC=Oe({__name:"PropertiesPanel",setup(t){const{t:e}=Ke(),r=je(),n=le(()=>r.selectedElement),o=le(()=>r.selectedElementIds.length>1),d=le(()=>{var v;return((v=n.value)==null?void 0:v.locked)||!1}),s=le(()=>d.value||!r.isTemplateEditable),i=G(!1),c=G(""),u=le(()=>n.value?[$e.LINE,$e.RECT,$e.CIRCLE].includes(n.value.type):!1),m=le(()=>n.value?n.value.type!==$e.TABLE:!1),g=le(()=>r.tableSelection?r.tableSelection.cells.length>1:!1),C=le(()=>{if(!r.tableSelection||r.tableSelection.cells.length!==1)return!1;const v=r.tableSelection.cells[0],S=r.selectedElement;if(!S||S.type!==$e.TABLE)return!1;const ae=(v.section||"body")==="footer"?S.footerData:S.data;if(!ae)return!1;const q=ae[v.rowIndex];if(!q)return!1;const ye=q[v.colField];return ye&&typeof ye=="object"?(ye.rowSpan||1)>1||(ye.colSpan||1)>1:!1}),x=G("properties"),h=G(!1),k=le(()=>r.unit||"mm"),D=le(()=>r.unit||"mm"),M=new Set(["fontSize","borderWidth","barcodeWidth","barcodeHeight","margin","borderRadius","headerHeight","rowHeight","footerHeight","labelFontSize","labelBorderWidth"]),$=v=>v.type!=="number"||!v.key?!1:M.has(v.key),E=v=>{const S=e(v.label);return $(v)?`${S} (${D.value})`:S},p=v=>{var P;if(!v.condition||!v.condition.field||!v.condition.values)return!0;const S=(P=n.value)==null?void 0:P[v.condition.field];return v.condition.values.includes(S)},L=v=>{var P;if(!v.condition||!v.condition.field||!v.condition.values)return!0;const S=(P=n.value)==null?void 0:P[v.condition.field];return v.condition.values.includes(S)},N=v=>{const S=B(v);return $(v)&&typeof S=="number"?It(S,k.value):S},X=(v,S)=>$(v)?xt(Number(S),k.value):S,K=v=>{if(!(v.min===void 0||v.min===null))return $(v)?It(v.min,k.value):v.min},re=v=>{if(!(v.max===void 0||v.max===null))return $(v)?It(v.max,k.value):v.max},j=v=>{if(!(v.step===void 0||v.step===null))return $(v)?It(v.step,k.value):v.step},_=()=>{n.value&&(navigator.clipboard.writeText(n.value.id),h.value=!0,setTimeout(()=>{h.value=!1},2e3))},V=G({}),O=le(()=>{var v,S;return(S=(v=r.customElementModalFormConfig)==null?void 0:v.create)==null?void 0:S.fields}),se=()=>{var S;if(!n.value)return;c.value=n.value.type;const v=(S=r.customElementModalFormConfig)==null?void 0:S.create;V.value=(v==null?void 0:v.initialValues)||{},i.value=!0},W=v=>{if(n.value){let S="",P;if(typeof v=="string")S=v;else{S=v.name;const{name:ae,...q}=v;Object.keys(q).length>0&&(P=q)}S&&r.addCustomElement(S,n.value,P)}},Q=(v,S)=>{n.value&&r.updateElement(n.value.id,{[v]:S})},ee=(v,S)=>{n.value&&r.updateElement(n.value.id,{style:{...n.value.style,[v]:S}})},ve=()=>!n.value||!Array.isArray(n.value.columns)?[]:n.value.columns.map(v=>v.field),ce=v=>{if(!n.value)return;const S=Array.isArray(n.value.columns)?n.value.columns:[],P=new Map(S.map(q=>[q.field,q])),ae=v.map(q=>{const ye=P.get(q);return ye||{field:q,header:q,width:100}});Q("columns",ae)},J=G(0),ne=le(()=>{J.value;const v=n.value;if(!v||v.type!==$e.TABLE)return[];const S=[];if(!v.variable)return S;const P=Ze(v.variable);if(!P)return S;const ae=(q,ye)=>{console.log("[DEBUG] tryResolve with path:",ye);const F=[],A=We(q,ye);console.log("[DEBUG] resolved value:",A);let I=null;if(Array.isArray(A))I=A;else if(A&&typeof A=="object")for(const H of Object.keys(A)){const ke=A[H];if(Array.isArray(ke)&&ke.length>0){I=ke;break}}if(I&&I.length>0){const H=I[0];H&&typeof H=="object"&&Object.keys(H).forEach(ke=>{F.push(ke)})}return F};if(console.log("[DEBUG] Original key:",P),S.push(...ae(r.testData||{},P)),console.log("[DEBUG] After original key, allFields:",S),S.length===0){const q=P.startsWith("variables.")?P.slice(10):P;console.log("[DEBUG] Trying shortKey:",q),q!==P&&(S.push(...ae(r.testData||{},q)),console.log("[DEBUG] After shortKey, allFields:",S))}return S.length===0&&S.push(...ae(r.variables||{},P)),S});De(()=>r.testData,()=>{J.value++},{deep:!0}),De(()=>{var v;return(v=n.value)==null?void 0:v.variable},()=>{J.value++});const te=(v,S)=>{try{const P=S.target.value;Q(v,JSON.parse(P))}catch{Fe.error("Invalid JSON")}},ue=v=>{const S=B(v);return v.language==="json"&&typeof S=="object"?JSON.stringify(S,null,2):S||""},z=(v,S)=>{if(v.language==="json")try{const P=JSON.parse(S);Q(v.key,P)}catch{}else Q(v.key,S)},ie=v=>{switch(v){case $e.TEXT:return Th;case $e.IMAGE:return Ph;case $e.TABLE:return nm;case $e.PAGE_NUMBER:return im;case $e.BARCODE:return um;case $e.QRCODE:return mm;case $e.LINE:return vm;case $e.RECT:return xm;case $e.CIRCLE:return km;case $e.CHART:return Cm;default:return null}},de=le(()=>n.value?ie(n.value.type):null),fe=le(()=>{if(!de.value)return[];const v=de.value.sections.filter(S=>(S.tab||"properties")===x.value);if(x.value==="properties"&&m.value){const S=JSON.parse(JSON.stringify(v));let P=S.find(ae=>ae.title==="properties.section.dataBehavior");return P||(P={title:"properties.section.dataBehavior",tab:"properties",fields:[]},S.push(P)),P.fields.some(ae=>ae.key==="repeatPerPage")||P.fields.unshift({label:"properties.label.repeatPerPage",type:"switch",target:"element",key:"repeatPerPage"}),S}return v}),B=v=>n.value?(v.target==="style"?n.value.style:n.value)[v.key]??v.defaultValue:v.defaultValue,oe=(v,S)=>{n.value&&(v.target==="style"&&v.key?ee(v.key,S):v.target==="element"&&v.key&&Q(v.key,S))},pe=v=>{!n.value||!v.actionName||(v.actionName==="paginateTable"?r.paginateTable(n.value.id):v.actionName==="removeBorder"&&r.updateElement(n.value.id,{style:{...n.value.style,borderStyle:void 0,borderWidth:void 0,borderColor:void 0,border:"none"}}))},Ae=()=>{o.value?r.removeSelectedElements():n.value&&r.removeElement(n.value.id)},Ce=le(()=>{var v,S;return((S=(v=n.value)==null?void 0:v.style)==null?void 0:S.zIndex)||1}),xe=le(()=>{if(!n.value)return[];const v=r.pages.find(S=>S.elements.some(P=>P.id===n.value.id));return v?v.elements.map((S,P)=>{var ae;return{id:S.id,zIndex:((ae=S.style)==null?void 0:ae.zIndex)||1,originalIndex:P}}).sort((S,P)=>S.zIndex===P.zIndex?S.originalIndex-P.originalIndex:S.zIndex-P.zIndex):[]}),Ee=le(()=>n.value?xe.value.findIndex(v=>v.id===n.value.id):-1),we=le(()=>n.value?Ee.value>=0&&Ee.value<xe.value.length-1:!1),R=le(()=>n.value?Ee.value>0:!1),U=v=>{if(!n.value)return;const S=Math.max(1,Math.round(Number(v)||1));r.updateElement(n.value.id,{style:{...n.value.style,zIndex:S}})},Z=v=>{if(!n.value)return;const S=[n.value.id];if(v==="front"){r.moveElementsLayer(S,"front");return}if(v==="back"){r.sendElementsToBack(S);return}if(v==="forward"){r.moveElementsForward(S);return}r.moveElementsBackward(S)},y=v=>{v.relatedTarget&&v.currentTarget.contains(v.relatedTarget)||r.setDisableGlobalShortcuts(!0)},T=v=>{v.relatedTarget&&v.currentTarget.contains(v.relatedTarget)||r.setDisableGlobalShortcuts(!1)};return(v,S)=>(f(),w(Ie,null,[a("aside",{class:"w-[380px] bg-white dark:bg-gray-900 border-l border-gray-200 dark:border-gray-700 flex flex-col h-full z-40 overflow-hidden",onFocusin:y,onFocusout:T},[a("div",rS,[a("div",null,[a("h2",oS,b(l(e)("properties.title")),1),a("p",aS,b(l(e)("properties.subtitle")),1)]),d.value?(f(),w("div",nS,[ge(l(Br),{class:"w-3 h-3"}),a("span",null,b(l(e)("properties.locked")),1)])):he("",!0)]),o.value?(f(),w("div",lS,[a("div",sS,[a("h3",iS,b(l(e)("properties.multiSelectMode")),1),a("p",dS,[a("span",cS,b(l(r).selectedElementIds.length),1),Le(" "+b(l(e)("properties.selectedElements",{n:""}).replace("{n}","")),1)])]),a("button",{onClick:Ae,disabled:!l(r).isTemplateEditable,class:"w-full py-2 bg-red-50 dark:bg-red-900/30 text-red-600 dark:text-red-400 rounded border border-red-200 dark:border-red-800 hover:bg-red-100 dark:hover:bg-red-900/50 transition-colors text-sm font-medium disabled:opacity-50 disabled:cursor-not-allowed"},b(l(e)("properties.deleteSelected")),9,uS)])):n.value?(f(),w("div",pS,[a("div",gS,[(f(),w(Ie,null,qe(["properties","style","advanced"],P=>a("button",{key:P,onClick:ae=>x.value=P,class:_e(["flex-1 py-3 text-sm font-medium transition-colors relative",x.value===P?"text-blue-600 dark:text-blue-400":"text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-200 hover:bg-gray-50 dark:hover:bg-gray-800"])},[Le(b(l(e)(`properties.tab.${P}`))+" ",1),x.value===P?(f(),w("div",mS)):he("",!0)],10,hS)),64))]),a("div",bS,[x.value==="properties"?(f(),w("div",fS,[a("h3",vS,b(l(e)("properties.section.positionSize")),1),a("div",yS,[ge(Kt,{label:`${l(e)("properties.label.x")} (${D.value})`,type:"number",disabled:s.value,value:l(It)(n.value.x,k.value),"onUpdate:value":S[0]||(S[0]=P=>Q("x",l(xt)(Number(P),k.value)))},null,8,["label","disabled","value"]),ge(Kt,{label:`${l(e)("properties.label.y")} (${D.value})`,type:"number",disabled:s.value,value:l(It)(n.value.y,k.value),"onUpdate:value":S[1]||(S[1]=P=>Q("y",l(xt)(Number(P),k.value)))},null,8,["label","disabled","value"]),ge(Kt,{label:`${l(e)("properties.label.width")} (${D.value})`,type:"number",disabled:s.value,value:l(It)(n.value.width,k.value),"onUpdate:value":S[2]||(S[2]=P=>Q("width",l(xt)(Number(P),k.value)))},null,8,["label","disabled","value"]),ge(Kt,{label:`${l(e)("properties.label.height")} (${D.value})`,type:"number",disabled:s.value,value:l(It)(n.value.height,k.value),"onUpdate:value":S[3]||(S[3]=P=>Q("height",l(xt)(Number(P),k.value)))},null,8,["label","disabled","value"])])])):he("",!0),x.value==="properties"?(f(),w("div",xS,[a("h3",wS,b(l(e)("properties.section.layer")),1),ge(Kt,{label:l(e)("properties.label.zIndex"),type:"number",disabled:s.value,min:1,step:1,value:Ce.value,"onUpdate:value":U},null,8,["label","disabled","value"]),a("div",kS,[a("button",{onClick:S[4]||(S[4]=P=>Z("forward")),disabled:s.value||!we.value,class:"w-full py-2 bg-white dark:bg-gray-800 text-gray-600 dark:text-gray-300 rounded border border-gray-200 dark:border-gray-700 hover:border-blue-500 dark:hover:border-blue-400 hover:bg-gray-50 dark:hover:bg-gray-700 transition-colors text-xs font-medium disabled:opacity-50 disabled:cursor-not-allowed"},b(l(e)("properties.action.moveUp")),9,SS),a("button",{onClick:S[5]||(S[5]=P=>Z("backward")),disabled:s.value||!R.value,class:"w-full py-2 bg-white dark:bg-gray-800 text-gray-600 dark:text-gray-300 rounded border border-gray-200 dark:border-gray-700 hover:border-blue-500 dark:hover:border-blue-400 hover:bg-gray-50 dark:hover:bg-gray-700 transition-colors text-xs font-medium disabled:opacity-50 disabled:cursor-not-allowed"},b(l(e)("properties.action.moveDown")),9,CS),a("button",{onClick:S[6]||(S[6]=P=>Z("front")),disabled:s.value||!we.value,class:"w-full py-2 bg-white dark:bg-gray-800 text-gray-600 dark:text-gray-300 rounded border border-gray-200 dark:border-gray-700 hover:border-blue-500 dark:hover:border-blue-400 hover:bg-gray-50 dark:hover:bg-gray-700 transition-colors text-xs font-medium disabled:opacity-50 disabled:cursor-not-allowed"},b(l(e)("properties.action.bringToFront")),9,_S),a("button",{onClick:S[7]||(S[7]=P=>Z("back")),disabled:s.value||!R.value,class:"w-full py-2 bg-white dark:bg-gray-800 text-gray-600 dark:text-gray-300 rounded border border-gray-200 dark:border-gray-700 hover:border-blue-500 dark:hover:border-blue-400 hover:bg-gray-50 dark:hover:bg-gray-700 transition-colors text-xs font-medium disabled:opacity-50 disabled:cursor-not-allowed"},b(l(e)("properties.action.sendToBack")),9,ES)])])):he("",!0),x.value==="properties"&&n.value.type==="table"&&l(r).tableSelection?(f(),w("div",TS,[a("h3",AS,b(l(e)("properties.section.cellOperations")),1),a("div",$S,[a("button",{onClick:S[8]||(S[8]=P=>l(r).mergeSelectedCells()),disabled:!g.value||s.value,class:"w-full py-2 bg-blue-50 dark:bg-blue-900/30 text-blue-600 dark:text-blue-400 rounded border border-blue-200 dark:border-blue-800 hover:bg-blue-100 dark:hover:bg-blue-900/50 transition-colors text-xs font-medium disabled:opacity-50 disabled:cursor-not-allowed disabled:bg-gray-50 dark:disabled:bg-gray-800 disabled:text-gray-400 dark:disabled:text-gray-600 disabled:border-gray-200 dark:disabled:border-gray-700"},b(l(e)("properties.action.mergeCells")),9,PS),a("button",{onClick:S[9]||(S[9]=P=>l(r).splitSelectedCells()),disabled:!C.value||s.value,class:"w-full py-2 bg-white dark:bg-gray-800 text-gray-600 dark:text-gray-300 rounded border border-gray-200 dark:border-gray-700 hover:bg-gray-50 dark:hover:bg-gray-700 transition-colors text-xs font-medium disabled:opacity-50 disabled:cursor-not-allowed"},b(l(e)("properties.action.splitCells")),9,IS)])])):he("",!0),(f(!0),w(Ie,null,qe(fe.value,(P,ae)=>(f(),w(Ie,{key:ae},[L(P)?(f(),w("div",DS,[a("h3",MS,b(l(e)(P.title)),1),a("div",LS,[(f(!0),w(Ie,null,qe(P.fields,(q,ye)=>(f(),w(Ie,{key:ye},[p(q)?(f(),w(Ie,{key:0},[q.type==="action"?(f(),w("div",zS,[a("button",{onClick:F=>pe(q),disabled:s.value,class:"w-full py-2 bg-blue-600 dark:bg-blue-500 text-white rounded hover:bg-blue-700 dark:hover:bg-blue-600 transition-colors text-sm font-medium shadow-sm disabled:opacity-50 disabled:cursor-not-allowed disabled:bg-gray-400 dark:disabled:bg-gray-700"},b(l(e)(q.label)),9,RS)])):q.type==="text"||q.type==="number"||q.type==="switch"?(f(),Be(Kt,{key:1,label:E(q),type:q.type,min:K(q),max:re(q),step:j(q),disabled:s.value,placeholder:q.placeholder?q.placeholder.startsWith("properties.")?l(e)(q.placeholder):q.placeholder:"",value:N(q),"onUpdate:value":F=>oe(q,X(q,F))},null,8,["label","type","min","max","step","disabled","placeholder","value","onUpdate:value"])):q.type==="select"?(f(),Be(q4,{key:2,label:l(e)(q.label),options:(q.options||[]).map(F=>({...F,label:l(e)(F.label)})),disabled:s.value,value:B(q),"onUpdate:value":F=>oe(q,F)},null,8,["label","options","disabled","value","onUpdate:value"])):q.type==="color"?(f(),Be(tc,{key:3,label:l(e)(q.label),disabled:s.value,value:B(q),"onUpdate:value":F=>oe(q,F)},null,8,["label","disabled","value","onUpdate:value"])):q.type==="image"?(f(),Be(l3,{key:4,label:l(e)(q.label),disabled:s.value,placeholder:q.placeholder?q.placeholder.startsWith("properties.")?l(e)(q.placeholder):q.placeholder:void 0,value:B(q),"onUpdate:value":F=>oe(q,F)},null,8,["label","disabled","placeholder","value","onUpdate:value"])):q.type==="code"?(f(),Be(J4,{key:5,label:l(e)(q.label),language:q.language||"javascript",disabled:s.value,value:ue(q),"onUpdate:value":F=>z(q,F)},null,8,["label","language","disabled","value","onUpdate:value"])):q.type==="field"?(f(),Be(f3,{key:6,label:l(e)(q.label),disabled:s.value,filter:q.filter,placeholder:q.placeholder?q.placeholder.startsWith("properties.")?l(e)(q.placeholder):q.placeholder:l(e)("properties.label.selectField"),value:B(q),"onUpdate:value":F=>oe(q,F)},null,8,["label","disabled","filter","placeholder","value","onUpdate:value"])):q.type==="columnPicker"?(f(),Be(C3,{key:7,label:l(e)(q.label),disabled:s.value,fields:ne.value,value:ve(),"onUpdate:value":S[10]||(S[10]=F=>ce(F)),"data-trigger":J.value},null,8,["label","disabled","fields","value","data-trigger"])):q.type==="chartDataSelect"?(f(),Be(z3,{key:8,label:l(e)(q.label),disabled:s.value,value:n.value.chartDataVariable,placeholder:q.placeholder?q.placeholder.startsWith("properties.")?l(e)(q.placeholder):q.placeholder:"","onUpdate:value":S[11]||(S[11]=F=>Q("chartDataVariable",F))},null,8,["label","disabled","value","placeholder"])):q.type==="chartFieldSelect"?(f(),Be(G3,{key:9,label:l(e)(q.label),disabled:s.value,value:n.value[q.key],"data-variable":n.value.chartDataVariable,placeholder:q.placeholder?q.placeholder.startsWith("properties.")?l(e)(q.placeholder):q.placeholder:"","onUpdate:value":F=>Q(q.key,F)},null,8,["label","disabled","value","data-variable","placeholder","onUpdate:value"])):q.type==="columnAlias"?(f(),Be(tS,{key:10,label:l(e)(q.label),disabled:s.value,columns:n.value.columns,"test-data":l(r).testData,variable:n.value.variable,variables:l(r).variables,"onUpdate:columns":S[12]||(S[12]=F=>Q("columns",F))},null,8,["label","disabled","columns","test-data","variable","variables"])):q.type==="textarea"?(f(),w("div",FS,[a("label",qS,b(l(e)(q.label)),1),a("textarea",{placeholder:q.placeholder?q.placeholder.startsWith("properties.")?l(e)(q.placeholder):q.placeholder:"",disabled:s.value,value:["data","columns","footerData"].includes(q.key)?JSON.stringify(n.value[q.key],null,2):B(q),onChange:F=>["data","columns","footerData"].includes(q.key)?te(q.key,F):oe(q,F.target.value),class:"w-full px-3 py-2 text-sm border border-gray-300 dark:border-gray-600 rounded focus:border-blue-500 outline-none h-24 resize-y font-mono disabled:bg-gray-100 dark:disabled:bg-gray-800 disabled:text-gray-500 dark:disabled:text-gray-400 bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-200"},null,40,BS)])):he("",!0)],64)):he("",!0)],64))),128))])])):he("",!0)],64))),128)),x.value==="style"&&!u.value?(f(),w("div",OS,[a("h3",VS,b(l(e)("properties.section.appearance")),1),ge(tc,{label:l(e)("properties.label.backgroundColor"),disabled:s.value,value:n.value.style.backgroundColor||"#ffffff","onUpdate:value":S[13]||(S[13]=P=>ee("backgroundColor",P))},null,8,["label","disabled","value"])])):he("",!0),x.value==="advanced"?(f(),w("div",jS,[a("div",HS,[a("h4",NS,b(l(e)("properties.section.elementInfo")),1),a("div",US,[a("div",null,[a("p",WS,b(l(e)("properties.label.id")),1),a("div",YS,[a("span",{class:"font-mono text-xs text-gray-600 dark:text-gray-400 flex-1 truncate select-all",title:n.value.id},b(n.value.id),9,GS),a("button",{onClick:_,class:"text-gray-400 dark:text-gray-500 hover:text-blue-600 dark:hover:text-blue-400 transition-colors p-1 rounded hover:bg-gray-100 dark:hover:bg-gray-800 flex-shrink-0",title:h.value?l(e)("properties.action.copied"):l(e)("properties.action.copyId")},[h.value?(f(),Be(l(hb),{key:0,class:"w-3.5 h-3.5 text-green-500 dark:text-green-400"})):(f(),Be(l(lr),{key:1,class:"w-3.5 h-3.5"}))],8,XS)])]),a("div",KS,[a("span",QS,b(l(e)("properties.label.type")),1),a("span",JS,b(l(e)("elements."+n.value.type)),1)])])]),a("button",{onClick:se,class:"w-full py-2 bg-white text-blue-600 rounded border border-blue-200 hover:bg-blue-50 transition-colors text-sm font-medium flex items-center justify-center gap-2 mb-2 disabled:opacity-50 disabled:cursor-not-allowed disabled:hover:bg-white"},[ge(l(bl),{class:"w-4 h-4"}),Le(" "+b(l(e)("properties.action.saveCustom")),1)]),a("button",{onClick:Ae,disabled:s.value,class:"w-full py-2 bg-white text-red-600 rounded border border-red-200 hover:bg-red-50 transition-colors text-sm font-medium flex items-center justify-center gap-2 disabled:opacity-50 disabled:cursor-not-allowed disabled:hover:bg-white"},[ge(l(nr),{class:"w-4 h-4"}),Le(" "+b(l(e)("properties.action.deleteElement")),1)],8,ZS)])):he("",!0)])])):(f(),w("div",eC,[a("div",tC,[a("h3",rC,b(l(e)("properties.empty.noSelection")),1),a("p",oC,b(l(e)("properties.empty.selectInstruction")),1)])]))],32),ge(Or,{show:i.value,"initial-value":c.value,"initial-values":V.value,fields:O.value,title:l(e)("properties.action.saveCustomModal"),placeholder:l(e)("sidebar.enterNamePlaceholder"),onClose:S[14]||(S[14]=P=>i.value=!1),onSave:W},null,8,["show","initial-value","initial-values","fields","title","placeholder"])],64))}}),nC=St(aC,[["__scopeId","data-v-d62b7e0a"]]),rc=Oe({__name:"Ruler",props:{type:{},zoom:{},scroll:{},offset:{},thick:{},indicators:{},range:{},unit:{}},emits:["guide-drag-start"],setup(t,{emit:e}){const r=t,{isDark:n}=Nt(),o=G(null),d=r.thick||20,s=()=>{const m=o.value;if(!m)return;const g=m.getContext("2d");if(!g)return;const C=m.width,x=m.height,{zoom:h,scroll:k,offset:D,type:M,indicators:$,range:E}=r,p=n.value;if(g.clearRect(0,0,C,x),g.fillStyle=p?"#1f2937":"#F9FAFB",g.fillRect(0,0,C,x),E){const W=D+E.start*h-k,Q=D+E.end*h-k,ee=Math.min(W,Q),ve=Math.max(W,Q),ce=Math.max(0,ve-ee);g.fillStyle=E.color,M==="horizontal"?g.fillRect(ee,0,ce,d):g.fillRect(0,ee,d,ce)}if($&&$.length>0)for(const W of $){const Q=D+W.position*h-k;g.fillStyle=W.color,M==="horizontal"?g.fillRect(Q-2,0,4,d):g.fillRect(0,Q-2,d,4)}g.strokeStyle=p?"#6b7280":"#9CA3AF",g.fillStyle=p?"#9ca3af":"#6B7280",g.lineWidth=1,g.font="10px sans-serif",g.beginPath();const L=r.unit==="mm"?Nc:r.unit==="pt"?Uc:r.unit==="in"?Wc:r.unit==="cm"?Yc:1,K=50/(L*h),re=[.1,.2,.5,1,2,5,10,20,50,100,200,500,1e3];let j=re[re.length-1];for(const W of re)if(W>=K-.001){j=W;break}const _=M==="horizontal"?C:x,V=(-D+k)/(h*L),O=(_-D+k)/(h*L),se=Math.floor(V/j)*j;for(let W=se;W<=O;W+=j){const Q=D+W*L*h-k,ee=Number(W.toFixed(1)).toString();M==="horizontal"?(g.moveTo(Q,0),g.lineTo(Q,d),g.fillText(ee,Q+2,10)):(g.moveTo(0,Q),g.lineTo(d,Q),g.save(),g.translate(10,Q+2),g.rotate(-Math.PI/2),g.fillText(ee,4,0),g.restore());const ve=j/5;for(let ce=1;ce<5;ce++){const J=W+ve*ce,ne=D+J*L*h-k;M==="horizontal"?(g.moveTo(ne,d-5),g.lineTo(ne,d)):(g.moveTo(d-5,ne),g.lineTo(d,ne))}}g.stroke()},i=new ResizeObserver(m=>{for(const g of m){const C=o.value;if(C){const{width:x,height:h}=g.contentRect;C.width=x,C.height=h,s()}}});ot(()=>{o.value&&(i.observe(o.value.parentElement),s())}),at(()=>{i.disconnect()}),De(()=>[r.zoom,r.scroll,r.offset,r.indicators,r.unit,n.value],s,{deep:!0});const c=e,u=m=>{c("guide-drag-start",m)};return(m,g)=>(f(),w("div",{class:"w-full h-full overflow-hidden bg-gray-50 dark:bg-gray-800 relative",onMousedown:u},[a("canvas",{ref_key:"canvasRef",ref:o,class:"block"},null,512)],32))}}),lC={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function sC(t,e){return f(),w("svg",lC,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"m19 21l-7-7l-2.35 2.35q.2.375.275.8T10 18q0 1.65-1.175 2.825T6 22t-2.825-1.175T2 18t1.175-2.825T6 14q.425 0 .85.075t.8.275L10 12L7.65 9.65q-.375.2-.8.275T6 10q-1.65 0-2.825-1.175T2 6t1.175-2.825T6 2t2.825 1.175T10 6q0 .425-.075.85t-.275.8L22 20v1zm-4-10l-2-2l6-6h3v1zM7.413 7.413Q8 6.825 8 6t-.587-1.412T6 4t-1.412.588T4 6t.588 1.413T6 8t1.413-.587m4.937 4.937q.15-.15.15-.35t-.15-.35t-.35-.15t-.35.15t-.15.35t.15.35t.35.15t.35-.15m-4.937 7.063Q8 18.825 8 18t-.587-1.412T6 16t-1.412.588T4 18t.588 1.413T6 20t1.413-.587"},null,-1)])])}const iC=Pe({name:"material-symbols-content-cut",render:sC}),dC={class:"bg-white border border-gray-200 shadow-xl rounded-md min-w-[160px] py-1"},cC=["disabled"],uC={class:"flex-1"},pC={class:"text-xs text-gray-400"},gC=["disabled"],hC={class:"flex-1"},mC={class:"text-xs text-gray-400"},bC=["disabled"],fC={class:"flex-1"},vC={class:"text-xs text-gray-400"},yC=["disabled"],xC={class:"flex-1"},wC={class:"text-xs text-gray-400"},kC=["disabled"],SC={class:"flex-1"},CC={class:"text-xs text-gray-400"},_C={class:"flex-1"},EC={class:"text-xs text-gray-400"},TC={class:"flex-1"},AC={class:"text-xs text-gray-400"},$C=Oe({__name:"Shortcuts",setup(t){const{t:e}=Ke(),r=je(),n=st("designer-root"),o=G(!1),d=G(0),s=G(0),i=G(0),c=G(0),u=G(null),m=G(!1),g=G(0),C=G(0),x=p=>{g.value=p.clientX,C.value=p.clientY},h=()=>{var p;return((p=n==null?void 0:n.value)==null?void 0:p.getRootNode())||document},k=(p,L)=>{const N=h().querySelectorAll(".print-page");if(N.length===0)return;let X=null,K=1/0,re=0;for(let j=0;j<N.length;j++){const _=N[j],V=_.getBoundingClientRect();if(p>=V.left&&p<=V.right&&L>=V.top&&L<=V.bottom)return{pageIndex:j,x:(p-V.left)/r.zoom,y:(L-V.top)/r.zoom};const O=Math.max(V.left-p,0,p-V.right),se=Math.max(V.top-L,0,L-V.bottom),W=Math.sqrt(O*O+se*se);W<K&&(K=W,X=_,re=j)}if(X){const j=X.getBoundingClientRect();let _=(p-j.left)/r.zoom,V=(L-j.top)/r.zoom;return _=Math.max(0,Math.min(r.canvasSize.width,_)),V=Math.max(0,Math.min(r.canvasSize.height,V)),{pageIndex:re,x:_,y:V}}},D=p=>{if(r.disableGlobalShortcuts)return;if((p.ctrlKey||p.metaKey)&&p.altKey&&p.key.toLowerCase()==="n"){p.preventDefault(),p.stopPropagation(),window.dispatchEvent(new CustomEvent("designer:new-template"));return}if((p.ctrlKey||p.metaKey)&&p.key===","){p.preventDefault(),p.stopPropagation(),r.setShowSettings(!0);return}const L=p.target;if(L&&L.closest('input, textarea, select, [contenteditable="true"]'))return;if(["ArrowLeft","ArrowRight","ArrowUp","ArrowDown"].includes(p.key)){const K=p.shiftKey?10:1;if(r.selectedGuideId){const re=r.guides.find(j=>j.id===r.selectedGuideId);if(re){p.preventDefault();const j=re.position;let _=j;if(re.type==="vertical")if(p.key==="ArrowLeft")_-=K;else if(p.key==="ArrowRight")_+=K;else return;else if(p.key==="ArrowUp")_-=K;else if(p.key==="ArrowDown")_+=K;else return;(j>0&&_<0||j<0&&_>0||_===0)&&(_=0),r.updateGuide(re.id,_),r.setHighlightedGuide(re.id)}}else if(r.selectedElementIds.length>0){p.preventDefault();const re=p.key==="ArrowLeft"?-K:p.key==="ArrowRight"?K:0,j=p.key==="ArrowUp"?-K:p.key==="ArrowDown"?K:0;r.nudgeSelectedElements(re,j)}return}if((p.ctrlKey||p.metaKey)&&p.key.toLowerCase()==="a"){if(p.preventDefault(),r.pages[r.currentPageIndex]){const K=r.pages[r.currentPageIndex].elements.map(re=>re.id);r.setSelection(K)}return}if(p.key==="Delete"){r.selectedElementIds.length>1?(p.preventDefault(),r.removeSelectedElements()):r.selectedElementId?(p.preventDefault(),r.removeElement(r.selectedElementId)):r.selectedGuideId&&(p.preventDefault(),r.removeGuide(r.selectedGuideId));return}if((p.ctrlKey||p.metaKey)&&p.key.toLowerCase()==="c"){r.selectedElementId&&(p.preventDefault(),r.copy());return}if((p.ctrlKey||p.metaKey)&&p.key.toLowerCase()==="x"){r.selectedElementId&&(p.preventDefault(),r.cut());return}if((p.ctrlKey||p.metaKey)&&p.key.toLowerCase()==="v"){r.clipboard.length>0&&(p.preventDefault(),r.paste(k(g.value,C.value)));return}if((p.ctrlKey||p.metaKey)&&p.key.toLowerCase()==="h"){p.preventDefault(),r.setShowHelp(!0);return}if(r.showHelp&&p.key==="Escape"){p.preventDefault(),r.setShowHelp(!1);return}if((p.ctrlKey||p.metaKey)&&p.key.toLowerCase()==="z"&&!p.shiftKey){p.preventDefault(),r.undo();return}if((p.ctrlKey||p.metaKey)&&(p.key.toLowerCase()==="y"||p.key.toLowerCase()==="z"&&p.shiftKey)){p.preventDefault(),r.redo();return}if((p.ctrlKey||p.metaKey)&&p.key.toLowerCase()==="l"){p.preventDefault(),r.toggleLock();return}if((p.ctrlKey||p.metaKey)&&p.shiftKey&&p.key.toLowerCase()==="p"){p.preventDefault(),window.dispatchEvent(new CustomEvent("designer:preview"));return}const N=p.ctrlKey||p.metaKey,X=p.key.toLowerCase();if(!(r.editingCustomElementId&&N&&(X==="s"||X==="q"))){if(N&&p.shiftKey&&X==="s"){p.preventDefault(),window.dispatchEvent(new CustomEvent("designer:save-as"));return}if(N&&X==="s"){p.preventDefault(),window.dispatchEvent(new CustomEvent("designer:save"));return}if((p.ctrlKey||p.metaKey)&&p.key.toLowerCase()==="p"&&!p.shiftKey){p.preventDefault(),window.dispatchEvent(new CustomEvent("designer:print"));return}if((p.ctrlKey||p.metaKey)&&p.shiftKey&&p.key.toLowerCase()==="e"){p.preventDefault(),window.dispatchEvent(new CustomEvent("designer:export-pdf"));return}if((p.ctrlKey||p.metaKey)&&p.shiftKey&&p.key.toLowerCase()==="j"){p.preventDefault(),window.dispatchEvent(new CustomEvent("designer:view-json"));return}}},M=p=>{["ArrowLeft","ArrowRight","ArrowUp","ArrowDown"].includes(p.key)&&(r.setHighlightedGuide(null),r.setHighlightedEdge(null))},$=async p=>{const L=h().querySelector(".overflow-auto"),N=p.composedPath();if(!(!!L&&N.some(j=>j===L?!0:j instanceof Element&&L.contains(j))))return;if(p.preventDefault(),o.value=!0,d.value=p.clientX,s.value=p.clientY,i.value=p.clientX,c.value=p.clientY,await tt(),u.value){const j=u.value.getBoundingClientRect(),_=window.innerWidth,V=window.innerHeight;p.clientX+j.width>_&&(d.value=_-j.width-5),p.clientY+j.height>V&&(s.value=V-j.height-5)}const K=h().querySelectorAll(".print-page");let re=!1;K.forEach(j=>{const _=j.getBoundingClientRect();p.clientX>=_.left&&p.clientX<=_.right&&p.clientY>=_.top&&p.clientY<=_.bottom&&(re=!0)}),m.value=re,window.addEventListener("click",E)},E=()=>{o.value=!1,window.removeEventListener("click",E)};return ot(()=>{window.addEventListener("keydown",D,{capture:!0}),window.addEventListener("contextmenu",$),window.addEventListener("keyup",M),window.addEventListener("mousemove",x)}),at(()=>{window.removeEventListener("keydown",D,{capture:!0}),window.removeEventListener("contextmenu",$),window.removeEventListener("click",E),window.removeEventListener("keyup",M),window.removeEventListener("mousemove",x)}),(p,L)=>(f(),Be(uu,{"enter-active-class":"transition duration-100 ease-out","enter-from-class":"transform scale-95 opacity-0","enter-to-class":"transform scale-100 opacity-100","leave-active-class":"transition duration-75 ease-in","leave-from-class":"transform scale-100 opacity-100","leave-to-class":"transform scale-95 opacity-0"},{default:Ft(()=>{var N,X,K,re,j;return[o.value?(f(),w("div",{key:0,ref_key:"menuRef",ref:u,class:"fixed z-[9999]",style:Te({left:`${d.value}px`,top:`${s.value}px`})},[a("div",dC,[a("button",{class:"w-full text-left px-3 py-2 text-sm hover:bg-gray-100 disabled:opacity-50 flex items-center gap-2",disabled:l(r).selectedElementIds.length===0&&!l(r).selectedGuideId||((N=l(r).selectedElement)==null?void 0:N.locked),onClick:L[0]||(L[0]=()=>{l(r).selectedElementIds.length>1?l(r).removeSelectedElements():l(r).selectedElementId?l(r).removeElement(l(r).selectedElementId):l(r).selectedGuideId&&l(r).removeGuide(l(r).selectedGuideId),o.value=!1})},[ge(l(nr),{class:"w-4 h-4"}),a("span",uC,b(l(e)("common.delete"))+b(l(r).selectedElementIds.length>1?` (${l(r).selectedElementIds.length})`:""),1),a("span",pC,b(l(Ve)(["Del"])),1)],8,cC),a("button",{class:"w-full text-left px-3 py-2 text-sm hover:bg-gray-100 disabled:opacity-50 flex items-center gap-2",disabled:!l(r).selectedElementId||((X=l(r).selectedElement)==null?void 0:X.locked),onClick:L[1]||(L[1]=()=>{l(r).cut(),o.value=!1})},[ge(l(iC),{class:"w-4 h-4"}),a("span",hC,b(l(e)("common.cut")),1),a("span",mC,b(l(Ve)(["Ctrl","X"])),1)],8,gC),a("button",{class:"w-full text-left px-3 py-2 text-sm hover:bg-gray-100 disabled:opacity-50 flex items-center gap-2",disabled:!l(r).selectedElementId||((K=l(r).selectedElement)==null?void 0:K.locked),onClick:L[2]||(L[2]=()=>{l(r).copy(),o.value=!1})},[ge(l(lr),{class:"w-4 h-4"}),a("span",fC,b(l(e)("common.copy")),1),a("span",vC,b(l(Ve)(["Ctrl","C"])),1)],8,bC),a("button",{class:"w-full text-left px-3 py-2 text-sm hover:bg-gray-100 disabled:opacity-50 flex items-center gap-2",disabled:l(r).clipboard.length===0,onClick:L[3]||(L[3]=()=>{l(r).paste(k(i.value,c.value)),o.value=!1})},[ge(l(fl),{class:"w-4 h-4"}),a("span",xC,b(l(e)("common.paste")),1),a("span",wC,b(l(Ve)(["Ctrl","V"])),1)],8,yC),a("button",{class:"w-full text-left px-3 py-2 text-sm hover:bg-gray-100 disabled:opacity-50 flex items-center gap-2",disabled:l(r).selectedElementIds.length===0,onClick:L[4]||(L[4]=()=>{l(r).toggleLock(),o.value=!1})},[(f(),Be(jt((re=l(r).selectedElement)!=null&&re.locked?l(Zc):l(Br)),{class:"w-4 h-4"})),a("span",SC,b((j=l(r).selectedElement)!=null&&j.locked?l(e)("common.unlock"):l(e)("common.lock")),1),a("span",CC,b(l(Ve)(["Ctrl","L"])),1)],8,kC),L[7]||(L[7]=a("div",{class:"border-t border-gray-200 my-1"},null,-1)),a("button",{class:"w-full text-left px-3 py-2 text-sm hover:bg-gray-100 flex items-center gap-2",onClick:L[5]||(L[5]=_=>{l(r).undo(),o.value=!1})},[ge(l(Qc),{class:"w-4 h-4"}),a("span",_C,b(l(e)("common.undo")),1),a("span",EC,b(l(Ve)(["Ctrl","Z"])),1)]),a("button",{class:"w-full text-left px-3 py-2 text-sm hover:bg-gray-100 flex items-center gap-2",onClick:L[6]||(L[6]=_=>{l(r).redo(),o.value=!1})},[ge(l(Jc),{class:"w-4 h-4"}),a("span",TC,b(l(e)("common.redo")),1),a("span",AC,b(l(Ve)(["Ctrl","Y"])),1)])])],4)):he("",!0)]}),_:1}))}}),PC={class:"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 text-sm leading-none text-gray-300 z-10"},IC={key:2,class:"w-full h-full bg-gray-200 flex items-center justify-center overflow-hidden"},DC=["src"],MC={key:3,class:"w-full h-full bg-gray-100 flex items-center justify-center overflow-hidden"},LC=["src"],zC={key:4,class:"w-full h-full bg-gray-100 flex items-center justify-center overflow-hidden"},RC=["src"],FC={key:2,class:"w-full h-full bg-gray-200 flex items-center justify-center overflow-hidden"},qC=["src"],BC={key:3,class:"w-full h-full bg-gray-100 flex items-center justify-center overflow-hidden"},OC=["src"],VC={key:4,class:"w-full h-full bg-gray-100 flex items-center justify-center overflow-hidden"},jC=["src"],oc=180,ac=120,nc=300,HC=32,NC=Oe({__name:"Minimap",props:{scrollWidth:{},scrollHeight:{},viewportWidth:{},viewportHeight:{},scrollLeft:{},scrollTop:{},pages:{},pageWidth:{},pageHeight:{},zoom:{},contentOffsetX:{},contentOffsetY:{},canvasBackground:{},showHeaderLine:{type:Boolean},showFooterLine:{type:Boolean},headerHeight:{},footerHeight:{},watermark:{}},emits:["update:scroll"],setup(t,{emit:e}){const r=t,n=e,o=le(()=>{if(r.scrollWidth<=0||r.scrollHeight<=0)return .1;let _=oc/r.scrollWidth;return r.scrollHeight*_>nc&&(_=nc/r.scrollHeight),r.scrollWidth*_<ac&&(_=ac/r.scrollWidth),_}),d=le(()=>r.scrollHeight*o.value),s=le(()=>({left:`${r.scrollLeft*o.value}px`,top:`${r.scrollTop*o.value}px`,width:`${r.viewportWidth*o.value}px`,height:`${r.viewportHeight*o.value}px`})),i=_=>_.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),c=le(()=>{const _=r.watermark;if(!_||!_.enabled||!_.text)return null;const V=i(_.text),O=Number.isFinite(_.angle)?_.angle:-30,se=Math.max(6,_.size||24),W=Math.max(40,_.density||160),Q=_.color||"#000000",ee=Math.min(1,Math.max(0,_.opacity??.1)),ve=`<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="${W}" height="${W}"><text x="50%" y="50%" dominant-baseline="middle" text-anchor="middle" fill="${Q}" fill-opacity="${ee}" font-size="${se}" transform="rotate(${O} ${W/2} ${W/2})">${V}</text></svg>`;return{backgroundImage:`url("data:image/svg+xml,${encodeURIComponent(ve)}")`,backgroundRepeat:"repeat",backgroundSize:`${W}px ${W}px`}}),u=_=>{const V={left:`${r.contentOffsetX*o.value}px`,top:`${(r.contentOffsetY+_*(r.pageHeight+HC)*r.zoom)*o.value}px`,width:`${r.pageWidth*r.zoom*o.value}px`,height:`${r.pageHeight*r.zoom*o.value}px`,backgroundColor:r.canvasBackground||"#ffffff"};return c.value?{...V,...c.value}:V},m=()=>{if(!r.pages||r.pages.length===0)return[];const _=r.pages[0];if(!(_!=null&&_.elements))return[];const V=O=>{var z;const W=(Number(((z=O==null?void 0:O.style)==null?void 0:z.rotate)||0)%360+360)%360;if(W===0)return{minY:O.y,maxY:O.y+O.height};const Q=O.x+O.width/2,ee=O.y+O.height/2,ve=W*Math.PI/180,ce=Math.cos(ve),J=Math.sin(ve),ne=[{x:O.x,y:O.y},{x:O.x+O.width,y:O.y},{x:O.x,y:O.y+O.height},{x:O.x+O.width,y:O.y+O.height}];let te=1/0,ue=-1/0;for(const ie of ne){const de=ee+(ie.x-Q)*J+(ie.y-ee)*ce;de<te&&(te=de),de>ue&&(ue=de)}return{minY:te,maxY:ue}};return _.elements.filter(O=>{if(O.type==="TABLE")return!1;const se=V(O),W=O.repeatPerPage===!0,Q=r.showHeaderLine&&se.maxY<=r.headerHeight,ee=r.showFooterLine&&se.minY>=r.pageHeight-r.footerHeight;return W||Q||ee})},g=_=>{const V=Math.max(1,_.width*r.zoom*o.value),O=Math.max(1,_.height*r.zoom*o.value);return{width:V,height:O}},C=_=>{var W,Q,ee,ve,ce,J,ne,te,ue,z,ie,de;const{width:V,height:O}=g(_),se={left:`${_.x*r.zoom*o.value}px`,top:`${_.y*r.zoom*o.value}px`,width:`${V}px`,height:`${O}px`,fontSize:`${(((W=_.style)==null?void 0:W.fontSize)||12)*r.zoom*o.value}px`,zIndex:((Q=_.style)==null?void 0:Q.zIndex)||1,transform:`rotate(${((ee=_.style)==null?void 0:ee.rotate)||0}deg)`};if(_.type==="LINE"){const fe=((ve=_.style)==null?void 0:ve.borderColor)||"#111827",B=Math.max(1,(((ce=_.style)==null?void 0:ce.borderWidth)||1)*r.zoom*o.value);return{...se,height:`${B}px`,backgroundColor:fe,top:`${_.y*r.zoom*o.value+(O-B)/2}px`}}if(_.type==="RECT"||_.type==="CIRCLE"){const fe=((J=_.style)==null?void 0:J.borderColor)||"#111827",B=Math.max(1,(((ne=_.style)==null?void 0:ne.borderWidth)||1)*r.zoom*o.value);return{...se,backgroundColor:((te=_.style)==null?void 0:te.backgroundColor)||"transparent",borderColor:fe,borderWidth:`${B}px`,borderStyle:((ue=_.style)==null?void 0:ue.borderStyle)||"solid",borderRadius:_.type==="CIRCLE"?"9999px":`${((z=_.style)==null?void 0:z.borderRadius)||0}px`}}return _.type==="BARCODE"||_.type==="QRCODE"?{...se,backgroundColor:"rgba(17, 24, 39, 0.15)",border:"1px solid rgba(17, 24, 39, 0.3)"}:_.type==="PAGE_NUMBER"?{...se,color:((ie=_.style)==null?void 0:ie.color)||"#111827",backgroundColor:((de=_.style)==null?void 0:de.backgroundColor)||"transparent"}:{...se,backgroundColor:_.type==="IMAGE"?"#e5e7eb":void 0}},x=(_,V)=>{var Q;const O=V+1,se=((Q=r.pages)==null?void 0:Q.length)||1,W=_.format||"1/Total";return W==="1"?`${O}`:W==="Page 1"?`Page ${O}`:`${O}/${se}`},h=_=>{const V=_.style?JSON.stringify(_.style):"";return`${_.id}:${_.type}:${_.variable||""}:${_.content||""}:${V}`},k=G({}),D=G({});let M=0;const $=_=>_.type==="BARCODE"?_.variable||_.content||"12345678":_.type==="QRCODE"?_.variable||_.content||"https://example.com":_.variable||_.content||"",E=async _=>{try{const V=await gt(()=>import("./JsBarcode-BOwNyIpk.js").then(Q=>Q.J),__vite__mapDeps([0,1,2])),O=(V==null?void 0:V.default)||V,se=document.createElement("canvas"),W=_.style||{};return O(se,$(_),{format:W.barcodeFormat||"CODE128",lineColor:W.color||"#000000",width:Number(W.barcodeWidth)||2,height:Number(W.barcodeHeight)||40,displayValue:W.showText!==!1&&W.showText!=="false",fontOptions:W.fontOptions||"",font:W.font||"monospace",textAlign:W.textAlign||"center",textPosition:W.textPosition||"bottom",textMargin:Number(W.textMargin)||2,fontSize:Number(W.fontSize)||20,background:"transparent",margin:Number(W.margin)||0}),se.toDataURL("image/png")}catch{return""}},p=async _=>{var V,O;try{const se=await gt(()=>import("./browser-CR_q2Gy7.js").then(Q=>Q.b),__vite__mapDeps([3,1,2]));return await((se==null?void 0:se.default)||se).toDataURL($(_),{margin:0,color:{dark:((V=_.style)==null?void 0:V.color)||"#000000",light:"#00000000"},errorCorrectionLevel:((O=_.style)==null?void 0:O.qrErrorCorrection)||"M"})}catch{return""}},L=async()=>{const _=++M,V={},O={},se=r.pages||[];for(const W of se){const Q=(W==null?void 0:W.elements)||[];for(const ee of Q){const ve=h(ee);if(ee.type==="BARCODE"){const ce=await E(ee);ce&&(V[ve]=ce)}else if(ee.type==="QRCODE"){const ce=await p(ee);ce&&(O[ve]=ce)}}}_===M&&(k.value=V,D.value=O)},N=_=>k.value[h(_)]||"",X=_=>D.value[h(_)]||"";De(()=>r.pages,()=>{L()},{deep:!0,immediate:!0});const K=G(!1),re=G(null);De(()=>r.scrollTop,()=>{if(!re.value)return;const _=r.scrollTop*o.value,V=r.viewportHeight*o.value,O=re.value.clientHeight,se=re.value.scrollTop;_<se?re.value.scrollTop=_:_+V>se+O&&(re.value.scrollTop=_+V-O)});const j=_=>{_.preventDefault();const V=_.currentTarget,O=V.getBoundingClientRect(),se=_.clientX-O.left,W=_.clientY-O.top,Q=r.scrollLeft*o.value,ee=r.scrollTop*o.value,ve=r.viewportWidth*o.value,ce=r.viewportHeight*o.value;let J=0,ne=0;if(se>=Q&&se<=Q+ve&&W>=ee&&W<=ee+ce)J=se-Q,ne=W-ee;else{const z=se/o.value-r.viewportWidth/2,ie=W/o.value-r.viewportHeight/2;n("update:scroll",{left:z,top:ie}),J=ve/2,ne=ce/2}K.value=!0;const te=z=>{const ie=V.getBoundingClientRect(),de=z.clientX-ie.left,fe=z.clientY-ie.top,B=de-J,oe=fe-ne;n("update:scroll",{left:B/o.value,top:oe/o.value})},ue=()=>{K.value=!1,window.removeEventListener("mousemove",te),window.removeEventListener("mouseup",ue)};window.addEventListener("mousemove",te),window.addEventListener("mouseup",ue)};return(_,V)=>(f(),w("div",{ref_key:"scrollContainer",ref:re,class:"bg-white border border-gray-200 shadow-lg rounded max-h-[300px] overflow-y-auto overflow-x-hidden box-content no-scrollbar",style:Te({width:`${r.scrollWidth*o.value}px`,maxWidth:`${oc}px`})},[a("div",{class:"relative select-none box-content overflow-hidden",style:Te({width:`${r.scrollWidth*o.value}px`,height:`${d.value}px`}),onMousedown:j},[V[0]||(V[0]=a("div",{class:"absolute inset-0 bg-gray-100"},null,-1)),(f(!0),w(Ie,null,qe(t.pages,(O,se)=>(f(),w("div",{key:se,class:"absolute shadow-sm border border-gray-300 overflow-hidden",style:Te(u(se))},[a("div",PC,b(se+1),1),(f(!0),w(Ie,null,qe(O.elements,W=>{var Q,ee;return f(),w("div",{key:W.id,class:"absolute",style:Te(C(W))},[W.type==="TEXT"?(f(),w("div",{key:0,class:"w-full h-full overflow-hidden whitespace-nowrap",style:Te({color:W.style.color||"#000000",fontFamily:W.style.fontFamily,fontWeight:W.style.fontWeight,fontStyle:W.style.fontStyle,textAlign:W.style.textAlign,lineHeight:1})},b(W.variable||W.content),5)):W.type==="PAGE_NUMBER"?(f(),w("div",{key:1,class:"w-full h-full overflow-hidden whitespace-nowrap",style:Te({color:W.style.color||"#000000",fontFamily:W.style.fontFamily,fontWeight:W.style.fontWeight,fontStyle:W.style.fontStyle,textAlign:W.style.textAlign,lineHeight:1})},b(x(W,se)),5)):W.type==="IMAGE"?(f(),w("div",IC,[W.content?(f(),w("img",{key:0,src:W.content,class:"w-full h-full object-cover"},null,8,DC)):he("",!0)])):W.type==="BARCODE"?(f(),w("div",MC,[N(W)?(f(),w("img",{key:0,src:N(W),class:"w-full h-full object-contain"},null,8,LC)):he("",!0)])):W.type==="QRCODE"?(f(),w("div",zC,[X(W)?(f(),w("img",{key:0,src:X(W),class:"w-full h-full object-contain"},null,8,RC)):he("",!0)])):W.type==="TABLE"?(f(),w("div",{key:5,class:"w-full h-full border border-gray-300 bg-white grid",style:Te({gridTemplateColumns:`repeat(${((Q=W.columns)==null?void 0:Q.length)||2}, 1fr)`})},[(f(!0),w(Ie,null,qe(Math.min(6,(((ee=W.columns)==null?void 0:ee.length)||2)*2),ve=>(f(),w("div",{key:ve,class:"border-[0.5px] border-gray-100"}))),128))],4)):he("",!0)],4)}),128)),se>0?(f(!0),w(Ie,{key:0},qe(m(),W=>{var Q,ee;return f(),w("div",{key:`global-${se}-${W.id}`,class:"absolute",style:Te(C(W))},[W.type==="TEXT"?(f(),w("div",{key:0,class:"w-full h-full overflow-hidden whitespace-nowrap",style:Te({color:W.style.color||"#000000",fontFamily:W.style.fontFamily,fontWeight:W.style.fontWeight,fontStyle:W.style.fontStyle,textAlign:W.style.textAlign,lineHeight:1})},b(W.variable||W.content),5)):W.type==="PAGE_NUMBER"?(f(),w("div",{key:1,class:"w-full h-full overflow-hidden whitespace-nowrap",style:Te({color:W.style.color||"#000000",fontFamily:W.style.fontFamily,fontWeight:W.style.fontWeight,fontStyle:W.style.fontStyle,textAlign:W.style.textAlign,lineHeight:1})},b(x(W,se)),5)):W.type==="IMAGE"?(f(),w("div",FC,[W.content?(f(),w("img",{key:0,src:W.content,class:"w-full h-full object-cover"},null,8,qC)):he("",!0)])):W.type==="BARCODE"?(f(),w("div",BC,[N(W)?(f(),w("img",{key:0,src:N(W),class:"w-full h-full object-contain"},null,8,OC)):he("",!0)])):W.type==="QRCODE"?(f(),w("div",VC,[X(W)?(f(),w("img",{key:0,src:X(W),class:"w-full h-full object-contain"},null,8,jC)):he("",!0)])):W.type==="TABLE"?(f(),w("div",{key:5,class:"w-full h-full border border-gray-300 bg-white grid",style:Te({gridTemplateColumns:`repeat(${((Q=W.columns)==null?void 0:Q.length)||2}, 1fr)`})},[(f(!0),w(Ie,null,qe(Math.min(6,(((ee=W.columns)==null?void 0:ee.length)||2)*2),ve=>(f(),w("div",{key:ve,class:"border-[0.5px] border-gray-100"}))),128))],4)):he("",!0)],4)}),128)):he("",!0)],4))),128)),a("div",{class:"absolute border-2 border-blue-500 bg-blue-500/10 cursor-move z-[1000]",style:Te(s.value)},null,4)],36)],4))}}),UC=St(NC,[["__scopeId","data-v-080660d4"]]),WC={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function YC(t,e){return f(),w("svg",WC,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M12.6 12L8 7.4L9.4 6l6 6l-6 6L8 16.6z"},null,-1)])])}const GC=Pe({name:"material-symbols-keyboard-arrow-right",render:YC}),XC={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function KC(t,e){return f(),w("svg",XC,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"m12 15.4l-6-6L7.4 8l4.6 4.6L16.6 8L18 9.4z"},null,-1)])])}const QC=Pe({name:"material-symbols-keyboard-arrow-down",render:KC}),JC={class:"text-sm font-semibold text-gray-700 dark:text-gray-200 m-0"},ZC={class:"flex-1 overflow-y-auto p-2 custom-scrollbar"},e_={key:0,class:"text-xs text-gray-500 dark:text-gray-400 text-center py-4"},t_={key:1,class:"space-y-1"},r_=["onDragstart"],o_=["onClick"],a_={key:1,class:"w-4 h-4 mr-1"},n_=["title"],l_=["title"],s_={key:0,class:"ml-6 border-l border-gray-200 dark:border-gray-600 pl-1 mt-1 space-y-1"},i_=["onDragstart"],d_=["title"],c_=["title"],u_=Oe({__name:"VariablesPanel",setup(t){const{t:e}=Ke(),r=je(),n=G(null),o=G(!1),d=G({x:0,y:0}),s=G({x:-9999,y:-9999}),i=G("70vh"),c=le(()=>r.availableVariables||[]),u=G(new Set),m=$=>{const E=new Set(u.value);E.has($)?E.delete($):E.add($),u.value=E,tt(()=>{D()})},g=$=>{$.target.closest(".panel-close-btn")||(o.value=!0,d.value={x:$.clientX-s.value.x,y:$.clientY-s.value.y},document.addEventListener("mousemove",C),document.addEventListener("mouseup",x))},C=$=>{var K;if(!o.value||!n.value)return;let E=$.clientX-d.value.x,p=$.clientY-d.value.y;const L=n.value.getBoundingClientRect(),X=(((K=n.value)==null?void 0:K.getRootNode())||document).querySelector(".canvas-scroll");if(X){const re=X.getBoundingClientRect(),j=re.left,_=re.top,V=re.right-L.width,O=re.bottom-L.height;E=Math.max(j,Math.min(E,V)),p=Math.max(_,Math.min(p,O));const se=12;Math.abs(E-j)<se&&(E=j),Math.abs(p-_)<se&&(p=_),Math.abs(V-E)<se&&(E=V),Math.abs(O-p)<se&&(p=O)}else E=Math.max(0,Math.min(E,window.innerWidth-L.width)),p=Math.max(0,Math.min(p,window.innerHeight-L.height));s.value={x:E,y:p}},x=()=>{o.value=!1,document.removeEventListener("mousemove",C),document.removeEventListener("mouseup",x)},h=($,E)=>{$.dataTransfer&&(E.isArray?$.dataTransfer.setData("application/json",JSON.stringify({type:$e.TABLE,dataVariable:E.id})):$.dataTransfer.setData("application/json",JSON.stringify({type:$e.TEXT,variable:E.id})),$.dataTransfer.effectAllowed="copy")};let k=0;const D=async()=>{var p;await tt();const E=(((p=n.value)==null?void 0:p.getRootNode())||document).querySelector(".canvas-scroll");if(E){const L=E.getBoundingClientRect();if(L.width===0&&k<10){k++,setTimeout(D,50);return}k=0,L.left,L.top;const N=L.left,X=L.top,K=L.bottom-L.top;i.value=`${Math.max(200,K)}px`,await tt();const re=n.value?n.value.getBoundingClientRect().width:280,j=n.value?n.value.getBoundingClientRect().height:400,_=Math.max(N,L.right-re),V=Math.max(X,L.bottom-j);(s.value.x<N||s.value.x>_||s.value.y<X||s.value.y>V)&&(s.value={x:Math.max(N,Math.min(s.value.x,_)),y:Math.max(X,Math.min(s.value.y,V))})}else k<10?(k++,setTimeout(D,50)):(s.value.x<0||s.value.y<0)&&(s.value={x:250,y:100})};De(()=>r.showVariablesPanel,$=>{$?(D(),tt(()=>{var E;if(!M){const L=(((E=n.value)==null?void 0:E.getRootNode())||document).querySelector(".canvas-scroll");L&&(M=new ResizeObserver(()=>{r.showVariablesPanel&&D()}),M.observe(L))}})):M&&(M.disconnect(),M=null)});let M=null;return ot(()=>{r.showVariablesPanel&&(D(),tt(()=>{var p;const E=(((p=n.value)==null?void 0:p.getRootNode())||document).querySelector(".canvas-scroll");E&&(M=new ResizeObserver(()=>{r.showVariablesPanel&&D()}),M.observe(E))}))}),at(()=>{document.removeEventListener("mousemove",C),document.removeEventListener("mouseup",x),M&&M.disconnect()}),($,E)=>l(r).showVariablesPanel?(f(),w("div",{key:0,ref_key:"panelRef",ref:n,class:"fixed bg-white dark:bg-gray-800 shadow-xl rounded-lg border border-gray-200 dark:border-gray-700 flex flex-col z-[2000] overflow-hidden",style:Te({left:`${s.value.x}px`,top:`${s.value.y}px`,width:"280px",maxHeight:i.value})},[a("div",{class:"flex items-center justify-between px-3 py-2 bg-gray-50 dark:bg-gray-700 border-b border-gray-200 dark:border-gray-600 cursor-move select-none",onMousedown:g},[a("h3",JC,b(l(e)("common.variables")),1),a("button",{class:"panel-close-btn p-1 hover:bg-gray-100 dark:hover:bg-gray-800 rounded-full transition-colors text-gray-500 dark:text-gray-400",onClick:E[0]||(E[0]=p=>l(r).setShowVariablesPanel(!1))},[ge(l(Ot),{class:"w-4 h-4"})])],32),a("div",ZC,[c.value.length===0?(f(),w("div",e_,b(l(e)("common.noData")),1)):(f(),w("div",t_,[(f(!0),w(Ie,null,qe(c.value,p=>(f(),w("div",{key:p.id,class:"flex flex-col"},[a("div",{class:"flex items-center py-1.5 px-2 rounded hover:bg-gray-100 dark:hover:bg-gray-700 group cursor-grab active:cursor-grabbing",draggable:!0,onDragstart:L=>h(L,p)},[p.children&&p.children.length>0?(f(),w("button",{key:0,class:"w-4 h-4 flex items-center justify-center mr-1 text-gray-400 hover:text-gray-600 cursor-pointer",onClick:He(L=>m(p.id),["stop"])},[u.value.has(p.id)?(f(),Be(l(QC),{key:0,class:"w-4 h-4"})):(f(),Be(l(GC),{key:1,class:"w-4 h-4"}))],8,o_)):(f(),w("div",a_)),a("span",{class:"text-sm text-gray-700 dark:text-gray-200 truncate flex-1",title:p.label},b(p.label),9,n_),a("span",{class:"text-xs text-gray-400 bg-gray-100 dark:bg-gray-700 px-1 rounded truncate max-w-[100px]",title:`@${p.id}`},"@"+b(p.id),9,l_)],40,r_),p.children&&p.children.length>0&&u.value.has(p.id)?(f(),w("div",s_,[(f(!0),w(Ie,null,qe(p.children,L=>(f(),w("div",{key:L.id,class:"flex items-center py-1.5 px-2 rounded hover:bg-gray-100 dark:hover:bg-gray-700 cursor-grab active:cursor-grabbing",draggable:!0,onDragstart:N=>h(N,L)},[a("span",{class:"text-sm text-gray-700 dark:text-gray-200 truncate flex-1",title:L.label},b(L.label),9,d_),a("span",{class:"text-xs text-gray-400 bg-gray-100 dark:bg-gray-700 px-1 rounded truncate max-w-[100px]",title:`@${L.id}`},"@"+b(L.id),9,c_)],40,i_))),128))])):he("",!0)]))),128))]))])],4)):he("",!0)}}),p_=St(u_,[["__scopeId","data-v-f18f44fe"]]),g_={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function h_(t,e){return f(),w("svg",g_,[...e[0]||(e[0]=[a("path",{fill:"currentColor",d:"M5 21q-.825 0-1.412-.587T3 19V5q0-.825.588-1.412T5 3h7v2H5v14h7v2zm11-4l-1.375-1.45l2.55-2.55H9v-2h8.175l-2.55-2.55L16 7l5 5z"},null,-1)])])}const m_=Pe({name:"material-symbols-logout",render:h_}),b_={key:0,class:"print-designer-headless",style:{display:"none"}},f_={class:"flex-1 flex overflow-hidden"},v_={class:"flex-1 overflow-hidden relative flex flex-col"},y_={key:0,class:"flex items-center justify-between px-4 py-2 bg-blue-50 border-b border-blue-200 text-blue-900 dark:bg-blue-950 dark:border-blue-800 dark:text-blue-100"},x_={class:"text-sm font-medium"},w_={class:"flex items-center gap-2"},k_={class:"relative w-full h-full flex flex-col overflow-hidden"},S_={class:"flex-none h-5 bg-gray-50 border-b border-gray-300 flex z-20"},C_={class:"flex-1 relative overflow-hidden"},__={class:"flex-1 flex overflow-hidden relative"},E_={class:"w-5 flex-none bg-gray-50 border-r border-gray-300 h-full relative z-20 overflow-hidden"},T_=["onMousedown"],A_={class:"absolute left-2 -top-4 theme-bg text-white text-[10px] px-1 rounded opacity-0 group-hover:opacity-100 pointer-events-none whitespace-nowrap"},$_=["onMousedown"],P_={class:"absolute top-2 -left-4 theme-bg text-white text-[10px] px-1 rounded opacity-0 group-hover:opacity-100 pointer-events-none whitespace-nowrap"},I_={key:2,class:"absolute pointer-events-none"},D_={key:1,class:"absolute bottom-4 right-4 z-50"},M_={key:0,class:"fixed inset-0 bg-black/20 dark:bg-black/40 flex items-center justify-center z-[10000] pointer-events-auto transition-opacity duration-300"},L_=Oe({__name:"PrintDesigner",props:{headless:{type:Boolean},sampleData:{}},setup(t){const e=je(),r=wr(),{autoSave:n}=Vc(),{isDark:o}=Nt(),{t:d}=Ke(),s=t,i=G(null),c=G(null),u=G(null);let m=null;const g=G(null);Jn("designer-root",c),Jn("modal-container",u);const C=G(null),x=G(!1),h=G(0),k=()=>{h.value+=1},D=(y,T)=>{const v=getComputedStyle(document.documentElement).getPropertyValue(y).trim(),S=hr(v);return S?qg(S.h,S.s,S.v,T):`rgba(59, 130, 246, ${T})`},M=le(()=>e.editingCustomElement),$=le(()=>M.value?`${M.value.name} Copy`:""),E=le(()=>{const y=e.testData||{};return JSON.stringify(y,null,2)});De(()=>s.sampleData,y=>{y&&typeof y=="object"&&e.setSampleData({...y})},{immediate:!0,deep:!0}),De(()=>r.currentTemplateId,y=>{y&&s.sampleData&&typeof s.sampleData=="object"&&e.setSampleData({...s.sampleData})}),ot(()=>{e.setIsExporting(!1),tt(()=>{te()}),m=new ResizeObserver(()=>{te()}),i.value&&m.observe(i.value),window.addEventListener("resize",te),window.addEventListener("keydown",Ce),window.addEventListener("keydown",re),window.addEventListener("keyup",Ce),window.addEventListener("blur",xe),window.addEventListener("brand-theme-updated",k),De([()=>e.pages.length,()=>e.canvasSize.width,()=>e.canvasSize.height,()=>e.zoom,()=>e.showMinimap],()=>{tt(te)}),De(o,y=>{c.value&&c.value.classList.toggle("dark",y)},{immediate:!0}),De([()=>e.pages,()=>e.canvasSize,()=>e.guides,()=>e.headerHeight,()=>e.footerHeight,()=>e.showHeaderLine,()=>e.showFooterLine,()=>e.canvasBackground,()=>e.pageSpacingX,()=>e.pageSpacingY,()=>e.watermark,()=>e.showMinimap],()=>{r.isLoading||p()},{deep:!0})});const p=Eg(async()=>{if(!r.isLoading&&!e.editingCustomElementId&&n.value&&r.currentTemplateId){const y=r.templates.find(T=>T.id===r.currentTemplateId);if(y&&ht(y)){if(r.isSaving){setTimeout(()=>p(),500);return}await r.saveCurrentTemplate(y.name,!0)}}},1e3),L=()=>{if(!e.commitCustomElementEdit()){Fe.error(d("sidebar.editSaveFailed"));return}e.cancelCustomElementEdit()},N=y=>{const T=y.trim();if(!T)return;if(!e.saveCustomElementEditAs(T)){Fe.error(d("sidebar.editSaveFailed"));return}e.cancelCustomElementEdit()},X=async()=>{await Tr.show(d("sidebar.confirmExitEdit"))&&(e.cancelCustomElementEdit(),requestAnimationFrame(()=>{var y,T;(T=(y=i.value)==null?void 0:y.focus)==null||T.call(y)}))},K=y=>{var S;const T=y;if(!T)return!1;if(T.isContentEditable)return!0;const v=(S=T.tagName)==null?void 0:S.toLowerCase();return v==="input"||v==="textarea"||v==="select"},re=y=>{if(e.disableGlobalShortcuts||!e.editingCustomElementId||x.value||K(y.target)||!(y.ctrlKey||y.metaKey))return;const v=y.key.toLowerCase();if(v==="s"&&y.shiftKey){y.preventDefault(),y.stopPropagation(),x.value=!0;return}if(v==="s"){y.preventDefault(),y.stopPropagation(),L();return}v==="q"&&(y.preventDefault(),y.stopPropagation(),X())},j=G(0),_=G(0),V=G(0),O=G(0),se=y=>{const T=y.target;j.value=T.scrollLeft,_.value=T.scrollTop},W=G(0),Q=G(0),ee=G(0),ve=G(0),ce=le(()=>e.unit||"mm"),J=y=>{const T=It(y,e.unit||"mm");return e.unit==="px"?Math.round(T):Number(T.toFixed(1))},ne=le(()=>{const y=e.pages.length,T=e.canvasSize.height,v=e.canvasSize.width,P=y>0?y*T+(y-1)*20:0;return{width:`${v*e.zoom}px`,height:`${P*e.zoom}px`}}),te=()=>{if(i.value&&C.value){const y=i.value.clientWidth,T=i.value.clientHeight;ee.value=y,ve.value=T;const v=parseFloat(ne.value.width),S=parseFloat(ne.value.height),P=64,ae=64;W.value=Math.max(y,v+P),Q.value=Math.max(T,S+ae),v+P<=y&&(W.value=y),S+ae<=T&&(Q.value=T);const q=i.value.getBoundingClientRect(),ye=C.value.getBoundingClientRect(),F=i.value.clientLeft||0,A=i.value.clientTop||0;j.value=i.value.scrollLeft,_.value=i.value.scrollTop,V.value=ye.left-q.left+i.value.scrollLeft-F,O.value=ye.top-q.top+i.value.scrollTop-A}};at(()=>{var y;p.cancel(),m&&(m.disconnect(),m=null),window.removeEventListener("resize",te),window.removeEventListener("mousemove",oe),window.removeEventListener("mouseup",pe),window.removeEventListener("keydown",Ce),window.removeEventListener("keydown",re),window.removeEventListener("keyup",Ce),window.removeEventListener("blur",xe),window.removeEventListener("brand-theme-updated",k),(y=i.value)==null||y.removeEventListener("wheel",Ae)});const ue=G(!1),z=G(null),ie=G("horizontal"),de=G(0),fe=(y,T,v=null)=>{ue.value=!0,z.value=v,ie.value=T,B(y),window.addEventListener("mousemove",oe),window.addEventListener("mouseup",pe)},B=y=>{if(!i.value)return;const T=i.value.getBoundingClientRect(),v=e.zoom;if(ie.value==="horizontal"){const S=y.clientY-T.top+i.value.scrollTop;de.value=(S-O.value)/v}else{const S=y.clientX-T.left+i.value.scrollLeft;de.value=(S-V.value)/v}},oe=y=>{ue.value&&(y.preventDefault(),B(y),z.value&&e.updateGuide(z.value,de.value))},pe=y=>{if(!ue.value)return;const T=i.value.getBoundingClientRect();let v=!1;ie.value==="horizontal"?y.clientY<T.top&&(v=!0):y.clientX<T.left&&(v=!0),v?z.value&&e.removeGuide(z.value):z.value?e.updateGuide(z.value,de.value):e.addGuide({type:ie.value,position:de.value}),ue.value=!1,z.value=null,window.removeEventListener("mousemove",oe),window.removeEventListener("mouseup",pe)},Ae=y=>{y.ctrlKey&&(y.preventDefault(),y.deltaY<0?e.setZoom(Math.min(5,e.zoom+.1)):e.setZoom(Math.max(.2,e.zoom-.1)))},Ce=y=>{var T,v;e.disableGlobalShortcuts||(y.key==="Control"||y.key==="Meta")&&(y.type==="keydown"&&!y.repeat?(T=i.value)==null||T.addEventListener("wheel",Ae,{passive:!1}):y.type==="keyup"&&((v=i.value)==null||v.removeEventListener("wheel",Ae)))},xe=()=>{var y;(y=i.value)==null||y.removeEventListener("wheel",Ae)},Ee=y=>{i.value&&i.value.scrollTo({left:y.left,top:y.top,behavior:"auto"})},we=y=>{var ke;const T=((ke=y.style)==null?void 0:ke.rotate)||0;if(T===0)return{minX:y.x,maxX:y.x+y.width,minY:y.y,maxY:y.y+y.height};const v=y.x+y.width/2,S=y.y+y.height/2,P=T*Math.PI/180,ae=Math.cos(P),q=Math.sin(P),ye=[{x:y.x,y:y.y},{x:y.x+y.width,y:y.y},{x:y.x,y:y.y+y.height},{x:y.x+y.width,y:y.y+y.height}];let F=1/0,A=-1/0,I=1/0,H=-1/0;for(const Y of ye){const be=v+(Y.x-v)*ae-(Y.y-S)*q,me=S+(Y.x-v)*q+(Y.y-S)*ae;be<F&&(F=be),be>A&&(A=be),me<I&&(I=me),me>H&&(H=me)}return{minX:F,maxX:A,minY:I,maxY:H}},R=le(()=>{if(!e.isDragging||e.selectedElementIds.length===0)return null;const y=[];for(const F of e.selectedElementIds)for(let A=0;A<e.pages.length;A++){const H=e.pages[A].elements.find(ke=>ke.id===F);H&&y.push({el:H,pageIndex:A})}if(y.length===0)return null;let T=1/0,v=-1/0,S=1/0,P=-1/0;const ae=20;for(const{el:F,pageIndex:A}of y){const I=we(F),H=A*(e.canvasSize.height+ae);I.minY+=H,I.maxY+=H,I.minX<T&&(T=I.minX),I.maxX>v&&(v=I.maxX),I.minY<S&&(S=I.minY),I.maxY>P&&(P=I.maxY)}const q=(T+v)/2,ye=(S+P)/2;return{minX:T,maxX:v,minY:S,maxY:P,centerX:q,centerY:ye}}),U=le(()=>{if(!R.value)return{h:[],v:[]};h.value;const y=D("--brand-500",.5),{minX:T,maxX:v,minY:S,maxY:P}=R.value;return{h:[{position:T,color:y},{position:v,color:y}],v:[{position:S,color:y},{position:P,color:y}]}}),Z=le(()=>{if(!R.value)return{h:null,v:null};h.value;const y=D("--brand-300",.6),{minX:T,maxX:v,minY:S,maxY:P}=R.value;return{h:{start:T,end:v,color:y},v:{start:S,end:P,color:y}}});return(y,T)=>{var v;return s.headless?(f(),w("div",b_,[a("div",{ref_key:"rootContainer",ref:c},null,512)])):(f(),w("div",{key:1,ref_key:"rootContainer",ref:c,class:"h-full w-full flex flex-col bg-gray-100 overflow-hidden"},[ge(Mk),a("div",f_,[ge(E4),a("main",v_,[l(e).editingCustomElementId?(f(),w("div",y_,[a("div",x_,b(l(d)("sidebar.editingElement",{name:((v=M.value)==null?void 0:v.name)||""})),1),a("div",w_,[a("button",{onClick:L,class:"px-3 py-1.5 text-xs font-medium bg-blue-600 text-white rounded hover:bg-blue-700 dark:bg-blue-500 dark:hover:bg-blue-400 inline-flex items-center gap-1.5"},[ge(l(bl),{class:"w-4 h-4"}),Le(" "+b(l(d)("sidebar.saveEdit")),1)]),a("button",{onClick:T[0]||(T[0]=S=>x.value=!0),class:"px-3 py-1.5 text-xs font-medium bg-blue-200 text-blue-900 rounded hover:bg-blue-300 dark:bg-blue-700 dark:hover:bg-blue-600 dark:text-white inline-flex items-center gap-1.5"},[ge(l(Kc),{class:"w-4 h-4"}),Le(" "+b(l(d)("sidebar.saveAs")),1)]),a("button",{onClick:X,class:"px-3 py-1.5 text-xs font-medium bg-slate-200 text-slate-900 rounded hover:bg-slate-300 dark:bg-slate-700 dark:hover:bg-slate-600 dark:text-slate-100 inline-flex items-center gap-1.5"},[ge(l(m_),{class:"w-4 h-4"}),Le(" "+b(l(d)("sidebar.exitEdit")),1)])])])):he("",!0),ge($C),a("div",k_,[a("div",S_,[T[6]||(T[6]=a("div",{class:"w-5 flex-none bg-gray-100 border-r border-gray-300"},null,-1)),a("div",C_,[ge(rc,{type:"horizontal",zoom:l(e).zoom,scroll:j.value,offset:V.value,thick:20,unit:l(e).unit||"mm",indicators:U.value.h,range:Z.value.h,onGuideDragStart:T[1]||(T[1]=S=>fe(S,"horizontal"))},null,8,["zoom","scroll","offset","unit","indicators","range"])])]),a("div",__,[a("div",E_,[ge(rc,{type:"vertical",zoom:l(e).zoom,scroll:_.value,offset:O.value,thick:20,unit:l(e).unit||"mm",indicators:U.value.v,range:Z.value.v,onGuideDragStart:T[2]||(T[2]=S=>fe(S,"vertical"))},null,8,["zoom","scroll","offset","unit","indicators","range"])]),a("div",{ref_key:"scrollContainer",ref:i,tabindex:"-1",class:"flex-1 overflow-auto p-8 flex relative canvas-scroll bg-gray-100 focus:outline-none",onScroll:se,onClick:T[3]||(T[3]=S=>{(S.target===i.value||S.target===S.currentTarget)&&l(e).selectGuide(null)})},[a("div",{ref_key:"canvasWrapper",ref:C,style:Te(ne.value),class:"mx-auto relative"},[ge(eu,{ref_key:"canvasContainer",ref:g,class:"absolute top-0 left-0"},null,512)],4),a("div",{class:"absolute top-0 left-0 pointer-events-none z-50",style:Te({width:`${W.value}px`,height:`${Q.value}px`})},[R.value?(f(),w(Ie,{key:0},[a("div",{class:"absolute w-full border-t border-blue-500 border-dashed",style:Te({top:`${O.value+Math.round(R.value.minY*l(e).zoom)}px`,left:0})},[a("div",{class:"absolute -top-6 bg-blue-500 text-white text-xs px-1.5 py-0.5 rounded shadow-sm",style:Te({left:`${j.value+10}px`})},b(J(R.value.minY))+" "+b(ce.value),5)],4),a("div",{class:"absolute w-full border-t border-dashed theme-border",style:Te({top:`${O.value+Math.round(R.value.maxY*l(e).zoom)}px`,left:0})},[a("div",{class:"absolute -top-6 theme-bg text-white text-xs px-1.5 py-0.5 rounded shadow-sm",style:Te({left:`${j.value+10}px`})},b(J(R.value.maxY))+" "+b(ce.value),5)],4),a("div",{class:"absolute h-full border-l border-dashed theme-border",style:Te({left:`${V.value+Math.round(R.value.minX*l(e).zoom)}px`,top:0})},[a("div",{class:"absolute -left-2 transform -translate-x-full theme-bg text-white text-xs px-1.5 py-0.5 rounded shadow-sm whitespace-nowrap",style:Te({top:`${_.value+10}px`})},b(J(R.value.minX))+" "+b(ce.value),5)],4),a("div",{class:"absolute h-full border-l border-dashed theme-border",style:Te({left:`${V.value+Math.round(R.value.maxX*l(e).zoom)}px`,top:0})},[a("div",{class:"absolute -left-2 transform -translate-x-full theme-bg text-white text-xs px-1.5 py-0.5 rounded shadow-sm whitespace-nowrap",style:Te({top:`${_.value+10}px`})},b(J(R.value.maxX))+" "+b(ce.value),5)],4)],64)):he("",!0),(f(!0),w(Ie,null,qe(l(e).guides,S=>(f(),w(Ie,{key:S.id},[S.type==="horizontal"?(f(),w("div",{key:0,class:"absolute left-0 w-full h-3 -mt-1.5 cursor-row-resize pointer-events-auto group flex flex-col justify-center",style:Te({top:`${O.value+S.position*l(e).zoom}px`}),onMousedown:He(P=>{l(e).selectGuide(S.id),fe(P,"horizontal",S.id)},["stop"])},[a("div",{class:_e(["w-full",l(e).highlightedGuideId===S.id?"border-t-2 theme-border-strong":"border-t theme-border","theme-border-hover"])},null,2),a("div",A_,b(J(S.position))+b(ce.value),1)],44,T_)):(f(),w("div",{key:1,class:"absolute top-0 h-full w-3 -ml-1.5 cursor-col-resize pointer-events-auto group flex flex-row justify-center",style:Te({left:`${V.value+S.position*l(e).zoom}px`}),onMousedown:He(P=>{l(e).selectGuide(S.id),fe(P,"vertical",S.id)},["stop"])},[a("div",{class:_e(["h-full",l(e).highlightedGuideId===S.id?"border-l-2 theme-border-strong":"border-l theme-border","theme-border-hover"])},null,2),a("div",P_,b(J(S.position))+b(ce.value),1)],44,$_))],64))),128)),ue.value&&!z.value?(f(),w("div",{key:1,class:_e(["absolute border-dashed pointer-events-none theme-border",ie.value==="horizontal"?"left-0 w-full border-t":"top-0 h-full border-l"]),style:Te({top:ie.value==="horizontal"?`${O.value+de.value*l(e).zoom}px`:void 0,left:ie.value==="vertical"?`${V.value+de.value*l(e).zoom}px`:void 0})},[a("div",{class:_e(["absolute theme-bg text-white text-[10px] px-1 rounded",ie.value==="horizontal"?"left-2 -top-4":"top-2 -left-4"])},b(J(de.value))+b(ce.value),3)],6)):he("",!0),l(e).highlightedEdge?(f(),w("div",I_,[l(e).highlightedEdge==="top"?(f(),w("div",{key:0,class:"absolute left-0 w-full border-t theme-border",style:Te({top:`${O.value}px`})},null,4)):l(e).highlightedEdge==="bottom"?(f(),w("div",{key:1,class:"absolute left-0 w-full border-t theme-border",style:Te({top:`${O.value+l(e).canvasSize.height*l(e).zoom}px`})},null,4)):l(e).highlightedEdge==="left"?(f(),w("div",{key:2,class:"absolute top-0 h-full border-l theme-border",style:Te({left:`${V.value}px`})},null,4)):l(e).highlightedEdge==="right"?(f(),w("div",{key:3,class:"absolute top-0 h-full border-l theme-border",style:Te({left:`${V.value+l(e).canvasSize.width*l(e).zoom}px`})},null,4)):he("",!0)])):he("",!0)],4)],544)])]),l(e).showMinimap?(f(),w("div",D_,[ge(UC,{"scroll-width":W.value,"scroll-height":Q.value,"viewport-width":ee.value,"viewport-height":ve.value,"scroll-left":j.value,"scroll-top":_.value,pages:l(e).pages,"page-width":l(e).canvasSize.width,"page-height":l(e).canvasSize.height,zoom:l(e).zoom,"content-offset-x":V.value,"content-offset-y":O.value,"canvas-background":l(e).canvasBackground,"show-header-line":l(e).showHeaderLine,"show-footer-line":l(e).showFooterLine,"header-height":l(e).headerHeight,"footer-height":l(e).footerHeight,watermark:l(e).watermark||null,"onUpdate:scroll":Ee},null,8,["scroll-width","scroll-height","viewport-width","viewport-height","scroll-left","scroll-top","pages","page-width","page-height","zoom","content-offset-x","content-offset-y","canvas-background","show-header-line","show-footer-line","header-height","footer-height","watermark"])])):he("",!0)]),ge(nC)]),ge(Or,{show:x.value,"initial-value":$.value,title:l(d)("sidebar.saveAsCustomElement"),placeholder:l(d)("sidebar.enterNamePlaceholder"),onClose:T[4]||(T[4]=S=>x.value=!1),onSave:N},null,8,["show","initial-value","title","placeholder"]),l(r).isLoading?(f(),w("div",M_,[...T[7]||(T[7]=[pu('<svg class="animate-spin h-8 w-8 text-gray-500 dark:text-gray-300" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" stroke="currentColor" stroke-width="2" stroke-linecap="round"><line x1="12" y1="3" x2="12" y2="7" opacity="1"></line><line x1="16.5" y1="4.2" x2="14.5" y2="7.7" opacity="0.9"></line><line x1="19.8" y1="7.5" x2="16.3" y2="9.5" opacity="0.8"></line><line x1="21" y1="12" x2="17" y2="12" opacity="0.7"></line><line x1="19.8" y1="16.5" x2="16.3" y2="14.5" opacity="0.6"></line><line x1="16.5" y1="19.8" x2="14.5" y2="16.3" opacity="0.5"></line><line x1="12" y1="21" x2="12" y2="17" opacity="0.4"></line><line x1="7.5" y1="19.8" x2="9.5" y2="16.3" opacity="0.3"></line><line x1="4.2" y1="16.5" x2="7.7" y2="14.5" opacity="0.2"></line><line x1="3" y1="12" x2="7" y2="12" opacity="0.1"></line><line x1="4.2" y1="7.5" x2="7.7" y2="9.5" opacity="0.1"></line><line x1="7.5" y1="4.2" x2="9.5" y2="7.7" opacity="0.1"></line></svg>',1)])])):he("",!0),a("div",{ref_key:"modalContainer",ref:u,class:"print-designer-modals fixed inset-0 pointer-events-none z-[9999]"},null,512),ge(p_),ge(sr,{visible:!!l(e).showSampleDataModal,title:l(d)("common.sampleData"),value:E.value,language:"json","read-only":!0,"onUpdate:visible":T[5]||(T[5]=S=>l(e).setShowSampleDataModal(S))},null,8,["visible","title","value"])],512))}}}),z_={key:1,class:"h-screen w-screen overflow-hidden"},R_=Oe({__name:"App",setup(t){const e=new URLSearchParams(window.location.search).get("print")==="1",r=G({id:8,name:"宝安机场飞行任务记录",createTime:"2026-05-01",selected:!1,templateId:"5",variables:{dockname:"宝安国际无人机机场",docksn:"6EE5NC104E0PY6",dronename:"M300 RTK",dronesn:"7UCDH5P0050JKL",reportname:"宝安机场飞行任务记录报告",createtime:"2026-05-01",tasktype:"航线巡检",totalcount:"4",totaldistance:"48.6 km",conclusion:"本轮飞行任务覆盖宝安区重点航线,数据采集完整。任务中拍摄的图像清晰可用,气象条件良好,所有飞行指标均符合标准。",flightRecords:[{time:"2026-04-02 09:30",taskname:"宝安港区A线巡检",dockname:"宝安国际无人机机场",distance:"12.5 km",image:"https://picsum.photos/id/1/200/80"},{time:"2026-04-08 14:00",taskname:"西乡街道线路巡查",dockname:"宝安国际无人机机场",distance:"10.2 km",image:"https://picsum.photos/id/10/200/80"},{time:"2026-04-15 10:15",taskname:"福永物流园区巡检",dockname:"宝安国际无人机机场",distance:"15.8 km",image:"https://picsum.photos/id/20/200/80"},{time:"2026-04-22 16:45",taskname:"深圳湾沿岸监控",dockname:"宝安国际无人机机场",distance:"10.1 km",image:"https://picsum.photos/id/30/200/80"}],taskRecords:[{time:"2026-04-02 09:30",taskname:"宝安港区A线巡检",dockname:"宝安国际无人机机场",distance:"12.5 km",image:"https://picsum.photos/id/1/200/80",warn:2},{time:"2026-04-08 14:00",taskname:"西乡街道线路巡查",dockname:"罗湖无人机机场",distance:"10.2 km",image:"https://picsum.photos/id/10/200/80",warn:1},{time:"2026-04-15 10:15",taskname:"福永物流园区巡检",dockname:"福田无人机机场",distance:"15.8 km",image:"https://picsum.photos/id/20/200/80",warn:6},{time:"2026-04-22 16:45",taskname:"深圳湾沿岸监控",dockname:"香港无人机机场",distance:"10.1 km",image:"https://picsum.photos/id/30/200/80",warn:1}]}});return(n,o)=>e?(f(),Be(tu,{key:0})):(f(),w("div",z_,[ge(L_,{"sample-data":r.value},null,8,["sample-data"])]))}});gu.config({"vs/nls":{availableLanguages:{"*":"en"}}});const F_=cc(),wl=dc(R_),q_=()=>{const t=localStorage.getItem("print-designer-brand-vars");if(t)try{const e=JSON.parse(t);if(!e||typeof e!="object")return;const r=document.documentElement;Object.entries(e).forEach(([n,o])=>{r.style.setProperty(n,o)})}catch{}};q_();wl.use(F_);wl.use(Qe);wl.mount("#app");
|