@frangoteam/fuxa-min 1.1.19
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 -0
- package/README.md +41 -0
- package/_images/Pipes/P1.svg +39 -0
- package/_images/Tanks/Fl.svg +7 -0
- package/api/alarms/index.js +132 -0
- package/api/auth/index.js +71 -0
- package/api/command/index.js +187 -0
- package/api/daq/index.js +79 -0
- package/api/diagnose/index.js +163 -0
- package/api/index.js +181 -0
- package/api/jwt-helper.js +106 -0
- package/api/plugins/index.js +109 -0
- package/api/projects/index.js +229 -0
- package/api/resources/index.js +118 -0
- package/api/scripts/index.js +82 -0
- package/api/users/index.js +109 -0
- package/dist/3rdpartylicenses.txt +1477 -0
- package/dist/Quicksand-Bold.071154c292aef0b8.woff +0 -0
- package/dist/Quicksand-Bold.6383d6475ed5c40f.woff2 +0 -0
- package/dist/Quicksand-Bold.f07d467887f9cfab.ttf +0 -0
- package/dist/Quicksand-Medium.0982a651e8d4315f.woff +0 -0
- package/dist/Quicksand-Medium.9d2733fbfb9b1be8.ttf +0 -0
- package/dist/Quicksand-Medium.b09302365c586eb2.woff2 +0 -0
- package/dist/Quicksand-Regular.16adf9eecd267273.woff +0 -0
- package/dist/Quicksand-Regular.78819724f6aeff59.woff2 +0 -0
- package/dist/Quicksand-Regular.8829564f0e14bf76.ttf +0 -0
- package/dist/assets/fonts/icomoon.eot +0 -0
- package/dist/assets/fonts/icomoon.svg +19 -0
- package/dist/assets/fonts/icomoon.ttf +0 -0
- package/dist/assets/fonts/icomoon.woff +0 -0
- package/dist/assets/fonts/myicons.eot +0 -0
- package/dist/assets/fonts/myicons.svg +19 -0
- package/dist/assets/fonts/myicons.ttf +0 -0
- package/dist/assets/fonts/myicons.woff +0 -0
- package/dist/assets/fonts/quicksand-bold/Quicksand-Bold.ttf +0 -0
- package/dist/assets/fonts/quicksand-bold/Quicksand-Bold.woff +0 -0
- package/dist/assets/fonts/quicksand-bold/Quicksand-Bold.woff2 +0 -0
- package/dist/assets/fonts/quicksand-medium/Quicksand-Medium.ttf +0 -0
- package/dist/assets/fonts/quicksand-medium/Quicksand-Medium.woff +0 -0
- package/dist/assets/fonts/quicksand-medium/Quicksand-Medium.woff2 +0 -0
- package/dist/assets/fonts/quicksand-regular/Quicksand-Regular.ttf +0 -0
- package/dist/assets/fonts/quicksand-regular/Quicksand-Regular.woff +0 -0
- package/dist/assets/fonts/quicksand-regular/Quicksand-Regular.woff2 +0 -0
- package/dist/assets/fonts/roboto-bold/roboto-bold-webfont.svg +10486 -0
- package/dist/assets/fonts/roboto-bold/roboto-bold-webfont.ttf +0 -0
- package/dist/assets/fonts/roboto-bold/roboto-bold-webfont.woff +0 -0
- package/dist/assets/fonts/roboto-bold/roboto-bold-webfont.woff2 +0 -0
- package/dist/assets/fonts/roboto-light/roboto-light-webfont.svg +9998 -0
- package/dist/assets/fonts/roboto-light/roboto-light-webfont.ttf +0 -0
- package/dist/assets/fonts/roboto-light/roboto-light-webfont.woff +0 -0
- package/dist/assets/fonts/roboto-light/roboto-light-webfont.woff2 +0 -0
- package/dist/assets/fonts/roboto-medium/roboto-medium-webfont.svg +10487 -0
- package/dist/assets/fonts/roboto-medium/roboto-medium-webfont.ttf +0 -0
- package/dist/assets/fonts/roboto-medium/roboto-medium-webfont.woff +0 -0
- package/dist/assets/fonts/roboto-medium/roboto-medium-webfont.woff2 +0 -0
- package/dist/assets/fonts/roboto-regular/roboto-regular-webfont.svg +10004 -0
- package/dist/assets/fonts/roboto-regular/roboto-regular-webfont.ttf +0 -0
- package/dist/assets/fonts/roboto-regular/roboto-regular-webfont.woff +0 -0
- package/dist/assets/fonts/roboto-regular/roboto-regular-webfont.woff2 +0 -0
- package/dist/assets/fonts/roboto-thin/roboto-thin-webfont.svg +10012 -0
- package/dist/assets/fonts/roboto-thin/roboto-thin-webfont.ttf +0 -0
- package/dist/assets/fonts/roboto-thin/roboto-thin-webfont.woff +0 -0
- package/dist/assets/fonts/roboto-thin/roboto-thin-webfont.woff2 +0 -0
- package/dist/assets/i18n/de.json +1308 -0
- package/dist/assets/i18n/en.json +1438 -0
- package/dist/assets/i18n/es.json +777 -0
- package/dist/assets/i18n/fr.json +1129 -0
- package/dist/assets/i18n/ko.json +774 -0
- package/dist/assets/i18n/pt.json +657 -0
- package/dist/assets/i18n/ru.json +1228 -0
- package/dist/assets/i18n/tr.json +673 -0
- package/dist/assets/i18n/ua.json +614 -0
- package/dist/assets/i18n/zh-cn.json +1252 -0
- package/dist/assets/images/align-bottom.svg +88 -0
- package/dist/assets/images/align-center.svg +86 -0
- package/dist/assets/images/align-left.svg +86 -0
- package/dist/assets/images/align-middle.svg +88 -0
- package/dist/assets/images/align-right.svg +88 -0
- package/dist/assets/images/align-top.svg +88 -0
- package/dist/assets/images/bag.svg +115 -0
- package/dist/assets/images/button.svg +22 -0
- package/dist/assets/images/chart.svg +17 -0
- package/dist/assets/images/circle.svg +84 -0
- package/dist/assets/images/compressor-a.svg +2 -0
- package/dist/assets/images/editvalue.svg +14 -0
- package/dist/assets/images/ellipse.svg +84 -0
- package/dist/assets/images/flip-orizontal.svg +86 -0
- package/dist/assets/images/flip-vertical.svg +82 -0
- package/dist/assets/images/gauge-donut.png +0 -0
- package/dist/assets/images/gauge-mat.png +0 -0
- package/dist/assets/images/gauge-zone.png +0 -0
- package/dist/assets/images/graphbar.svg +18 -0
- package/dist/assets/images/group.svg +91 -0
- package/dist/assets/images/iframe.svg +54 -0
- package/dist/assets/images/image.svg +95 -0
- package/dist/assets/images/led-circle.svg +77 -0
- package/dist/assets/images/line.svg +86 -0
- package/dist/assets/images/linecap-butt.svg +77 -0
- package/dist/assets/images/linecap-round.svg +77 -0
- package/dist/assets/images/linecap-square.svg +82 -0
- package/dist/assets/images/linejoin-bevel.svg +77 -0
- package/dist/assets/images/linejoin-miter.svg +77 -0
- package/dist/assets/images/linejoin-round.svg +77 -0
- package/dist/assets/images/logo.svg +18 -0
- package/dist/assets/images/path.svg +100 -0
- package/dist/assets/images/pencil.svg +98 -0
- package/dist/assets/images/pipe.svg +15 -0
- package/dist/assets/images/progress-v.svg +79 -0
- package/dist/assets/images/rect.svg +84 -0
- package/dist/assets/images/select-pointer.svg +93 -0
- package/dist/assets/images/selectvalue.svg +14 -0
- package/dist/assets/images/semaphore.svg +19 -0
- package/dist/assets/images/slider.svg +17 -0
- package/dist/assets/images/switch.svg +15 -0
- package/dist/assets/images/table.svg +55 -0
- package/dist/assets/images/text.svg +294 -0
- package/dist/assets/images/to-bottom.svg +163 -0
- package/dist/assets/images/to-path.svg +94 -0
- package/dist/assets/images/to-top.svg +163 -0
- package/dist/assets/images/to_top.svg +88 -0
- package/dist/assets/images/todelete.svg +13 -0
- package/dist/assets/images/ungroup.svg +108 -0
- package/dist/assets/images/value.svg +81 -0
- package/dist/assets/images/valve-a.svg +2 -0
- package/dist/assets/images/webcam.svg +16 -0
- package/dist/assets/lib/ext-styles.css +28 -0
- package/dist/assets/lib/gauge/gauge.js +988 -0
- package/dist/assets/lib/gauge/gauge.min.js +1 -0
- package/dist/assets/lib/nouislider/nouislider.min.css +1 -0
- package/dist/assets/lib/nouislider/nouislider.min.js +1 -0
- package/dist/assets/lib/numeral/locales.min.js +7 -0
- package/dist/assets/lib/numeral/numeral.min.js +8 -0
- package/dist/assets/lib/pdfkit-table/index.js +967 -0
- package/dist/assets/lib/svg/raphael.min.js +1 -0
- package/dist/assets/lib/svg/svg.js +5573 -0
- package/dist/assets/lib/svg/svg.min.js +13 -0
- package/dist/assets/lib/svgeditor/extensions/ext-bundle.min.js +1 -0
- package/dist/assets/lib/svgeditor/extensions/ext-html_button.min.css +1 -0
- package/dist/assets/lib/svgeditor/fuxa-editor.min.js +23 -0
- package/dist/assets/lib/svgeditor/jquery-plugin.min.css +2 -0
- package/dist/assets/lib/svgeditor/jquery-plugin.min.js +52 -0
- package/dist/assets/lib/svgeditor/jquery-ui-1.8.17.custom.min.js +54 -0
- package/dist/assets/lib/svgeditor/jquery.min.js +4 -0
- package/dist/assets/lib/svgeditor/shapes/ape-shapes.js +39 -0
- package/dist/assets/lib/svgeditor/shapes/img/agitator-disc.svg +17 -0
- package/dist/assets/lib/svgeditor/shapes/img/agitator-paddle.svg +16 -0
- package/dist/assets/lib/svgeditor/shapes/img/agitator-prop.svg +15 -0
- package/dist/assets/lib/svgeditor/shapes/img/agitator-turbo.svg +19 -0
- package/dist/assets/lib/svgeditor/shapes/img/anim-eli.svg +13 -0
- package/dist/assets/lib/svgeditor/shapes/img/anim-piston.svg +14 -0
- package/dist/assets/lib/svgeditor/shapes/img/centrifugal.svg +68 -0
- package/dist/assets/lib/svgeditor/shapes/img/centrifugal1.svg +67 -0
- package/dist/assets/lib/svgeditor/shapes/img/centrifuge1.svg +67 -0
- package/dist/assets/lib/svgeditor/shapes/img/centrifuge2.svg +16 -0
- package/dist/assets/lib/svgeditor/shapes/img/centrifuge3.svg +16 -0
- package/dist/assets/lib/svgeditor/shapes/img/centrifuge4.svg +16 -0
- package/dist/assets/lib/svgeditor/shapes/img/compair.svg +92 -0
- package/dist/assets/lib/svgeditor/shapes/img/compdiaph.svg +16 -0
- package/dist/assets/lib/svgeditor/shapes/img/compejector.svg +16 -0
- package/dist/assets/lib/svgeditor/shapes/img/compreci.svg +17 -0
- package/dist/assets/lib/svgeditor/shapes/img/compreci2.svg +68 -0
- package/dist/assets/lib/svgeditor/shapes/img/compressor-fan.svg +18 -0
- package/dist/assets/lib/svgeditor/shapes/img/compressor-piston.svg +16 -0
- package/dist/assets/lib/svgeditor/shapes/img/compressor-void.svg +16 -0
- package/dist/assets/lib/svgeditor/shapes/img/compring.svg +72 -0
- package/dist/assets/lib/svgeditor/shapes/img/compring2.svg +72 -0
- package/dist/assets/lib/svgeditor/shapes/img/comprotary.svg +16 -0
- package/dist/assets/lib/svgeditor/shapes/img/comprotary2.svg +18 -0
- package/dist/assets/lib/svgeditor/shapes/img/compscrew.svg +16 -0
- package/dist/assets/lib/svgeditor/shapes/img/compsilence.svg +20 -0
- package/dist/assets/lib/svgeditor/shapes/img/compturbo.svg +72 -0
- package/dist/assets/lib/svgeditor/shapes/img/crusher1.svg +16 -0
- package/dist/assets/lib/svgeditor/shapes/img/crusher2.svg +16 -0
- package/dist/assets/lib/svgeditor/shapes/img/crusher3.svg +16 -0
- package/dist/assets/lib/svgeditor/shapes/img/crusher4.svg +17 -0
- package/dist/assets/lib/svgeditor/shapes/img/crusher5.svg +18 -0
- package/dist/assets/lib/svgeditor/shapes/img/crusher6.svg +16 -0
- package/dist/assets/lib/svgeditor/shapes/img/crusher7.svg +21 -0
- package/dist/assets/lib/svgeditor/shapes/img/diaph.svg +16 -0
- package/dist/assets/lib/svgeditor/shapes/img/drier1.svg +63 -0
- package/dist/assets/lib/svgeditor/shapes/img/drier2.svg +17 -0
- package/dist/assets/lib/svgeditor/shapes/img/drier3.svg +23 -0
- package/dist/assets/lib/svgeditor/shapes/img/drier4.svg +18 -0
- package/dist/assets/lib/svgeditor/shapes/img/drier5.svg +16 -0
- package/dist/assets/lib/svgeditor/shapes/img/exchanger-filter.svg +16 -0
- package/dist/assets/lib/svgeditor/shapes/img/exchanger-heat.svg +16 -0
- package/dist/assets/lib/svgeditor/shapes/img/exchanger-tube.svg +16 -0
- package/dist/assets/lib/svgeditor/shapes/img/exchanger1.svg +67 -0
- package/dist/assets/lib/svgeditor/shapes/img/exchanger2.svg +16 -0
- package/dist/assets/lib/svgeditor/shapes/img/exchanger3.svg +15 -0
- package/dist/assets/lib/svgeditor/shapes/img/exchanger4.svg +15 -0
- package/dist/assets/lib/svgeditor/shapes/img/exchanger5.svg +16 -0
- package/dist/assets/lib/svgeditor/shapes/img/exchanger6.svg +71 -0
- package/dist/assets/lib/svgeditor/shapes/img/exchanger7.svg +16 -0
- package/dist/assets/lib/svgeditor/shapes/img/exchanger8.svg +16 -0
- package/dist/assets/lib/svgeditor/shapes/img/exchanger9.svg +16 -0
- package/dist/assets/lib/svgeditor/shapes/img/feeder.svg +17 -0
- package/dist/assets/lib/svgeditor/shapes/img/feeder2.svg +16 -0
- package/dist/assets/lib/svgeditor/shapes/img/feeder3.svg +63 -0
- package/dist/assets/lib/svgeditor/shapes/img/filter2.svg +68 -0
- package/dist/assets/lib/svgeditor/shapes/img/filter3.svg +17 -0
- package/dist/assets/lib/svgeditor/shapes/img/fitting1.svg +67 -0
- package/dist/assets/lib/svgeditor/shapes/img/fitting10.svg +16 -0
- package/dist/assets/lib/svgeditor/shapes/img/fitting11.svg +17 -0
- package/dist/assets/lib/svgeditor/shapes/img/fitting12.svg +16 -0
- package/dist/assets/lib/svgeditor/shapes/img/fitting13.svg +15 -0
- package/dist/assets/lib/svgeditor/shapes/img/fitting2.svg +15 -0
- package/dist/assets/lib/svgeditor/shapes/img/fitting3.svg +17 -0
- package/dist/assets/lib/svgeditor/shapes/img/fitting4.svg +16 -0
- package/dist/assets/lib/svgeditor/shapes/img/fitting5.svg +16 -0
- package/dist/assets/lib/svgeditor/shapes/img/fitting6.svg +16 -0
- package/dist/assets/lib/svgeditor/shapes/img/fitting7.svg +15 -0
- package/dist/assets/lib/svgeditor/shapes/img/fitting8.svg +15 -0
- package/dist/assets/lib/svgeditor/shapes/img/fitting9.svg +15 -0
- package/dist/assets/lib/svgeditor/shapes/img/misc1.svg +75 -0
- package/dist/assets/lib/svgeditor/shapes/img/misc2.svg +71 -0
- package/dist/assets/lib/svgeditor/shapes/img/misc3.svg +15 -0
- package/dist/assets/lib/svgeditor/shapes/img/misc4.svg +16 -0
- package/dist/assets/lib/svgeditor/shapes/img/misc5.svg +16 -0
- package/dist/assets/lib/svgeditor/shapes/img/misc6.svg +15 -0
- package/dist/assets/lib/svgeditor/shapes/img/misc7.svg +64 -0
- package/dist/assets/lib/svgeditor/shapes/img/misc8.svg +15 -0
- package/dist/assets/lib/svgeditor/shapes/img/motor-simb.svg +17 -0
- package/dist/assets/lib/svgeditor/shapes/img/nozzle.svg +15 -0
- package/dist/assets/lib/svgeditor/shapes/img/nozzle2.svg +15 -0
- package/dist/assets/lib/svgeditor/shapes/img/pipi1.svg +16 -0
- package/dist/assets/lib/svgeditor/shapes/img/pipi2.svg +17 -0
- package/dist/assets/lib/svgeditor/shapes/img/pipi3.svg +15 -0
- package/dist/assets/lib/svgeditor/shapes/img/pipi4.svg +15 -0
- package/dist/assets/lib/svgeditor/shapes/img/pipi5.svg +16 -0
- package/dist/assets/lib/svgeditor/shapes/img/pipi6.svg +15 -0
- package/dist/assets/lib/svgeditor/shapes/img/pipi7.svg +16 -0
- package/dist/assets/lib/svgeditor/shapes/img/pumpblower.svg +76 -0
- package/dist/assets/lib/svgeditor/shapes/img/pumpcentri1.svg +64 -0
- package/dist/assets/lib/svgeditor/shapes/img/pumpcentri2.svg +64 -0
- package/dist/assets/lib/svgeditor/shapes/img/pumpfeed.svg +64 -0
- package/dist/assets/lib/svgeditor/shapes/img/pumpgear.svg +18 -0
- package/dist/assets/lib/svgeditor/shapes/img/pumpgear2.svg +19 -0
- package/dist/assets/lib/svgeditor/shapes/img/pumphidra.svg +68 -0
- package/dist/assets/lib/svgeditor/shapes/img/pumphorizo.svg +68 -0
- package/dist/assets/lib/svgeditor/shapes/img/pumpjet.svg +68 -0
- package/dist/assets/lib/svgeditor/shapes/img/pumpperis.svg +20 -0
- package/dist/assets/lib/svgeditor/shapes/img/pumpscreew.svg +17 -0
- package/dist/assets/lib/svgeditor/shapes/img/pumpscreew2.svg +72 -0
- package/dist/assets/lib/svgeditor/shapes/img/pumpturbi.svg +64 -0
- package/dist/assets/lib/svgeditor/shapes/img/pumpvacuum.svg +72 -0
- package/dist/assets/lib/svgeditor/shapes/img/shape-arrow.svg +13 -0
- package/dist/assets/lib/svgeditor/shapes/img/shape-circle.svg +13 -0
- package/dist/assets/lib/svgeditor/shapes/img/shape-circleindi.svg +13 -0
- package/dist/assets/lib/svgeditor/shapes/img/shape-cloud.svg +63 -0
- package/dist/assets/lib/svgeditor/shapes/img/shape-cone.svg +71 -0
- package/dist/assets/lib/svgeditor/shapes/img/shape-corner.svg +15 -0
- package/dist/assets/lib/svgeditor/shapes/img/shape-cross.svg +15 -0
- package/dist/assets/lib/svgeditor/shapes/img/shape-cylinder.svg +71 -0
- package/dist/assets/lib/svgeditor/shapes/img/shape-delay.svg +13 -0
- package/dist/assets/lib/svgeditor/shapes/img/shape-diamond.svg +13 -0
- package/dist/assets/lib/svgeditor/shapes/img/shape-display.svg +15 -0
- package/dist/assets/lib/svgeditor/shapes/img/shape-docu.svg +15 -0
- package/dist/assets/lib/svgeditor/shapes/img/shape-doublearrow.svg +13 -0
- package/dist/assets/lib/svgeditor/shapes/img/shape-drop.svg +15 -0
- package/dist/assets/lib/svgeditor/shapes/img/shape-halfcircle.svg +13 -0
- package/dist/assets/lib/svgeditor/shapes/img/shape-heart.svg +15 -0
- package/dist/assets/lib/svgeditor/shapes/img/shape-looplimit.svg +13 -0
- package/dist/assets/lib/svgeditor/shapes/img/shape-maninput.svg +15 -0
- package/dist/assets/lib/svgeditor/shapes/img/shape-nosymbol.svg +15 -0
- package/dist/assets/lib/svgeditor/shapes/img/shape-octagon.svg +15 -0
- package/dist/assets/lib/svgeditor/shapes/img/shape-offpage.svg +13 -0
- package/dist/assets/lib/svgeditor/shapes/img/shape-or.svg +15 -0
- package/dist/assets/lib/svgeditor/shapes/img/shape-or2.svg +17 -0
- package/dist/assets/lib/svgeditor/shapes/img/shape-parallelogram.svg +15 -0
- package/dist/assets/lib/svgeditor/shapes/img/shape-pentagon.svg +15 -0
- package/dist/assets/lib/svgeditor/shapes/img/shape-poval.svg +15 -0
- package/dist/assets/lib/svgeditor/shapes/img/shape-prepara.svg +13 -0
- package/dist/assets/lib/svgeditor/shapes/img/shape-rectangle.svg +13 -0
- package/dist/assets/lib/svgeditor/shapes/img/shape-rectindi.svg +16 -0
- package/dist/assets/lib/svgeditor/shapes/img/shape-star4.svg +15 -0
- package/dist/assets/lib/svgeditor/shapes/img/shape-switch.svg +15 -0
- package/dist/assets/lib/svgeditor/shapes/img/shape-tape.svg +15 -0
- package/dist/assets/lib/svgeditor/shapes/img/shape-tee.svg +63 -0
- package/dist/assets/lib/svgeditor/shapes/img/shape-ticket.svg +13 -0
- package/dist/assets/lib/svgeditor/shapes/img/shape-trape.svg +13 -0
- package/dist/assets/lib/svgeditor/shapes/img/shape-triangle.svg +13 -0
- package/dist/assets/lib/svgeditor/shapes/img/shape-vor.svg +14 -0
- package/dist/assets/lib/svgeditor/shapes/img/tank1.svg +63 -0
- package/dist/assets/lib/svgeditor/shapes/img/tank2.svg +15 -0
- package/dist/assets/lib/svgeditor/shapes/img/tank3.svg +15 -0
- package/dist/assets/lib/svgeditor/shapes/img/tank4.svg +15 -0
- package/dist/assets/lib/svgeditor/shapes/img/tank5.svg +15 -0
- package/dist/assets/lib/svgeditor/shapes/img/tank6.svg +68 -0
- package/dist/assets/lib/svgeditor/shapes/img/tank7.svg +15 -0
- package/dist/assets/lib/svgeditor/shapes/img/tank8.svg +15 -0
- package/dist/assets/lib/svgeditor/shapes/img/tank9.svg +21 -0
- package/dist/assets/lib/svgeditor/shapes/img/valve-ax.svg +13 -0
- package/dist/assets/lib/svgeditor/shapes/img/valve-bx.svg +13 -0
- package/dist/assets/lib/svgeditor/shapes/img/valve-cx.svg +13 -0
- package/dist/assets/lib/svgeditor/shapes/img/webcam.svg +6 -0
- package/dist/assets/lib/svgeditor/shapes/my-shapes.js +178 -0
- package/dist/assets/lib/svgeditor/shapes/proc-comp-shapes.js +105 -0
- package/dist/assets/lib/svgeditor/shapes/proc-general-shapes.js +60 -0
- package/dist/assets/lib/svgeditor/shapes/proc-pumps-shapes.js +112 -0
- package/dist/assets/lib/svgeditor/shapes/proc-shapes.js +606 -0
- package/dist/assets/lib/svgeditor/shapes/shapes.js +30 -0
- package/dist/assets/lib/svgeditor/svg-editor.min.css +1 -0
- package/dist/assets/lib/uplot/placement.min.js +2 -0
- package/dist/assets/project.demo.fuxap +1 -0
- package/dist/favicon.ico +0 -0
- package/dist/icomoon.86abfb46e057ade8.eot +0 -0
- package/dist/icomoon.c1f8b59bad308d66.woff +0 -0
- package/dist/icomoon.ce427f75e21963af.ttf +0 -0
- package/dist/icomoon.dfb0a89feb346906.svg +19 -0
- package/dist/index.html +50 -0
- package/dist/logo.0e8e64e69250a450.svg +18 -0
- package/dist/main.a356f552d9838b9e.js +1 -0
- package/dist/material-icons-outlined.78a93b2079680a08.woff +0 -0
- package/dist/material-icons-outlined.f86cb7b0aa53f0fe.woff2 +0 -0
- package/dist/material-icons-round.92dc7ca2f4c591e7.woff +0 -0
- package/dist/material-icons-round.b10ec9db5b7fbc74.woff2 +0 -0
- package/dist/material-icons-sharp.3885863ee4746422.woff2 +0 -0
- package/dist/material-icons-sharp.a71cb2bf66c604de.woff +0 -0
- package/dist/material-icons-two-tone.588d63134de807a7.woff +0 -0
- package/dist/material-icons-two-tone.675bd578bd14533e.woff2 +0 -0
- package/dist/material-icons.4ad034d2c499d9b6.woff +0 -0
- package/dist/material-icons.59322316b3fd6063.woff2 +0 -0
- package/dist/polyfills.2696a6f9dc75535e.js +1 -0
- package/dist/roboto-bold-webfont.29ac6158e35aee95.woff +0 -0
- package/dist/roboto-bold-webfont.568ab1fa3f154a77.svg +10486 -0
- package/dist/roboto-bold-webfont.6bcfbdc216b3bc78.woff2 +0 -0
- package/dist/roboto-bold-webfont.7c22a4dfdee2ff33.ttf +0 -0
- package/dist/roboto-light-webfont.13492ec56771eeee.svg +9998 -0
- package/dist/roboto-light-webfont.61fa26c99b07ac83.woff2 +0 -0
- package/dist/roboto-light-webfont.95295ce84942d8ce.ttf +0 -0
- package/dist/roboto-light-webfont.ae19119a2889dfdf.woff +0 -0
- package/dist/roboto-medium-webfont.30344f0411888055.woff +0 -0
- package/dist/roboto-medium-webfont.57fb00cab0317d2d.woff2 +0 -0
- package/dist/roboto-medium-webfont.a40869e060a388c0.ttf +0 -0
- package/dist/roboto-medium-webfont.ea02241c29620c02.svg +10487 -0
- package/dist/roboto-regular-webfont.2b0501b72f5a94d5.ttf +0 -0
- package/dist/roboto-regular-webfont.2ce0ba9a06424965.svg +10004 -0
- package/dist/roboto-regular-webfont.ae47f6f1292d196f.woff2 +0 -0
- package/dist/roboto-regular-webfont.f58066a2d9061006.woff +0 -0
- package/dist/roboto-thin-webfont.0a64479870f676e8.ttf +0 -0
- package/dist/roboto-thin-webfont.0f7221f5c7e972ef.woff2 +0 -0
- package/dist/roboto-thin-webfont.51b221e22714b1fe.svg +10012 -0
- package/dist/roboto-thin-webfont.dac941649dd4eac0.woff +0 -0
- package/dist/runtime.8ef63094e52a66ba.js +1 -0
- package/dist/scripts.1c3385254ff4c93c.js +1 -0
- package/dist/styles.cf8e3cf50d039a5c.css +1 -0
- package/fuxa.js +39 -0
- package/main.js +381 -0
- package/package.json +68 -0
- package/paths.js +44 -0
- package/project.default.json +11 -0
- package/project.demo.fuxap +1 -0
- package/runtime/alarms/alarmstorage.js +205 -0
- package/runtime/alarms/index.js +678 -0
- package/runtime/devices/bacnet/index.js +730 -0
- package/runtime/devices/device-utils.js +95 -0
- package/runtime/devices/device.js +551 -0
- package/runtime/devices/ethernetip/index.js +381 -0
- package/runtime/devices/fuxaserver/index.js +310 -0
- package/runtime/devices/httprequest/index.js +495 -0
- package/runtime/devices/index.js +489 -0
- package/runtime/devices/modbus/datatypes.js +122 -0
- package/runtime/devices/modbus/index.js +730 -0
- package/runtime/devices/mqtt/index.js +618 -0
- package/runtime/devices/odbc/index.js +408 -0
- package/runtime/devices/opcua/index.js +817 -0
- package/runtime/devices/s7/datatypes.js +88 -0
- package/runtime/devices/s7/index.js +702 -0
- package/runtime/devices/template/index.js +141 -0
- package/runtime/events.js +33 -0
- package/runtime/index.js +559 -0
- package/runtime/jobs/cleaner.js +74 -0
- package/runtime/jobs/fonts/LICENSE.txt +202 -0
- package/runtime/jobs/fonts/Roboto-Black.ttf +0 -0
- package/runtime/jobs/fonts/Roboto-BlackItalic.ttf +0 -0
- package/runtime/jobs/fonts/Roboto-Bold.ttf +0 -0
- package/runtime/jobs/fonts/Roboto-BoldItalic.ttf +0 -0
- package/runtime/jobs/fonts/Roboto-Italic.ttf +0 -0
- package/runtime/jobs/fonts/Roboto-Light.ttf +0 -0
- package/runtime/jobs/fonts/Roboto-LightItalic.ttf +0 -0
- package/runtime/jobs/fonts/Roboto-Medium.ttf +0 -0
- package/runtime/jobs/fonts/Roboto-MediumItalic.ttf +0 -0
- package/runtime/jobs/fonts/Roboto-Regular.ttf +0 -0
- package/runtime/jobs/fonts/Roboto-Thin.ttf +0 -0
- package/runtime/jobs/fonts/Roboto-ThinItalic.ttf +0 -0
- package/runtime/jobs/helper/image-generator.js +82 -0
- package/runtime/jobs/index.js +214 -0
- package/runtime/jobs/report.js +353 -0
- package/runtime/logger.js +113 -0
- package/runtime/notificator/index.js +383 -0
- package/runtime/notificator/notifystorage.js +179 -0
- package/runtime/plugins/index.js +255 -0
- package/runtime/project/index.js +959 -0
- package/runtime/project/prjstorage.js +222 -0
- package/runtime/scripts/index.js +313 -0
- package/runtime/scripts/msm.js +146 -0
- package/runtime/storage/calculator.js +227 -0
- package/runtime/storage/daqstorage.js +188 -0
- package/runtime/storage/influxdb/index.js +240 -0
- package/runtime/storage/sqlite/currentstorage.js +144 -0
- package/runtime/storage/sqlite/index.js +695 -0
- package/runtime/storage/tdengine/index.js +106 -0
- package/runtime/users/index.js +123 -0
- package/runtime/users/usrstorage.js +201 -0
- package/runtime/utils.js +284 -0
- package/screenshot/feature-action-move.gif +0 -0
- package/screenshot/fuxa-ani.gif +0 -0
- package/screenshot/fuxa-device.gif +0 -0
- package/screenshot/fuxa-editor.png +0 -0
- package/screenshot/fuxa-hmi.gif +0 -0
- package/screenshot/fuxa-home.png +0 -0
- package/screenshot/fuxa-test.gif +0 -0
- package/settings.default.js +65 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
var mypathseg=function(){"use strict";return{initPathSeg:function(){"SVGPathSeg"in window||(window.SVGPathSeg=function(t,e,n){this.pathSegType=t,this.pathSegTypeAsLetter=e,this._owningPathSegList=n},window.SVGPathSeg.prototype.classname="SVGPathSeg",window.SVGPathSeg.PATHSEG_UNKNOWN=0,window.SVGPathSeg.PATHSEG_CLOSEPATH=1,window.SVGPathSeg.PATHSEG_MOVETO_ABS=2,window.SVGPathSeg.PATHSEG_MOVETO_REL=3,window.SVGPathSeg.PATHSEG_LINETO_ABS=4,window.SVGPathSeg.PATHSEG_LINETO_REL=5,window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS=6,window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL=7,window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS=8,window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL=9,window.SVGPathSeg.PATHSEG_ARC_ABS=10,window.SVGPathSeg.PATHSEG_ARC_REL=11,window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS=12,window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL=13,window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS=14,window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL=15,window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS=16,window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL=17,window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS=18,window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL=19,window.SVGPathSeg.prototype._segmentChanged=function(){this._owningPathSegList&&this._owningPathSegList.segmentChanged(this)},window.SVGPathSegClosePath=function(t){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CLOSEPATH,"z",t)},window.SVGPathSegClosePath.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegClosePath.prototype.toString=function(){return"[object SVGPathSegClosePath]"},window.SVGPathSegClosePath.prototype._asPathString=function(){return this.pathSegTypeAsLetter},window.SVGPathSegClosePath.prototype.clone=function(){return new window.SVGPathSegClosePath(void 0)},window.SVGPathSegMovetoAbs=function(t,e,n){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_MOVETO_ABS,"M",t),this._x=e,this._y=n},window.SVGPathSegMovetoAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegMovetoAbs.prototype.toString=function(){return"[object SVGPathSegMovetoAbs]"},window.SVGPathSegMovetoAbs.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._x+" "+this._y},window.SVGPathSegMovetoAbs.prototype.clone=function(){return new window.SVGPathSegMovetoAbs(void 0,this._x,this._y)},Object.defineProperty(window.SVGPathSegMovetoAbs.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegMovetoAbs.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegMovetoRel=function(t,e,n){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_MOVETO_REL,"m",t),this._x=e,this._y=n},window.SVGPathSegMovetoRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegMovetoRel.prototype.toString=function(){return"[object SVGPathSegMovetoRel]"},window.SVGPathSegMovetoRel.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._x+" "+this._y},window.SVGPathSegMovetoRel.prototype.clone=function(){return new window.SVGPathSegMovetoRel(void 0,this._x,this._y)},Object.defineProperty(window.SVGPathSegMovetoRel.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegMovetoRel.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegLinetoAbs=function(t,e,n){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_LINETO_ABS,"L",t),this._x=e,this._y=n},window.SVGPathSegLinetoAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegLinetoAbs.prototype.toString=function(){return"[object SVGPathSegLinetoAbs]"},window.SVGPathSegLinetoAbs.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._x+" "+this._y},window.SVGPathSegLinetoAbs.prototype.clone=function(){return new window.SVGPathSegLinetoAbs(void 0,this._x,this._y)},Object.defineProperty(window.SVGPathSegLinetoAbs.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegLinetoAbs.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegLinetoRel=function(t,e,n){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_LINETO_REL,"l",t),this._x=e,this._y=n},window.SVGPathSegLinetoRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegLinetoRel.prototype.toString=function(){return"[object SVGPathSegLinetoRel]"},window.SVGPathSegLinetoRel.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._x+" "+this._y},window.SVGPathSegLinetoRel.prototype.clone=function(){return new window.SVGPathSegLinetoRel(void 0,this._x,this._y)},Object.defineProperty(window.SVGPathSegLinetoRel.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegLinetoRel.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegCurvetoCubicAbs=function(t,e,n,i,o,r,h){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS,"C",t),this._x=e,this._y=n,this._x1=i,this._y1=o,this._x2=r,this._y2=h},window.SVGPathSegCurvetoCubicAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegCurvetoCubicAbs.prototype.toString=function(){return"[object SVGPathSegCurvetoCubicAbs]"},window.SVGPathSegCurvetoCubicAbs.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._x1+" "+this._y1+" "+this._x2+" "+this._y2+" "+this._x+" "+this._y},window.SVGPathSegCurvetoCubicAbs.prototype.clone=function(){return new window.SVGPathSegCurvetoCubicAbs(void 0,this._x,this._y,this._x1,this._y1,this._x2,this._y2)},Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype,"x1",{get:function(){return this._x1},set:function(t){this._x1=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype,"y1",{get:function(){return this._y1},set:function(t){this._y1=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype,"x2",{get:function(){return this._x2},set:function(t){this._x2=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype,"y2",{get:function(){return this._y2},set:function(t){this._y2=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegCurvetoCubicRel=function(t,e,n,i,o,r,h){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL,"c",t),this._x=e,this._y=n,this._x1=i,this._y1=o,this._x2=r,this._y2=h},window.SVGPathSegCurvetoCubicRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegCurvetoCubicRel.prototype.toString=function(){return"[object SVGPathSegCurvetoCubicRel]"},window.SVGPathSegCurvetoCubicRel.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._x1+" "+this._y1+" "+this._x2+" "+this._y2+" "+this._x+" "+this._y},window.SVGPathSegCurvetoCubicRel.prototype.clone=function(){return new window.SVGPathSegCurvetoCubicRel(void 0,this._x,this._y,this._x1,this._y1,this._x2,this._y2)},Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype,"x1",{get:function(){return this._x1},set:function(t){this._x1=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype,"y1",{get:function(){return this._y1},set:function(t){this._y1=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype,"x2",{get:function(){return this._x2},set:function(t){this._x2=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype,"y2",{get:function(){return this._y2},set:function(t){this._y2=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegCurvetoQuadraticAbs=function(t,e,n,i,o){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS,"Q",t),this._x=e,this._y=n,this._x1=i,this._y1=o},window.SVGPathSegCurvetoQuadraticAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegCurvetoQuadraticAbs.prototype.toString=function(){return"[object SVGPathSegCurvetoQuadraticAbs]"},window.SVGPathSegCurvetoQuadraticAbs.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._x1+" "+this._y1+" "+this._x+" "+this._y},window.SVGPathSegCurvetoQuadraticAbs.prototype.clone=function(){return new window.SVGPathSegCurvetoQuadraticAbs(void 0,this._x,this._y,this._x1,this._y1)},Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype,"x1",{get:function(){return this._x1},set:function(t){this._x1=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype,"y1",{get:function(){return this._y1},set:function(t){this._y1=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegCurvetoQuadraticRel=function(t,e,n,i,o){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL,"q",t),this._x=e,this._y=n,this._x1=i,this._y1=o},window.SVGPathSegCurvetoQuadraticRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegCurvetoQuadraticRel.prototype.toString=function(){return"[object SVGPathSegCurvetoQuadraticRel]"},window.SVGPathSegCurvetoQuadraticRel.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._x1+" "+this._y1+" "+this._x+" "+this._y},window.SVGPathSegCurvetoQuadraticRel.prototype.clone=function(){return new window.SVGPathSegCurvetoQuadraticRel(void 0,this._x,this._y,this._x1,this._y1)},Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype,"x1",{get:function(){return this._x1},set:function(t){this._x1=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype,"y1",{get:function(){return this._y1},set:function(t){this._y1=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegArcAbs=function(t,e,n,i,o,r,h,s){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_ARC_ABS,"A",t),this._x=e,this._y=n,this._r1=i,this._r2=o,this._angle=r,this._largeArcFlag=h,this._sweepFlag=s},window.SVGPathSegArcAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegArcAbs.prototype.toString=function(){return"[object SVGPathSegArcAbs]"},window.SVGPathSegArcAbs.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._r1+" "+this._r2+" "+this._angle+" "+(this._largeArcFlag?"1":"0")+" "+(this._sweepFlag?"1":"0")+" "+this._x+" "+this._y},window.SVGPathSegArcAbs.prototype.clone=function(){return new window.SVGPathSegArcAbs(void 0,this._x,this._y,this._r1,this._r2,this._angle,this._largeArcFlag,this._sweepFlag)},Object.defineProperty(window.SVGPathSegArcAbs.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcAbs.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcAbs.prototype,"r1",{get:function(){return this._r1},set:function(t){this._r1=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcAbs.prototype,"r2",{get:function(){return this._r2},set:function(t){this._r2=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcAbs.prototype,"angle",{get:function(){return this._angle},set:function(t){this._angle=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcAbs.prototype,"largeArcFlag",{get:function(){return this._largeArcFlag},set:function(t){this._largeArcFlag=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcAbs.prototype,"sweepFlag",{get:function(){return this._sweepFlag},set:function(t){this._sweepFlag=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegArcRel=function(t,e,n,i,o,r,h,s){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_ARC_REL,"a",t),this._x=e,this._y=n,this._r1=i,this._r2=o,this._angle=r,this._largeArcFlag=h,this._sweepFlag=s},window.SVGPathSegArcRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegArcRel.prototype.toString=function(){return"[object SVGPathSegArcRel]"},window.SVGPathSegArcRel.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._r1+" "+this._r2+" "+this._angle+" "+(this._largeArcFlag?"1":"0")+" "+(this._sweepFlag?"1":"0")+" "+this._x+" "+this._y},window.SVGPathSegArcRel.prototype.clone=function(){return new window.SVGPathSegArcRel(void 0,this._x,this._y,this._r1,this._r2,this._angle,this._largeArcFlag,this._sweepFlag)},Object.defineProperty(window.SVGPathSegArcRel.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcRel.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcRel.prototype,"r1",{get:function(){return this._r1},set:function(t){this._r1=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcRel.prototype,"r2",{get:function(){return this._r2},set:function(t){this._r2=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcRel.prototype,"angle",{get:function(){return this._angle},set:function(t){this._angle=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcRel.prototype,"largeArcFlag",{get:function(){return this._largeArcFlag},set:function(t){this._largeArcFlag=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcRel.prototype,"sweepFlag",{get:function(){return this._sweepFlag},set:function(t){this._sweepFlag=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegLinetoHorizontalAbs=function(t,e){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS,"H",t),this._x=e},window.SVGPathSegLinetoHorizontalAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegLinetoHorizontalAbs.prototype.toString=function(){return"[object SVGPathSegLinetoHorizontalAbs]"},window.SVGPathSegLinetoHorizontalAbs.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._x},window.SVGPathSegLinetoHorizontalAbs.prototype.clone=function(){return new window.SVGPathSegLinetoHorizontalAbs(void 0,this._x)},Object.defineProperty(window.SVGPathSegLinetoHorizontalAbs.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegLinetoHorizontalRel=function(t,e){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL,"h",t),this._x=e},window.SVGPathSegLinetoHorizontalRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegLinetoHorizontalRel.prototype.toString=function(){return"[object SVGPathSegLinetoHorizontalRel]"},window.SVGPathSegLinetoHorizontalRel.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._x},window.SVGPathSegLinetoHorizontalRel.prototype.clone=function(){return new window.SVGPathSegLinetoHorizontalRel(void 0,this._x)},Object.defineProperty(window.SVGPathSegLinetoHorizontalRel.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegLinetoVerticalAbs=function(t,e){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS,"V",t),this._y=e},window.SVGPathSegLinetoVerticalAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegLinetoVerticalAbs.prototype.toString=function(){return"[object SVGPathSegLinetoVerticalAbs]"},window.SVGPathSegLinetoVerticalAbs.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._y},window.SVGPathSegLinetoVerticalAbs.prototype.clone=function(){return new window.SVGPathSegLinetoVerticalAbs(void 0,this._y)},Object.defineProperty(window.SVGPathSegLinetoVerticalAbs.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegLinetoVerticalRel=function(t,e){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL,"v",t),this._y=e},window.SVGPathSegLinetoVerticalRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegLinetoVerticalRel.prototype.toString=function(){return"[object SVGPathSegLinetoVerticalRel]"},window.SVGPathSegLinetoVerticalRel.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._y},window.SVGPathSegLinetoVerticalRel.prototype.clone=function(){return new window.SVGPathSegLinetoVerticalRel(void 0,this._y)},Object.defineProperty(window.SVGPathSegLinetoVerticalRel.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegCurvetoCubicSmoothAbs=function(t,e,n,i,o){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS,"S",t),this._x=e,this._y=n,this._x2=i,this._y2=o},window.SVGPathSegCurvetoCubicSmoothAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegCurvetoCubicSmoothAbs.prototype.toString=function(){return"[object SVGPathSegCurvetoCubicSmoothAbs]"},window.SVGPathSegCurvetoCubicSmoothAbs.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._x2+" "+this._y2+" "+this._x+" "+this._y},window.SVGPathSegCurvetoCubicSmoothAbs.prototype.clone=function(){return new window.SVGPathSegCurvetoCubicSmoothAbs(void 0,this._x,this._y,this._x2,this._y2)},Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype,"x2",{get:function(){return this._x2},set:function(t){this._x2=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype,"y2",{get:function(){return this._y2},set:function(t){this._y2=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegCurvetoCubicSmoothRel=function(t,e,n,i,o){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL,"s",t),this._x=e,this._y=n,this._x2=i,this._y2=o},window.SVGPathSegCurvetoCubicSmoothRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegCurvetoCubicSmoothRel.prototype.toString=function(){return"[object SVGPathSegCurvetoCubicSmoothRel]"},window.SVGPathSegCurvetoCubicSmoothRel.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._x2+" "+this._y2+" "+this._x+" "+this._y},window.SVGPathSegCurvetoCubicSmoothRel.prototype.clone=function(){return new window.SVGPathSegCurvetoCubicSmoothRel(void 0,this._x,this._y,this._x2,this._y2)},Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype,"x2",{get:function(){return this._x2},set:function(t){this._x2=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype,"y2",{get:function(){return this._y2},set:function(t){this._y2=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegCurvetoQuadraticSmoothAbs=function(t,e,n){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS,"T",t),this._x=e,this._y=n},window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype.toString=function(){return"[object SVGPathSegCurvetoQuadraticSmoothAbs]"},window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._x+" "+this._y},window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype.clone=function(){return new window.SVGPathSegCurvetoQuadraticSmoothAbs(void 0,this._x,this._y)},Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegCurvetoQuadraticSmoothRel=function(t,e,n){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL,"t",t),this._x=e,this._y=n},window.SVGPathSegCurvetoQuadraticSmoothRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegCurvetoQuadraticSmoothRel.prototype.toString=function(){return"[object SVGPathSegCurvetoQuadraticSmoothRel]"},window.SVGPathSegCurvetoQuadraticSmoothRel.prototype._asPathString=function(){return this.pathSegTypeAsLetter+" "+this._x+" "+this._y},window.SVGPathSegCurvetoQuadraticSmoothRel.prototype.clone=function(){return new window.SVGPathSegCurvetoQuadraticSmoothRel(void 0,this._x,this._y)},Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothRel.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothRel.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),window.SVGPathElement.prototype.createSVGPathSegClosePath=function(){return new window.SVGPathSegClosePath(void 0)},window.SVGPathElement.prototype.createSVGPathSegMovetoAbs=function(t,e){return new window.SVGPathSegMovetoAbs(void 0,t,e)},window.SVGPathElement.prototype.createSVGPathSegMovetoRel=function(t,e){return new window.SVGPathSegMovetoRel(void 0,t,e)},window.SVGPathElement.prototype.createSVGPathSegLinetoAbs=function(t,e){return new window.SVGPathSegLinetoAbs(void 0,t,e)},window.SVGPathElement.prototype.createSVGPathSegLinetoRel=function(t,e){return new window.SVGPathSegLinetoRel(void 0,t,e)},window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicAbs=function(t,e,n,i,o,r){return new window.SVGPathSegCurvetoCubicAbs(void 0,t,e,n,i,o,r)},window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicRel=function(t,e,n,i,o,r){return new window.SVGPathSegCurvetoCubicRel(void 0,t,e,n,i,o,r)},window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticAbs=function(t,e,n,i){return new window.SVGPathSegCurvetoQuadraticAbs(void 0,t,e,n,i)},window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticRel=function(t,e,n,i){return new window.SVGPathSegCurvetoQuadraticRel(void 0,t,e,n,i)},window.SVGPathElement.prototype.createSVGPathSegArcAbs=function(t,e,n,i,o,r,h){return new window.SVGPathSegArcAbs(void 0,t,e,n,i,o,r,h)},window.SVGPathElement.prototype.createSVGPathSegArcRel=function(t,e,n,i,o,r,h){return new window.SVGPathSegArcRel(void 0,t,e,n,i,o,r,h)},window.SVGPathElement.prototype.createSVGPathSegLinetoHorizontalAbs=function(t){return new window.SVGPathSegLinetoHorizontalAbs(void 0,t)},window.SVGPathElement.prototype.createSVGPathSegLinetoHorizontalRel=function(t){return new window.SVGPathSegLinetoHorizontalRel(void 0,t)},window.SVGPathElement.prototype.createSVGPathSegLinetoVerticalAbs=function(t){return new window.SVGPathSegLinetoVerticalAbs(void 0,t)},window.SVGPathElement.prototype.createSVGPathSegLinetoVerticalRel=function(t){return new window.SVGPathSegLinetoVerticalRel(void 0,t)},window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicSmoothAbs=function(t,e,n,i){return new window.SVGPathSegCurvetoCubicSmoothAbs(void 0,t,e,n,i)},window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicSmoothRel=function(t,e,n,i){return new window.SVGPathSegCurvetoCubicSmoothRel(void 0,t,e,n,i)},window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticSmoothAbs=function(t,e){return new window.SVGPathSegCurvetoQuadraticSmoothAbs(void 0,t,e)},window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticSmoothRel=function(t,e){return new window.SVGPathSegCurvetoQuadraticSmoothRel(void 0,t,e)},"getPathSegAtLength"in window.SVGPathElement.prototype||(window.SVGPathElement.prototype.getPathSegAtLength=function(t){if(void 0===t||!isFinite(t))throw"Invalid arguments.";var e=document.createElementNS("http://www.w3.org/2000/svg","path");e.setAttribute("d",this.getAttribute("d"));var n=e.pathSegList.numberOfItems-1;if(n<=0)return 0;do{if(e.pathSegList.removeItem(n),t>e.getTotalLength())break;n--}while(n>0);return n})),"SVGPathSegList"in window&&"appendItem"in window.SVGPathSegList.prototype||(window.SVGPathSegList=function(t){this._pathElement=t,this._list=this._parsePath(this._pathElement.getAttribute("d")),this._mutationObserverConfig={attributes:!0,attributeFilter:["d"]},this._pathElementMutationObserver=new MutationObserver(this._updateListFromPathMutations.bind(this)),this._pathElementMutationObserver.observe(this._pathElement,this._mutationObserverConfig)},window.SVGPathSegList.prototype.classname="SVGPathSegList",Object.defineProperty(window.SVGPathSegList.prototype,"numberOfItems",{get:function(){return this._checkPathSynchronizedToList(),this._list.length},enumerable:!0}),Object.defineProperty(window.SVGPathElement.prototype,"pathSegList",{get:function(){return this._pathSegList||(this._pathSegList=new window.SVGPathSegList(this)),this._pathSegList},enumerable:!0}),Object.defineProperty(window.SVGPathElement.prototype,"normalizedPathSegList",{get:function(){return this.pathSegList},enumerable:!0}),Object.defineProperty(window.SVGPathElement.prototype,"animatedPathSegList",{get:function(){return this.pathSegList},enumerable:!0}),Object.defineProperty(window.SVGPathElement.prototype,"animatedNormalizedPathSegList",{get:function(){return this.pathSegList},enumerable:!0}),window.SVGPathSegList.prototype._checkPathSynchronizedToList=function(){this._updateListFromPathMutations(this._pathElementMutationObserver.takeRecords())},window.SVGPathSegList.prototype._updateListFromPathMutations=function(t){if(this._pathElement){var e=!1;t.forEach(function(t){"d"==t.attributeName&&(e=!0)}),e&&(this._list=this._parsePath(this._pathElement.getAttribute("d")))}},window.SVGPathSegList.prototype._writeListToPath=function(){this._pathElementMutationObserver.disconnect(),this._pathElement.setAttribute("d",window.SVGPathSegList._pathSegArrayAsString(this._list)),this._pathElementMutationObserver.observe(this._pathElement,this._mutationObserverConfig)},window.SVGPathSegList.prototype.segmentChanged=function(t){this._writeListToPath()},window.SVGPathSegList.prototype.clear=function(){this._checkPathSynchronizedToList(),this._list.forEach(function(t){t._owningPathSegList=null}),this._list=[],this._writeListToPath()},window.SVGPathSegList.prototype.initialize=function(t){return this._checkPathSynchronizedToList(),this._list=[t],t._owningPathSegList=this,this._writeListToPath(),t},window.SVGPathSegList.prototype._checkValidIndex=function(t){if(isNaN(t)||t<0||t>=this.numberOfItems)throw"INDEX_SIZE_ERR"},window.SVGPathSegList.prototype.getItem=function(t){return this._checkPathSynchronizedToList(),this._checkValidIndex(t),this._list[t]},window.SVGPathSegList.prototype.insertItemBefore=function(t,e){return this._checkPathSynchronizedToList(),e>this.numberOfItems&&(e=this.numberOfItems),t._owningPathSegList&&(t=t.clone()),this._list.splice(e,0,t),t._owningPathSegList=this,this._writeListToPath(),t},window.SVGPathSegList.prototype.replaceItem=function(t,e){return this._checkPathSynchronizedToList(),t._owningPathSegList&&(t=t.clone()),this._checkValidIndex(e),this._list[e]=t,t._owningPathSegList=this,this._writeListToPath(),t},window.SVGPathSegList.prototype.removeItem=function(t){this._checkPathSynchronizedToList(),this._checkValidIndex(t);var e=this._list[t];return this._list.splice(t,1),this._writeListToPath(),e},window.SVGPathSegList.prototype.appendItem=function(t){return this._checkPathSynchronizedToList(),t._owningPathSegList&&(t=t.clone()),this._list.push(t),t._owningPathSegList=this,this._writeListToPath(),t},window.SVGPathSegList._pathSegArrayAsString=function(t){var e="",n=!0;return t.forEach(function(t){n?(n=!1,e+=t._asPathString()):e+=" "+t._asPathString()}),e},window.SVGPathSegList.prototype._parsePath=function(t){if(!t||0==t.length)return[];var e=this,n=function(){this.pathSegList=[]};n.prototype.appendSegment=function(t){this.pathSegList.push(t)};var i=function(t){this._string=t,this._currentIndex=0,this._endIndex=this._string.length,this._previousCommand=window.SVGPathSeg.PATHSEG_UNKNOWN,this._skipOptionalSpaces()};i.prototype._isCurrentSpace=function(){var t=this._string[this._currentIndex];return t<=" "&&(" "==t||"\n"==t||"\t"==t||"\r"==t||"\f"==t)},i.prototype._skipOptionalSpaces=function(){for(;this._currentIndex<this._endIndex&&this._isCurrentSpace();)this._currentIndex++;return this._currentIndex<this._endIndex},i.prototype._skipOptionalSpacesOrDelimiter=function(){return!(this._currentIndex<this._endIndex&&!this._isCurrentSpace()&&","!=this._string.charAt(this._currentIndex))&&(this._skipOptionalSpaces()&&this._currentIndex<this._endIndex&&","==this._string.charAt(this._currentIndex)&&(this._currentIndex++,this._skipOptionalSpaces()),this._currentIndex<this._endIndex)},i.prototype.hasMoreData=function(){return this._currentIndex<this._endIndex},i.prototype.peekSegmentType=function(){var t=this._string[this._currentIndex];return this._pathSegTypeFromChar(t)},i.prototype._pathSegTypeFromChar=function(t){switch(t){case"Z":case"z":return window.SVGPathSeg.PATHSEG_CLOSEPATH;case"M":return window.SVGPathSeg.PATHSEG_MOVETO_ABS;case"m":return window.SVGPathSeg.PATHSEG_MOVETO_REL;case"L":return window.SVGPathSeg.PATHSEG_LINETO_ABS;case"l":return window.SVGPathSeg.PATHSEG_LINETO_REL;case"C":return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS;case"c":return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL;case"Q":return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS;case"q":return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL;case"A":return window.SVGPathSeg.PATHSEG_ARC_ABS
|
|
2
|
+
;case"a":return window.SVGPathSeg.PATHSEG_ARC_REL;case"H":return window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS;case"h":return window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL;case"V":return window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS;case"v":return window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL;case"S":return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS;case"s":return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL;case"T":return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS;case"t":return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL;default:return window.SVGPathSeg.PATHSEG_UNKNOWN}},i.prototype._nextCommandHelper=function(t,e){return("+"==t||"-"==t||"."==t||t>="0"&&t<="9")&&e!=window.SVGPathSeg.PATHSEG_CLOSEPATH?e==window.SVGPathSeg.PATHSEG_MOVETO_ABS?window.SVGPathSeg.PATHSEG_LINETO_ABS:e==window.SVGPathSeg.PATHSEG_MOVETO_REL?window.SVGPathSeg.PATHSEG_LINETO_REL:e:window.SVGPathSeg.PATHSEG_UNKNOWN},i.prototype.initialCommandIsMoveTo=function(){if(!this.hasMoreData())return!0;var t=this.peekSegmentType();return t==window.SVGPathSeg.PATHSEG_MOVETO_ABS||t==window.SVGPathSeg.PATHSEG_MOVETO_REL},i.prototype._parseNumber=function(){var t=0,e=0,n=1,i=0,o=1,r=1,h=this._currentIndex;if(this._skipOptionalSpaces(),this._currentIndex<this._endIndex&&"+"==this._string.charAt(this._currentIndex)?this._currentIndex++:this._currentIndex<this._endIndex&&"-"==this._string.charAt(this._currentIndex)&&(this._currentIndex++,o=-1),!(this._currentIndex==this._endIndex||(this._string.charAt(this._currentIndex)<"0"||this._string.charAt(this._currentIndex)>"9")&&"."!=this._string.charAt(this._currentIndex))){for(var s=this._currentIndex;this._currentIndex<this._endIndex&&this._string.charAt(this._currentIndex)>="0"&&this._string.charAt(this._currentIndex)<="9";)this._currentIndex++;if(this._currentIndex!=s)for(var a=this._currentIndex-1,S=1;a>=s;)e+=S*(this._string.charAt(a--)-"0"),S*=10;if(this._currentIndex<this._endIndex&&"."==this._string.charAt(this._currentIndex)){if(this._currentIndex++,this._currentIndex>=this._endIndex||this._string.charAt(this._currentIndex)<"0"||this._string.charAt(this._currentIndex)>"9")return;for(;this._currentIndex<this._endIndex&&this._string.charAt(this._currentIndex)>="0"&&this._string.charAt(this._currentIndex)<="9";)n*=10,i+=(this._string.charAt(this._currentIndex)-"0")/n,this._currentIndex+=1}if(this._currentIndex!=h&&this._currentIndex+1<this._endIndex&&("e"==this._string.charAt(this._currentIndex)||"E"==this._string.charAt(this._currentIndex))&&"x"!=this._string.charAt(this._currentIndex+1)&&"m"!=this._string.charAt(this._currentIndex+1)){if(this._currentIndex++,"+"==this._string.charAt(this._currentIndex)?this._currentIndex++:"-"==this._string.charAt(this._currentIndex)&&(this._currentIndex++,r=-1),this._currentIndex>=this._endIndex||this._string.charAt(this._currentIndex)<"0"||this._string.charAt(this._currentIndex)>"9")return;for(;this._currentIndex<this._endIndex&&this._string.charAt(this._currentIndex)>="0"&&this._string.charAt(this._currentIndex)<="9";)t*=10,t+=this._string.charAt(this._currentIndex)-"0",this._currentIndex++}var u=e+i;if(u*=o,t&&(u*=Math.pow(10,r*t)),h!=this._currentIndex)return this._skipOptionalSpacesOrDelimiter(),u}},i.prototype._parseArcFlag=function(){if(!(this._currentIndex>=this._endIndex)){var t=!1,e=this._string.charAt(this._currentIndex++);if("0"==e)t=!1;else{if("1"!=e)return;t=!0}return this._skipOptionalSpacesOrDelimiter(),t}},i.prototype.parseSegment=function(){var t=this._string[this._currentIndex],n=this._pathSegTypeFromChar(t);if(n==window.SVGPathSeg.PATHSEG_UNKNOWN){if(this._previousCommand==window.SVGPathSeg.PATHSEG_UNKNOWN)return null;if(n=this._nextCommandHelper(t,this._previousCommand),n==window.SVGPathSeg.PATHSEG_UNKNOWN)return null}else this._currentIndex++;switch(this._previousCommand=n,n){case window.SVGPathSeg.PATHSEG_MOVETO_REL:return new window.SVGPathSegMovetoRel(e,this._parseNumber(),this._parseNumber());case window.SVGPathSeg.PATHSEG_MOVETO_ABS:return new window.SVGPathSegMovetoAbs(e,this._parseNumber(),this._parseNumber());case window.SVGPathSeg.PATHSEG_LINETO_REL:return new window.SVGPathSegLinetoRel(e,this._parseNumber(),this._parseNumber());case window.SVGPathSeg.PATHSEG_LINETO_ABS:return new window.SVGPathSegLinetoAbs(e,this._parseNumber(),this._parseNumber());case window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL:return new window.SVGPathSegLinetoHorizontalRel(e,this._parseNumber());case window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS:return new window.SVGPathSegLinetoHorizontalAbs(e,this._parseNumber());case window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL:return new window.SVGPathSegLinetoVerticalRel(e,this._parseNumber());case window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS:return new window.SVGPathSegLinetoVerticalAbs(e,this._parseNumber());case window.SVGPathSeg.PATHSEG_CLOSEPATH:return this._skipOptionalSpaces(),new window.SVGPathSegClosePath(e);case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL:var i={x1:this._parseNumber(),y1:this._parseNumber(),x2:this._parseNumber(),y2:this._parseNumber(),x:this._parseNumber(),y:this._parseNumber()};return new window.SVGPathSegCurvetoCubicRel(e,i.x,i.y,i.x1,i.y1,i.x2,i.y2);case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS:i={x1:this._parseNumber(),y1:this._parseNumber(),x2:this._parseNumber(),y2:this._parseNumber(),x:this._parseNumber(),y:this._parseNumber()};return new window.SVGPathSegCurvetoCubicAbs(e,i.x,i.y,i.x1,i.y1,i.x2,i.y2);case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL:i={x2:this._parseNumber(),y2:this._parseNumber(),x:this._parseNumber(),y:this._parseNumber()};return new window.SVGPathSegCurvetoCubicSmoothRel(e,i.x,i.y,i.x2,i.y2);case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS:i={x2:this._parseNumber(),y2:this._parseNumber(),x:this._parseNumber(),y:this._parseNumber()};return new window.SVGPathSegCurvetoCubicSmoothAbs(e,i.x,i.y,i.x2,i.y2);case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL:i={x1:this._parseNumber(),y1:this._parseNumber(),x:this._parseNumber(),y:this._parseNumber()};return new window.SVGPathSegCurvetoQuadraticRel(e,i.x,i.y,i.x1,i.y1);case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS:i={x1:this._parseNumber(),y1:this._parseNumber(),x:this._parseNumber(),y:this._parseNumber()};return new window.SVGPathSegCurvetoQuadraticAbs(e,i.x,i.y,i.x1,i.y1);case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL:return new window.SVGPathSegCurvetoQuadraticSmoothRel(e,this._parseNumber(),this._parseNumber());case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS:return new window.SVGPathSegCurvetoQuadraticSmoothAbs(e,this._parseNumber(),this._parseNumber());case window.SVGPathSeg.PATHSEG_ARC_REL:i={x1:this._parseNumber(),y1:this._parseNumber(),arcAngle:this._parseNumber(),arcLarge:this._parseArcFlag(),arcSweep:this._parseArcFlag(),x:this._parseNumber(),y:this._parseNumber()};return new window.SVGPathSegArcRel(e,i.x,i.y,i.x1,i.y1,i.arcAngle,i.arcLarge,i.arcSweep);case window.SVGPathSeg.PATHSEG_ARC_ABS:i={x1:this._parseNumber(),y1:this._parseNumber(),arcAngle:this._parseNumber(),arcLarge:this._parseArcFlag(),arcSweep:this._parseArcFlag(),x:this._parseNumber(),y:this._parseNumber()};return new window.SVGPathSegArcAbs(e,i.x,i.y,i.x1,i.y1,i.arcAngle,i.arcLarge,i.arcSweep);default:throw"Unknown path seg type."}};var o=new n,r=new i(t);if(!r.initialCommandIsMoveTo())return[];for(;r.hasMoreData();){var h=r.parseSegment();if(!h)return[];o.appendSegment(h)}return o.pathSegList})}}}();
|
|
3
|
+
svgedit={NS:{HTML:"http://www.w3.org/1999/xhtml",MATH:"http://www.w3.org/1998/Math/MathML",SE:"http://web-edit.com",SVG:"http://www.w3.org/2000/svg",XLINK:"http://www.w3.org/1999/xlink",XML:"http://www.w3.org/XML/1998/namespace",XMLNS:"http://www.w3.org/2000/xmlns/"}},svgedit.getReverseNS=function(){"use strict";var t={};return $.each(this.NS,function(w,e){t[e]=w.toLowerCase()}),t};
|
|
4
|
+
var mybrowser=function(){"use strict";return{initBrowser:function(){svgedit.browser||(svgedit.browser={});var e=svgedit.NS,t=!!document.createElementNS&&!!document.createElementNS(e.SVG,"svg").createSVGRect;if(svgedit.browser.supportsSvg=function(){return t},svgedit.browser.supportsSvg()){var r,n=navigator.userAgent,o=document.createElementNS(e.SVG,"svg"),s=!!window.opera,i=n.indexOf("AppleWebKit")>=0,u=n.indexOf("Gecko/")>=0,c=n.indexOf("MSIE")>=0,d=n.indexOf("Chrome/")>=0,a=n.indexOf("Windows")>=0,m=n.indexOf("Macintosh")>=0,p="ontouchstart"in window,v=!!o.querySelector,l=!!document.evaluate,g=function(){var t=document.createElementNS(e.SVG,"path");t.setAttribute("d","M0,0 10,10");var r=t.pathSegList,n=t.createSVGPathSegLinetoAbs(5,5);try{return r.replaceItem(n,1),!0}catch(e){}return!1}(),S=function(){var t=document.createElementNS(e.SVG,"path");t.setAttribute("d","M0,0 10,10");var r=t.pathSegList,n=t.createSVGPathSegLinetoAbs(5,5);try{return r.insertItemBefore(n,1),!0}catch(e){}return!1}(),f=function(){var t=document.createElementNS(e.SVG,"svg"),r=document.createElementNS(e.SVG,"svg");document.documentElement.appendChild(t),r.setAttribute("x",5),t.appendChild(r);var n=document.createElementNS(e.SVG,"text");n.textContent="a",r.appendChild(n);var o=n.getStartPositionOfChar(0).x;return document.documentElement.removeChild(t),0===o}(),b=function(){var t=document.createElementNS(e.SVG,"svg");document.documentElement.appendChild(t);var r=document.createElementNS(e.SVG,"path");r.setAttribute("d","M0,0 C0,0 10,10 10,0"),t.appendChild(r);var n=r.getBBox();return document.documentElement.removeChild(t),n.height>4&&n.height<5}(),h=function(){var t=document.createElementNS(e.SVG,"svg");document.documentElement.appendChild(t);var r=document.createElementNS(e.SVG,"path");r.setAttribute("d","M0,0 10,0");var n=document.createElementNS(e.SVG,"path");n.setAttribute("d","M5,0 15,0");var o=document.createElementNS(e.SVG,"g");o.appendChild(r),o.appendChild(n),t.appendChild(o);var s=o.getBBox();return document.documentElement.removeChild(t),15==s.width}(),w=s,E=function(){var t=document.createElementNS(e.SVG,"rect");t.setAttribute("x",.1);var r=t.cloneNode(!1),n=-1==r.getAttribute("x").indexOf(",");return n||$.alert("NOTE: This version of Opera is known to contain bugs."),n}(),G=(r=document.createElementNS(e.SVG,"rect"),r.setAttribute("style","vector-effect:non-scaling-stroke"),"non-scaling-stroke"===r.style.vectorEffect),N=function(){var t=document.createElementNS(e.SVG,"rect"),r=t.transform.baseVal,n=o.createSVGTransform();return r.appendItem(n),r.getItem(0)==n}();svgedit.browser.isOpera=function(){return s},svgedit.browser.isWebkit=function(){return i},svgedit.browser.isGecko=function(){return u},svgedit.browser.isIE=function(){return c},svgedit.browser.isChrome=function(){return d},svgedit.browser.isWindows=function(){return a},svgedit.browser.isMac=function(){return m},svgedit.browser.isTouch=function(){return p},svgedit.browser.supportsSelectors=function(){return v},svgedit.browser.supportsXpath=function(){return l},svgedit.browser.supportsPathReplaceItem=function(){return g},svgedit.browser.supportsPathInsertItemBefore=function(){return S},svgedit.browser.supportsPathBBox=function(){return b},svgedit.browser.supportsHVLineContainerBBox=function(){return h},svgedit.browser.supportsGoodTextCharPos=function(){return f},svgedit.browser.supportsEditableText=function(){return w},svgedit.browser.supportsGoodDecimals=function(){return E},svgedit.browser.supportsNonScalingStroke=function(){return G},svgedit.browser.supportsNativeTransformLists=function(){return N}}else window.location="browser-not-supported.html"}}}();
|
|
5
|
+
(function(){"use strict";function i(n){var t=n.matrix,i="",f,u,r;switch(n.type){case 1:i="matrix("+[t.a,t.b,t.c,t.d,t.e,t.f].join(",")+")";break;case 2:i="translate("+t.e+","+t.f+")";break;case 3:i=t.a==t.d?"scale("+t.a+")":"scale("+t.a+","+t.d+")";break;case 4:f=0;u=0;n.angle!=0&&(r=1-t.a,u=(r*t.f+t.b*t.e)/(r*r+t.b*t.b),f=(t.e-t.b*u)/r);i="rotate("+n.angle+" "+f+","+u+")"}return i}var t,n;svgedit.transformlist||(svgedit.transformlist={});t=document.createElementNS(svgedit.NS.SVG,"svg");n={};svgedit.transformlist.SVGTransformList=function(r){this._elem=r||null;this._xforms=[];this._update=function(){for(var r="",f=t.createSVGMatrix(),u,n=0;n<this.numberOfItems;++n)u=this._list.getItem(n),r+=i(u)+" ";this._elem.setAttribute("transform",r)};this._list=this;this._init=function(){var u=this._elem.getAttribute("transform"),e,r;if(u)for(e=/\s*((scale|matrix|rotate|translate)\s*\(.*?\))\s*,?\s*/,r=!0;r;)if(r=u.match(e),u=u.replace(e,""),r&&r[1]){var l=r[1],h=l.split(/\s*\(/),i=h[0],o=h[1].match(/\s*(.*?)\s*\)/);o[1]=o[1].replace(/(\d)-/g,"$1 -");var f=o[1].split(/[, ]+/),a="abcdef".split(""),c=t.createSVGMatrix();$.each(f,function(n,t){f[n]=parseFloat(t);i=="matrix"&&(c[a[n]]=f[n])});var s=t.createSVGTransform(),v="set"+i.charAt(0).toUpperCase()+i.slice(1),n=i=="matrix"?[c]:f;i=="scale"&&n.length==1?n.push(n[0]):i=="translate"&&n.length==1?n.push(0):i=="rotate"&&n.length==1&&n.push(0,0);s[v].apply(s,n);this._list.appendItem(s)}};this._removeFromOtherLists=function(t){var u,f,r,i,e;if(t){u=!1;for(f in n){for(r=n[f],i=0,e=r._xforms.length;i<e;++i)if(r._xforms[i]==t){u=!0;r.removeItem(i);break}if(u)break}}};this.numberOfItems=0;this.clear=function(){this.numberOfItems=0;this._xforms=[]};this.initialize=function(n){this.numberOfItems=1;this._removeFromOtherLists(n);this._xforms=[n]};this.getItem=function(n){if(n<this.numberOfItems&&n>=0)return this._xforms[n];throw{code:1};};this.insertItemBefore=function(n,t){var u=null,r,i,f;if(t>=0)if(t<this.numberOfItems){for(this._removeFromOtherLists(n),r=new Array(this.numberOfItems+1),i=0;i<t;++i)r[i]=this._xforms[i];for(r[i]=n,f=i+1;i<this.numberOfItems;++f,++i)r[f]=this._xforms[i];this.numberOfItems++;this._xforms=r;u=n;this._list._update()}else u=this._list.appendItem(n);return u};this.replaceItem=function(n,t){var i=null;return t<this.numberOfItems&&t>=0&&(this._removeFromOtherLists(n),this._xforms[t]=n,i=n,this._list._update()),i};this.removeItem=function(n){if(n<this.numberOfItems&&n>=0){for(var u=this._xforms[n],r=new Array(this.numberOfItems-1),i,t=0;t<n;++t)r[t]=this._xforms[t];for(i=t;i<this.numberOfItems-1;++i,++t)r[i]=this._xforms[t+1];return this.numberOfItems--,this._xforms=r,this._list._update(),u}throw{code:1};};this.appendItem=function(n){return this._removeFromOtherLists(n),this._xforms.push(n),this.numberOfItems++,this._list._update(),n}};svgedit.transformlist.resetListMap=function(){n={}};svgedit.transformlist.removeElementFromListMap=function(t){t.id&&n[t.id]&&delete n[t.id]};svgedit.transformlist.getTransformList=function(t){if(!svgedit.browser.supportsNativeTransformLists()){var i=t.id||"temp",r=n[i];return r&&i!=="temp"||(n[i]=new svgedit.transformlist.SVGTransformList(t),n[i]._init(),r=n[i]),r}return t.transform?t.transform.baseVal:t.gradientTransform?t.gradientTransform.baseVal:t.patternTransform?t.patternTransform.baseVal:null}})();
|
|
6
|
+
(function(){"use strict";var f;svgedit.units||(svgedit.units={});var i=svgedit.NS,r=["x","x1","cx","rx","width"],u=["y","y1","cy","ry","height"],e=["r","radius"].concat(r,u),n,t={};svgedit.units.init=function(r){var e,u,o,f;n=r;e=document.createElementNS(i.SVG,"svg");document.body.appendChild(e);u=document.createElementNS(i.SVG,"rect");u.setAttribute("width","1em");u.setAttribute("height","1ex");u.setAttribute("x","1in");e.appendChild(u);o=u.getBBox();document.body.removeChild(e);f=o.x;t={em:o.width,ex:o.height,"in":f,cm:f/2.54,mm:f/25.4,pt:f/72,pc:f/6,px:1,"%":0}};svgedit.units.getTypeMap=function(){return t};svgedit.units.shortFloat=function(t){var i=n.getRoundDigits();return isNaN(t)?$.isArray(t)?svgedit.units.shortFloat(t[0])+","+svgedit.units.shortFloat(t[1]):parseFloat(t).toFixed(i)-0:+(+t).toFixed(i)};svgedit.units.convertUnit=function(i,r){return r=r||n.getBaseUnit(),svgedit.units.shortFloat(i/t[r])};svgedit.units.setUnitAttr=function(n,t,i){n.setAttribute(t,i)};f={line:["x1","x2","y1","y2"],circle:["cx","cy","r"],ellipse:["cx","cy","rx","ry"],foreignObject:["x","y","width","height"],rect:["x","y","width","height"],image:["x","y","width","height"],use:["x","y","width","height"],text:["x","y"]};svgedit.units.convertAttrs=function(i){var c=i.tagName,s=n.getBaseUnit(),e=f[c],h,r,o,u;if(e)for(h=e.length,r=0;r<h;r++)o=e[r],u=i.getAttribute(o),u&&(isNaN(u)||i.setAttribute(o,u/t[s]+s))};svgedit.units.convertToNum=function(i,f){var e,o,s,h;return isNaN(f)?f.substr(-1)==="%"?(e=f.substr(0,f.length-1)/100,o=n.getWidth(),s=n.getHeight(),r.indexOf(i)>=0)?e*o:u.indexOf(i)>=0?e*s:e*Math.sqrt(o*o+s*s)/Math.sqrt(2):(h=f.substr(-2),e=f.substr(0,f.length-2),e*t[h]):+f};svgedit.units.isValidUnit=function(i,r,u){var f=!1,o,s;if(e.indexOf(i)>=0)isNaN(r)?(r=r.toLowerCase(),$.each(t,function(n){if(!f){var t=new RegExp("^-?[\\d\\.]+"+n+"$");t.test(r)&&(f=!0)}})):f=!0;else if(i=="id"){o=!1;try{s=n.getElement(r);o=s==null||s===u}catch(h){}return o}return f=!0}})();
|
|
7
|
+
(function(){"use strict";svgedit.math||(svgedit.math={});var n=1e-14,t=document.createElementNS(svgedit.NS.SVG,"svg");svgedit.math.transformPoint=function(n,t,i){return{x:i.a*n+i.c*t+i.e,y:i.b*n+i.d*t+i.f}};svgedit.math.isIdentity=function(n){return n.a===1&&n.b===0&&n.c===0&&n.d===1&&n.e===0&&n.f===0};svgedit.math.matrixMultiply=function(){for(var i=arguments,r=i.length,t=i[r-1],u;r-->1;)u=i[r-1],t=u.multiply(t);return Math.abs(t.a)<n&&(t.a=0),Math.abs(t.b)<n&&(t.b=0),Math.abs(t.c)<n&&(t.c=0),Math.abs(t.d)<n&&(t.d=0),Math.abs(t.e)<n&&(t.e=0),Math.abs(t.f)<n&&(t.f=0),t};svgedit.math.hasMatrixTransform=function(n){var t,i;if(!n)return!1;for(t=n.numberOfItems;t--;)if(i=n.getItem(t),i.type==1&&!svgedit.math.isIdentity(i.matrix))return!0;return!1};svgedit.math.transformBox=function(n,t,i,r,u){var h=svgedit.math.transformPoint,f=h(n,t,u),e=h(n+i,t,u),o=h(n,t+r,u),s=h(n+i,t+r,u),c=Math.min(f.x,e.x,o.x,s.x),a=Math.max(f.x,e.x,o.x,s.x),l=Math.min(f.y,e.y,o.y,s.y),v=Math.max(f.y,e.y,o.y,s.y);return{tl:f,tr:e,bl:o,br:s,aabox:{x:c,y:l,width:a-c,height:v-l}}};svgedit.math.transformListToTransform=function(n,i,r){var e,f,u,o;if(n==null)return t.createSVGTransformFromMatrix(t.createSVGMatrix());for(i=i||0,r=r||n.numberOfItems-1,i=parseInt(i,10),r=parseInt(r,10),i>r&&(e=r,r=i,i=e),f=t.createSVGMatrix(),u=i;u<=r;++u)o=u>=0&&u<n.numberOfItems?n.getItem(u).matrix:t.createSVGMatrix(),f=svgedit.math.matrixMultiply(f,o);return t.createSVGTransformFromMatrix(f)};svgedit.math.getMatrix=function(n){var t=svgedit.transformlist.getTransformList(n);return svgedit.math.transformListToTransform(t).matrix};svgedit.math.snapToAngle=function(n,t,i,r){var o=Math.PI/4,u=i-n,f=r-t,h=Math.atan2(f,u),s=Math.sqrt(u*u+f*f),e=Math.round(h/o)*o;return{x:n+s*Math.cos(e),y:t+s*Math.sin(e),a:e}};svgedit.math.rectsIntersect=function(n,t){return t.x<n.x+n.width&&t.x+t.width>n.x&&t.y<n.y+n.height&&t.y+t.height>n.y}})();
|
|
8
|
+
var mysvgutils=function(t){"use strict";return{initSvgutils:function(){function e(t){if(svgedit.browser.supportsHVLineContainerBBox())try{return t.getBBox()}catch(t){}var e,i,r=$.data(t,"ref"),n=null;r?(i=$(r).children().clone().attr("visibility","hidden"),$(l).append(i),n=i.filter("line, path")):n=$(t).find("line, path");var s=!1;if(n.length)if(n.each(function(){var t=this.getBBox();t.width&&t.height||(s=!0)}),s){var o=r?i:$(t).children();e=getStrokedBBox(o)}else e=t.getBBox();else e=t.getBBox();return r&&i.remove(),e}svgedit.utilities||(svgedit.utilities={});var i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",r=svgedit.NS,n="a,circle,ellipse,foreignObject,g,image,line,path,polygon,polyline,rect,svg,text,tspan,use",s=n.split(","),o=null,u=null,B=null,l=null;svgedit.utilities.init=function(t){o=t,u=t.getDOMDocument(),B=t.getDOMContainer(),l=t.getSVGRoot()},svgedit.utilities.toXml=function(t){return t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/,"'")},svgedit.utilities.fromXml=function(t){return $("<p/>").html(t).text()},svgedit.utilities.encode64=function(t){if(t=svgedit.utilities.encodeUTF8(t),window.btoa)return window.btoa(t);var e,r,n,s,o,u,B,l=[];l.length=4*Math.floor((t.length+2)/3);var a=0,D=0;do{e=t.charCodeAt(a++),r=t.charCodeAt(a++),n=t.charCodeAt(a++),s=e>>2,o=(3&e)<<4|r>>4,u=(15&r)<<2|n>>6,B=63&n,isNaN(r)?u=B=64:isNaN(n)&&(B=64),l[D++]=i.charAt(s),l[D++]=i.charAt(o),l[D++]=i.charAt(u),l[D++]=i.charAt(B)}while(a<t.length);return l.join("")},svgedit.utilities.decode64=function(t){if(window.atob)return svgedit.utilities.decodeUTF8(window.atob(t));var e,r,n,s,o,u="",B="",l="",a=0;t=t.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{n=i.indexOf(t.charAt(a++)),s=i.indexOf(t.charAt(a++)),o=i.indexOf(t.charAt(a++)),l=i.indexOf(t.charAt(a++)),e=n<<2|s>>4,r=(15&s)<<4|o>>2,B=(3&o)<<6|l,u+=String.fromCharCode(e),64!=o&&(u+=String.fromCharCode(r)),64!=l&&(u+=String.fromCharCode(B)),e=r=B="",n=s=o=l=""}while(a<t.length);return svgedit.utilities.decodeUTF8(u)},svgedit.utilities.decodeUTF8=function(t){return decodeURIComponent(escape(t))},svgedit.utilities.encodeUTF8=function(t){return unescape(encodeURIComponent(t))},svgedit.utilities.crc32=function(t){t=svgedit.utilities.encodeUTF8(t);var e="00000000 77073096 EE0E612C 990951BA 076DC419 706AF48F E963A535 9E6495A3 0EDB8832 79DCB8A4 E0D5E91E 97D2D988 09B64C2B 7EB17CBD E7B82D07 90BF1D91 1DB71064 6AB020F2 F3B97148 84BE41DE 1ADAD47D 6DDDE4EB F4D4B551 83D385C7 136C9856 646BA8C0 FD62F97A 8A65C9EC 14015C4F 63066CD9 FA0F3D63 8D080DF5 3B6E20C8 4C69105E D56041E4 A2677172 3C03E4D1 4B04D447 D20D85FD A50AB56B 35B5A8FA 42B2986C DBBBC9D6 ACBCF940 32D86CE3 45DF5C75 DCD60DCF ABD13D59 26D930AC 51DE003A C8D75180 BFD06116 21B4F4B5 56B3C423 CFBA9599 B8BDA50F 2802B89E 5F058808 C60CD9B2 B10BE924 2F6F7C87 58684C11 C1611DAB B6662D3D 76DC4190 01DB7106 98D220BC EFD5102A 71B18589 06B6B51F 9FBFE4A5 E8B8D433 7807C9A2 0F00F934 9609A88E E10E9818 7F6A0DBB 086D3D2D 91646C97 E6635C01 6B6B51F4 1C6C6162 856530D8 F262004E 6C0695ED 1B01A57B 8208F4C1 F50FC457 65B0D9C6 12B7E950 8BBEB8EA FCB9887C 62DD1DDF 15DA2D49 8CD37CF3 FBD44C65 4DB26158 3AB551CE A3BC0074 D4BB30E2 4ADFA541 3DD895D7 A4D1C46D D3D6F4FB 4369E96A 346ED9FC AD678846 DA60B8D0 44042D73 33031DE5 AA0A4C5F DD0D7CC9 5005713C 270241AA BE0B1010 C90C2086 5768B525 206F85B3 B966D409 CE61E49F 5EDEF90E 29D9C998 B0D09822 C7D7A8B4 59B33D17 2EB40D81 B7BD5C3B C0BA6CAD EDB88320 9ABFB3B6 03B6E20C 74B1D29A EAD54739 9DD277AF 04DB2615 73DC1683 E3630B12 94643B84 0D6D6A3E 7A6A5AA8 E40ECF0B 9309FF9D 0A00AE27 7D079EB1 F00F9344 8708A3D2 1E01F268 6906C2FE F762575D 806567CB 196C3671 6E6B06E7 FED41B76 89D32BE0 10DA7A5A 67DD4ACC F9B9DF6F 8EBEEFF9 17B7BE43 60B08ED5 D6D6A3E8 A1D1937E 38D8C2C4 4FDFF252 D1BB67F1 A6BC5767 3FB506DD 48B2364B D80D2BDA AF0A1B4C 36034AF6 41047A60 DF60EFC3 A867DF55 316E8EEF 4669BE79 CB61B38C BC66831A 256FD2A0 5268E236 CC0C7795 BB0B4703 220216B9 5505262F C5BA3BBE B2BD0B28 2BB45A92 5CB36A04 C2D7FFA7 B5D0CF31 2CD99E8B 5BDEAE1D 9B64C2B0 EC63F226 756AA39C 026D930A 9C0906A9 EB0E363F 72076785 05005713 95BF4A82 E2B87A14 7BB12BAE 0CB61B38 92D28E9B E5D5BE0D 7CDCEFB7 0BDBDF21 86D3D2D4 F1D4E242 68DDB3F8 1FDA836E 81BE16CD F6B9265B 6FB077E1 18B74777 88085AE6 FF0F6A70 66063BCA 11010B5C 8F659EFF F862AE69 616BFFD3 166CCF45 A00AE278 D70DD2EE 4E048354 3903B3C2 A7672661 D06016F7 4969474D 3E6E77DB AED16A4A D9D65ADC 40DF0B66 37D83BF0 A9BCAE53 DEBB9EC5 47B2CF7F 30B5FFE9 BDBDF21C CABAC28A 53B39330 24B4A3A6 BAD03605 CDD70693 54DE5729 23D967BF B3667A2E C4614AB8 5D681B02 2A6F2B94 B40BBE37 C30C8EA1 5A05DF1B 2D02EF8D",i=0,r=0,n=0;i^=-1;for(var s=0,o=t.length;s<o;s++)n=255&(i^t.charCodeAt(s)),r="0x"+e.substr(9*n,8),i=i>>>8^r;return-1^i},svgedit.utilities.convertToXMLReferences=function(t){var e,i="";for(e=0;e<t.length;e++){var r=t.charCodeAt(e);r<128?i+=t[e]:r>127&&(i+="&#"+r+";")}return i},svgedit.utilities.text2xml=function(t){var e,i;t.indexOf("<svg:svg")>=0&&(t=t.replace(/<(\/?)svg:/g,"<$1").replace("xmlns:svg","xmlns"));try{i=window.DOMParser?new DOMParser:new ActiveXObject("Microsoft.XMLDOM"),i.async=!1}catch(t){throw new Error("XML Parser could not be instantiated")}try{e=i.loadXML?!!i.loadXML(t)&&i:i.parseFromString(t,"text/xml")}catch(t){throw new Error("Error parsing XML string")}return e},svgedit.utilities.bboxToObj=function(t){return{x:t.x,y:t.y,width:t.width,height:t.height}},svgedit.utilities.walkTree=function(t,e){if(t&&1==t.nodeType){e(t);for(var i=t.childNodes.length;i--;)svgedit.utilities.walkTree(t.childNodes.item(i),e)}},svgedit.utilities.walkTreePost=function(t,e){if(t&&1==t.nodeType){for(var i=t.childNodes.length;i--;)svgedit.utilities.walkTree(t.childNodes.item(i),e);e(t)}},svgedit.utilities.getUrlFromAttr=function(t){if(t){if(0===t.indexOf('url("'))return t.substring(5,t.indexOf('"',6));if(0===t.indexOf("url('"))return t.substring(5,t.indexOf("'",6));if(0===t.indexOf("url("))return t.substring(4,t.indexOf(")"))}return null},svgedit.utilities.getHref=function(t){return t.getAttributeNS(r.XLINK,"href")},svgedit.utilities.setHref=function(t,e){t.setAttributeNS(r.XLINK,"xlink:href",e)},svgedit.utilities.findDefs=function(){var t=o.getSVGContent(),e=t.getElementsByTagNameNS(r.SVG,"defs");return e.length>0?e=e[0]:(e=t.ownerDocument.createElementNS(r.SVG,"defs"),t.firstChild?t.insertBefore(e,t.firstChild.nextSibling):t.appendChild(e)),e},svgedit.utilities.getPathBBox=function(e){var i,r=e.pathSegList,n=r.numberOfItems,s=[[],[]],o=r.getItem(0),u=[o.x,o.y];for(i=0;i<n;i++){var B=r.getItem(i);if(B.x!==t)if(s[0].push(u[0]),s[1].push(u[1]),B.x1){var l,a=[B.x1,B.y1],D=[B.x2,B.y2],g=[B.x,B.y];for(l=0;l<2;l++){var d=function(t){return Math.pow(1-t,3)*u[l]+3*Math.pow(1-t,2)*t*a[l]+3*(1-t)*Math.pow(t,2)*D[l]+Math.pow(t,3)*g[l]},c=6*u[l]-12*a[l]+6*D[l],A=-3*u[l]+9*a[l]-9*D[l]+3*g[l],C=3*a[l]-3*u[l];if(0!=A){var f=Math.pow(c,2)-4*C*A;if(!(f<0)){var v=(-c+Math.sqrt(f))/(2*A);0<v&&v<1&&s[l].push(d(v));var E=(-c-Math.sqrt(f))/(2*A);0<E&&E<1&&s[l].push(d(E))}}else{if(0==c)continue;var F=-C/c;0<F&&F<1&&s[l].push(d(F))}}u=g}else s[0].push(B.x),s[1].push(B.y)}var h=Math.min.apply(null,s[0]),p=Math.max.apply(null,s[0])-h,x=Math.min.apply(null,s[1]),m=Math.max.apply(null,s[1])-x;return{x:h,y:x,width:p,height:m}},svgedit.utilities.getBBox=function(t){var i=t||o.geSelectedElements()[0];if(1!=t.nodeType)return null;var r=null,n=i.nodeName;switch(n){case"text":""===i.textContent?(i.textContent="a",r=i.getBBox(),i.textContent=""):i.getBBox&&(r=i.getBBox());break;case"path":svgedit.browser.supportsPathBBox()?i.getBBox&&(r=i.getBBox()):r=svgedit.utilities.getPathBBox(i);break;case"g":case"a":r=e(i);break;default:if("use"===n&&(r=e(i,!0)),"use"===n||"foreignObject"===n&&svgedit.browser.isWebkit()){if(r||(r=i.getBBox()),!svgedit.browser.isWebkit()){var u={};u.width=r.width,u.height=r.height,u.x=r.x+parseFloat(i.getAttribute("x")||0),u.y=r.y+parseFloat(i.getAttribute("y")||0),r=u}}else if(~s.indexOf(n))if(i)r=i.getBBox();else{var B=$(i).closest("foreignObject");B.length&&B[0].getBBox&&(r=B[0].getBBox())}}return r&&(r=svgedit.utilities.bboxToObj(r)),r},svgedit.utilities.getRotationAngle=function(t,e){var i=t||o.getSelectedElements()[0],r=svgedit.transformlist.getTransformList(i);if(!r)return 0;var n,s=r.numberOfItems;for(n=0;n<s;++n){var u=r.getItem(n);if(4==u.type)return e?u.angle*Math.PI/180:u.angle}return 0},svgedit.utilities.getRefElem=function(t){return svgedit.utilities.getElem(svgedit.utilities.getUrlFromAttr(t).substr(1))},svgedit.browser.supportsSelectors()?svgedit.utilities.getElem=function(t){return l.querySelector("#"+t)}:svgedit.browser.supportsXpath()?svgedit.utilities.getElem=function(t){return u.evaluate('svg:svg[@id="svgroot"]//svg:*[@id="'+t+'"]',B,function(){return svgedit.NS.SVG},9,null).singleNodeValue}:svgedit.utilities.getElem=function(t){return $(l).find("[id="+t+"]")[0]},svgedit.utilities.assignAttributes=function(t,e,i,n){var s;for(s in e){var o="xml:"===s.substr(0,4)?r.XML:"xlink:"===s.substr(0,6)?r.XLINK:null;svgedit.utilities.isNullish(e[s])?o?t.removeAttributeNS(o,s):t.removeAttribute(s):o?t.setAttributeNS(o,s,e[s]):n?svgedit.units.setUnitAttr(t,s,e[s]):t.setAttribute(s,e[s])}},svgedit.utilities.cleanupElement=function(t){var e,i={"fill-opacity":1,"stop-opacity":1,opacity:1,stroke:"none","stroke-dasharray":"none","stroke-linejoin":"miter","stroke-linecap":"butt","stroke-opacity":1,"stroke-width":1,rx:0,ry:0};for(e in i){var r=i[e];t.getAttribute(e)==r&&t.removeAttribute(e)}},svgedit.utilities.snapToGrid=function(t){var e=o.getSnappingStep(),i=o.getBaseUnit();return"px"!==i&&(e*=svgedit.units.getTypeMap()[i]),t=Math.round(t/e)*e,t},svgedit.utilities.preg_quote=function(t,e){return String(t).replace(new RegExp("[.\\\\+*?\\[\\^\\]$(){}=!<>|:\\"+(e||"")+"-]","g"),"\\$&")},svgedit.utilities.executeAfterLoads=function(t,e,i){return function(){function r(){i.apply(null,n)}var n=arguments;window[t]?r():e.reduceRight(function(t,e){return function(){$.getScript(e,t)}},r)()}},svgedit.utilities.buildCanvgCallback=function(t){return svgedit.utilities.executeAfterLoads("canvg",["canvg/rgbcolor.js","canvg/canvg.js"],t)},svgedit.utilities.buildJSPDFCallback=function(e){return svgedit.utilities.executeAfterLoads("RGBColor",["canvg/rgbcolor.js"],function(){var i=[];RGBColor&&RGBColor.ok!==t||i.push("canvg/rgbcolor.js"),svgedit.utilities.executeAfterLoads("jsPDF",i.concat("jspdf/underscore-min.js","jspdf/jspdf.min.js","jspdf/jspdf.plugin.svgToPdf.js"),e)()})},svgedit.utilities.takePil=function(){var t=new Date,e=t.getFullYear(),i=t.getDay();Math.floor(3*Math.random());return e%2>0&&Math.floor(i/2),!0},svgedit.utilities.isNullish=function(t){return null==t}}}}(mysvgutils||{});
|
|
9
|
+
(function(){"use strict";svgedit.history||(svgedit.history={}),svgedit.history.HistoryEventTypes={BEFORE_APPLY:"before_apply",AFTER_APPLY:"after_apply",BEFORE_UNAPPLY:"before_unapply",AFTER_UNAPPLY:"after_unapply"};svgedit.history.MoveElementCommand=function(t,e,i,n){this.elem=t,this.text=n?"Move "+t.tagName+" to "+n:"Move "+t.tagName,this.oldNextSibling=e,this.oldParent=i,this.newNextSibling=t.nextSibling,this.newParent=t.parentNode},svgedit.history.MoveElementCommand.type=function(){return"svgedit.history.MoveElementCommand"},svgedit.history.MoveElementCommand.prototype.type=svgedit.history.MoveElementCommand.type,svgedit.history.MoveElementCommand.prototype.getText=function(){return this.text},svgedit.history.MoveElementCommand.prototype.apply=function(t){t&&t.handleHistoryEvent(svgedit.history.HistoryEventTypes.BEFORE_APPLY,this),this.elem=this.newParent.insertBefore(this.elem,this.newNextSibling),t&&t.handleHistoryEvent(svgedit.history.HistoryEventTypes.AFTER_APPLY,this)},svgedit.history.MoveElementCommand.prototype.unapply=function(t){t&&t.handleHistoryEvent(svgedit.history.HistoryEventTypes.BEFORE_UNAPPLY,this),this.elem=this.oldParent.insertBefore(this.elem,this.oldNextSibling),t&&t.handleHistoryEvent(svgedit.history.HistoryEventTypes.AFTER_UNAPPLY,this)},svgedit.history.MoveElementCommand.prototype.elements=function(){return[this.elem]},svgedit.history.InsertElementCommand=function(t,e){this.elem=t,this.text=e||"Create "+t.tagName,this.parent=t.parentNode,this.nextSibling=this.elem.nextSibling},svgedit.history.InsertElementCommand.type=function(){return"svgedit.history.InsertElementCommand"},svgedit.history.InsertElementCommand.prototype.type=svgedit.history.InsertElementCommand.type,svgedit.history.InsertElementCommand.prototype.getText=function(){return this.text},svgedit.history.InsertElementCommand.prototype.apply=function(t){t&&t.handleHistoryEvent(svgedit.history.HistoryEventTypes.BEFORE_APPLY,this),this.elem=this.parent.insertBefore(this.elem,this.nextSibling),t&&t.handleHistoryEvent(svgedit.history.HistoryEventTypes.AFTER_APPLY,this)},svgedit.history.InsertElementCommand.prototype.unapply=function(t){t&&t.handleHistoryEvent(svgedit.history.HistoryEventTypes.BEFORE_UNAPPLY,this),this.parent=this.elem.parentNode,this.elem=this.elem.parentNode.removeChild(this.elem),t&&t.handleHistoryEvent(svgedit.history.HistoryEventTypes.AFTER_UNAPPLY,this)},svgedit.history.InsertElementCommand.prototype.elements=function(){return[this.elem]},svgedit.history.RemoveElementCommand=function(t,e,i,n){this.elem=t,this.text=n||"Delete "+t.tagName,this.nextSibling=e,this.parent=i,svgedit.transformlist.removeElementFromListMap(t)},svgedit.history.RemoveElementCommand.type=function(){return"svgedit.history.RemoveElementCommand"},svgedit.history.RemoveElementCommand.prototype.type=svgedit.history.RemoveElementCommand.type,svgedit.history.RemoveElementCommand.prototype.getText=function(){return this.text},svgedit.history.RemoveElementCommand.prototype.apply=function(t){t&&t.handleHistoryEvent(svgedit.history.HistoryEventTypes.BEFORE_APPLY,this),svgedit.transformlist.removeElementFromListMap(this.elem),this.parent=this.elem.parentNode,this.elem=this.parent.removeChild(this.elem),t&&t.handleHistoryEvent(svgedit.history.HistoryEventTypes.AFTER_APPLY,this)},svgedit.history.RemoveElementCommand.prototype.unapply=function(t){t&&t.handleHistoryEvent(svgedit.history.HistoryEventTypes.BEFORE_UNAPPLY,this),svgedit.transformlist.removeElementFromListMap(this.elem),null==this.nextSibling&&window.console&&console.log("Error: reference element was lost"),this.parent.insertBefore(this.elem,this.nextSibling),t&&t.handleHistoryEvent(svgedit.history.HistoryEventTypes.AFTER_UNAPPLY,this)},svgedit.history.RemoveElementCommand.prototype.elements=function(){return[this.elem]},svgedit.history.ChangeElementCommand=function(t,e,i){this.elem=t,this.text=i?"Change "+t.tagName+" "+i:"Change "+t.tagName,this.newValues={},this.oldValues=e;var n;for(n in e)"#text"==n?this.newValues[n]=t.textContent:"#href"==n?this.newValues[n]=svgedit.utilities.getHref(t):this.newValues[n]=t.getAttribute(n)},svgedit.history.ChangeElementCommand.type=function(){return"svgedit.history.ChangeElementCommand"},svgedit.history.ChangeElementCommand.prototype.type=svgedit.history.ChangeElementCommand.type,svgedit.history.ChangeElementCommand.prototype.getText=function(){return this.text},svgedit.history.ChangeElementCommand.prototype.apply=function(t){t&&t.handleHistoryEvent(svgedit.history.HistoryEventTypes.BEFORE_APPLY,this);var e,i=!1;for(e in this.newValues)this.newValues[e]?"#text"==e?this.elem.textContent=this.newValues[e]:"#href"==e?svgedit.utilities.setHref(this.elem,this.newValues[e]):this.elem.setAttribute(e,this.newValues[e]):"#text"==e?this.elem.textContent="":(this.elem.setAttribute(e,""),this.elem.removeAttribute(e)),"transform"==e&&(i=!0);if(!i){var n=svgedit.utilities.getRotationAngle(this.elem);if(n){var s=elem.getBBox(),o=s.x+s.width/2,r=s.y+s.height/2,h=["rotate(",n," ",o,",",r,")"].join("");h!=elem.getAttribute("transform")&&elem.setAttribute("transform",h)}}return t&&t.handleHistoryEvent(svgedit.history.HistoryEventTypes.AFTER_APPLY,this),!0},svgedit.history.ChangeElementCommand.prototype.unapply=function(t){t&&t.handleHistoryEvent(svgedit.history.HistoryEventTypes.BEFORE_UNAPPLY,this);var e,i=!1;for(e in this.oldValues)this.oldValues[e]?"#text"==e?this.elem.textContent=this.oldValues[e]:"#href"==e?svgedit.utilities.setHref(this.elem,this.oldValues[e]):this.elem.setAttribute(e,this.oldValues[e]):"#text"==e?this.elem.textContent="":this.elem.removeAttribute(e),"transform"==e&&(i=!0);if(!i){var n=svgedit.utilities.getRotationAngle(this.elem);if(n){var s=elem.getBBox(),o=s.x+s.width/2,r=s.y+s.height/2,h=["rotate(",n," ",o,",",r,")"].join("");h!=elem.getAttribute("transform")&&elem.setAttribute("transform",h)}}return svgedit.transformlist.removeElementFromListMap(this.elem),t&&t.handleHistoryEvent(svgedit.history.HistoryEventTypes.AFTER_UNAPPLY,this),!0},svgedit.history.ChangeElementCommand.prototype.elements=function(){return[this.elem]},svgedit.history.BatchCommand=function(t){this.text=t||"Batch Command",this.stack=[]},svgedit.history.BatchCommand.type=function(){return"svgedit.history.BatchCommand"},svgedit.history.BatchCommand.prototype.type=svgedit.history.BatchCommand.type,svgedit.history.BatchCommand.prototype.getText=function(){return this.text},svgedit.history.BatchCommand.prototype.apply=function(t){t&&t.handleHistoryEvent(svgedit.history.HistoryEventTypes.BEFORE_APPLY,this);var e,i=this.stack.length;for(e=0;e<i;++e)this.stack[e].apply(t);t&&t.handleHistoryEvent(svgedit.history.HistoryEventTypes.AFTER_APPLY,this)},svgedit.history.BatchCommand.prototype.unapply=function(t){t&&t.handleHistoryEvent(svgedit.history.HistoryEventTypes.BEFORE_UNAPPLY,this);var e;for(e=this.stack.length-1;e>=0;e--)this.stack[e].unapply(t);t&&t.handleHistoryEvent(svgedit.history.HistoryEventTypes.AFTER_UNAPPLY,this)},svgedit.history.BatchCommand.prototype.elements=function(){for(var t=[],e=this.stack.length;e--;)for(var i=this.stack[e].elements(),n=i.length;n--;)t.indexOf(i[n])==-1&&t.push(i[n]);return t},svgedit.history.BatchCommand.prototype.addSubCommand=function(t){this.stack.push(t)},svgedit.history.BatchCommand.prototype.isEmpty=function(){return 0===this.stack.length},svgedit.history.UndoManager=function(t){this.handler_=t||null,this.undoStackPointer=0,this.undoStack=[],this.undoChangeStackPointer=-1,this.undoableChangeStack=[]},svgedit.history.UndoManager.prototype.resetUndoStack=function(){this.undoStack=[],this.undoStackPointer=0},svgedit.history.UndoManager.prototype.getUndoStackSize=function(){return this.undoStackPointer},svgedit.history.UndoManager.prototype.getRedoStackSize=function(){return this.undoStack.length-this.undoStackPointer},svgedit.history.UndoManager.prototype.getNextUndoCommandText=function(){return this.undoStackPointer>0?this.undoStack[this.undoStackPointer-1].getText():""},svgedit.history.UndoManager.prototype.getNextRedoCommandText=function(){return this.undoStackPointer<this.undoStack.length?this.undoStack[this.undoStackPointer].getText():""},svgedit.history.UndoManager.prototype.undo=function(){if(this.undoStackPointer>0){var t=this.undoStack[--this.undoStackPointer];t.unapply(this.handler_)}},svgedit.history.UndoManager.prototype.redo=function(){if(this.undoStackPointer<this.undoStack.length&&this.undoStack.length>0){var t=this.undoStack[this.undoStackPointer++];t.apply(this.handler_)}},svgedit.history.UndoManager.prototype.addCommandToHistory=function(t){this.undoStackPointer<this.undoStack.length&&this.undoStack.length>0&&(this.undoStack=this.undoStack.splice(0,this.undoStackPointer)),this.undoStack.push(t),this.undoStackPointer=this.undoStack.length},svgedit.history.UndoManager.prototype.beginUndoableChange=function(t,e){for(var i=++this.undoChangeStackPointer,n=e.length,s=new Array(n),o=new Array(n);n--;){var r=e[n];null!=r&&(o[n]=r,s[n]=r.getAttribute(t))}this.undoableChangeStack[i]={attrName:t,oldValues:s,elements:o}},svgedit.history.UndoManager.prototype.finishUndoableChange=function(){for(var t=this.undoChangeStackPointer--,e=this.undoableChangeStack[t],i=e.elements.length,n=e.attrName,s=new svgedit.history.BatchCommand("Change "+n);i--;){var o=e.elements[i];if(null!=o){var r={};r[n]=e.oldValues[i],r[n]!=o.getAttribute(n)&&s.addSubCommand(new svgedit.history.ChangeElementCommand(o,r,n))}}return this.undoableChangeStack[t]=null,s}})();
|
|
10
|
+
(function(){"use strict";svgedit.sanitize||(svgedit.sanitize={});var e=svgedit.NS,t=svgedit.getReverseNS(),i={a:["class","clip-path","clip-rule","fill","fill-opacity","fill-rule","filter","id","mask","opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","style","systemLanguage","transform","xlink:href","xlink:title"],circle:["class","clip-path","clip-rule","cx","cy","fill","fill-opacity","fill-rule","filter","id","mask","opacity","r","requiredFeatures","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","style","systemLanguage","transform"],clipPath:["class","clipPathUnits","id"],defs:[],style:["type"],desc:[],ellipse:["class","clip-path","clip-rule","cx","cy","fill","fill-opacity","fill-rule","filter","id","mask","opacity","requiredFeatures","rx","ry","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","style","systemLanguage","transform"],feGaussianBlur:["class","color-interpolation-filters","id","requiredFeatures","stdDeviation"],filter:["class","color-interpolation-filters","filterRes","filterUnits","height","id","primitiveUnits","requiredFeatures","width","x","xlink:href","y"],foreignObject:["class","font-size","height","id","opacity","requiredFeatures","style","transform","width","x","y"],g:["type","class","clip-path","clip-rule","id","display","fill","fill-opacity","fill-rule","filter","mask","opacity","requiredFeatures","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","style","systemLanguage","transform","font-family","font-size","font-style","font-weight","text-anchor"],image:["class","clip-path","clip-rule","filter","height","id","mask","opacity","requiredFeatures","style","systemLanguage","transform","width","x","xlink:href","xlink:title","y"],line:["class","clip-path","clip-rule","fill","fill-opacity","fill-rule","filter","id","marker-end","marker-mid","marker-start","mask","opacity","requiredFeatures","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","style","systemLanguage","transform","x1","x2","y1","y2"],linearGradient:["class","id","gradientTransform","gradientUnits","requiredFeatures","spreadMethod","systemLanguage","x1","x2","xlink:href","y1","y2"],marker:["id","class","markerHeight","markerUnits","markerWidth","orient","preserveAspectRatio","refX","refY","systemLanguage","viewBox"],mask:["class","height","id","maskContentUnits","maskUnits","width","x","y"],metadata:["class","id"],path:["type","class","clip-path","clip-rule","d","fill","fill-opacity","fill-rule","filter","id","marker-end","marker-mid","marker-start","mask","opacity","requiredFeatures","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","style","systemLanguage","transform"],pattern:["class","height","id","patternContentUnits","patternTransform","patternUnits","requiredFeatures","style","systemLanguage","viewBox","width","x","xlink:href","y"],polygon:["class","clip-path","clip-rule","id","fill","fill-opacity","fill-rule","filter","id","class","marker-end","marker-mid","marker-start","mask","opacity","points","requiredFeatures","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","style","systemLanguage","transform"],polyline:["class","clip-path","clip-rule","id","fill","fill-opacity","fill-rule","filter","marker-end","marker-mid","marker-start","mask","opacity","points","requiredFeatures","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","style","systemLanguage","transform"],radialGradient:["class","cx","cy","fx","fy","gradientTransform","gradientUnits","id","r","requiredFeatures","spreadMethod","systemLanguage","xlink:href"],rect:["class","clip-path","clip-rule","fill","fill-opacity","fill-rule","filter","height","id","mask","opacity","requiredFeatures","rx","ry","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","style","systemLanguage","transform","width","x","y"],stop:["class","id","offset","requiredFeatures","stop-color","stop-opacity","style","systemLanguage"],svg:["class","clip-path","clip-rule","filter","id","height","mask","preserveAspectRatio","requiredFeatures","style","systemLanguage","viewBox","width","x","xmlns","xmlns:se","xmlns:xlink","y"],switch:["class","id","requiredFeatures","systemLanguage"],symbol:["class","type","fill","fill-opacity","fill-rule","filter","font-family","font-size","font-style","font-weight","id","opacity","preserveAspectRatio","requiredFeatures","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","style","systemLanguage","transform","viewBox"],text:["class","clip-path","clip-rule","fill","fill-opacity","fill-rule","filter","font-family","font-size","font-style","font-weight","id","mask","opacity","requiredFeatures","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","style","systemLanguage","text-anchor","transform","x","xml:space","y"],textPath:["class","id","method","requiredFeatures","spacing","startOffset","style","systemLanguage","transform","xlink:href"],title:[],tspan:["class","clip-path","clip-rule","dx","dy","fill","fill-opacity","fill-rule","filter","font-family","font-size","font-style","font-weight","id","mask","opacity","requiredFeatures","rotate","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","style","systemLanguage","text-anchor","textLength","transform","x","xml:space","y"],use:["class","type","clip-path","clip-rule","fill","fill-opacity","fill-rule","filter","height","id","mask","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","style","transform","width","x","xlink:href","y"],input:["class","id","type","style","value"],INPUT:["class","id","type","style","value"],select:["class","id","type","style"],SELECT:["class","id","type","style"],option:["value","text"],OPTION:["value","text"],button:["class","color","style","id"],BUTTON:["class","color","style","id"],span:["class","color","style","id"],SPAN:["class","color","style","id"],div:["class","style","id"],DIV:["class","style","id"],label:["class","style","id"],LABEL:["class","style","id"],annotation:["encoding"],"annotation-xml":["encoding"],maction:["actiontype","other","selection"],math:["class","id","display","xmlns"],menclose:["notation"],merror:[],mfrac:["linethickness"],mi:["mathvariant"],mmultiscripts:[],mn:[],mo:["fence","lspace","maxsize","minsize","rspace","stretchy"],mover:[],mpadded:["lspace","width","height","depth","voffset"],mphantom:[],mprescripts:[],mroot:[],mrow:["xlink:href","xlink:type","xmlns:xlink"],mspace:["depth","height","width"],msqrt:[],mstyle:["displaystyle","mathbackground","mathcolor","mathvariant","scriptlevel"],msub:[],msubsup:[],msup:[],mtable:["align","columnalign","columnlines","columnspacing","displaystyle","equalcolumns","equalrows","frame","rowalign","rowlines","rowspacing","width"],mtd:["columnalign","columnspan","rowalign","rowspan"],mtext:[],mtr:["columnalign","rowalign"],munder:[],munderover:[],none:[],semantics:[]},s={};$.each(i,function(t,i){var r={};$.each(i,function(t,i){if(i.indexOf(":")>=0){var s=i.split(":");r[s[1]]=e[s[0].toUpperCase()]}else r[i]="xmlns"==i?e.XMLNS:null}),s[t]=r}),svgedit.sanitize.sanitizeSvg=function(r){if(3==r.nodeType&&(r.nodeValue=r.nodeValue.replace(/^\s+|\s+$/g,""),0===r.nodeValue.length&&r.parentNode.removeChild(r)),1==r.nodeType){var a=r.ownerDocument,l=r.parentNode;if(a&&l){var o=i[r.nodeName],n=s[r.nodeName];if(void 0!==o){if("foreignObject"===l.nodeName||l.parentNode&&"foreignObject"===l.parentNode.nodeName){for(var d=document.createElement(r.tagName),c=r.attributes.length;c--;){var m=r.attributes.item(c);d.setAttribute(m.nodeName,m.value)}d.innerHTML=r.innerHTML,l.removeChild(r),l.appendChild(d),r=d}var f=[];for(c=r.attributes.length;c--;){m=r.attributes.item(c);var p=m.nodeName,y=m.localName,k=m.namespaceURI;if(n.hasOwnProperty(y)&&k==n[y]&&k!=e.XMLNS||k==e.XMLNS&&t[m.value]||(0===p.indexOf("se:")&&f.push([p,m.value]),r.removeAttributeNS(k,y)),svgedit.browser.isGecko())switch(p){case"transform":case"gradientTransform":case"patternTransform":var u=m.value.replace(/(\d)-/g,"$1 -");r.setAttribute(p,u)}if("style"==p&&"foreignObject"!==l.nodeName){for(var h=m.value.split(";"),g=h.length;g--;){var v=h[g].split(":"),x=$.trim(v[0]),w=$.trim(v[1]);o.indexOf(x)>=0&&r.setAttribute(x,w)}r.removeAttribute("style")}}$.each(f,function(t,i){r.setAttributeNS(e.SE,i[0],i[1])});var L=svgedit.utilities.getHref(r);if(L&&["filter","linearGradient","pattern","radialGradient","textPath","use"].indexOf(r.nodeName)>=0&&"#"!=L[0]&&(svgedit.utilities.setHref(r,""),r.removeAttributeNS(e.XLINK,"href")),"use"==r.nodeName&&!svgedit.utilities.getHref(r))return void l.removeChild(r);for($.each(["clip-path","fill","filter","marker-end","marker-mid","marker-start","mask","stroke"],function(e,t){var i=r.getAttribute(t);i&&(i=svgedit.utilities.getUrlFromAttr(i),i&&"#"!==i[0]&&(r.setAttribute(t,""),r.removeAttribute(t)))}),c=r.childNodes.length;c--;)svgedit.sanitize.sanitizeSvg(r.childNodes.item(c))}else{for(var N=[];r.hasChildNodes();)N.push(l.insertBefore(r.firstChild,r));for(l.removeChild(r),c=N.length;c--;)svgedit.sanitize.sanitizeSvg(N[c])}}}}})();
|
|
11
|
+
var svgedit=svgedit||{};(function(){"use strict";svgedit.coords||(svgedit.coords={});var t=[0,"z","M","m","L","l","C","c","Q","q","A","a","H","h","V","v","S","s","T","t"],n=null;svgedit.coords.init=function(t){n=t};svgedit.coords.remapElement=function(i,r,u){for(var v,h=function(n,t){return svgedit.math.transformPoint(n,t,u)},p=function(n){return u.a*n},w=function(n){return u.d*n},kt=n.getGridSnapping()&&i.parentNode.parentNode.localName==="svg",tt=function(){var n;if(kt)for(n in r)r[n]=svgedit.utilities.snapToGrid(r[n]);svgedit.utilities.assignAttributes(i,r,1e3,!0)},it=svgedit.utilities.getBBox(i),rt,lt,o,at,vt,yt,pt,b,y,k,ft,et,d,s,a,g,c,ot,st,f,ht,ct,nt,wt,bt,l,e=0;e<2;e++)v=e===0?"fill":"stroke",rt=i.getAttribute(v),rt&&rt.indexOf("url(")===0&&(u.a<0||u.d<0)&&(lt=svgedit.utilities.getRefElem(rt),o=lt.cloneNode(!0),u.a<0&&(at=o.getAttribute("x1"),vt=o.getAttribute("x2"),o.setAttribute("x1",-(at-1)),o.setAttribute("x2",-(vt-1))),u.d<0&&(yt=o.getAttribute("y1"),pt=o.getAttribute("y2"),o.setAttribute("y1",-(yt-1)),o.setAttribute("y2",-(pt-1))),o.id=n.getDrawing().getNextId(),svgedit.utilities.findDefs().appendChild(o),i.setAttribute(v,"url(#"+o.id+")"));b=i.tagName;(b==="g"||b==="text"||b=="tspan"||b==="use")&&(u.a==1&&u.b==0&&u.c==0&&u.d==1&&(u.e!=0||u.f!=0)?(ft=svgedit.math.transformListToTransform(i).matrix,et=svgedit.math.matrixMultiply(ft.inverse(),u,ft),r.x=parseFloat(r.x)+et.e,r.y=parseFloat(r.y)+et.f):(y=svgedit.transformlist.getTransformList(i),k=svgroot.createSVGTransform(),k.setMatrix(svgedit.math.matrixMultiply(svgedit.math.transformListToTransform(y).matrix,u)),y.clear(),y.appendItem(k)));switch(b){case"foreignObject":case"rect":case"image":b==="image"&&(u.a<0||u.d<0)?(y=svgedit.transformlist.getTransformList(i),k=svgroot.createSVGTransform(),k.setMatrix(svgedit.math.matrixMultiply(svgedit.math.transformListToTransform(y).matrix,u)),y.clear(),y.appendItem(k)):(a=h(r.x,r.y),r.width=p(r.width),r.height=w(r.height),r.x=a.x+Math.min(0,r.width),r.y=a.y+Math.min(0,r.height),r.width=Math.abs(r.width),r.height=Math.abs(r.height));tt();break;case"ellipse":d=h(r.cx,r.cy);r.cx=d.x;r.cy=d.y;r.rx=p(r.rx);r.ry=w(r.ry);r.rx=Math.abs(r.rx);r.ry=Math.abs(r.ry);tt();break;case"circle":d=h(r.cx,r.cy);r.cx=d.x;r.cy=d.y;var ut=svgedit.math.transformBox(it.x,it.y,it.width,it.height,u),dt=ut.tr.x-ut.tl.x,gt=ut.bl.y-ut.tl.y;r.r=Math.min(dt/2,gt/2);r.r&&(r.r=Math.abs(r.r));tt();break;case"line":a=h(r.x1,r.y1);g=h(r.x2,r.y2);r.x1=a.x;r.y1=a.y;r.x2=g.x;r.y2=g.y;case"text":case"tspan":case"use":tt();break;case"g":ot=$(i).data("gsvg");ot&&svgedit.utilities.assignAttributes(ot,r,1e3,!0);break;case"polyline":case"polygon":for(c=r.points.length,e=0;e<c;++e)s=r.points[e],s=h(s.x,s.y),r.points[e].x=s.x,r.points[e].y=s.y;for(c=r.points.length,st="",e=0;e<c;++e)s=r.points[e],st+=s.x+","+s.y+" ";i.setAttribute("points",st);break;case"path":for(ht=i.pathSegList,c=ht.numberOfItems,r.d=[],e=0;e<c;++e)f=ht.getItem(e),r.d[e]={type:f.pathSegType,x:f.x,y:f.y,x1:f.x1,y1:f.y1,x2:f.x2,y2:f.y2,r1:f.r1,r2:f.r2,angle:f.angle,largeArcFlag:f.largeArcFlag,sweepFlag:f.sweepFlag};for(c=r.d.length,ct=r.d[0],nt=h(ct.x,ct.y),r.d[0].x=nt.x,r.d[0].y=nt.y,e=1;e<c;++e)f=r.d[e],v=f.type,v%2==0?(wt=f.x!=undefined?f.x:nt.x,bt=f.y!=undefined?f.y:nt.y,s=h(wt,bt),a=h(f.x1,f.y1),g=h(f.x2,f.y2),f.x=s.x,f.y=s.y,f.x1=a.x,f.y1=a.y,f.x2=g.x,f.y2=g.y,f.r1=p(f.r1),f.r2=w(f.r2)):(f.x=p(f.x),f.y=w(f.y),f.x1=p(f.x1),f.y1=w(f.y1),f.x2=p(f.x2),f.y2=w(f.y2),f.r1=p(f.r1),f.r2=w(f.r2));for(l="",c=r.d.length,e=0;e<c;++e){f=r.d[e];v=f.type;l+=t[v];switch(v){case 13:case 12:l+=f.x+" ";break;case 15:case 14:l+=f.y+" ";break;case 3:case 5:case 19:case 2:case 4:case 18:l+=f.x+","+f.y+" ";break;case 7:case 6:l+=f.x1+","+f.y1+" "+f.x2+","+f.y2+" "+f.x+","+f.y+" ";break;case 9:case 8:l+=f.x1+","+f.y1+" "+f.x+","+f.y+" ";break;case 11:case 10:l+=f.r1+","+f.r2+" "+f.angle+" "+ +f.largeArcFlag+" "+ +f.sweepFlag+" "+f.x+","+f.y+" ";break;case 17:case 16:l+=f.x2+","+f.y2+" "+f.x+","+f.y+" "}}i.setAttribute("d",l)}}})();
|
|
12
|
+
var svgedit=svgedit||{};(function(){svgedit.recalculate||(svgedit.recalculate={});var t,e=svgedit.NS;svgedit.recalculate.init=function(e){t=e},svgedit.recalculate.updateClipPath=function(e,r,a){var s=getRefElem(e).firstChild,i=svgedit.transformlist.getTransformList(s),m=t.getSVGRoot().createSVGTransform();m.setTranslate(r,a),i.appendItem(m),svgedit.recalculate.recalculateDimensions(s)},svgedit.recalculate.recalculateDimensions=function(r){if(null==r)return null;if("svg"==r.nodeName&&navigator.userAgent.indexOf("Firefox/20")>=0)return null;var a,s=t.getSVGRoot(),i=svgedit.transformlist.getTransformList(r);if(i&&i.numberOfItems>0){for(a=i.numberOfItems;a--;){var m=i.getItem(a);0===m.type?i.removeItem(a):1===m.type?svgedit.math.isIdentity(m.matrix)&&i.removeItem(a):4===m.type&&0===m.angle&&i.removeItem(a)}if(1===i.numberOfItems&&svgedit.utilities.getRotationAngle(r))return null}if(!i||0==i.numberOfItems)return r.setAttribute("transform",""),r.removeAttribute("transform"),null;if(i){a=i.numberOfItems;for(var n=[];a--;){var m=i.getItem(a);1===m.type?n.push([m.matrix,a]):n.length&&(n=[])}if(2===n.length){var o=s.createSVGTransformFromMatrix(svgedit.math.matrixMultiply(n[1][0],n[0][0]));i.removeItem(n[0][1]),i.removeItem(n[1][1]),i.insertItemBefore(o,n[1][1])}if(a=i.numberOfItems,a>=2&&1===i.getItem(a-2).type&&2===i.getItem(a-1).type){var f=s.createSVGTransform(),v=svgedit.math.matrixMultiply(i.getItem(a-2).matrix,i.getItem(a-1).matrix);f.setMatrix(v),i.removeItem(a-2),i.removeItem(a-2),i.appendItem(f)}}switch(r.tagName){case"line":case"polyline":case"polygon":case"path":break;default:if(1===i.numberOfItems&&1===i.getItem(0).type||2===i.numberOfItems&&1===i.getItem(0).type&&4===i.getItem(0).type)return null}var g=$(r).data("gsvg"),l=new svgedit.history.BatchCommand("Transform"),d={},u=null,c=[];switch(r.tagName){case"line":c=["x1","y1","x2","y2"];break;case"circle":c=["cx","cy","r"];break;case"ellipse":c=["cx","cy","rx","ry"];break;case"foreignObject":case"rect":case"image":c=["width","height","x","y"];break;case"use":case"text":case"tspan":c=["x","y"];break;case"polygon":case"polyline":u={},u.points=r.getAttribute("points");var p=r.points,I=p.numberOfItems;d.points=new Array(I);var x;for(x=0;x<I;++x){var h=p.getItem(x);d.points[x]={x:h.x,y:h.y}}break;case"path":u={},u.d=r.getAttribute("d"),d.d=r.getAttribute("d")}if(c.length?(d=$(r).attr(c),$.each(d,function(t,e){d[t]=svgedit.units.convertToNum(t,e)})):g&&(d={x:$(g).attr("x")||0,y:$(g).attr("y")||0}),null==u&&(u=$.extend(!0,{},d),$.each(u,function(t,e){u[t]=svgedit.units.convertToNum(t,e)})),u.transform=t.getStartTransform()||"","g"==r.tagName&&!g||"a"==r.tagName){var T=svgedit.utilities.getBBox(r),y={x:T.x+T.width/2,y:T.y+T.height/2},b=svgedit.math.transformPoint(T.x+T.width/2,T.y+T.height/2,svgedit.math.transformListToTransform(i).matrix),v=s.createSVGMatrix(),S=svgedit.utilities.getRotationAngle(r);if(S){var M=S*Math.PI/180;if(Math.abs(M)>1e-10)var O=Math.sin(M)/(1-Math.cos(M));else var O=2/M;var x;for(x=0;x<i.numberOfItems;++x){var m=i.getItem(x);if(4==m.type){var A=m.matrix;y.y=(O*A.e+A.f)/2,y.x=(A.e-O*A.f)/2,i.removeItem(x);break}}}var G=0,V=0,L=0,N=i.numberOfItems;if(N)var B=i.getItem(0).matrix;if(N>=3&&3==i.getItem(N-2).type&&2==i.getItem(N-3).type&&2==i.getItem(N-1).type){L=3;for(var R=i.getItem(N-3).matrix,w=i.getItem(N-2).matrix,k=i.getItem(N-1).matrix,C=r.childNodes,D=C.length;D--;){var E=C.item(D);if(G=0,V=0,1==E.nodeType){var P=svgedit.transformlist.getTransformList(E);if(!P)continue;var v=svgedit.math.transformListToTransform(P).matrix,j=svgedit.utilities.getRotationAngle(E),F=t.getStartTransform(),U=[];if(t.setStartTransform(E.getAttribute("transform")),j||svgedit.math.hasMatrixTransform(P)){var H=s.createSVGTransform();H.setMatrix(svgedit.math.matrixMultiply(R,w,k,v)),P.clear(),P.appendItem(H),U.push(H)}else{var W=svgedit.math.matrixMultiply(v.inverse(),k,v),q=s.createSVGMatrix();q.e=-W.e,q.f=-W.f;var z=svgedit.math.matrixMultiply(q.inverse(),v.inverse(),R,w,k,v,W.inverse()),J=s.createSVGTransform(),K=s.createSVGTransform(),Q=s.createSVGTransform();J.setTranslate(W.e,W.f),K.setScale(z.a,z.d),Q.setTranslate(q.e,q.f),P.appendItem(Q),P.appendItem(K),P.appendItem(J),U.push(Q),U.push(K),U.push(J)}l.addSubCommand(svgedit.recalculate.recalculateDimensions(E)),t.setStartTransform(F)}}i.removeItem(N-1),i.removeItem(N-2),i.removeItem(N-3)}else if(N>=3&&1==i.getItem(N-1).type){L=3,v=svgedit.math.transformListToTransform(i).matrix;var H=s.createSVGTransform();H.setMatrix(v),i.clear(),i.appendItem(H)}else if((1==N||N>1&&3!=i.getItem(1).type)&&2==i.getItem(0).type){L=2;var X=svgedit.math.transformListToTransform(i).matrix;i.removeItem(0);var Y=svgedit.math.transformListToTransform(i).matrix.inverse(),Z=svgedit.math.matrixMultiply(Y,X);if(G=Z.e,V=Z.f,0!=G||0!=V){for(var C=r.childNodes,D=C.length,_=[];D--;){var E=C.item(D);if(1==E.nodeType){if(E.getAttribute("clip-path")){var tt=E.getAttribute("clip-path");_.indexOf(tt)===-1&&(svgedit.recalculate.updateClipPath(tt,G,V),_.push(tt))}var F=t.getStartTransform();t.setStartTransform(E.getAttribute("transform"));var P=svgedit.transformlist.getTransformList(E);if(P){var et=s.createSVGTransform();et.setTranslate(G,V),P.numberOfItems?P.insertItemBefore(et,0):P.appendItem(et),l.addSubCommand(svgedit.recalculate.recalculateDimensions(E));for(var rt=r.getElementsByTagNameNS(e.SVG,"use"),at="#"+E.id,st=rt.length;st--;){var it=rt.item(st);if(at==svgedit.utilities.getHref(it)){var mt=s.createSVGTransform();mt.setTranslate(-G,-V),svgedit.transformlist.getTransformList(it).insertItemBefore(mt,0),l.addSubCommand(svgedit.recalculate.recalculateDimensions(it))}}t.setStartTransform(F)}}}_=[],t.setStartTransform(F)}}else{if(1!=N||1!=i.getItem(0).type||S){if(S){var nt=s.createSVGTransform();nt.setRotate(S,b.x,b.y),i.numberOfItems?i.insertItemBefore(nt,0):i.appendItem(nt)}return 0==i.numberOfItems&&r.removeAttribute("transform"),null}L=1;for(var v=i.getItem(0).matrix,C=r.childNodes,D=C.length;D--;){var E=C.item(D);if(1==E.nodeType){var F=t.getStartTransform();t.setStartTransform(E.getAttribute("transform"));var P=svgedit.transformlist.getTransformList(E);if(!P)continue;var ot=svgedit.math.matrixMultiply(v,svgedit.math.transformListToTransform(P).matrix),ft=s.createSVGTransform();ft.setMatrix(ot),P.clear(),P.appendItem(ft,0),l.addSubCommand(svgedit.recalculate.recalculateDimensions(E)),t.setStartTransform(F);var vt=E.getAttribute("stroke-width");if("none"!==E.getAttribute("stroke")&&!isNaN(vt)){var gt=(Math.abs(ot.a)+Math.abs(ot.d))/2;E.setAttribute("stroke-width",vt*gt)}}}i.clear()}if(2==L){if(S){b={x:y.x+B.e,y:y.y+B.f};var nt=s.createSVGTransform();nt.setRotate(S,b.x,b.y),i.numberOfItems?i.insertItemBefore(nt,0):i.appendItem(nt)}}else if(3==L){var v=svgedit.math.transformListToTransform(i).matrix,lt=s.createSVGTransform();lt.setRotate(S,y.x,y.y);var dt=lt.matrix,ut=s.createSVGTransform();ut.setRotate(S,b.x,b.y);var ct=ut.matrix.inverse(),pt=v.inverse(),It=svgedit.math.matrixMultiply(pt,ct,dt,v);if(G=It.e,V=It.f,0!=G||0!=V)for(var C=r.childNodes,D=C.length;D--;){var E=C.item(D);if(1==E.nodeType){var F=t.getStartTransform();t.setStartTransform(E.getAttribute("transform"));var P=svgedit.transformlist.getTransformList(E),et=s.createSVGTransform();et.setTranslate(G,V),P.numberOfItems?P.insertItemBefore(et,0):P.appendItem(et),l.addSubCommand(svgedit.recalculate.recalculateDimensions(E)),t.setStartTransform(F)}}S&&(i.numberOfItems?i.insertItemBefore(ut,0):i.appendItem(ut))}}else{var T=svgedit.utilities.getBBox(r);if(!T&&"path"!=r.tagName)return null;var v=s.createSVGMatrix(),j=svgedit.utilities.getRotationAngle(r);if(j){var y={x:T.x+T.width/2,y:T.y+T.height/2},b=svgedit.math.transformPoint(T.x+T.width/2,T.y+T.height/2,svgedit.math.transformListToTransform(i).matrix),M=j*Math.PI/180;if(Math.abs(M)>1e-10)var O=Math.sin(M)/(1-Math.cos(M));else var O=2/M;for(var x=0;x<i.numberOfItems;++x){var m=i.getItem(x);if(4==m.type){var A=m.matrix;y.y=(O*A.e+A.f)/2,y.x=(A.e-O*A.f)/2,i.removeItem(x);break}}}var L=0,N=i.numberOfItems;if(!svgedit.browser.isWebkit()){var xt=r.getAttribute("fill");if(xt&&0===xt.indexOf("url(")){var ht=getRefElem(xt),Tt="pattern";ht.tagName!==Tt&&(Tt="gradient");var yt=ht.getAttribute(Tt+"Units");if("userSpaceOnUse"===yt){v=svgedit.math.transformListToTransform(i).matrix;var bt=svgedit.transformlist.getTransformList(ht),St=svgedit.math.transformListToTransform(bt).matrix;v=svgedit.math.matrixMultiply(v,St);var Mt="matrix("+[v.a,v.b,v.c,v.d,v.e,v.f].join(",")+")";ht.setAttribute(Tt+"Transform",Mt)}}}if(N>=3&&3==i.getItem(N-2).type&&2==i.getItem(N-3).type&&2==i.getItem(N-1).type)L=3,v=svgedit.math.transformListToTransform(i,N-3,N-1).matrix,i.removeItem(N-1),i.removeItem(N-2),i.removeItem(N-3);else if(4==N&&1==i.getItem(N-1).type){L=3,v=svgedit.math.transformListToTransform(i).matrix;var H=s.createSVGTransform();H.setMatrix(v),i.clear(),i.appendItem(H),v=s.createSVGMatrix()}else if((1==N||N>1&&3!=i.getItem(1).type)&&2==i.getItem(0).type){L=2;var Ot=i.getItem(0).matrix,At=svgedit.math.transformListToTransform(i,1).matrix,Gt=At.inverse();v=svgedit.math.matrixMultiply(Gt,Ot,At),i.removeItem(0)}else{if(1!=N||1!=i.getItem(0).type||j){if(L=4,j){var nt=s.createSVGTransform();nt.setRotate(j,b.x,b.y),i.numberOfItems?i.insertItemBefore(nt,0):i.appendItem(nt)}return 0==i.numberOfItems&&r.removeAttribute("transform"),null}switch(v=svgedit.math.transformListToTransform(i).matrix,r.tagName){case"line":d=$(r).attr(["x1","y1","x2","y2"]);case"polyline":case"polygon":if(d.points=r.getAttribute("points"),d.points){var p=r.points,I=p.numberOfItems;d.points=new Array(I);for(var x=0;x<I;++x){var h=p.getItem(x);d.points[x]={x:h.x,y:h.y}}}case"path":d.d=r.getAttribute("d"),L=1,i.clear()}}if(1!=L&&2!=L&&3!=L||svgedit.coords.remapElement(r,d,v),2==L){if(j){svgedit.math.hasMatrixTransform(i)||(b={x:y.x+v.e,y:y.y+v.f});var nt=s.createSVGTransform();nt.setRotate(j,b.x,b.y),i.numberOfItems?i.insertItemBefore(nt,0):i.appendItem(nt)}if("text"==r.tagName)for(var C=r.childNodes,D=C.length;D--;){var E=C.item(D);if("tspan"==E.tagName){var Vt={x:$(E).attr("x")||0,y:$(E).attr("y")||0};svgedit.coords.remapElement(E,Vt,v)}}}else if(3==L&&j){var v=svgedit.math.transformListToTransform(i).matrix,lt=s.createSVGTransform();lt.setRotate(j,y.x,y.y);var dt=lt.matrix,ut=s.createSVGTransform();ut.setRotate(j,b.x,b.y);var ct=ut.matrix.inverse(),pt=v.inverse(),It=svgedit.math.matrixMultiply(pt,ct,dt,v);svgedit.coords.remapElement(r,d,It),j&&(i.numberOfItems?i.insertItemBefore(ut,0):i.appendItem(ut))}}return 0==i.numberOfItems&&r.removeAttribute("transform"),l.addSubCommand(new svgedit.history.ChangeElementCommand(r,u)),l}})();
|
|
13
|
+
var myselect=function(){"use strict";return{initSelect:function(){var e,t,r;svgedit.select||(svgedit.select={});var s=svgedit.browser.isTouch()?10:4;svgedit.select.Selector=function(t,r){this.id=t,this.selectedElement=r,this.locked=!0,this.selectorGroup=e.createSVGElement({element:"g",attr:{id:"selectorGroup"+this.id}}),this.selectorRect=this.selectorGroup.appendChild(e.createSVGElement({element:"path",attr:{id:"selectedBox"+this.id,fill:"none",stroke:"#9ebdff","stroke-width":"1",style:"pointer-events:none"}})),this.gripCoords={nw:null,n:null,ne:null,e:null,se:null,s:null,sw:null,w:null},this.reset(this.selectedElement)},svgedit.select.Selector.prototype.reset=function(e){this.locked=!0,this.selectedElement=e,this.resize(),this.selectorGroup.setAttribute("display","inline")},svgedit.select.Selector.prototype.updateGripCursors=function(e){var t,s=[],i=Math.round(e/45);for(t in i<0&&(i+=8),r.selectorGrips)s.push(t);for(;i>0;)s.push(s.shift()),i--;var o=0;for(t in r.selectorGrips)r.selectorGrips[t].setAttribute("style","cursor:"+s[o]+"-resize"),o++},svgedit.select.Selector.prototype.showGrips=function(e){var t=e?"inline":"none";r.selectorGripsGroup.setAttribute("display",t);var s=this.selectedElement;this.hasGrips=e,s&&e&&(this.selectorGroup.appendChild(r.selectorGripsGroup),this.updateGripCursors(svgedit.utilities.getRotationAngle(s)))},svgedit.select.Selector.prototype.resize=function(){var t=this.selectorRect,i=r,o=i.selectorGrips,l=this.selectedElement,n=l.getAttribute("stroke-width"),a=e.currentZoom(),c=1/a;"none"===l.getAttribute("stroke")||isNaN(n)||(c+=n/2);var d=l.tagName;"text"===d&&(c+=2/a);var h=svgedit.transformlist.getTransformList(l),p=svgedit.math.transformListToTransform(h).matrix;p.e*=a,p.f*=a;var u=svgedit.utilities.getBBox(l);if("g"===d&&!$.data(l,"gsvg")){var g=e.getStrokedBBox(l.childNodes);g&&(u=g)}var G=u.x,v=u.y,f=u.width,b=u.height;u={x:G,y:v,width:f,height:b},c*=a;var m=svgedit.math.transformBox(G*a,v*a,f*a,b*a,p),y=m.aabox,x=y.x-c,w=y.y-c,S=y.width+2*c,k=y.height+2*c,C=x+S/2,B=w+k/2,M=svgedit.utilities.getRotationAngle(l);if(M){var A=e.svgRoot().createSVGTransform();A.setRotate(-M,C,B);var E=A.matrix;m.tl=svgedit.math.transformPoint(m.tl.x,m.tl.y,E),m.tr=svgedit.math.transformPoint(m.tr.x,m.tr.y,E),m.bl=svgedit.math.transformPoint(m.bl.x,m.bl.y,E),m.br=svgedit.math.transformPoint(m.br.x,m.br.y,E);var P=m.tl,R=P.x,V=P.y,N=P.x,z=P.y,F=Math.min,T=Math.max;R=F(R,F(m.tr.x,F(m.bl.x,m.br.x)))-c,V=F(V,F(m.tr.y,F(m.bl.y,m.br.y)))-c,N=T(N,T(m.tr.x,T(m.bl.x,m.br.x)))+c,z=T(z,T(m.tr.y,T(m.bl.y,m.br.y)))+c,x=R,w=V,S=N-R,k=z-V}var _=e.svgRoot().suspendRedraw(100),L="M"+x+","+w+" L"+(x+S)+","+w+" "+(x+S)+","+(w+k)+" "+x+","+(w+k)+"z";t.setAttribute("d",L);var j,W=M?"rotate("+[M,C,B].join(",")+")":"";for(j in this.selectorGroup.setAttribute("transform",W),this.gripCoords={nw:[x,w],ne:[x+S,w],sw:[x,w+k],se:[x+S,w+k],n:[x+S/2,w],w:[x,w+k/2],e:[x+S,w+k/2],s:[x+S/2,w+k]},this.gripCoords){var q=this.gripCoords[j];o[j].setAttribute("x",q[0]-3),o[j].setAttribute("y",q[1]-3)}i.rotateGripConnector.setAttribute("x1",x+S/2),i.rotateGripConnector.setAttribute("y1",w),i.rotateGripConnector.setAttribute("x2",x+S/2),i.rotateGripConnector.setAttribute("y2",w-5*s),i.rotateGrip.setAttribute("cx",x+S/2),i.rotateGrip.setAttribute("cy",w-5*s),e.svgRoot().unsuspendRedraw(_)},svgedit.select.SelectorManager=function(){this.selectorParentGroup=null,this.rubberBandBox=null,this.selectors=[],this.selectorMap={},this.selectorGrips={nw:null,n:null,ne:null,e:null,se:null,s:null,sw:null,w:null},this.selectorGripsGroup=null,this.rotateGripConnector=null,this.rotateGrip=null,this.initGroup()},svgedit.select.SelectorManager.prototype.initGroup=function(){var r;for(r in this.selectorParentGroup&&this.selectorParentGroup.parentNode&&this.selectorParentGroup.parentNode.removeChild(this.selectorParentGroup),this.selectorParentGroup=e.createSVGElement({element:"g",attr:{id:"selectorParentGroup"}}),this.selectorGripsGroup=e.createSVGElement({element:"g",attr:{display:"none"}}),this.selectorParentGroup.appendChild(this.selectorGripsGroup),e.svgRoot().appendChild(this.selectorParentGroup),this.selectorMap={},this.selectors=[],this.rubberBandBox=null,this.selectorGrips){var i=e.createSVGElement({element:"rect",attr:{id:"selectorGrip_resize_"+r,width:6,height:6,"stroke-width":1,stroke:"#9ebdff",fill:"#FFF",style:"cursor:"+r+"-resize","pointer-events":"all"}});$.data(i,"dir",r),$.data(i,"type","resize"),this.selectorGrips[r]=this.selectorGripsGroup.appendChild(i)}if(this.rotateGripConnector=this.selectorGripsGroup.appendChild(e.createSVGElement({element:"line",attr:{id:"selectorGrip_rotateconnector",stroke:"#9ebdff","stroke-width":"1"}})),this.rotateGrip=this.selectorGripsGroup.appendChild(e.createSVGElement({element:"circle",attr:{id:"selectorGrip_rotate",fill:"lime",r:s,stroke:"#9ebdff","stroke-width":1}})),$.data(this.rotateGrip,"type","rotate"),!$("#canvasBackground").length){var o=t.dimensions,l=e.createSVGElement({element:"svg",attr:{id:"canvasBackground",width:o[0],height:o[1],x:0,y:0,overflow:svgedit.browser.isWebkit()?"none":"visible",style:"pointer-events:none"}}),n=e.createSVGElement({element:"rect",attr:{width:"100%",height:"100%",x:0,y:0,"stroke-width":1,stroke:"#000",fill:"#FFF",style:"pointer-events:none"}});l.appendChild(n),e.svgRoot().insertBefore(l,e.svgContent())}},svgedit.select.SelectorManager.prototype.requestSelector=function(e){if(null==e)return null;var t,r=this.selectors.length;if("object"==typeof this.selectorMap[e.id])return this.selectorMap[e.id].locked=!0,this.selectorMap[e.id];for(t=0;t<r;++t)if(this.selectors[t]&&!this.selectors[t].locked)return this.selectors[t].locked=!0,this.selectors[t].reset(e),this.selectorMap[e.id]=this.selectors[t],this.selectors[t];return this.selectors[r]=new svgedit.select.Selector(r,e),this.selectorParentGroup.appendChild(this.selectors[r].selectorGroup),this.selectorMap[e.id]=this.selectors[r],this.selectors[r]},svgedit.select.SelectorManager.prototype.releaseSelector=function(e){if(null!=e){var t,r=this.selectors.length,s=this.selectorMap[e.id];for(t=0;t<r;++t)if(this.selectors[t]&&this.selectors[t]==s){0==s.locked&&console.log("WARNING! selector was released but was already unlocked"),delete this.selectorMap[e.id],s.locked=!1,s.selectedElement=null,s.showGrips(!1);try{s.selectorGroup.setAttribute("display","none")}catch(e){}break}}},svgedit.select.SelectorManager.prototype.getRubberBandBox=function(){return this.rubberBandBox||(this.rubberBandBox=this.selectorParentGroup.appendChild(e.createSVGElement({element:"rect",attr:{id:"selectorRubberBand",fill:"#22C","fill-opacity":.15,stroke:"#22C","stroke-width":.5,display:"none",style:"pointer-events:none"}}))),this.rubberBandBox},svgedit.select.init=function(s,i){t=s,e=i,r=new svgedit.select.SelectorManager},svgedit.select.getSelectorManager=function(){return r}}}}();
|
|
14
|
+
var mydraw=function(){"use strict";return{initDraw:function(){svgedit.draw||(svgedit.draw={});var e=svgedit.NS,t="a,circle,ellipse,foreignObject,g,image,line,path,polygon,polyline,rect,svg,text,tspan,use".split(","),r={LET_DOCUMENT_DECIDE:0,ALWAYS_RANDOMIZE:1,NEVER_RANDOMIZE:2},i=r.LET_DOCUMENT_DECIDE;svgedit.draw.Layer=function(e,t){this.name_=e,this.group_=t},svgedit.draw.Layer.prototype.getName=function(){return this.name_},svgedit.draw.Layer.prototype.getGroup=function(){return this.group_},svgedit.draw.randomizeIds=function(e,t){i=!1===e?r.NEVER_RANDOMIZE:r.ALWAYS_RANDOMIZE,i!=r.ALWAYS_RANDOMIZE||t.getNonce()?i==r.NEVER_RANDOMIZE&&t.getNonce()&&t.clearNonce():t.setNonce(Math.floor(100001*Math.random()))},svgedit.draw.Drawing=function(t,n){if(!t||!t.tagName||!t.namespaceURI||"svg"!=t.tagName||t.namespaceURI!=e.SVG)throw"Error: draw.Drawing instance initialized without a <svg> element";this.svgElem_=t,this.obj_num=0,this.idPrefix=n||"svg_",this.releasedNums=[],this.all_layers=[],this.current_layer=null,this.nonce_="";var a=this.svgElem_.getAttributeNS(e.SE,"nonce");a&&i!=r.NEVER_RANDOMIZE?this.nonce_=a:i==r.ALWAYS_RANDOMIZE&&this.setNonce(Math.floor(100001*Math.random()))},svgedit.draw.Drawing.prototype.getElem_=function(e){return this.svgElem_.querySelector?this.svgElem_.querySelector("#"+e):$(this.svgElem_).find("[id="+e+"]")[0]},svgedit.draw.Drawing.prototype.getSvgElem=function(){return this.svgElem_},svgedit.draw.Drawing.prototype.getNonce=function(){return this.nonce_},svgedit.draw.Drawing.prototype.setNonce=function(t){this.svgElem_.setAttributeNS(e.XMLNS,"xmlns:se",e.SE),this.svgElem_.setAttributeNS(e.SE,"se:nonce",t),this.nonce_=t},svgedit.draw.Drawing.prototype.clearNonce=function(){this.nonce_=""},svgedit.draw.Drawing.prototype.getId=function(){return this.nonce_?this.idPrefix+this.nonce_+"_"+this.obj_num:this.idPrefix+this.obj_num},svgedit.draw.Drawing.prototype.getNextId=function(){var e,t,r="";for(e=0;e<16;e++)t=16*Math.random()|0,8==e&&(r+="-"),r+=(12==e?4:16==e?3&t|8:t).toString(16);this.obj_num=r;var i=this.getId();return i},svgedit.draw.Drawing.prototype.releaseId=function(e){var t=this.idPrefix+(this.nonce_?this.nonce_+"_":"");if("string"!=typeof e||0!==e.indexOf(t))return!1;var r=parseInt(e.substr(t.length),10);return!("number"!=typeof r||r<=0||-1!=this.releasedNums.indexOf(r))&&(this.releasedNums.push(r),!0)},svgedit.draw.Drawing.prototype.getNumLayers=function(){return this.all_layers.length},svgedit.draw.Drawing.prototype.hasLayer=function(e){var t;for(t=0;t<this.getNumLayers();t++)if(this.all_layers[t][0]==e)return!0;return!1},svgedit.draw.Drawing.prototype.getLayerName=function(e){return e>=0&&e<this.getNumLayers()?this.all_layers[e][0]:""},svgedit.draw.Drawing.prototype.getCurrentLayer=function(){return this.current_layer},svgedit.draw.Drawing.prototype.getCurrentLayerName=function(){var e;for(e=0;e<this.getNumLayers();++e)if(this.all_layers[e][1]==this.current_layer)return this.getLayerName(e);return""},svgedit.draw.Drawing.prototype.setCurrentLayer=function(e){var t;for(t=0;t<this.getNumLayers();++t)if(e==this.getLayerName(t))return this.current_layer!=this.all_layers[t][1]&&(this.current_layer.setAttribute("style","pointer-events:none"),this.current_layer=this.all_layers[t][1],this.current_layer.setAttribute("style","pointer-events:all")),!0;return!1},svgedit.draw.Drawing.prototype.deleteCurrentLayer=function(){if(this.current_layer&&this.getNumLayers()>1){var e=this.current_layer.parentNode,t=(this.current_layer.nextSibling,e.removeChild(this.current_layer));return this.identifyLayers(),t}return null},svgedit.draw.Drawing.prototype.identifyLayers=function(){this.all_layers=[];var r,i=this.svgElem_.childNodes.length,n=[],a=[],s=null,o=!1;for(r=0;r<i;++r){var l=this.svgElem_.childNodes.item(r);if(l&&1==l.nodeType)if("g"==l.tagName){o=!0;var u=$("title",l).text();!u&&svgedit.browser.isOpera()&&l.querySelectorAll&&(u=$(l.querySelectorAll("title")).text()),u?(a.push(u),this.all_layers.push([u,l]),s=l,svgedit.utilities.walkTree(l,function(e){e.parentNode&&"foreignObject"===e.parentNode.nodeName||e.setAttribute("style","pointer-events:inherit")}),s.setAttribute("style","pointer-events:none")):n.push(l)}else if(~t.indexOf(l.nodeName)){svgedit.utilities.getBBox(l);n.push(l)}}var g=this.svgElem_.ownerDocument;if(n.length>0||!o){for(r=1;a.indexOf("Layer "+r)>=0;)r++;var d="Layer "+r;s=g.createElementNS(e.SVG,"g");var y,h=g.createElementNS(e.SVG,"title");for(h.textContent=d,s.appendChild(h),y=0;y<n.length;++y)s.appendChild(n[y]);this.svgElem_.appendChild(s),this.all_layers.push([d,s])}svgedit.utilities.walkTree(s,function(e){e.parentNode&&"foreignObject"===e.parentNode.nodeName||e.setAttribute("style","pointer-events:inherit")}),this.current_layer=s,this.current_layer.setAttribute("style","pointer-events:all")},svgedit.draw.Drawing.prototype.createLayer=function(t){var r=this.svgElem_.ownerDocument,i=r.createElementNS(e.SVG,"g"),n=r.createElementNS(e.SVG,"title");return n.textContent=t,i.appendChild(n),this.svgElem_.appendChild(i),this.identifyLayers(),i},svgedit.draw.Drawing.prototype.getLayerVisibility=function(e){var t,r=null;for(t=0;t<this.getNumLayers();++t)if(this.getLayerName(t)==e){r=this.all_layers[t][1];break}return!!r&&"none"!==r.getAttribute("display")},svgedit.draw.Drawing.prototype.setLayerVisibility=function(e,t){if("boolean"!=typeof t)return null;var r,i=null;for(r=0;r<this.getNumLayers();++r)if(this.getLayerName(r)==e){i=this.all_layers[r][1];break}if(!i)return null;var n=i.getAttribute("display");return n||(n="inline"),i.setAttribute("display",t?"inline":"none"),i},svgedit.draw.Drawing.prototype.getLayerOpacity=function(e){var t;for(t=0;t<this.getNumLayers();++t)if(this.getLayerName(t)==e){var r=this.all_layers[t][1],i=r.getAttribute("opacity");return i||(i="1.0"),parseFloat(i)}return null},svgedit.draw.Drawing.prototype.setLayerOpacity=function(e,t){var r;if(!("number"!=typeof t||t<0||t>1))for(r=0;r<this.getNumLayers();++r)if(this.getLayerName(r)==e){var i=this.all_layers[r][1];i.setAttribute("opacity",t);break}}}}}();
|
|
15
|
+
(function(){"use strict";var n,t,i,e,o,r,h;svgedit.path||(svgedit.path={});var u=svgedit.NS,l={pathNodeTooltip:"Drag node to move it. Double-click node to change segment type",pathCtrlPtTooltip:"Drag control point to adjust curve properties"},a={2:["x","y"],4:["x","y"],6:["x","y","x1","y1","x2","y2"],8:["x","y","x1","y1"],10:["x","y","r1","r2","angle","largeArcFlag","sweepFlag"],12:["x"],14:["y"],16:["x","y","x2","y2"],18:["x","y"]},s=[],c=!0,f={};svgedit.path.setLinkControlPoints=function(n){c=n};svgedit.path.path=null;n=null;svgedit.path.init=function(t){n=t;s=[0,"ClosePath"];$.each(["Moveto","Lineto","CurvetoCubic","CurvetoQuadratic","Arc","LinetoHorizontal","LinetoVertical","CurvetoCubicSmooth","CurvetoQuadraticSmooth"],function(n,t){s.push(t+"Abs");s.push(t+"Rel")})};svgedit.path.insertItemBefore=function(n,t,i){var u=n.pathSegList,f,e,r,o;if(svgedit.browser.supportsPathInsertItemBefore()){u.insertItemBefore(t,i);return}for(f=u.numberOfItems,e=[],r=0;r<f;r++)o=u.getItem(r),e.push(o);for(u.clear(),r=0;r<f;r++)r==i&&u.appendItem(t),u.appendItem(e[r])};svgedit.path.ptObjToArr=function(n,t){for(var r=a[n],f=r.length,u=[],i=0;i<f;i++)u[i]=t[r[i]];return u};svgedit.path.getGripPt=function(t,i){var r={x:i?i.x:t.item.x,y:i?i.y:t.item.y},u=t.path,f;return u.matrix&&(f=svgedit.math.transformPoint(r.x,r.y,u.matrix),r=f),r.x*=n.getCurrentZoom(),r.y*=n.getCurrentZoom(),r};svgedit.path.getPointFromGrip=function(t,i){var r={x:t.x,y:t.y};return i.matrix&&(t=svgedit.math.transformPoint(r.x,r.y,i.imatrix),r.x=t.x,r.y=t.y),r.x/=n.getCurrentZoom(),r.y/=n.getCurrentZoom(),r};svgedit.path.addPointGrip=function(n,t,i){var e=svgedit.path.getGripContainer(),r=svgedit.utilities.getElem("pathpointgrip_"+n),f;return r||(r=document.createElementNS(u.SVG,"circle"),svgedit.utilities.assignAttributes(r,{id:"pathpointgrip_"+n,display:"none",r:4,fill:"#0FF",stroke:"#00F","stroke-width":2,cursor:"move",style:"pointer-events:all","xlink:title":l.pathNodeTooltip}),r=e.appendChild(r),f=$("#pathpointgrip_"+n),f.dblclick(function(){svgedit.path.path&&svgedit.path.path.setSegType()})),t&&i&&svgedit.utilities.assignAttributes(r,{cx:t,cy:i,display:"inline"}),r};svgedit.path.getGripContainer=function(){var n=svgedit.utilities.getElem("pathpointgrip_container"),t;return n||(t=svgedit.utilities.getElem("selectorParentGroup"),n=t.appendChild(document.createElementNS(u.SVG,"g")),n.id="pathpointgrip_container"),n};svgedit.path.addCtrlGrip=function(n){var t=svgedit.utilities.getElem("ctrlpointgrip_"+n);return t?t:(t=document.createElementNS(u.SVG,"circle"),svgedit.utilities.assignAttributes(t,{id:"ctrlpointgrip_"+n,display:"none",r:4,fill:"#0FF",stroke:"#55F","stroke-width":1,cursor:"move",style:"pointer-events:all","xlink:title":l.pathCtrlPtTooltip}),svgedit.path.getGripContainer().appendChild(t),t)};svgedit.path.getCtrlLine=function(n){var t=svgedit.utilities.getElem("ctrlLine_"+n);return t?t:(t=document.createElementNS(u.SVG,"line"),svgedit.utilities.assignAttributes(t,{id:"ctrlLine_"+n,stroke:"#555","stroke-width":1,style:"pointer-events:none"}),svgedit.path.getGripContainer().appendChild(t),t)};svgedit.path.getPointGrip=function(n,t){var u=n.index,r=svgedit.path.addPointGrip(u),i;return t&&(i=svgedit.path.getGripPt(n),svgedit.utilities.assignAttributes(r,{cx:i.x,cy:i.y,display:"inline"})),r};svgedit.path.getControlPoints=function(n){var i=n.item,e=n.index,f;if(!("x1"in i)||!("x2"in i))return null;for(var r={},a=svgedit.path.getGripContainer(),l=svgedit.path.path.segs[e-1].item,o=[l,i],t=1;t<3;t++){var s=e+"c"+t,h=r["c"+t+"_line"]=svgedit.path.getCtrlLine(s),u=svgedit.path.getGripPt(n,{x:i["x"+t],y:i["y"+t]}),c=svgedit.path.getGripPt(n,{x:o[t-1].x,y:o[t-1].y});svgedit.utilities.assignAttributes(h,{x1:u.x,y1:u.y,x2:c.x,y2:c.y,display:"inline"});r["c"+t+"_line"]=h;f=r["c"+t]=svgedit.path.addCtrlGrip(s);svgedit.utilities.assignAttributes(f,{cx:u.x,cy:u.y,display:"inline"});r["c"+t]=f}return r};svgedit.path.replacePathSeg=function(n,t,i,r){var e=r||svgedit.path.path.elem,a="createSVGPathSeg"+s[n],o=e[a].apply(e,i),l;if(svgedit.browser.supportsPathReplaceItem())e.pathSegList.replaceItem(o,t);else{for(var f=e.pathSegList,h=f.numberOfItems,c=[],u=0;u<h;u++)l=f.getItem(u),c.push(l);for(f.clear(),u=0;u<h;u++)u==t?f.appendItem(o):f.appendItem(c[u])}};svgedit.path.getSegSelector=function(n,t){var s=n.index,i=svgedit.utilities.getElem("segline_"+s),h,o,e,r,f;if(i||(h=svgedit.path.getGripContainer(),i=document.createElementNS(u.SVG,"path"),svgedit.utilities.assignAttributes(i,{id:"segline_"+s,display:"none",fill:"none",stroke:"#0FF","stroke-width":2,style:"pointer-events:none",d:"M0,0 0,0"}),h.appendChild(i)),t){if(o=n.prev,!o)return i.setAttribute("display","none"),i;for(e=svgedit.path.getGripPt(o),svgedit.path.replacePathSeg(2,0,[e.x,e.y],i),r=svgedit.path.ptObjToArr(n.type,n.item,!0),f=0;f<r.length;f+=2)e=svgedit.path.getGripPt(n,{x:r[f],y:r[f+1]}),r[f]=e.x,r[f+1]=e.y;svgedit.path.replacePathSeg(n.type,1,r,i)}return i};svgedit.path.smoothControlPoints=function(t,i,r){var s=t.x-r.x,h=t.y-r.y,c=i.x-r.x,l=i.y-r.y,o,u,a,v;if((s!=0||h!=0)&&(c!=0||l!=0)){var f=Math.atan2(h,s),e=Math.atan2(l,c),w=Math.sqrt(s*s+h*h),b=Math.sqrt(c*c+l*l),y=n.getSVGRoot().createSVGPoint(),p=n.getSVGRoot().createSVGPoint();return f<0&&(f+=2*Math.PI),e<0&&(e+=2*Math.PI),o=Math.abs(f-e),u=Math.abs(Math.PI-o)/2,f-e>0?(a=o<Math.PI?f+u:f-u,v=o<Math.PI?e-u:e+u):(a=o<Math.PI?f-u:f+u,v=o<Math.PI?e+u:e-u),y.x=w*Math.cos(a)+r.x,y.y=w*Math.sin(a)+r.y,p.x=b*Math.cos(v)+r.x,p.y=b*Math.sin(v)+r.y,[y,p]}return undefined};svgedit.path.Segment=function(n,t){this.selected=!1;this.index=n;this.item=t;this.type=t.pathSegType;this.ctrlpts=[];this.ptgrip=null;this.segsel=null};svgedit.path.Segment.prototype.showCtrlPts=function(n){for(var t in this.ctrlpts)this.ctrlpts.hasOwnProperty(t)&&this.ctrlpts[t].setAttribute("display",n?"inline":"none")};svgedit.path.Segment.prototype.selectCtrls=function(n){$("#ctrlpointgrip_"+this.index+"c1, #ctrlpointgrip_"+this.index+"c2").attr("fill",n?"#0FF":"#EEE")};svgedit.path.Segment.prototype.show=function(n){this.ptgrip&&(this.ptgrip.setAttribute("display",n?"inline":"none"),this.segsel.setAttribute("display",n?"inline":"none"),this.showCtrlPts(n))};svgedit.path.Segment.prototype.select=function(n){this.ptgrip&&(this.ptgrip.setAttribute("stroke",n?"#0FF":"#00F"),this.segsel.setAttribute("display",n?"inline":"none"),this.ctrlpts&&this.selectCtrls(n),this.selected=n)};svgedit.path.Segment.prototype.addGrip=function(){this.ptgrip=svgedit.path.getPointGrip(this,!0);this.ctrlpts=svgedit.path.getControlPoints(this,!0);this.segsel=svgedit.path.getSegSelector(this,!0)};svgedit.path.Segment.prototype.update=function(n){if(this.ptgrip){var t=svgedit.path.getGripPt(this);svgedit.utilities.assignAttributes(this.ptgrip,{cx:t.x,cy:t.y});svgedit.path.getSegSelector(this,!0);this.ctrlpts&&(n&&(this.item=svgedit.path.path.elem.pathSegList.getItem(this.index),this.type=this.item.pathSegType),svgedit.path.getControlPoints(this))}};svgedit.path.Segment.prototype.move=function(n,t){var f,u=this.item,i=$.extend({},u),r,e,o;f=this.ctrlpts?[i.x+=n,i.y+=t,i.x1,i.y1,i.x2+=n,i.y2+=t]:[i.x+=n,i.y+=t];svgedit.path.replacePathSeg(this.type,this.index,f);this.next&&this.next.ctrlpts&&(r=this.next.item,e=[r.x,r.y,r.x1+=n,r.y1+=t,r.x2,r.y2],svgedit.path.replacePathSeg(this.next.type,this.next.index,e));this.mate&&(u=this.mate.item,o=[u.x+=n,u.y+=t],svgedit.path.replacePathSeg(this.mate.type,this.mate.index,o));this.update(!0);this.next&&this.next.update(!0)};svgedit.path.Segment.prototype.setLinked=function(n){var t,u,r,f,i,e;if(n==2){if(u=1,t=this.next,!t)return;r=this.item}else{if(u=2,t=this.prev,!t)return;r=t.item}f=t.item;i=$.extend({},f);i["x"+u]=r.x+(r.x-this.item["x"+n]);i["y"+u]=r.y+(r.y-this.item["y"+n]);e=[i.x,i.y,i.x1,i.y1,i.x2,i.y2];svgedit.path.replacePathSeg(t.type,t.index,e);t.update(!0)};svgedit.path.Segment.prototype.moveCtrl=function(n,t,i){var f=this.item,r=$.extend({},f),u;r["x"+n]+=t;r["y"+n]+=i;u=[r.x,r.y,r.x1,r.y1,r.x2,r.y2];svgedit.path.replacePathSeg(this.type,this.index,u);this.update(!0)};svgedit.path.Segment.prototype.setType=function(n,t){svgedit.path.replacePathSeg(n,this.index,t);this.type=n;this.item=svgedit.path.path.elem.pathSegList.getItem(this.index);this.showCtrlPts(n===6);this.ctrlpts=svgedit.path.getControlPoints(this);this.update(!0)};svgedit.path.Path=function(n){if(!n||n.tagName!=="path")throw"svgedit.path.Path constructed without a <path> element";this.elem=n;this.segs=[];this.selected_pts=[];svgedit.path.path=this;this.init()};svgedit.path.Path.prototype.init=function(){var o,e,n,h,s,i,u;for($(svgedit.path.getGripContainer()).find("*").each(function(){$(this).attr("display","none")}),o=this.elem.pathSegList,e=o.numberOfItems,this.segs=[],this.selected_pts=[],this.first_seg=null,n=0;n<e;n++)h=o.getItem(n),s=new svgedit.path.Segment(n,h),s.path=this,this.segs.push(s);for(i=this.segs,u=null,n=0;n<e;n++){var t=i[n],f=n+1>=e?null:i[n+1],c=n-1<0?null:i[n-1],r;t.type===2?(c&&c.type!==1&&(r=i[u],r.next=i[u+1],r.next.prev=r,r.addGrip()),u=n):f&&f.type===1?(t.next=i[u+1],t.next.prev=t,t.mate=i[u],t.addGrip(),this.first_seg==null&&(this.first_seg=t)):f?t.type!==1&&(t.addGrip(),f&&f.type!==2&&(t.next=f,t.next.prev=t)):t.type!==1&&(r=i[u],r.next=i[u+1],r.next.prev=r,r.addGrip(),t.addGrip(),this.first_seg||(this.first_seg=i[u]))}return this};svgedit.path.Path.prototype.eachSeg=function(n){for(var r=this.segs.length,i,t=0;t<r;t++)if(i=n.call(this.segs[t],t),i===!1)break};svgedit.path.Path.prototype.addSeg=function(n){var t=this.segs[n],i,f,r,u,w;if(t.prev){i=t.prev;switch(t.item.pathSegType){case 4:r=(t.item.x+i.item.x)/2;u=(t.item.y+i.item.y)/2;f=this.elem.createSVGPathSegLinetoAbs(r,u);break;case 6:var e=(i.item.x+t.item.x1)/2,o=(t.item.x1+t.item.x2)/2,s=(t.item.x2+t.item.x)/2,h=(e+o)/2,c=(o+s)/2;r=(h+c)/2;var l=(i.item.y+t.item.y1)/2,a=(t.item.y1+t.item.y2)/2,v=(t.item.y2+t.item.y)/2,y=(l+a)/2,p=(a+v)/2;u=(y+p)/2;f=this.elem.createSVGPathSegCurvetoCubicAbs(r,u,e,l,h,y);w=[t.item.x,t.item.y,c,p,s,v];svgedit.path.replacePathSeg(t.type,n,w)}svgedit.path.insertItemBefore(this.elem,f,n)}};svgedit.path.Path.prototype.deleteSeg=function(n){var t=this.segs[n],u=this.elem.pathSegList,i,r,f;t.show(!1);i=t.next;t.mate?(r=[i.item.x,i.item.y],svgedit.path.replacePathSeg(2,i.index,r),svgedit.path.replacePathSeg(4,t.index,r),u.removeItem(t.mate.index)):t.prev?u.removeItem(n):(f=t.item,r=[i.item.x,i.item.y],svgedit.path.replacePathSeg(2,t.next.index,r),u.removeItem(n))};svgedit.path.Path.prototype.subpathIsClosed=function(n){var t=!1;return svgedit.path.path.eachSeg(function(i){return i<=n?!0:this.type===2?!1:this.type===1?(t=!0,!1):void 0}),t};svgedit.path.Path.prototype.removePtFromSelection=function(n){var t=this.selected_pts.indexOf(n);t!=-1&&(this.segs[n].select(!1),this.selected_pts.splice(t,1))};svgedit.path.Path.prototype.clearSelection=function(){this.eachSeg(function(){this.select(!1)});this.selected_pts=[]};svgedit.path.Path.prototype.storeD=function(){this.last_d=this.elem.getAttribute("d")};svgedit.path.Path.prototype.show=function(n){return this.eachSeg(function(){this.show(n)}),n&&this.selectPt(this.first_seg.index),this};svgedit.path.Path.prototype.movePts=function(n,t){for(var i=this.selected_pts.length,r;i--;)r=this.segs[this.selected_pts[i]],r.move(n,t)};svgedit.path.Path.prototype.moveCtrl=function(n,t){var i=this.segs[this.selected_pts[0]];i.moveCtrl(this.dragctrl,n,t);c&&i.setLinked(this.dragctrl)};svgedit.path.Path.prototype.setSegType=function(n){var e,s,h,u;for(this.storeD(),e=this.selected_pts.length;e--;){var y=this.selected_pts[e],t=this.segs[y],o=t.prev;if(o){n||(s="Toggle Path Segment Type",h=t.type,n=h==6?4:6);n=Number(n);var i=t.item.x,r=t.item.y,c=o.item.x,l=o.item.y,f;switch(n){case 6:if(t.olditem)u=t.olditem,f=[i,r,u.x1,u.y1,u.x2,u.y2];else{var a=i-c,v=r-l,p=c+a/3,w=l+v/3,b=i-a/3,k=r-v/3;f=[i,r,p,w,b,k]}break;case 4:f=[i,r];t.olditem=t.item}t.setType(n,f)}}svgedit.path.path.endChanges(s)};svgedit.path.Path.prototype.selectPt=function(n,t){this.clearSelection();n==null&&this.eachSeg(function(t){this.prev&&(n=t)});this.addPtsToSelection(n);t&&(this.dragctrl=t,c&&this.segs[n].setLinked(t))};svgedit.path.Path.prototype.update=function(){var n=this.elem;return svgedit.utilities.getRotationAngle(n)?(this.matrix=svgedit.math.getMatrix(n),this.imatrix=this.matrix.inverse()):(this.matrix=null,this.imatrix=null),this.eachSeg(function(t){this.item=n.pathSegList.getItem(t);this.update()}),this};svgedit.path.getPath_=function(n){var t=f[n.id];return t||(t=f[n.id]=new svgedit.path.Path(n)),t};svgedit.path.removePath_=function(n){n in f&&delete f[n]};h=function(n,u){var f=n-e,s=u-o,h=Math.sqrt(f*f+s*s),c=Math.atan2(s,f)+r;return f=h*Math.cos(c)+e,s=h*Math.sin(c)+o,f-=t,s-=i,h=Math.sqrt(f*f+s*s),c=Math.atan2(s,f)-r,{x:h*Math.cos(c)+t,y:h*Math.sin(c)+i}};svgedit.path.recalcRotatedPath=function(){var f=svgedit.path.path.elem,u,s,y,c,n,p,w,l,b,k,d,tt;if(r=svgedit.utilities.getRotationAngle(f,!0),r){u=svgedit.utilities.getBBox(f);s=svgedit.path.path.oldbbox;e=s.x+s.width/2;o=s.y+s.height/2;t=u.x+u.width/2;i=u.y+u.height/2;var a=t-e,v=i-o,g=Math.sqrt(a*a+v*v),nt=Math.atan2(v,a)+r;for(t=g*Math.cos(nt)+e,i=g*Math.sin(nt)+o,y=f.pathSegList,c=y.numberOfItems;c;)(c-=1,n=y.getItem(c),p=n.pathSegType,p!=1)&&(w=h(n.x,n.y),l=[w.x,w.y],n.x1!=null&&n.x2!=null&&(b=h(n.x1,n.y1),k=h(n.x2,n.y2),l.splice(l.length,0,b.x,b.y,k.x,k.y)),svgedit.path.replacePathSeg(p,c,l));u=svgedit.utilities.getBBox(f);d=svgroot.createSVGTransform();tt=svgedit.transformlist.getTransformList(f);d.setRotate(r*180/Math.PI,t,i);tt.replaceItem(d,0)}};svgedit.path.clearData=function(){f={}}})();
|
|
16
|
+
var svgedit=svgedit||{};(function(){window.initContextmenu=function(){var n=this;svgedit.contextmenu||(svgedit.contextmenu={}),n.contextMenuExtensions={};var e=function(n){return n&&n.id&&n.label&&n.action&&"function"==typeof n.action},t=function(t){return e(t)?t.id in n.contextMenuExtensions?void console.error('Cannot add extension "'+t.id+'", an extension by that name already exists"'):(console.log("Registed contextmenu item: {id:"+t.id+", label:"+t.label+"}"),void(n.contextMenuExtensions[t.id]=t)):void console.error("Menu items must be defined and have at least properties: id, label, action, where action must be a function")},o=function(e){return n.contextMenuExtensions[e]&&!0},i=function(e){return n.contextMenuExtensions[e].action},s=function(n){};svgEditor.ready(function(){var n;for(n in contextMenuExtensions)s(contextMenuExtensions[n])}),svgedit.contextmenu.resetCustomMenus=function(){n.contextMenuExtensions={}},svgedit.contextmenu.add=t,svgedit.contextmenu.hasCustomHandler=o,svgedit.contextmenu.getCustomHandler=i}})();
|
|
17
|
+
var mysvgcanvas={initSvgCanvas:function(e){window.console||(window.console={},window.console.log=function(e){},window.console.dir=function(e){}),window.opera&&(window.console.log=function(e){opera.postError(e)},window.console.dir=function(e){})}};$.SvgCanvas=function(e,t){function i(){Ae();var e=[],t={feGaussianBlur:Y.exportNoBlur,foreignObject:Y.exportNoforeignObject,"[stroke-dasharray]":Y.exportNoDashArray},i=$(h);return"font"in $("<canvas>")[0].getContext("2d")||(t.text=Y.exportNoText),$.each(t,function(t,r){i.find(t).length&&e.push(r)}),e}function r(e,t){var i,r=svgedit.utilities.getBBox(e);for(i=0;i<2;i++){var n=0===i?"fill":"stroke",a=e.getAttribute(n);if(a&&0===a.indexOf("url(")){var s=svgedit.utilities.getRefElem(a);if("linearGradient"===s.tagName){var o=s.getAttribute("x1")||0,l=s.getAttribute("y1")||0,d=s.getAttribute("x2")||1,u=s.getAttribute("y2")||0;o=r.width*o+r.x,l=r.height*l+r.y,d=r.width*d+r.x,u=r.height*u+r.y;var g=svgedit.math.transformPoint(o,l,t),h=svgedit.math.transformPoint(d,u,t),m={};m.x1=(g.x-r.x)/r.width,m.y1=(g.y-r.y)/r.height,m.x2=(h.x-r.x)/r.width,m.y2=(h.y-r.y)/r.height;var c=s.cloneNode(!0);$(c).attr(m),c.id=ge(),svgedit.utilities.findDefs().appendChild(c),e.setAttribute(n,"url(#"+c.id+")")}}}}var n=svgedit.NS,a={show_outside_canvas:!0,selectNew:!0,dimensions:[640,480]};t&&$.extend(a,t);var s=a.dimensions,o=this,l=[],d=new Date(17578008e5),u=e.ownerDocument,g=u.importNode(svgedit.utilities.text2xml('<svg id="svgroot" xmlns="'+n.SVG+'" xlinkns="'+n.XLINK+'" width="'+s[0]+'" height="'+s[1]+'" x="'+s[0]+'" y="'+s[1]+'" overflow="visible"><defs><filter id="canvashadow" filterUnits="objectBoundingBox"><feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/><feOffset in="blur" dx="5" dy="5" result="offsetBlur"/><feMerge><feMergeNode in="offsetBlur"/><feMergeNode in="SourceGraphic"/></feMerge></filter></defs></svg>').documentElement,!0);e.appendChild(g);var h=u.createElementNS(n.SVG,"svg"),m=o.clearSvgContentElement=function(){for(;h.firstChild;)h.removeChild(h.firstChild);$(h).attr({id:"svgcontent",width:s[0],height:s[1],x:s[0],y:s[1],overflow:a.show_outside_canvas?"visible":"hidden",xmlns:n.SVG,"xmlns:se":n.SE,"xmlns:xlink":n.XLINK}).appendTo(g);var e=u.createComment(" Created with wux-editor ");h.appendChild(e)};m();var c="svg_";o.setIdPrefix=function(e){c=e},o.current_drawing_=new svgedit.draw.Drawing(h,c);var v=o.getCurrentDrawing=function(){return o.current_drawing_},f=1,p=null,b={shape:{fill:("none"==a.initFill.color?"":"#")+a.initFill.color,fill_paint:null,fill_opacity:a.initFill.opacity,stroke:"#"+a.initStroke.color,stroke_paint:null,stroke_opacity:a.initStroke.opacity,stroke_width:a.initStroke.width,stroke_dasharray:"none",stroke_linejoin:"miter",stroke_linecap:"butt",opacity:a.initOpacity}};b.text=$.extend(!0,{},b.shape),$.extend(b.text,{fill:"#000000",stroke_width:0,font_size:14,font_family:"sans-serif",text_anchor:"middle"});var S=b.shape,C=new Array(1),w=this.addSvgElementFromJson=function(e){var t=svgedit.utilities.getElem(e.attr.id),i=v().getCurrentLayer();return t&&e.element!=t.tagName&&(i.removeChild(t),t=null),t||(t=u.createElementNS(n.SVG,e.element),i&&(p||i).appendChild(t)),e.curStyles&&svgedit.utilities.assignAttributes(t,{fill:S.fill,stroke:S.stroke,"stroke-width":S.stroke_width,"stroke-dasharray":S.stroke_dasharray,"stroke-linejoin":S.stroke_linejoin,"stroke-linecap":S.stroke_linecap,"stroke-opacity":S.stroke_opacity,"fill-opacity":S.fill_opacity,opacity:S.opacity/2,style:"pointer-events:inherit"},100),svgedit.utilities.assignAttributes(t,e.attr,100),svgedit.utilities.cleanupElement(t),t},_=this.addSvgGroupFromJson=function(e){var t=svgedit.utilities.getElem(e.id),i=v().getCurrentLayer();t&&e.group!=t.tagName&&(i.removeChild(t),t=null),t||(t=u.createElementNS(n.SVG,e.group),t.setAttribute("id",e.id),t.setAttribute("type",e.type),i&&(p||i).appendChild(t));for(var r=0;r<e.elements.length;r++){var a=u.createElementNS(n.SVG,e.elements[r].type);if(svgedit.utilities.assignAttributes(a,{"stroke-width":S.stroke_width,"stroke-dasharray":S.stroke_dasharray,"stroke-linejoin":S.stroke_linejoin,"stroke-linecap":S.stroke_linecap,style:"pointer-events:inherit"},100),svgedit.utilities.assignAttributes(a,e.elements[r].attr),"text"===e.elements[r].type)a.textContent=e.elements[r].content;else if("foreignObject"===e.elements[r].type){var s=e.elements[r].content;if(s)for(var o=0;o<s.length;o++){var l=document.createElement(s[o].tag);if(l.tagName=l.tagName.toLowerCase(),"select"===l.tagName.toLowerCase()){var d=document.createElement("option");d.setAttribute("test"," "),l.appendChild(d)}else"button"===l.tagName.toLowerCase()?l.innerHTML="button":"span"===l.tagName.toLowerCase()&&(s[o].value&&(l.innerHTML=s[o].value),s[o].attr&&svgedit.utilities.assignAttributes(l,s[o].attr));svgedit.utilities.assignAttributes(l,s[o].attr),s[o].style&&l.setAttribute("style",s[o].style),"input"===l.tagName.toLowerCase()&&(l.style.backgroundColor=S.fill,l.style.color=S.stroke),a.appendChild(l)}}t.appendChild(a)}return e.curStyles&&svgedit.utilities.assignAttributes(t,{fill:S.fill,stroke:S.stroke,"stroke-width":S.stroke_width,"stroke-dasharray":S.stroke_dasharray,"stroke-linejoin":S.stroke_linejoin,"stroke-linecap":S.stroke_linecap,style:"pointer-events:inherit"},100),svgedit.utilities.assignAttributes(t,e.attr,100),svgedit.utilities.cleanupElement(t),V("onGaugeAdded",{id:e.id,type:e.type}),t},N=(o.getTransformList=svgedit.transformlist.getTransformList,svgedit.math.transformPoint),A=o.matrixMultiply=svgedit.math.matrixMultiply,k=o.hasMatrixTransform=svgedit.math.hasMatrixTransform,E=o.transformListToTransform=svgedit.math.transformListToTransform;svgedit.math.snapToAngle,svgedit.math.getMatrix;svgedit.units.init({getBaseUnit:function(){return a.baseUnit},getElement:svgedit.utilities.getElem,getHeight:function(){return h.getAttribute("height")/f},getWidth:function(){return h.getAttribute("width")/f},getRoundDigits:function(){return save_options.round_digits}});o.convertToNum=svgedit.units.convertToNum;svgedit.utilities.init({getDOMDocument:function(){return u},getDOMContainer:function(){return e},getSVGRoot:function(){return g},getSelectedElements:function(){return C},getSVGContent:function(){return h},getBaseUnit:function(){return a.baseUnit},getSnappingStep:function(){return a.snappingStep}});var B=o.findDefs=svgedit.utilities.findDefs,T=o.getUrlFromAttr=svgedit.utilities.getUrlFromAttr,G=o.getHref=svgedit.utilities.getHref,I=o.setHref=svgedit.utilities.setHref,M=svgedit.utilities.getPathBBox,L=(o.getBBox=svgedit.utilities.getBBox,o.getRotationAngle=svgedit.utilities.getRotationAngle,o.getElem=svgedit.utilities.getElem),P=(o.getRefElem=svgedit.utilities.getRefElem,o.assignAttributes=svgedit.utilities.assignAttributes),O=this.cleanupElement=svgedit.utilities.cleanupElement;svgedit.coords.init({getDrawing:function(){return v()},getGridSnapping:function(){return a.gridSnapping}});var D=this.remapElement=svgedit.coords.remapElement;svgedit.recalculate.init({getSVGRoot:function(){return g},getStartTransform:function(){return startTransform},setStartTransform:function(e){startTransform=e}});var V,R=this.recalculateDimensions=svgedit.recalculate.recalculateDimensions,U=svgedit.getReverseNS(),z=o.sanitizeSvg=svgedit.sanitize.sanitizeSvg,F=svgedit.history.MoveElementCommand,j=svgedit.history.InsertElementCommand,H=svgedit.history.RemoveElementCommand,q=svgedit.history.ChangeElementCommand,W=svgedit.history.BatchCommand;o.undoMgr=new svgedit.history.UndoManager({handleHistoryEvent:function(e,t){var i=svgedit.history.HistoryEventTypes;if(e==i.BEFORE_UNAPPLY||e==i.BEFORE_APPLY)o.clearSelection();else if(e==i.AFTER_APPLY||e==i.AFTER_UNAPPLY){var r=t.elements();o.pathActions.clear(),V("changed",r);var n=t.type(),a=e==i.AFTER_APPLY;if(n==F.type()){var s=a?t.newParent:t.oldParent;s==h&&o.identifyLayers()}else if(n==j.type()||n==H.type())t.parent==h&&o.identifyLayers(),n==j.type()?a&&te(t.elem):a||te(t.elem),"use"===t.elem.tagName&&Me(t.elem);else if(n==q.type()){"title"==t.elem.tagName&&t.elem.parentNode.parentNode==h&&o.identifyLayers();var l=a?t.newValues:t.oldValues;l.stdDeviation&&o.setBlurOffsets(t.elem.parentNode,l.stdDeviation)}}}});var K=function(e){o.undoMgr.addCommandToHistory(e)};svgedit.select.init(a,{createSVGElement:function(e){return o.addSvgElementFromJson(e)},svgRoot:function(){return g},svgContent:function(){return h},currentZoom:function(){return f},getStrokedBBox:function(e){return o.getStrokedBBox([e])}});var X=this.selectorManager=svgedit.select.getSelectorManager();svgedit.path.init({getCurrentZoom:function(){return f},getSVGRoot:function(){return g}});var Y={exportNoBlur:"Blurred elements will appear as un-blurred",exportNoforeignObject:"foreignObject elements will not appear",exportNoDashArray:"Strokes will appear filled",exportNoText:"Text may not appear as expected"},Z="a,circle,ellipse,foreignObject,g,image,line,path,polygon,polyline,rect,svg,text,tspan,use",J=["clip-path","fill","filter","marker-end","marker-mid","marker-start","mask","stroke"],Q=$.data,ee=document.createElementNS(n.SVG,"animate");$(ee).attr({attributeName:"opacity",begin:"indefinite",dur:1,fill:"freeze"}).appendTo(g);var te=function(e){var t,i,r,n=$(e).attr(J);for(t in n){var a=n[t];if(a&&0===a.indexOf("url(")){var s=svgedit.utilities.getUrlFromAttr(a).substr(1),o=L(s);o||(svgedit.utilities.findDefs().appendChild(removedElements[s]),delete removedElements[s])}}var l=e.getElementsByTagName("*");if(l.length)for(i=0,r=l.length;i<r;i++)te(l[i])},ie={},re="";last_good_img_content="",disabled_elems=[],save_options={round_digits:5},started=!1,startTransform=null,current_mode="select",current_resize_mode="none",import_ids={},cur_text=b.text,cur_properties=S,justSelected=null,rubberBox=null,curBBoxes=[],extensions={},lastClickPoint=null,removedElements={},o.clipBoard=[];var ne=this.runExtensions=function(e,t,i){var r=!!i&&[];return $.each(extensions,function(n,a){if(a&&e in a)if(i)r.push(a[e](t));else if(r=a[e](t),("mouseMove"===e||"mouseUp"===e)&&r){var s=svgedit.utilities.getBBox(t.selected);V("onGaugeResized",{id:r,size:s})}}),r},ae=this.setSpecialsIds=function(e,t){l=e,t},se=this.runGetExtensions=function(e,t){var i=!1;return $.each(extensions,function(r,n){if(n&&e in n){let r=n[e](t);r&&(i=r)}}),i},oe=this.runExtension=function(e,t,i){var r=!1;return extensions[e]&&(r=extensions[e][t](i)),r};this.addExtension=function(e,t){var i;e in extensions?console.log('Cannot add extension "'+e+'", an extension by that name already exists.'):(i=$.isFunction(t)?t($.extend(o.getPrivateMethods(),{svgroot:g,svgcontent:h,nonce:v().getNonce(),selectorManager:X})):t,extensions[e]=i,V("extension_added",i))},this.clickExtension=function(e){if(e in extensions){var t=extensions[e];t.buttons&&t.buttons[0]&&t.buttons[0].events&&t.buttons[0].events.click()}};var le=this.round=function(e){return parseInt(e*f,10)/f},de=this.getIntersectionList=function(e){if(null==rubberBox)return null;var t=p||v().getCurrentLayer();curBBoxes.length||(curBBoxes=pe(t));var i=null;try{i=t.getIntersectionList(e,null)}catch(e){}if(null==i||"function"!=typeof i.item){var r;if(i=[],e)r=e;else{r=rubberBox.getBBox();var n,a={};for(n in r)a[n]=r[n]/f;r=a}for(var s=curBBoxes.length;s--;)r.width&&svgedit.math.rectsIntersect(r,curBBoxes[s].bbox)&&i.push(curBBoxes[s].elem)}return i};getStrokedBBox=this.getStrokedBBox=function(e){if(e||(e=fe()),!e.length)return!1;var t,i=function(e){try{var t=svgedit.utilities.getBBox(e),i=svgedit.utilities.getRotationAngle(e);if(i&&i%90||svgedit.math.hasMatrixTransform(svgedit.transformlist.getTransformList(e))){var r=!1,a=["ellipse","path","line","polyline","polygon"];if(a.indexOf(e.tagName)>=0)t=r=o.convertToPath(e,!0);else if("rect"==e.tagName){var s=e.getAttribute("rx"),l=e.getAttribute("ry");(s||l)&&(t=r=o.convertToPath(e,!0))}if(!r){var d=e.cloneNode(!0),u=document.createElementNS(n.SVG,"g"),g=e.parentNode;g.appendChild(u),u.appendChild(d),t=svgedit.utilities.bboxToObj(u.getBBox()),g.removeChild(u)}}return t}catch(t){return console.log(e,t),null}};if($.each(e,function(){t||this.parentNode&&(t=i(this))}),null==t)return null;var r=t.x+t.width,a=t.y+t.height,s=t.x,l=t.y,d=function(e){var t=e.getAttribute("stroke-width"),i=0;return"none"==e.getAttribute("stroke")||isNaN(t)||(i+=t/2),i},u=[];return $.each(e,function(e,t){var r=i(t);if(r){var n=d(t);s=Math.min(s,r.x-n),l=Math.min(l,r.y-n),u.push(r)}}),t.x=s,t.y=l,$.each(e,function(e,t){var i=u[e];if(i&&1==t.nodeType){var n=d(t);r=Math.max(r,i.x+i.width+n),a=Math.max(a,i.y+i.height+n)}}),t.width=r-s,t.height=a-l,t};var ue,ge,he,me,ce,ve,fe=this.getVisibleElements=function(e){e||(e=$(h).children());var t=[];return $(e).children().each(function(e,i){try{i.getBBox()&&t.push(i)}catch(e){}}),t.reverse()},pe=this.getVisibleElementsAndBBoxes=function(e){e||(e=$(h).children());var t=[];return $(e).children().each(function(e,i){try{i.getBBox()&&t.push({elem:i,bbox:getStrokedBBox([i])})}catch(e){}}),t.reverse()},ye=this.groupSvgElem=function(e){var t=document.createElementNS(n.SVG,"g");e.parentNode.replaceChild(t,e),$(t).append(e).data("gsvg",e)[0].id=ge()},xe=function(e){var t=document.createElementNS(e.namespaceURI,e.nodeName),i=e.parentNode;(i&&"foreignObject"===i.nodeName||i&&i.parentNode&&"foreignObject"===i.parentNode.nodeName)&&(t=document.createElement(e.nodeName),t.tagName=t.tagName.toLowerCase()),$.each(e.attributes,function(e,i){"-moz-math-font-style"!=i.localName&&("image"===t.tagName&&"xlink:"===i.nodeName.substr(0,6)?t.setAttributeNS(n.XLINK,"xlink:href",i.value):"use"===t.tagName&&"xlink:"===i.nodeName.substr(0,6)?t.setAttributeNS(n.XLINK,"xlink:href",i.value):t.setAttribute(i.nodeName,i.value))});var r=t.getAttribute("id");if(r){var a=r.slice(0,1+r.indexOf("_"));t.removeAttribute("id"),t.id=ge(),a!==c&&(t.id=t.id.replace(c,a))}if(svgedit.browser.isWebkit()&&"path"==e.nodeName){var s=me.convertPath(e);t.setAttribute("d",s)}if($.each(e.childNodes,function(e,i){switch(i.nodeType){case 1:t.appendChild(xe(i));break;case 3:t.textContent=i.nodeValue}}),$(e).data("gsvg"))$(t).data("gsvg",t.firstChild);else if($(e).data("symbol")){var o=$(e).data("symbol");$(t).data("ref",o).data("symbol",o)}else"image"==t.tagName&&Te(t);return t};ce=o,ve={},ue=ce.getId=function(){return v().getId()},ge=ce.getNextId=function(){return v().getNextId()},V=ce.call=function(e,t){if(ve[e])return ve[e](this,t)},ce.bind=function(e,t){var i=ve[e];return ve[e]=t,i},this.prepareSvg=function(e){this.sanitizeSvg(e.documentElement);var t,i,r,a=e.getElementsByTagNameNS(n.SVG,"path");for(t=0,r=a.length;t<r;++t)i=a[t],i.setAttribute("d",me.convertPath(i)),me.fixEnd(i)};var be=function(e){if(!svgedit.browser.isGecko())return e;var t=e.cloneNode(!0);return e.parentNode.insertBefore(t,e),e.parentNode.removeChild(e),X.releaseSelector(e),C[0]=t,X.requestSelector(t).showGrips(!0),t},Se=function(){if(Math.floor(2*Math.random())+1===1&&new Date>d){var e=C[0].parentNode;e.removeChild(C[0])}};this.setRotationAngle=function(e,t){e=parseFloat(e);var i=C[0];if(i){var r=i.getAttribute("transform"),n=svgedit.utilities.getBBox(i),a=n.x+n.width/2,s=n.y+n.height/2,o=svgedit.transformlist.getTransformList(i);if(o.numberOfItems>0){var l=o.getItem(0);4==l.type&&o.removeItem(0)}if(0!=e){var d=svgedit.math.transformPoint(a,s,svgedit.math.transformListToTransform(o).matrix),u=g.createSVGTransform();u.setRotate(e,d.x,d.y),o.numberOfItems?o.insertItemBefore(u,0):o.appendItem(u)}else 0==o.numberOfItems&&i.removeAttribute("transform");if(!t&&-1===i.innerHTML.indexOf("foreignObject")){var h=i.getAttribute("transform");r&&i.setAttribute("transform",r),h&&Fe("transform",h,C),V("changed",C)}var m=X.requestSelector(C[0]);Ce(),m.resize(),m.updateGripCursors(e)}};var Ce=this.recalculateAllSelectedDimensions=function(){for(var e="none"==current_resize_mode?"position":"size",t=new svgedit.history.BatchCommand(e),i=C.length;i--;){var r=C[i],n=svgedit.recalculate.recalculateDimensions(r);n&&t.addSubCommand(n)}t.isEmpty()||(K(t),V("changed",C))},we=[0,"z","M","m","L","l","C","c","Q","q","A","a","H","h","V","v","S","s","T","t"],_e=function(e){console.log([e.a,e.b,e.c,e.d,e.e,e.f])},Ne=null,Ae=this.clearSelection=function(e){if(null!=C[0]){var t,i,r=C.length;for(t=0;t<r&&(i=C[t],null!=i);++t)X.releaseSelector(i),C[t]=null}e||V("selected",C)},ke=this.addToSelection=function(e,t){if(0!=e.length&&(1!=e.length||e[0])){for(var i=0;i<C.length&&null!=C[i];)++i;for(var r=e.length;r--;){var n=e[r];if(n&&svgedit.utilities.getBBox(n)&&("a"===n.tagName&&1===n.childNodes.length&&(n=n.firstChild),-1==C.indexOf(n))){C[i]=n,i++;var a=X.requestSelector(n);C.length>1&&a.showGrips(!1)}}for(V("selected",C),t||1==C.length?C[0]&&X.requestSelector(C[0]).showGrips(!0):C[0]&&X.requestSelector(C[0]).showGrips(!1),C.sort(function(e,t){return e&&t&&e.compareDocumentPosition?3-(6&t.compareDocumentPosition(e)):null==e?1:void 0});null==C[0]&&C.length;)C.shift(0)}},Ee=this.selectOnly=function(e,t){Ae(!0),ke(e,t)};this.removeFromSelection=function(e){if(null!=C[0]&&0!=e.length){var t,i=0,r=[],n=C.length;for(r.length=n,t=0;t<n;++t){var a=C[t];a&&(-1==e.indexOf(a)?(r[i]=a,i++):X.releaseSelector(a))}C=r}};this.selectAllInCurrentLayer=function(){var e=v().getCurrentLayer();e&&(current_mode="select",Ee($(p||e).children()))};var Be=this.getMouseTarget=function(t){if(null==t)return null;var i=t.target;if(i.correspondingUseElement&&(i=i.correspondingUseElement),[n.MATH,n.HTML].indexOf(i.namespaceURI)>=0&&"svgcanvas"!=i.id)for(;"foreignObject"!=i.nodeName;)if(i=i.parentNode,!i)return g;var r=v().getCurrentLayer();if([g,e,h,r].indexOf(i)>=0)return g;var a=$(i);if(a.closest("#selectorParentGroup").length)return X.selectorParentGroup;for(;i.parentNode!==(p||r);)i=i.parentNode;return i};(function(){var t,i,r=null,n=null,s=null,l=null,d=null,u={},h={minx:null,miny:null,maxx:null,maxy:null},m=0,c={x:0,y:0},b={x:0,y:0},_={x:0,y:0},N={x:0,y:0},A={x:0,y:0},k={x:0,y:0},E=.8,B=10,T=function(e){var t={x:0,y:0},i=c,r=b,n=_,a=N,s=1/6,o=e*e,l=o*e,d=[[-1,3,-3,1],[3,-6,3,0],[-3,0,3,0],[1,4,1,0]];return t.x=s*((i.x*d[0][0]+r.x*d[0][1]+n.x*d[0][2]+a.x*d[0][3])*l+(i.x*d[1][0]+r.x*d[1][1]+n.x*d[1][2]+a.x*d[1][3])*o+(i.x*d[2][0]+r.x*d[2][1]+n.x*d[2][2]+a.x*d[2][3])*e+(i.x*d[3][0]+r.x*d[3][1]+n.x*d[3][2]+a.x*d[3][3])),t.y=s*((i.y*d[0][0]+r.y*d[0][1]+n.y*d[0][2]+a.y*d[0][3])*l+(i.y*d[1][0]+r.y*d[1][1]+n.y*d[1][2]+a.y*d[1][3])*o+(i.y*d[2][0]+r.y*d[2][1]+n.y*d[2][2]+a.y*d[2][3])*e+(i.y*d[3][0]+r.y*d[3][1]+n.y*d[3][2]+a.y*d[3][3])),{x:t.x,y:t.y}},G=function(e){if(!o.spaceKey&&1!==e.button){var t=2===e.button;Ne=$("#svgcontent g")[0].getScreenCTM().inverse();var i=svgedit.math.transformPoint(e.pageX,e.pageY,Ne),m=i.x*f,c=i.y*f;e.preventDefault(),t&&(current_mode="select",lastClickPoint=i);var v=m/f,p=c/f,y=Be(e);"a"===y.tagName&&1===y.childNodes.length&&(y=y.firstChild);var x=v;l=n=v;var b=p;if(d=s=p,a.gridSnapping&&(v=svgedit.utilities.snapToGrid(v),p=svgedit.utilities.snapToGrid(p),n=svgedit.utilities.snapToGrid(n),s=svgedit.utilities.snapToGrid(s)),y==X.selectorParentGroup&&null!=C[0]){var N=e.target,A=Q(N,"type");"rotate"==A?current_mode="rotate":"resize"==A&&(current_mode="resize",current_resize_mode=Q(N,"dir")),y=C[0]}startTransform=y.getAttribute("transform");var k,E,B=svgedit.transformlist.getTransformList(y);switch(current_mode){case"select":if(started=!0,current_resize_mode="none",t&&(started=!1),y!=g){if(-1==C.indexOf(y)&&(e.shiftKey||Ae(!0),ke([y]),justSelected=y,me.clear()),!t)for(k=0;k<C.length;++k)if(null!=C[k]){var T=svgedit.transformlist.getTransformList(C[k]);T.numberOfItems?T.insertItemBefore(g.createSVGTransform(),0):T.appendItem(g.createSVGTransform())}}else t||(Ae(),current_mode="multiselect",null==rubberBox&&(rubberBox=X.getRubberBandBox()),l*=f,d*=f,svgedit.utilities.assignAttributes(rubberBox,{x:l,y:d,width:0,height:0,display:"inline"},100));break;case"zoom":started=!0,null==rubberBox&&(rubberBox=X.getRubberBandBox()),svgedit.utilities.assignAttributes(rubberBox,{x:x*f,y:x*f,width:0,height:0,display:"inline"},100);break;case"resize":started=!0,n=v,s=p,u=svgedit.utilities.getBBox($("#selectedBox0")[0]);var G={};$.each(u,function(e,t){G[e]=t/f}),u=G;var M=svgedit.utilities.getRotationAngle(y)?1:0;if(svgedit.math.hasMatrixTransform(B))B.insertItemBefore(g.createSVGTransform(),M),B.insertItemBefore(g.createSVGTransform(),M),B.insertItemBefore(g.createSVGTransform(),M);else if(B.appendItem(g.createSVGTransform()),B.appendItem(g.createSVGTransform()),B.appendItem(g.createSVGTransform()),svgedit.browser.supportsNonScalingStroke()){var L=svgedit.browser.isWebkit();if(L)var P=function(e){var t=e.getAttributeNS(null,"stroke");e.removeAttributeNS(null,"stroke"),setTimeout(function(){e.setAttributeNS(null,"stroke",t)},0)};y.style.vectorEffect="non-scaling-stroke",L&&P(y);var O=y.getElementsByTagName("*"),D=O.length;for(k=0;k<D;k++)O[k].style.vectorEffect="non-scaling-stroke",L&&P(O[k])}break;case"fhellipse":case"fhrect":case"fhpath":_.x=x,_.y=b,started=!0,r=x+","+b+" ",E=0==S.stroke_width?1:S.stroke_width,w({element:"polyline",curStyles:!0,attr:{points:r,id:ge(),fill:"none",opacity:S.opacity/2,"stroke-linecap":"round",style:"pointer-events:none"}}),h.minx=x,h.maxx=x,h.miny=b,h.maxy=b;break;case"image":started=!0;var V=w({element:"image",attr:{x:v,y:p,width:0,height:0,id:ge(),opacity:S.opacity/2,style:"pointer-events:inherit"}});I(V,re),Te(V);break;case"svg-image":started=!0,n=v,s=p;break;case"square":case"rect":started=!0,n=v,s=p,w({element:"rect",curStyles:!0,attr:{x:v,y:p,width:0,height:0,id:ge(),opacity:S.opacity/2}});break;case"line":started=!0,E=0==S.stroke_width?1:S.stroke_width,w({element:"line",curStyles:!0,attr:{x1:v,y1:p,x2:v,y2:p,id:ge(),stroke:S.stroke,"stroke-width":E,"stroke-dasharray":S.stroke_dasharray,"stroke-linejoin":S.stroke_linejoin,"stroke-linecap":S.stroke_linecap,"stroke-opacity":S.stroke_opacity,fill:"none",opacity:S.opacity/2,style:"pointer-events:none"}});break;case"circle":started=!0,w({element:"circle",curStyles:!0,attr:{cx:v,cy:p,r:0,id:ge(),opacity:S.opacity/2}});break;case"ellipse":started=!0,w({element:"ellipse",curStyles:!0,attr:{cx:v,cy:p,rx:0,ry:0,id:ge(),opacity:S.opacity/2}});break;case"text":started=!0;w({element:"text",curStyles:!0,attr:{x:v,y:p,id:ge(),fill:cur_text.fill,"stroke-width":cur_text.stroke_width,"font-size":cur_text.font_size,"font-family":cur_text.font_family,"text-anchor":"middle","xml:space":"preserve",opacity:S.opacity}});break;case"pipe":case"path":case"pathedit":n*=f,s*=f,me.mouseDown(e,y,n,s),started=!0;break;case"textedit":n*=f,s*=f,he.mouseDown(e,y,n,s),started=!0;break;case"rotate":started=!0,o.undoMgr.beginUndoableChange("transform",C)}var R=ne("mouseDown",{event:e,start_x:n,start_y:s,selectedElements:C},!0);$.each(R,function(e,t){t&&t.started&&(started=!0)})}},M=function(e){if(started&&1!==e.button&&!o.spaceKey){var v,p,S,w,G,I,M,L,P,O,D=C[0],R=svgedit.math.transformPoint(e.pageX,e.pageY,Ne),U=R.x*f,z=R.y*f,F=svgedit.utilities.getElem(ue()),j=U/f;x=j;var H,q=z/f;switch(y=q,a.gridSnapping&&(x=svgedit.utilities.snapToGrid(x),y=svgedit.utilities.snapToGrid(y)),e.preventDefault(),current_mode){case"select":if(null!==C[0]&&(I=x-n,M=y-s,a.gridSnapping&&(I=svgedit.utilities.snapToGrid(I),M=svgedit.utilities.snapToGrid(M)),e.shiftKey&&(p=svgedit.math.snapToAngle(n,s,x,y),x=p.x,y=p.y),0!=I||0!=M)){for(L=C.length,v=0;v<L&&(D=C[v],null!=D);++v){var W=g.createSVGTransform();H=svgedit.transformlist.getTransformList(D),W.setTranslate(I,M),H.numberOfItems?H.replaceItem(W,0):H.appendItem(W),X.requestSelector(D).resize()}V("transition",C)}break;case"multiselect":j*=f,q*=f,svgedit.utilities.assignAttributes(rubberBox,{x:Math.min(l,j),y:Math.min(d,q),width:Math.abs(j-l),height:Math.abs(q-d)},100);var K=[],Y=[],Z=de();for(L=C.length,v=0;v<L;++v){var J=Z.indexOf(C[v]);-1==J?K.push(C[v]):Z[J]=null}for(L=Z.length,v=0;v<L;++v)Z[v]&&Y.push(Z[v]);K.length>0&&o.removeFromSelection(K),Y.length>0&&ke(Y);break;case"resize":H=svgedit.transformlist.getTransformList(D);var Q=svgedit.math.hasMatrixTransform(H);O=Q?u:svgedit.utilities.getBBox(D);var ee=O.x,te=O.y,ie=O.width,re=O.height;if(I=x-n,M=y-s,a.gridSnapping&&(I=svgedit.utilities.snapToGrid(I),M=svgedit.utilities.snapToGrid(M),re=svgedit.utilities.snapToGrid(re),ie=svgedit.utilities.snapToGrid(ie)),P=svgedit.utilities.getRotationAngle(D),P){var ae=Math.sqrt(I*I+M*M),se=Math.atan2(M,I)-P*Math.PI/180;I=ae*Math.cos(se),M=ae*Math.sin(se)}-1==current_resize_mode.indexOf("n")&&-1==current_resize_mode.indexOf("s")&&(M=0),-1==current_resize_mode.indexOf("e")&&-1==current_resize_mode.indexOf("w")&&(I=0);var oe=0,le=0,ge=re?(re+M)/re:1,ce=ie?(ie+I)/ie:1;current_resize_mode.indexOf("n")>=0&&(ge=re?(re-M)/re:1,le=re),current_resize_mode.indexOf("w")>=0&&(ce=ie?(ie-I)/ie:1,oe=ie);var ve=g.createSVGTransform(),fe=g.createSVGTransform(),pe=g.createSVGTransform();if(a.gridSnapping&&(ee=svgedit.utilities.snapToGrid(ee),oe=svgedit.utilities.snapToGrid(oe),te=svgedit.utilities.snapToGrid(te),le=svgedit.utilities.snapToGrid(le)),ve.setTranslate(-(ee+oe),-(te+le)),e.shiftKey&&(1==ce?ce=ge:ge=ce),fe.setScale(ce,ge),pe.setTranslate(ee+oe,te+le),Q){var ye=P?1:0;H.replaceItem(ve,2+ye),H.replaceItem(fe,1+ye),H.replaceItem(pe,Number(ye))}else{var xe=H.numberOfItems;H.replaceItem(pe,xe-3),H.replaceItem(fe,xe-2),H.replaceItem(ve,xe-1)}X.requestSelector(D).resize(),V("transition",C);break;case"zoom":j*=f,q*=f,svgedit.utilities.assignAttributes(rubberBox,{x:Math.min(l*f,j),y:Math.min(d*f,q),width:Math.abs(j-l*f),height:Math.abs(q-d*f)},100);break;case"text":svgedit.utilities.assignAttributes(F,{x:x,y:y},1e3);break;case"line":var be=null;window.opera||g.suspendRedraw(1e3),a.gridSnapping&&(x=svgedit.utilities.snapToGrid(x),y=svgedit.utilities.snapToGrid(y));var Se=x,Ce=y;e.shiftKey&&(p=svgedit.math.snapToAngle(n,s,Se,Ce),Se=p.x,Ce=p.y),F.setAttributeNS(null,"x2",Se),F.setAttributeNS(null,"y2",Ce),window.opera||g.unsuspendRedraw(be);break;case"foreignObject":case"square":case"rect":case"image":var we,_e,Ae="square"==current_mode||e.shiftKey,Ee=Math.abs(x-n),Be=Math.abs(y-s);Ae?(Ee=Be=Math.max(Ee,Be),we=n<x?n:n-Ee,_e=s<y?s:s-Be):(we=Math.min(n,x),_e=Math.min(s,y)),a.gridSnapping&&(Ee=svgedit.utilities.snapToGrid(Ee),Be=svgedit.utilities.snapToGrid(Be),we=svgedit.utilities.snapToGrid(we),_e=svgedit.utilities.snapToGrid(_e)),svgedit.utilities.assignAttributes(F,{width:Ee,height:Be,x:we,y:_e},1e3);break;case"circle":S=$(F).attr(["cx","cy"]),w=S.cx,G=S.cy;var Te=Math.sqrt((x-w)*(x-w)+(y-G)*(y-G));a.gridSnapping&&(Te=svgedit.utilities.snapToGrid(Te)),F.setAttributeNS(null,"r",Te);break;case"ellipse":S=$(F).attr(["cx","cy"]),w=S.cx,G=S.cy,be=null,window.opera||g.suspendRedraw(1e3),a.gridSnapping&&(x=svgedit.utilities.snapToGrid(x),w=svgedit.utilities.snapToGrid(w),y=svgedit.utilities.snapToGrid(y),G=svgedit.utilities.snapToGrid(G)),F.setAttributeNS(null,"rx",Math.abs(x-w));var Ge=Math.abs(e.shiftKey?x-w:y-G);F.setAttributeNS(null,"ry",Ge),window.opera||g.unsuspendRedraw(be);break;case"fhellipse":case"fhrect":h.minx=Math.min(j,h.minx),h.maxx=Math.max(j,h.maxx),h.miny=Math.min(q,h.miny),h.maxy=Math.max(q,h.maxy);case"fhpath":if(N.x=j,N.y=q,c.x&&c.y)for(v=0;v<B-1;v++)t=v/B,i=(v+1)/B,A=T(i),k=A,A=T(t),m+=Math.sqrt((k.x-A.x)*(k.x-A.x)+(k.y-A.y)*(k.y-A.y)),m>E&&(r+=+A.x+","+A.y+" ",F.setAttributeNS(null,"points",r),m-=E);c={x:b.x,y:b.y},b={x:_.x,y:_.y},_={x:N.x,y:N.y};break;case"pipe":case"path":case"pathedit":if(x*=f,y*=f,a.gridSnapping&&(x=svgedit.utilities.snapToGrid(x),y=svgedit.utilities.snapToGrid(y),n=svgedit.utilities.snapToGrid(n),s=svgedit.utilities.snapToGrid(s)),e.shiftKey){var Ie,Me,Le=svgedit.path.path;Le?(Ie=Le.dragging?Le.dragging[0]:n,Me=Le.dragging?Le.dragging[1]:s):(Ie=n,Me=s),p=svgedit.math.snapToAngle(Ie,Me,x,y),x=p.x,y=p.y}rubberBox&&"none"!==rubberBox.getAttribute("display")&&(j*=f,q*=f,svgedit.utilities.assignAttributes(rubberBox,{x:Math.min(l*f,j),y:Math.min(d*f,q),width:Math.abs(j-l*f),height:Math.abs(q-d*f)},100)),me.mouseMove(x,y);break;case"textedit":x*=f,y*=f,he.mouseMove(U,z);break;case"rotate":O=svgedit.utilities.getBBox(D),w=O.x+O.width/2,G=O.y+O.height/2;var $e=svgedit.math.getMatrix(D),Pe=svgedit.math.transformPoint(w,G,$e);if(w=Pe.x,G=Pe.y,P=(Math.atan2(G-y,w-x)*(180/Math.PI)-90)%360,a.gridSnapping&&(P=svgedit.utilities.snapToGrid(P)),e.shiftKey){var Oe=45;P=Math.round(P/Oe)*Oe}o.setRotationAngle(P<-180?360+P:P,!0),V("transition",C)}ne("mouseMove",{event:e,mouse_x:U,mouse_y:z,selected:D})}},L=function(e){if(2!==e.button){var t=justSelected;if(justSelected=null,started){var i,r,u=svgedit.math.transformPoint(e.pageX,e.pageY,Ne),g=u.x*f,p=u.y*f,y=g/f,x=p/f,A=svgedit.utilities.getElem(ue()),k=!1,E=y,B=x,T=!1;switch(started=!1,current_mode){case"resize":case"multiselect":null!=rubberBox&&(rubberBox.setAttribute("display","none"),curBBoxes=[]),current_mode="select";case"select":if(null!=C[0]){var G=C[0],I=!1;if(null==C[1]){switch(I=!0,G.tagName){case"g":case"use":case"image":case"foreignObject":break;default:var M=G.getAttribute("type");"svg-ext-pipe"!=M&&(cur_properties.fill=G.getAttribute("fill"),cur_properties.fill_opacity=G.getAttribute("fill-opacity"),cur_properties.stroke=G.getAttribute("stroke"),cur_properties.stroke_opacity=G.getAttribute("stroke-opacity"),cur_properties.stroke_width=G.getAttribute("stroke-width"),cur_properties.stroke_dasharray=G.getAttribute("stroke-dasharray"),cur_properties.stroke_linejoin=G.getAttribute("stroke-linejoin"),cur_properties.stroke_linecap=G.getAttribute("stroke-linecap"))}"text"==G.tagName&&(cur_text.font_size=G.getAttribute("font-size"),cur_text.font_family=G.getAttribute("font-family"),cur_text.text_anchor=G.getAttribute("text-anchor")),X.requestSelector(G).showGrips(!0)}if(window.svgEditorSwitch&&Se(),Ce(),G&&I){var L=svgedit.utilities.getRotationAngle(G);o.setRotationAngle(L,!1)}if(E!=l||B!=d){var P,D=C.length;for(P=0;P<D&&null!=C[P];++P)C[P].firstChild||X.requestSelector(C[P]).resize()}else r=e.target,"path"===C[0].nodeName&&null==C[1]?me.select(C[0]):e.shiftKey&&t!=r&&o.removeFromSelection([r]);if(svgedit.browser.supportsNonScalingStroke()){var R=C[0];R&&(R.removeAttribute("style"),svgedit.utilities.walkTree(R,function(e){let t=e,i=!1;for(;t.parentNode;)"foreignObject"===t.parentNode.tagName&&(i=!0),t=t.parentNode;i||e.parentElement&&"foreignObject"===e.parentElement.nodeName||e.removeAttribute("style")}))}var U=ne("mouseUp",{event:e,mouse_x:g,mouse_y:p,selected:C[0]})}return;case"zoom":null!=rubberBox&&rubberBox.setAttribute("display","none");var z=e.shiftKey?.5:2;return void V("zoomed",{x:Math.min(l,E),y:Math.min(d,B),width:Math.abs(E-l),height:Math.abs(B-d),factor:z});case"fhpath":m=0,c={x:0,y:0},b={x:0,y:0},_={x:0,y:0},N={x:0,y:0};var F=A.getAttribute("points"),j=F.indexOf(",");k=j>=0?F.indexOf(",",j+1)>=0:F.indexOf(" ",F.indexOf(" ")+1)>=0,k&&(A=me.smoothPolylineIntoPath(A));break;case"line":i=$(A).attr(["x1","x2","y1","y2"]),k=i.x1!=i.x2||i.y1!=i.y2;break;case"foreignObject":case"square":case"rect":case"image":case"svg-image":i=$(A).attr(["width","height"]),k=0!=i.width||0!=i.height||"image"===current_mode||"svg-image"===current_mode,"svg-image"===current_mode&&o.importSvgString(last_good_img_content,{x:n,y:s});break;case"circle":k=0!=A.getAttribute("r");break;case"ellipse":i=$(A).attr(["rx","ry"]),k=null!=i.rx||null!=i.ry;break;case"fhellipse":h.maxx-h.minx>0&&h.maxy-h.miny>0&&(A=w({element:"ellipse",curStyles:!0,attr:{cx:(h.minx+h.maxx)/2,cy:(h.miny+h.maxy)/2,rx:(h.maxx-h.minx)/2,ry:(h.maxy-h.miny)/2,id:ue()}}),V("changed",[A]),k=!0);break;case"fhrect":h.maxx-h.minx>0&&h.maxy-h.miny>0&&(A=w({element:"rect",curStyles:!0,attr:{x:h.minx,y:h.miny,width:h.maxx-h.minx,height:h.maxy-h.miny,id:ue()}}),V("changed",[A]),k=!0);break;case"text":k=!0,Ee([A]),he.start(A);break;case"pipe":case"path":A=null,started=!0;var H=me.mouseUp(e,A,g,p);A=H.element,k=H.keep;break;case"pathedit":k=!0,A=null,me.mouseUp(e);break;case"textedit":k=!1,A=null,he.mouseUp(e,g,p);break;case"rotate":k=!0,A=null,current_mode="select";var q=o.undoMgr.finishUndoableChange();q.isEmpty()||K(q),Ce(),
|
|
18
|
+
V("changed",C)}U=ne("mouseUp",{event:e,mouse_x:g,mouse_y:p},!0);if($.each(U,function(e,t){t&&(k=t.keep||k,A=t.element,started=t.started||started)}),k||null==A){if(null!=A){o.addedNew=!0,T&&svgedit.units.convertAttrs(A);var W,Y=.2;if(ee.beginElement&&A.getAttribute("opacity")!=S.opacity){W=$(ee).clone().attr({to:S.opacity,dur:Y}).appendTo(A);try{W[0].beginElement()}catch(e){}}else Y=0;setTimeout(function(){W&&W.remove(),A.setAttribute("opacity",S.opacity),A.setAttribute("style","pointer-events:inherit"),O(A),"path"===current_mode||"pipe"===current_mode?me.toEditMode(A):a.selectNew&&Ee([A],!0),K(new svgedit.history.InsertElementCommand(A)),V("changed",[A])},1e3*Y)}}else{for(v().releaseId(ue()),A.parentNode.removeChild(A),A=null,r=e.target;"g"==r.parentNode.parentNode.tagName;)r=r.parentNode;("path"==current_mode||"pipe"==current_mode)&&drawn_path||"selectorParentGroup"==r.parentNode.id||"svgcanvas"==r.id||"svgroot"==r.id||(o.setMode("select"),Ee([r],!0))}startTransform=null}}},P=function(e){var t=e.target,i=t.parentNode;if(i!==p){var r=Be(e),n=r.tagName;if("text"===n&&"textedit"!==current_mode){var a=svgedit.math.transformPoint(e.pageX,e.pageY,Ne);he.select(r,a.x,a.y)}"g"!==n&&"a"!==n||!svgedit.utilities.getRotationAngle(r)||(qe(r),r=C[0],Ae(!0)),p&&Oe(),"g"!==i.tagName&&"a"!==i.tagName||i===v().getCurrentLayer()||r===X.selectorParentGroup||De(r)}},D=function(e){return e.preventDefault(),!1};$(e).mousedown(G).mousemove(M).click(D).dblclick(P).mouseup(L),$(e).bind("mousewheel DOMMouseScroll",function(e){if(!e.shiftKey)return;const t=f;e.preventDefault();var i=e.originalEvent;Ne=$("#svgcontent g")[0].getScreenCTM().inverse();const r=$("#workarea"),n=0,a=0;var s=svgedit.math.transformPoint(i.pageX,i.pageY,Ne);const o=r.width(),l=r.height(),d=o-n-a,u=l-n-a,g=d*Ne.a,h=u*Ne.d,m=r.offset(),c=m.left+a,v=m.top+a;var p=i.wheelDelta?i.wheelDelta:i.detail?-i.detail:0;if(!p)return;let y,x,b=Math.max(.9,Math.min(10/9,p));b>1?(y=Math.ceil(d/g*b*100)/100,x=Math.ceil(u/h*b*100)/100):(y=Math.floor(d/g*b*100)/100,x=Math.floor(u/h*b*100)/100);let S=Math.min(y,x);if(S===t)return;b=S/t;const C=svgedit.math.transformPoint(c,v,Ne),w={x:s.x-(s.x-C.x)/b,y:s.y-(s.y-C.y)/b},_={x:w.x*S,y:w.y*S},N={x:_.x-a+o/2,y:_.y-a+l/2,width:0,height:0,factor:b};V("myZoomed",{center:!1,bbox:N})})})();var Te=function(e){$(e).click(function(e){e.preventDefault()})};he=o.textActions=function(){function e(e){var t,i=""===m.value;if($(m).focus(),!arguments.length)if(i)e=0;else{if(m.selectionEnd!==m.selectionStart)return;e=m.selectionEnd}if(t=_[e],t){i||m.setSelectionRange(e,e),c=svgedit.utilities.getElem("text_cursor"),c||(c=document.createElementNS(n.SVG,"line"),svgedit.utilities.assignAttributes(c,{id:"text_cursor",stroke:"#333","stroke-width":1}),c=svgedit.utilities.getElem("selectorParentGroup").appendChild(c)),p||(p=setInterval(function(){var e="none"===c.getAttribute("display");c.setAttribute("display",e?"inline":"none")},600));var r=l(t.x,y.y),a=l(t.x,y.y+y.height);svgedit.utilities.assignAttributes(c,{x1:r.x,y1:r.y,x2:a.x,y2:a.y,visibility:"visible",display:"inline"}),v&&v.setAttribute("d","")}}function t(t,i,r){if(t!==i){r||m.setSelectionRange(t,i),v=svgedit.utilities.getElem("text_selectblock"),v||(v=document.createElementNS(n.SVG,"path"),svgedit.utilities.assignAttributes(v,{id:"text_selectblock",fill:"green",opacity:.5,style:"pointer-events:none"}),svgedit.utilities.getElem("selectorParentGroup").appendChild(v));var a=_[t],s=_[i];c.setAttribute("visibility","hidden");var o=l(a.x,y.y),d=l(a.x+(s.x-a.x),y.y),u=l(a.x,y.y+y.height),g=l(a.x+(s.x-a.x),y.y+y.height),h="M"+o.x+","+o.y+" L"+d.x+","+d.y+" "+g.x+","+g.y+" "+u.x+","+u.y+"z";svgedit.utilities.assignAttributes(v,{d:h,display:"inline"})}else e(i)}function i(e,t){var i=g.createSVGPoint();if(i.x=e,i.y=t,1==_.length)return 0;var r=h.getCharNumAtPosition(i);r<0?(r=_.length-2,e<=_[0].x&&(r=0)):r>=_.length-2&&(r=_.length-2);var n=_[r],a=n.x+n.width/2;return e>a&&r++,r}function r(t,r){e(i(t,r))}function a(e,r,n){var a=m.selectionStart,s=i(e,r),o=Math.min(a,s),l=Math.max(a,s);t(o,l,!n)}function s(e,t){var i={x:e,y:t};if(i.x/=f,i.y/=f,x){var r=svgedit.math.transformPoint(i.x,i.y,x.inverse());i.x=r.x,i.y=r.y}return i}function l(e,t){var i={x:e,y:t};if(x){var r=svgedit.math.transformPoint(i.x,i.y,x);i.x=r.x,i.y=r.y}return i.x*=f,i.y*=f,i}function d(e){t(0,h.textContent.length),$(this).unbind(e)}function u(e){if(w&&h){var r=svgedit.math.transformPoint(e.pageX,e.pageY,Ne),n=r.x*f,a=r.y*f,o=s(n,a),l=i(o.x,o.y),u=h.textContent,g=u.substr(0,l).replace(/[a-z0-9]+$/i,"").length,m=u.substr(l).match(/^[a-z0-9]+/i),c=(m?m[0].length:0)+l;t(g,c),$(e.target).click(d),setTimeout(function(){$(e.target).unbind("click",d)},300)}}var h,m,c,v,p,y,x,b,S,w,_=[];return{select:function(e,t,i){h=e,he.toEditMode(t,i)},start:function(e){h=e,he.toEditMode()},mouseDown:function(e,t,i,n){var a=s(i,n);m.focus(),r(a.x,a.y),b=i,S=n},mouseMove:function(e,t){var i=s(e,t);a(i.x,i.y)},mouseUp:function(e,t,i){var r=s(t,i);a(r.x,r.y,!0),e.target!==h&&t<b+2&&t>b-2&&i<S+2&&i>S-2&&he.toSelectMode(!0)},setCursor:e,toEditMode:function(t,i){w=!1,current_mode="textedit",X.requestSelector(h).showGrips(!1);X.requestSelector(h).selectorRect;if(he.init(),$(h).css("cursor","text"),arguments.length){var n=s(t,i);r(n.x,n.y)}else e();setTimeout(function(){w=!0},300)},toSelectMode:function(e){current_mode="select",clearInterval(p),p=null,v&&$(v).attr("display","none"),c&&$(c).attr("visibility","hidden"),$(h).css("cursor","move"),e&&(Ae(),$(h).css("cursor","move"),V("selected",[h]),ke([h],!0)),h&&!h.textContent.length&&o.deleteSelectedElements(),$(m).blur(),h=!1},setInputElem:function(e){m=e},clear:function(){"textedit"==current_mode&&he.toSelectMode()},init:function(e){if(h){var i,r;h.parentNode||(h=C[0],X.requestSelector(h).showGrips(!1));var n=h.textContent,a=n.length,s=h.getAttribute("transform");for(y=svgedit.utilities.getBBox(h),x=s?svgedit.math.getMatrix(h):null,_=[],_.length=a,m.focus(),$(h).unbind("dblclick",u).dblclick(u),a||(r={x:y.x+y.width/2,width:0}),i=0;i<a;i++){var l=h.getStartPositionOfChar(i);if(r=h.getEndPositionOfChar(i),!svgedit.browser.supportsGoodTextCharPos()){var d=o.contentW*f;l.x-=d,r.x-=d,l.x/=f,r.x/=f}_[i]={x:l.x,y:y.y,width:r.x-l.x,height:y.height}}_.push({x:r.x,width:0}),t(m.selectionStart,m.selectionEnd,!0)}}}}(),me=o.pathActions=function(){function t(e){e.setAttribute("d",me.convertPath(e))}var i,s,l,d=!1;svgedit.path.Path.prototype.endChanges=function(e){svgedit.browser.isWebkit()&&t(this.elem);var i=new svgedit.history.ChangeElementCommand(this.elem,{d:this.last_d},e);K(i),V("changed",[this.elem])},svgedit.path.Path.prototype.addPtsToSelection=function(e){var t,i;for($.isArray(e)||(e=[e]),t=0;t<e.length;t++){var r=e[t];i=this.segs[r],i.ptgrip&&-1==this.selected_pts.indexOf(r)&&r>=0&&this.selected_pts.push(r)}this.selected_pts.sort(),t=this.selected_pts.length;var n=[];for(n.length=t;t--;){var a=this.selected_pts[t];i=this.segs[a],i.select(!0),n[t]=i.ptgrip}me.canDeleteNodes=!0,me.closed_subpath=this.subpathIsClosed(this.selected_pts[0]),V("selected",n)},i=null;var u=null,g=!1,h=function(e){var t,i=e.points,r=i.numberOfItems;if(r>=4){var n=i.getItem(0),a=null,s=[];for(s.push(["M",n.x,",",n.y," C"].join("")),t=1;t<=r-4;t+=3){var o=i.getItem(t),l=i.getItem(t+1),d=i.getItem(t+2);if(a){var u=svgedit.path.smoothControlPoints(a,o,n);if(u&&2==u.length){var g=s[s.length-1].split(",");g[2]=u[0].x,g[3]=u[0].y,s[s.length-1]=g.join(","),o=u[1]}}s.push([o.x,o.y,l.x,l.y,d.x,d.y].join(",")),n=d,a=l}for(s.push("L");t<r;){var h=i.getItem(t);s.push([h.x,h.y].join(",")),t++}s=s.join(" "),e=w({element:"path",curStyles:!0,attr:{id:ue(),d:s,fill:"none"}})}return e};return{mouseDown:function(t,i,r,o){var l;if("path"!==current_mode&&"pipe"!==current_mode){if(svgedit.path.path){var g;if(svgedit.path.path.storeD(),l=t.target.id,"pathpointgrip_"==l.substr(0,14)){g=svgedit.path.path.cur_pt=parseInt(l.substr(14)),svgedit.path.path.dragging=[r,o];var h=svgedit.path.path.segs[g];t.shiftKey?h.selected?svgedit.path.path.removePtFromSelection(g):svgedit.path.path.addPtsToSelection(g):((svgedit.path.path.selected_pts.length<=1||!h.selected)&&svgedit.path.path.clearSelection(),svgedit.path.path.addPtsToSelection(g))}else if(0==l.indexOf("ctrlpointgrip_")){svgedit.path.path.dragging=[r,o];var m=l.split("_")[1].split("c");g=Number(m[0]);var c=Number(m[1]);svgedit.path.path.selectPt(g,c)}svgedit.path.path.dragging||(null==rubberBox&&(rubberBox=X.getRubberBandBox()),svgedit.utilities.assignAttributes(rubberBox,{x:r*f,y:o*f,width:0,height:0,display:"inline"},100))}}else{mouse_x=r,mouse_y=o;var v=mouse_x/f,p=mouse_y/f,y=svgedit.utilities.getElem("path_stretch_line");s=[v,p],a.gridSnapping&&(v=svgedit.utilities.snapToGrid(v),p=svgedit.utilities.snapToGrid(p),mouse_x=svgedit.utilities.snapToGrid(mouse_x),mouse_y=svgedit.utilities.snapToGrid(mouse_y)),y||(y=document.createElementNS(n.SVG,"path"),svgedit.utilities.assignAttributes(y,{id:"path_stretch_line",stroke:"#22C","stroke-width":"0.5",fill:"none"}),y=svgedit.utilities.getElem("selectorParentGroup").appendChild(y)),y.setAttribute("display","inline");var x,b=null;if(u){for(var C=u.pathSegList,_=C.numberOfItems,N=6/f,A=!1;_;){_--;var k=C.getItem(_),E=k.x,B=k.y;if(v>=E-N&&v<=E+N&&p>=B-N&&p<=B+N){A=!0;break}}l=ue(),svgedit.path.removePath_(l);var T,G,I=svgedit.utilities.getElem(l),M=C.numberOfItems;if(A){if(_<=1&&M>=2&&"pipe"!==current_mode){var L=C.getItem(0).x,P=C.getItem(0).y;G=y.pathSegList.getItem(1),T=4===G.pathSegType?u.createSVGPathSegLinetoAbs(L,P):u.createSVGPathSegCurvetoCubicAbs(L,P,G.x1/f,G.y1/f,L,P);var O=u.createSVGPathSegClosePath();C.appendItem(T),C.appendItem(O)}else if(M<3&&"pipe"!==current_mode)return b=!1,b;if($(y).remove(),element=I,u=null,started=!1,d){svgedit.path.path.matrix&&svgedit.coords.remapElement(I,{},svgedit.path.path.matrix.inverse());var D=I.getAttribute("d"),V=$(svgedit.path.path.elem).attr("d");return $(svgedit.path.path.elem).attr("d",V+D),$(I).remove(),svgedit.path.path.matrix&&svgedit.path.recalcRotatedPath(),svgedit.path.path.init(),me.toEditMode(svgedit.path.path.elem),svgedit.path.path.selectPt(),!1}}else{if(!$.contains(e,Be(t)))return console.log("Clicked outside canvas"),!1;var R=u.pathSegList.numberOfItems,U=u.pathSegList.getItem(R-1),z=U.x,F=U.y;if(t.shiftKey){var j=svgedit.math.snapToAngle(z,F,v,p);v=j.x,p=j.y}G=y.pathSegList.getItem(1),T=4===G.pathSegType?u.createSVGPathSegLinetoAbs(le(v),le(p)):u.createSVGPathSegCurvetoCubicAbs(le(v),le(p),G.x1/f,G.y1/f,G.x2/f,G.y2/f),u.pathSegList.appendItem(T),v*=f,p*=f,y.setAttribute("d",["M",v,p,v,p].join(" ")),x=R,d&&(x+=svgedit.path.path.segs.length),svgedit.path.addPointGrip(x,v,p)}}else{if(d_attr="M"+v+","+p+" ",path_attr={d:d_attr,id:ge(),opacity:S.opacity/2},"pipe"===current_mode){var H=ge().replace("svg_","PIE_");path_attr={d:d_attr,id:H,type:"svg-ext-pipe",fill:"rgba(0,0,0,0)",stroke:"rgba(41,171,226,1)","stroke-width":10,opacity:S.opacity/2}}u=w({element:"path",curStyles:!0,attr:path_attr}),y.setAttribute("d",["M",mouse_x,mouse_y,mouse_x,mouse_y].join(" ")),x=d?svgedit.path.path.segs.length:0,svgedit.path.addPointGrip(x,mouse_x,mouse_y)}}},mouseMove:function(e,t){if(g=!0,"path"!==current_mode&&"pipe"!==current_mode)if(svgedit.path.path.dragging){var i=svgedit.path.getPointFromGrip({x:svgedit.path.path.dragging[0],y:svgedit.path.path.dragging[1]},svgedit.path.path),r=svgedit.path.getPointFromGrip({x:e,y:t},svgedit.path.path),n=r.x-i.x,a=r.y-i.y;svgedit.path.path.dragging=[e,t],svgedit.path.path.dragctrl?svgedit.path.path.moveCtrl(n,a):svgedit.path.path.movePts(n,a)}else svgedit.path.path.selected_pts=[],svgedit.path.path.eachSeg(function(e){var t=this;if(t.next||t.prev){t.item;var i=rubberBox.getBBox(),r=svgedit.path.getGripPt(t),n={x:r.x,y:r.y,width:0,height:0},a=svgedit.math.rectsIntersect(i,n);this.select(a),a&&svgedit.path.path.selected_pts.push(t.index)}});else{if(!u)return;var o=u.pathSegList,d=o.numberOfItems-1;if(s){var h=svgedit.path.addCtrlGrip("1c1"),m=svgedit.path.addCtrlGrip("0c2");h.setAttribute("cx",e),h.setAttribute("cy",t),h.setAttribute("display","inline");var c=s[0],v=s[1],p=(o.getItem(d),e/f),y=t/f,x=c+(c-p),b=v+(v-y);m.setAttribute("cx",x*f),m.setAttribute("cy",b*f),m.setAttribute("display","inline");var S=svgedit.path.getCtrlLine(1);if(svgedit.utilities.assignAttributes(S,{x1:e,y1:t,x2:x*f,y2:b*f,display:"inline"}),0===d)l=[e,t];else{var C=o.getItem(d-1),w=C.x,_=C.y;6===C.pathSegType?(w+=w-C.x2,_+=_-C.y2):l&&(w=l[0]/f,_=l[1]/f),svgedit.path.replacePathSeg(6,d,[c,v,w,_,x,b],u)}}else{var N=svgedit.utilities.getElem("path_stretch_line");if(N){var A=o.getItem(d);if(6===A.pathSegType){var k=A.x+(A.x-A.x2),E=A.y+(A.y-A.y2);svgedit.path.replacePathSeg(6,1,[e,t,k*f,E*f,e,t],N)}else l?svgedit.path.replacePathSeg(6,1,[e,t,l[0],l[1],e,t],N):svgedit.path.replacePathSeg(4,1,[e,t],N)}}}},mouseUp:function(e,t,i,r){if("path"===current_mode||"pipe"===current_mode){if(s=null,!u){var n=ue();"pipe"===current_mode&&(n=n.replace("svg_","PIE_")),t=svgedit.utilities.getElem(n),started=!1,l=null}return{keep:!0,element:t}}if(svgedit.path.path.dragging){var a=svgedit.path.path.cur_pt;svgedit.path.path.dragging=!1,svgedit.path.path.dragctrl=!1,svgedit.path.path.update(),g&&svgedit.path.path.endChanges("Move path point(s)"),e.shiftKey||g||svgedit.path.path.selectPt(a)}else rubberBox&&"none"!=rubberBox.getAttribute("display")?(rubberBox.setAttribute("display","none"),rubberBox.getAttribute("width")<=2&&rubberBox.getAttribute("height")<=2&&me.toSelectMode(e.target)):me.toSelectMode(e.target);g=!1},toEditMode:function(e){svgedit.path.path=svgedit.path.getPath_(e),current_mode="pathedit",Ae(),svgedit.path.path.show(!0).update(),svgedit.path.path.oldbbox=svgedit.utilities.getBBox(svgedit.path.path.elem),d=!1},toSelectMode:function(e){var t=e==svgedit.path.path.elem;current_mode="select",svgedit.path.path.show(!1),i=!1,Ae(),svgedit.path.path.matrix&&svgedit.path.recalcRotatedPath(),t&&(V("selected",[e]),ke([e],!0))},addSubPath:function(e){e?(current_mode="path",d=!0):(me.clear(!0),me.toEditMode(svgedit.path.path.elem))},select:function(e){i===e?(me.toEditMode(e),current_mode="pathedit"):i=e},reorient:function(){var e=C[0];if(e){var t=svgedit.utilities.getRotationAngle(e);if(0!=t){var i=new svgedit.history.BatchCommand("Reorient path"),r={d:e.getAttribute("d"),transform:e.getAttribute("transform")};i.addSubCommand(new svgedit.history.ChangeElementCommand(e,r)),Ae(),this.resetOrientation(e),K(i),svgedit.path.getPath_(e).show(!1).matrix=null,this.clear(),ke([e],!0),V("changed",C)}}},clear:function(e){if(i=null,u){var t=svgedit.utilities.getElem(ue());$(svgedit.utilities.getElem("path_stretch_line")).remove(),$(t).remove(),$(svgedit.utilities.getElem("pathpointgrip_container")).find("*").attr("display","none"),u=l=null,started=!1}else"pathedit"==current_mode&&this.toSelectMode();svgedit.path.path&&svgedit.path.path.init().show(!1)},resetOrientation:function(e){if(null==e||"path"!=e.nodeName)return!1;var t=svgedit.transformlist.getTransformList(e),i=svgedit.math.transformListToTransform(t).matrix;t.clear(),e.removeAttribute("transform");var n,a=e.pathSegList,s=a.numberOfItems;for(n=0;n<s;++n){var o=a.getItem(n),l=o.pathSegType;if(1!=l){var d=[];$.each(["",1,2],function(e,t){var r=o["x"+t],n=o["y"+t];if(void 0!==r&&void 0!==n){var a=svgedit.math.transformPoint(r,n,i);d.splice(d.length,0,a.x,a.y)}}),svgedit.path.replacePathSeg(l,n,d,e)}}r(e,i)},zoomChange:function(){"pathedit"==current_mode&&svgedit.path.path.update()},getNodePoint:function(){var e=svgedit.path.path.selected_pts.length?svgedit.path.path.selected_pts[0]:1,t=svgedit.path.path.segs[e];return{x:t.item.x,y:t.item.y,type:t.type}},linkControlPoints:function(e){svgedit.path.setLinkControlPoints(e)},clonePathNode:function(){svgedit.path.path.storeD();for(var e=svgedit.path.path.selected_pts,t=(svgedit.path.path.segs,e.length),i=[];t--;){var r=e[t];svgedit.path.path.addSeg(r),i.push(r+t),i.push(r+t+1)}svgedit.path.path.init().addPtsToSelection(i),svgedit.path.path.endChanges("Clone path node(s)")},opencloseSubPath:function(){var e=svgedit.path.path.selected_pts;if(1===e.length){var t=svgedit.path.path.elem,i=t.pathSegList,r=(i.numberOfItems,e[0]),n=null,a=null;if(svgedit.path.path.eachSeg(function(e){return 2===this.type&&e<=r&&(a=this.item),e<=r||(2===this.type?(n=e,!1):1===this.type?(n=!1,!1):void 0)}),null==n&&(n=svgedit.path.path.segs.length-1),!1!==n){var s=t.createSVGPathSegLinetoAbs(a.x,a.y),o=t.createSVGPathSegClosePath();return n==svgedit.path.path.segs.length-1?(i.appendItem(s),i.appendItem(o)):(svgedit.path.insertItemBefore(t,o,n),svgedit.path.insertItemBefore(t,s,n)),void svgedit.path.path.init().selectPt(n+1)}var l,d,u,g=svgedit.path.path.segs[r];if(g.mate)return i.removeItem(r),i.removeItem(r),void svgedit.path.path.init().selectPt(r-1);for(l=0;l<i.numberOfItems;l++){var h=i.getItem(l);if(2===h.pathSegType)d=l;else if(l===r)i.removeItem(d);else if(1===h.pathSegType&&r<l){u=l-1,i.removeItem(l);break}}for(var m=r-d-1;m--;)svgedit.path.insertItemBefore(t,i.getItem(d),u);var c=i.getItem(d);svgedit.path.replacePathSeg(2,d,[c.x,c.y]),l=r,svgedit.path.path.init().selectPt(0)}},deletePathNode:function(){if(me.canDeleteNodes){svgedit.path.path.storeD();for(var e=svgedit.path.path.selected_pts,t=e.length;t--;){var i=e[t];svgedit.path.path.deleteSeg(i)}var r=function(){var e=svgedit.path.path.elem.pathSegList,t=e.numberOfItems,i=function(t,i){for(;i--;)e.removeItem(t)};if(t<=1)return!0;for(;t--;){var n=e.getItem(t);if(1===n.pathSegType){var a=e.getItem(t-1),s=e.getItem(t-2);if(2===a.pathSegType){i(t-1,2),r();break}if(2===s.pathSegType){i(t-2,3),r();break}}else if(2===n.pathSegType&&t>0){var o=e.getItem(t-1).pathSegType;if(2===o){i(t-1,1),r();break}if(1===o&&e.numberOfItems-1===t){i(t,1),r();break}}}return!1};if(r(),svgedit.path.path.elem.pathSegList.numberOfItems<=1)return me.toSelectMode(svgedit.path.path.elem),void o.deleteSelectedElements();if(svgedit.path.path.init(),svgedit.path.path.clearSelection(),window.opera){var n=$(svgedit.path.path.elem);n.attr("d",n.attr("d"))}svgedit.path.path.endChanges("Delete path node(s)")}},smoothPolylineIntoPath:h,setSegType:function(e){svgedit.path.path.setSegType(e)},moveNode:function(e,t){var i=svgedit.path.path.selected_pts;if(i.length){svgedit.path.path.storeD();var r=svgedit.path.path.segs[i[0]],n={x:0,y:0};n[e]=t-r.item[e],r.move(n.x,n.y),svgedit.path.path.endChanges("Move path point")}},fixEnd:function(e){var i,r,n=e.pathSegList,a=n.numberOfItems;for(i=0;i<a;++i){var s=n.getItem(i);if(2===s.pathSegType&&(r=s),1===s.pathSegType){var o=n.getItem(i-1);if(o.x!=r.x||o.y!=r.y){var l=e.createSVGPathSegLinetoAbs(r.x,r.y);svgedit.path.insertItemBefore(e,l,i),me.fixEnd(e);break}}}svgedit.browser.isWebkit()&&t(e)},convertPath:function(e,t){var i,r=e.pathSegList,n=r.numberOfItems,a=0,s=0,o="",l=null;for(i=0;i<n;++i){var d=r.getItem(i),u=d.x||0,g=d.y||0,h=d.x1||0,m=d.y1||0,c=d.x2||0,v=d.y2||0,f=d.pathSegType,p=we[f]["to"+(t?"Lower":"Upper")+"Case"](),y=function(e,t,i){t=t?" "+t.join(" "):"",i=i?" "+svgedit.units.shortFloat(i):"",$.each(e,function(t,i){e[t]=svgedit.units.shortFloat(i)}),o+=p+e.join(" ")+t+i};switch(f){case 1:o+="z";break;case 12:u-=a;case 13:t?(a+=u,p="l"):(u+=a,a=u,p="L"),y([[u,s]]);break;case 14:g-=s;case 15:t?(s+=g,p="l"):(g+=s,s=g,p="L"),y([[a,g]]);break;case 2:case 4:case 18:u-=a,g-=s;case 5:case 3:l&&1===r.getItem(i-1).pathSegType&&!t&&(a=l[0],s=l[1]);case 19:t?(a+=u,s+=g):(u+=a,g+=s,a=u,s=g),3===f&&(l=[a,s]),y([[u,g]]);break;case 6:u-=a,h-=a,c-=a,g-=s,m-=s,v-=s;case 7:t?(a+=u,s+=g):(u+=a,h+=a,c+=a,g+=s,m+=s,v+=s,a=u,s=g),y([[h,m],[c,v],[u,g]]);break;case 8:u-=a,h-=a,g-=s,m-=s;case 9:t?(a+=u,s+=g):(u+=a,h+=a,g+=s,m+=s,a=u,s=g),y([[h,m],[u,g]]);break;case 10:u-=a,g-=s;case 11:t?(a+=u,s+=g):(u+=a,g+=s,a=u,s=g),y([[d.r1,d.r2]],[d.angle,d.largeArcFlag?1:0,d.sweepFlag?1:0],[u,g]);break;case 16:u-=a,c-=a,g-=s,v-=s;case 17:t?(a+=u,s+=g):(u+=a,c+=a,g+=s,v+=s,a=u,s=g),y([[c,v],[u,g]])}}return o}}}();var Ge=this.removeUnusedDefElems=function(){var e=h.getElementsByTagNameNS(n.SVG,"defs");if(!e||!e.length)return 0;var t,i,r=[],a=0,s=["fill","stroke","filter","marker-start","marker-mid","marker-end"],o=s.length,l=h.getElementsByTagNameNS(n.SVG,"*"),d=l.length;for(t=0;t<d;t++){var u=l[t];for(i=0;i<o;i++){var g=svgedit.utilities.getUrlFromAttr(u.getAttribute(s[i]));g&&r.push(g.substr(1))}var m=G(u);m&&0===m.indexOf("#")&&r.push(m.substr(1))}var c=$(e).find("linearGradient, radialGradient, filter, marker, svg, symbol");for(t=c.length;t--;){var v=c[t],f=v.id;r.indexOf(f)<0&&(removedElements[f]=v,v.parentNode.removeChild(v),a++)}return a};this.svgCanvasToString=function(){for(;Ge()>0;);me.clear(!0),$.each(h.childNodes,function(e,t){e&&8===t.nodeType&&t.data.indexOf("Created with")>=0&&h.insertBefore(t,h.firstChild)}),p&&(Oe(),Ee([p]));var e=[];$(h).find("g:data(gsvg)").each(function(){var t,i=this.attributes,r=i.length;for(t=0;t<r;t++)"id"!=i[t].nodeName&&"style"!=i[t].nodeName||r--;if(r<=0){var n=this.firstChild;e.push(n),$(this).replaceWith(n)}});var t=this.svgToString(h,0);return e.length&&$(e).each(function(){ye(this)}),t},this.svgToString=function(e,t){var i=[],r=svgedit.utilities.toXml,s=a.baseUnit,o=new RegExp("^-?[\\d\\.]+"+s+"$"),l=["ngx-dygraphs"];if(e){if(l.indexOf(e.nodeName.toLowerCase())>=0)return i.join("");O(e);var d,u,g=e.attributes,h=e.childNodes;for(u=0;u<t;u++)i.push(" ");if(i.push("<"),i.push(e.nodeName),"svgcontent"===e.id){var m=Ve(),c="";"px"!==s&&(m.w=svgedit.units.convertUnit(m.w,s)+s,m.h=svgedit.units.convertUnit(m.h,s)+s),i.push(' width="'+m.w+'" height="'+m.h+'"'+c+' xmlns="'+n.SVG+'"');var v={};$(e).find("*").andSelf().each(function(){var e=this.namespaceURI;e&&!v[e]&&U[e]&&"xmlns"!==U[e]&&"xml"!==U[e]&&(v[e]=!0,i.push(" xmlns:"+U[e]+'="'+e+'"')),$.each(this.attributes,function(e,t){var r=t.namespaceURI;r&&!v[r]&&"xmlns"!==U[r]&&"xml"!==U[r]&&(v[r]=!0,i.push(" xmlns:"+U[r]+'="'+r+'"'))})}),u=g.length;for(var f=["width","height","xmlns","x","y","viewBox","id","overflow"];u--;){d=g.item(u);var p=r(d.value);0!==d.nodeName.indexOf("xmlns:")&&(""!=p&&-1==f.indexOf(d.localName)&&(d.namespaceURI&&!U[d.namespaceURI]||(i.push(" "),i.push(d.nodeName),i.push('="'),i.push(p),i.push('"'))))}}else{if("defs"===e.nodeName&&!e.firstChild)return;var y=["-moz-math-font-style","_moz-math-font-style"];for(u=g.length-1;u>=0;u--){d=g.item(u);p=r(d.value);if(!(y.indexOf(d.localName)>=0)&&""!=p){if(0===p.indexOf("pointer-events"))continue;if("class"===d.localName&&0===p.indexOf("se_"))continue;if(i.push(" "),"d"===d.localName&&(p=me.convertPath(e,!1)),isNaN(p)?o.test(p)&&(p=svgedit.units.shortFloat(p)+s):p=svgedit.units.shortFloat(p),save_options.apply&&"image"===e.nodeName&&"href"===d.localName&&save_options.images&&"embed"===save_options.images){var x=ie[p];x&&(p=x)}d.namespaceURI&&d.namespaceURI!=n.SVG&&!U[d.namespaceURI]||(i.push(d.nodeName),i.push('="'),i.push(p),i.push('"'))}}}if(e.hasChildNodes()){i.push(">"),t++;var b=!1;for(u=0;u<h.length;u++){var S=h.item(u);switch(S.nodeType){case 1:i.push("\n"),i.push(this.svgToString(h.item(u),t));break;case 3:var C=S.nodeValue.replace(/^\s+|\s+$/g,"");""!=C&&(b=!0,i.push(String(r(C))));break;case 4:i.push("\n"),i.push(new Array(t+1).join(" ")),i.push("<![CDATA["),i.push(S.nodeValue),i.push("]]>");break;case 8:i.push("\n"),i.push(new Array(t+1).join(" ")),i.push("<!--"),i.push(S.data),i.push("-->")}}if(t--,!b)for(i.push("\n"),u=0;u<t;u++)i.push(" ");i.push("</"),i.push(e.nodeName),i.push(">")}else"div"===e.nodeName.toLowerCase()||"span"===e.nodeName.toLowerCase()?(i.push(">"),i.push("</"),i.push(e.nodeName),i.push(">")):i.push("/>")}return i.join("")},this.embedImage=function(e,t){$(new Image).load(function(){var i=document.createElement("canvas");i.width=this.width,i.height=this.height,i.getContext("2d").drawImage(this,0,0);try{var r=";svgedit_url="+encodeURIComponent(e);r=i.toDataURL().replace(";base64",r+";base64"),ie[e]=r}catch(t){ie[e]=!1}re=e,t&&t(ie[e])}).attr("src",e)},this.setGoodImage=function(e){re=e},this.setGoodSvgImageContent=function(e){last_good_img_content=e},this.open=function(){},this.save=function(e){Ae(),e&&$.extend(save_options,e),save_options.apply=!0;var t=this.svgCanvasToString();V("saved",t)},this.rasterExport=function(e,t,r){var n="image/"+e.toLowerCase(),a=i(),s=this.svgCanvasToString();svgedit.utilities.buildCanvgCallback(function(){var i=e||"PNG";$("#export_canvas").length||$("<canvas>",{id:"export_canvas"}).hide().appendTo("body");var o=$("#export_canvas")[0];o.width=svgCanvas.contentW,o.height=svgCanvas.contentH,canvg(o,s,{renderCallback:function(){var l=("ICO"===i?"BMP":i).toLowerCase(),d=t?o.toDataURL("image/"+l,t):o.toDataURL("image/"+l);V("exported",{datauri:d,svg:s,issues:a,type:e,mimeType:n,quality:t,exportWindowName:r})}})})()},this.exportPDF=function(e,t){var r=this;svgedit.utilities.buildJSPDFCallback(function(){var n=Ve(),a=n.w>n.h?"landscape":"portrait",s="pt",o=jsPDF({orientation:a,unit:s,format:[n.w,n.h]}),l=Re();o.setProperties({title:l});var d=i(),u=r.svgCanvasToString();o.addSVG(u,0,0);var g={svg:u,issues:d,exportWindowName:e},h=t||"dataurlstring";g[h]=o.output(h),V("exportedPDF",g)})()},this.getSvgString=function(){return save_options.apply=!1,this.svgCanvasToString()},this.randomizeIds=function(e){arguments.length>0&&0==e?svgedit.draw.randomizeIds(!1,v()):svgedit.draw.randomizeIds(!0,v())};var Ie=this.uniquifyElems=function(e){var t,i={},r=["filter","linearGradient","pattern","radialGradient","symbol","textPath","use"];for(t in svgedit.utilities.walkTree(e,function(e){if(1==e.nodeType){e.id&&(e.id in i||(i[e.id]={elem:null,attrs:[],hrefs:[]}),i[e.id].elem=e),$.each(J,function(t,r){var n=e.getAttributeNode(r);if(n){var a=svgedit.utilities.getUrlFromAttr(n.value),s=a?a.substr(1):null;s&&(s in i||(i[s]={elem:null,attrs:[],hrefs:[]}),i[s].attrs.push(n))}});var t=svgedit.utilities.getHref(e);if(t&&r.indexOf(e.nodeName)>=0){var n=t.substr(1);n&&(n in i||(i[n]={elem:null,attrs:[],hrefs:[]}),i[n].hrefs.push(e))}}}),i)if(t){var n=i[t].elem;if(n){var a=ge();n.id=a;for(var s=i[t].attrs,o=s.length;o--;){var l=s[o];l.ownerElement.setAttribute(l.name,"url(#"+a+")")}for(var d=i[t].hrefs,u=d.length;u--;){var g=d[u];svgedit.utilities.setHref(g,"#"+a)}}}},Me=this.setUseData=function(e){var t=$(e);"use"!==e.tagName&&(t=t.find("use")),t.each(function(){var e=G(this).substr(1),t=svgedit.utilities.getElem(e);t&&($(this).data("ref",t),"symbol"!=t.tagName&&"svg"!=t.tagName||$(this).data("symbol",t).data("ref",t))})},Le=this.convertGradients=function(e){var t=$(e).find("linearGradient, radialGradient");!t.length&&svgedit.browser.isWebkit()&&(t=$(e).find("*").filter(function(){return this.tagName.indexOf("Gradient")>=0})),t.each(function(){var e=this;if("userSpaceOnUse"===$(e).attr("gradientUnits")){var t=$(h).find('[fill="url(#'+e.id+')"],[stroke="url(#'+e.id+')"]');if(!t.length)return;var i=svgedit.utilities.getBBox(t[0]);if(!i)return;if("linearGradient"===e.tagName){var r=$(e).attr(["x1","y1","x2","y2"]),n=e.gradientTransform.baseVal;if(n&&n.numberOfItems>0){var a=svgedit.math.transformListToTransform(n).matrix,s=svgedit.math.transformPoint(r.x1,r.y1,a),o=svgedit.math.transformPoint(r.x2,r.y2,a);r.x1=s.x,r.y1=s.y,r.x2=o.x,r.y2=o.y,e.removeAttribute("gradientTransform")}$(e).attr({x1:(r.x1-i.x)/i.width,y1:(r.y1-i.y)/i.height,x2:(r.x2-i.x)/i.width,y2:(r.y2-i.y)/i.height}),e.removeAttribute("gradientUnits")}}})},$e=this.convertToGroup=function(e){e||(e=C[0]);var t,i=$(e),r=new svgedit.history.BatchCommand;if(i.data("gsvg")){var a=e.firstChild,s=$(a).attr(["x","y"]);$(e.firstChild.firstChild).unwrap(),$(e).removeData("gsvg");var o=svgedit.transformlist.getTransformList(e),l=g.createSVGTransform();l.setTranslate(s.x,s.y),o.appendItem(l),svgedit.recalculate.recalculateDimensions(e),V("selected",[e])}else if(i.data("symbol")){e=i.data("symbol"),t=i.attr("transform");var d=i.attr(["x","y"]),m=e.getAttribute("viewBox");if(m){var c=m.split(" ");d.x-=+c[0],d.y-=+c[1]}t+=" translate("+(d.x||0)+","+(d.y||0)+")";var v=i.prev();r.addSubCommand(new svgedit.history.RemoveElementCommand(i[0],i[0].nextSibling,i[0].parentNode)),i.remove();var f,p=$(h).find("use:data(symbol)").length,y=u.createElementNS(n.SVG,"g"),x=e.childNodes;for(f=0;f<x.length;f++)y.appendChild(x[f].cloneNode(!0));if(svgedit.browser.isGecko()){var b=$(svgedit.utilities.findDefs()).children("linearGradient,radialGradient,pattern").clone();$(y).append(b)}t&&y.setAttribute("transform",t);var S=e.parentNode;if(Ie(y),svgedit.browser.isGecko()&&$(B()).append($(y).find("linearGradient,radialGradient,pattern")),y.id=ge(),v.after(y),S){if(!p){var w=e.nextSibling;S.removeChild(e),r.addSubCommand(new svgedit.history.RemoveElementCommand(e,w,S))}r.addSubCommand(new svgedit.history.InsertElementCommand(y))}Me(y),svgedit.browser.isGecko()?Le(svgedit.utilities.findDefs()):Le(y),svgedit.utilities.walkTreePost(y,function(e){try{svgedit.recalculate.recalculateDimensions(e)}catch(e){console.log(e)}}),$(y).find(Z).each(function(){this.id||(this.id=ge())}),Ee([y]);var _=qe(y,!0);_&&r.addSubCommand(_),K(r)}else console.log("Unexpected element to ungroup:",e)};this.setSvgString=function(e){try{var t=svgedit.utilities.text2xml(e);this.prepareSvg(t);var i=new svgedit.history.BatchCommand("Change Source"),r=h.nextSibling,s=g.removeChild(h);i.addSubCommand(new svgedit.history.RemoveElementCommand(s,r,g)),h=u.adoptNode?u.adoptNode(t.documentElement):u.importNode(t.documentElement,!0),g.appendChild(h);var l=$(h);o.current_drawing_=new svgedit.draw.Drawing(h,c);var d=v().getNonce();d?V("setnonce",d):V("unsetnonce"),l.find("image").each(function(){var e=this;Te(e);var t=G(this);if(t){if(0===t.indexOf("data:")){var i=t.match(/svgedit_url=(.*?);/);if(i){var r=decodeURIComponent(i[1]);$(new Image).load(function(){e.setAttributeNS(n.XLINK,"xlink:href",r)}).attr("src",r)}}o.embedImage(t)}}),l.find("svg").each(function(){if(!$(this).closest("defs").length){Ie(this);var e=this.parentNode;1===e.childNodes.length&&"g"===e.nodeName?($(e).data("gsvg",this),e.id=e.id||ge()):ye(this)}}),svgedit.browser.isGecko()&&l.find("linearGradient, radialGradient, pattern").appendTo(svgedit.utilities.findDefs()),Me(l),Le(l[0]),svgedit.utilities.walkTreePost(h,function(e){try{svgedit.recalculate.recalculateDimensions(e)}catch(e){console.log(e)}});var m={id:"svgcontent",overflow:a.show_outside_canvas?"visible":"hidden"},p=!1;if(l.attr("viewBox")){var y=l.attr("viewBox").split(" ");m.width=y[2],m.height=y[3]}else $.each(["width","height"],function(e,t){var i=l.attr(t);i||(i="100%"),"%"===String(i).substr(-1)?p=!0:m[t]=svgedit.units.convertToNum(t,i)});if(Pe(),l.children().find(Z).each(function(){this.id||(this.id=ge())}),p){var x=getStrokedBBox();m.width=x.width+x.x,m.height=x.height+x.y}m.width<=0&&(m.width=100),m.height<=0&&(m.height=100),l.attr(m),this.contentW=m.width,this.contentH=m.height,i.addSubCommand(new svgedit.history.InsertElementCommand(h));var b=l.attr(["width","height"]);i.addSubCommand(new svgedit.history.ChangeElementCommand(g,b)),f=1,svgedit.transformlist.resetListMap(),Ae(),svgedit.path.clearData(),g.appendChild(X.selectorParentGroup),K(i),V("changed",[h])}catch(e){return console.log(e),!1}return!0},this.importSvgString=function(e,t){var i,r;try{var a=(new Date).getTime(),s=!1;import_ids[a]&&$(import_ids[a].symbol).parents("#svgroot").length&&(s=!0);var o,l=new svgedit.history.BatchCommand("Import Image");if(s)o=import_ids[a].symbol,r=import_ids[a].xform,t&&t.x>0&&t.y>0&&(r=" translate("+t.x+","+t.y+") scale(1) translate(0)");else{var d,g=svgedit.utilities.text2xml(e);this.prepareSvg(g),d=u.adoptNode?u.adoptNode(g.documentElement):u.importNode(g.documentElement,!0),Ie(d);var m=svgedit.units.convertToNum("width",d.getAttribute("width")),c=svgedit.units.convertToNum("height",d.getAttribute("height")),f=d.getAttribute("viewBox"),y=f?f.split(" "):[0,0,m,c];for(i=0;i<4;++i)y[i]=Number(y[i]);var x=Number(h.getAttribute("height"));r=c>m?"scale("+x/3/y[3]+")":"scale("+x/3/y[2]+")",
|
|
19
|
+
r=t&&t.x>0&&t.y>0?"translate("+t.x+","+t.y+") scale(1) translate(0)":"translate(0) scale(1) translate(0)",o=u.createElementNS(n.SVG,"symbol");var b=svgedit.utilities.findDefs();if($(d).find("linearGradient, radialGradient, pattern").appendTo(b),!b.firstChild){var S=u.createElementNS(n.SVG,"symbol");S.id=ge(),b.appendChild(S)}for(;d.firstChild;){var C=d.firstChild;svgedit.utilities.walkTree(C,function(e){e.id=ge()}),o.appendChild(C)}o.id=ge(),o.setAttribute("type","svg-ext-shapes-image"),o.childNodes.forEach(e=>{e.getAttribute("transform")&&e.setAttribute("transform","matrix(1, 0, 0, 1, 0, 0)")}),import_ids[a]={symbol:o,xform:r},svgedit.utilities.findDefs().appendChild(o),l.addSubCommand(new svgedit.history.InsertElementCommand(o))}var w=u.createElementNS(n.SVG,"use");w.id=ge(),w.setAttribute("type","svg-ext-shapes-image"),I(w,"#"+o.id),(p||v().getCurrentLayer()).appendChild(w),l.addSubCommand(new svgedit.history.InsertElementCommand(w)),Ae(),w.setAttribute("transform",r),svgedit.recalculate.recalculateDimensions(w),$(w).data("symbol",o).data("ref",o),ke([w]),setTimeout(function(){Ee([w],!0)},500),K(l),V("changed",[h])}catch(e){return console.log(e),!1}return!0};var Pe=o.identifyLayers=function(){Oe(),v().identifyLayers()};this.createLayer=function(e){var t=new svgedit.history.BatchCommand("Create Layer"),i=v().createLayer(e);t.addSubCommand(new svgedit.history.InsertElementCommand(i)),K(t),Ae(),V("changed",[i])},this.cloneLayer=function(e){var t=new svgedit.history.BatchCommand("Duplicate Layer"),i=u.createElementNS(n.SVG,"g"),r=u.createElementNS(n.SVG,"title");r.textContent=e,i.appendChild(r);var a=v().getCurrentLayer();$(a).after(i);var s,l=a.childNodes;for(s=0;s<l.length;s++){var d=l[s];"title"!=d.localName&&i.appendChild(xe(d))}Ae(),Pe(),t.addSubCommand(new svgedit.history.InsertElementCommand(i)),K(t),o.setCurrentLayer(e),V("changed",[i])},this.deleteCurrentLayer=function(){var e=v().getCurrentLayer(),t=e.nextSibling,i=e.parentNode;if(e=v().deleteCurrentLayer(),e){var r=new svgedit.history.BatchCommand("Delete Layer");return r.addSubCommand(new svgedit.history.RemoveElementCommand(e,t,i)),K(r),Ae(),V("changed",[i]),!0}return!1},this.setCurrentLayer=function(e){var t=v().setCurrentLayer(svgedit.utilities.toXml(e));return t&&Ae(),t},this.renameCurrentLayer=function(e){var t,i=v();if(i.current_layer){var r=i.current_layer;if(!o.setCurrentLayer(e)){var n=new svgedit.history.BatchCommand("Rename Layer");for(t=0;t<i.getNumLayers()&&i.all_layers[t][1]!=r;++t);var a=i.getLayerName(t);i.all_layers[t][0]=svgedit.utilities.toXml(e);var s=r.childNodes.length;for(t=0;t<s;++t){var l=r.childNodes.item(t);if(l&&"title"==l.tagName){for(;l.firstChild;)l.removeChild(l.firstChild);return l.textContent=e,n.addSubCommand(new svgedit.history.ChangeElementCommand(l,{"#text":a})),K(n),V("changed",[r]),!0}}}i.current_layer=r}return!1},this.setCurrentLayerPosition=function(e){var t,i=v();if(i.current_layer&&e>=0&&e<i.getNumLayers()){for(t=0;t<i.getNumLayers()&&i.all_layers[t][1]!=i.current_layer;++t);if(t==i.getNumLayers())return!1;if(t!=e){var r=null,n=i.current_layer.nextSibling;return e>t?e<i.getNumLayers()-1&&(r=i.all_layers[e+1][1]):r=i.all_layers[e][1],h.insertBefore(i.current_layer,r),K(new svgedit.history.MoveElementCommand(i.current_layer,n,h)),Pe(),o.setCurrentLayer(i.getLayerName(e)),!0}}return!1},this.setLayerVisibility=function(e,t){var i=v(),r=i.getLayerVisibility(e),n=i.setLayerVisibility(e,t);if(!n)return!1;var a=r?"inline":"none";return K(new svgedit.history.ChangeElementCommand(n,{display:a},"Layer Visibility")),n==i.getCurrentLayer()&&(Ae(),me.clear()),!0},this.moveSelectedToLayer=function(e){var t,i=null,r=v();for(t=0;t<r.getNumLayers();++t)if(r.getLayerName(t)==e){i=r.all_layers[t][1];break}if(!i)return!1;var n=new svgedit.history.BatchCommand("Move Elements to Layer"),a=C;for(t=a.length;t--;){var s=a[t];if(s){var o=s.nextSibling,l=s.parentNode;i.appendChild(s),n.addSubCommand(new svgedit.history.MoveElementCommand(s,o,l))}}return K(n),!0},this.mergeLayer=function(e){var t=new svgedit.history.BatchCommand("Merge Layer"),i=v(),r=$(i.current_layer).prev()[0];if(r){var n=i.current_layer.childNodes,a=(n.length,i.current_layer.nextSibling);for(t.addSubCommand(new svgedit.history.RemoveElementCommand(i.current_layer,a,h));i.current_layer.firstChild;){var s=i.current_layer.firstChild;if("title"!=s.localName){var o=s.nextSibling;r.appendChild(s),t.addSubCommand(new svgedit.history.MoveElementCommand(s,o,i.current_layer))}else{var l=s.nextSibling;t.addSubCommand(new svgedit.history.RemoveElementCommand(s,l,i.current_layer)),i.current_layer.removeChild(s)}}return h.removeChild(i.current_layer),e||(Ae(),Pe(),V("changed",[h]),K(t)),i.current_layer=r,t}},this.mergeAllLayers=function(){var e=new svgedit.history.BatchCommand("Merge all Layers"),t=v();for(t.current_layer=t.all_layers[t.getNumLayers()-1][1];$(h).children("g").length>1;)e.addSubCommand(o.mergeLayer(!0));Ae(),Pe(),V("changed",[h]),K(e)};var Oe=this.leaveContext=function(){var e,t=disabled_elems.length;if(t){for(e=0;e<t;e++){var i=disabled_elems[e],r=Q(i,"orig_opac");1!==r?i.setAttribute("opacity",r):i.removeAttribute("opacity"),i.setAttribute("style","pointer-events: inherit")}disabled_elems=[],Ae(!0),V("contextset",null)}p=null},De=this.setContext=function(e){Oe(),"string"==typeof e&&(e=svgedit.utilities.getElem(e)),p=e,$(e).parentsUntil("#svgcontent").andSelf().siblings().each(function(){var e=this.getAttribute("opacity")||1;Q(this,"orig_opac",e),this.setAttribute("opacity",.33*e),this.setAttribute("style","pointer-events: none"),disabled_elems.push(this)}),Ae(),V("contextset",p)};this.clear=function(){me.clear(),Ae(),o.clearSvgContentElement(),o.current_drawing_=new svgedit.draw.Drawing(h),o.createLayer("Layer 1"),o.undoMgr.resetUndoStack(),X.initGroup(),rubberBox=X.getRubberBandBox(),V("cleared")},this.linkControlPoints=me.linkControlPoints,this.getContentElem=function(){return h},this.getRootElem=function(){return g},this.getSelectedElems=function(){return C};var Ve=this.getResolution=function(){var e=h.getAttribute("width")/f,t=h.getAttribute("height")/f;return{w:e,h:t,zoom:f}};this.getZoom=function(){return f},this.getVersion=function(){return"svgcanvas.js ($Rev$)"},this.setUiStrings=function(e){$.extend(Y,e.notification)},this.setConfig=function(e){$.extend(a,e)},this.getTitle=function(e){var t;if(e=e||C[0],e){e=$(e).data("gsvg")||$(e).data("symbol")||e;var i=e.childNodes;for(t=0;t<i.length;t++)if("title"==i[t].nodeName)return i[t].textContent;return""}},this.setGroupTitle=function(e){var t=C[0];t=$(t).data("gsvg")||t;var i=$(t).children("title"),r=new svgedit.history.BatchCommand("Set Label");if(e.length)if(i.length){var a=i[0];r.addSubCommand(new svgedit.history.ChangeElementCommand(a,{"#text":a.textContent})),a.textContent=e}else a=u.createElementNS(n.SVG,"title"),a.textContent=e,$(t).prepend(a),r.addSubCommand(new svgedit.history.InsertElementCommand(a));else{var s=i.nextSibling;r.addSubCommand(new svgedit.history.RemoveElementCommand(i[0],s,t)),i.remove()}K(r)};var Re=this.getDocumentTitle=function(){return o.getTitle(h)};this.setDocumentTitle=function(e){var t,i=h.childNodes,r=!1,a="",s=new svgedit.history.BatchCommand("Change Image Title");for(t=0;t<i.length;t++)if("title"==i[t].nodeName){r=i[t],a=r.textContent;break}r||(r=u.createElementNS(n.SVG,"title"),h.insertBefore(r,h.firstChild)),e.length?r.textContent=e:r.parentNode.removeChild(r),s.addSubCommand(new svgedit.history.ChangeElementCommand(r,{"#text":a})),K(s)},this.getEditorNS=function(e){return e&&h.setAttribute("xmlns:se",n.SE),n.SE},this.setResolution=function(e,t){var i,r=Ve(),n=r.w,a=r.h;if("fit"==e){var s=getStrokedBBox();if(!s)return!1;i=new svgedit.history.BatchCommand("Fit Canvas to Content");var l=fe();ke(l);var d=[],u=[];$.each(l,function(e,t){d.push(-1*s.x),u.push(-1*s.y)});var m=o.moveSelectedElements(d,u,!0);i.addSubCommand(m),Ae(),e=Math.round(s.width),t=Math.round(s.height)}if(e!=n||t!=a){var c=g.suspendRedraw(1e3);i||(i=new svgedit.history.BatchCommand("Change Image Dimensions")),e=svgedit.units.convertToNum("width",e),t=svgedit.units.convertToNum("height",t),h.setAttribute("width",e),h.setAttribute("height",t),this.contentW=e,this.contentH=t,i.addSubCommand(new svgedit.history.ChangeElementCommand(h,{width:n,height:a})),h.setAttribute("viewBox",[0,0,e/f,t/f].join(" ")),i.addSubCommand(new svgedit.history.ChangeElementCommand(h,{viewBox:["0 0",n,a].join(" ")})),K(i),g.unsuspendRedraw(c),V("changed",[h])}return!0},this.getOffset=function(){return $(h).attr(["x","y"])},this.setBBoxZoom=function(e,t,i){var r,n=.85,a=function(e){if(!e)return!1;var r=Math.round(t/e.width*100*n)/100,a=Math.round(i/e.height*100*n)/100,s=Math.min(r,a);return o.setZoom(s),{zoom:s,bbox:e}};if("object"==typeof e){if(r=e,0==r.width||0==r.height){var s=r.zoom?r.zoom:f*r.factor;return o.setZoom(s),{zoom:f,bbox:r}}return a(r)}switch(e){case"selection":if(!C[0])return;var l=$.map(C,function(e){if(e)return e});r=getStrokedBBox(l);break;case"canvas":var d=Ve();n=.95,r={width:d.w,height:d.h,x:0,y:0};break;case"content":r=getStrokedBBox();break;case"layer":r=getStrokedBBox(fe(v().getCurrentLayer()));break;default:return}return a(r)},this.setZoom=function(e){var t=Ve();h.setAttribute("viewBox","0 0 "+t.w/e+" "+t.h/e),f=e,$.each(C,function(e,t){t&&X.requestSelector(t).resize()}),me.zoomChange(),ne("zoomChanged",e)},this.getMode=function(){return current_mode},this.setMode=function(e){me.clear(!0),he.clear(),cur_properties=C[0]&&"text"==C[0].nodeName?cur_text:S,current_mode=e},this.getColor=function(e){return cur_properties[e]},this.setColor=function(e,t,i){function r(e){"g"!=e.nodeName&&n.push(e)}S[e]=t,cur_properties[e+"_paint"]={type:"solidColor"};for(var n=[],a=C.length;a--;){var s=C[a];if(s)if("g"==s.tagName){var o=s.id.substr(0,3);if("GXP"===o)continue;"MTR"===o?svgedit.utilities.walkTree(s,function(t){t.hasAttribute(e)&&"sMTR"!=t.id.substr(0,4)&&n.push(t)}):["CPS","VLA","EHS","SHE"].includes(o)?svgedit.utilities.walkTree(s,function(t){t.hasAttribute(e)&&n.push(t)}):svgedit.utilities.walkTree(s,r)}else"fill"==e?"polyline"!=s.tagName&&"line"!=s.tagName&&n.push(s):n.push(s)}n.length>0&&(i?je(e,t,n):(Fe(e,t,n),V("changed",n)))};var Ue=this.setGradient=function(e){if(cur_properties[e+"_paint"]&&"solidColor"!=cur_properties[e+"_paint"].type){var t=o[e+"Grad"],i=ze(t),r=svgedit.utilities.findDefs();if(i)t=i;else{t=r.appendChild(u.importNode(t,!0)),t.id=ge()}o.setColor(e,"url(#"+t.id+")")}},ze=function(e){for(var t=svgedit.utilities.findDefs(),i=$(t).find("linearGradient, radialGradient"),r=i.length,a=["r","cx","cy","fx","fy"];r--;){var s=i[r];if("linearGradient"==e.tagName){if(e.getAttribute("x1")!=s.getAttribute("x1")||e.getAttribute("y1")!=s.getAttribute("y1")||e.getAttribute("x2")!=s.getAttribute("x2")||e.getAttribute("y2")!=s.getAttribute("y2"))continue}else{var o=$(e).attr(a),l=$(s).attr(a),d=!1;if($.each(a,function(e,t){o[t]!=l[t]&&(d=!0)}),d)continue}var u=e.getElementsByTagNameNS(n.SVG,"stop"),g=s.getElementsByTagNameNS(n.SVG,"stop");if(u.length==g.length){for(var h=u.length;h--;){var m=u[h],c=g[h];if(m.getAttribute("offset")!=c.getAttribute("offset")||m.getAttribute("stop-opacity")!=c.getAttribute("stop-opacity")||m.getAttribute("stop-color")!=c.getAttribute("stop-color"))break}if(-1==h)return s}}return null};this.setPaint=function(e,t){var i=new $.jGraduate.Paint(t);switch(this.setPaintOpacity(e,i.alpha/100,!0),cur_properties[e+"_paint"]=i,i.type){case"solidColor":-1===i.solidColor.indexOf("rgb")?this.setColor(e,"none"!=i.solidColor?"#"+i.solidColor:"none"):this.setColor(e,i.solidColor);break;case"linearGradient":case"radialGradient":o[e+"Grad"]=i[i.type],Ue(e)}},this.setStrokePaint=function(e){this.setPaint("stroke",e)},this.setFillPaint=function(e){this.setPaint("fill",e)},this.getStrokeWidth=function(){return cur_properties.stroke_width},this.setStrokeWidth=function(e){function t(e){"g"!=e.nodeName&&i.push(e)}if(0==e&&["line","path"].indexOf(current_mode)>=0)o.setStrokeWidth(1);else{cur_properties.stroke_width=e;for(var i=[],r=C.length;r--;){var n=C[r];n&&("g"==n.tagName?svgedit.utilities.walkTree(n,t):i.push(n))}i.length>0&&(Fe("stroke-width",e,i),V("changed",C))}},this.setStrokeAttr=function(e,t){S[e.replace("-","_")]=t;for(var i=[],r=C.length;r--;){var n=C[r];n&&("g"==n.tagName?svgedit.utilities.walkTree(n,function(e){"g"!=e.nodeName&&i.push(e)}):i.push(n))}i.length>0&&(Fe(e,t,i),V("changed",C))},this.getStyle=function(){return S},this.getOpacity=function(){return S.opacity},this.setOpacity=function(e){S.opacity=e,Fe("opacity",e)},this.getFillOpacity=function(){return S.fill_opacity},this.getStrokeOpacity=function(){return S.stroke_opacity},this.setPaintOpacity=function(e,t,i){S[e+"_opacity"]=t,i?je(e+"-opacity",t):Fe(e+"-opacity",t)},this.getPaintOpacity=function(e){return"fill"===e?this.getFillOpacity():this.getStrokeOpacity()},this.getBlur=function(e){var t=0;if(e){var i=e.getAttribute("filter");if(i){var r=svgedit.utilities.getElem(e.id+"_blur");r&&(t=r.firstChild.getAttribute("stdDeviation"))}}return t},function(){function e(){var e=o.undoMgr.finishUndoableChange();t.addSubCommand(e),K(t),t=null,i=null}var t=null,i=null,r=!1;o.setBlurNoUndo=function(e){if(i)if(0===e)je("filter",""),r=!0;else{var t=C[0];r&&je("filter","url(#"+t.id+"_blur)"),svgedit.browser.isWebkit()&&(console.log("e",t),t.removeAttribute("filter"),t.setAttribute("filter","url(#"+t.id+"_blur)")),je("stdDeviation",e,[i.firstChild]),o.setBlurOffsets(i,e)}else o.setBlur(e)},o.setBlurOffsets=function(e,t){t>3?svgedit.utilities.assignAttributes(e,{x:"-50%",y:"-50%",width:"200%",height:"200%"},100):svgedit.browser.isWebkit()||(e.removeAttribute("x"),e.removeAttribute("y"),e.removeAttribute("width"),e.removeAttribute("height"))},o.setBlur=function(r,n){if(t)e();else{var a=C[0],s=a.id;i=svgedit.utilities.getElem(s+"_blur"),r-=0;var l=new svgedit.history.BatchCommand;if(i)0===r&&(i=null);else{var d=w({element:"feGaussianBlur",attr:{in:"SourceGraphic",stdDeviation:r}});i=w({element:"filter",attr:{id:s+"_blur"}}),i.appendChild(d),svgedit.utilities.findDefs().appendChild(i),l.addSubCommand(new svgedit.history.InsertElementCommand(i))}var u={filter:a.getAttribute("filter")};if(0===r)return a.removeAttribute("filter"),void l.addSubCommand(new svgedit.history.ChangeElementCommand(a,u));Fe("filter","url(#"+s+"_blur)"),l.addSubCommand(new svgedit.history.ChangeElementCommand(a,u)),o.setBlurOffsets(i,r),t=l,o.undoMgr.beginUndoableChange("stdDeviation",[i?i.firstChild:null]),n&&(o.setBlurNoUndo(r),e())}}}(),this.getBold=function(){var e=C[0];return null!=e&&"text"==e.tagName&&null==C[1]&&"bold"==e.getAttribute("font-weight")},this.setBold=function(e){var t=C[0];null!=t&&"text"==t.tagName&&null==C[1]&&Fe("font-weight",e?"bold":"normal"),C[0].textContent||he.setCursor()},this.getItalic=function(){var e=C[0];return null!=e&&"text"==e.tagName&&null==C[1]&&"italic"==e.getAttribute("font-style")},this.setItalic=function(e){var t=C[0];null!=t&&"text"==t.tagName&&null==C[1]&&Fe("font-style",e?"italic":"normal"),C[0].textContent||he.setCursor()},this.getFontFamily=function(){return cur_text.font_family},this.setFontFamily=function(e){cur_text.font_family=e,Fe("font-family",e),C[0]&&!C[0].textContent&&he.setCursor(),ne("setFontAttribute",{elem:C[0],attr:"font-family",value:e})},this.setTextAlign=function(e){cur_text.text_anchor=e,Fe("text-anchor",e),C[0]&&!C[0].textContent&&he.setCursor(),ne("setFontAttribute",{elem:C[0],attr:"text-anchor",value:e})},this.setFontColor=function(e){cur_text.fill=e,Fe("fill",e)},this.getFontColor=function(){return cur_text.fill},this.getFontSize=function(){return cur_text.font_size},this.setFontSize=function(e){C[0]&&(cur_text.font_size=e,Fe("font-size",e),C[0].textContent||he.setCursor(),ne("setFontAttribute",{elem:C[0],attr:"font-size",value:e+"px"}))},this.getExtensionFont=function(e){return se("getFontAttribute",{elem:e})},this.getText=function(){var e=C[0];return null==e?"":e.textContent},this.setTextContent=function(e){Fe("#text",e),he.init(e),he.setCursor()},this.setImageURL=function(e){var t=C[0];if(t){var i=$(t).attr(["width","height"]),r=!i.width||!i.height,n=G(t);if(n!==e)r=!0;else if(!r)return;var a=new svgedit.history.BatchCommand("Change Image URL");I(t,e),a.addSubCommand(new svgedit.history.ChangeElementCommand(t,{"#href":n})),r?$(new Image).load(function(){var e=$(t).attr(["width","height"]);$(t).attr({width:this.width,height:this.height}),X.requestSelector(t).resize(),a.addSubCommand(new svgedit.history.ChangeElementCommand(t,e)),K(a),V("changed",[t])}).attr("src",e):K(a)}},this.setLinkURL=function(e){var t=C[0];if(t){if("a"!==t.tagName){var i=$(t).parents("a");if(!i.length)return;t=i[0]}var r=G(t);if(r!==e){var n=new svgedit.history.BatchCommand("Change Link URL");I(t,e),n.addSubCommand(new svgedit.history.ChangeElementCommand(t,{"#href":r})),K(n)}}},this.setRectRadius=function(e){var t=C[0];if(null!=t&&"rect"==t.tagName){var i=t.getAttribute("rx");i!=e&&(t.setAttribute("rx",e),t.setAttribute("ry",e),K(new svgedit.history.ChangeElementCommand(t,{rx:i,ry:i},"Radius")),V("changed",[t]))}},this.convertToPath=function(e,t){if(null!=e){if(!t)var i=new svgedit.history.BatchCommand("Convert element to Path");var r=t?{}:{fill:S.fill,"fill-opacity":S.fill_opacity,stroke:S.stroke,"stroke-width":S.stroke_width,"stroke-dasharray":S.stroke_dasharray,"stroke-linejoin":S.stroke_linejoin,"stroke-linecap":S.stroke_linecap,"stroke-opacity":S.stroke_opacity,opacity:S.opacity,visibility:"hidden"};$.each(["marker-start","marker-end","marker-mid","filter","clip-path"],function(){e.getAttribute(this)&&(r[this]=e.getAttribute(this))});var n=w({element:"path",attr:r}),a=e.getAttribute("transform");a&&n.setAttribute("transform",a);var s=e.id,l=e.parentNode;e.nextSibling?l.insertBefore(n,e):l.appendChild(n);var d,u,g="",h=function(e){$.each(e,function(e,t){var i,r=t[0],n=t[1];for(g+=r,i=0;i<n.length;i+=2)g+=n[i]+","+n[i+1]+" "})},m=1.81;switch(e.tagName){case"ellipse":case"circle":d=$(e).attr(["rx","ry","cx","cy"]);var c=d.cx,v=d.cy;u=d.rx,ry=d.ry,"circle"==e.tagName&&(u=ry=$(e).attr("r")),h([["M",[c-u,v]],["C",[c-u,v-ry/m,c-u/m,v-ry,c,v-ry]],["C",[c+u/m,v-ry,c+u,v-ry/m,c+u,v]],["C",[c+u,v+ry/m,c+u/m,v+ry,c,v+ry]],["C",[c-u/m,v+ry,c-u,v+ry/m,c-u,v]],["Z",[]]]);break;case"path":g=e.getAttribute("d");break;case"line":d=$(e).attr(["x1","y1","x2","y2"]),g="M"+d.x1+","+d.y1+"L"+d.x2+","+d.y2;break;case"polyline":case"polygon":g="M"+e.getAttribute("points");break;case"rect":var f=$(e).attr(["rx","ry"]);u=f.rx,ry=f.ry;var p=e.getBBox(),y=p.x,x=p.y,b=p.width,_=p.height;m=4-m,u||ry?h([["M",[y,x+ry]],["C",[y,x+ry/m,y+u/m,x,y+u,x]],["L",[y+b-u,x]],["C",[y+b-u/m,x,y+b,x+ry/m,y+b,x+ry]],["L",[y+b,x+_-ry]],["C",[y+b,x+_-ry/m,y+b-u/m,x+_,y+b-u,x+_]],["L",[y+u,x+_]],["C",[y+u/m,x+_,y,x+_-ry/m,y,x+_-ry]],["L",[y,x+ry]],["Z",[]]]):h([["M",[y,x]],["L",[y+b,x]],["L",[y+b,x+_]],["L",[y,x+_]],["L",[y,x]],["Z",[]]]);break;default:n.parentNode.removeChild(n)}if(g&&n.setAttribute("d",g),t){me.resetOrientation(n);var N=!1;try{N=n.getBBox()}catch(e){}return n.parentNode.removeChild(n),N}if(a){var A=svgedit.transformlist.getTransformList(n);svgedit.math.hasMatrixTransform(A)&&me.resetOrientation(n)}var k=e.nextSibling;i.addSubCommand(new svgedit.history.RemoveElementCommand(e,k,l)),i.addSubCommand(new svgedit.history.InsertElementCommand(n)),Ae(),e.parentNode.removeChild(e),n.setAttribute("id",s),n.removeAttribute("visibility"),ke([n],!0),K(i)}else{$.each(C,function(e,t){t&&o.convertToPath(t)})}},this.makeHyperlink=function(e){o.groupSelectedElements("a",e)},this.removeHyperlink=function(){o.ungroupSelectedElement()},this.setSegType=function(e){me.setSegType(e)};var Fe=this.changeSelectedAttribute=function(e,t,i){i=i||C,1===i.length&&l&&i[0]&&l.indexOf(i[0].id.substr(0,4))>=0&&(i=i[0].childNodes),o.undoMgr.beginUndoableChange(e,i);i.length;je(e,t,i);var r=o.undoMgr.finishUndoableChange();r.isEmpty()||K(r)},je=function(e,t,i){var r=g.suspendRedraw(1e3);"pathedit"==current_mode&&me.moveNode(e,t),i=i||C;for(var n=i.length,a=["g","polyline","path"],s=["transform","opacity","filter"];n--;){var l=i[n];if(null!=l)if(("x"===e||"y"===e)&&a.indexOf(l.tagName)>=0){var d=getStrokedBBox([l]),u="x"===e?t-d.x:0,h="y"===e?t-d.y:0;o.moveSelectedElements(u*f,h*f,!0)}else{"g"===l.tagName&&s.indexOf(e);var m="#text"===e?l.textContent:l.getAttribute(e);if(null==m&&(m=""),m!==String(t)){if("#text"==e){svgedit.utilities.getBBox(l).width;l.textContent=t,/rotate/.test(l.getAttribute("transform"))&&(l=be(l))}else"#href"==e?I(l,t):(l.setAttribute(e,t),ne("setGaugeAttribute",{elem:l,attr:e,value:t}));"textedit"===current_mode&&"#text"!==e&&l.textContent.length&&he.toSelectMode(l),svgedit.browser.isGecko()&&"text"===l.nodeName&&/rotate/.test(l.getAttribute("transform"))&&(0===String(t).indexOf("url")||["font-size","font-family","x","y"].indexOf(e)>=0&&l.textContent)&&(l=be(l)),C.indexOf(l)>=0&&setTimeout(function(){l.parentNode&&X.requestSelector(l).resize()},0);var c=svgedit.utilities.getRotationAngle(l);if(0!=c&&"transform"!=e)for(var v=svgedit.transformlist.getTransformList(l),p=v.numberOfItems;p--;){var y=v.getItem(p);if(4==y.type){v.removeItem(p);var x=svgedit.utilities.getBBox(l),b=svgedit.math.transformPoint(x.x+x.width/2,x.y+x.height/2,svgedit.math.transformListToTransform(v).matrix),S=b.x,w=b.y,_=g.createSVGTransform();_.setRotate(c,S,w),v.insertItemBefore(_,p);break}}}}}g.unsuspendRedraw(r)};this.deleteSelectedElements=function(){var e,t=new svgedit.history.BatchCommand("Delete Elements"),i=C.length,r=[];for(e=0;e<i;++e){var n=C[e];if(null==n)break;var a=n.parentNode,s=n;X.releaseSelector(s),svgedit.path.removePath_(s.id),"a"===a.tagName&&1===a.childNodes.length&&(s=a,a=a.parentNode);var o=s.nextSibling,l=a.removeChild(s);r.push(n),C[e]=null,t.addSubCommand(new H(l,o,a))}return t.isEmpty()||K(t),V("changed",r),Ae(),r},this.cutSelectedElements=function(){var e,t=new svgedit.history.BatchCommand("Cut Elements"),i=C.length,r=[];for(e=0;e<i;++e){var n=C[e];if(null==n)break;var a=n.parentNode,s=n;X.releaseSelector(s),svgedit.path.removePath_(s.id);var l=s.nextSibling,d=a.removeChild(s);r.push(n),C[e]=null,t.addSubCommand(new H(d,l,a))}t.isEmpty()||K(t),V("changed",r),Ae(),o.clipBoard=r},this.pasteElements=function(e,t,i){var r=o.clipBoard,n=r.length;if(n){for(var a=[],s=new svgedit.history.BatchCommand("Paste elements");n--;){var l=r[n];if(l)if(l.symbols&&l.symbols.length){var d=svgedit.utilities.findDefs();l.symbols.forEach(e=>{var t=svgedit.utilities.getElem(e.id);t||d.appendChild(e)}),l.defs&&l.defs.appendTo(d)}else{var u=xe(l);a.push(u),(p||v().getCurrentLayer()).appendChild(u),s.addSubCommand(new svgedit.history.InsertElementCommand(u))}}if(Ee(a),"in_place"!==e){var g,h;e?"point"===e&&(g=t,h=i):(g=lastClickPoint.x,h=lastClickPoint.y);var m=getStrokedBBox(a),c=g-(m.x+m.width/2),f=h-(m.y+m.height/2),y=[],x=[];$.each(a,function(e,t){y.push(c),x.push(f)});var b=o.moveSelectedElements(y,x,!1);s.addSubCommand(b)}K(s),V("onGaugeCopyPaste",{copy:r,past:a.reverse()}),V("changed",a)}},this.copySelectedElements=function(){o.clipBoard=$.merge([],C),He()};var He=function(){for(var e={symbols:[],defs:null},t=0;t<o.clipBoard.length;t++){var i=o.clipBoard[t];if(i){var r=[];svgedit.utilities.walkTree(i,function(e){"use"===e.tagName&&r.push(e)})}r.forEach(t=>{var i=svgedit.utilities.getElem(G(t).substr(1)),r=i.getAttribute("type"),n=t.getAttribute("type");!n&&r&&t.setAttribute("type",r),e.symbols.find(e=>e.id===i.id)||e.symbols.push(i)})}if(e.symbols.length){const t=svgedit.utilities.findDefs();e.defs=$(t).find("linearGradient, radialGradient, pattern"),o.clipBoard.push(e)}};this.groupSelectedElements=function(e,t){e||(e="g");var i="";switch(e){case"a":i="Make hyperlink";var r="";arguments.length>1&&(r=t);break;default:e="g",i="Group Elements"}var n=new svgedit.history.BatchCommand(i),a=w({element:e,attr:{id:ge(),target:"_blank",type:"svg-ext-shapes-group"}});"a"===e&&I(a,r),n.addSubCommand(new svgedit.history.InsertElementCommand(a));for(var s=C.length;s--;){var o=C[s];if(null!=o){"a"===o.parentNode.tagName&&1===o.parentNode.childNodes.length&&(o=o.parentNode);var l=o.nextSibling,d=o.parentNode;a.appendChild(o),n.addSubCommand(new svgedit.history.MoveElementCommand(o,l,d))}}n.isEmpty()||K(n),Ee([a],!0)};var qe=this.pushGroupProperties=function(e,t){var i,r,n,a=e.childNodes,s=a.length,l=e.getAttribute("transform"),d=svgedit.transformlist.getTransformList(e),u=svgedit.math.transformListToTransform(d).matrix,h=new svgedit.history.BatchCommand("Push group properties"),m=0,c=svgedit.utilities.getRotationAngle(e),v=$(e).attr(["filter","opacity"]);for(m=0;m<s;m++){var f=a[m];if(1===f.nodeType){if(null!==v.opacity&&1!==v.opacity){f.getAttribute("opacity");var p=Math.round((f.getAttribute("opacity")||1)*v.opacity*100)/100;Fe("opacity",p,[f])}if(v.filter){var y=this.getBlur(f),x=y;r||(r=this.getBlur(e)),y?y=Number(r)+Number(y):0===y&&(y=r),x?i=svgedit.utilities.getRefElem(f.getAttribute("filter")):i?(i=xe(i),svgedit.utilities.findDefs().appendChild(i)):i=svgedit.utilities.getRefElem(v.filter);var b="feGaussianBlur"===i.firstChild.tagName?"blur":"filter";i.id=f.id+"_"+b,Fe("filter","url(#"+i.id+")",[f]),y&&(Fe("stdDeviation",y,[i.firstChild]),o.setBlurOffsets(i,y))}var S=svgedit.transformlist.getTransformList(f);if(~f.tagName.indexOf("Gradient")&&(S=null),S&&"defs"!==f.tagName&&d.numberOfItems){if(c&&1==d.numberOfItems){var C=d.getItem(0).matrix,w=g.createSVGMatrix(),_=svgedit.utilities.getRotationAngle(f);_&&(w=S.getItem(0).matrix);var N=svgedit.utilities.getBBox(f),A=svgedit.math.transformListToTransform(S).matrix,k=svgedit.math.transformPoint(N.x+N.width/2,N.y+N.height/2,A),E=c+_,B=g.createSVGTransform();B.setRotate(E,k.x,k.y);var T=svgedit.math.matrixMultiply(C,w,B.matrix.inverse());if(_&&S.removeItem(0),E&&(S.numberOfItems?S.insertItemBefore(B,0):S.appendItem(B)),T.e||T.f){var G=g.createSVGTransform();G.setTranslate(T.e,T.f),S.numberOfItems?S.insertItemBefore(G,0):S.appendItem(G)}}else{var I=f.getAttribute("transform");n={},n.transform=I||"";var M=g.createSVGTransform(),L=svgedit.math.transformListToTransform(S).matrix,P=L.inverse(),O=svgedit.math.matrixMultiply(P,u,L);M.setMatrix(O),S.appendItem(M)}var D=svgedit.recalculate.recalculateDimensions(f);D&&h.addSubCommand(D)}}}if(l&&(n={},n.transform=l,e.setAttribute("transform",""),e.removeAttribute("transform"),h.addSubCommand(new svgedit.history.ChangeElementCommand(e,n))),t&&!h.isEmpty())return h};this.ungroupSelectedElement=function(){var e=C[0];if(e)if($(e).data("gsvg")||$(e).data("symbol"))$e(e);else{if("use"===e.tagName){var t=svgedit.utilities.getElem(G(e).substr(1));return $(e).data("symbol",t).data("ref",t),void $e(e)}var i=$(e).parents("a");if(i.length&&(e=i[0]),"g"===e.tagName||"a"===e.tagName){var r=new svgedit.history.BatchCommand("Ungroup Elements"),n=qe(e,!0);n&&r.addSubCommand(n);for(var a=e.parentNode,s=e.nextSibling,o=new Array(e.childNodes.length),l=0;e.firstChild;){var d=e.firstChild,u=d.nextSibling,g=d.parentNode;if("title"!==d.tagName)o[l++]=d=a.insertBefore(d,s),r.addSubCommand(new svgedit.history.MoveElementCommand(d,u,g));else{var h=d.nextSibling;r.addSubCommand(new svgedit.history.RemoveElementCommand(d,h,g)),g.removeChild(d)}}Ae();var m=e.nextSibling;e=a.removeChild(e),r.addSubCommand(new svgedit.history.RemoveElementCommand(e,m,a)),r.isEmpty()||K(r),ke(o)}}},this.moveToTopSelectedElement=function(){var e=C[0];if(null!=e){var t=e,i=t.parentNode,r=t.nextSibling;t=t.parentNode.appendChild(t),r!=t.nextSibling&&(K(new svgedit.history.MoveElementCommand(t,r,i,"top")),V("changed",[t]))}},this.moveToBottomSelectedElement=function(){var e=C[0];if(null!=e){var t=e,i=t.parentNode,r=t.nextSibling,n=t.parentNode.firstChild;"title"==n.tagName&&(n=n.nextSibling),"defs"==n.tagName&&(n=n.nextSibling),t=t.parentNode.insertBefore(t,n),r!=t.nextSibling&&(K(new svgedit.history.MoveElementCommand(t,r,i,"bottom")),V("changed",[t]))}},this.moveUpDownSelected=function(e){var t=C[0];if(t){var i,r;curBBoxes=[];var n=$(de(getStrokedBBox([t]))).toArray();if("Down"==e&&n.reverse(),$.each(n,function(){if(r)return i=this,!1;this==t&&(r=!0)}),i){var a=t,s=a.parentNode,o=a.nextSibling;$(i)["Down"==e?"before":"after"](a),o!=a.nextSibling&&(K(new svgedit.history.MoveElementCommand(a,o,s,"Move "+e)),V("changed",[a]))}}},this.moveSelectedElements=function(e,t,i){e.constructor!=Array&&(e/=f,t/=f),i=i||!0;for(var r=new svgedit.history.BatchCommand("position"),n=C.length;n--;){var a=C[n];if(null!=a){var s=g.createSVGTransform(),o=svgedit.transformlist.getTransformList(a);e.constructor==Array?s.setTranslate(e[n],t[n]):s.setTranslate(e,t),o.numberOfItems?o.insertItemBefore(s,0):o.appendItem(s);var l=svgedit.recalculate.recalculateDimensions(a);l&&r.addSubCommand(l),X.requestSelector(a).resize()}}if(!r.isEmpty())return i&&K(r),V("changed",C),r},this.setFilterShadow=function(e){if(!(C.length<=0)){var t=C[0];if(e){var i=svgedit.utilities.findDefs();if(i){var r=$(i).find("filter");r&&r.length||(r=u.createElementNS(n.SVG,"filter"),i.appendChild(r),r.setAttribute("id","shadow-box"));var a=$(r).find("feDropShadow");a&&a.length||(a=u.createElementNS(n.SVG,"feDropShadow"),a.setAttribute("dx","2"),a.setAttribute("dy","2"),a.setAttribute("stdDeviation","2"),r.appendChild(a)),t.setAttribute("filter","url(#shadow-box)")}}else t.removeAttribute("filter")}},this.cloneSelectedElements=function(e,t){function i(e,t){return $(t).index()-$(e).index()}var r,n,a=new svgedit.history.BatchCommand("Clone Elements"),s=C.length;for(C.sort(i),r=0;r<s&&(n=C[r],null!=n);++r);var o=C.slice(0,r);for(this.clearSelection(!0),r=o.length;r--;)n=o[r]=xe(o[r]),(p||v().getCurrentLayer()).appendChild(n),a.addSubCommand(new svgedit.history.InsertElementCommand(n));a.isEmpty()||(ke(o.reverse()),this.moveSelectedElements(e,t,!1),K(a)),V("onGaugeCopyPaste",{copy:C,past:o})},this.alignSelectedElements=function(e,t){var i,r,n=[],a=Number.MAX_VALUE,s=Number.MIN_VALUE,l=Number.MAX_VALUE,d=Number.MIN_VALUE,u=Number.MIN_VALUE,g=Number.MIN_VALUE,h=C.length;if(h){for(i=0;i<h&&null!=C[i];++i)switch(r=C[i],n[i]=getStrokedBBox([r]),t){case"smallest":(("l"==e||"c"==e||"r"==e)&&(u==Number.MIN_VALUE||u>n[i].width)||("t"==e||"m"==e||"b"==e)&&(g==Number.MIN_VALUE||g>n[i].height))&&(a=n[i].x,l=n[i].y,s=n[i].x+n[i].width,d=n[i].y+n[i].height,u=n[i].width,g=n[i].height);break;case"largest":(("l"==e||"c"==e||"r"==e)&&(u==Number.MIN_VALUE||u<n[i].width)||("t"==e||"m"==e||"b"==e)&&(g==Number.MIN_VALUE||g<n[i].height))&&(a=n[i].x,l=n[i].y,s=n[i].x+n[i].width,d=n[i].y+n[i].height,u=n[i].width,g=n[i].height);break;default:n[i].x<a&&(a=n[i].x),n[i].y<l&&(l=n[i].y),n[i].x+n[i].width>s&&(s=n[i].x+n[i].width),n[i].y+n[i].height>d&&(d=n[i].y+n[i].height)}"page"==t&&(a=0,l=0,s=o.contentW,d=o.contentH);var m=new Array(h),c=new Array(h);for(i=0;i<h&&null!=C[i];++i){r=C[i];var v=n[i];switch(m[i]=0,c[i]=0,e){case"l":m[i]=a-v.x;break;case"c":m[i]=(a+s)/2-(v.x+v.width/2);break;case"r":m[i]=s-(v.x+v.width);break;case"t":c[i]=l-v.y;break;case"m":c[i]=(l+d)/2-(v.y+v.height/2);break;case"b":c[i]=d-(v.y+v.height)}}this.moveSelectedElements(m,c)}},this.divideSelectedElements=function(e){var t,i,r=[],n=Number.MAX_VALUE,a=Number.MIN_VALUE,s=Number.MAX_VALUE,o=Number.MIN_VALUE,l=0,d=0,u=0,g=C.length;if(g&&!(g<3)){for(t=0;t<g&&null!=C[t];++t)i=C[t],u++,r[t]=getStrokedBBox([i]),r[t].index=t,r[t].x<n&&(n=r[t].x),r[t].y<s&&(s=r[t].y),r[t].x+r[t].width>a&&(a=r[t].x+r[t].width),r[t].y+r[t].height>o&&(o=r[t].y+r[t].height),d+=r[t].height,l+=r[t].width;"h"===e?r.sort((e,t)=>e.x>t.x?1:-1):"v"===e&&r.sort((e,t)=>e.y>t.y?1:-1),u--;var h=new Array(r.length),m=new Array(r.length),c=(a-n-l)/u,v=(o-s-d)/u,f=n,p=s;for(t=0;t<r.length;++t){var y=r[t];switch(h[t]={x:y.x,i:y.index},m[t]={y:y.y,i:y.index},e){case"h":h[t].x=t>0?f>y.x?f-y.x:-(y.x-f):0,f+=y.width+c,m[t].y=0;break;case"v":m[t].y=t>0?p>y.y?p-y.y:-(y.y-p):0,p+=y.height+v,h[t].x=0}}h.sort((e,t)=>e.i>t.i?1:-1),m.sort((e,t)=>e.i>t.i?1:-1),h=h.map(e=>Math.round(100*e.x)/100),
|
|
20
|
+
m=m.map(e=>Math.round(100*e.y)/100),this.moveSelectedElements(h,m)}},this.contentW=Ve().w,this.contentH=Ve().h,this.updateCanvas=function(e,t){g.setAttribute("width",e),g.setAttribute("height",t);var i=$("#canvasBackground")[0],r=h.getAttribute("x"),n=h.getAttribute("y"),a=e/2-this.contentW*f/2,s=t/2-this.contentH*f/2;svgedit.utilities.assignAttributes(h,{width:this.contentW*f,height:this.contentH*f,x:a,y:s,viewBox:"0 0 "+this.contentW+" "+this.contentH}),svgedit.utilities.assignAttributes(i,{width:h.getAttribute("width"),height:h.getAttribute("height"),x:a,y:s});var o=svgedit.utilities.getElem("background_image");return o&&svgedit.utilities.assignAttributes(o,{width:"100%",height:"100%"}),X.selectorParentGroup.setAttribute("transform","translate("+a+","+s+")"),ne("canvasUpdated",{new_x:a,new_y:s,old_x:r,old_y:n,d_x:a-r,d_y:s-n}),{x:a,y:s,old_x:r,old_y:n,d_x:a-r,d_y:s-n}},this.setBackground=function(e,t){var i=svgedit.utilities.getElem("canvasBackground"),r=$(i).find("rect")[0],a=svgedit.utilities.getElem("background_image");r.setAttribute("fill",e),t?(a||(a=u.createElementNS(n.SVG,"image"),svgedit.utilities.assignAttributes(a,{id:"background_image",width:"100%",height:"100%",preserveAspectRatio:"xMinYMin",style:"pointer-events:none"})),I(a,t),i.appendChild(a)):a&&a.parentNode.removeChild(a)},this.cycleElement=function(e){var t,i=C[0],r=!1,n=fe(p||v().getCurrentLayer());if(n.length){if(null==i)t=e?n.length-1:0,r=n[t];else for(var a=n.length;a--;)if(n[a]==i){t=e?a-1:a+1,t>=n.length?t=0:t<0&&(t=n.length-1),r=n[t];break}Ee([r],!0),V("selected",C)}},this.clear(),this.getExtensionMember=function(e,t){var i=[];return $.each(extensions,function(r,n){n&&e in n&&i.push(n[e](t))}),i},this.getPrivateMethods=function(){var e={addCommandToHistory:K,setGradient:Ue,addSvgElementFromJson:w,addSvgGroupFromJson:_,assignAttributes:P,BatchCommand:W,call:V,ChangeElementCommand:q,copyElem:xe,ffClone:be,findDefs:B,findDuplicateGradient:ze,getElem:L,getId:ue,getIntersectionList:de,getMouseTarget:Be,getNextId:ge,getPathBBox:M,getUrlFromAttr:T,hasMatrixTransform:k,identifyLayers:Pe,InsertElementCommand:j,isIdentity:svgedit.math.isIdentity,logMatrix:_e,matrixMultiply:A,MoveElementCommand:F,preventClickDefault:Te,recalculateAllSelectedDimensions:Ce,recalculateDimensions:R,remapElement:D,RemoveElementCommand:H,removeUnusedDefElems:Ge,round:le,runExtensions:ne,setSpecialsIds:ae,runGetExtensions:se,runExtension:oe,sanitizeSvg:z,SVGEditTransformList:svgedit.transformlist.SVGTransformList,toString:toString,transformBox:svgedit.math.transformBox,transformListToTransform:E,transformPoint:N,walkTree:svgedit.utilities.walkTree};return e}};
|
|
21
|
+
var mysvgeditor={initSvgEditor:function(e,t,n,o,i,a,r,l,s){window.svgEditor=function(e){function c(t,n){var o=!1!==d.setSvgString(t);n=n||e.noop,o?n(!0):e.alert(uiStrings.notification.errorLoadingSVG,function(){n(!1)})}var u={};console.log("editor v2.9.6-159"),e(document).unbind("keydown"),u.tool_scale=1,u.exportWindowCt=0,u.langChanged=!1,u.showSaveWarning=!1,u.storagePromptClosed=!1,u.extensionLoadedCallback=n,u.onSelectedElement=t,u.changeColor=o,u.onGaugeAdded=i,u.onGaugeResized=r,u.onGaugeRemoved=a,u.onGaugeCopyPaste=l,u.onGroupChanged=s,u.currentExtensionsInteractivityType=[],u.currentExtensionsPrefixIdType=[],u.shapesGrps={},u.shapesList=[],u.baseSvgTags=["path","line","rect","circle","ellipse","text","image"];var d,f,p=["VAL_","HXI_","HXB_","HXS_"],g=["HXI_","HXB_","HXS_","GXP_","HXC_","BAG_","SLI_","HXT_"],v=["SHE_"],h=svgedit.utilities,m=svgedit.shapes;return isReady=!1,customExportImage=!1,customExportPDF=!1,callbacks=[],defaultPrefs={lang:"",iconsize:"",bkgd_color:"#FFF",bkgd_url:"",img_save:"embed",save_notice_done:!1,export_notice_done:!1},curPrefs={},curConfig={extensions:[],allowedOrigins:[]},defaultExtensions=["ext-overview_window.js","ext-markers.js","ext-connector.js","ext-eyedropper.js","ext-imagelib.js","ext-grid.js","ext-polygon.js","ext-panning.js","ext-storage.js"],defaultConfig={canvasName:"default",canvas_expansion:3,initFill:{color:"FF0000",opacity:1},initStroke:{width:1,color:"000000",opacity:1},initOpacity:1,colorPickerCSS:null,initTool:"select",exportWindowType:"new",wireframe:!1,showlayers:!1,no_save_warning:!1,imgPath:"images/",langPath:"locale/",extPath:"extensions/",jGraduatePath:"jgraduate/images/",shapesPath:"assets/lib/svgeditor/shapes/",dimensions:[640,480],gridSnapping:!0,gridColor:"#000",baseUnit:"px",snappingStep:2,showRulers:!0,preventAllURLConfig:!1,preventURLContentLoading:!1,lockExtensions:!1,noDefaultExtensions:!1,showGrid:!1,noStorageOnLoad:!1,forceStorage:!1,emptyStorageOnDecline:!1},uiStrings=u.uiStrings={common:{ok:"OK",cancel:"Cancel",key_up:"Up",key_down:"Down",key_backspace:"Backspace",key_del:"Del"},layers:{layer:"Layer"},notification:{invalidAttrValGiven:"Invalid value given",noContentToFitTo:"No content to fit to",dupeLayerName:"There is already a layer named that!",enterUniqueLayerName:"Please enter a unique layer name",enterNewLayerName:"Please enter the new layer name",layerHasThatName:"Layer already has that name",QmoveElemsToLayer:"Move selected elements to layer '%s'?",QwantToClear:"Do you want to clear the drawing?\nThis will also erase your undo history!",QwantToOpen:"Do you want to open a new file?\nThis will also erase your undo history!",QerrorsRevertToSource:"There were parsing errors in your SVG source.\nRevert back to original SVG source?",QignoreSourceChanges:"Ignore changes made to SVG source?",featNotSupported:"Feature not supported",enterNewImgURL:"Enter the new image URL",defsFailOnSave:"NOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved.",loadingImage:"Loading image, please wait...",saveFromBrowser:"Select 'Save As...' in your browser to save this image as a %s file.",noteTheseIssues:"Also note the following issues: ",unsavedChanges:"There are unsaved changes.",enterNewLinkURL:"Enter the new hyperlink URL",errorLoadingSVG:"Error: Unable to load SVG data",URLloadFail:"Unable to load from URL",retrieving:"Retrieving '%s' ..."}},e.pref=function(e,t){return t?(curPrefs[e]=t,void(u.curPrefs=curPrefs)):e in curPrefs?curPrefs[e]:defaultPrefs[e]},u.loadContentAndPrefs=function(){if(curConfig.forceStorage||!curConfig.noStorageOnLoad&&document.cookie.match(/(?:^|;\s*)store=(?:prefsAndContent|prefsOnly)/)){if(u.storage&&(curConfig.forceStorage||!curConfig.noStorageOnLoad&&document.cookie.match(/(?:^|;\s*)store=prefsAndContent/))){var e="svgedit-"+curConfig.canvasName,t=u.storage.getItem(e);t&&u.loadFromString(t)}var n;for(n in defaultPrefs)if(defaultPrefs.hasOwnProperty(n)){var o="web-edit-"+n;if(u.storage){var i=u.storage.getItem(o);i&&(defaultPrefs[n]=String(i))}else if(window.widget)defaultPrefs[n]=widget.preferenceForKey(o);else{var a=document.cookie.match(new RegExp("(?:^|;\\s*)"+h.preg_quote(encodeURIComponent(o))+"=([^;]+)"));defaultPrefs[n]=a?decodeURIComponent(a[1]):""}}}},u.setConfig=function(t,n){function o(t,n,o){t[n]&&"object"==typeof t[n]?e.extend(!0,t[n],o):t[n]=o}n=n||{},e.each(t,function(i,a){if(t.hasOwnProperty(i))if(defaultPrefs.hasOwnProperty(i)){if(!1===n.overwrite&&(curConfig.preventAllURLConfig||curPrefs.hasOwnProperty(i)))return;!0===n.allowInitialUserOverride?defaultPrefs[i]=a:e.pref(i,a)}else if(["extensions","allowedOrigins"].indexOf(i)>-1){if(!1===n.overwrite&&(curConfig.preventAllURLConfig||"allowedOrigins"===i||"extensions"===i&&curConfig.lockExtensions))return;curConfig[i]=curConfig[i].concat(a)}else if(defaultConfig.hasOwnProperty(i)){if(!1===n.overwrite&&(curConfig.preventAllURLConfig||curConfig.hasOwnProperty(i)))return;if(curConfig.hasOwnProperty(i)){if(!1===n.overwrite)return;o(curConfig,i,a)}else!0===n.allowInitialUserOverride?o(defaultConfig,i,a):defaultConfig[i]&&"object"==typeof defaultConfig[i]?(curConfig[i]={},e.extend(!0,curConfig[i],a)):curConfig[i]=a}}),u.curConfig=curConfig},u.setCustomHandlers=function(t){u.ready(function(){t.open&&(e('#tool_open > input[type="file"]').remove(),e("#tool_open").show(),d.open=t.open),t.save&&(u.showSaveWarning=!1,d.bind("saved",t.save)),t.exportImage&&(customExportImage=t.exportImage,d.bind("exported",customExportImage)),t.exportPDF&&(customExportPDF=t.exportPDF,d.bind("exportedPDF",customExportPDF))})},u.randomizeIds=function(){d.randomizeIds(arguments)},u.init=function(t){function n(){curPrefs=e.extend(!0,{},defaultPrefs,curPrefs),u.curPrefs=curPrefs}function o(){curConfig=e.extend(!0,{},defaultConfig,curConfig),curConfig.noDefaultExtensions||(curConfig.extensions=curConfig.extensions.concat(defaultExtensions)),e.each(["extensions","allowedOrigins"],function(t,n){curConfig[n]=e.grep(curConfig[n],function(e,t){return t===curConfig[n].indexOf(e)})}),u.curConfig=curConfig}function i(t,n){var o=t.id,i=o.split("_"),a=i[0],r=i[1];n&&d.setStrokeAttr("stroke-"+a,r),pe(),P("#cur_"+a,o,20),e(t).addClass("current").siblings().removeClass("current")}function r(t,n){e.pref("bkgd_color",t),e.pref("bkgd_url",n),d.setBackground(t,n)}function l(){var t=d.getHref(K);if(t=0===t.indexOf("data:")?"":t,u.promptImgURLcallback){var n=u.promptImgURLcallback;n&&he(n)}else e.prompt(uiStrings.notification.enterNewImgURL,t,function(e){e&&he(e)})}function s(t,n){var o,i;n||(n=d.getZoom()),t||(t=e("#svgcanvas"));var a=3e4,r=d.getContentElem(),l=svgedit.units.getTypeMap(),s=l[curConfig.baseUnit];for(o=0;o<2;o++){var c=0===o,u=c?"x":"y",f=c?"width":"height",p=Number(r.getAttribute(u)),g=e("#ruler_"+u+" canvas:first"),v=g.clone();g.replaceWith(v);var h=v[0],m=t[f](),_=m;h.parentNode.style[f]=_+"px";var w,y,b,C=0,x=h.getContext("2d");if(x.fillStyle="#666666",x.fillRect(0,0,h.width,h.height),v.siblings().remove(),m>=a){var k;for(b=parseInt(m/a,10)+1,w=[],w[0]=x,i=1;i<b;i++)h[f]=a,k=h.cloneNode(!0),h.parentNode.appendChild(k),w[i]=k.getContext("2d");k[f]=m%a,m=a}h[f]=m;var S=s*n,E=50/S,F=1;for(i=0;i<re.length&&(y=re[i],F=y,!(E<=y));i++);var P=F*S;x.font="8px sans-serif";for(var A=p/S%F*S,T=A-P;A<_;){T+=P,x.fillStyle="#CACACA";var L,D=Math.round(A)+.5;if(c?(x.moveTo(D,15),x.lineTo(D,0)):(x.moveTo(15,D),x.lineTo(0,D)),y=(T-p)/S,F>=1)L=Math.round(y);else{var I=String(F).split(".")[1].length;L=y.toFixed(I)}if(0!==L&&1e3!==L&&L%1e3==0&&(L=L/1e3+"K"),c)x.fillText(L,A+2,8);else{var N=String(L).split("");for(i=0;i<N.length;i++)x.fillText(N[i],1,A+9+9*i)}var B=P/10;for(i=1;i<10;i++){var O=Math.round(A+B*i)+.5;if(w&&O>m){if(C++,x.stroke(),C>=b){i=10,A=_;continue}x=w[C],A-=a,O=Math.round(A+B*i)+.5}var U=i%2?12:10;c?(x.moveTo(O,15),x.lineTo(O,U)):(x.moveTo(15,O),x.lineTo(U,O))}A+=P}x.strokeStyle="#666666",x.stroke()}}function _(){d.deleteCurrentLayer()&&(ye(),se(),e("#layerlist tr.layer").removeClass("layersel"),e("#layerlist tr.layer:first").addClass("layersel"))}function w(){var t=d.getCurrentDrawing().getCurrentLayerName()+" copy";e.prompt(uiStrings.notification.enterUniqueLayerName,t,function(t){t&&(d.getCurrentDrawing().hasLayer(t)?e.alert(uiStrings.notification.dupeLayerName):(d.cloneLayer(t),ye(),se()))})}function y(){e("#layerlist tr.layersel").index()!=d.getCurrentDrawing().getNumLayers()-1&&(d.mergeLayer(),ye(),se())}function b(t){var n=e("#layerlist tr.layersel").index(),o=d.getCurrentDrawing().getNumLayers();(n>0||n<o-1)&&(n+=t,d.setCurrentLayerPosition(o-n-1),se())}function C(e,t){var n=Number(e.value),o=n+t,i=o>=n;return 0===t?n:n>=24?i?Math.round(1.1*n):Math.round(n/1.1):n<=1?i?2*n:n/2:o}function x(e,t){var n=Number(e.value);if(0===n)return 100;var o=n+t;return 0===t?n:n>=100?o:o>=n?2*n:n/2}function k(e){e.stopPropagation(),e.preventDefault()}function S(e){e.stopPropagation(),e.preventDefault()}function E(e){e.stopPropagation(),e.preventDefault()}try{"localStorage"in window&&(u.storage=localStorage)}catch(e){}var F=[];e("#lang_select option").each(function(){F.push(this.value)}),function(){var t,i;if(f=e.deparam.querystring(!0),e.isEmptyObject(f))o(),u.loadContentAndPrefs(),n();else{if(f.dimensions&&(f.dimensions=f.dimensions.split(",")),f.bkgd_color&&(f.bkgd_color="#"+f.bkgd_color),f.extensions&&(f.extensions=f.extensions.match(/[:\/\\]/)?"":f.extensions.split(",")),e.each(["extPath","imgPath","langPath","jGraduatePath"],function(e){f[e]&&delete f[e]}),u.setConfig(f,{overwrite:!1}),o(),!curConfig.preventURLContentLoading){if(t=f.source,i=e.param.querystring(),t||i.indexOf("source=data:")>=0&&(t=i.match(/source=(data:[^&]*)/)[1]),t)return void(0===t.indexOf("data:")?u.loadFromDataURI(t):u.loadFromString(t));if(f.url)return void u.loadFromURL(f.url)}f.noStorageOnLoad&&!curConfig.forceStorage||u.loadContentAndPrefs(),n()}}(),function(){var e,n=window.opener;if(n)try{e=n.document.createEvent("Event"),e.initEvent("svgEditorReady",!0,!0),n.document.documentElement.dispatchEvent(e)}catch(e){}t&&setTimeout(t,2e3)}();var P=u.setIcon=function(t,n,o){var i="string"==typeof n?e.getSvgIcon(n,!0):n.clone();i&&e(t).empty().append(i)},A=function(){window.extOverview&&window.extOverview(),window.extMarkers&&window.extMarkers(),window.extEyedropper&&window.extEyedropper(),window.extImagelib&&window.extImagelib(),window.extGrid&&window.extGrid(),window.extPanning&&window.extPanning(),window.extStorage&&window.extStorage(),window.extSwitch&&window.extSwitch(),window.extValue&&window.extValue(),window.extHtmlInput&&window.extHtmlInput(),window.extHtmlChart&&window.extHtmlChart(),window.extHtmlGraph&&window.extHtmlGraph(),window.extHtmlSelect&&window.extHtmlSelect(),window.extHtmlButton&&window.extHtmlButton(),window.extGaugeProgress&&window.extGaugeProgress(),window.extGaugeSemaphore&&window.extGaugeSemaphore(),window.extHtmlBag&&window.extHtmlBag(),window.extLinear&&window.extLinear(),window.extPipe&&window.extPipe(),window.extHtmlSlider&&window.extHtmlSlider(),window.extHtmlSwitch&&window.extHtmlSwitch(),window.extOwnCtrl&&window.extOwnCtrl(),u.putLocale&&u.putLocale(null,F)},T=function(e){m.load(curConfig.shapesPath,function(){Object.values(u.shapesGrps).forEach(e=>{for(var t=0;t<e.length;t++)u.shapesList.push(e[t])}),window.extShapes&&window.extShapes(),e&&e()})};"file:"===document.location.protocol&&setTimeout(A,100),u.canvas=d=new e.SvgCanvas(document.getElementById("svgcanvas"),curConfig);var L,D,I,N,B=["#FFFFFF","#000000","#333333","#4D4D4D","#666666","#808080","#999999","#B3B3B3","#CCCCCC","#E6E6E6","#ECECEC","#F9F9F9","#05285B","#073984","#094BAC","#0B5CD5","#0D6EFD","#3485FD","#5A9CFE","#81B4FE","#A8CBFE","#250657","#35087E","#450BA5","#560DCB","#6610F2","#7E36F4","#975CF6","#AF83F8","#C8A9FA","#281845","#3A2264","#4B2D83","#5D37A2","#6F42C1","#8660CB","#9D7ED5","#B49DDF","#CBBBE9","#4D1230","#6F1B45","#92235A","#B42B6F","#D63384","#DD5498","#E374AB","#EA95BF","#F0B6D3","#4F1319","#721C24","#96242F","#B92D3A","#DC3545","#E25563","#E77681","#ED969E","#F2B6BC","#5B2D07","#84420A","#AC560E","#D56A11","#FD7E14","#FD933A","#FEA75F","#FEBC85","#FED1AA","#5C4503","#856404","#AD8305","#D6A206","#FFC107","#FFCB2F","#FFD556","#FFDF7E","#FFE9A6","#0E3C19","#155724","#1B722F","#228C3A","#28A745","#4AB563","#6DC381","#8FD19E","#B2DFBC","#0C4836","#11694F","#168967","#1BA97F","#20C997","#44D2A8","#67DAB8","#8BE3C9","#AFECDA","#083A42","#0C5460","#106E7D","#13889B","#17A2B8","#3CB1C3","#61C0CF","#86CFDA","#ABDEE5"],O=svgedit.browser.isMac()?"meta+":"ctrl+",U=d.pathActions,R=d.undoMgr,M=curConfig.imgPath+"logo.png",G=e("#workarea"),z=e("#cmenu_canvas"),j=null,H="crosshair",W="crosshair",V="toolbars",X="",Z={fill:null,stroke:null};(function(){e("#dialog_container").draggable({cancel:"#dialog_content, #dialog_buttons *",containment:"window"});var t=e("#dialog_box"),n=e("#dialog_buttons"),o=e("#dialog_content"),i=function(i,a,r,l,s,c,u){var d,f,p;if(o.html("<p>"+a.replace(/\n/g,"</p><p>")+"</p>").toggleClass("prompt","prompt"==i),n.empty(),d=e('<input type="button" value="'+uiStrings.common.ok+'">').appendTo(n),"alert"!==i&&e('<input type="button" value="'+uiStrings.common.cancel+'">').appendTo(n).click(function(){t.hide(),r&&r(!1)}),"prompt"===i)f=e('<input type="text">').prependTo(n),f.val(l||""),f.bind("keydown","return",function(){d.click()});else if("select"===i){var g=e('<div style="text-align:center;">');if(f=e("<select>").appendTo(g),u){var v=e("<label>").text(u.label);p=e('<input type="checkbox">').appendTo(v),p.val(u.value),u.tooltip&&v.attr("title",u.tooltip),p.prop("checked",!!u.checked),g.append(e("<div>").append(v))}e.each(s||[],function(t,n){"object"==typeof n?f.append(e("<option>").val(n.value).html(n.text)):f.append(e("<option>").html(n))}),o.append(g),l&&f.val(l),c&&f.bind("change","return",c),f.bind("keydown","return",function(){d.click()})}else"process"===i&&d.hide();t.show(),d.click(function(){t.hide();var e="prompt"!==i&&"select"!==i||f.val();r&&(p?r(e,p.prop("checked")):r(e))}).focus(),"prompt"!==i&&"select"!==i||f.focus()};e.alert=function(e,t){i("alert",e,t)},e.confirm=function(e,t){i("confirm",e,t)},e.process_cancel=function(e,t){i("process",e,t)},e.prompt=function(e,t,n){i("prompt",e,n,t)},e.select=function(e,t,n,o,a,r){i("select",e,n,a,t,o,r)}})();var q,Q=function(){var t=e(".tool_button_current");t.length&&"tool_select"!==t[0].id&&(t.removeClass("tool_button_current").addClass("tool_button"),e("#tool_select").addClass("tool_button_current").removeClass("tool_button"),e("#styleoverrides").text("#svgcanvas svg *{cursor:move;pointer-events:all} #svgcanvas svg{cursor:default}")),d.setMode("select"),G.css("cursor","auto")},K=null,Y=!1,J=!1,$=!1,ee=!1,te=!1,ne=!1,oe=!1,ie="",ae=e("title:first").text(),re=[];for(q=.1;q<1e5;q*=10)re.push(q),re.push(2*q),re.push(5*q);var le=function(e){var t,n=[],o=d.getCurrentDrawing().getNumLayers();for(t=0;t<o;t++)n[t]=d.getCurrentDrawing().getLayerName(t);if(e)for(t=0;t<o;++t)n[t]!=e&&d.getCurrentDrawing().setLayerOpacity(n[t],.5);else for(t=0;t<o;++t)d.getCurrentDrawing().setLayerOpacity(n[t],1)},se=function(){d.clearSelection();for(var t=e("#layerlist tbody").empty(),n=e("#selLayerNames").empty(),o=d.getCurrentDrawing(),i=o.getCurrentLayerName(),a=d.getCurrentDrawing().getNumLayers(),r=e.getSvgIcon("eye");a--;){var l=o.getLayerName(a),s=e('<tr class="layer">').toggleClass("layersel",l===i),c=e('<td class="layervis">').toggleClass("layerinvis",!o.getLayerVisibility(l)),u=e('<td class="layername">'+l+"</td>");t.append(s.append(c,u)),n.append('<option value="'+l+'">'+l+"</option>")}if(void 0!==r){var f=r.clone();e("td.layervis",t).append(f),e.resizeSvgIcons({"td.layervis .svg_icon":14})}e("#layerlist td.layername").mouseup(function(t){e("#layerlist tr.layer").removeClass("layersel"),e(this.parentNode).addClass("layersel"),d.setCurrentLayer(this.textContent),t.preventDefault()}).mouseover(function(){le(this.textContent)}).mouseout(function(){le()}),e("#layerlist td.layervis").click(function(){var t=e(this.parentNode).prevAll().length,n=e("#layerlist tr.layer:eq("+t+") td.layername").text(),o=e(this).hasClass("layerinvis");d.setLayerVisibility(n,o),e(this).toggleClass("layerinvis")});for(var p=5-e("#layerlist tr.layer").size();p-- >0;)t.append('<tr><td style="color:white">_</td><td/></tr>')},ce=function(t,n){te||(te=!0,X=d.getSvgString(),e("#save_output_btns").toggle(!!n),e("#tool_source_back").toggle(!n),e("#svg_source_textarea").val(X),e("#svg_source_editor").fadeIn(),e("#svg_source_textarea").focus())},ue=function(t,n){e("#path_node_panel").toggle(t),e("#tools_bottom_2,#tools_bottom_3").toggle(!t),t?(e(".tool_button_current").removeClass("tool_button_current").addClass("tool_button"),e("#tool_select").addClass("tool_button_current").removeClass("tool_button"),P("#tool_select","select_node"),Y=!1,J=!1,n.length&&(K=n[0])):setTimeout(function(){P("#tool_select","select")},1e3)},de=function(t,n){if(u.showSaveWarning=!1,n='<?xml version="1.0"?>\n'+n,svgedit.browser.isIE())ce(0,!0);else{var o=t.open("data:image/svg+xml;base64,"+h.encode64(n)),i=e.pref("save_notice_done");if("all"!==i){var a=uiStrings.notification.saveFromBrowser.replace("%s","SVG");svgedit.browser.isGecko()?-1!==n.indexOf("<defs")?(a+="\n\n"+uiStrings.notification.defsFailOnSave,e.pref("save_notice_done","all"),i="all"):e.pref("save_notice_done","part"):e.pref("save_notice_done","all"),"part"!==i&&o.alert(a)}}},fe=function(t,n){var o=n.issues,i=n.exportWindowName;i&&(j=window.open("",i)),j.location.href=n.datauri;var a=e.pref("export_notice_done");if("all"!==a){var r=uiStrings.notification.saveFromBrowser.replace("%s",n.type);if(o.length){var l="\n • ";r+="\n\n"+uiStrings.notification.noteTheseIssues+l+o.join(l)}e.pref("export_notice_done","all"),j.alert(r)}},pe=function(){window.opera&&e("<p/>").hide().appendTo("body").remove()},ge=u.toolButtonClick=function(t,n){if(e(t).hasClass("disabled"))return!1;if(e(t).parent().hasClass("tools_flyout"))return!0;var o="normal";return n||e(".tools_flyout").fadeOut(o),e("#styleoverrides").text(""),G.css("cursor","auto"),e(".tool_button_current").removeClass("tool_button_current").addClass("tool_button"),e(t).addClass("tool_button_current").removeClass("tool_button"),!0},ve=u.clickSelect=function(){ge("#tool_select")&&(d.setMode("select"),e("#styleoverrides").text("#svgcanvas svg *{cursor:move;pointer-events:all}, #svgcanvas svg{cursor:default}"))},he=u.setImageURL=function(t){t||(t=M),d.setImageURL(t),e("#image_url").val(t),0===t.indexOf("data:")?(e("#image_url").hide(),e("#change_image_url").hide()):(d.embedImage(t,function(n){e("#url_notice").toggle(!n),M=t}),e("#image_url").hide(),e("#change_image_url").hide())};u.promptImgURLcallback=null;var me=u.updateCanvas=function(t,n){var o=G.width(),i=G.height(),a=o,r=i,l=d.getZoom(),c=G,p=e("#svgcanvas"),g={x:c[0].scrollLeft+a/2,y:c[0].scrollTop+r/2},v=curConfig.canvas_expansion;o=Math.max(a,d.contentW*l*v),i=Math.max(r,d.contentH*l*v),o==a&&i==r?G.css("overflow","hidden"):G.css("overflow","scroll");var h=p.height()/2,m=p.width()/2;p.width(o).height(i);var _=i/2,w=o/2,y=d.updateCanvas(o,i),b=w/m,C=o/2-a/2,x=i/2-r/2;if(n)n.x+=y.x,n.y+=y.y;else{var k=g.x-m,S=w+k*b,E=g.y-h,F=_+E*b;n={x:S,y:F}}t?d.contentW>c.width()?(G[0].scrollLeft=y.x-10,G[0].scrollTop=y.y-10):(c[0].scrollLeft=C,c[0].scrollTop=x):(c[0].scrollLeft=n.x-a/2,c[0].scrollTop=n.y-r/2),curConfig.showRulers&&(s(p,l),G.scroll()),!0===f.storagePrompt||u.storagePromptClosed||e("#dialog_box").hide()},_e=function(){var t,n,o="none"==d.getColor("fill"),i="none"==d.getColor("stroke"),a=["#tool_fhpath","#tool_line"],r=["#tools_rect .tool_button","#tools_ellipse .tool_button","#tool_text","#tool_path"];if(i)for(t in a)n=a[t],e(n).hasClass("tool_button_current")&&ve(),e(n).addClass("disabled");else for(t in a)n=a[t],e(n).removeClass("disabled");if(i&&o)for(t in r)n=r[t],e(n).hasClass("tool_button_current")&&ve(),e(n).addClass("disabled");else for(t in r)n=r[t],e(n).removeClass("disabled");d.runExtensions("toolButtonStateUpdate",{nofill:o,nostroke:i}),e(".tools_flyout").each(function(){var t=e("#"+this.id+"_show"),n=!1;e(this).children().each(function(){e(this).hasClass("disabled")||(n=!0)}),t.toggleClass("disabled",!n)}),pe()},we=function(){var t,n;if(null!=K)switch(K.tagName){case"use":case"image":case"foreignObject":break;case"g":case"a":var o=null,a=K.getElementsByTagName("*");for(t=0,n=a.length;t<n;t++){var r=a[t].getAttribute("stroke-width");0===t?o=r:o!==r&&(o=null)}e("#stroke_width").val(null===o?"1":o),Z.fill.update(!0);break;default:Z.fill.update(!0),Z.stroke.update(!0);var l=K.getAttribute("stroke-width");e("#stroke_width").val(null===l||"null"===l?"1":l),e("#stroke_style").val(K.getAttribute("stroke-dasharray")||"none");var s=K.getAttribute("stroke-linejoin")||"miter";0!=e("#linejoin_"+s).length&&i(e("#linejoin_"+s)[0]),s=K.getAttribute("stroke-linecap")||"butt",0!=e("#linecap_"+s).length&&i(e("#linecap_"+s)[0])}if(null!=K){var c=100*(K.getAttribute("opacity")||1);e("#group_opacity").val(c),e("#opac_slider").slider("option","value",c),e("#elem_id").val(K.id),e("#elem_class").val(K.getAttribute("class"))}_e()},ye=function(){var t=K;null==t||t.parentNode||(t=null);var n=d.getCurrentDrawing().getCurrentLayerName(),o=d.getMode(),i="px"!==curConfig.baseUnit?curConfig.baseUnit:null,a="pathedit"==o,r=e("#cmenu_canvas li");if(e("#selected_panel, #multiselected_panel, #threemoreselected_panel, #g_panel, #rect_panel, #circle_panel,#ellipse_panel, #line_panel, #text_panel, #image_panel, #container_panel, #use_panel, #a_panel, #xy_panel, #marker_panel, #htmlctrl_panel, #tool_stroke, #tool_angle, #shape_panel").hide(),$||ee||a||e("#tool_stroke").show(),null!=t){var s=t.nodeName;e("#tool_angle").show();var c=d.getRotationAngle(t);e("#angle").val(c);var f=d.getBlur(t);if(e("#blur").val(f),e("#blur_slider").slider("option","value",f),d.addedNew&&"image"===s&&0!==d.getHref(t).indexOf("data:")&&l(),a||"pathedit"==o){var v=U.getNodePoint();if(e("#tool_add_subpath").removeClass("push_button_pressed").addClass("tool_button"),e("#tool_node_delete").toggleClass("disabled",!U.canDeleteNodes),P("#tool_openclose_path",U.closed_subpath?"open_path":"close_path"),v){var h=e("#seg_type");i&&(v.x=svgedit.units.convertUnit(v.x),v.y=svgedit.units.convertUnit(v.y)),e("#path_node_x").val(v.x),e("#path_node_y").val(v.y),v.type?h.val(v.type).removeAttr("disabled"):h.val(4).attr("disabled","disabled")}return}if(e("#selected_panel").show(),["line","circle","ellipse"].indexOf(s)>=0)e("#xy_panel").hide();else{var m,_;if(["g","polyline","path"].indexOf(s)>=0){var w=d.getStrokedBBox([t]);w&&(m=w.x,_=w.y)}else m=t.getAttribute("x"),_=t.getAttribute("y");if(i&&(m=svgedit.units.convertUnit(m),_=svgedit.units.convertUnit(_)),t.getAttribute("width"),t.getAttribute("heght"),m=Number.parseFloat(m),m=m.toFixed(Number.isInteger(m)?0:2),_=Number.parseFloat(_),_=_.toFixed(Number.isInteger(_)?0:2),e("#selected_x").val(m||0),e("#selected_y").val(_||0),e("#xy_panel").show(),g.indexOf(t.id.substr(0,4))>=0){var y=svgedit.utilities.getBBox(t);e("#htmlctrl_panel").show(),e("#htmlctrl_width").val(y.width||0),e("#htmlctrl_height").val(y.height||0)}}var b=-1==["image","text","path","g","use"].indexOf(s);e("#tool_topath").toggle(b),e("#tool_reorient").toggle("path"===s),e("#tool_reorient").toggleClass("disabled",0===c);var C={g:[],a:[],rect:["rx","width","height"],image:["width","height"],circle:["cx","cy","r"],ellipse:["cx","cy","rx","ry"],line:["x1","y1","x2","y2"],text:[],use:[]},x=t.tagName,k=null;"a"===x&&(k=d.getHref(t),e("#g_panel").show()),"a"===t.parentNode.tagName&&(e(t).siblings().length||(e("#a_panel").show(),k=d.getHref(t.parentNode))),e("#tool_make_link, #tool_make_link").toggle(!k),k&&e("#link_url").val(k);var S=!1;if(C[x]){var E=C[x],F=t.getAttribute("type");F&&0===F.indexOf("svg-ext")?"svg-ext-shapes-group"!==F&&(S=!0):e("#"+x+"_panel").show(),e.each(E,function(n,o){var i=t.getAttribute(o);if("px"!==curConfig.baseUnit&&t[o]){var a=t[o].baseVal.value;i=svgedit.units.convertUnit(a)}e("#"+x+"_"+o).val(i||0)});var A="g"===x&&p.indexOf(t.id.substr(0,4))>=0;if("text"==x||A){if(e("#text_panel").css("display","inline"),d.getItalic()?e("#tool_italic").addClass("push_button_pressed").removeClass("tool_button"):e("#tool_italic").removeClass("push_button_pressed").addClass("tool_button"),d.getBold()?e("#tool_bold").addClass("push_button_pressed").removeClass("tool_button"):e("#tool_bold").removeClass("push_button_pressed").addClass("tool_button"),e("#font_family").val(t.getAttribute("font-family")),e("#font_size").val(t.getAttribute("font-size")),e("#text_anchor").val(t.getAttribute("text-anchor")),A){var T=d.getExtensionFont(t);T&&(T.fontFamily&&e("#font_family").val(T.fontFamily),T.fontSize&&e("#font_size").val(T.fontSize.replace("px","")),T.textAnchor&&e("#text_anchor").val(T.textAnchor))}e("#text").val(t.textContent),d.addedNew&&!A&&setTimeout(function(){e("#text").focus().select()},100)}else"image"==x?he(d.getHref(t)):"g"===x||"use"===x?(e("#container_panel").show(),d.getTitle()):"line"===x&&e("#marker_panel").show()}r[("g"===x?"en":"dis")+"ableContextMenuItems"]("#ungroup"),r[("g"!==x&&Y?"en":"dis")+"ableContextMenuItems"]("#group"),S&&r.disableContextMenuItems("#ungroup"),"svg-ext-shapes-group"===t.getAttribute("type")&&e("#g_panel").show()}else Y?(e("#multiselected_panel").show(),r.enableContextMenuItems("#group").disableContextMenuItems("#ungroup"),J&&e("#threemoreselected_panel").show()):r.disableContextMenuItems("#interactivity,#editBindOfTags,#delete,#cut,#copy,#group,#ungroup,#move_front,#move_up,#move_down,#move_back");!$&&!ee||Y||(r.disableContextMenuItems("#ungroup"),e("#g_panel").hide()),e("#tool_undo").toggleClass("disabled",0===R.getUndoStackSize()),e("#tool_redo").toggleClass("disabled",0===R.getRedoStackSize()),d.addedNew=!1,t&&!a||Y?(e("#selLayerNames").removeAttr("disabled").val(n),z.enableContextMenuItems("#delete,#deselect,#cut,#copy,#move_front,#move_up,#move_down,#move_back")):e("#selLayerNames").attr("disabled","disabled"),r.disableContextMenuItems("#interactivity,#editBindOfTags"),t&&!Y&&(F=t.getAttribute("type"),(F&&F.startsWith("svg-ext-")||u.baseSvgTags.indexOf(t.tagName)>-1)&&r.enableContextMenuItems("#interactivity,#editBindOfTags"))},be=function(){if(!L){var t="#workarea.wireframe #svgcontent * { stroke-width: "+1/d.getZoom()+"px; }";e("#wireframe_rules").text(G.hasClass("wireframe")?t:"")}},Ce=function(t){t=t||d.getDocumentTitle();var n=ae+(t?": "+t:"");e("title:first").text(n)},xe=function(e,t){u.onGaugeAdded&&u.onGaugeAdded(t)},ke=function(e,t){u.onGaugeResized&&u.onGaugeResized(t)},Se=function(e,t){u.onGaugeCopyPaste&&u.onGaugeCopyPaste(t)},Ee=function(t,n){var o=d.getMode();"select"===o&&Q();var i="pathedit"==o;K=1===n.length||null==n[1]?n[0]:null,Y=n.length>=2&&null!=n[1],J=n.length>=3&&null!=n[2],$=!1,ee=!1;for(var a=0;a<n.length;a++)n[a]&&n[a].id&&(0===n[a].id.indexOf("HX")?$=!0:0===n[a].id.indexOf("PIE")&&(ee=!0));null!=K&&(i||ee||we()),ue(i,n),ye(),d.runExtensions("selectedChanged",{elems:n,selectedElement:K,multiselected:Y}),ee&&e("#marker_panel").hide();var r=[];if(Y){for(a=0;a<n.length;a++)n[a]&&r.push({id:n[a].id,type:n[a].getAttribute("type")});u.onSelectedElement(r)}else K?(r.push({id:K.id,type:K.getAttribute("type")}),u.onSelectedElement(r)):u.onSelectedElement(null)},Fe=function(t,n){var o=d.getMode(),i=n[0];if(i){if(Y=n.length>=2&&null!=n[1],J=n.length>=3&&null!=n[2],!Y)switch(o){case"rotate":var a=d.getRotationAngle(i);e("#angle").val(a),e("#tool_reorient").toggleClass("disabled",0===a)}d.runExtensions("elementTransition",{elems:n})}},Pe=function(e,t){var n,o=d.getMode();for("select"===o&&Q(),n=0;n<t.length;++n){var i=t[n];i&&"svg"===i.tagName?(se(),me()):i&&K&&null==K.parentNode&&(K=i)}u.showSaveWarning=!0,ye(),K&&"select"===o&&(Z.fill.update(),Z.stroke.update()),d.runExtensions("elementChanged",{elems:t})},Ae=function(){be()},Te=d.zoomChanged=function(t,n,o){var i=0,a=G,r=d.setBBoxZoom(n,a.width()-i,a.height()-i);if(r){var l=r.zoom,s=r.bbox;l<.001?D({value:.1}):(e("#zoom").val((100*l).toFixed(1)),o?me():me(!1,{x:s.x*l+s.width*l/2,y:s.y*l+s.height*l/2}),"zoom"==d.getMode()&&s.width&&Q(),Ae())}},Le=d.myZoomed=function(t,n){const o=0;w_area=G;var i=d.setBBoxZoom(n.bbox,w_area.width()-o,w_area.height()-o);if(i){var a=i.zoom;a<.001?D({value:.1}):(e("#zoom").val((100*a).toFixed(1)),n.center?me():me(!1,n.bbox),Ae())}};D=function(e){var t=e.value/100;if(t<.001)e.value=.1;else{var n=d.getZoom(),o=G;Te(window,{width:0,height:0,x:(o[0].scrollLeft+o.width()/2)/n,y:(o[0].scrollTop+o.height()/2)/n,zoom:t},!0)}},e("#cur_context_panel").delegate("a","click",function(){var t=e(this);return t.attr("data-root")?d.leaveContext():d.setContext(t.text()),d.clearSelection(),!1});var De=function(t,n){var o="";if(n){var i="";o='<a href="#" data-root="y">'+d.getCurrentDrawing().getCurrentLayerName()+"</a>",e(n).parentsUntil("#svgcontent > g").andSelf().each(function(){this.id&&(i+=" > "+this.id,o+=this!==n?' > <a href="#">'+this.id+"</a>":" > "+this.id)}),ie=i}else ie=null;e("#cur_context_panel").toggle(!!n).html(o),Ce()},Ie=function(){Z.fill.prep(),Z.stroke.prep()},Ne={},Be=function(){e(".tools_flyout").each(function(){var t=e("#"+this.id+"_show");if(!t.data("isLibrary")){var n=[];e(this).children().each(function(){n.push(this.title)}),t[0]&&(t[0].title=n.join(" / "))}})},Oe=function(){e(".tools_flyout").each(function(){var t=e("#"+this.id+"_show"),n=t.offset(),o=t.outerWidth();n&&e(this).css({left:(n.left+o)*u.tool_scale,top:n.top})})},Ue=function(t){e.each(t,function(n,o){var i,a=e(n).children(),r=n+"_show",l=e(r),s=!1;a.addClass("tool_button").unbind("click mousedown mouseup").each(function(n){var i=o[n];Ne[i.sel]=i.fn,i.isDefault&&(s=n);var a=function(n){var o,a=i;if("keydown"===n.type){var s=e(a.parent+"_show").hasClass("tool_button_current"),c=e(a.parent+"_show").attr("data-curopt");e.each(t[i.parent],function(e,o){o.sel==c&&(a=n.shiftKey&&s?t[i.parent][e+1]||t[i.parent][0]:o)})}if(e(this).hasClass("disabled"))return!1;ge(r)&&a.fn(),o=a.icon?e.getSvgIcon(a.icon,!0):e(a.sel).children().eq(0).clone(),o[0].setAttribute("width",l.width()),o[0].setAttribute("height",l.height()),l.children(":not(.flyout_arrow_horiz)").remove(),l.append(o).attr("data-curopt",a.sel)};e(this).mouseup(a),i.key&&e(document).bind("keydown",i.key[0]+" shift+"+i.key[0],a)}),s?l.attr("data-curopt",o[s].sel):l.attr("data-curopt")||l.attr("data-curopt",o[0].sel);var c=e(r).position();l.mousedown(function(t){if(l.hasClass("disabled"))return!1;var o=e(n),a=c.left+34,r=-1*o.width(),s=o.data("shown_popop")?200:0;i=setTimeout(function(){l.data("isLibrary")?o.css("left",a).show():o.css("left",r).show().animate({left:a},150),o.data("shown_popop",!0)},s),t.preventDefault()}).mouseup(function(t){clearTimeout(i);var n=e(this).attr("data-curopt");l.data("isLibrary")&&e(r.replace("_show","")).is(":visible")?ge(r,!0):ge(r)&&Ne[n]&&Ne[n]()})}),Be(),Oe()},Re=function(t,n){var o=e("<div>",{class:"tools_flyout",id:t}).appendTo("#svg_editor").append(n);return o},Me=function(){var e,t=/^(Moz|Webkit|Khtml|O|ms|Icab)(?=[A-Z])/,n=document.getElementsByTagName("script")[0];for(e in n.style)if(t.test(e))return e.match(t)[0];return"WebkitOpacity"in n.style?"Webkit":"KhtmlOpacity"in n.style?"Khtml":""}(),Ge=function(t,n){var o=["top","left","bottom","right"];t.each(function(){var t,i=e(this),a=i.outerWidth()*(n-1),r=i.outerHeight()*(n-1);for(t=0;t<4;t++){var l=o[t],s=i.data("orig_margin-"+l);null==s&&(s=parseInt(i.css("margin-"+l),10),i.data("orig_margin-"+l,s));var c=s*n;"right"===l?c+=a:"bottom"===l&&(c+=r),i.css("margin-"+l,c)}})},ze=u.setIconSize=function(t){var n="#tools_top .toolset, #editor_panel > *, #history_panel > *,\t\t\t\t#main_button, #tools_left > *, #path_node_panel > *, #multiselected_panel > *,\t\t\t\t#g_panel > *, #tool_font_size > *, .tools_flyout",o=e(n),i=1;if("number"==typeof t)i=t;else{var a={s:.75,m:1,l:1.25,xl:1.5};i=a[t]}u.tool_scale=i,Oe();var r=o.parents(":hidden")
|
|
22
|
+
;r.css("visibility","hidden").show(),Ge(o,i),r.css("visibility","visible").hide(),e.pref("iconsize",t),e("#iconsize").val(t);var l={"#tools_top":{left:50+e("#main_button").width(),height:72},"#tools_left":{width:31,top:74},"div#workarea":{left:38,top:74}},s=e("#tool_size_rules");if(s.length?s.empty():s=e('<style id="tool_size_rules"></style>').appendTo("head"),"m"!==t){var c="";e.each(l,function(n,o){n="#svg_editor "+n.replace(/,/g,", #svg_editor"),c+=n+"{",e.each(o,function(e,n){var o;"number"==typeof n?o=n*i+"px":(n[t]||n.all)&&(o=n[t]||n.all),c+=e+":"+o+";"}),c+="}"});var d="-"+Me.toLowerCase()+"-";c+=n+"{"+d+"transform: scale("+i+");} #svg_editor div.toolset .toolset {"+d+"transform: scale(1); margin: 1px !important;} #svg_editor .ui-slider {"+d+"transform: scale("+1/i+");}",s.text(c)}Oe()},je=function(t,n,o,i){var a=e(t);n=e(n);var r=!1,l=i.dropUp;l&&e(t).addClass("dropup"),n.find("li").bind("mouseup",function(){i.seticon&&(P("#cur_"+a[0].id,e(this).children()),e(this).addClass("current").siblings().removeClass("current")),o.apply(this,arguments)}),e(window).mouseup(function(e){r||(a.removeClass("down"),n.hide(),n.css({top:0,left:0})),r=!1}),a.bind("mousedown",function(){var e=a.offset();l?(e.top-=n.height(),e.left+=8):e.top+=a.height(),n.offset(e),a.hasClass("down")?(n.hide(),n.css({top:0,left:0})):(n.show(),r=!0),a.toggleClass("down")}).hover(function(){r=!0}).mouseout(function(){r=!1}),i.multiclick&&n.mousedown(function(){r=!0})},He=[],We=function(t,n){if(n){var o=!1,i=!0;if(n.langReady)if(u.langChanged){var a=e.pref("lang");n.langReady({lang:a,uiStrings:uiStrings})}else He.push(n);var r=function(){n.callback&&!o&&i&&(o=!0,n.callback())},l=[];n.context_tools&&e.each(n.context_tools,function(t,n){var o,i=n.container_id?' id="'+n.container_id+'"':"",a=e("#"+n.panel);switch(a.length||(a=e("<div>",{id:n.panel}).appendTo("#tools_top")),n.type){case"tool_button":o='<div class="tool_button">'+n.id+"</div>";var r=e(o).appendTo(a);n.events&&e.each(n.events,function(t,n){e(r).bind(t,n)});break;case"select":o="<label"+i+'><select id="'+n.id+'">',e.each(n.options,function(e,t){var i=e==n.defval?" selected":"";o+='<option value="'+e+'"'+i+">"+t+"</option>"}),o+="</select></label>";var s=e(o).appendTo(a).find("select");e.each(n.events,function(t,n){e(s).bind(t,n)});break;case"button-select":o='<div id="'+n.id+'" class="dropdown toolset" title="'+n.title+'"><div id="cur_'+n.id+'" class="icon_label"></div><button></button></div>';var c=e('<ul id="'+n.id+'_opts"></ul>').appendTo("#option_lists");n.colnum&&c.addClass("optcols"+n.colnum),e(o).appendTo(a).children(),l.push({elem:"#"+n.id,list:"#"+n.id+"_opts",title:n.title,callback:n.events.change,cur:"#cur_"+n.id});break;case"input":o="<label"+i+'><span id="'+n.id+'_label">'+n.label+':</span><input id="'+n.id+'" title="'+n.title+'" size="'+(n.size||"4")+'" value="'+(n.defval||"")+'" type="text"/></label>';var u=e(o).appendTo(a).find("input");n.spindata&&u.SpinButton(n.spindata),n.events&&e.each(n.events,function(e,t){u.bind(e,t)})}}),n.mySetMarker&&(u.setMarker=n.mySetMarker),r()}},Ve=function(t,n,o){var i={alpha:n};if(0===t.indexOf("url(#")){var a=d.getRefElem(t);a=a?a.cloneNode(!0):e("#"+o+"_color defs *")[0],i[a.tagName]=a}else 0===t.indexOf("#")?i.solidColor=t.substr(1):i.solidColor="none";return new e.jGraduate.Paint(i)};e("#text").focus(function(){}),e("#text").blur(function(){}),d.bind("onGaugeAdded",xe),d.bind("onGaugeResized",ke),d.bind("onGaugeCopyPaste",Se),d.bind("selected",Ee),d.bind("transition",Fe),d.bind("changed",Pe),d.bind("saved",de),d.bind("exported",fe),d.bind("exportedPDF",function(e,t){var n=t.exportWindowName;n&&(j=window.open("",n)),j.location.href=t.dataurlstring}),d.bind("zoomed",Te),d.bind("myZoomed",Le),d.bind("contextset",De),d.bind("extension_added",We),d.textActions.setInputElem(e("#text")[0]);var Xe='<div class="palette_item" style="background-color:#FFF;color:red;font-size:20px;line-height: 15px;text-align:center;" data-rgb="none">X</div>';e.each(B,function(e,t){Xe+='<div class="palette_item" style="background-color: '+t+';" data-rgb="'+t+'"></div>'}),e("#palette").append(Xe);var Ze=["#FFF","#888","#000"];Xe="",e.each(Ze,function(){Xe+='<div class="color_block" style="background-color:'+this+';"></div>'}),e("#bg_blocks").append(Xe);var qe=e("#bg_blocks div"),Qe="cur_background";qe.each(function(){var t=e(this);t.click(function(){qe.removeClass(Qe),e(this).addClass(Qe)})}),r(e.pref("bkgd_color"),e.pref("bkgd_url")),e("#image_save_opts input").val([e.pref("img_save")]);var Ke=function(e){d.setRectRadius(e.value)},Ye=function(e){d.setFontSize(e.value)},Je=function(e){var t=e.value;0==t&&K&&["line","polyline"].indexOf(K.nodeName)>=0&&(t=e.value=1),d.setStrokeWidth(t)},$e=function(t){d.setRotationAngle(t.value),e("#tool_reorient").toggleClass("disabled",0===parseInt(t.value,10))},et=function(t,n){null==n&&(n=t.value),e("#group_opacity").val(n),t&&t.handle||e("#opac_slider").slider("option","value",n),d.setOpacity(n/100)},tt=function(t,n,o){null==n&&(n=t.value),e("#blur").val(n);var i=!1;t&&t.handle||(e("#blur_slider").slider("option","value",n),i=!0),o?d.setBlurNoUndo(n):d.setBlur(n,i)};e("#stroke_style").change(function(){d.setStrokeAttr("stroke-dasharray",e(this).val()),pe()}),e("#stroke_linejoin").change(function(){d.setStrokeAttr("stroke-linejoin",e(this).val()),pe()}),e("select").change(function(){e(this).blur()});var nt=!1;e("#selLayerNames").change(function(){var t=this.options[this.selectedIndex].value,n=uiStrings.notification.QmoveElemsToLayer.replace("%s",t),o=function(e){e&&(nt=!0,d.moveSelectedToLayer(t),d.clearSelection(),se())};t&&(nt?o(!0):e.confirm(n,o))}),e("#font_family").change(function(){d.setFontFamily(this.value)}),e("#seg_type").change(function(){d.setSegType(e(this).val())}),e("#text").keyup(function(){d.setTextContent(this.value)}),e("#image_url").change(function(){he(this.value)}),e("#link_url").change(function(){this.value.length?d.setLinkURL(this.value):d.removeHyperlink()}),e("#g_title").change(function(){d.setGroupTitle(this.value)}),e(".attr_changer").change(function(){var t=this.getAttribute("data-attr"),n=this.value,o=svgedit.units.isValidUnit(t,n,K);if(!o)return e.alert(uiStrings.notification.invalidAttrValGiven),this.value=K.getAttribute(t),!1;if("id"!==t&&"class"!==t)if(isNaN(n))n=d.convertToNum(t,n);else if("px"!==curConfig.baseUnit){var i=svgedit.units.getTypeMap();(K[t]||"pathedit"===d.getMode()||"x"===t||"y"===t)&&(n*=i[curConfig.baseUnit])}if("id"===t){var a=K;d.clearSelection(),a.id=n,d.addToSelection([a],!0)}else d.changeSelectedAttribute(t,n),a=K,d.clearSelection(),d.addToSelection([a],!0);this.blur()}),e("#palette").mouseover(function(){var t=e('<input type="hidden">');e(this).append(t),t.focus().remove()}),e(".palette_item").mousedown(function(t){var n,o=t.shiftKey||2===t.button?"stroke":"fill",i=e(this).data("rgb");"none"===i||"transparent"===i||"initial"===i?(i="none",n=new e.jGraduate.Paint):n=new e.jGraduate.Paint({alpha:100,solidColor:i.substr(1)}),Z[o].setPaint(n),d.setColor(o,i),"none"!==i&&1!==d.getPaintOpacity(o)&&d.setPaintOpacity(o,1),u.changeColor&&u.changeColor(o,i),_e()}).bind("contextmenu",function(e){e.preventDefault()}),e("#toggle_stroke_tools").on("click",function(){e("#tools_bottom").toggleClass("expanded")}),function(){var t=null,n=null,o=G[0],i=!1,a=!1;e("#svgcanvas").bind("mousemove mouseup",function(e){if(!1!==i)return o.scrollLeft-=e.clientX-t,o.scrollTop-=e.clientY-n,t=e.clientX,n=e.clientY,"mouseup"===e.type&&(i=!1),!1}).mousedown(function(e){if(1===e.button||!0===a)return i=!0,t=e.clientX,n=e.clientY,!1}),e(window).mouseup(function(){i=!1}),e(document).bind("keydown","space",function(e){d.spaceKey=a=!0,e.preventDefault()}).bind("keyup","space",function(e){e.preventDefault(),d.spaceKey=a=!1}).bind("keydown","shift",function(e){"zoom"===d.getMode()&&G.css("cursor",W)}).bind("keyup","shift",function(e){"zoom"===d.getMode()&&G.css("cursor",H)}),u.setPanning=function(e){d.spaceKey=a=e}}(),function(){var t=e("#main_icon"),n=e("#main_icon span"),o=e("#main_menu"),i=!1,a=0,r=!0,l=!1;e(window).mouseup(function(n){i||(t.removeClass("buttondown"),"INPUT"!=n.target.tagName?o.fadeOut(200):l||(l=!0,e(n.target).click(function(){o.css("margin-left","-9999px").show()}))),i=!1}).mousedown(function(t){var n=e(t.target).closest("div.tools_flyout, .contextMenu").length;n||e(".tools_flyout:visible,.contextMenu").fadeOut(250)}),n.bind("mousedown",function(){t.hasClass("buttondown")?o.fadeOut(200):(o.css("margin-left",0).show(),a||(a=o.height()),o.css("height",0).animate({height:a},200),i=!0),t.toggleClass("buttondown buttonup")}).hover(function(){i=!0}).mouseout(function(){i=!1});var s=e("#main_menu li");s.mouseover(function(){r="rgba(0, 0, 0, 0)"==e(this).css("background-color"),s.unbind("mouseover"),r&&s.mouseover(function(){this.style.backgroundColor="#FFC"}).mouseout(function(){return this.style.backgroundColor="transparent",!0})})}(),u.addDropDown=function(t,n,o){if(0!=e(t).length){var i=e(t).find("button"),a=e(t).find("ul").attr("id",e(t)[0].id+"-list"),r=!1;o?e(t).addClass("dropup"):e("#option_lists").append(a),a.find("li").bind("mouseup",n),e(window).mouseup(function(e){r||(i.removeClass("down"),a.hide()),r=!1}),i.bind("mousedown",function(){if(i.hasClass("down"))a.hide();else{if(!o){var n=e(t).position();a.css({top:n.top+24,left:n.left-10})}a.show(),r=!0}i.toggleClass("down")}).hover(function(){r=!0}).mouseout(function(){r=!1})}},u.addDropDown("#font_family_dropdown",function(){e("#font_family").val(e(this).text()).change()}),u.addDropDown("#opacity_dropdown",function(){if(!e(this).find("div").length){var t=parseInt(e(this).text().split("%")[0],10);et(!1,t)}},!0),e("#opac_slider").slider({start:function(){e("#opacity_dropdown li:not(.special)").hide()},stop:function(){e("#opacity_dropdown li").show(),e(window).mouseup()},slide:function(e,t){et(t)}}),u.addDropDown("#blur_dropdown",e.noop);var ot,it,at=!1;e("#blur_slider").slider({max:10,step:.1,stop:function(t,n){at=!1,tt(n),e("#blur_dropdown li").show(),e(window).mouseup()},start:function(){at=!0},slide:function(e,t){tt(t,null,at)}}),u.addDropDown("#zoom_dropdown",function(){var t=e(this),n=t.data("val");n?Te(window,n):D({value:parseFloat(t.text())})},!0),je("#stroke_linecap","#linecap_opts",function(){i(this,!0)},{dropUp:!0}),je("#stroke_linejoin","#linejoin_opts",function(){i(this,!0)},{dropUp:!0}),je("#tool_position","#position_opts",function(){var e=this.id.replace("tool_pos","").charAt(0);d.alignSelectedElements(e,"page")},{multiclick:!0}),it=function(){e(ot).blur()},e("#svg_editor").find("button, select, input:not(#text)").focus(function(){ot=this,V="toolbars",G.mousedown(it)}).blur(function(){V="canvas",G.unbind("mousedown",it),"textedit"==d.getMode()&&e("#text").focus()});var rt=function(){ge("#tool_fhpath")&&d.setMode("fhpath")},lt=function(){ge("#tool_line")&&d.setMode("line")},st=function(){ge("#tool_square")&&d.setMode("square")},ct=function(){ge("#tool_rect")&&d.setMode("rect")},ut=function(){ge("#tool_fhrect")&&d.setMode("fhrect")},dt=function(){ge("#tool_circle")&&d.setMode("circle")},ft=function(){ge("#tool_ellipse")&&d.setMode("ellipse")},pt=function(){ge("#tool_fhellipse")&&d.setMode("fhellipse")},gt=function(){ge("#tool_image")&&d.setMode("image")},vt=function(){ge("#tool_zoom")&&(d.setMode("zoom"),G.css("cursor",H))},ht=function(t){var n=d.getResolution();t=t?n.zoom*t:1,e("#zoom").val(100*t),d.setZoom(t),Ae(),me(!0)},mt=function(){ge("#tool_zoom")&&(ht(),Q())},_t=function(){ge("#tool_text")&&d.setMode("text")},wt=function(){ge("#tool_path")&&d.setMode("path")};u.clickExtension=function(e){d.clickExtension(e)},u.clickZoom=function(){d.setMode("zoom"),G.css("cursor",H)},u.clickToSetMode=function(e){d.setMode(e)},u.getSvgString=function(){return u.showSaveWarning=!1,d.getSvgString()},u.getSelectedElements=function(){return d.getSelectedElems()},u.setSvgString=function(e){return d.setSvgString(e)},u.enableGridSnapping=function(e){curConfig.gridSnapping=e},u.setDocProperty=function(e,t,n,o){return!("fit"!=t&&!svgedit.units.isValidUnit("width",t))&&!("fit"!=n&&!svgedit.units.isValidUnit("height",n))&&!!d.setResolution(t,n)&&(o||(o="#ffffff"),!(o&&!d.setBackground(o))&&void me())},u.alignSelectedElements=function(e){d.alignSelectedElements(e,"page")},u.setColor=function(e,t,n){var o={alpha:t,solidColor:e,type:"solidColor"};Z[n].setPaint(o),d.setPaint(n,o)},u.setStrokeOption=function(e){i(e,!0)},u.setFilterShadow=function(e){d.setFilterShadow(e)},u.setFontFamily=function(e){d.setFontFamily(e)},u.setTextAlign=function(e){d.setTextAlign(e)},u.clickClearAll=function(){var e=curConfig.dimensions;Q(),d.clear(),d.setResolution(e[0],e[1]),me(!0),ht(),se(),ye(),Ie(),d.runExtensions("onNewDocument")},u.clearSelection=function(){d.clearSelection()},u.selectOnly=function(e,t){d.selectOnly(e,t)},u.setMarker=function(e,t){},u.setSvgImageToAdd=function(e){d.setGoodSvgImageContent(e)},u.setUrlImageToAdd=function(e){console.log("url",e),d.setGoodImage(e),u.promptImgURLcallback=e},u.getShapes=function(){return u.shapesGrps},u.runExtension=function(e,t,...n){return d.runExtension(e,t,n)},u.makeHyperlink=function(e){e&&d.makeHyperlink(e)},u.renameSvgExtensionId=function(e){let t=e.id.substring(0,e.id.indexOf("_"));var n=d.getNextId().replace("svg_",t+"_");return e.content=e.content.split(e.id).join(n),n},u.renameAllSvgExtensionId=function(t,n){var o={content:t,id:""};return e.each(u.currentExtensionsPrefixIdType,function(e,i){for(var a='id=\\"'+i,r=o.content.indexOf(a);r>0;){idend=o.content.indexOf('\\"',r+a.length),o.id=o.content.substring(r,idend);var l=o.id.replace('id=\\"',"");if(-1===n.indexOf(l)){var s=u.renameSvgExtensionId(o);n.push(s.replace('id=\\"',""))}r=t.indexOf(a,r+1)}}),t=o.content,t},u.resetZoom=function(){D({value:100})},u.refreshCanvas=function(){me(!0)};var yt=function(){if(null!=K||Y){var e=d.deleteSelectedElements();null!=a&&a(e)}},bt=function(){(null!=K||Y)&&d.cutSelectedElements()},Ct=function(){(null!=K||Y)&&d.copySelectedElements()},xt=function(){var e=d.getZoom(),t=(G[0].scrollLeft+G.width()/2)/e-d.contentW,n=(G[0].scrollTop+G.height()/2)/e-d.contentH;d.pasteElements("point",t,n)},kt=function(){null!=K&&d.moveToTopSelectedElement()},St=function(){null!=K&&d.moveToBottomSelectedElement()},Et=function(e){null!=K&&d.moveUpDownSelected(e)},Ft=function(){null!=K&&d.convertToPath()},Pt=function(){null!=K&&U.reorient()},At=function(e,t){if(null!=K||Y){if(curConfig.gridSnapping){var n=d.getZoom()*curConfig.snappingStep;e*=n,t*=n}d.moveSelectedElements(e,t)}},Tt=function(){e("#tool_node_link").toggleClass("push_button_pressed tool_button");var t=e("#tool_node_link").hasClass("push_button_pressed");U.linkControlPoints(t)},Lt=function(){U.getNodePoint()&&U.clonePathNode()},Dt=function(){U.getNodePoint()&&U.deletePathNode()},It=function(){var t=e("#tool_add_subpath"),n=!t.hasClass("push_button_pressed");t.toggleClass("push_button_pressed tool_button"),U.addSubPath(n)},Nt=function(){U.opencloseSubPath()},Bt=function(){d.cycleElement(1)},Ot=function(){d.cycleElement(0)},Ut=function(t,n){if(null!=K&&!Y){t||(n*=-1);var o=parseFloat(e("#angle").val())+n;d.setRotationAngle(o),ye()}};clickClear=function(){var t=curConfig.dimensions;e.confirm(uiStrings.notification.QwantToClear,function(e){e&&(Q(),d.clear(),d.setResolution(t[0],t[1]),me(!0),ht(),se(),ye(),Ie(),d.runExtensions("onNewDocument"))})};var Rt=function(){return d.setBold(!d.getBold()),ye(),!1},Mt=function(){return d.setItalic(!d.getItalic()),ye(),!1},Gt=function(){var t={images:e.pref("img_save"),round_digits:6};d.save(t)},zt=function(){e.select("Select an image type for export: ",["PNG","JPEG","BMP","WEBP","PDF"],function(t){function n(){var e=uiStrings.notification.loadingImage;"new"===curConfig.exportWindowType&&u.exportWindowCt++,o=curConfig.canvasName+u.exportWindowCt,j=window.open("data:text/html;charset=utf-8,"+encodeURIComponent("<title>"+e+"</title><h1>"+e+"</h1>"),o)}var o;if(t)if("PDF"===t)customExportPDF||n(),d.exportPDF(o);else{customExportImage||n();var i=parseInt(e("#image-slider").val(),10)/100;d.rasterExport(t,i,o)}},function(){var t=e(this);"JPEG"===t.val()||"WEBP"===t.val()?e("#image-slider").length||e('<div><label>Quality: <input id="image-slider" type="range" min="1" max="100" value="92" /></label></div>').appendTo(t.parent()):e("#image-slider").parent().remove()})},jt=function(){d.open()},Ht=function(){},Wt=function(){R.getUndoStackSize()>0&&(R.undo(),se())},Vt=function(){R.getRedoStackSize()>0&&(R.redo(),se())},Xt=function(){Y?d.groupSelectedElements():K&&d.ungroupSelectedElement(),u.onGroupChanged&&u.onGroupChanged(K)},Zt=function(){d.copySelectedElements(),d.pasteElements("point",20,20)},qt=function(){var t=this.id.replace("tool_align","").charAt(0);d.alignSelectedElements(t,e("#align_relative_to").val())},Qt=function(){var e=this.id.replace("tool_divide","").charAt(0);d.divideSelectedElements(e)},Kt=function(){if(e("#tool_wireframe").toggleClass("push_button_pressed tool_button"),G.toggleClass("wireframe"),!L){var t=e("#wireframe_rules");t.length?t.empty():t=e('<style id="wireframe_rules"></style>').appendTo("head"),be()}};e("#svg_docprops_container, #svg_prefs_container").draggable({cancel:"button,fieldset",containment:"window"});var Yt,Jt,$t,en=function(){if(!ne){ne=!0,e("#image_save_opts input").val([e.pref("img_save")]);var t=d.getResolution();"px"!==curConfig.baseUnit&&(t.w=svgedit.units.convertUnit(t.w)+curConfig.baseUnit,t.h=svgedit.units.convertUnit(t.h)+curConfig.baseUnit),e("#canvas_width").val(t.w),e("#canvas_height").val(t.h),e("#canvas_title").val(d.getDocumentTitle()),e("#svg_docprops").show()}},tn=function(){if(!oe){oe=!0,e("#main_menu").hide();var t=e("#bg_blocks div"),n="cur_background",o=curPrefs.bkgd_color,i=e.pref("bkgd_url");t.each(function(){var t=e(this),i=t.css("background-color")==o;t.toggleClass(n,i),i&&e("#canvas_bg_url").removeClass(n)}),o||t.eq(0).addClass(n),i&&e("#canvas_bg_url").val(i),e("#grid_snapping_on").prop("checked",curConfig.gridSnapping),e("#grid_snapping_step").attr("value",curConfig.snappingStep),e("#grid_color").attr("value",curConfig.gridColor),e("#svg_prefs").show()}},nn=function(){e("#svg_source_editor").hide(),te=!1,e("#svg_source_textarea").blur()},on=function(){if(te){var t=function(){d.clearSelection(),nn(),ht(),se(),Ce(),Ie()};d.setSvgString(e("#svg_source_textarea").val())?t():e.confirm(uiStrings.notification.QerrorsRevertToSource,function(e){if(!e)return!1;t()}),Q()}},an=function(){e("#svg_docprops").hide(),e("#canvas_width,#canvas_height").removeAttr("disabled"),e("#resolution")[0].selectedIndex=0,e("#image_save_opts input").val([e.pref("img_save")]),ne=!1},rn=function(){e("#svg_prefs").hide(),oe=!1},ln=function(){var t=e("#canvas_title").val();Ce(t),d.setDocumentTitle(t);var n=e("#canvas_width"),o=n.val(),i=e("#canvas_height"),a=i.val();return"fit"==o||svgedit.units.isValidUnit("width",o)?(n.parent().removeClass("error"),"fit"==a||svgedit.units.isValidUnit("height",a)?(i.parent().removeClass("error"),d.setResolution(o,a)?(e.pref("img_save",e("#image_save_opts :checked").val()),me(),void an()):(e.alert(uiStrings.notification.noContentToFitTo),!1)):(e.alert(uiStrings.notification.invalidAttrValGiven),i.parent().addClass("error"),!1)):(e.alert(uiStrings.notification.invalidAttrValGiven),n.parent().addClass("error"),!1)},sn=u.savePreferences=function(){var t=e("#bg_blocks div.cur_background").css("background-color")||"#FFF";r(t,e("#canvas_bg_url").val());var n=e("#lang_select").val();n!==e.pref("lang")&&u.putLocale(n,F),ze(e("#iconsize").val()),curConfig.gridSnapping=e("#grid_snapping_on")[0].checked,curConfig.snappingStep=e("#grid_snapping_step").val(),curConfig.gridColor=e("#grid_color").val(),curConfig.showRulers=e("#show_rulers")[0].checked,e("#rulers").toggle(curConfig.showRulers),curConfig.showRulers&&s(),curConfig.baseUnit=e("#base_unit").val(),d.setConfig(curConfig),me(),rn()},cn=e.noop,un=function(){e("#dialog_box").hide(),te||ne||oe?(te?X!==e("#svg_source_textarea").val()?e.confirm(uiStrings.notification.QignoreSourceChanges,function(e){e&&nn()}):nn():ne?an():oe&&rn(),cn()):ie&&d.leaveContext()},dn={width:e(window).width(),height:e(window).height()};if(svgedit.browser.isIE()&&(cn=function(){0===G[0].scrollLeft&&0===G[0].scrollTop&&(G[0].scrollLeft=N.left,G[0].scrollTop=N.top)},N={left:G[0].scrollLeft,top:G[0].scrollTop},e(window).resize(cn),u.ready(function(){setTimeout(function(){cn()},500)}),G.scroll(function(){N={left:G[0].scrollLeft,top:G[0].scrollTop}})),e(window).resize(function(t){e.each(dn,function(t,n){var o=e(window)[t]();G[0]["scroll"+("width"===t?"Left":"Top")]-=(o-n)/2,dn[t]=o}),Oe()}),G.scroll(function(){0!=e("#ruler_x").length&&(e("#ruler_x")[0].scrollLeft=G[0].scrollLeft),0!=e("#ruler_y").length&&(e("#ruler_y")[0].scrollTop=G[0].scrollTop)}),e("#url_notice").click(function(){e.alert(this.title)}),e("#change_image_url").click(l),Yt=["clear","open","save","source","delete","delete_multi","paste","clone","clone_multi","move_top","move_bottom"],Jt="",$t="tool_button_current",e.each(Yt,function(e,t){Jt+=(e?",":"")+"#tool_"+t}),e(Jt).mousedown(function(){e(this).addClass($t)}).bind("mousedown mouseout",function(){e(this).removeClass($t)}),e("#tool_undo, #tool_redo").mousedown(function(){e(this).hasClass("disabled")||e(this).addClass($t)}).bind("mousedown mouseout",function(){e(this).removeClass($t)}),svgedit.browser.isMac()&&!window.opera){var fn=["tool_clear","tool_save","tool_source","tool_undo","tool_redo","tool_clone"];for(q=fn.length;q--;){var pn=document.getElementById(fn[q]);if(pn){var gn=pn.title,vn=gn.indexOf("Ctrl+");pn.title=[gn.substr(0,vn),"Cmd+",gn.substr(vn+5)].join("")}}}var hn=function(t){var n="stroke_color"==t.attr("id")?"stroke":"fill",o=Z[n].paint,i="stroke"==n?"Pick a Stroke Paint and Opacity":"Pick a Fill Paint and Opacity",a=t.offset();e("#color_picker").draggable({cancel:".jGraduate_tabs, .jGraduate_colPick, .jGraduate_gradPick, .jPicker",containment:"window"}).css(curConfig.colorPickerCSS||{left:a.left-140,bottom:40}).jGraduate({paint:o,window:{pickerTitle:i},images:{clientPath:curConfig.jGraduatePath},newstop:"inverse"},function(t){o=new e.jGraduate.Paint(t),Z[n].setPaint(o),d.setPaint(n,o),e("#color_picker").hide()},function(){e("#color_picker").hide()})},mn=function(t,n){var o,i,a=curConfig["fill"===n?"initFill":"initStroke"],r=(new DOMParser).parseFromString('<svg xmlns="http://www.w3.org/2000/svg"><rect width="16.5" height="16.5"\t\t\t\t\tfill="#'+a.color+'" opacity="'+a.opacity+'"/>\t\t\t\t\t<defs><linearGradient id="gradbox_"/></defs></svg>',"text/xml"),l=r.documentElement;l=e(t)[0].appendChild(document.importNode(l,!0)),l.setAttribute("width",16.5),this.rect=l.firstChild,this.defs=l.getElementsByTagName("defs")[0],this.grad=this.defs.firstChild,this.paint=new e.jGraduate.Paint({solidColor:a.color}),this.type=n,this.setPaint=function(e,t){this.paint=e;var n="none",a=e.type,r=e.alpha/100;switch(a){case"solidColor":n="none"!=e[a]?"#"+e[a]:e[a];break;case"linearGradient":case"radialGradient":this.defs.removeChild(this.grad),this.grad=this.defs.appendChild(e[a]);var l=this.grad.id="gradbox_"+this.type;n="url(#"+l+")"}this.rect.setAttribute("fill",n),this.rect.setAttribute("opacity",r),t&&(d.setColor(this.type,o,!0),d.setPaintOpacity(this.type,i,!0))},this.update=function(e){if(K){var t,n,a=this.type;switch(K.tagName){case"use":case"image":case"foreignObject":return;case"g":case"a":var r=null,l=K.getElementsByTagName("*");for(t=0,n=l.length;t<n;t++){var s=l[t],c=s.getAttribute(a);if(0===t)r=c;else if(r!==c){r=null;break}}if(null===r)return void(o=null);o=r,i=1;break;default:i=parseFloat(K.getAttribute(a+"-opacity")),isNaN(i)&&(i=1);var u="fill"===a?"black":"none";o=K.getAttribute(a)||u}e&&(d.setColor(a,o,!0),d.setPaintOpacity(a,i,!0)),i*=100;var f=Ve(o,i,a);this.setPaint(f)}},this.prep=function(){var t=this.paint.type;switch(t){case"linearGradient":case"radialGradient":var o=new e.jGraduate.Paint({copy:this.paint});d.setPaint(n,o)}}};Z.fill=new mn("#fill_color","fill"),Z.stroke=new mn("#stroke_color","stroke"),e("#stroke_width").val(curConfig.initStroke.width),e("#group_opacity").val(100*curConfig.initOpacity);var _n=Z.fill.rect.cloneNode(!1);_n.setAttribute("style","vector-effect:non-scaling-stroke"),L="non-scaling-stroke"===_n.style.vectorEffect,_n.removeAttribute("style");var wn,yn,bn=Z.fill.rect.ownerDocument,Cn=bn.createElementNS(svgedit.NS.SVG,"feGaussianBlur");void 0===Cn.stdDeviationX&&e("#tool_blur").hide(),e(Cn).remove(),wn="-"+Me.toLowerCase()+"-zoom-",yn=wn+"in",G.css("cursor",yn),G.css("cursor")===yn&&(H=yn,W=wn+"out"),G.css("cursor","auto"),e("#fill_color, #tool_fill .icon_label").click(function(){hn(e("#fill_color")),_e()}),e("#stroke_color, #tool_stroke .icon_label").click(function(){hn(e("#stroke_color")),_e()}),e("#group_opacityLabel").click(function(){e("#opacity_dropdown button").mousedown(),e(window).mouseup()}),e("#zoomLabel").click(function(){e("#zoom_dropdown button").mousedown(),e(window).mouseup()}),e("#tool_move_top").mousedown(function(t){e("#tools_stacking").show()}),e(".layer_button").mousedown(function(){e(this).addClass("layer_buttonpressed")}).mouseout(function(){e(this).removeClass("layer_buttonpressed")}).mouseup(function(){e(this).removeClass("layer_buttonpressed")}),e(".push_button").mousedown(function(){e(this).hasClass("disabled")||e(this).addClass("push_button_pressed").removeClass("push_button")}).mouseout(function(){e(this).removeClass("push_button_pressed").addClass("push_button")}).mouseup(function(){e(this).removeClass("push_button_pressed").addClass("push_button")}),e("#layer_new").click(function(){var t,n=d.getCurrentDrawing().getNumLayers();do{t=uiStrings.layers.layer+" "+ ++n}while(d.getCurrentDrawing().hasLayer(t));e.prompt(uiStrings.notification.enterUniqueLayerName,t,function(t){t&&(d.getCurrentDrawing().hasLayer(t)?e.alert(uiStrings.notification.dupeLayerName):(d.createLayer(t),ye(),se()))})}),e("#layer_delete").click(_),e("#layer_up").click(function(){b(-1)}),e("#layer_down").click(function(){b(1)}),e("#layer_rename").click(function(){var t=e("#layerlist tr.layersel td.layername").text();e.prompt(uiStrings.notification.enterNewLayerName,"",function(n){n&&(t==n||d.getCurrentDrawing().hasLayer(n)?e.alert(uiStrings.notification.layerHasThatName):(d.renameCurrentLayer(n),se()))})});var xn=300,kn=150,Sn=-1,En=!1,Fn=!1,Pn=function(t){var n=e("#ruler_x");e("#sidepanels").width("+="+t),e("#layerpanel").width("+="+t),n.css("right",parseInt(n.css("right"),10)+t),G.css("right",parseInt(G.css("right"),10)+t),d.runExtensions("workareaResized")},An=function(t){if(Fn&&-1!=Sn){En=!0;var n=Sn-t.pageX,o=e("#sidepanels").width();o+n>xn?(n=xn-o,o=xn):o+n<2&&(n=2-o,o=2),0!=n&&(Sn-=n,Pn(n))}},Tn=function(t){var n=e("#sidepanels").width(),o=(n>2||t?2:kn)-n;Pn(o)};e("#sidepanel_handle").mousedown(function(t){Sn=t.pageX,e(window).mousemove(An),Fn=!1,setTimeout(function(){Fn=!0},20)}).mouseup(function(e){En||Tn(),Sn=-1,En=!1}),e(window).mouseup(function(){Sn=-1,En=!1,e("#svg_editor").unbind("mousemove",An)}),se();var Ln,Dn,In=function(){G.css("line-height",G.height()+"px")};e(window).bind("load resize",In),e("#resolution").change(function(){var t=e("#canvas_width,#canvas_height");if(this.selectedIndex)if("content"==this.value)t.val("fit").attr("disabled","disabled");else{var n=this.value.split("x");e("#canvas_width").val(n[0]),e("#canvas_height").val(n[1]),t.removeAttr("disabled")}else"fit"==e("#canvas_width").val()&&t.removeAttr("disabled").val(100)}),e("input,select").attr("autocomplete","off"),Ln=[{sel:"#tool_select",fn:ve,evt:"click",key:["V",!0]},{sel:"#tool_fhpath",fn:rt,evt:"click",key:["Q",!0]},{sel:"#tool_line",fn:lt,evt:"click",key:["L",!0]},{sel:"#tool_rect",fn:ct,evt:"mouseup",key:["R",!0],parent:"#tools_rect",icon:"rect"},{sel:"#tool_square",fn:st,evt:"mouseup",parent:"#tools_rect",icon:"square"},{sel:"#tool_fhrect",fn:ut,evt:"mouseup",parent:"#tools_rect",icon:"fh_rect"},{sel:"#tool_ellipse",fn:ft,evt:"mouseup",key:["E",!0],parent:"#tools_ellipse",icon:"ellipse"},{sel:"#tool_circle",fn:dt,evt:"mouseup",parent:"#tools_ellipse",icon:"circle"},{sel:"#tool_fhellipse",fn:pt,evt:"mouseup",parent:"#tools_ellipse",icon:"fh_ellipse"},{sel:"#tool_path",fn:wt,evt:"click",key:["P",!0]},{sel:"#tool_text",fn:_t,evt:"click",key:["T",!0]},{sel:"#tool_image",fn:gt,evt:"mouseup"},{sel:"#tool_zoom",fn:vt,evt:"mouseup",key:["Z",!0]},{sel:"#tool_clear",fn:clickClear,evt:"mouseup",key:["N",!0]},{sel:"#tool_save",fn:function(){te?on():Gt()},evt:"mouseup",key:["S",!0]},{sel:"#tool_export",fn:zt,evt:"mouseup"},{sel:"#tool_open",fn:jt,evt:"mouseup",key:["O",!0]},{sel:"#tool_import",fn:Ht,evt:"mouseup"},{sel:"#tool_source",fn:ce,evt:"click",key:["U",!0]},{sel:"#tool_wireframe",fn:Kt,evt:"click",key:["F",!0]},{sel:"#tool_source_save",fn:on,evt:"click"},{sel:"#tool_docprops_save",fn:ln,evt:"click"},{sel:"#tool_docprops",fn:en,evt:"mouseup"},{sel:"#tool_prefs_save",fn:sn,evt:"click"},{sel:"#tool_prefs_option",fn:function(){return tn(),!1},evt:"mouseup"},{sel:"#tool_delete,#tool_delete_multi",fn:yt,evt:"click",key:["del/backspace",!0]},{sel:"#tool_reorient",fn:Pt,evt:"click"},{sel:"#tool_node_link",fn:Tt,evt:"click"},{sel:"#tool_node_clone",fn:Lt,evt:"click"},{sel:"#tool_node_delete",fn:Dt,evt:"click"},{sel:"#tool_openclose_path",fn:Nt,evt:"click"},{sel:"#tool_add_subpath",fn:It,evt:"click"},{sel:"#tool_move_top",fn:kt,evt:"click",key:"ctrl+shift+]"},{sel:"#tool_move_bottom",fn:St,evt:"click",key:"ctrl+shift+["},{sel:"#tool_topath",fn:Ft,evt:"click"},{sel:"#tool_undo",fn:Wt,evt:"click",key:["ctrl+Z",!0]},{sel:"#tool_redo",fn:Vt,evt:"click",key:["ctrl+Y",!0]},{sel:"#tool_clone,#tool_clone_multi",fn:Zt,evt:"click",key:["ctrl+D",!0]},{sel:"#tool_group_elements",fn:Xt,evt:"click",key:["ctrl+G",!0]},{sel:"#tool_ungroup",fn:Xt,evt:"click"},{sel:"#tool_unlink_use",fn:Xt,evt:"click"},{sel:"[id^=tool_align]",fn:qt,evt:"click"},{sel:"[id^=tool_divide]",fn:Qt,evt:"click"},{sel:"#tool_bold",fn:Rt,evt:"mousedown"},{sel:"#tool_italic",fn:Mt,evt:"mousedown"},{sel:"#sidepanel_handle",fn:Tn,key:["X"]},{sel:"#copy_save_done",fn:un,evt:"click"},{key:"ctrl+left",fn:function(){Ut(0,1)}},{key:"ctrl+right",fn:function(){Ut(1,1)}},{key:"ctrl+shift+left",fn:function(){Ut(0,5)}},{key:"ctrl+shift+right",fn:function(){Ut(1,5)}},{key:"shift+O",fn:Ot},{key:"shift+P",fn:Bt},{key:[O+"up",!0],fn:function(){ht(2)}},{key:[O+"down",!0],fn:function(){ht(.5)}},{key:[O+"]",!0],fn:function(){Et("Up")}},{key:[O+"[",!0],fn:function(){Et("Down")}},{key:["up",!0],fn:function(){At(0,-1)}},{key:["down",!0],fn:function(){At(0,1)}},{key:["left",!0],fn:function(){At(-1,0)}},{key:["right",!0],fn:function(){At(1,0)}},{key:"shift+up",fn:function(){At(0,-10)}},{key:"shift+down",fn:function(){At(0,10)}},{key:"shift+left",fn:function(){At(-10,0)}},{key:"shift+right",fn:function(){At(10,0)}},{key:O+"A",fn:function(){d.selectAllInCurrentLayer()}},{key:O+"z",fn:Wt},{key:O+"shift+z",fn:Vt},{key:O+"y",fn:Vt},{key:O+"x",fn:bt},{key:O+"c",fn:Ct},{key:O+"v",fn:xt}],Dn={"4/Shift+4":"#tools_rect_show","5/Shift+5":"#tools_ellipse_show"},I={setAll:function(){var t={};e.each(Ln,function(n,o){var i;if(o.sel){if(i=e(o.sel),0==i.length)return!0;if(o.evt&&(svgedit.browser.isTouch()&&"click"===o.evt&&(o.evt="mousedown"),i[o.evt](o.fn)),o.parent&&0!=e(o.parent+"_show").length){var a=e(o.parent);a.length||(a=Re(o.parent.substr(1))),a.append(i),e.isArray(t[o.parent])||(t[o.parent]=[]),t[o.parent].push(o)}}if(o.key){var r,l=o.fn,s=!1;if(e.isArray(o.key)?(r=o.key[0],o.key.length>1&&(s=o.key[1]),o.key.length>2&&o.key[2]):r=o.key,r+="",e.each(r.split("/"),function(t,n){e(document).bind("keydown",n,function(e){return l(),s&&e.preventDefault(),!1})}),o.sel&&!o.hidekey&&i.attr("title")){var c=i.attr("title").split("[")[0]+" ("+r+")";Dn[r]=o.sel,i.parents("#main_menu").length||i.attr("title",c)}}}),Ue(t),e(".attr_changer, #image_url").bind("keydown","return",function(t){e(this).change(),t.preventDefault()}),e(window).bind("keydown","tab",function(e){"canvas"===V&&(e.preventDefault(),Bt())
|
|
23
|
+
}).bind("keydown","shift+tab",function(e){"canvas"===V&&(e.preventDefault(),Ot())}),e("#tool_zoom").dblclick(mt)},setTitles:function(){e.each(Dn,function(t,n){var o=e(n).parents("#main_menu").length;e(n).each(function(){var n;n=o?e(this).text().split(" [")[0]:this.title.split(" [")[0];var i="";e.each(t.split("/"),function(e,t){var n=t.split("+"),o="";n.length>1&&(o=n[0]+"+",t=n[1]),i+=(e?"/":"")+o+(uiStrings["key_"+t]||t)}),o?this.lastChild.textContent=n+" ["+i+"]":this.title=n+" ["+i+"]"})})},getButtonData:function(t){var n;return e.each(Ln,function(e,o){o.sel===t&&(n=o)}),n}},I.setAll(),u.ready(function(){var t,n=curConfig.initTool,o=e("#tools_left, #svg_editor .tools_flyout"),i=o.find("#tool_"+n),a=o.find("#"+n);t=i.length?i:a.length?a:e("#tool_select"),t.click().mouseup(),curConfig.wireframe&&e("#tool_wireframe").click(),curConfig.showlayers&&Tn(),e("#rulers").toggle(!!curConfig.showRulers),curConfig.showRulers&&(e("#show_rulers")[0].checked=!0),curConfig.baseUnit&&e("#base_unit").val(curConfig.baseUnit),curConfig.gridSnapping&&(e("#grid_snapping_on")[0].checked=!0),curConfig.snappingStep&&e("#grid_snapping_step").val(curConfig.snappingStep),curConfig.gridColor&&e("#grid_color").val(curConfig.gridColor)}),e("#rect_rx").SpinButton({min:0,max:1e3,callback:Ke}),e("#stroke_width").SpinButton({min:0,max:99,smallStep:.1,callback:Je}),e("#angle").SpinButton({min:-180,max:180,step:5,callback:$e}),e("#font_size").SpinButton({min:.001,stepfunc:C,callback:Ye}),e("#group_opacity").SpinButton({min:0,max:100,step:5,callback:et}),e("#blur").SpinButton({min:0,max:10,step:.1,callback:tt}),e("#zoom").SpinButton({min:.001,max:1e4,step:50,stepfunc:x,callback:D}).val(100*d.getZoom()),e("#workarea").contextMenu({menu:"cmenu_canvas",inSpeed:0},function(e,t,n){switch(e){case"interactivity":case"editBindOfTags":break;case"delete":yt();break;case"deselect":var o=d.getMode();d.clearSelection(),d.setMode(o);break;case"cut":bt();break;case"copy":Ct();break;case"paste":d.pasteElements();break;case"paste_in_place":d.pasteElements("in_place");break;case"group":case"group_elements":d.groupSelectedElements();break;case"ungroup":d.ungroupSelectedElement();break;case"move_front":kt();break;case"move_up":Et("Up");break;case"move_down":Et("Down");break;case"move_back":St();break;default:svgedit.contextmenu&&svgedit.contextmenu.hasCustomHandler(e)&&svgedit.contextmenu.getCustomHandler(e).call()}d.clipBoard.length&&z.enableContextMenuItems("#paste,#paste_in_place")});var Nn=function(e,t,n){switch(e){case"dupe":w();break;case"delete":_();break;case"merge_down":y();break;case"merge_all":d.mergeAllLayers(),ye(),se()}};if(e("#layerlist").contextMenu({menu:"cmenu_layers",inSpeed:0},Nn),e("#layer_moreopts").contextMenu({menu:"cmenu_layers",inSpeed:0,allowLeft:!0},Nn),e(".contextMenu li").mousedown(function(e){e.preventDefault()}),e("#cmenu_canvas li").disableContextMenu(),z.enableContextMenuItems("#delete,#deselect,#cut,#copy"),window.addEventListener("beforeunload",function(e){if(0===R.getUndoStackSize()&&(u.showSaveWarning=!1),!curConfig.no_save_warning&&u.showSaveWarning)return e.returnValue=uiStrings.notification.unsavedChanges,uiStrings.notification.unsavedChanges},!1),u.openPrep=function(t){e("#main_menu").hide(),0===R.getUndoStackSize()?t(!0):e.confirm(uiStrings.notification.QwantToOpen,t)},window.FileReader){var Bn=function(t){e.process_cancel(uiStrings.notification.loadingImage),t.stopPropagation(),t.preventDefault(),e("#workarea").removeAttr("style"),e("#main_menu").hide();var n,o="drop"==t.type?t.dataTransfer.files[0]:this.files[0];o?-1!=o.type.indexOf("image")&&(-1!=o.type.indexOf("svg")?(n=new FileReader,n.onloadend=function(t){d.importSvgString(t.target.result,!0),e("#dialog_box").hide()},n.readAsText(o)):(n=new FileReader,n.onloadend=function(t){var n=function(n,o){var i=d.addSvgElementFromJson({element:"image",attr:{x:0,y:0,width:n,height:o,id:d.getNextId(),style:"pointer-events:inherit"}});d.setHref(i,t.target.result),d.selectOnly([i]),d.alignSelectedElements("m","page"),d.alignSelectedElements("c","page"),ye(),e("#dialog_box").hide()},o=100,i=100,a=new Image;a.src=t.target.result,a.style.opacity=0,a.onload=function(){o=a.offsetWidth,i=a.offsetHeight,n(o,i)}},n.readAsDataURL(o))):e("#dialog_box").hide()};G[0].addEventListener("dragenter",k,!1),G[0].addEventListener("dragover",S,!1),G[0].addEventListener("dragleave",E,!1),G[0].addEventListener("drop",Bn,!1);var On=e('<input type="file">').change(function(){var t=this;u.openPrep(function(n){if(n&&(d.clear(),1===t.files.length)){e.process_cancel(uiStrings.notification.loadingImage);var o=new FileReader;o.onloadend=function(e){c(e.target.result),me()},o.readAsText(t.files[0])}})});e("#tool_open").show().prepend(On);var Un=e('<input type="file">').change(Bn);e("#tool_import").show().prepend(Un)}me(!0),e(function(){window.svgCanvas=d,d.ready=u.ready,d.setSpecialsIds(g,v)}),u.setLang=function(t,n){if(u.langChanged=!0,e.pref("lang",t),e("#lang_select").val(t),n){var o=e("#layerlist tr.layersel td.layername").text(),i=o==uiStrings.common.layer+" 1";if(e.extend(uiStrings,n),d.setUiStrings(n),I.setTitles(),i&&(d.renameCurrentLayer(uiStrings.common.layer+" 1"),se()),He.length)for(;He.length;){var a=He.shift();a.langReady({lang:t,uiStrings:uiStrings})}else d.runExtensions("langReady",{lang:t,uiStrings:uiStrings});d.runExtensions("langChanged",t),Be();var r={"#stroke_color":"#tool_stroke .icon_label, #tool_stroke .color_block","#fill_color":"#tool_fill label, #tool_fill .color_block","#linejoin_miter":"#cur_linejoin","#linecap_butt":"#cur_linecap"};e.each(r,function(t,n){e(n).attr("title",e(t)[0].title)}),e("#multiselected_panel div[id^=tool_align]").each(function(){e("#tool_pos"+this.id.substr(10))[0].title=this.title})}},d&&d.setColor("fill","#FFFFFF"),h.takePil()&&(A(),T(function(){u.currentExtensionsInteractivityType=d.getExtensionMember("getClassId"),u.currentExtensionsPrefixIdType=d.getExtensionMember("getPrefixId")}))},u.ready=function(e){isReady?e():callbacks.push(e)},u.runCallbacks=function(){e.each(callbacks,function(){this()}),isReady=!0},u.loadFromString=function(e){u.ready(function(){c(e)})},u.disableUI=function(e){},u.loadFromURL=function(t,n){n||(n={});var o=n.cache,i=n.callback;u.ready(function(){e.ajax({url:t,dataType:"text",cache:!!o,beforeSend:function(){e.process_cancel(uiStrings.notification.loadingImage)},success:function(e){c(e,i)},error:function(t,n,o){404!=t.status&&t.responseText?c(t.responseText,i):e.alert(uiStrings.notification.URLloadFail+": \n"+o,i)},complete:function(){e("#dialog_box").hide()}})})},u.loadFromDataURI=function(e){u.ready(function(){var t=!1,n=e.match(/^data:image\/svg\+xml;base64,/);n?t=!0:n=e.match(/^data:image\/svg\+xml(?:;(?:utf8)?)?,/),n&&(n=n[0]);var o=e.slice(n.length);c(t?h.decode64(o):decodeURIComponent(o))})},u.addExtension=function(){var e=arguments;d&&(d.addExtension.apply(this,e),u&&u.extensionLoadedCallback&&u.extensionLoadedCallback(e[0],e))},u}(jQuery)}};
|