@mlightcad/cad-simple-viewer-cli 1.8.0-preview.3 → 1.8.0-preview.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.md +182 -182
- package/dist-runner/assets/cad-html-plugin-ndOcDphI.js +1565 -0
- package/dist-runner/assets/cad-pdf-plugin-COsuQTug.js +1043 -0
- package/dist-runner/assets/cad-simple-viewer-AcApSimpleUiChrome-D_0b6okm-DBsZjt_l.js +1 -0
- package/dist-runner/assets/{cad-svg-plugin-D-Z-nIZi.js → cad-svg-plugin-BWbiwrld.js} +2 -2
- package/dist-runner/assets/index-DIn0aEGh.js +9530 -0
- package/dist-runner/index.html +12 -12
- package/dist-runner/viewer-runtime.iife.js +258 -258
- package/dist-runner/workers/libredwg-parser-worker.js +20 -20
- package/dist-runner/workers/libredwg-web.wasm +0 -0
- package/dist-runner/workers/mtext-renderer-worker.js +4 -5
- package/examples/batch-export-html-multi-preview.mjs +306 -306
- package/examples/batch-export-html.mjs +105 -105
- package/examples/batch-export-pdf.mjs +114 -114
- package/examples/batch-export-png.mjs +103 -103
- package/examples/create-drawing-dxf.scr +15 -15
- package/examples/create-drawing-png.scr +19 -19
- package/examples/create-shapes-dxf.scr +17 -17
- package/examples/export-dxf.scr +5 -5
- package/examples/export-html-multi-preview.scr +23 -21
- package/examples/export-html-multi.scr +18 -16
- package/examples/export-html.scr +15 -13
- package/examples/export-pdf-monochrome.scr +14 -13
- package/examples/export-pdf.scr +16 -14
- package/examples/export-png.scr +9 -9
- package/examples/freeze-layer-png.scr +15 -15
- package/examples/index.json +141 -141
- package/examples/open-quit.scr +2 -2
- package/package.json +10 -10
- package/dist-runner/assets/cad-html-plugin-B7q3l8cW.js +0 -1565
- package/dist-runner/assets/cad-pdf-plugin-CN3SFYWU.js +0 -209
- package/dist-runner/assets/index-C50ZUySK.js +0 -7820
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{d as p,s as P,a as T,v as L,F as v,W as S,b as C,x as U,c as l,e as E,r as M,U as O,u as F,j as R,h as y,m as V,f as B,p as w,g as f,_ as h,i as A,k as x,w as _,l as N,n as H,y as K,o as g,q as D}from"./index-DIn0aEGh.js";class z extends g{constructor(e){super(),this.actions=e}async execute(e){this.actions.prepare(),this.actions.toggle()}}class I{constructor(e,t="layers"){this.dockPanel=e,this.layersTabId=t,this.handleCloseLayerManager=()=>{this.hide()},D.on("close-layer-manager",this.handleCloseLayerManager)}toggleFromCommand(){this.dockPanel.hasTab(this.layersTabId)&&this.dockPanel.open(this.layersTabId)}hide(){this.dockPanel.close()}refreshLocale(){this.dockPanel.refreshLocale()}destroy(){D.off("close-layer-manager",this.handleCloseLayerManager)}}class G{toggleFromCommand(){var e;(e=this.current)==null||e.toggleFromCommand()}hide(){var e;(e=this.current)==null||e.hide()}refreshLocale(){var e;(e=this.current)==null||e.refreshLocale()}}class Y extends g{constructor(e){super(),this.actions=e}async execute(e){this.actions.prepare(),this.actions.toggle()}}class W extends g{constructor(e){super(),this.actions=e}async execute(e){this.actions.prepare(),this.actions.toggle()}}class $ extends g{constructor(e){super(),this.actions=e}async execute(e){this.actions.prepare(),this.actions.toggle()}}const d="layers",u="review",m="measurements",c="find";class q{constructor(e={}){this.options=e,this.layerUiControllerHolder=new G,this.baseToolbarItems=[],this.toolbarItemsInput="default",this.toolbarItemsOverridden=!1,this.hasLayerToolbarItem=!1,this.hasMarkupPanelToolbarItem=!1,this.hasMeasurementPanelToolbarItem=!1,this.hasFindToolbarItem=!1,this.dockPanelExplicitlyEnabled=!1,this.toolbarPlacement="right",this.toolbarCollapsible=!1,this.toolbarEdgeOffset=8,this.toolbarSideOffset=0,this.toolbarInCanvasParent=!1,this.toolbarShowLabels=!1,this.toolbarShowChildrenIndicator=!0,this.toolbarShowBorder=!0,this.toolbarShowButtonBorder=!1,this.toolbarShowSeparators=!0,this.toolbarSize="auto",this.toolbarOverflow="menu",this.layoutMode="auto",this.activeLayoutKind="desktop",this.registeredCommands=[],this.handleLocaleChanged=()=>{var t,o,a,s,r,i;this.rebuildToolbarItems(this.activeLayoutKind),(t=this.toolbar)==null||t.setSelectedChild("locale",`locale-${p.currentLocale}`),(o=this.layerListView)==null||o.refreshLocale(),(a=this.reviewPaletteView)==null||a.refreshLocale(),(s=this.measurementPaletteView)==null||s.refreshLocale(),(r=this.findPaletteView)==null||r.refreshLocale(),(i=this.dockPanel)==null||i.refreshLocale(),this.toolbar&&(this.toolbar.updateItems(this.baseToolbarItems),this.toolbar.refreshLocale())},this.handleDocumentActivatedForDock=()=>{var t,o;this.hasLayerToolbarItem&&this.mountLayerDockUi(),this.hasMarkupPanelToolbarItem&&this.mountReviewDockUi(),this.hasMeasurementPanelToolbarItem&&this.mountMeasurementDockUi(),this.hasFindToolbarItem&&this.mountFindDockUi(),this.tryUpgradeDockMountTarget(),(t=this.dockPanel)==null||t.ensureMounted(),this.ensureViewerToolbar(),this.tryUpgradeToolbarMountTarget(),(o=this.toolbar)==null||o.syncInParentLayout()},this.paletteHost={show:(t,o)=>{this.ensureDockReady();const a=this.dockPanel;if(!a)return;const s=`hosted-${t.id}`,r=a.isOpen,i=a.activeTab;if(a.removeTab(s),!a.addTab({id:s,label:t.title,content:t.element}))return;a.open(s);const n=a.addCloseListener(o);return{close:()=>{n(),a.removeTab(s),r?i&&i!==s&&a.open(i):a.close()}}},openNamedTab:t=>{var o,a,s,r,i,n,k;switch(t){case P.layers:return this.prepareLayerDockForCommand(),this.layerUiControllerHolder.toggleFromCommand(),((o=this.dockPanel)==null?void 0:o.hasTab(d))??!1;case P.review:return this.prepareReviewDockForCommand(),(a=this.dockPanel)==null||a.open(u),((s=this.dockPanel)==null?void 0:s.hasTab(u))??!1;case P.measurements:return this.prepareMeasurementDockForCommand(),(r=this.dockPanel)==null||r.open(m),((i=this.dockPanel)==null?void 0:i.hasTab(m))??!1;case P.find:return this.mountFindDockUi(),this.tryUpgradeDockMountTarget(),(n=this.dockPanel)!=null&&n.hasTab(c)?(this.dockPanel.open(c),(k=this.findPaletteView)==null||k.focus(),!0):!1;default:return!1}}}}addDockPanelTab(e){return!e.labelKey&&!e.label||(this.ensureDockReady(),!this.dockPanel)||!this.dockPanel.addTab(e)?!1:(this.dockPanel.open(e.id),!0)}isDockPanelOpen(){var e;return((e=this.dockPanel)==null?void 0:e.isOpen)??!1}hasDockPanelTab(e){var t;return((t=this.dockPanel)==null?void 0:t.hasTab(e))??!1}toggleDockPanelTab(e){var t;return!((t=this.dockPanel)!=null&&t.hasTab(e))||(this.ensureDockReady(),!this.dockPanel)?!1:(this.dockPanel.toggle(e),!0)}setDockPanelOpen(e){return e?(this.ensureDockReady(),this.dockPanel?(this.dockPanel.open(),!0):(console.warn("[SimpleUiChrome] setDockPanelOpen skipped: dock panel is unavailable."),!1)):(this.dockPanel&&this.dockPanel.close(),!0)}getDockPanelSide(){var e;return(e=this.dockPanel)==null?void 0:e.getSide()}getDockPanelSize(){var e;return(e=this.dockPanel)==null?void 0:e.getSize()}setDockPanelSize(e){return this.ensureDockReady(),this.dockPanel?(this.dockPanel.setPanelSize(e),!0):(console.warn("[SimpleUiChrome] setDockPanelSize skipped: dock panel is unavailable."),!1)}getToolbarItems(){return this.toolbarItemsInput}setToolbarItems(e,t){if(!this.toolbar)return;this.toolbarItemsOverridden=!0,this.toolbarLayoutSwitcher=t,this.toolbarItemsInput=e;const o=this.resolveBaseToolbarItems(e);this.baseToolbarItems=t?T(o,t):o,this.syncLayerToolbarItem(),this.syncReviewToolbarItem(),this.syncMeasurementToolbarItem(),this.syncFindToolbarItem(),this.renderToolbarItems()}getToolbarPlacement(){return this.toolbarPlacement}setToolbarPlacement(e){return this.toolbar?(this.applyToolbarPlacement(e),!0):(console.warn("[SimpleUiChrome] setToolbarPlacement skipped: toolbar is unavailable."),!1)}isToolbarVisible(){var e;return((e=this.toolbar)==null?void 0:e.isVisible)??!1}setToolbarVisible(e){var t;return this.toolbar?(this.toolbar.setVisible(e),e||(t=this.dockPanel)==null||t.close(),!0):(console.warn("[SimpleUiChrome] setToolbarVisible skipped: toolbar is unavailable."),!1)}isToolbarCollapsed(){var e;return((e=this.toolbar)==null?void 0:e.isCollapsed)??!1}setToolbarCollapsed(e){return this.toolbar?this.toolbarCollapsible?(this.toolbar.setCollapsed(e),!0):(console.warn("[SimpleUiChrome] setToolbarCollapsed skipped: toolbar is not collapsible."),!1):(console.warn("[SimpleUiChrome] setToolbarCollapsed skipped: toolbar is unavailable."),!1)}getToolbarEdgeOffset(){var e;return((e=this.toolbar)==null?void 0:e.getEdgeOffset())??this.toolbarEdgeOffset}getLayout(){return this.activeLayoutKind}setLayout(e){var t;return!this.toolbar&&e!==this.layoutMode?(this.layoutMode=e,!0):this.toolbar?(this.layoutMode=e,(t=this.unsubscribeLayout)==null||t.call(this),this.unsubscribeLayout=void 0,e==="auto"?(this.unsubscribeLayout=L(o=>{o!==this.activeLayoutKind&&this.applyLayoutKind(o)}),this.applyLayoutKind(v())):this.applyLayoutKind(e),!0):!1}setToolbarEdgeOffset(e){return this.toolbar?(this.toolbarEdgeOffset=Math.max(0,e),this.toolbar.setEdgeOffset(this.toolbarEdgeOffset),!0):(console.warn("[SimpleUiChrome] setToolbarEdgeOffset skipped: toolbar is unavailable."),!1)}start(e){var t,o,a;S(),this.commandManager=e,C.instance.set("isShowRibbon",!1,{persist:!1});const s=U(this.options),r=s.host??((t=l.instance.curView)==null?void 0:t.container)??document.body;this.hostEl=r,this.dockPanelMountTargetOption=(o=this.options.dockPanel)==null?void 0:o.mountTarget,this.toolbarMountTargetOption=(a=this.options.toolbar)==null?void 0:a.mountTarget,this.layoutMode=s.layout,this.dockPanelExplicitlyEnabled=s.dockPanel.enabled===!0,this.dockPanelDefaults={defaultOpen:s.dockPanel.defaultOpen??!1,defaultSide:s.dockPanel.defaultSide??"left",defaultHeight:s.dockPanel.defaultHeight??240,defaultWidth:s.dockPanel.defaultWidth??280},this.themeSync=new E(r,()=>{var k;return(k=this.toolbar)==null?void 0:k.refresh()}),this.themeSync.start(),M.setHost(this.paletteHost),this.i18n=new O,p.events.localeChanged.addEventListener(this.handleLocaleChanged),l.instance.events.documentActivated.addEventListener(this.handleDocumentActivatedForDock);const i=this.layoutMode==="auto"?v():this.layoutMode,n=this.isViewerToolbarEnabled();this.applyLayoutKind(i,{skipToolbarApply:!n}),s.shouldCreateDockPanel&&this.ensureDockPanel(),this.hasLayerToolbarItem&&(this.mountLayerDockUi(),this.ensureLayerCommandRegistered()),this.hasMarkupPanelToolbarItem&&(this.mountReviewDockUi(),this.ensureMarkupPanelCommandRegistered()),this.hasMeasurementPanelToolbarItem&&(this.mountMeasurementDockUi(),this.ensureMeasurementPanelCommandRegistered()),this.hasFindToolbarItem&&(this.mountFindDockUi(),this.ensureFindCommandRegistered()),this.ensureViewerToolbar(r)}isViewerToolbarEnabled(){var e;return((e=this.options.toolbar)==null?void 0:e.enabled)!==!1}ensureViewerToolbar(e){var t;if(!this.isViewerToolbarEnabled())return;if(this.toolbar){if(this.toolbar.isRootConnected())return;(t=this.toolbarDocUnbind)==null||t.call(this),this.toolbarDocUnbind=void 0,this.toolbar.destroy(),this.toolbar=void 0,this.toolbarMountEl=void 0}const o=e??this.hostEl;if(!o||!this.i18n)return;const a=this.getToolbarMountEl()??o;this.toolbarMountEl=a;const s=this.getMergedToolbarOptions(this.activeLayoutKind);try{this.toolbar=new F({host:a,themeHost:o,placement:this.toolbarPlacement,edgeOffset:this.toolbarEdgeOffset,sideOffset:this.toolbarSideOffset,items:this.baseToolbarItems,i18n:this.i18n,collapsible:this.toolbarCollapsible,defaultCollapsed:s.defaultCollapsed,showLabels:this.toolbarShowLabels,showChildrenIndicator:this.toolbarShowChildrenIndicator,size:this.toolbarSize,overflow:this.toolbarOverflow,showBorder:this.toolbarShowBorder,showButtonBorder:this.toolbarShowButtonBorder,showSeparators:this.toolbarShowSeparators,inCanvasParent:this.toolbarInCanvasParent,subToolbar:this.toolbarSubToolbar,onCollapse:()=>{var r;(r=this.dockPanel)==null||r.close()},onExclusiveOpen:()=>this.dismissDockForExclusiveChrome(),onCommand:r=>{l.instance.sendStringToExecute(r)}}),this.toolbarDocUnbind=R(this.toolbar)}catch(r){console.error("[SimpleUiChrome] Failed to create viewer toolbar:",r);return}try{this.setLayout(this.layoutMode)}catch(r){console.warn("[SimpleUiChrome] setLayout failed during toolbar setup:",r)}}getToolbarMountEl(){if(this.hostEl)return this.toolbarInCanvasParent?y(this.hostEl,this.toolbarMountTargetOption):V(this.hostEl,this.toolbarMountTargetOption)}tryUpgradeToolbarMountTarget(){var e;if(this.toolbarMountTargetOption||!this.hostEl||!this.toolbar)return;const t=this.getToolbarMountEl();if(!t||t===this.toolbarMountEl)return;const o=(e=l.instance.curView)==null?void 0:e.container,a=o==null?void 0:o.parentElement;this.toolbarMountEl!==this.hostEl&&this.toolbarMountEl!==o&&this.toolbarMountEl!==a||(this.toolbar.reparentTo(t),this.toolbarMountEl=t,this.toolbar.syncInParentLayout())}getMergedToolbarOptions(e){var t,o;return B(e,this.options.toolbar,(o=(t=this.options.layouts)==null?void 0:t[e])==null?void 0:o.toolbar)}applyLayoutKind(e,t){this.activeLayoutKind=e;const o=this.getMergedToolbarOptions(e);this.toolbarPlacement=o.placement??"right",this.toolbarCollapsible=o.collapsible??!1,this.toolbarEdgeOffset=o.edgeOffset??8,this.toolbarSideOffset=o.sideOffset??0,this.toolbarShowLabels=o.showLabels??!1,this.toolbarShowChildrenIndicator=o.showChildrenIndicator??!0,this.toolbarShowBorder=o.showBorder??!0,this.toolbarShowButtonBorder=o.showButtonBorder??!1,this.toolbarShowSeparators=o.showSeparators??!0,this.toolbarSize=o.size??"auto",this.toolbarOverflow=o.overflow??"menu",this.toolbarSubToolbar=o.subToolbar;const a=o.inCanvasParent===!0,s=a!==this.toolbarInCanvasParent;if(this.toolbarInCanvasParent=a,this.rebuildToolbarItems(e,o),this.syncLayerToolbarItem(),this.syncReviewToolbarItem(),this.syncMeasurementToolbarItem(),this.syncFindToolbarItem(),!(t!=null&&t.skipToolbarApply||!this.toolbar)){if(this.toolbar.applyViewOptions({placement:this.toolbarPlacement,edgeOffset:this.toolbarEdgeOffset,sideOffset:this.toolbarSideOffset,collapsible:this.toolbarCollapsible,defaultCollapsed:o.defaultCollapsed,showLabels:this.toolbarShowLabels,showChildrenIndicator:this.toolbarShowChildrenIndicator,size:this.toolbarSize,overflow:this.toolbarOverflow,showBorder:this.toolbarShowBorder,showButtonBorder:this.toolbarShowButtonBorder,showSeparators:this.toolbarShowSeparators,subToolbar:this.toolbarSubToolbar,inCanvasParent:this.toolbarInCanvasParent,items:this.baseToolbarItems}),s||!this.toolbar.isRootConnected()){const r=this.getToolbarMountEl();r&&(this.toolbar.reparentTo(r),this.toolbarMountEl=r)}this.toolbar.syncInParentLayout()}}getToolbarContext(){return{getTheme:()=>{var e;return((e=this.themeSync)==null?void 0:e.getTheme())??"dark"},setTheme:e=>{var t;return(t=this.themeSync)==null?void 0:t.setTheme(e)},getLocale:()=>p.currentLocale,setLocale:e=>this.setLocale(e),getPlacement:()=>this.toolbarPlacement,setPlacement:e=>{this.applyToolbarPlacement(e)}}}rebuildToolbarItems(e,t){if(this.toolbarItemsOverridden){const a=this.resolveBaseToolbarItems(this.toolbarItemsInput);this.baseToolbarItems=this.toolbarLayoutSwitcher?T(a,this.toolbarLayoutSwitcher):a;return}const o=t??this.getMergedToolbarOptions(e);this.toolbarItemsInput=o.items??"default",this.baseToolbarItems=w(o,this.getToolbarContext(),e)}resolveBaseToolbarItems(e){return w({items:e,appendItems:void 0},this.getToolbarContext(),this.activeLayoutKind)}renderToolbarItems(){var e;(e=this.toolbar)==null||e.updateItems(this.baseToolbarItems)}syncLayerToolbarItem(){const e=this.hasLayerToolbarItem,t=f(this.baseToolbarItems,"layer");this.hasLayerToolbarItem=t,t&&!e?(this.ensureLayerCommandRegistered(),this.mountLayerDockUi()):!t&&e&&(this.teardownLayerUi(),this.unregisterLayerCommand())}syncReviewToolbarItem(){const e=this.hasMarkupPanelToolbarItem,t=f(this.baseToolbarItems,"markup-panel");this.hasMarkupPanelToolbarItem=t,t&&!e?(this.ensureMarkupPanelCommandRegistered(),this.mountReviewDockUi()):!t&&e&&(this.teardownReviewUi(),this.unregisterMarkupPanelCommand())}syncMeasurementToolbarItem(){const e=this.hasMeasurementPanelToolbarItem,t=f(this.baseToolbarItems,"measurement-panel");this.hasMeasurementPanelToolbarItem=t,t&&!e?(this.ensureMeasurementPanelCommandRegistered(),this.mountMeasurementDockUi()):!t&&e&&(this.teardownMeasurementUi(),this.unregisterMeasurementPanelCommand())}syncFindToolbarItem(){const e=this.hasFindToolbarItem,t=f(this.baseToolbarItems,"find");this.hasFindToolbarItem=t,t&&!e?(this.ensureFindCommandRegistered(),this.mountFindDockUi()):!t&&e&&(this.teardownFindUi(),this.unregisterFindCommand())}unregisterLayerCommand(){if(!this.commandManager)return;const e=h.SYSTEMT_COMMAND_GROUP_NAME,t=this.registeredCommands.findIndex(o=>o.name==="layer");t!==-1&&(this.commandManager.removeCmd(e,"layer"),this.registeredCommands.splice(t,1))}ensureLayerCommandRegistered(){this.commandManager&&(this.registeredCommands.some(e=>e.name==="layer")||this.registerLayerCommand(this.commandManager))}unregisterMarkupPanelCommand(){if(!this.commandManager)return;const e=h.SYSTEMT_COMMAND_GROUP_NAME,t=this.registeredCommands.findIndex(o=>o.name==="markuppanel");t!==-1&&(this.commandManager.removeCmd(e,"markuppanel"),this.registeredCommands.splice(t,1))}ensureMarkupPanelCommandRegistered(){this.commandManager&&(this.registeredCommands.some(e=>e.name==="markuppanel")||this.registerMarkupPanelCommand(this.commandManager))}unregisterMeasurementPanelCommand(){if(!this.commandManager)return;const e=h.SYSTEMT_COMMAND_GROUP_NAME,t=this.registeredCommands.findIndex(o=>o.name==="measurementpanel");t!==-1&&(this.commandManager.removeCmd(e,"measurementpanel"),this.registeredCommands.splice(t,1))}ensureMeasurementPanelCommandRegistered(){this.commandManager&&(this.registeredCommands.some(e=>e.name==="measurementpanel")||this.registerMeasurementPanelCommand(this.commandManager))}unregisterFindCommand(){if(!this.commandManager)return;const e=h.SYSTEMT_COMMAND_GROUP_NAME,t=this.registeredCommands.findIndex(o=>o.name==="find");t!==-1&&(this.commandManager.removeCmd(e,"find"),this.registeredCommands.splice(t,1))}ensureFindCommandRegistered(){if(!this.commandManager||this.registeredCommands.some(t=>t.name==="find"))return;const e=h.SYSTEMT_COMMAND_GROUP_NAME;this.commandManager.addCommand(e,"find","find",new z({prepare:()=>{this.mountFindDockUi(),this.tryUpgradeDockMountTarget()},toggle:()=>{var t,o;(t=this.dockPanel)==null||t.open(c),(o=this.findPaletteView)==null||o.focus()}})),this.registeredCommands.push({group:e,name:"find"})}registerLayerCommand(e){if(this.registeredCommands.some(o=>o.name==="layer"))return;const t=h.SYSTEMT_COMMAND_GROUP_NAME;e.addCommand(t,"layer","layer",this.createLayerCommand()),this.registeredCommands.push({group:t,name:"layer"})}createLayerCommand(){return new Y({prepare:()=>this.prepareLayerDockForCommand(),toggle:()=>this.layerUiControllerHolder.toggleFromCommand()})}prepareLayerDockForCommand(){this.mountLayerDockUi(),this.tryUpgradeDockMountTarget()}registerMarkupPanelCommand(e){if(this.registeredCommands.some(o=>o.name==="markuppanel"))return;const t=h.SYSTEMT_COMMAND_GROUP_NAME;e.addCommand(t,"markuppanel","markuppanel",this.createMarkupPanelCommand()),this.registeredCommands.push({group:t,name:"markuppanel"})}createMarkupPanelCommand(){return new W({prepare:()=>this.prepareReviewDockForCommand(),toggle:()=>{var e;return(e=this.dockPanel)==null?void 0:e.open(u)}})}prepareReviewDockForCommand(){this.mountReviewDockUi(),this.tryUpgradeDockMountTarget()}registerMeasurementPanelCommand(e){if(this.registeredCommands.some(o=>o.name==="measurementpanel"))return;const t=h.SYSTEMT_COMMAND_GROUP_NAME;e.addCommand(t,"measurementpanel","measurementpanel",this.createMeasurementPanelCommand()),this.registeredCommands.push({group:t,name:"measurementpanel"})}createMeasurementPanelCommand(){return new $({prepare:()=>this.prepareMeasurementDockForCommand(),toggle:()=>{var e;return(e=this.dockPanel)==null?void 0:e.open(m)}})}prepareMeasurementDockForCommand(){this.mountMeasurementDockUi(),this.tryUpgradeDockMountTarget()}ensureDockReady(){var e;if(!this.dockPanel){this.prepareDockPanel();return}this.hasLayerToolbarItem&&!this.dockPanel.hasTab(d)&&this.mountLayerDockUi(),this.hasMarkupPanelToolbarItem&&!this.dockPanel.hasTab(u)&&this.mountReviewDockUi(),this.hasMeasurementPanelToolbarItem&&!this.dockPanel.hasTab(m)&&this.mountMeasurementDockUi(),this.hasFindToolbarItem&&!this.dockPanel.hasTab(c)&&this.mountFindDockUi(),this.tryUpgradeDockMountTarget(),this.dockPanel.ensureMounted(),(e=this.toolbar)==null||e.syncInParentLayout()}prepareDockPanel(){this.hasLayerToolbarItem&&this.mountLayerDockUi(),this.hasMarkupPanelToolbarItem&&this.mountReviewDockUi(),this.hasMeasurementPanelToolbarItem&&this.mountMeasurementDockUi(),this.hasFindToolbarItem&&this.mountFindDockUi(),this.dockPanel||this.ensureDockPanel(),this.tryUpgradeDockMountTarget()}dismissStripsForDockPanel(){var e;(e=this.toolbar)!=null&&e.replaceOnNested&&this.toolbar.dismissOpenChildren()}dismissDockForExclusiveChrome(){var e,t;(e=this.toolbar)!=null&&e.replaceOnNested&&((t=this.dockPanel)==null||t.close())}ensureDockPanel(){const e=this.getDockMountEl();!e||!this.i18n||!this.dockPanelDefaults||this.dockPanel||(this.dockPanel=new A({host:e,t:t=>p.t(t),defaultSide:this.dockPanelDefaults.defaultSide,defaultOpen:this.dockPanelDefaults.defaultOpen,defaultHeight:this.dockPanelDefaults.defaultHeight,defaultWidth:this.dockPanelDefaults.defaultWidth,onOpen:()=>this.dismissStripsForDockPanel()}),this.syncToolbarMountAfterDockChange())}getDockMountEl(){if(this.hostEl)return y(this.hostEl,this.dockPanelMountTargetOption)}tryUpgradeDockMountTarget(){if(this.dockPanelMountTargetOption||!this.hostEl||!this.dockPanel)return;const e=y(this.hostEl),t=this.dockPanel.getMountHost();t!==e&&(t!==this.hostEl||e===this.hostEl||(this.dockPanel.reparentTo(e),this.refreshLayerDockController(),this.syncToolbarMountAfterDockChange()))}refreshLayerDockController(){var e,t;(e=this.dockPanel)!=null&&e.hasTab(d)&&((t=this.layerDockController)==null||t.destroy(),this.layerDockController=new I(this.dockPanel,d),this.layerUiControllerHolder.current=this.layerDockController)}mountLayerDockUi(){if(!(!this.hostEl||!this.i18n||(this.ensureDockPanel(),!this.dockPanel))){if(this.dockPanel.hasTab(d)){this.refreshLayerDockController();return}if(this.layerListView=new x({editor:l.instance,i18n:this.i18n,host:this.hostEl,showHeader:!1}),!this.dockPanel.addTab({id:d,labelKey:"main.dockPanel.tab.layers",content:this.layerListView.element})){this.layerListView.destroy(),this.layerListView=void 0;return}this.layerDockController=new I(this.dockPanel,d),this.layerUiControllerHolder.current=this.layerDockController}}teardownLayerUi(){var e,t,o;(e=this.dockPanel)==null||e.removeTab(d),(t=this.layerListView)==null||t.destroy(),this.layerListView=void 0,(o=this.layerDockController)==null||o.destroy(),this.layerDockController=void 0,this.layerUiControllerHolder.current=void 0,this.destroyDockIfUnused()}mountReviewDockUi(){!this.hostEl||!this.i18n||(this.ensureDockPanel(),!this.dockPanel)||this.dockPanel.hasTab(u)||(this.reviewPaletteView=new _({editor:l.instance,i18n:this.i18n}),this.dockPanel.addTab({id:u,labelKey:"main.dockPanel.tab.review",content:this.reviewPaletteView.element})||(this.reviewPaletteView.destroy(),this.reviewPaletteView=void 0))}teardownReviewUi(){var e,t;(e=this.dockPanel)==null||e.removeTab(u),(t=this.reviewPaletteView)==null||t.destroy(),this.reviewPaletteView=void 0,this.destroyDockIfUnused()}mountMeasurementDockUi(){!this.hostEl||!this.i18n||(this.ensureDockPanel(),!this.dockPanel)||this.dockPanel.hasTab(m)||(this.measurementPaletteView=new N({editor:l.instance,i18n:this.i18n}),this.dockPanel.addTab({id:m,labelKey:"main.dockPanel.tab.measurements",content:this.measurementPaletteView.element})||(this.measurementPaletteView.destroy(),this.measurementPaletteView=void 0))}teardownMeasurementUi(){var e,t;(e=this.dockPanel)==null||e.removeTab(m),(t=this.measurementPaletteView)==null||t.destroy(),this.measurementPaletteView=void 0,this.destroyDockIfUnused()}mountFindDockUi(){!this.hostEl||!this.i18n||(this.ensureDockPanel(),!this.dockPanel)||this.dockPanel.hasTab(c)||(this.findPaletteView=new H({editor:l.instance,i18n:this.i18n}),this.dockPanel.addTab({id:c,labelKey:"main.dockPanel.tab.find",content:this.findPaletteView.element})||(this.findPaletteView.destroy(),this.findPaletteView=void 0))}teardownFindUi(){var e,t;(e=this.dockPanel)==null||e.removeTab(c),(t=this.findPaletteView)==null||t.destroy(),this.findPaletteView=void 0,this.destroyDockIfUnused()}destroyDockIfUnused(){this.dockPanel&&(this.dockPanel.hasTabs||(this.dockPanel.close(),!this.dockPanelExplicitlyEnabled&&(this.dockPanel.destroy(),this.dockPanel=void 0,this.syncToolbarMountAfterDockChange())))}syncToolbarMountAfterDockChange(){if(!this.toolbar||!this.hostEl)return;const e=this.getToolbarMountEl();e&&((e!==this.toolbarMountEl||!this.toolbar.isRootConnected())&&(this.toolbar.reparentTo(e),this.toolbarMountEl=e),this.toolbar.syncInParentLayout())}applyToolbarPlacement(e){var t;this.toolbarPlacement=e,(t=this.toolbar)==null||t.setPlacement(e)}dispose(e){var t,o,a,s,r;const i=e??this.commandManager;if(M.setHost(void 0),(t=this.unsubscribeLayout)==null||t.call(this),this.unsubscribeLayout=void 0,p.events.localeChanged.removeEventListener(this.handleLocaleChanged),l.instance.events.documentActivated.removeEventListener(this.handleDocumentActivatedForDock),i)for(const n of this.registeredCommands)i.removeCmd(n.group,n.name);this.registeredCommands=[],this.teardownLayerUi(),this.teardownReviewUi(),this.teardownMeasurementUi(),this.teardownFindUi(),(o=this.toolbarDocUnbind)==null||o.call(this),this.toolbarDocUnbind=void 0,(a=this.toolbar)==null||a.destroy(),(s=this.dockPanel)==null||s.destroy(),this.toolbar=void 0,this.toolbarMountEl=void 0,this.toolbarMountTargetOption=void 0,this.dockPanel=void 0,this.hostEl=void 0,this.dockPanelMountTargetOption=void 0,this.baseToolbarItems=[],this.toolbarItemsInput="default",this.toolbarItemsOverridden=!1,this.toolbarLayoutSwitcher=void 0,this.hasLayerToolbarItem=!1,this.hasMarkupPanelToolbarItem=!1,this.hasMeasurementPanelToolbarItem=!1,this.hasFindToolbarItem=!1,this.commandManager=void 0,this.i18n=void 0,(r=this.themeSync)==null||r.stop(),this.themeSync=void 0,C.instance.clearSessionOverride("isShowRibbon"),K()}setLocale(e){p.setCurrentLocale(e)}}export{q as AcApSimpleUiChrome};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{_ as at,o as rt,c as ot,t as N,A as Q,V as ht,d as lt,b as ct,z as L,B as tt,C as ut,D as mt,E as et,G as xt,H as gt,I as ft,J as pt,K as H,L as dt,M as O,N as W,O as yt,P as bt,Q as vt,R as B,S as w,T as p,X as E,Y as T,Z as wt,$ as St}from"./index-DIn0aEGh.js";import{a0 as Me,a1 as Ce}from"./index-DIn0aEGh.js";const k=1e10;function _t(r){return Math.max(r.maxX-r.minX,r.maxY-r.minY)>=k?!0:Math.abs(r.minX)>=k||Math.abs(r.minY)>=k||Math.abs(r.maxX)>=k||Math.abs(r.maxY)>=k}function it(r){return r.isEmpty()?!1:Number.isFinite(r.min.x)&&Number.isFinite(r.min.y)&&Number.isFinite(r.max.x)&&Number.isFinite(r.max.y)}function Tt(r){const t=[];for(const l of r)it(l)&&t.push({minX:l.min.x,minY:l.min.y,maxX:l.max.x,maxY:l.max.y});if(t.length===0)return new L;const e=t.filter(l=>!_t(l));if(e.length===0)return new L;const i=e.map(l=>Math.max(l.maxX-l.minX,l.maxY-l.minY,1e-9));i.sort((l,c)=>l-c);const s=i[Math.floor(i.length/2)]||1,n=Math.max(s*50,k),a=[];for(const l of e)Math.max(l.maxX-l.minX,l.maxY-l.minY)<n&&a.push(l);if(a.length===0)return new L;const o=Lt(a),h=Mt(o.length>0?o:a);return h?new L({x:h.minX,y:h.minY},{x:h.maxX,y:h.maxY}):new L}function Lt(r){if(r.length<2)return r;const t=r.map(c=>({x:(c.minX+c.maxX)/2,y:(c.minY+c.maxY)/2,box:c})),e=t.map(c=>c.x).sort((c,m)=>c-m),i=t.map(c=>c.y).sort((c,m)=>c-m),s=e[Math.floor(e.length/2)],n=i[Math.floor(i.length/2)],a=r.map(c=>Math.max(c.maxX-c.minX,c.maxY-c.minY,1e-9));a.sort((c,m)=>c-m);const o=a[Math.floor(a.length/2)]||1,h=Math.max(o*50,k),l=t.filter(c=>Math.hypot(c.x-s,c.y-n)<=h);return l.length>0?l.map(c=>c.box):r}function D(r,t){if(r.length<8)return r;const e=r.map(u=>({value:t==="x"?(u.minX+u.maxX)/2:(u.minY+u.maxY)/2,box:u})).sort((u,d)=>u.value-d.value),i=e[e.length-1].value-e[0].value;if(!(i>0))return r;let s=0,n=0;for(let u=1;u<e.length;u++){const d=e[u].value-e[u-1].value;d>s&&(s=d,n=u)}if(s<i*.2)return r;const a=e.slice(0,n),o=e.slice(n),h=a.length>=o.length?a:o,l=r.map(u=>Math.max(u.maxX-u.minX,u.maxY-u.minY,1e-9));l.sort((u,d)=>u-d);const c=l[Math.floor(l.length/2)]||1,m=[];for(let u=1;u<h.length;u++)m.push(h[u].value-h[u-1].value);m.sort((u,d)=>u-d);const f=m.length>0&&m[Math.floor(m.length/2)]||c,x=Math.max(f*10,c*20);return s<x?r:h.map(u=>u.box)}function G(r){if(r.length===0)return null;let t=1/0,e=1/0,i=-1/0,s=-1/0;for(const n of r)t=Math.min(t,n.minX),e=Math.min(e,n.minY),i=Math.max(i,n.maxX),s=Math.max(s,n.maxY);return{minX:t,minY:e,maxX:i,maxY:s}}function Mt(r){if(r.length===0)return null;const t=G(r);if(r.length<8)return t;let e=r.slice(),i=-1;for(;e.length!==i;)i=e.length,e=D(e,"x"),e=D(e,"y");return G(e)??t}class V{static toSvgTransform(t){const e=t.elements;return`matrix(${e[0]},${e[1]},${e[4]},${e[5]},${e[12]},${e[13]})`}static transformPoint(t,e){const i=t.elements,s=e.x,n=e.y,a=e.z??0,o=i[3]*s+i[7]*n+i[11]*a+i[15],h=o===0?1:1/o;return{x:(i[0]*s+i[4]*n+i[8]*a+i[12])*h,y:(i[1]*s+i[5]*n+i[9]*a+i[13])*h}}static transformBox(t,e){if(t.isEmpty())return;const i=t.min,s=t.max;if(!Number.isFinite(i.x)||!Number.isFinite(i.y)||!Number.isFinite(s.x)||!Number.isFinite(s.y)){t.makeEmpty();return}const n=[{x:i.x,y:i.y,z:0},{x:s.x,y:i.y,z:0},{x:s.x,y:s.y,z:0},{x:i.x,y:s.y,z:0}];let a=1/0,o=1/0,h=-1/0,l=-1/0;for(const c of n){const m=this.transformPoint(e,c);if(!Number.isFinite(m.x)||!Number.isFinite(m.y)){t.makeEmpty();return}a=Math.min(a,m.x),o=Math.min(o,m.y),h=Math.max(h,m.x),l=Math.max(l,m.y)}t.min.set(a,o),t.max.set(h,l)}}class y{constructor(){this._objectId="",this._ownerId="",this._layerName="",this._visible=!0,this._userData={},this._box=new L,this._localSvg="",this._children=[]}get box(){return this._box}set box(t){this._box.copy(t)}get basePoint(){return this._basePoint}set basePoint(t){t==null?this._basePoint=t:this._basePoint=this._basePoint?this._basePoint.copy(t):new yt(t)}get svg(){return this.renderSvg()}set svg(t){this._localSvg=t}getLocalSvg(){return this._localSvg}get childCount(){return this._children.length}renderSvg(){const t=[];this._localSvg&&t.push(this._localSvg);for(const i of this._children){const s=i.renderSvg();s&&t.push(s)}const e=t.join(`
|
|
2
2
|
`);return e?this._matrix?`<g transform="${V.toSvgTransform(this._matrix)}">
|
|
3
3
|
${e}
|
|
4
4
|
</g>`:e:""}get objectId(){return this._objectId}set objectId(t){this._objectId=t}get ownerId(){return this._ownerId}set ownerId(t){this._ownerId=t}get layerName(){return this._layerName}set layerName(t){this._layerName=t}get visible(){return this._visible}set visible(t){this._visible=t}get userData(){return this._userData}set userData(t){this._userData=t}applyMatrix(t){this._matrix?this._matrix=t.clone().multiply(this._matrix):this._matrix=t.clone(),this.transformBoxesRecursive(t)}transformBoxesRecursive(t){V.transformBox(this._box,t);for(const e of this._children)e.transformBoxesRecursive(t)}recomputeBoundingBox(){}highlight(){}unhighlight(){}fastDeepClone(){const t=new y;t._objectId=this._objectId,t._ownerId=this._ownerId,t._layerName=this._layerName,t._visible=this._visible,t._userData=this._userData,t._localSvg=this._localSvg,t._box.copy(this._box),this._matrix&&(t._matrix=this._matrix.clone()),this._basePoint&&(t._basePoint=this._basePoint.clone());for(const e of this._children)t._children.push(e.fastDeepClone());return t}addChild(t){t instanceof y&&(this._children.push(t),it(t.box)&&this._box.union(t.box))}}class g{static rgbToHex(t){const e=t>>16&255,i=t>>8&255,s=t&255;return`#${e.toString(16).padStart(2,"0")}${i.toString(16).padStart(2,"0")}${s.toString(16).padStart(2,"0")}`}static resolveRgb(t,e,i){return t.isBackgroundFill||i==="fill"&&t.color.isForeground&&this.isSolidBackgroundHatch(t)?e.backgroundColor:tt.fromBackgroundColor(e.backgroundColor).resolveSubEntityTraitsRgb(t)}static strokeAttributes(t,e){const i={stroke:this.rgbToHex(this.resolveRgb(t,e,"line")),fill:"none"};if(!e.showLineWeight)i["stroke-width"]="1",i["vector-effect"]="non-scaling-stroke";else{const a=this.resolveStrokeWidth(t.lineWeight);a!=null&&(i["stroke-width"]=String(a))}const s=this.resolveOpacity(t);s!=null&&s<1&&(i["stroke-opacity"]=String(s));const n=this.strokeDasharray(t,e);return n&&(i["stroke-dasharray"]=n),i}static fillAttributes(t,e){const i={fill:this.rgbToHex(this.resolveRgb(t,e,"fill")),stroke:"none"},s=this.resolveOpacity(t);return s!=null&&s<1&&(i["fill-opacity"]=String(s)),i}static textAttributes(t,e){const i={fill:this.rgbToHex(this.resolveRgb(t,e,"text")),stroke:"none"},s=this.resolveOpacity(t);return s!=null&&s<1&&(i["fill-opacity"]=String(s)),i}static pointAttributes(t,e){return this.textAttributes(t,e)}static formatAttributes(t){return Object.entries(t).map(([e,i])=>`${e}="${Ct(i)}"`).join(" ")}static tag(t,e,i){const s=this.formatAttributes(e);return i==null?`<${t} ${s}/>`:`<${t} ${s}>${i}</${t}>`}static isSolidBackgroundHatch(t){if((t.drawOrder??0)>=0)return!1;const e=t.fillType;return e.gradient?!1:!e.definitionLines||e.definitionLines.length===0}static resolveStrokeWidth(t){return t<0?null:Math.max(.01,t/100)}static resolveOpacity(t){const e=t.transparency;if(!(e!=null&&e.isByAlpha))return null;const i=e.alpha;return i==null||Number.isNaN(i)||i<=0?null:Math.min(1,Math.max(0,i/255))}static strokeDasharray(t,e){const i=t.lineType.pattern;if(!i||i.length===0)return;const s=e.ltscale*e.celtscale*t.lineTypeScale,n=this.patternToDashSegments(i,s);if(n.length!==0)return n.join(" ")}static patternToDashSegments(t,e){const i=[];for(const s of t){let n=s.elementLength;n<0&&s.elementTypeFlag!==0&&(n=Math.abs(n)),n*=e,n===0&&(n=.5*e),i.push(Math.abs(n))}return i}}function Ct(r){return r.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<")}class At extends y{constructor(t,e,i,s){super();const n=t.tessellate(s);let a="";for(const o of n){if(o.length===0)continue;const[h,...l]=o;a+=`M${h.x},${h.y}`;for(const c of l)a+=` L${c.x},${c.y}`;a+=" Z";for(const c of o)this._box.expandByPoint(c)}if(a){const o={d:a,"fill-rule":"evenodd",...g.fillAttributes(e,i)};this.svg=g.tag("path",o)}}}class kt extends y{constructor(t,e,i,s){super();const n=t.tessellate(s),a=n.reduce((o,h,l)=>(o+=l===0?"M":"L",o+=`${h.x},${h.y}`,o),"");if(a){const o={d:a,...g.strokeAttributes(e,i)};this.svg=g.tag("path",o)}for(const o of n)this._box.expandByPoint(o)}}class Ft extends y{constructor(t,e,i,s){super();const n=t.tessellate(s),a=n.reduce((o,h,l)=>(o+=l===0?"M":"L",o+=`${h.x},${h.y}`,o),"");if(a){const o={d:a,...g.strokeAttributes(e,i)};this.svg=g.tag("path",o)}for(const o of n)this._box.expandByPoint(o)}}class F{static isSafeEmbeddedUrl(t){const e=t.trim();return e.startsWith("data:")||e.startsWith("#")}static sanitizeExternalReferences(t){return t.replace(/<(?:image|use)\b[^>]*\s(?:xlink:)?href="(?!data:|#)[^"]*"[^>]*\/?>\s*/gi,"")}static stripInvalidXmlChars(t){return t.replace(/[\u0000-\u0008\u000B\u000C\u000E-\u001F\uFFFE\uFFFF]/g,"")}static escapeXml(t){return F.stripInvalidXmlChars(t).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}static async rasterizeSvgDataUrl(t){return typeof document>"u"?t:new Promise((e,i)=>{const s=new Image;s.onload=()=>{const n=Math.max(1,s.naturalWidth||1),a=Math.max(1,s.naturalHeight||1),o=document.createElement("canvas");o.width=n,o.height=a;const h=o.getContext("2d");if(!h){i(new Error("Canvas 2D context unavailable"));return}h.drawImage(s,0,0,n,a),e(o.toDataURL("image/png"))},s.onerror=()=>i(new Error("Failed to rasterize embedded SVG image")),s.src=t})}}class Pt extends y{constructor(t){super();for(const e of t)this.addChild(e)}}class X extends y{constructor(t,e,i,s){super();const{boundary:n}=e;if(n.length<2||!F.isSafeEmbeddedUrl(t))return;let a=1/0,o=1/0,h=-1/0,l=-1/0;for(const x of n)x.x<a&&(a=x.x),x.y<o&&(o=x.y),x.x>h&&(h=x.x),x.y>l&&(l=x.y),this._box.expandByPoint(x);const c=h-a,m=l-o,f=Yt(t);this._localSvg=`<image x="${a}" y="${o}" width="${c}" height="${m}" href="${f}" xlink:href="${f}" transform="scale(1,-1) translate(0,${-(o*2+m)})"/>`}static async fromBlob(t,e,i,s){let n=await Rt(t);if(t.type==="image/svg+xml"||n.startsWith("data:image/svg+xml"))try{n=await F.rasterizeSvgDataUrl(n)}catch{return new X("",e,i,s)}return new X(n,e,i,s)}}function Rt(r){return new Promise((t,e)=>{const i=new FileReader;i.onload=()=>t(i.result),i.onerror=e,i.readAsDataURL(r)})}function Yt(r){return r.replace(/&/g,"&").replace(/"/g,""")}class Bt extends y{constructor(t,e,i){super();const s=t.reduce((n,a,o)=>(n+=o===0?"M":"L",n+=a.x+","+a.y,this.box.expandByPoint(a),n),"");if(s){const n={d:s,...g.strokeAttributes(e,i)};this.svg=g.tag("path",n)}}}class Et extends y{constructor(t,e,i,s,n){super();const a=g.strokeAttributes(s,n),o=[];for(let h=0;h+1<i.length;h+=2){const l=i[h]*e,c=i[h+1]*e,m=t[l],f=t[l+1],x=t[c],u=t[c+1];o.push(g.tag("line",{x1:String(m),y1:String(f),x2:String(x),y2:String(u),...a})),this._box.expandByPoint({x:m,y:f}),this._box.expandByPoint({x,y:u})}this.svg=o.join(`
|
|
@@ -13,4 +13,4 @@ ${o}
|
|
|
13
13
|
<g transform="matrix(1,0,0,-1,0,0)">
|
|
14
14
|
${e}
|
|
15
15
|
</g>
|
|
16
|
-
</svg>`);return F.stripInvalidXmlChars(h)}buildBackgroundRect(t){const e=g.rgbToHex(this._currentBackgroundColor),i=Math.max(t.width,1),s=Math.max(t.height,1);return` <rect x="${t.x}" y="${t.y}" width="${i}" height="${s}" fill="${e}"/>`}}const ge=new y;function fe(r,t){const e=Z(r),i=Z(t);if(e!==i||e<2)return null;const s=new Array(e+1);for(let a=0;a<e;a++){const o=r[a],h=t[a];s[a]={x:(o.x+h.x)*.5,y:(o.y+h.y)*.5,z:((o.z??0)+(h.z??0))*.5}}const n=s[0];return s[e]={x:n.x,y:n.y,z:n.z},s}function Z(r){const t=r.length;return t>1&&r[0].x===r[t-1].x&&r[0].y===r[t-1].y?t-1:t}const pe=200;class de{async convert(t){await ot.instance.withBusyIndicator(async()=>{await N(),J.prepareExport();const e=t.doc.database.tables.blockTable.modelSpace.newIterator(),i=new J;this.configureRenderer(i,t);const s=new Q(pe),n=()=>new Promise(l=>setTimeout(l,0)),a=[];for(const l of e){const c=l.worldDraw(i);c instanceof y&&a.push(c),await s.maybeYield(n)}await N();const o=await i.exportAsync(a);await N();const h=ht(t.doc.fileName||t.doc.docTitle,"svg");this.createFileAndDownloadIt(o,h)},lt.t("main.message.exportingSvg"))}configureRenderer(t,e){const i=e.doc.database;t.ltscale=i.ltscale,t.celtscale=i.celtscale,t.showLineWeight=!!i.lwdisplay,t.setFontMapping(ct.instance.fontMapping);const s=e.view,n=(s==null?void 0:s.backgroundColor)??16777215;t.currentBackgroundColor=n,t.changeForeground(n===0?16777215:0)}createFileAndDownloadIt(t,e){const i=new Blob([t],{type:"image/svg+xml;charset=utf-8"}),s=URL.createObjectURL(i),n=document.createElement("a");n.href=s,n.download=e,document.body.appendChild(n),n.click(),document.body.removeChild(n),window.setTimeout(()=>URL.revokeObjectURL(s),6e4)}}class ye extends rt{async execute(t){await new de().convert(t)}}const be="1.8.0-preview.
|
|
16
|
+
</svg>`);return F.stripInvalidXmlChars(h)}buildBackgroundRect(t){const e=g.rgbToHex(this._currentBackgroundColor),i=Math.max(t.width,1),s=Math.max(t.height,1);return` <rect x="${t.x}" y="${t.y}" width="${i}" height="${s}" fill="${e}"/>`}}const ge=new y;function fe(r,t){const e=Z(r),i=Z(t);if(e!==i||e<2)return null;const s=new Array(e+1);for(let a=0;a<e;a++){const o=r[a],h=t[a];s[a]={x:(o.x+h.x)*.5,y:(o.y+h.y)*.5,z:((o.z??0)+(h.z??0))*.5}}const n=s[0];return s[e]={x:n.x,y:n.y,z:n.z},s}function Z(r){const t=r.length;return t>1&&r[0].x===r[t-1].x&&r[0].y===r[t-1].y?t-1:t}const pe=200;class de{async convert(t){await ot.instance.withBusyIndicator(async()=>{await N(),J.prepareExport();const e=t.doc.database.tables.blockTable.modelSpace.newIterator(),i=new J;this.configureRenderer(i,t);const s=new Q(pe),n=()=>new Promise(l=>setTimeout(l,0)),a=[];for(const l of e){const c=l.worldDraw(i);c instanceof y&&a.push(c),await s.maybeYield(n)}await N();const o=await i.exportAsync(a);await N();const h=ht(t.doc.fileName||t.doc.docTitle,"svg");this.createFileAndDownloadIt(o,h)},lt.t("main.message.exportingSvg"))}configureRenderer(t,e){const i=e.doc.database;t.ltscale=i.ltscale,t.celtscale=i.celtscale,t.showLineWeight=!!i.lwdisplay,t.setFontMapping(ct.instance.fontMapping);const s=e.view,n=(s==null?void 0:s.backgroundColor)??16777215;t.currentBackgroundColor=n,t.changeForeground(n===0?16777215:0)}createFileAndDownloadIt(t,e){const i=new Blob([t],{type:"image/svg+xml;charset=utf-8"}),s=URL.createObjectURL(i),n=document.createElement("a");n.href=s,n.download=e,document.body.appendChild(n),n.click(),document.body.removeChild(n),window.setTimeout(()=>URL.revokeObjectURL(s),6e4)}}class ye extends rt{async execute(t){await new de().convert(t)}}const be="1.8.0-preview.4",ve={version:be};class we{constructor(){this.name="SvgPlugin",this.version=ve.version,this.description="SVG export (csvg) command",this.registeredCommands=[]}onLoad(t,e){const i=at.SYSTEMT_COMMAND_GROUP_NAME;e.addCommand(i,"csvg","csvg",new ye),this.registeredCommands.push({group:i,name:"csvg"})}onUnload(t,e){for(const i of this.registeredCommands)e.removeCmd(i.group,i.name);this.registeredCommands=[]}}async function _e(){return new we}export{ye as AcApConvertToSvgCmd,de as AcApSvgConvertor,J as AcSvgRenderer,Me as SVG_PLUGIN_NAME,Ce as SVG_PLUGIN_TRIGGERS,_e as createSvgPlugin};
|