@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,13 @@
|
|
|
1
|
+
/*! @svgdotjs/svg.js v3.1.0 MIT*/;
|
|
2
|
+
/*!
|
|
3
|
+
* @svgdotjs/svg.js - A lightweight library for manipulating and animating SVG.
|
|
4
|
+
* @version 3.1.0
|
|
5
|
+
* https://svgjs.dev/
|
|
6
|
+
*
|
|
7
|
+
* @copyright Wout Fierens <wout@mick-wout.com>
|
|
8
|
+
* @license MIT
|
|
9
|
+
*
|
|
10
|
+
* BUILT: Mon Jun 14 2021 00:55:04 GMT+0200 (Mitteleuropäische Sommerzeit)
|
|
11
|
+
*/
|
|
12
|
+
var SVG=function(){"use strict";const t={},e=[];function n(e,i){if(Array.isArray(e))for(const t of e)n(t,i);else if("object"!=typeof e)r(Object.getOwnPropertyNames(i)),t[e]=Object.assign(t[e]||{},i);else for(const t in e)n(t,e[t])}function i(e){return t[e]||{}}function r(t){e.push(...t)}function s(t,e){let n;const i=t.length,r=[];for(n=0;n<i;n++)r.push(e(t[n]));return r}function o(t,e){let n;const i=t.length,r=[];for(n=0;n<i;n++)e(t[n])&&r.push(t[n]);return r}function h(t){return t%360*Math.PI/180}function u(t){return t.toLowerCase().replace(/-(.)/g,(function(t,e){return e.toUpperCase()}))}function a(t){return t.replace(/([A-Z])/g,(function(t,e){return"-"+e.toLowerCase()}))}function l(t){return t.charAt(0).toUpperCase()+t.slice(1)}function c(t,e,n,i){return null!=e&&null!=n||(i=i||t.bbox(),null==e?e=i.width/i.height*n:null==n&&(n=i.height/i.width*e)),{width:e,height:n}}function f(t,e){const n=t.origin;let i=null!=t.ox?t.ox:null!=t.originX?t.originX:"center",r=null!=t.oy?t.oy:null!=t.originY?t.originY:"center";null!=n&&([i,r]=Array.isArray(n)?n:"object"==typeof n?[n.x,n.y]:[n,n]);const s="string"==typeof i,o="string"==typeof r;if(s||o){const{height:t,width:n,x:h,y:u}=e.bbox();s&&(i=i.includes("left")?h:i.includes("right")?h+n:h+n/2),o&&(r=r.includes("top")?u:r.includes("bottom")?u+t:u+t/2)}return[i,r]}var d={__proto__:null,map:s,filter:o,radians:h,degrees:function(t){return 180*t/Math.PI%360},camelCase:u,unCamelCase:a,capitalize:l,proportionalSize:c,getOrigin:f};const m="http://www.w3.org/2000/svg",p="http://www.w3.org/1999/xhtml",y="http://www.w3.org/2000/xmlns/",w="http://www.w3.org/1999/xlink",_="http://svgjs.dev/svgjs";var g={__proto__:null,svg:m,html:p,xmlns:y,xlink:w,svgjs:_};const x={window:"undefined"==typeof window?null:window,document:"undefined"==typeof document?null:document};function b(t=null,e=null){x.window=t,x.document=e}const v={};function M(){v.window=x.window,v.document=x.document}function O(){x.window=v.window,x.document=v.document}class k{}const T={},C="___SYMBOL___ROOT___";function N(t,e=m){return x.document.createElementNS(e,t)}function S(t,e=!1){if(t instanceof k)return t;if("object"==typeof t)return D(t);if(null==t)return new T[C];if("string"==typeof t&&"<"!==t.charAt(0))return D(x.document.querySelector(t));const n=e?x.document.createElement("div"):N("svg");return n.innerHTML=t,t=D(n.firstChild),n.removeChild(n.firstChild),t}function E(t,e){return e instanceof x.window.Node?e:N(t)}function j(t){if(!t)return null;if(t.instance instanceof k)return t.instance;if("#document-fragment"===t.nodeName)return new T.Fragment(t);let e=l(t.nodeName||"Dom");return"LinearGradient"===e||"RadialGradient"===e?e="Gradient":T[e]||(e="Dom"),new T[e](t)}let D=j;function I(t,e=t.name,n=!1){return T[e]=t,n&&(T[C]=t),r(Object.getOwnPropertyNames(t.prototype)),t}function z(t){return T[t]}let R=1e3;function L(t){return"Svgjs"+l(t)+R++}function P(t){for(let e=t.children.length-1;e>=0;e--)P(t.children[e]);return t.id?(t.id=L(t.nodeName),t):t}function F(t,e){let n,i;for(i=(t=Array.isArray(t)?t:[t]).length-1;i>=0;i--)for(n in e)t[i].prototype[n]=e[n]}function q(t){return function(...e){const n=e[e.length-1];return!n||n.constructor!==Object||n instanceof Array?t.apply(this,e):t.apply(this,e.slice(0,-1)).attr(n)}}n("Dom",{siblings:function(){return this.parent().children()},position:function(){return this.parent().index(this)},next:function(){return this.siblings()[this.position()+1]},prev:function(){return this.siblings()[this.position()-1]},forward:function(){const t=this.position();return this.parent().add(this.remove(),t+1),this},backward:function(){const t=this.position();return this.parent().add(this.remove(),t?t-1:0),this},front:function(){return this.parent().add(this.remove()),this},back:function(){return this.parent().add(this.remove(),0),this},before:function(t){(t=S(t)).remove();const e=this.position();return this.parent().add(t,e),this},after:function(t){(t=S(t)).remove();const e=this.position();return this.parent().add(t,e+1),this},insertBefore:function(t){return(t=S(t)).before(this),this},insertAfter:function(t){return(t=S(t)).after(this),this}});const X=/^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i,Y=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,B=/rgb\((\d+),(\d+),(\d+)\)/,H=/(#[a-z_][a-z0-9\-_]*)/i,V=/\)\s*,?\s*/,$=/\s/g,U=/^#[a-f0-9]{3}$|^#[a-f0-9]{6}$/i,W=/^rgb\(/,Q=/^(\s+)?$/,J=/^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,Z=/\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i,K=/[\s,]+/,tt=/[MLHVCSQTAZ]/i;var et={__proto__:null,numberAndUnit:X,hex:Y,rgb:B,reference:H,transforms:V,whitespace:$,isHex:U,isRgb:W,isBlank:Q,isNumber:J,isImage:Z,delimiter:K,isPathLetter:tt};function nt(t){const e=Math.round(t),n=Math.max(0,Math.min(255,e)).toString(16);return 1===n.length?"0"+n:n}function it(t,e){for(let n=e.length;n--;)if(null==t[e[n]])return!1;return!0}function rt(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+(e-t)*(2/3-n)*6:t}n("Dom",{classes:function(){const t=this.attr("class");return null==t?[]:t.trim().split(K)},hasClass:function(t){return-1!==this.classes().indexOf(t)},addClass:function(t){if(!this.hasClass(t)){const e=this.classes();e.push(t),this.attr("class",e.join(" "))}return this},removeClass:function(t){return this.hasClass(t)&&this.attr("class",this.classes().filter((function(e){return e!==t})).join(" ")),this},toggleClass:function(t){return this.hasClass(t)?this.removeClass(t):this.addClass(t)}}),n("Dom",{css:function(t,e){const n={};if(0===arguments.length)return this.node.style.cssText.split(/\s*;\s*/).filter((function(t){return!!t.length})).forEach((function(t){const e=t.split(/\s*:\s*/);n[e[0]]=e[1]})),n;if(arguments.length<2){if(Array.isArray(t)){for(const e of t){const t=u(e);n[t]=this.node.style[t]}return n}if("string"==typeof t)return this.node.style[u(t)];if("object"==typeof t)for(const e in t)this.node.style[u(e)]=null==t[e]||Q.test(t[e])?"":t[e]}return 2===arguments.length&&(this.node.style[u(t)]=null==e||Q.test(e)?"":e),this},show:function(){return this.css("display","")},hide:function(){return this.css("display","none")},visible:function(){return"none"!==this.css("display")}}),n("Dom",{data:function(t,e,n){if(null==t)return this.data(s(o(this.node.attributes,(t=>0===t.nodeName.indexOf("data-"))),(t=>t.nodeName.slice(5))));if(t instanceof Array){const e={};for(const n of t)e[n]=this.data(n);return e}if("object"==typeof t)for(e in t)this.data(e,t[e]);else if(arguments.length<2)try{return JSON.parse(this.attr("data-"+t))}catch(e){return this.attr("data-"+t)}else this.attr("data-"+t,null===e?null:!0===n||"string"==typeof e||"number"==typeof e?e:JSON.stringify(e));return this}}),n("Dom",{remember:function(t,e){if("object"==typeof arguments[0])for(const e in t)this.remember(e,t[e]);else{if(1===arguments.length)return this.memory()[t];this.memory()[t]=e}return this},forget:function(){if(0===arguments.length)this._memory={};else for(let t=arguments.length-1;t>=0;t--)delete this.memory()[arguments[t]];return this},memory:function(){return this._memory=this._memory||{}}});class st{constructor(...t){this.init(...t)}static isColor(t){return t&&(t instanceof st||this.isRgb(t)||this.test(t))}static isRgb(t){return t&&"number"==typeof t.r&&"number"==typeof t.g&&"number"==typeof t.b}static random(t="vibrant",e,n){const{random:i,round:r,sin:s,PI:o}=Math;if("vibrant"===t){const t=24*i()+57,e=38*i()+45,n=360*i();return new st(t,e,n,"lch")}if("sine"===t){const t=r(80*s(2*o*(e=null==e?i():e)/.5+.01)+150),n=r(50*s(2*o*e/.5+4.6)+200),h=r(100*s(2*o*e/.5+2.3)+150);return new st(t,n,h)}if("pastel"===t){const t=8*i()+86,e=17*i()+9,n=360*i();return new st(t,e,n,"lch")}if("dark"===t){const t=10+10*i(),e=50*i()+86,n=360*i();return new st(t,e,n,"lch")}if("rgb"===t){const t=255*i(),e=255*i(),n=255*i();return new st(t,e,n)}if("lab"===t){const t=100*i(),e=256*i()-128,n=256*i()-128;return new st(t,e,n,"lab")}if("grey"===t){const t=255*i();return new st(t,t,t)}throw new Error("Unsupported random color mode")}static test(t){return"string"==typeof t&&(U.test(t)||W.test(t))}cmyk(){const{_a:t,_b:e,_c:n}=this.rgb(),[i,r,s]=[t,e,n].map((t=>t/255)),o=Math.min(1-i,1-r,1-s);if(1===o)return new st(0,0,0,1,"cmyk");return new st((1-i-o)/(1-o),(1-r-o)/(1-o),(1-s-o)/(1-o),o,"cmyk")}hsl(){const{_a:t,_b:e,_c:n}=this.rgb(),[i,r,s]=[t,e,n].map((t=>t/255)),o=Math.max(i,r,s),h=Math.min(i,r,s),u=(o+h)/2,a=o===h,l=o-h;return new st(360*(a?0:o===i?((r-s)/l+(r<s?6:0))/6:o===r?((s-i)/l+2)/6:o===s?((i-r)/l+4)/6:0),100*(a?0:u>.5?l/(2-o-h):l/(o+h)),100*u,"hsl")}init(t=0,e=0,n=0,i=0,r="rgb"){if(t=t||0,this.space)for(const t in this.space)delete this[this.space[t]];if("number"==typeof t)r="string"==typeof i?i:r,i="string"==typeof i?0:i,Object.assign(this,{_a:t,_b:e,_c:n,_d:i,space:r});else if(t instanceof Array)this.space=e||("string"==typeof t[3]?t[3]:t[4])||"rgb",Object.assign(this,{_a:t[0],_b:t[1],_c:t[2],_d:t[3]||0});else if(t instanceof Object){const n=function(t,e){const n=it(t,"rgb")?{_a:t.r,_b:t.g,_c:t.b,_d:0,space:"rgb"}:it(t,"xyz")?{_a:t.x,_b:t.y,_c:t.z,_d:0,space:"xyz"}:it(t,"hsl")?{_a:t.h,_b:t.s,_c:t.l,_d:0,space:"hsl"}:it(t,"lab")?{_a:t.l,_b:t.a,_c:t.b,_d:0,space:"lab"}:it(t,"lch")?{_a:t.l,_b:t.c,_c:t.h,_d:0,space:"lch"}:it(t,"cmyk")?{_a:t.c,_b:t.m,_c:t.y,_d:t.k,space:"cmyk"}:{_a:0,_b:0,_c:0,space:"rgb"};return n.space=e||n.space,n}(t,e);Object.assign(this,n)}else if("string"==typeof t)if(W.test(t)){const e=t.replace($,""),[n,i,r]=B.exec(e).slice(1,4).map((t=>parseInt(t)));Object.assign(this,{_a:n,_b:i,_c:r,_d:0,space:"rgb"})}else{if(!U.test(t))throw Error("Unsupported string format, can't construct Color");{const e=t=>parseInt(t,16),[,n,i,r]=Y.exec(function(t){return 4===t.length?["#",t.substring(1,2),t.substring(1,2),t.substring(2,3),t.substring(2,3),t.substring(3,4),t.substring(3,4)].join(""):t}(t)).map(e);Object.assign(this,{_a:n,_b:i,_c:r,_d:0,space:"rgb"})}}const{_a:s,_b:o,_c:h,_d:u}=this,a="rgb"===this.space?{r:s,g:o,b:h}:"xyz"===this.space?{x:s,y:o,z:h}:"hsl"===this.space?{h:s,s:o,l:h}:"lab"===this.space?{l:s,a:o,b:h}:"lch"===this.space?{l:s,c:o,h:h}:"cmyk"===this.space?{c:s,m:o,y:h,k:u}:{};Object.assign(this,a)}lab(){const{x:t,y:e,z:n}=this.xyz();return new st(116*e-16,500*(t-e),200*(e-n),"lab")}lch(){const{l:t,a:e,b:n}=this.lab(),i=Math.sqrt(e**2+n**2);let r=180*Math.atan2(n,e)/Math.PI;r<0&&(r*=-1,r=360-r);return new st(t,i,r,"lch")}rgb(){if("rgb"===this.space)return this;if("lab"===(t=this.space)||"xyz"===t||"lch"===t){let{x:t,y:e,z:n}=this;if("lab"===this.space||"lch"===this.space){let{l:i,a:r,b:s}=this;if("lch"===this.space){const{c:t,h:e}=this,n=Math.PI/180;r=t*Math.cos(n*e),s=t*Math.sin(n*e)}const o=(i+16)/116,h=r/500+o,u=o-s/200,a=16/116,l=.008856,c=7.787;t=.95047*(h**3>l?h**3:(h-a)/c),e=1*(o**3>l?o**3:(o-a)/c),n=1.08883*(u**3>l?u**3:(u-a)/c)}const i=3.2406*t+-1.5372*e+-.4986*n,r=-.9689*t+1.8758*e+.0415*n,s=.0557*t+-.204*e+1.057*n,o=Math.pow,h=.0031308,u=i>h?1.055*o(i,1/2.4)-.055:12.92*i,a=r>h?1.055*o(r,1/2.4)-.055:12.92*r,l=s>h?1.055*o(s,1/2.4)-.055:12.92*s;return new st(255*u,255*a,255*l)}if("hsl"===this.space){let{h:t,s:e,l:n}=this;if(t/=360,e/=100,n/=100,0===e){n*=255;return new st(n,n,n)}const i=n<.5?n*(1+e):n+e-n*e,r=2*n-i,s=255*rt(r,i,t+1/3),o=255*rt(r,i,t),h=255*rt(r,i,t-1/3);return new st(s,o,h)}if("cmyk"===this.space){const{c:t,m:e,y:n,k:i}=this,r=255*(1-Math.min(1,t*(1-i)+i)),s=255*(1-Math.min(1,e*(1-i)+i)),o=255*(1-Math.min(1,n*(1-i)+i));return new st(r,s,o)}return this;var t}toArray(){const{_a:t,_b:e,_c:n,_d:i,space:r}=this;return[t,e,n,i,r]}toHex(){const[t,e,n]=this._clamped().map(nt);return`#${t}${e}${n}`}toRgb(){const[t,e,n]=this._clamped();return`rgb(${t},${e},${n})`}toString(){return this.toHex()}xyz(){const{_a:t,_b:e,_c:n}=this.rgb(),[i,r,s]=[t,e,n].map((t=>t/255)),o=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92,h=r>.04045?Math.pow((r+.055)/1.055,2.4):r/12.92,u=s>.04045?Math.pow((s+.055)/1.055,2.4):s/12.92,a=(.4124*o+.3576*h+.1805*u)/.95047,l=(.2126*o+.7152*h+.0722*u)/1,c=(.0193*o+.1192*h+.9505*u)/1.08883,f=a>.008856?Math.pow(a,1/3):7.787*a+16/116,d=l>.008856?Math.pow(l,1/3):7.787*l+16/116,m=c>.008856?Math.pow(c,1/3):7.787*c+16/116;return new st(f,d,m,"xyz")}_clamped(){const{_a:t,_b:e,_c:n}=this.rgb(),{max:i,min:r,round:s}=Math;return[t,e,n].map((t=>i(0,r(s(t),255))))}}class ot{constructor(...t){this.init(...t)}clone(){return new ot(this)}init(t,e){const n=0,i=0,r=Array.isArray(t)?{x:t[0],y:t[1]}:"object"==typeof t?{x:t.x,y:t.y}:{x:t,y:e};return this.x=null==r.x?n:r.x,this.y=null==r.y?i:r.y,this}toArray(){return[this.x,this.y]}transform(t){return this.clone().transformO(t)}transformO(t){ut.isMatrixLike(t)||(t=new ut(t));const{x:e,y:n}=this;return this.x=t.a*e+t.c*n+t.e,this.y=t.b*e+t.d*n+t.f,this}}function ht(t,e,n){return Math.abs(e-t)<(n||1e-6)}class ut{constructor(...t){this.init(...t)}static formatTransforms(t){const e="both"===t.flip||!0===t.flip,n=t.flip&&(e||"x"===t.flip)?-1:1,i=t.flip&&(e||"y"===t.flip)?-1:1,r=t.skew&&t.skew.length?t.skew[0]:isFinite(t.skew)?t.skew:isFinite(t.skewX)?t.skewX:0,s=t.skew&&t.skew.length?t.skew[1]:isFinite(t.skew)?t.skew:isFinite(t.skewY)?t.skewY:0,o=t.scale&&t.scale.length?t.scale[0]*n:isFinite(t.scale)?t.scale*n:isFinite(t.scaleX)?t.scaleX*n:n,h=t.scale&&t.scale.length?t.scale[1]*i:isFinite(t.scale)?t.scale*i:isFinite(t.scaleY)?t.scaleY*i:i,u=t.shear||0,a=t.rotate||t.theta||0,l=new ot(t.origin||t.around||t.ox||t.originX,t.oy||t.originY),c=l.x,f=l.y,d=new ot(t.position||t.px||t.positionX||NaN,t.py||t.positionY||NaN),m=d.x,p=d.y,y=new ot(t.translate||t.tx||t.translateX,t.ty||t.translateY),w=y.x,_=y.y,g=new ot(t.relative||t.rx||t.relativeX,t.ry||t.relativeY);return{scaleX:o,scaleY:h,skewX:r,skewY:s,shear:u,theta:a,rx:g.x,ry:g.y,tx:w,ty:_,ox:c,oy:f,px:m,py:p}}static fromArray(t){return{a:t[0],b:t[1],c:t[2],d:t[3],e:t[4],f:t[5]}}static isMatrixLike(t){return null!=t.a||null!=t.b||null!=t.c||null!=t.d||null!=t.e||null!=t.f}static matrixMultiply(t,e,n){const i=t.a*e.a+t.c*e.b,r=t.b*e.a+t.d*e.b,s=t.a*e.c+t.c*e.d,o=t.b*e.c+t.d*e.d,h=t.e+t.a*e.e+t.c*e.f,u=t.f+t.b*e.e+t.d*e.f;return n.a=i,n.b=r,n.c=s,n.d=o,n.e=h,n.f=u,n}around(t,e,n){return this.clone().aroundO(t,e,n)}aroundO(t,e,n){const i=t||0,r=e||0;return this.translateO(-i,-r).lmultiplyO(n).translateO(i,r)}clone(){return new ut(this)}decompose(t=0,e=0){const n=this.a,i=this.b,r=this.c,s=this.d,o=this.e,h=this.f,u=n*s-i*r,a=u>0?1:-1,l=a*Math.sqrt(n*n+i*i),c=Math.atan2(a*i,a*n),f=180/Math.PI*c,d=Math.cos(c),m=Math.sin(c),p=(n*r+i*s)/u,y=r*l/(p*n-i)||s*l/(p*i+n);return{scaleX:l,scaleY:y,shear:p,rotate:f,translateX:o-t+t*d*l+e*(p*d*l-m*y),translateY:h-e+t*m*l+e*(p*m*l+d*y),originX:t,originY:e,a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}equals(t){if(t===this)return!0;const e=new ut(t);return ht(this.a,e.a)&&ht(this.b,e.b)&&ht(this.c,e.c)&&ht(this.d,e.d)&&ht(this.e,e.e)&&ht(this.f,e.f)}flip(t,e){return this.clone().flipO(t,e)}flipO(t,e){return"x"===t?this.scaleO(-1,1,e,0):"y"===t?this.scaleO(1,-1,0,e):this.scaleO(-1,-1,t,e||t)}init(t){const e=ut.fromArray([1,0,0,1,0,0]);return t=t instanceof Element?t.matrixify():"string"==typeof t?ut.fromArray(t.split(K).map(parseFloat)):Array.isArray(t)?ut.fromArray(t):"object"==typeof t&&ut.isMatrixLike(t)?t:"object"==typeof t?(new ut).transform(t):6===arguments.length?ut.fromArray([].slice.call(arguments)):e,this.a=null!=t.a?t.a:e.a,this.b=null!=t.b?t.b:e.b,this.c=null!=t.c?t.c:e.c,this.d=null!=t.d?t.d:e.d,this.e=null!=t.e?t.e:e.e,this.f=null!=t.f?t.f:e.f,this}inverse(){return this.clone().inverseO()}inverseO(){const t=this.a,e=this.b,n=this.c,i=this.d,r=this.e,s=this.f,o=t*i-e*n;if(!o)throw new Error("Cannot invert "+this);const h=i/o,u=-e/o,a=-n/o,l=t/o,c=-(h*r+a*s),f=-(u*r+l*s);return this.a=h,this.b=u,this.c=a,this.d=l,this.e=c,this.f=f,this}lmultiply(t){return this.clone().lmultiplyO(t)}lmultiplyO(t){const e=t instanceof ut?t:new ut(t);return ut.matrixMultiply(e,this,this)}multiply(t){return this.clone().multiplyO(t)}multiplyO(t){const e=t instanceof ut?t:new ut(t);return ut.matrixMultiply(this,e,this)}rotate(t,e,n){return this.clone().rotateO(t,e,n)}rotateO(t,e=0,n=0){t=h(t);const i=Math.cos(t),r=Math.sin(t),{a:s,b:o,c:u,d:a,e:l,f:c}=this;return this.a=s*i-o*r,this.b=o*i+s*r,this.c=u*i-a*r,this.d=a*i+u*r,this.e=l*i-c*r+n*r-e*i+e,this.f=c*i+l*r-e*r-n*i+n,this}scale(t,e,n,i){return this.clone().scaleO(...arguments)}scaleO(t,e=t,n=0,i=0){3===arguments.length&&(i=n,n=e,e=t);const{a:r,b:s,c:o,d:h,e:u,f:a}=this;return this.a=r*t,this.b=s*e,this.c=o*t,this.d=h*e,this.e=u*t-n*t+n,this.f=a*e-i*e+i,this}shear(t,e,n){return this.clone().shearO(t,e,n)}shearO(t,e=0,n=0){const{a:i,b:r,c:s,d:o,e:h,f:u}=this;return this.a=i+r*t,this.c=s+o*t,this.e=h+u*t-n*t,this}skew(t,e,n,i){return this.clone().skewO(...arguments)}skewO(t,e=t,n=0,i=0){3===arguments.length&&(i=n,n=e,e=t),t=h(t),e=h(e);const r=Math.tan(t),s=Math.tan(e),{a:o,b:u,c:a,d:l,e:c,f:f}=this;return this.a=o+u*r,this.b=u+o*s,this.c=a+l*r,this.d=l+a*s,this.e=c+f*r-i*r,this.f=f+c*s-n*s,this}skewX(t,e,n){return this.skew(t,0,e,n)}skewY(t,e,n){return this.skew(0,t,e,n)}toArray(){return[this.a,this.b,this.c,this.d,this.e,this.f]}toString(){return"matrix("+this.a+","+this.b+","+this.c+","+this.d+","+this.e+","+this.f+")"}transform(t){if(ut.isMatrixLike(t)){return new ut(t).multiplyO(this)}const e=ut.formatTransforms(t),{x:n,y:i}=new ot(e.ox,e.oy).transform(this),r=(new ut).translateO(e.rx,e.ry).lmultiplyO(this).translateO(-n,-i).scaleO(e.scaleX,e.scaleY).skewO(e.skewX,e.skewY).shearO(e.shear).rotateO(e.theta).translateO(n,i);if(isFinite(e.px)||isFinite(e.py)){const t=new ot(n,i).transform(r),s=isFinite(e.px)?e.px-t.x:0,o=isFinite(e.py)?e.py-t.y:0;r.translateO(s,o)}return r.translateO(e.tx,e.ty),r}translate(t,e){return this.clone().translateO(t,e)}translateO(t,e){return this.e+=t||0,this.f+=e||0,this}valueOf(){return{a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}}function at(){if(!at.nodes){const t=S().size(2,0);t.node.style.cssText=["opacity: 0","position: absolute","left: -100%","top: -100%","overflow: hidden"].join(";"),t.attr("focusable","false"),t.attr("aria-hidden","true");const e=t.path().node;at.nodes={svg:t,path:e}}if(!at.nodes.svg.node.parentNode){const t=x.document.body||x.document.documentElement;at.nodes.svg.addTo(t)}return at.nodes}function lt(t){return!(t.width||t.height||t.x||t.y)}I(ut,"Matrix");class ct{constructor(...t){this.init(...t)}addOffset(){return this.x+=x.window.pageXOffset,this.y+=x.window.pageYOffset,new ct(this)}init(t){return t="string"==typeof t?t.split(K).map(parseFloat):Array.isArray(t)?t:"object"==typeof t?[null!=t.left?t.left:t.x,null!=t.top?t.top:t.y,t.width,t.height]:4===arguments.length?[].slice.call(arguments):[0,0,0,0],this.x=t[0]||0,this.y=t[1]||0,this.width=this.w=t[2]||0,this.height=this.h=t[3]||0,this.x2=this.x+this.w,this.y2=this.y+this.h,this.cx=this.x+this.w/2,this.cy=this.y+this.h/2,this}isNulled(){return lt(this)}merge(t){const e=Math.min(this.x,t.x),n=Math.min(this.y,t.y),i=Math.max(this.x+this.width,t.x+t.width)-e,r=Math.max(this.y+this.height,t.y+t.height)-n;return new ct(e,n,i,r)}toArray(){return[this.x,this.y,this.width,this.height]}toString(){return this.x+" "+this.y+" "+this.width+" "+this.height}transform(t){t instanceof ut||(t=new ut(t));let e=1/0,n=-1/0,i=1/0,r=-1/0;return[new ot(this.x,this.y),new ot(this.x2,this.y),new ot(this.x,this.y2),new ot(this.x2,this.y2)].forEach((function(s){s=s.transform(t),e=Math.min(e,s.x),n=Math.max(n,s.x),i=Math.min(i,s.y),r=Math.max(r,s.y)})),new ct(e,i,n-e,r-i)}}function ft(t,e,n){let i;try{if(i=e(t.node),lt(i)&&((r=t.node)!==x.document&&!(x.document.documentElement.contains||function(t){for(;t.parentNode;)t=t.parentNode;return t===x.document}).call(x.document.documentElement,r)))throw new Error("Element not in the dom")}catch(e){i=n(t)}var r;return i}n({viewbox:{viewbox(t,e,n,i){return null==t?new ct(this.attr("viewBox")):this.attr("viewBox",new ct(t,e,n,i))},zoom(t,e){let{width:n,height:i}=this.attr(["width","height"]);if((n||i)&&"string"!=typeof n&&"string"!=typeof i||(n=this.node.clientWidth,i=this.node.clientHeight),!n||!i)throw new Error("Impossible to get absolute width and height. Please provide an absolute width and height attribute on the zooming element");const r=this.viewbox(),s=n/r.width,o=i/r.height,h=Math.min(s,o);if(null==t)return h;let u=h/t;u===1/0&&(u=Number.MAX_SAFE_INTEGER/100),e=e||new ot(n/2/s+r.x,i/2/o+r.y);const a=new ct(r).transform(new ut({scale:u,origin:e}));return this.viewbox(a)}}}),I(ct,"Box");class dt extends Array{constructor(t=[],...e){if(super(t,...e),"number"==typeof t)return this;this.length=0,this.push(...t)}}F([dt],{each(t,...e){return"function"==typeof t?this.map(((e,n,i)=>t.call(e,e,n,i))):this.map((n=>n[t](...e)))},toArray(){return Array.prototype.concat.apply([],this)}});const mt=["toArray","constructor","each"];function pt(t,e){return new dt(s((e||x.document).querySelectorAll(t),(function(t){return j(t)})))}dt.extend=function(t){t=t.reduce(((t,e)=>(mt.includes(e)||"_"===e[0]||(t[e]=function(...t){return this.each(e,...t)}),t)),{}),F([dt],t)};let yt=0;const wt={};function _t(t){let e=t.getEventHolder();return e===x.window&&(e=wt),e.events||(e.events={}),e.events}function gt(t){return t.getEventTarget()}function xt(t){let e=t.getEventHolder();e===x.window&&(e=wt),e.events&&(e.events={})}function bt(t,e,n,i,r){const s=n.bind(i||t),o=S(t),h=_t(o),u=gt(o);e=Array.isArray(e)?e:e.split(K),n._svgjsListenerId||(n._svgjsListenerId=++yt),e.forEach((function(t){const e=t.split(".")[0],i=t.split(".")[1]||"*";h[e]=h[e]||{},h[e][i]=h[e][i]||{},h[e][i][n._svgjsListenerId]=s,u.addEventListener(e,s,r||!1)}))}function vt(t,e,n,i){const r=S(t),s=_t(r),o=gt(r);("function"!=typeof n||(n=n._svgjsListenerId))&&(e=Array.isArray(e)?e:(e||"").split(K)).forEach((function(t){const e=t&&t.split(".")[0],h=t&&t.split(".")[1];let u,a;if(n)s[e]&&s[e][h||"*"]&&(o.removeEventListener(e,s[e][h||"*"][n],i||!1),delete s[e][h||"*"][n]);else if(e&&h){if(s[e]&&s[e][h]){for(a in s[e][h])vt(o,[e,h].join("."),a);delete s[e][h]}}else if(h)for(t in s)for(u in s[t])h===u&&vt(o,[t,h].join("."));else if(e){if(s[e]){for(u in s[e])vt(o,[e,u].join("."));delete s[e]}}else{for(t in s)vt(o,t);xt(r)}}))}function Mt(t,e,n,i){const r=gt(t);return e instanceof x.window.Event||(e=new x.window.CustomEvent(e,{detail:n,cancelable:!0,...i})),r.dispatchEvent(e),e}class Ot extends k{addEventListener(){}dispatch(t,e,n){return Mt(this,t,e,n)}dispatchEvent(t){const e=this.getEventHolder().events;if(!e)return!0;const n=e[t.type];for(const e in n)for(const i in n[e])n[e][i](t);return!t.defaultPrevented}fire(t,e,n){return this.dispatch(t,e,n),this}getEventHolder(){return this}getEventTarget(){return this}off(t,e){return vt(this,t,e),this}on(t,e,n,i){return bt(this,t,e,n,i),this}removeEventListener(){}}function At(){}I(Ot,"EventTarget");const kt={duration:400,ease:">",delay:0},Tt={"fill-opacity":1,"stroke-opacity":1,"stroke-width":0,"stroke-linejoin":"miter","stroke-linecap":"butt",fill:"#000000",stroke:"#000000",opacity:1,x:0,y:0,cx:0,cy:0,width:0,height:0,r:0,rx:0,ry:0,offset:0,"stop-opacity":1,"stop-color":"#000000","text-anchor":"start"};var Ct={__proto__:null,noop:At,timeline:kt,attrs:Tt};class Nt extends Array{constructor(...t){super(...t),this.init(...t)}clone(){return new this.constructor(this)}init(t){return"number"==typeof t||(this.length=0,this.push(...this.parse(t))),this}parse(t=[]){return t instanceof Array?t:t.trim().split(K).map(parseFloat)}toArray(){return Array.prototype.concat.apply([],this)}toSet(){return new Set(this)}toString(){return this.join(" ")}valueOf(){const t=[];return t.push(...this),t}}class St{constructor(...t){this.init(...t)}convert(t){return new St(this.value,t)}divide(t){return t=new St(t),new St(this/t,this.unit||t.unit)}init(t,e){return e=Array.isArray(t)?t[1]:e,t=Array.isArray(t)?t[0]:t,this.value=0,this.unit=e||"","number"==typeof t?this.value=isNaN(t)?0:isFinite(t)?t:t<0?-34e37:34e37:"string"==typeof t?(e=t.match(X))&&(this.value=parseFloat(e[1]),"%"===e[5]?this.value/=100:"s"===e[5]&&(this.value*=1e3),this.unit=e[5]):t instanceof St&&(this.value=t.valueOf(),this.unit=t.unit),this}minus(t){return t=new St(t),new St(this-t,this.unit||t.unit)}plus(t){return t=new St(t),new St(this+t,this.unit||t.unit)}times(t){return t=new St(t),new St(this*t,this.unit||t.unit)}toArray(){return[this.value,this.unit]}toJSON(){return this.toString()}toString(){return("%"===this.unit?~~(1e8*this.value)/1e6:"s"===this.unit?this.value/1e3:this.value)+this.unit}valueOf(){return this.value}}const Et=[];class Dom extends Ot{constructor(t,e){super(),this.node=t,this.type=t.nodeName,e&&t!==e&&this.attr(e)}add(t,e){return(t=S(t)).removeNamespace&&this.node instanceof x.window.SVGElement&&t.removeNamespace(),null==e?this.node.appendChild(t.node):t.node!==this.node.childNodes[e]&&this.node.insertBefore(t.node,this.node.childNodes[e]),this}addTo(t,e){return S(t).put(this,e)}children(){return new dt(s(this.node.children,(function(t){return j(t)})))}clear(){for(;this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);return this}clone(t=!0){return this.writeDataToDom(),new this.constructor(P(this.node.cloneNode(t)))}each(t,e){const n=this.children();let i,r;for(i=0,r=n.length;i<r;i++)t.apply(n[i],[i,n]),e&&n[i].each(t,e);return this}element(t,e){return this.put(new Dom(N(t),e))}first(){return j(this.node.firstChild)}get(t){return j(this.node.childNodes[t])}getEventHolder(){return this.node}getEventTarget(){return this.node}has(t){return this.index(t)>=0}html(t,e){return this.xml(t,e,p)}id(t){return void 0!==t||this.node.id||(this.node.id=L(this.type)),this.attr("id",t)}index(t){return[].slice.call(this.node.childNodes).indexOf(t.node)}last(){return j(this.node.lastChild)}matches(t){const e=this.node,n=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.oMatchesSelector||null;return n&&n.call(e,t)}parent(t){let e=this;if(!e.node.parentNode)return null;if(e=j(e.node.parentNode),!t)return e;do{if("string"==typeof t?e.matches(t):e instanceof t)return e}while(e=j(e.node.parentNode));return e}put(t,e){return t=S(t),this.add(t,e),t}putIn(t,e){return S(t).add(this,e)}remove(){return this.parent()&&this.parent().removeElement(this),this}removeElement(t){return this.node.removeChild(t.node),this}replace(t){return t=S(t),this.node.parentNode&&this.node.parentNode.replaceChild(t.node,this.node),t}round(t=2,e=null){const n=10**t,i=this.attr(e);for(const t in i)"number"==typeof i[t]&&(i[t]=Math.round(i[t]*n)/n);return this.attr(i),this}svg(t,e){return this.xml(t,e,m)}toString(){return this.id()}words(t){return this.node.textContent=t,this}wrap(t){const e=this.parent();if(!e)return this.addTo(t);const n=e.index(this);return e.put(t,n).put(this)}writeDataToDom(){return this.each((function(){this.writeDataToDom()})),this}xml(t,e,n){if("boolean"==typeof t&&(n=e,e=t,t=null),null==t||"function"==typeof t){e=null==e||e,this.writeDataToDom();let n=this;if(null!=t){if(n=j(n.node.cloneNode(!0)),e){const e=t(n);if(n=e||n,!1===e)return""}n.each((function(){const e=t(this),n=e||this;!1===e?this.remove():e&&this!==n&&this.replace(n)}),!0)}return e?n.node.outerHTML:n.node.innerHTML}e=null!=e&&e;const i=N("wrapper",n),r=x.document.createDocumentFragment();i.innerHTML=t;for(let t=i.children.length;t--;)r.appendChild(i.firstElementChild);const s=this.parent();return e?this.replace(r)&&s:this.add(r)}}F(Dom,{attr:function(t,e,n){if(null==t){t={},e=this.node.attributes;for(const n of e)t[n.nodeName]=J.test(n.nodeValue)?parseFloat(n.nodeValue):n.nodeValue;return t}if(t instanceof Array)return t.reduce(((t,e)=>(t[e]=this.attr(e),t)),{});if("object"==typeof t&&t.constructor===Object)for(e in t)this.attr(e,t[e]);else if(null===e)this.node.removeAttribute(t);else{if(null==e)return null==(e=this.node.getAttribute(t))?Tt[t]:J.test(e)?parseFloat(e):e;"number"==typeof(e=Et.reduce(((e,n)=>n(t,e,this)),e))?e=new St(e):st.isColor(e)?e=new st(e):e.constructor===Array&&(e=new Nt(e)),"leading"===t?this.leading&&this.leading(e):"string"==typeof n?this.node.setAttributeNS(n,t,e.toString()):this.node.setAttribute(t,e.toString()),!this.rebuild||"font-size"!==t&&"x"!==t||this.rebuild()}return this},find:function(t){return pt(t,this.node)},findOne:function(t){return j(this.node.querySelector(t))}}),I(Dom,"Dom");class Element extends Dom{constructor(t,e){super(t,e),this.dom={},this.node.instance=this,t.hasAttribute("svgjs:data")&&this.setData(JSON.parse(t.getAttribute("svgjs:data"))||{})}center(t,e){return this.cx(t).cy(e)}cx(t){return null==t?this.x()+this.width()/2:this.x(t-this.width()/2)}cy(t){return null==t?this.y()+this.height()/2:this.y(t-this.height()/2)}defs(){const t=this.root();return t&&t.defs()}dmove(t,e){return this.dx(t).dy(e)}dx(t=0){return this.x(new St(t).plus(this.x()))}dy(t=0){return this.y(new St(t).plus(this.y()))}getEventHolder(){return this}height(t){return this.attr("height",t)}move(t,e){return this.x(t).y(e)}parents(t=this.root()){t=S(t);const e=new dt;let n=this;for(;(n=n.parent())&&n.node!==x.document&&"#document-fragment"!==n.nodeName&&(e.push(n),n.node!==t.node););return e}reference(t){if(!(t=this.attr(t)))return null;const e=(t+"").match(H);return e?S(e[1]):null}root(){const t=this.parent(z(C));return t&&t.root()}setData(t){return this.dom=t,this}size(t,e){const n=c(this,t,e);return this.width(new St(n.width)).height(new St(n.height))}width(t){return this.attr("width",t)}writeDataToDom(){return this.node.removeAttribute("svgjs:data"),Object.keys(this.dom).length&&this.node.setAttribute("svgjs:data",JSON.stringify(this.dom)),super.writeDataToDom()}x(t){return this.attr("x",t)}y(t){return this.attr("y",t)}}F(Element,{bbox:function(){const t=ft(this,(t=>t.getBBox()),(t=>{try{const e=t.clone().addTo(at().svg).show(),n=e.node.getBBox();return e.remove(),n}catch(e){throw new Error(`Getting bbox of element "${t.node.nodeName}" is not possible: ${e.toString()}`)}}));return new ct(t)},rbox:function(t){const e=ft(this,(t=>t.getBoundingClientRect()),(t=>{throw new Error(`Getting rbox of element "${t.node.nodeName}" is not possible`)})),n=new ct(e);return t?n.transform(t.screenCTM().inverseO()):n.addOffset()},inside:function(t,e){const n=this.bbox();return t>n.x&&e>n.y&&t<n.x+n.width&&e<n.y+n.height},point:function(t,e){return new ot(t,e).transform(this.screenCTM().inverse())},ctm:function(){return new ut(this.node.getCTM())},screenCTM:function(){if("function"==typeof this.isRoot&&!this.isRoot()){const t=this.rect(1,1),e=t.node.getScreenCTM();return t.remove(),new ut(e)}return new ut(this.node.getScreenCTM())}}),I(Element,"Element");const jt={stroke:["color","width","opacity","linecap","linejoin","miterlimit","dasharray","dashoffset"],fill:["color","opacity","rule"],prefix:function(t,e){return"color"===e?t:t+"-"+e}};["fill","stroke"].forEach((function(t){const e={};let i;e[t]=function(e){if(void 0===e)return this.attr(t);if("string"==typeof e||e instanceof st||st.isRgb(e)||e instanceof Element)this.attr(t,e);else for(i=jt[t].length-1;i>=0;i--)null!=e[jt[t][i]]&&this.attr(jt.prefix(t,jt[t][i]),e[jt[t][i]]);return this},n(["Element","Runner"],e)})),n(["Element","Runner"],{matrix:function(t,e,n,i,r,s){return null==t?new ut(this):this.attr("transform",new ut(t,e,n,i,r,s))},rotate:function(t,e,n){return this.transform({rotate:t,ox:e,oy:n},!0)},skew:function(t,e,n,i){return 1===arguments.length||3===arguments.length?this.transform({skew:t,ox:e,oy:n},!0):this.transform({skew:[t,e],ox:n,oy:i},!0)},shear:function(t,e,n){return this.transform({shear:t,ox:e,oy:n},!0)},scale:function(t,e,n,i){return 1===arguments.length||3===arguments.length?this.transform({scale:t,ox:e,oy:n},!0):this.transform({scale:[t,e],ox:n,oy:i},!0)},translate:function(t,e){return this.transform({translate:[t,e]},!0)},relative:function(t,e){return this.transform({relative:[t,e]},!0)},flip:function(t="both",e="center"){return-1==="xybothtrue".indexOf(t)&&(e=t,t="both"),this.transform({flip:t,origin:e},!0)},opacity:function(t){return this.attr("opacity",t)}}),n("radius",{radius:function(t,e=t){return"radialGradient"===(this._element||this).type?this.attr("r",new St(t)):this.rx(t).ry(e)}}),n("Path",{length:function(){return this.node.getTotalLength()},pointAt:function(t){return new ot(this.node.getPointAtLength(t))}}),n(["Element","Runner"],{font:function(t,e){if("object"==typeof t){for(e in t)this.font(e,t[e]);return this}return"leading"===t?this.leading(e):"anchor"===t?this.attr("text-anchor",e):"size"===t||"family"===t||"weight"===t||"stretch"===t||"variant"===t||"style"===t?this.attr("font-"+t,e):this.attr(t,e)}});n("Element",["click","dblclick","mousedown","mouseup","mouseover","mouseout","mousemove","mouseenter","mouseleave","touchstart","touchmove","touchleave","touchend","touchcancel"].reduce((function(t,e){return t[e]=function(t){return null===t?this.off(e):this.on(e,t),this},t}),{})),n("Element",{untransform:function(){return this.attr("transform",null)},matrixify:function(){return(this.attr("transform")||"").split(V).slice(0,-1).map((function(t){const e=t.trim().split("(");return[e[0],e[1].split(K).map((function(t){return parseFloat(t)}))]})).reverse().reduce((function(t,e){return"matrix"===e[0]?t.lmultiply(ut.fromArray(e[1])):t[e[0]].apply(t,e[1])}),new ut)},toParent:function(t,e){if(this===t)return this;const n=this.screenCTM(),i=t.screenCTM().inverse();return this.addTo(t,e).untransform().transform(i.multiply(n)),this},toRoot:function(t){return this.toParent(this.root(),t)},transform:function(t,e){if(null==t||"string"==typeof t){const e=new ut(this).decompose();return null==t?e:e[t]}ut.isMatrixLike(t)||(t={...t,origin:f(t,this)});const n=new ut(!0===e?this:e||!1).transform(t);return this.attr("transform",n)}});class Container extends Element{flatten(t=this,e){return this.each((function(){if(this instanceof Container)return this.flatten().ungroup()})),this}ungroup(t=this.parent(),e=t.index(this)){return e=-1===e?t.children().length:e,this.each((function(n,i){return i[i.length-n-1].toParent(t,e)})),this.remove()}}I(Container,"Container");class Defs extends Container{constructor(t,e=t){super(E("defs",t),e)}flatten(){return this}ungroup(){return this}}I(Defs,"Defs");class Shape extends Element{}function Dt(t){return this.attr("rx",t)}function It(t){return this.attr("ry",t)}function zt(t){return null==t?this.cx()-this.rx():this.cx(t+this.rx())}function Rt(t){return null==t?this.cy()-this.ry():this.cy(t+this.ry())}function Lt(t){return this.attr("cx",t)}function Pt(t){return this.attr("cy",t)}function Ft(t){return null==t?2*this.rx():this.rx(new St(t).divide(2))}function qt(t){return null==t?2*this.ry():this.ry(new St(t).divide(2))}I(Shape,"Shape");var Xt={__proto__:null,rx:Dt,ry:It,x:zt,y:Rt,cx:Lt,cy:Pt,width:Ft,height:qt};class Ellipse extends Shape{constructor(t,e=t){super(E("ellipse",t),e)}size(t,e){const n=c(this,t,e);return this.rx(new St(n.width).divide(2)).ry(new St(n.height).divide(2))}}F(Ellipse,Xt),n("Container",{ellipse:q((function(t=0,e=t){return this.put(new Ellipse).size(t,e).move(0,0)}))}),I(Ellipse,"Ellipse");class Yt extends Dom{constructor(t=x.document.createDocumentFragment()){super(t)}xml(t,e,n){if("boolean"==typeof t&&(n=e,e=t,t=null),null==t||"function"==typeof t){const t=new Dom(N("wrapper",n));return t.add(this.node.cloneNode(!0)),t.xml(!1,n)}return super.xml(t,!1,n)}}function Bt(t,e){return"radialGradient"===(this._element||this).type?this.attr({fx:new St(t),fy:new St(e)}):this.attr({x1:new St(t),y1:new St(e)})}function Ht(t,e){return"radialGradient"===(this._element||this).type?this.attr({cx:new St(t),cy:new St(e)}):this.attr({x2:new St(t),y2:new St(e)})}I(Yt,"Fragment");var Gt,Vt={__proto__:null,from:Bt,to:Ht};class Gradient extends Container{constructor(t,e){super(E(t+"Gradient","string"==typeof t?null:t),e)}attr(t,e,n){return"transform"===t&&(t="gradientTransform"),super.attr(t,e,n)}bbox(){return new ct}targets(){return pt('svg [fill*="'+this.id()+'"]')}toString(){return this.url()}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}url(){return'url("#'+this.id()+'")'}}F(Gradient,Vt),n({Container:{gradient(...t){return this.defs().gradient(...t)}},Defs:{gradient:q((function(t,e){return this.put(new Gradient(t)).update(e)}))}}),I(Gradient,"Gradient");class Pattern extends Container{constructor(t,e=t){super(E("pattern",t),e)}attr(t,e,n){return"transform"===t&&(t="patternTransform"),super.attr(t,e,n)}bbox(){return new ct}targets(){return pt('svg [fill*="'+this.id()+'"]')}toString(){return this.url()}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}url(){return'url("#'+this.id()+'")'}}n({Container:{pattern(...t){return this.defs().pattern(...t)}},Defs:{pattern:q((function(t,e,n){return this.put(new Pattern).update(n).attr({x:0,y:0,width:t,height:e,patternUnits:"userSpaceOnUse"})}))}}),I(Pattern,"Pattern");class Image extends Shape{constructor(t,e=t){super(E("image",t),e)}load(t,e){if(!t)return this;const n=new x.window.Image;return bt(n,"load",(function(t){const i=this.parent(Pattern);0===this.width()&&0===this.height()&&this.size(n.width,n.height),i instanceof Pattern&&0===i.width()&&0===i.height()&&i.size(this.width(),this.height()),"function"==typeof e&&e.call(this,t)}),this),bt(n,"load error",(function(){vt(n)})),this.attr("href",n.src=t,w)}}Gt=function(t,e,n){return"fill"!==t&&"stroke"!==t||Z.test(e)&&(e=n.root().defs().image(e)),e instanceof Image&&(e=n.root().defs().pattern(0,0,(t=>{t.add(e)}))),e},Et.push(Gt),n({Container:{image:q((function(t,e){return this.put(new Image).size(0,0).load(t,e)}))}}),I(Image,"Image");class $t extends Nt{bbox(){let t=-1/0,e=-1/0,n=1/0,i=1/0;return this.forEach((function(r){t=Math.max(r[0],t),e=Math.max(r[1],e),n=Math.min(r[0],n),i=Math.min(r[1],i)})),new ct(n,i,t-n,e-i)}move(t,e){const n=this.bbox();if(t-=n.x,e-=n.y,!isNaN(t)&&!isNaN(e))for(let n=this.length-1;n>=0;n--)this[n]=[this[n][0]+t,this[n][1]+e];return this}parse(t=[0,0]){const e=[];(t=t instanceof Array?Array.prototype.concat.apply([],t):t.trim().split(K).map(parseFloat)).length%2!=0&&t.pop();for(let n=0,i=t.length;n<i;n+=2)e.push([t[n],t[n+1]]);return e}size(t,e){let n;const i=this.bbox();for(n=this.length-1;n>=0;n--)i.width&&(this[n][0]=(this[n][0]-i.x)*t/i.width+i.x),i.height&&(this[n][1]=(this[n][1]-i.y)*e/i.height+i.y);return this}toLine(){return{x1:this[0][0],y1:this[0][1],x2:this[1][0],y2:this[1][1]}}toString(){const t=[];for(let e=0,n=this.length;e<n;e++)t.push(this[e].join(","));return t.join(" ")}transform(t){return this.clone().transformO(t)}transformO(t){ut.isMatrixLike(t)||(t=new ut(t));for(let e=this.length;e--;){const[n,i]=this[e];this[e][0]=t.a*n+t.c*i+t.e,this[e][1]=t.b*n+t.d*i+t.f}return this}}var Ut={__proto__:null,MorphArray:$t,x:function(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)},y:function(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)},width:function(t){const e=this.bbox();return null==t?e.width:this.size(t,e.height)},height:function(t){const e=this.bbox();return null==t?e.height:this.size(e.width,t)}};class Line extends Shape{constructor(t,e=t){super(E("line",t),e)}array(){return new $t([[this.attr("x1"),this.attr("y1")],[this.attr("x2"),this.attr("y2")]])}move(t,e){return this.attr(this.array().move(t,e).toLine())}plot(t,e,n,i){return null==t?this.array():(t=void 0!==e?{x1:t,y1:e,x2:n,y2:i}:new $t(t).toLine(),this.attr(t))}size(t,e){const n=c(this,t,e);return this.attr(this.array().size(n.width,n.height).toLine())}}F(Line,Ut),n({Container:{line:q((function(...t){return Line.prototype.plot.apply(this.put(new Line),null!=t[0]?t:[0,0,0,0])}))}}),I(Line,"Line");class Marker extends Container{constructor(t,e=t){super(E("marker",t),e)}height(t){return this.attr("markerHeight",t)}orient(t){return this.attr("orient",t)}ref(t,e){return this.attr("refX",t).attr("refY",e)}toString(){return"url(#"+this.id()+")"}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}width(t){return this.attr("markerWidth",t)}}function Wt(t,e){return function(n){return null==n?this[t]:(this[t]=n,e&&e.call(this),this)}}n({Container:{marker(...t){return this.defs().marker(...t)}},Defs:{marker:q((function(t,e,n){return this.put(new Marker).size(t,e).ref(t/2,e/2).viewbox(0,0,t,e).attr("orient","auto").update(n)}))},marker:{marker(t,e,n,i){let r=["marker"];return"all"!==t&&r.push(t),r=r.join("-"),t=arguments[1]instanceof Marker?arguments[1]:this.defs().marker(e,n,i),this.attr(r,t)}}}),I(Marker,"Marker");const Qt={"-":function(t){return t},"<>":function(t){return-Math.cos(t*Math.PI)/2+.5},">":function(t){return Math.sin(t*Math.PI/2)},"<":function(t){return 1-Math.cos(t*Math.PI/2)},bezier:function(t,e,n,i){return function(r){return r<0?t>0?e/t*r:n>0?i/n*r:0:r>1?n<1?(1-i)/(1-n)*r+(i-n)/(1-n):t<1?(1-e)/(1-t)*r+(e-t)/(1-t):1:3*r*(1-r)**2*e+3*r**2*(1-r)*i+r**3}},steps:function(t,e="end"){e=e.split("-").reverse()[0];let n=t;return"none"===e?--n:"both"===e&&++n,(i,r=!1)=>{let s=Math.floor(i*t);const o=i*s%1==0;return"start"!==e&&"both"!==e||++s,r&&o&&--s,i>=0&&s<0&&(s=0),i<=1&&s>n&&(s=n),s/n}}};class Jt{done(){return!1}}class Zt extends Jt{constructor(t=kt.ease){super(),this.ease=Qt[t]||t}step(t,e,n){return"number"!=typeof t?n<1?t:e:t+(e-t)*this.ease(n)}}class Kt extends Jt{constructor(t){super(),this.stepper=t}done(t){return t.done}step(t,e,n,i){return this.stepper(t,e,n,i)}}function te(){const t=(this._duration||500)/1e3,e=this._overshoot||0,n=Math.PI,i=Math.log(e/100+1e-10),r=-i/Math.sqrt(n*n+i*i),s=3.9/(r*t);this.d=2*r*s,this.k=s*s}class ee extends Kt{constructor(t=500,e=0){super(),this.duration(t).overshoot(e)}step(t,e,n,i){if("string"==typeof t)return t;if(i.done=n===1/0,n===1/0)return e;if(0===n)return t;n>100&&(n=16),n/=1e3;const r=i.velocity||0,s=-this.d*r-this.k*(t-e),o=t+r*n+s*n*n/2;return i.velocity=r+s*n,i.done=Math.abs(e-o)+Math.abs(r)<.002,i.done?e:o}}F(ee,{duration:Wt("_duration",te),overshoot:Wt("_overshoot",te)});class ne extends Kt{constructor(t=.1,e=.01,n=0,i=1e3){super(),this.p(t).i(e).d(n).windup(i)}step(t,e,n,i){if("string"==typeof t)return t;if(i.done=n===1/0,n===1/0)return e;if(0===n)return t;const r=e-t;let s=(i.integral||0)+r*n;const o=(r-(i.error||0))/n,h=this._windup;return!1!==h&&(s=Math.max(-h,Math.min(s,h))),i.error=r,i.integral=s,i.done=Math.abs(r)<.001,i.done?e:t+(this.P*r+this.I*s+this.D*o)}}F(ne,{windup:Wt("_windup"),p:Wt("P"),i:Wt("I"),d:Wt("D")});const ie={M:2,L:2,H:1,V:1,C:6,S:4,Q:4,T:2,A:7,Z:0},re={M:function(t,e,n){return e.x=n.x=t[0],e.y=n.y=t[1],["M",e.x,e.y]},L:function(t,e){return e.x=t[0],e.y=t[1],["L",t[0],t[1]]},H:function(t,e){return e.x=t[0],["H",t[0]]},V:function(t,e){return e.y=t[0],["V",t[0]]},C:function(t,e){return e.x=t[4],e.y=t[5],["C",t[0],t[1],t[2],t[3],t[4],t[5]]},S:function(t,e){return e.x=t[2],e.y=t[3],["S",t[0],t[1],t[2],t[3]]},Q:function(t,e){return e.x=t[2],e.y=t[3],["Q",t[0],t[1],t[2],t[3]]},T:function(t,e){return e.x=t[0],e.y=t[1],["T",t[0],t[1]]},Z:function(t,e,n){return e.x=n.x,e.y=n.y,["Z"]},A:function(t,e){return e.x=t[5],e.y=t[6],["A",t[0],t[1],t[2],t[3],t[4],t[5],t[6]]}},se="mlhvqtcsaz".split("");for(let t=0,e=se.length;t<e;++t)re[se[t]]=function(t){return function(e,n,i){if("H"===t)e[0]=e[0]+n.x;else if("V"===t)e[0]=e[0]+n.y;else if("A"===t)e[5]=e[5]+n.x,e[6]=e[6]+n.y;else for(let t=0,i=e.length;t<i;++t)e[t]=e[t]+(t%2?n.y:n.x);return re[t](e,n,i)}}(se[t].toUpperCase());function oe(t){return t.segment.length&&t.segment.length-1===ie[t.segment[0].toUpperCase()]}function he(t,e){t.inNumber&&ue(t,!1);const n=tt.test(e);if(n)t.segment=[e];else{const e=t.lastCommand,n=e.toLowerCase(),i=e===n;t.segment=["m"===n?i?"l":"L":e]}return t.inSegment=!0,t.lastCommand=t.segment[0],n}function ue(t,e){if(!t.inNumber)throw new Error("Parser Error");t.number&&t.segment.push(parseFloat(t.number)),t.inNumber=e,t.number="",t.pointSeen=!1,t.hasExponent=!1,oe(t)&&ae(t)}function ae(t){t.inSegment=!1,t.absolute&&(t.segment=function(t){const e=t.segment[0];return re[e](t.segment.slice(1),t.p,t.p0)}(t)),t.segments.push(t.segment)}function le(t){if(!t.segment.length)return!1;const e="A"===t.segment[0].toUpperCase(),n=t.segment.length;return e&&(4===n||5===n)}function ce(t){return"E"===t.lastToken.toUpperCase()}class fe extends Nt{bbox(){return at().path.setAttribute("d",this.toString()),new ct(at.nodes.path.getBBox())}move(t,e){const n=this.bbox();if(t-=n.x,e-=n.y,!isNaN(t)&&!isNaN(e))for(var i,r=this.length-1;r>=0;r--)"M"===(i=this[r][0])||"L"===i||"T"===i?(this[r][1]+=t,this[r][2]+=e):"H"===i?this[r][1]+=t:"V"===i?this[r][1]+=e:"C"===i||"S"===i||"Q"===i?(this[r][1]+=t,this[r][2]+=e,this[r][3]+=t,this[r][4]+=e,"C"===i&&(this[r][5]+=t,this[r][6]+=e)):"A"===i&&(this[r][6]+=t,this[r][7]+=e);return this}parse(t="M0 0"){return Array.isArray(t)&&(t=Array.prototype.concat.apply([],t).toString()),function(t,e=!0){let n=0,i="";const r={segment:[],inNumber:!1,number:"",lastToken:"",inSegment:!1,segments:[],pointSeen:!1,hasExponent:!1,absolute:e,p0:new ot,p:new ot};for(;r.lastToken=i,i=t.charAt(n++);)if(r.inSegment||!he(r,i))if("."!==i)if(isNaN(parseInt(i)))if(" "!==i&&","!==i)if("-"!==i)if("E"!==i.toUpperCase()){if(tt.test(i)){if(r.inNumber)ue(r,!1);else{if(!oe(r))throw new Error("parser Error");ae(r)}--n}}else r.number+=i,r.hasExponent=!0;else{if(r.inNumber&&!ce(r)){ue(r,!1),--n;continue}r.number+=i,r.inNumber=!0}else r.inNumber&&ue(r,!1);else{if("0"===r.number||le(r)){r.inNumber=!0,r.number=i,ue(r,!0);continue}r.inNumber=!0,r.number+=i}else{if(r.pointSeen||r.hasExponent){ue(r,!1),--n;continue}r.inNumber=!0,r.pointSeen=!0,r.number+=i}return r.inNumber&&ue(r,!1),r.inSegment&&oe(r)&&ae(r),r.segments}(t)}size(t,e){const n=this.bbox();let i,r;for(n.width=0===n.width?1:n.width,n.height=0===n.height?1:n.height,i=this.length-1;i>=0;i--)r=this[i][0],"M"===r||"L"===r||"T"===r?(this[i][1]=(this[i][1]-n.x)*t/n.width+n.x,this[i][2]=(this[i][2]-n.y)*e/n.height+n.y):"H"===r?this[i][1]=(this[i][1]-n.x)*t/n.width+n.x:"V"===r?this[i][1]=(this[i][1]-n.y)*e/n.height+n.y:"C"===r||"S"===r||"Q"===r?(this[i][1]=(this[i][1]-n.x)*t/n.width+n.x,this[i][2]=(this[i][2]-n.y)*e/n.height+n.y,this[i][3]=(this[i][3]-n.x)*t/n.width+n.x,this[i][4]=(this[i][4]-n.y)*e/n.height+n.y,"C"===r&&(this[i][5]=(this[i][5]-n.x)*t/n.width+n.x,this[i][6]=(this[i][6]-n.y)*e/n.height+n.y)):"A"===r&&(this[i][1]=this[i][1]*t/n.width,this[i][2]=this[i][2]*e/n.height,this[i][6]=(this[i][6]-n.x)*t/n.width+n.x,this[i][7]=(this[i][7]-n.y)*e/n.height+n.y);return this}toString(){return function(t){let e="";for(let n=0,i=t.length;n<i;n++)e+=t[n][0],null!=t[n][1]&&(e+=t[n][1],null!=t[n][2]&&(e+=" ",e+=t[n][2],null!=t[n][3]&&(e+=" ",e+=t[n][3],e+=" ",e+=t[n][4],null!=t[n][5]&&(e+=" ",e+=t[n][5],e+=" ",e+=t[n][6],null!=t[n][7]&&(e+=" ",e+=t[n][7])))));return e+" "}(this)}}const de=t=>{const e=typeof t;return"number"===e?St:"string"===e?st.isColor(t)?st:K.test(t)?tt.test(t)?fe:Nt:X.test(t)?St:pe:ge.indexOf(t.constructor)>-1?t.constructor:Array.isArray(t)?Nt:"object"===e?_e:pe};class me{constructor(t){this._stepper=t||new Zt("-"),this._from=null,this._to=null,this._type=null,this._context=null,this._morphObj=null}at(t){const e=this;return this._morphObj.fromArray(this._from.map((function(n,i){return e._stepper.step(n,e._to[i],t,e._context[i],e._context)})))}done(){return this._context.map(this._stepper.done).reduce((function(t,e){return t&&e}),!0)}from(t){return null==t?this._from:(this._from=this._set(t),this)}stepper(t){return null==t?this._stepper:(this._stepper=t,this)}to(t){return null==t?this._to:(this._to=this._set(t),this)}type(t){return null==t?this._type:(this._type=t,this)}_set(t){this._type||this.type(de(t));let e=new this._type(t);return this._type===st&&(e=this._to?e[this._to[4]]():this._from?e[this._from[4]]():e),this._type===_e&&(e=this._to?e.align(this._to):this._from?e.align(this._from):e),e=e.toArray(),this._morphObj=this._morphObj||new this._type,this._context=this._context||Array.apply(null,Array(e.length)).map(Object).map((function(t){return t.done=!0,t})),e}}class pe{constructor(...t){this.init(...t)}init(t){return t=Array.isArray(t)?t[0]:t,this.value=t,this}toArray(){return[this.value]}valueOf(){return this.value}}class ye{constructor(...t){this.init(...t)}init(t){return Array.isArray(t)&&(t={scaleX:t[0],scaleY:t[1],shear:t[2],rotate:t[3],translateX:t[4],translateY:t[5],originX:t[6],originY:t[7]}),Object.assign(this,ye.defaults,t),this}toArray(){const t=this;return[t.scaleX,t.scaleY,t.shear,t.rotate,t.translateX,t.translateY,t.originX,t.originY]}}ye.defaults={scaleX:1,scaleY:1,shear:0,rotate:0,translateX:0,translateY:0,originX:0,originY:0};const we=(t,e)=>t[0]<e[0]?-1:t[0]>e[0]?1:0;class _e{constructor(...t){this.init(...t)}align(t){for(let e=0,n=this.values.length;e<n;++e)if(this.values[e]===st){const n=t[e+6],i=new st(this.values.splice(e+2,5))[n]().toArray();this.values.splice(e+2,0,...i)}return this}init(t){if(this.values=[],Array.isArray(t))return void(this.values=t.slice());t=t||{};const e=[];for(const n in t){const i=de(t[n]),r=new i(t[n]).toArray();e.push([n,i,r.length,...r])}return e.sort(we),this.values=e.reduce(((t,e)=>t.concat(e)),[]),this}toArray(){return this.values}valueOf(){const t={},e=this.values;for(;e.length;){const n=e.shift(),i=e.shift(),r=e.shift(),s=e.splice(0,r);t[n]=new i(s).valueOf()}return t}}const ge=[pe,ye,_e];function xe(t=[]){ge.push(...[].concat(t))}function be(){F(ge,{to(t){return(new me).type(this.constructor).from(this.valueOf()).to(t)},fromArray(t){return this.init(t),this}})}class Path extends Shape{constructor(t,e=t){super(E("path",t),e)}array(){return this._array||(this._array=new fe(this.attr("d")))}clear(){return delete this._array,this}height(t){return null==t?this.bbox().height:this.size(this.bbox().width,t)}move(t,e){return this.attr("d",this.array().move(t,e))}plot(t){return null==t?this.array():this.clear().attr("d","string"==typeof t?t:this._array=new fe(t))}size(t,e){const n=c(this,t,e);return this.attr("d",this.array().size(n.width,n.height))}width(t){return null==t?this.bbox().width:this.size(t,this.bbox().height)}x(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)}y(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)}}Path.prototype.MorphArray=fe,n({Container:{path:q((function(t){return this.put(new Path).plot(t||new fe)}))}}),I(Path,"Path");var ve={__proto__:null,array:function(){return this._array||(this._array=new $t(this.attr("points")))},clear:function(){return delete this._array,this},move:function(t,e){return this.attr("points",this.array().move(t,e))},plot:function(t){return null==t?this.array():this.clear().attr("points","string"==typeof t?t:this._array=new $t(t))},size:function(t,e){const n=c(this,t,e);return this.attr("points",this.array().size(n.width,n.height))}};class Polygon extends Shape{constructor(t,e=t){super(E("polygon",t),e)}}n({Container:{polygon:q((function(t){return this.put(new Polygon).plot(t||new $t)}))}}),F(Polygon,Ut),F(Polygon,ve),I(Polygon,"Polygon");class Polyline extends Shape{constructor(t,e=t){super(E("polyline",t),e)}}n({Container:{polyline:q((function(t){return this.put(new Polyline).plot(t||new $t)}))}}),F(Polyline,Ut),F(Polyline,ve),I(Polyline,"Polyline");class Rect extends Shape{constructor(t,e=t){super(E("rect",t),e)}}F(Rect,{rx:Dt,ry:It}),n({Container:{rect:q((function(t,e){return this.put(new Rect).size(t,e)}))}}),I(Rect,"Rect");class Me{constructor(){this._first=null,this._last=null}first(){return this._first&&this._first.value}last(){return this._last&&this._last.value}push(t){const e=void 0!==t.next?t:{value:t,next:null,prev:null};return this._last?(e.prev=this._last,this._last.next=e,this._last=e):(this._last=e,this._first=e),e}remove(t){t.prev&&(t.prev.next=t.next),t.next&&(t.next.prev=t.prev),t===this._last&&(this._last=t.prev),t===this._first&&(this._first=t.next),t.prev=null,t.next=null}shift(){const t=this._first;return t?(this._first=t.next,this._first&&(this._first.prev=null),this._last=this._first?this._last:null,t.value):null}}const Oe={nextDraw:null,frames:new Me,timeouts:new Me,immediates:new Me,timer:()=>x.window.performance||x.window.Date,transforms:[],frame(t){const e=Oe.frames.push({run:t});return null===Oe.nextDraw&&(Oe.nextDraw=x.window.requestAnimationFrame(Oe._draw)),e},timeout(t,e){e=e||0;const n=Oe.timer().now()+e,i=Oe.timeouts.push({run:t,time:n});return null===Oe.nextDraw&&(Oe.nextDraw=x.window.requestAnimationFrame(Oe._draw)),i},immediate(t){const e=Oe.immediates.push(t);return null===Oe.nextDraw&&(Oe.nextDraw=x.window.requestAnimationFrame(Oe._draw)),e},cancelFrame(t){null!=t&&Oe.frames.remove(t)},clearTimeout(t){null!=t&&Oe.timeouts.remove(t)},cancelImmediate(t){null!=t&&Oe.immediates.remove(t)},_draw(t){let e=null;const n=Oe.timeouts.last();for(;(e=Oe.timeouts.shift())&&(t>=e.time?e.run():Oe.timeouts.push(e),e!==n););let i=null;const r=Oe.frames.last();for(;i!==r&&(i=Oe.frames.shift());)i.run(t);let s=null;for(;s=Oe.immediates.shift();)s();Oe.nextDraw=Oe.timeouts.first()||Oe.frames.first()?x.window.requestAnimationFrame(Oe._draw):null}},Ae=function(t){const e=t.start,n=t.runner.duration();return{start:e,duration:n,end:e+n,runner:t.runner}},ke=function(){const t=x.window;return(t.performance||t.Date).now()};class Te extends Ot{constructor(t=ke){super(),this._timeSource=t,this._startTime=0,this._speed=1,this._persist=0,this._nextFrame=null,this._paused=!0,this._runners=[],this._runnerIds=[],this._lastRunnerId=-1,this._time=0,this._lastSourceTime=0,this._lastStepTime=0,this._step=this._stepFn.bind(this,!1),this._stepImmediate=this._stepFn.bind(this,!0)}active(){return!!this._nextFrame}finish(){return this.time(this.getEndTimeOfTimeline()+1),this.pause()}getEndTime(){const t=this.getLastRunnerInfo(),e=t?t.runner.duration():0;return(t?t.start:this._time)+e}getEndTimeOfTimeline(){const t=this._runners.map((t=>t.start+t.runner.duration()));return Math.max(0,...t)}getLastRunnerInfo(){return this.getRunnerInfoById(this._lastRunnerId)}getRunnerInfoById(t){return this._runners[this._runnerIds.indexOf(t)]||null}pause(){return this._paused=!0,this._continue()}persist(t){return null==t?this._persist:(this._persist=t,this)}play(){return this._paused=!1,this.updateTime()._continue()}reverse(t){const e=this.speed();if(null==t)return this.speed(-e);const n=Math.abs(e);return this.speed(t?-n:n)}schedule(t,e,n){if(null==t)return this._runners.map(Ae);let i=0;const r=this.getEndTime();if(e=e||0,null==n||"last"===n||"after"===n)i=r;else if("absolute"===n||"start"===n)i=e,e=0;else if("now"===n)i=this._time;else if("relative"===n){const n=this.getRunnerInfoById(t.id);n&&(i=n.start+e,e=0)}else{if("with-last"!==n)throw new Error('Invalid value for the "when" parameter');{const t=this.getLastRunnerInfo();i=t?t.start:this._time}}t.unschedule(),t.timeline(this);const s=t.persist(),o={persist:null===s?this._persist:s,start:i+e,runner:t};return this._lastRunnerId=t.id,this._runners.push(o),this._runners.sort(((t,e)=>t.start-e.start)),this._runnerIds=this._runners.map((t=>t.runner.id)),this.updateTime()._continue(),this}seek(t){return this.time(this._time+t)}source(t){return null==t?this._timeSource:(this._timeSource=t,this)}speed(t){return null==t?this._speed:(this._speed=t,this)}stop(){return this.time(0),this.pause()}time(t){return null==t?this._time:(this._time=t,this._continue(!0))}unschedule(t){const e=this._runnerIds.indexOf(t.id);return e<0||(this._runners.splice(e,1),this._runnerIds.splice(e,1),t.timeline(null)),this}updateTime(){return this.active()||(this._lastSourceTime=this._timeSource()),this}_continue(t=!1){return Oe.cancelFrame(this._nextFrame),this._nextFrame=null,t?this._stepImmediate():(this._paused||(this._nextFrame=Oe.frame(this._step)),this)}_stepFn(t=!1){const e=this._timeSource();let n=e-this._lastSourceTime;t&&(n=0);const i=this._speed*n+(this._time-this._lastStepTime);this._lastSourceTime=e,t||(this._time+=i,this._time=this._time<0?0:this._time),this._lastStepTime=this._time,this.fire("time",this._time);for(let t=this._runners.length;t--;){const e=this._runners[t],n=e.runner;this._time-e.start<=0&&n.reset()}let r=!1;for(let t=0,e=this._runners.length;t<e;t++){const n=this._runners[t],s=n.runner;let o=i;const h=this._time-n.start;if(h<=0){r=!0;continue}if(h<o&&(o=h),!s.active())continue;if(s.step(o).done){if(!0!==n.persist){s.duration()-s.time()+this._time+n.persist<this._time&&(s.unschedule(),--t,--e)}}else r=!0}return r&&!(this._speed<0&&0===this._time)||this._runnerIds.length&&this._speed<0&&this._time>0?this._continue():(this.pause(),this.fire("finished")),this}}n({Element:{timeline:function(t){return null==t?(this._timeline=this._timeline||new Te,this._timeline):(this._timeline=t,this)}}});class Ce extends Ot{constructor(t){super(),this.id=Ce.id++,t="function"==typeof(t=null==t?kt.duration:t)?new Kt(t):t,this._element=null,this._timeline=null,this.done=!1,this._queue=[],this._duration="number"==typeof t&&t,this._isDeclarative=t instanceof Kt,this._stepper=this._isDeclarative?t:new Zt,this._history={},this.enabled=!0,this._time=0,this._lastTime=0,this._reseted=!0,this.transforms=new ut,this.transformId=1,this._haveReversed=!1,this._reverse=!1,this._loopsDone=0,this._swing=!1,this._wait=0,this._times=1,this._frameId=null,this._persist=!!this._isDeclarative||null}static sanitise(t,e,n){let i=1,r=!1,s=0;return e=e||kt.delay,n=n||"last","object"!=typeof(t=t||kt.duration)||t instanceof Jt||(e=t.delay||e,n=t.when||n,r=t.swing||r,i=t.times||i,s=t.wait||s,t=t.duration||kt.duration),{duration:t,delay:e,swing:r,times:i,wait:s,when:n}}active(t){return null==t?this.enabled:(this.enabled=t,this)}addTransform(t,e){return this.transforms.lmultiplyO(t),this}after(t){return this.on("finished",t)}animate(t,e,n){const i=Ce.sanitise(t,e,n),r=new Ce(i.duration);return this._timeline&&r.timeline(this._timeline),this._element&&r.element(this._element),r.loop(i).schedule(i.delay,i.when)}clearTransform(){return this.transforms=new ut,this}clearTransformsFromQueue(){this.done&&this._timeline&&this._timeline._runnerIds.includes(this.id)||(this._queue=this._queue.filter((t=>!t.isTransform)))}delay(t){return this.animate(0,t)}duration(){return this._times*(this._wait+this._duration)-this._wait}during(t){return this.queue(null,t)}ease(t){return this._stepper=new Zt(t),this}element(t){return null==t?this._element:(this._element=t,t._prepareRunner(),this)}finish(){return this.step(1/0)}loop(t,e,n){return"object"==typeof t&&(e=t.swing,n=t.wait,t=t.times),this._times=t||1/0,this._swing=e||!1,this._wait=n||0,!0===this._times&&(this._times=1/0),this}loops(t){const e=this._duration+this._wait;if(null==t){const t=Math.floor(this._time/e),n=(this._time-t*e)/this._duration;return Math.min(t+n,this._times)}const n=t%1,i=e*Math.floor(t)+this._duration*n;return this.time(i)}persist(t){return null==t?this._persist:(this._persist=t,this)}position(t){const e=this._time,n=this._duration,i=this._wait,r=this._times,s=this._swing,o=this._reverse;let h;if(null==t){const t=function(t){const e=s*Math.floor(t%(2*(i+n))/(i+n)),r=e&&!o||!e&&o,h=Math.pow(-1,r)*(t%(i+n))/n+r;return Math.max(Math.min(h,1),0)},u=r*(i+n)-i;return h=e<=0?Math.round(t(1e-5)):e<u?t(e):Math.round(t(u-1e-5)),h}const u=Math.floor(this.loops()),a=s&&u%2==0;return h=u+(a&&!o||o&&a?t:1-t),this.loops(h)}progress(t){return null==t?Math.min(1,this._time/this.duration()):this.time(t*this.duration())}queue(t,e,n,i){this._queue.push({initialiser:t||At,runner:e||At,retarget:n,isTransform:i,initialised:!1,finished:!1});return this.timeline()&&this.timeline()._continue(),this}reset(){return this._reseted||(this.time(0),this._reseted=!0),this}reverse(t){return this._reverse=null==t?!this._reverse:t,this}schedule(t,e,n){if(t instanceof Te||(n=e,e=t,t=this.timeline()),!t)throw Error("Runner cannot be scheduled without timeline");return t.schedule(this,e,n),this}step(t){if(!this.enabled)return this;t=null==t?16:t,this._time+=t;const e=this.position(),n=this._lastPosition!==e&&this._time>=0;this._lastPosition=e;const i=this.duration(),r=this._lastTime<=0&&this._time>0,s=this._lastTime<i&&this._time>=i;this._lastTime=this._time,r&&this.fire("start",this);const o=this._isDeclarative;this.done=!o&&!s&&this._time>=i,this._reseted=!1;let h=!1;return(n||o)&&(this._initialise(n),this.transforms=new ut,h=this._run(o?t:e),this.fire("step",this)),this.done=this.done||h&&o,s&&this.fire("finished",this),this}time(t){if(null==t)return this._time;const e=t-this._time;return this.step(e),this}timeline(t){return void 0===t?this._timeline:(this._timeline=t,this)}unschedule(){const t=this.timeline();return t&&t.unschedule(this),this}_initialise(t){if(t||this._isDeclarative)for(let e=0,n=this._queue.length;e<n;++e){const n=this._queue[e],i=this._isDeclarative||!n.initialised&&t;t=!n.finished,i&&t&&(n.initialiser.call(this),n.initialised=!0)}}_rememberMorpher(t,e){if(this._history[t]={morpher:e,caller:this._queue[this._queue.length-1]},this._isDeclarative){const t=this.timeline();t&&t.play()}}_run(t){let e=!0;for(let n=0,i=this._queue.length;n<i;++n){const i=this._queue[n],r=i.runner.call(this,t);i.finished=i.finished||!0===r,e=e&&i.finished}return e}_tryRetarget(t,e,n){if(this._history[t]){if(!this._history[t].caller.initialised){const e=this._queue.indexOf(this._history[t].caller);return this._queue.splice(e,1),!1}this._history[t].caller.retarget?this._history[t].caller.retarget.call(this,e,n):this._history[t].morpher.to(e),this._history[t].caller.finished=!1;const i=this.timeline();return i&&i.play(),!0}return!1}}Ce.id=0;class Ne{constructor(t=new ut,e=-1,n=!0){this.transforms=t,this.id=e,this.done=n}clearTransformsFromQueue(){}}F([Ce,Ne],{mergeWith(t){return new Ne(t.transforms.lmultiply(this.transforms),t.id)}});const Se=(t,e)=>t.lmultiplyO(e),Ee=t=>t.transforms;function je(){const t=this._transformationRunners.runners.map(Ee).reduce(Se,new ut);this.transform(t),this._transformationRunners.merge(),1===this._transformationRunners.length()&&(this._frameId=null)}class De{constructor(){this.runners=[],this.ids=[]}add(t){if(this.runners.includes(t))return;const e=t.id+1;return this.runners.push(t),this.ids.push(e),this}clearBefore(t){const e=this.ids.indexOf(t+1)||1;return this.ids.splice(0,e,0),this.runners.splice(0,e,new Ne).forEach((t=>t.clearTransformsFromQueue())),this}edit(t,e){const n=this.ids.indexOf(t+1);return this.ids.splice(n,1,t+1),this.runners.splice(n,1,e),this}getByID(t){return this.runners[this.ids.indexOf(t+1)]}length(){return this.ids.length}merge(){let t=null;for(let e=0;e<this.runners.length;++e){const n=this.runners[e];if(t&&n.done&&t.done&&(!n._timeline||!n._timeline._runnerIds.includes(n.id))&&(!t._timeline||!t._timeline._runnerIds.includes(t.id))){this.remove(n.id);const i=n.mergeWith(t);this.edit(t.id,i),t=i,--e}else t=n}return this}remove(t){const e=this.ids.indexOf(t+1);return this.ids.splice(e,1),this.runners.splice(e,1),this}}n({Element:{animate(t,e,n){const i=Ce.sanitise(t,e,n),r=this.timeline();return new Ce(i.duration).loop(i).element(this).timeline(r.play()).schedule(i.delay,i.when)},delay(t,e){return this.animate(0,t,e)},_clearTransformRunnersBefore(t){this._transformationRunners.clearBefore(t.id)},_currentTransform(t){return this._transformationRunners.runners.filter((e=>e.id<=t.id)).map(Ee).reduce(Se,new ut)},_addRunner(t){this._transformationRunners.add(t),Oe.cancelImmediate(this._frameId),this._frameId=Oe.immediate(je.bind(this))},_prepareRunner(){null==this._frameId&&(this._transformationRunners=(new De).add(new Ne(new ut(this))))}}});F(Ce,{attr(t,e){return this.styleAttr("attr",t,e)},css(t,e){return this.styleAttr("css",t,e)},styleAttr(t,e,n){if("string"==typeof e)return this.styleAttr(t,{[e]:n});let i=e;if(this._tryRetarget(t,i))return this;let r=new me(this._stepper).to(i),s=Object.keys(i);return this.queue((function(){r=r.from(this.element()[t](s))}),(function(e){return this.element()[t](r.at(e).valueOf()),r.done()}),(function(e){const n=Object.keys(e),o=(h=s,n.filter((t=>!h.includes(t))));var h;if(o.length){const e=this.element()[t](o),n=new _e(r.from()).valueOf();Object.assign(n,e),r.from(n)}const u=new _e(r.to()).valueOf();Object.assign(u,e),r.to(u),s=n,i=e})),this._rememberMorpher(t,r),this},zoom(t,e){if(this._tryRetarget("zoom",t,e))return this;let n=new me(this._stepper).to(new St(t));return this.queue((function(){n=n.from(this.element().zoom())}),(function(t){return this.element().zoom(n.at(t),e),n.done()}),(function(t,i){e=i,n.to(t)})),this._rememberMorpher("zoom",n),this},transform(t,e,n){if(e=t.relative||e,this._isDeclarative&&!e&&this._tryRetarget("transform",t))return this;const i=ut.isMatrixLike(t);n=null!=t.affine?t.affine:null!=n?n:!i;const r=new me(this._stepper).type(n?ye:ut);let s,o,h,u,a;return this.queue((function(){o=o||this.element(),s=s||f(t,o),a=new ut(e?void 0:o),o._addRunner(this),e||o._clearTransformRunnersBefore(this)}),(function(l){e||this.clearTransform();const{x:c,y:f}=new ot(s).transform(o._currentTransform(this));let d=new ut({...t,origin:[c,f]}),m=this._isDeclarative&&h?h:a;if(n){d=d.decompose(c,f),m=m.decompose(c,f);const t=d.rotate,e=m.rotate,n=[t-360,t,t+360],i=n.map((t=>Math.abs(t-e))),r=Math.min(...i),s=i.indexOf(r);d.rotate=n[s]}e&&(i||(d.rotate=t.rotate||0),this._isDeclarative&&u&&(m.rotate=u)),r.from(m),r.to(d);const p=r.at(l);return u=p.rotate,h=new ut(p),this.addTransform(h),o._addRunner(this),r.done()}),(function(e){(e.origin||"center").toString()!==(t.origin||"center").toString()&&(s=f(e,o)),t={...e,origin:s}}),!0),this._isDeclarative&&this._rememberMorpher("transform",r),this},x(t,e){return this._queueNumber("x",t)},y(t){return this._queueNumber("y",t)},dx(t=0){return this._queueNumberDelta("x",t)},dy(t=0){return this._queueNumberDelta("y",t)},dmove(t,e){return this.dx(t).dy(e)},_queueNumberDelta(t,e){if(e=new St(e),this._tryRetarget(t,e))return this;const n=new me(this._stepper).to(e);let i=null;return this.queue((function(){i=this.element()[t](),n.from(i),n.to(i+e)}),(function(e){return this.element()[t](n.at(e)),n.done()}),(function(t){n.to(i+new St(t))})),this._rememberMorpher(t,n),this},_queueObject(t,e){if(this._tryRetarget(t,e))return this;const n=new me(this._stepper).to(e);return this.queue((function(){n.from(this.element()[t]())}),(function(e){return this.element()[t](n.at(e)),n.done()})),this._rememberMorpher(t,n),this},_queueNumber(t,e){return this._queueObject(t,new St(e))},cx(t){return this._queueNumber("cx",t)},cy(t){return this._queueNumber("cy",t)},move(t,e){return this.x(t).y(e)},center(t,e){return this.cx(t).cy(e)},size(t,e){let n;return t&&e||(n=this._element.bbox()),t||(t=n.width/n.height*e),e||(e=n.height/n.width*t),this.width(t).height(e)},width(t){return this._queueNumber("width",t)},height(t){return this._queueNumber("height",t)},plot(t,e,n,i){if(4===arguments.length)return this.plot([t,e,n,i]);if(this._tryRetarget("plot",t))return this;const r=new me(this._stepper).type(this._element.MorphArray).to(t);return this.queue((function(){r.from(this._element.array())}),(function(t){return this._element.plot(r.at(t)),r.done()})),this._rememberMorpher("plot",r),this},leading(t){return this._queueNumber("leading",t)},viewbox(t,e,n,i){return this._queueObject("viewbox",new ct(t,e,n,i))},update(t){return"object"!=typeof t?this.update({offset:arguments[0],color:arguments[1],opacity:arguments[2]}):(null!=t.opacity&&this.attr("stop-opacity",t.opacity),null!=t.color&&this.attr("stop-color",t.color),null!=t.offset&&this.attr("offset",t.offset),this)}}),F(Ce,{rx:Dt,ry:It,from:Bt,to:Ht}),I(Ce,"Runner");class Svg extends Container{constructor(t,e=t){super(E("svg",t),e),this.namespace()}defs(){return this.isRoot()?j(this.node.querySelector("defs"))||this.put(new Defs):this.root().defs()}isRoot(){return!this.node.parentNode||!(this.node.parentNode instanceof x.window.SVGElement)&&"#document-fragment"!==this.node.parentNode.nodeName}namespace(){return this.isRoot()?this.attr({xmlns:m,version:"1.1"}).attr("xmlns:xlink",w,y).attr("xmlns:svgjs",_,y):this.root().namespace()}removeNamespace(){return this.attr({xmlns:null,version:null}).attr("xmlns:xlink",null,y).attr("xmlns:svgjs",null,y)}root(){return this.isRoot()?this:super.root()}}n({Container:{nested:q((function(){return this.put(new Svg)}))}}),I(Svg,"Svg",!0);class Symbol extends Container{constructor(t,e=t){super(E("symbol",t),e)}}n({Container:{symbol:q((function(){return this.put(new Symbol)}))}}),I(Symbol,"Symbol");var Ie={__proto__:null,plain:function(t){return!1===this._build&&this.clear(),this.node.appendChild(x.document.createTextNode(t)),this},length:function(){return this.node.getComputedTextLength()},x:function(t,e=this.bbox()){return null==t?e.x:this.attr("x",this.attr("x")+t-e.x)},y:function(t,e=this.bbox()){return null==t?e.y:this.attr("y",this.attr("y")+t-e.y)},move:function(t,e,n=this.bbox()){return this.x(t,n).y(e,n)},cx:function(t,e=this.bbox()){return null==t?e.cx:this.attr("x",this.attr("x")+t-e.cx)},cy:function(t,e=this.bbox()){return null==t?e.cy:this.attr("y",this.attr("y")+t-e.cy)},center:function(t,e,n=this.bbox()){return this.cx(t,n).cy(e,n)},ax:function(t){return this.attr("x",t)},ay:function(t){return this.attr("y",t)},amove:function(t,e){return this.ax(t).ay(e)},build:function(t){return this._build=!!t,this}};class Text extends Shape{constructor(t,e=t){super(E("text",t),e),this.dom.leading=new St(1.3),this._rebuild=!0,this._build=!1}leading(t){return null==t?this.dom.leading:(this.dom.leading=new St(t),this.rebuild())}rebuild(t){if("boolean"==typeof t&&(this._rebuild=t),this._rebuild){const t=this;let e=0;const n=this.dom.leading;this.each((function(i){const r=x.window.getComputedStyle(this.node).getPropertyValue("font-size"),s=n*new St(r);this.dom.newLined&&(this.attr("x",t.attr("x")),"\n"===this.text()?e+=s:(this.attr("dy",i?s+e:0),e=0))})),this.fire("rebuild")}return this}setData(t){return this.dom=t,this.dom.leading=new St(t.leading||1.3),this}text(t){if(void 0===t){const e=this.node.childNodes;let n=0;t="";for(let i=0,r=e.length;i<r;++i)"textPath"!==e[i].nodeName?(i!==n&&3!==e[i].nodeType&&!0===j(e[i]).dom.newLined&&(t+="\n"),t+=e[i].textContent):0===i&&(n=1);return t}if(this.clear().build(!0),"function"==typeof t)t.call(this,this);else for(let e=0,n=(t=(t+"").split("\n")).length;e<n;e++)this.newLine(t[e]);return this.build(!1).rebuild()}}F(Text,Ie),n({Container:{text:q((function(t=""){return this.put(new Text).text(t)})),plain:q((function(t=""){return this.put(new Text).plain(t)}))}}),I(Text,"Text");class Tspan extends Shape{constructor(t,e=t){super(E("tspan",t),e),this._build=!1}dx(t){return this.attr("dx",t)}dy(t){return this.attr("dy",t)}newLine(){this.dom.newLined=!0;const t=this.parent();if(!(t instanceof Text))return this;const e=t.index(this),n=x.window.getComputedStyle(this.node).getPropertyValue("font-size"),i=t.dom.leading*new St(n);return this.dy(e?i:0).attr("x",t.x())}text(t){return null==t?this.node.textContent+(this.dom.newLined?"\n":""):("function"==typeof t?(this.clear().build(!0),t.call(this,this),this.build(!1)):this.plain(t),this)}}F(Tspan,Ie),n({Tspan:{tspan:q((function(t=""){const e=new Tspan;return this._build||this.clear(),this.put(e).text(t)}))},Text:{newLine:function(t=""){return this.tspan(t).newLine()}}}),I(Tspan,"Tspan");class Circle extends Shape{constructor(t,e=t){super(E("circle",t),e)}radius(t){return this.attr("r",t)}rx(t){return this.attr("r",t)}ry(t){return this.rx(t)}size(t){return this.radius(new St(t).divide(2))}}F(Circle,{x:zt,y:Rt,cx:Lt,cy:Pt,width:Ft,height:qt}),n({Container:{circle:q((function(t=0){return this.put(new Circle).size(t).move(0,0)}))}}),I(Circle,"Circle");class ClipPath extends Container{constructor(t,e=t){super(E("clipPath",t),e)}remove(){return this.targets().forEach((function(t){t.unclip()})),super.remove()}targets(){return pt('svg [clip-path*="'+this.id()+'"]')}}n({Container:{clip:q((function(){return this.defs().put(new ClipPath)}))},Element:{clipper(){return this.reference("clip-path")},clipWith(t){const e=t instanceof ClipPath?t:this.parent().clip().add(t);return this.attr("clip-path",'url("#'+e.id()+'")')},unclip(){return this.attr("clip-path",null)}}}),I(ClipPath,"ClipPath");class ze extends Element{constructor(t,e=t){super(E("foreignObject",t),e)}}n({Container:{foreignObject:q((function(t,e){return this.put(new ze).size(t,e)}))}}),I(ze,"ForeignObject");var Re={__proto__:null,dmove:function(t,e){return this.children().forEach(((n,i)=>{let r;try{r=n.bbox()}catch(t){return}const s=new ut(n),o=s.translate(t,e).transform(s.inverse()),h=new ot(r.x,r.y).transform(o);n.move(h.x,h.y)})),this},dx:function(t){return this.dmove(t,0)},dy:function(t){return this.dmove(0,t)},height:function(t,e=this.bbox()){return null==t?e.height:this.size(e.width,t,e)},move:function(t=0,e=0,n=this.bbox()){const i=t-n.x,r=e-n.y;return this.dmove(i,r)},size:function(t,e,n=this.bbox()){const i=c(this,t,e,n),r=i.width/n.width,s=i.height/n.height;return this.children().forEach(((t,e)=>{const i=new ot(n).transform(new ut(t).inverse());t.scale(r,s,i.x,i.y)})),this},width:function(t,e=this.bbox()){return null==t?e.width:this.size(t,e.height,e)},x:function(t,e=this.bbox()){return null==t?e.x:this.move(t,e.y,e)},y:function(t,e=this.bbox()){return null==t?e.y:this.move(e.x,t,e)}};class G extends Container{constructor(t,e=t){super(E("g",t),e)}}F(G,Re),n({Container:{group:q((function(){return this.put(new G)}))}}),I(G,"G");class A extends Container{constructor(t,e=t){super(E("a",t),e)}target(t){return this.attr("target",t)}to(t){return this.attr("href",t,w)}}F(A,Re),n({Container:{link:q((function(t){return this.put(new A).to(t)}))},Element:{unlink(){const t=this.linker();if(!t)return this;const e=t.parent();if(!e)return this.remove();const n=e.index(t);return e.add(this,n),t.remove(),this},linkTo(t){let e=this.linker();return e||(e=new A,this.wrap(e)),"function"==typeof t?t.call(e,e):e.to(t),this},linker(){const t=this.parent();return t&&"a"===t.node.nodeName.toLowerCase()?t:null}}}),I(A,"A");class Mask extends Container{constructor(t,e=t){super(E("mask",t),e)}remove(){return this.targets().forEach((function(t){t.unmask()})),super.remove()}targets(){return pt('svg [mask*="'+this.id()+'"]')}}n({Container:{mask:q((function(){return this.defs().put(new Mask)}))},Element:{masker(){return this.reference("mask")},maskWith(t){const e=t instanceof Mask?t:this.parent().mask().add(t);return this.attr("mask",'url("#'+e.id()+'")')},unmask(){return this.attr("mask",null)}}}),I(Mask,"Mask");class Stop extends Element{constructor(t,e=t){super(E("stop",t),e)}update(t){return("number"==typeof t||t instanceof St)&&(t={offset:arguments[0],color:arguments[1],opacity:arguments[2]}),null!=t.opacity&&this.attr("stop-opacity",t.opacity),null!=t.color&&this.attr("stop-color",t.color),null!=t.offset&&this.attr("offset",new St(t.offset)),this}}n({Gradient:{stop:function(t,e,n){return this.put(new Stop).update(t,e,n)}}}),I(Stop,"Stop");class Style extends Element{constructor(t,e=t){super(E("style",t),e)}addText(t=""){return this.node.textContent+=t,this}font(t,e,n={}){return this.rule("@font-face",{fontFamily:t,src:e,...n})}rule(t,e){return this.addText(function(t,e){if(!t)return"";if(!e)return t;let n=t+"{";for(const t in e)n+=a(t)+":"+e[t]+";";return n+="}",n}(t,e))}}n("Dom",{style(t,e){return this.put(new Style).rule(t,e)},fontface(t,e,n){return this.put(new Style).font(t,e,n)}}),I(Style,"Style");class TextPath extends Text{constructor(t,e=t){super(E("textPath",t),e)}array(){const t=this.track();return t?t.array():null}plot(t){const e=this.track();let n=null;return e&&(n=e.plot(t)),null==t?n:this}track(){return this.reference("href")}}n({Container:{textPath:q((function(t,e){return t instanceof Text||(t=this.text(t)),t.path(e)}))},Text:{path:q((function(t,e=!0){const n=new TextPath;let i;if(t instanceof Path||(t=this.defs().path(t)),n.attr("href","#"+t,w),e)for(;i=this.node.firstChild;)n.node.appendChild(i);return this.put(n)})),textPath(){return this.findOne("textPath")}},Path:{text:q((function(t){return t instanceof Text||(t=(new Text).addTo(this.parent()).text(t)),t.path(this)})),targets(){return pt("svg textPath").filter((t=>(t.attr("href")||"").includes(this.id())))}}}),TextPath.prototype.MorphArray=fe,I(TextPath,"TextPath");class Use extends Shape{constructor(t,e=t){super(E("use",t),e)}use(t,e){return this.attr("href",(e||"")+"#"+t,w)}}n({Container:{use:q((function(t,e){return this.put(new Use).use(t,e)}))}}),I(Use,"Use");const Le=S;F([Svg,Symbol,Image,Pattern,Marker],i("viewbox")),F([Line,Polyline,Polygon,Path],i("marker")),F(Text,i("Text")),F(Path,i("Path")),F(Defs,i("Defs")),F([Text,Tspan],i("Tspan")),F([Rect,Ellipse,Gradient,Ce],i("radius")),F(Ot,i("EventTarget")),F(Dom,i("Dom")),F(Element,i("Element")),F(Shape,i("Shape")),F([Container,Yt],i("Container")),F(Gradient,i("Gradient")),F(Ce,i("Runner")),dt.extend([...new Set(e)]),xe([St,st,ct,ut,Nt,$t,fe]),be();var Pe={__proto__:null,Morphable:me,registerMorphableType:xe,makeMorphable:be,TransformBag:ye,ObjectBag:_e,NonMorphable:pe,defaults:Ct,utils:d,namespaces:g,regex:et,SVG:Le,parser:at,find:pt,getWindow:function(){return x.window},registerWindow:b,restoreWindow:O,saveWindow:M,withWindow:function(t,e){M(),b(t,t.document),e(t,t.document),O()},Animator:Oe,Controller:Kt,Ease:Zt,PID:ne,Spring:ee,easing:Qt,Queue:Me,Runner:Ce,Timeline:Te,Array:Nt,Box:ct,Color:st,EventTarget:Ot,Matrix:ut,Number:St,PathArray:fe,Point:ot,PointArray:$t,List:dt,Circle:Circle,ClipPath:ClipPath,Container:Container,Defs:Defs,Dom:Dom,Element:Element,Ellipse:Ellipse,ForeignObject:ze,Fragment:Yt,Gradient:Gradient,G:G,A:A,Image:Image,Line:Line,Marker:Marker,Mask:Mask,Path:Path,Pattern:Pattern,Polygon:Polygon,Polyline:Polyline,Rect:Rect,Shape:Shape,Stop:Stop,Style:Style,Svg:Svg,Symbol:Symbol,Text:Text,TextPath:TextPath,Tspan:Tspan,Use:Use,windowEvents:wt,getEvents:_t,getEventTarget:gt,clearEvents:xt,on:bt,off:vt,dispatch:Mt,root:C,create:N,makeInstance:S,nodeOrNew:E,adopt:j,mockAdopt:function(t=j){D=t},register:I,getClass:z,eid:L,assignNewId:P,extend:F,wrapWithAttrCheck:q};function Fe(t,e){return S(t,e)}return Object.assign(Fe,Pe),Fe}();
|
|
13
|
+
//# sourceMappingURL=svg.min.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
window.extConnector=function(){window.svgEditor&&svgEditor.addExtension("Connector",function(e){var u,v,f,p,m,h,x=e.svgcontent,g=e.svgroot,l=e.getNextId,w=e.getElem,y=e.addSvgElementFromJson,b=e.selectorManager,c=svgEditor.curConfig,k=!1,_=[],C=".se_connector",E=[],A=$.data,t={en:[{id:"mode_connect",title:"Connect two objects"}],fr:[{id:"mode_connect",title:"Connecter deux objets"}]};function S(e,t,r,n){n&&(n-=0,(r=$.extend({},r)).width+=n,r.height+=n,r.x-=n/2,r.y-=n/2);var i,o=r.x+r.width/2,a=r.y+r.height/2,s=e-o,d=t-a;return{x:o+s*(i=Math.abs(d/s)<r.height/r.width?r.width/2/Math.abs(s):r.height/2/Math.abs(d)),y:a+d*i}}function I(e,t){var r=!!t.getAttribute("marker-"+e),n=5*t.getAttribute("stroke-width");return r?n:0}function n(e){var t=$("#connector_rules");t.length||(t=$('<style id="connector_rules"></style>').appendTo("head")),t.text(e?"#tool_clone, #tool_topath, #tool_angle, #xy_panel { display: none !important; }":""),$("#connector_panel").toggle(e)}function M(t,r,n,i,e){var o,a=t.points,s=g.createSVGPoint();s.x=n,s.y=i,"end"===r&&(r=a.numberOfItems-1);try{a.replaceItem(s,r)}catch(e){var d=t.getAttribute("points").split(" ");for(o=0;o<d.length;o++)o===r&&(d[o]=n+","+i);t.setAttribute("points",d.join(" "))}if(e){var l=a.getItem(0),c=a.getItem(a.numberOfItems-1);M(t,1,(c.x+l.x)/2,(c.y+l.y)/2)}}function N(s){var d;s||(s=E);var e=$(x).find(C);_=[],e.each(function(){var e;function t(){-1!==$.inArray(this,s)&&(e=!0)}var r=A(this,"c_start"),n=A(this,"c_end"),i=[w(r),w(n)];for(d=0;d<2;d++){var o=i[d];if(e=!1,$(o).parents().each(t),o&&o.parentNode){if(-1!==$.inArray(o,s)||e){var a=svgCanvas.getStrokedBBox([o]);_.push({elem:o,connector:this,is_start:0===d,start_x:a.x,start_y:a.y})}}else $(this).remove()}})}function F(e){var t,r;if(N(e),_.length)for(t=_.length;t--;){var n=_[t],i=n.connector,o=n.elem,a=(i.getAttribute("stroke-width"),n.is_start?"start":"end"),s=svgCanvas.getStrokedBBox([o]);s.x=n.start_x,s.y=n.start_y,A(i,a+"_bb",s);A(i,a+"_off");var d=n.is_start?"end":"start",l=A(i,d+"_bb"),c=S(l.x+l.width/2,l.y+l.height/2,s,I(a,i));M(i,n.is_start?0:"end",c.x,c.y,!0);var g=S(c.x,c.y,A(i,d+"_bb"),I(d,i));if(M(i,n.is_start?"end":0,g.x,g.y,!0),-1!==navigator.userAgent.indexOf("AppleWebKit")){var u=i.points,v=u.numberOfItems,f=[];for(r=0;r<v;r++)c=u.getItem(r),f[r]=c.x+","+c.y;i.setAttribute("points",f.join(" "))}}}return function(){var e=svgCanvas.groupSelectedElements;svgCanvas.groupSelectedElements=function(){return svgCanvas.removeFromSelection($(C).toArray()),e.apply(this,arguments)};var t=svgCanvas.moveSelectedElements;svgCanvas.moveSelectedElements=function(){svgCanvas.removeFromSelection($(C).toArray());var e=t.apply(this,arguments);return F(),e},h=svgCanvas.getEditorNS()}(),{name:"Connector",buttons:[{id:"mode_connect",type:"mode",title:"Connect two objects",includeWith:{button:"#tool_line",isDefault:!1,position:1},events:{click:function(){svgCanvas.setMode("connector")}}}],addLangData:function(e){return{data:t[e]}},mouseDown:function(e){var t=e.event;u=e.start_x,v=e.start_y;var r=svgCanvas.getMode();if("connector"==r){if(k)return;var n=t.target,i=$(n).parents();if(-1!==$.inArray(x,i)){var o=$(n).closest("foreignObject");p=o.length?o[0]:n;var a=svgCanvas.getStrokedBBox([p]),s=a.x+a.width/2,d=a.y+a.height/2;k=!0,f=y({element:"polyline",attr:{id:l(),points:s+","+d+" "+s+","+d+" "+u+","+v,stroke:"#"+c.initStroke.color,"stroke-width":p.stroke_width&&0!=p.stroke_width?p.stroke_width:c.initStroke.width,fill:"none",opacity:c.initStroke.opacity,style:"pointer-events:none"}}),A(f,"start_bb",a)}return{started:!0}}"select"==r&&N()},mouseMove:function(e){var t=svgCanvas.getZoom(),r=(e.event,e.mouse_x/t),n=e.mouse_y/t,i=r-u,o=n-v,a=svgCanvas.getMode();if("connector"==a&&k){f.getAttribute("stroke-width");var s=S(r,n,A(f,"start_bb"),I("start",f));u=s.x,v=s.y,M(f,0,s.x,s.y,!0),M(f,"end",r,n,!0)}else if("select"==a){for(var d=E.length;d--;){var l=E[d];l&&A(l,"c_start")&&(svgCanvas.removeFromSelection([l]),svgCanvas.getTransformList(l).clear())}_.length&&function(e,t){for(var r=_.length;r--;){var n=_[r],i=n.connector,o=(n.elem,n.is_start?"start":"end"),a=A(i,o+"_bb");a.x=n.start_x+e,a.y=n.start_y+t,A(i,o+"_bb",a);var s=n.is_start?"end":"start",d=A(i,s+"_bb"),l=S(d.x+d.width/2,d.y+d.height/2,a,I(o,i));M(i,n.is_start?0:"end",l.x,l.y,!0);var c=S(l.x,l.y,A(i,s+"_bb"),I(s,i));M(i,n.is_start?"end":0,c.x,c.y,!0)}}(i,o)}},mouseUp:function(e){var t=svgCanvas.getZoom(),r=e.event,n=(e.mouse_x,e.mouse_y,r.target);if("connector"==svgCanvas.getMode()){var i=$(n).closest("foreignObject");i.length&&(n=i[0]);var o=$(n).parents();if(n==p)return{keep:k=!0,element:null,started:k};if(-1===$.inArray(x,o))return $(f).remove(),{keep:k=!1,element:null,started:k};m=n;var a=p.id,s=m.id,d=a+" "+s,l=s+" "+a;if($(x).find(C).filter(function(){var e=this.getAttributeNS(h,"connector");if(e==d||e==l)return!0}).length)return $(f).remove(),{keep:!1,element:null,started:!1};var c=svgCanvas.getStrokedBBox([m]),g=S(u,v,c,I("start",f));return M(f,"end",g.x,g.y,!0),$(f).data("c_start",a).data("c_end",s).data("end_bb",c),h=svgCanvas.getEditorNS(!0),f.setAttributeNS(h,"se:connector",d),f.setAttribute("class",C.substr(1)),f.setAttribute("opacity",1),svgCanvas.addToSelection([f]),svgCanvas.moveToBottomSelectedElement(),b.requestSelector(f).showGrips(!1),{keep:!(k=!1),element:f,started:k}}},selectedChanged:function(e){if($(x).find(C).length){"connector"==svgCanvas.getMode()&&svgCanvas.setMode("select");for(var t=(E=e.elems).length;t--;){var r=E[t];r&&A(r,"c_start")?(b.requestSelector(r).showGrips(!1),e.selectedElement&&!e.multiselected?n(!0):n(!1)):n(!1)}F()}},elementChanged:function(e){var t,r=e.elems[0];if(r&&"svg"===r.tagName&&"svgcontent"===r.id&&(x=r,$(x).find("*").each(function(){var e=this.getAttributeNS(h,"connector");if(e){this.setAttribute("class",C.substr(1));var t=e.split(" "),r=svgCanvas.getStrokedBBox([w(t[0])]),n=svgCanvas.getStrokedBBox([w(t[1])]);$(this).data("c_start",t[0]).data("c_end",t[1]).data("start_bb",r).data("end_bb",n),svgCanvas.getEditorNS(!0)}})),r&&(r.getAttribute("marker-start")||r.getAttribute("marker-mid")||r.getAttribute("marker-end"))){t=r.getAttribute("marker-start");var n=r.getAttribute("marker-mid"),i=r.getAttribute("marker-end");if(f=r,$(r).data("start_off",!!t).data("end_off",!!i),"line"===r.tagName&&n){var o=Number(r.getAttribute("x1")),a=Number(r.getAttribute("x2")),s=Number(r.getAttribute("y1")),d=Number(r.getAttribute("y2")),l=r.id,c=y({element:"polyline",attr:{points:o+","+s+(" "+(o+a)/2+","+(s+d)/2+" ")+a+","+d,stroke:r.getAttribute("stroke"),"stroke-width":r.getAttribute("stroke-width"),"marker-mid":n,fill:"none",opacity:r.getAttribute("opacity")||1}});$(r).after(c).remove(),svgCanvas.clearSelection(),c.id=l,svgCanvas.addToSelection([c]),r=c}}r.getAttribute("class")==C.substr(1)?F([t=w(A(r,"c_start"))]):F()},toolButtonStateUpdate:function(e){e.nostroke&&$("#mode_connect").hasClass("tool_button_current")&&svgEditor.clickSelect(),$("#mode_connect").toggleClass("disabled",e.nostroke)}}})},window.extEyedropper=function(){window.svgEditor&&svgEditor.addExtension("eyedropper",function(e){"use strict";var o=svgEditor.canvas,a=svgedit.history.ChangeElementCommand,s={fillPaint:"red",fillOpacity:1,strokePaint:"black",strokeOpacity:1,strokeWidth:5,strokeDashArray:null,opacity:1,strokeLinecap:"butt",strokeLinejoin:"miter"};function t(e){if("eyedropper"!=o.getMode()){var t=null,r=$("#tool_eyedropper");!e.multiselected&&e.elems[0]&&-1===$.inArray(e.elems[0].nodeName,["svg","g","use"])?(t=e.elems[0],r.removeClass("disabled"),s.fillPaint=t.getAttribute("fill")||"black",s.fillOpacity=t.getAttribute("fill-opacity")||1,s.strokePaint=t.getAttribute("stroke"),s.strokeOpacity=t.getAttribute("stroke-opacity")||1,s.strokeWidth=t.getAttribute("stroke-width"),s.strokeDashArray=t.getAttribute("stroke-dasharray"),s.strokeLinecap=t.getAttribute("stroke-linecap"),s.strokeLinejoin=t.getAttribute("stroke-linejoin"),s.opacity=t.getAttribute("opacity")||1):r.addClass("disabled")}}return{name:"eyedropper",buttons:[{id:"tool_eyedropper",type:"mode",title:"Eye Dropper Tool",key:"I",events:{click:function(){o.setMode("eyedropper")}}}],selectedChanged:t,elementChanged:t,mouseDown:function(e){var t;if("eyedropper"==o.getMode()){var r=e.event.target;if(-1===$.inArray(r.nodeName,["svg","g","use"])){var n={},i=function(e,t,r){n[t]=e.getAttribute(t),e.setAttribute(t,r)};s.fillPaint&&i(r,"fill",s.fillPaint),s.fillOpacity&&i(r,"fill-opacity",s.fillOpacity),s.strokePaint&&i(r,"stroke",s.strokePaint),s.strokeOpacity&&i(r,"stroke-opacity",s.strokeOpacity),s.strokeWidth&&i(r,"stroke-width",s.strokeWidth),s.strokeDashArray&&i(r,"stroke-dasharray",s.strokeDashArray),s.opacity&&i(r,"opacity",s.opacity),s.strokeLinecap&&i(r,"stroke-linecap",s.strokeLinecap),s.strokeLinejoin&&i(r,"stroke-linejoin",s.strokeLinejoin),t=new a(r,n),o.undoMgr.addCommandToHistory(t)}}}}})},window.extGrid=function(){window.svgEditor&&svgEditor.addExtension("view_grid",function(){"use strict";var e=svgedit.NS,g=svgEditor.canvas,t=document.getElementById("svgcanvas").ownerDocument,r=svgEditor.curConfig.showGrid||!1,n=g.assignAttributes,u=document.createElement("canvas"),i=$("#canvasBackground"),v=svgedit.units.getTypeMap(),f=[.01,.1,1,10,100,1e3];$(u).hide().appendTo("body");var o=t.createElementNS(e.SVG,"svg");n(o,{id:"canvasGrid",width:"100%",height:"100%",x:0,y:0,overflow:"visible",display:"none"}),i.append(o);var a=t.createElementNS(e.SVG,"pattern");n(a,{id:"gridpattern",patternUnits:"userSpaceOnUse",x:0,y:0,width:100,height:100});var p=t.createElementNS(e.SVG,"image");n(p,{x:0,y:0,width:100,height:100}),a.appendChild(p),$("#svgroot defs").append(a);var s=t.createElementNS(e.SVG,"rect");function d(e){var t,r=v[svgEditor.curConfig.baseUnit]*e,n=100/r,i=1;for(t=0;t<f.length;t++){var o=f[t];if(n<=(i=o))break}var a=i*r;u.width=a,u.height=a;var s=u.getContext("2d"),d=a/10;for(s.globalAlpha=.2,s.strokeStyle=svgEditor.curConfig.gridColor,t=1;t<10;t++){var l=Math.round(d*t)+.5;s.moveTo(l,a),s.lineTo(l,0),s.moveTo(a,l),s.lineTo(0,l)}s.stroke(),s.beginPath(),s.globalAlpha=.5,s.moveTo(.5,a),s.lineTo(.5,0),s.moveTo(a,.5),s.lineTo(0,.5),s.stroke();var c=u.toDataURL("image/png");p.setAttribute("width",a),p.setAttribute("height",a),p.parentNode.setAttribute("width",a),p.parentNode.setAttribute("height",a),g.setHref(p,c)}function l(){r&&d(g.getZoom()),$("#canvasGrid").toggle(r)}return n(s,{width:"100%",height:"100%",x:0,y:0,"stroke-width":0,stroke:"none",fill:"url(#gridpattern)",style:"pointer-events: none; display:visible;"}),$("#canvasGrid").append(s),{name:"view_grid",zoomChanged:function(e){r&&d(e)},callback:function(){r&&l()},buttons:[{id:"view_grid",events:{click:function(){svgEditor.curConfig.showGrid=r=!r,l()}}}]}})},window.extMarkers=function(){window.svgEditor&&svgEditor.addExtension("Markers",function(m){var h,x=m.addSvgElementFromJson,l=["start","mid","end"],c="se_marker_",w={nomarker:{label:"—"},leftarrow:{element:"path",attr:{d:"M0,50 L100,90 L70,50 L100,10 Z"},label:"◄"},rightarrow:{element:"path",attr:{d:"M100,50 L0,90 L30,50 L0,10 Z"},label:"►"},leftpointing:{element:"path",attr:{d:"M50,48 L90,90 M50,52 L90,10"},label:" ˂"},rightpointing:{element:"path",attr:{d:"M50,48 L10,90 L50,52 L10,10 Z"},label:" >"},break:{element:"path",attr:{d:"M50,20 L50,80"},label:" ∣"},mcircle:{element:"circle",attr:{r:30,cx:50,cy:50},label:" ●"}};function g(e,t){var r=e.getAttribute(t);if(!r)return null;var n=r.match(/\(\#(.*)\)/);return n&&2===n.length?m.getElem(n[1]):null}function s(e,r){"\\"!==r.substr(0,1)&&(r="\\textmarker");var t=document.getElementById(e+"_marker"),n=0;$.each(w,function(e,t){if(-1!==r.indexOf(e))return!1;n++}),t.selectedIndex=n}function i(e){if($("#marker_panel").toggle(e),e){var i,o,a=h[0];$.each(l,function(e,t){var r=g(a,"marker-"+t),n=$("#"+t+"_marker");if(r){if(!r.attributes.se_type)return;i="\\"+r.attributes.se_type.textContent,"\\textmarker"===(o=i)?i=r.lastChild.textContent:n.hide()}else o=i="\\nomarker",n.hide();n.val(i),s(t,o)})}}function u(e,t){var r=m.getElem(e);if(!r&&""!=t&&"\\nomarker"!=t){var n,i=h[0].getAttribute("stroke"),o=50,a=50,s="0 0 100 100",d=10,l=10;if(n="\\"===t.substr(0,1)?t.substr(1):"textmarker",w[n]){if(r=x({element:"marker",attr:{id:e,orient:"auto",style:"pointer-events:none",se_type:n}}),"textmarker"!=n){var c=x(w[n]),g=i;"_o"===n.substr(-2)&&(g="none"),c.setAttribute("fill",g),c.setAttribute("stroke",i),c.setAttribute("stroke-width",10),r.appendChild(c)}else{var u=x(w[n]);u.textContent=t;var v=u.getBBox(),f=v;f.x=0,f.y=0,f.width+=2,f.height+=2,u.setAttribute("x",1),u.setAttribute("y",f.height-1-v.height/4),u.setAttribute("fill",i),o=f.width/2+1,a=f.height/2+1,s=f.x+" "+f.y+" "+f.width+" "+f.height,d=f.width/10,l=f.height/10;var p=x({element:"rect",attr:{x:f.x,y:f.y,width:f.width,height:f.height,fill:"#ffffff",stroke:"none","stroke-width":0}});r.setAttribute("orient",0),r.appendChild(p),r.appendChild(u)}return r.setAttribute("viewBox",s),r.setAttribute("markerWidth",d),r.setAttribute("markerHeight",l),r.setAttribute("refX",o),r.setAttribute("refY",a),m.findDefs().appendChild(r),r}}}function v(n){if("line"!==n.tagName)return n;var e=Number(n.getAttribute("x1")),t=Number(n.getAttribute("x2")),r=Number(n.getAttribute("y1")),i=Number(n.getAttribute("y2")),o=n.id,a=x({element:"polyline",attr:{points:e+","+r+(" "+(e+t)/2+","+(r+i)/2+" ")+t+","+i,stroke:n.getAttribute("stroke"),"stroke-width":n.getAttribute("stroke-width"),fill:"none",opacity:n.getAttribute("opacity")||1}});$.each(l,function(e,t){var r="marker-"+t;n.getAttribute(r)&&a.setAttribute(r,n.getAttribute(r))});var s=new m.BatchCommand;return s.addSubCommand(new m.RemoveElementCommand(n,n.parentNode)),s.addSubCommand(new m.InsertElementCommand(a)),$(n).after(a).remove(),svgCanvas.clearSelection(),a.id=o,svgCanvas.addToSelection([a]),m.addCommandToHistory(s),a}return{name:"Markers",mySetMarker:function(e,r){var n=void 0,i=0;$.each(w,function(e,t){r===i++&&(n=e)}),function(e,t){var r={start_marker:"start",mid_marker:"mid",end_marker:"end"}[e],n="marker-"+r,i=t,o=h[0],a=g(o,n);if(a&&$(a).remove(),o.removeAttribute(n),""==i&&(i="\\nomarker"),"\\nomarker"==i)return s(r,i),m.call("changed",h);u(e=c+r+"_"+o.id,i),svgCanvas.changeSelectedAttribute(n,"url(#"+e+")"),"line"===o.tagName&&"mid"==r&&(o=v(o)),m.call("changed",h),s(r,i)}(e,"\\"+n)},callback:function(){var a=document.getElementById("start_marker"),s=document.getElementById("mid_marker"),d=document.getElementById("end_marker");$.each(w,function(e,t){if(t.label){var r=document.createElement("option");r.value=t.label,r.innerHTML=t.label,r.setAttribute("style","background-color: rgba(33,33,33,1);color: rgba(255,255,255,1);");var n=r.cloneNode(!0),i=r.cloneNode(!0),o=r.cloneNode(!0);a.appendChild(n),s.appendChild(i),d.appendChild(o)}})},selectedChanged:function(e){for(var t=(h=e.elems).length,r=["line","path","polyline"];t--;){var n=h[t];n&&-1!==$.inArray(n.tagName,r)&&e.selectedElement&&!e.multiselected?i(!0):i(!1)}},elementChanged:function(e){var d,a,s,t=e.elems[0];if(t&&(t.getAttribute("marker-start")||t.getAttribute("marker-mid")||t.getAttribute("marker-end"))){s=(a=t).getAttribute("stroke"),$.each(l,function(e,t){var r=g(a,"marker-"+t);if(r&&r.attributes.se_type){var n=r.lastElementChild;if(n){var i=n.getAttribute("fill"),o=n.getAttribute("stroke");i&&"none"!=i&&n.setAttribute("fill",s),o&&"none"!=o&&n.setAttribute("stroke",s)}}}),d=t,$.each(l,function(e,t){var r=c+t+"_"+d.id,n="marker-"+t,i=g(d,n);if(i&&i.attributes.se_type){var o=d.getAttribute(n);if(o){var a=d.id.length,s=o.substr(-a-1,a);d.id!=s&&(u(r,$("#"+t+"_marker").attr("value")),svgCanvas.changeSelectedAttribute(n,"url(#"+r+")"),"line"===d.tagName&&"mid"==t&&(d=v(d)),m.call("changed",h))}}});t&&-1!==$.inArray(t.tagName,["line","path","polyline"])&&i(!0)}}}})},window.extOverview=function(){if(window.svgEditor){var t={};svgEditor.addExtension("overview_window",function(){"use strict";$("#sidepanels").append('\t\t<div id="overview_window_content_pane" style=" width:100%; word-wrap:break-word; display:inline-block; margin-top:20px;">\t\t\t<div id="overview_window_content" style="position:relative; left:12px; top:0px;">\t\t\t\t<div style="background-color:#A0A0A0; display:inline-block; overflow:visible;">\t\t\t\t\t<svg id="overviewMiniView" width="150" height="100" x="0" y="0" viewBox="0 0 4800 3600" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">\t\t\t\t\t\t<use x="0" y="0" xlink:href="#svgroot"> </use>\t\t\t\t\t </svg>\t\t\t\t\t <div id="overview_window_view_box" style="min-width:50px; min-height:50px; position:absolute; top:30px; left:30px; z-index:5; background-color:rgba(255,0,102,0.3);">\t\t\t\t\t </div>\t\t\t\t </div>\t\t\t</div>\t\t</div>');var o=function(){var e=parseFloat($("#workarea").css("height")),t=parseFloat($("#workarea").css("width")),r=$("#workarea").scrollLeft(),n=$("#workarea").scrollTop(),i=parseFloat($("#svgcanvas").css("width")),o=parseFloat($("#svgcanvas").css("height")),a=$("#overviewMiniView").attr("width"),s=$("#overviewMiniView").attr("height"),d=r/i*a,l=n/o*s,c=t/i*a,g=e/o*s;$("#overview_window_view_box").css("min-width",c+"px"),$("#overview_window_view_box").css("min-height",g+"px"),$("#overview_window_view_box").css("top",l+"px"),$("#overview_window_view_box").css("left",d+"px")};$("#workarea").scroll(function(){t.viewBoxDragging||o()}),$("#workarea").resize(o),o();var e=function(){var e=$("#svgroot").attr("width"),t=$("#svgroot").attr("height"),r=640,n=480;svgedit.browser.isIE()&&(n=r=0);var i=t/e*$("#overviewMiniView").attr("width");$("#overviewMiniView").attr("viewBox",r+" "+n+" "+e+" "+t),$("#overviewMiniView").attr("height",i),o()};e(),t.viewBoxDragging=!1;var l=function(){var e=parseFloat($("#svgcanvas").css("width")),t=parseFloat($("#svgcanvas").css("height")),r=$("#overviewMiniView").attr("width"),n=$("#overviewMiniView").attr("height"),i=parseFloat($("#overview_window_view_box").css("left"))/r*e,o=parseFloat($("#overview_window_view_box").css("top"))/n*t;$("#workarea").scrollLeft(i),$("#workarea").scrollTop(o)};return $("#overview_window_view_box").draggable({containment:"parent",drag:l,start:function(){t.viewBoxDragging=!0},stop:function(){t.viewBoxDragging=!1}}),$("#overviewMiniView").click(function(e){var t=e.offsetX||e.originalEvent.layerX,r=e.offsetY||e.originalEvent.layerY,n=$("#overviewMiniView").attr("width"),i=$("#overviewMiniView").attr("height"),o=parseFloat($("#overview_window_view_box").css("min-width")),a=parseFloat($("#overview_window_view_box").css("min-height")),s=t-.5*o,d=r-.5*a;s<0&&(s=0),d<0&&(d=0),n<s+o&&(s=n-o),i<d+a&&(d=i-a),$("#overview_window_view_box").css("top",d+"px"),$("#overview_window_view_box").css("left",s+"px"),l()}),{name:"overview window",canvasUpdated:e,workareaResized:o}})}},window.extPanning=function(){window.svgEditor&&svgEditor.addExtension("ext-panning",function(){"use strict";return{name:"Extension Panning",buttons:[{id:"ext-panning",type:"mode",title:"Panning",events:{click:function(){svgCanvas.setMode("ext-panning")}}}],mouseDown:function(){if("ext-panning"==svgCanvas.getMode())return svgEditor.setPanning(!0),{started:!0}},mouseUp:function(){if("ext-panning"==svgCanvas.getMode())return svgEditor.setPanning(!1),{keep:!1,element:null}}}})},window.extStorage=function(){window.svgEditor&&svgEditor.addExtension("storage",function(){var d=svgEditor.curConfig.emptyStorageOnDecline,l=svgEditor.curConfig.noStorageOnLoad,c=svgEditor.curConfig.forceStorage,g=svgEditor.storage;function u(n){n=n?"storagePrompt="+n:"";var e=top.location;-1<e.href.indexOf("storagePrompt=")?e.href=e.href.replace(/([&?])storagePrompt=[^&]*(&?)/,function(e,t,r){return(n?t:"")+n+(!n&&r?t:r||"")}):e.href+=(-1<e.href.indexOf("?")?"&":"?")+n}function v(e){if(g){var t="svgedit-"+svgEditor.curConfig.canvasName;e?g.setItem(t,e):g.removeItem(t)}}function f(e){document.cookie=encodeURIComponent(e)+"=; expires=Thu, 01 Jan 1970 00:00:00 GMT"}function p(){window.addEventListener("beforeunload",function(e){if(document.cookie.match(/(?:^|;\s*)store=(?:prefsAndContent|prefsOnly)/)){var t;document.cookie.match(/(?:^|;\s*)store=prefsAndContent/)&&v(svgCanvas.getSvgString()),svgEditor.setConfig({no_save_warning:!0});var r=svgEditor.curPrefs;for(t in r)if(r.hasOwnProperty(t)){var n=r[t];if(t="web-edit-"+t,!(null!=n))continue;g?g.setItem(t,n):window.widget?widget.setPreferenceForKey(n,t):(n=encodeURIComponent(n),document.cookie=encodeURIComponent(t)+"="+n+"; expires=Fri, 31 Dec 9999 23:59:59 GMT")}}},!1)}var m=!1;return{name:"storage",langReady:function(e){var t=e.uiStrings,r=$.deparam.querystring(!0).storagePrompt;if(!m)if(m=!0,c||!0!==r&&(!1===r||document.cookie.match(/(?:^|;\s*)store=(?:prefsAndContent|prefsOnly)/)))l&&!c||p();else{var n=[];g?n.unshift({value:"prefsAndContent",text:t.confirmSetStorage.storagePrefsAndContent},{value:"prefsOnly",text:t.confirmSetStorage.storagePrefsOnly},{value:"noPrefsOrContent",text:t.confirmSetStorage.storageNoPrefsOrContent}):n.unshift({value:"prefsOnly",text:t.confirmSetStorage.storagePrefs},{value:"noPrefsOrContent",text:t.confirmSetStorage.storageNoPrefs});var i=$("#dialog_container")[0].style.width,o=$("#dialog_container")[0].style.marginLeft,a=$("#dialog_content")[0].style.height,s=$("#dialog_container")[0].style.height;$("#dialog_content")[0].style.height="120px",$("#dialog_container")[0].style.height="170px",$("#dialog_container")[0].style.width="800px",$("#dialog_container")[0].style.marginLeft="-400px",$.select(t.confirmSetStorage.message,n,function(e,t){if(e&&"noPrefsOrContent"!==e){if(document.cookie="store="+encodeURIComponent(e)+"; expires=Fri, 31 Dec 9999 23:59:59 GMT",!0===r&&t)return void u()}else if(f("store"),e&&d&&function(){var e;for(e in v(""),svgEditor.curPrefs)svgEditor.curPrefs.hasOwnProperty(e)&&(e="web-edit-"+e,g&&g.removeItem(e),f(e))}(),e&&t)return void u("false");$("#dialog_container")[0].style.width=i,$("#dialog_container")[0].style.marginLeft=o,$("#dialog_content")[0].style.height=a,$("#dialog_container")[0].style.height=s,p(),svgEditor.storagePromptClosed=!0},null,null,{label:t.confirmSetStorage.rememberLabel,checked:!1,tooltip:t.confirmSetStorage.rememberTooltip})}}}})},window.extSwitch=function(){svgEditor.addExtension("switch",function(_){"use strict";var c,C,E,A,S=svgEditor.canvas,I=S.getRootElem(),M={},N="switch",g="svg-ext-"+N,u="SWI_",v={};return{callback:function(){$("#switch_panel").hide()},mouseDown:function(e){var t=S.getColor("fill"),r=S.getColor("stroke"),n=S.getStrokeWidth();if(S.getMode()===N){for(var i=E=e.start_x,o=A=e.start_y,a={fill:t,stroke:r,"font-size":S.getFontSize(),stroke:r,"stroke-width":n,"font-family":S.getFontFamily(),"text-anchor":"middle","xml:space":"preserve"},s={elements:[{type:"path",attr:{id:"X-"+S.getNextId().replace("svg_",u),d:"m2.9674 294.65-1.9091-2.9389"}},{type:"path",attr:{id:S.getNextId().replace("svg_",u),d:"m2.9959 290.12v1.0583"}},{type:"circle",attr:{id:S.getNextId().replace("svg_",u),cx:"2.9891",cy:"291.41",r:".2581"}},{type:"path",attr:{id:S.getNextId().replace("svg_",u),d:"m2.9959 295.94v-1.0583"}},{type:"circle",attr:{id:S.getNextId().replace("svg_",u),cx:"2.9891",cy:"-294.66",r:".2581",transform:"scale(1,-1)"}}]},d={type:g,x:i,y:o,style:"pointer-events:none"},l=0;l<s.elements.length;l++)$.extend(s.elements[l].attr,a);return $.extend(d,a),v.x=i,v.y=o,c=S.getNextId().replace("svg_",u),(C=_.addSvgGroupFromJson({group:"g",id:c,type:g,attr:d,elements:s.elements})).setAttribute("transform","translate("+i+","+o+") scale(0.005) translate("+-i+","+-o+")"),_.recalculateDimensions(C),M=C.getBBox(),{started:!0}}},mouseMove:function(e){if(S.getMode()===N){var t=S.getZoom(),r=e.event,n=e.mouse_x/t,i=e.mouse_y/t,o=S.getTransformList(C),a=C.getBBox(),s=a.x,d=a.y,l=a.width,c=a.height,g=n-E,u=i-A,v=(Math.min(E,n),Math.min(A,i),Math.abs(n-E)),f=Math.abs(i-A),p=0,m=0,h=c?(c+u)/c:1,x=l?(l+g)/l:1;x=v/M.width||1,h=f/M.height||1,n<E&&(p=M.width),i<A&&(m=M.height);var w=I.createSVGTransform(),y=I.createSVGTransform(),b=I.createSVGTransform();if(w.setTranslate(-(s+p),-(d+m)),!r.shiftKey){var k=Math.min(Math.abs(x),Math.abs(h));x=k*(x<0?-1:1),h=k*(h<0?-1:1)}y.setScale(x,h),b.setTranslate(s+p,d+m),o.appendItem(b),o.appendItem(y),o.appendItem(w),_.recalculateDimensions(C),M=C.getBBox()}},mouseUp:function(e){if(S.getMode()===N)return{keep:e.event.clientX!=v.x&&e.event.clientY!=v.y,element:C,started:!1}},getClassId:function(){return g},getPrefixId:function(){return u}}})},window.extValue=function(){svgEditor.addExtension("value",function(l){"use strict";var c,g,u=svgEditor.canvas,v="value",f="svg-ext-"+v,p="VAL_",m={};return{callback:function(){$("#value_panel").hide()},mouseDown:function(e){if(u.getMode()===v){var t=u.getColor("fill"),r=u.getColor("stroke");t!==r&&(t=r);for(var n=e.start_x,i=e.start_y,o={fill:t,stroke:r,"font-size":14,stroke:r,"stroke-width":0,"font-family":"sans-serif","text-anchor":"middle","xml:space":"preserve",x:n,y:i},a={elements:[{type:"text",content:"##.##",attr:{id:u.getNextId().replace("svg_",p)}}]},s={type:f,x:n,y:i,style:"pointer-events:none"},d=0;d<a.elements.length;d++)$.extend(a.elements[d].attr,o);return $.extend(s,o),m.x=n,m.y=i,c=u.getNextId().replace("svg_",p),g=l.addSvgGroupFromJson({group:"g",id:c,type:f,attr:s,elements:a.elements}),{started:!0}}},mouseMove:function(e){},mouseUp:function(e){if(u.getMode()===v)return{keep:e.event.clientX!=m.x&&e.event.clientY!=m.y,element:g,started:!1}},getClassId:function(){return f},setGaugeAttribute:function(e){0===e.elem.id.indexOf(p)&&e.elem.children&&e.elem.children.length&&e.elem.children[0].setAttribute(e.attr,e.value)},getPrefixId:function(){return p}}})},window.extHtmlInput=function(){window.svgEditor&&svgEditor.addExtension("html_input",function(d){"use strict";var l,c,g=svgEditor.canvas,u=80,v=24,f="html_input",p="svg-ext-"+f,m="HXI_",t={};return{callback:function(){$("#html_input_panel").hide()},mouseDown:function(e){if(g.getMode()===f){!0;var t=g.getColor("fill"),r=g.getColor("stroke"),n=e.start_x,i=e.start_y,o=g.getNextId(),a=g.getNextId().replace("svg_",m);"font-size:14px;","font-family:sans-serif;";var s={elements:[{type:"rect",attr:{x:n,y:i-v,width:u,height:v,"stroke-width":0,id:o}},{type:"foreignObject",content:[{tag:"input",attr:{id:"I-"+a,type:"text",value:"#.##"},style:"width:calc(100% - 7px);height:calc(100% - 7px);text-align:right;border: unset;font-size:14px;font-family:sans-serif;"}],attr:{x:n,y:i-v,height:v,width:u,id:"H-"+a}}]};return l=d.getNextId().replace("svg_",m),c=d.addSvgGroupFromJson({group:"g",id:l,type:p,attr:{type:p,style:"pointer-events:none",fill:t,stroke:r,"stroke-width":1,"xml:space":"preserve"},elements:s.elements}),{started:!0}}},mouseMove:function(e){},mouseUp:function(e){if(g.getMode()===f)return{keep:e.event.clientX!=t.x&&e.event.clientY!=t.y,element:c,started:!1}},getClassId:function(){return p},getPrefixId:function(){return m},setFontAttribute:function(t){t.elem.getAttribute("type")===p&&d.walkTree(t.elem,function(e){"input"===e.nodeName.toLowerCase()&&(t.attr=t.attr.replace("text-anchor","text-align"),t.value=t.value.replace("end","right").replace("middle","center").replace("start","left"),e.style[t.attr]=t.value)})},getFontAttribute:function(e){if(e.elem.getAttribute("type")===p){var r=!1;return d.walkTree(e.elem,function(e){if("input"===e.nodeName.toLowerCase()){var t=e.style["text-align"];t=t.replace("right","end").replace("center","middle").replace("left","start"),r={fontSize:e.style["font-size"],fontFamily:e.style["font-family"],textAnchor:t}}}),r}}}})},window.extHtmlButton=function(){window.svgEditor&&svgEditor.addExtension("html_button",function(l){"use strict";var c,g,u=svgEditor.canvas,v=80,f=32,p="html_button",m="svg-ext-"+p,h="HXB_",t={};return{callback:function(){$("#html_button_panel").hide()},mouseDown:function(e){if(u.getMode()===p){!0;var t=u.getColor("fill"),r=u.getColor("stroke"),n=e.start_x,i=e.start_y,o=u.getNextId(),a=u.getNextId().replace("svg_",h),s="width:calc(100% - 6px);height:calc(100% - 6px);text-align:center;background-color:"+t+";color:"+r+";";s+="font-size:14px;";var d={elements:[{type:"rect",attr:{x:n,y:i-f,width:v,height:f,"stroke-width":0,id:o}},{type:"foreignObject",content:[{tag:"button",attr:{id:"B-"+a,class:"md-btn md-btn-raised"},style:s+="font-family:sans-serif;"}],attr:{x:n,y:i-f,height:f,width:v,id:"H-"+a}}]};return c=u.getNextId().replace("svg_",h),g=l.addSvgGroupFromJson({group:"g",id:c,type:m,attr:{type:m,style:"pointer-events:none",fill:"rgba(0,0,0,0)",stroke:"rgba(0,0,0,0)","xml:space":"preserve"},elements:d.elements}),{started:!0}}},mouseMove:function(e){},mouseUp:function(e){if(u.getMode()===p)return{keep:e.event.clientX!=t.x&&e.event.clientY!=t.y,element:g,started:!1}},getClassId:function(){return m},getPrefixId:function(){return h},setFontAttribute:function(t){t.elem.getAttribute("type")===m&&l.walkTree(t.elem,function(e){"button"===e.nodeName.toLowerCase()&&(t.attr=t.attr.replace("text-anchor","text-align"),t.value=t.value.replace("end","right").replace("middle","center").replace("start","left"),e.style[t.attr]=t.value)})},getFontAttribute:function(e){if(e.elem.getAttribute("type")===m){var r=!1;return l.walkTree(e.elem,function(e){if("button"===e.nodeName.toLowerCase()){var t=e.style["text-align"];t=t.replace("right","end").replace("center","middle").replace("left","start"),r={fontSize:e.style["font-size"],fontFamily:e.style["font-family"],textAnchor:t}}}),r}}}})},window.extHtmlSelect=function(){window.svgEditor&&svgEditor.addExtension("html_select",function(l){"use strict";var c,g,u=svgEditor.canvas,v=80,f=26,p="html_select",m="svg-ext-"+p,h="HXS_",t={};return{callback:function(){$("#html_select_panel").hide()},mouseDown:function(e){if(u.getMode()===p){!0;var t=u.getColor("fill"),r=u.getColor("stroke"),n=e.start_x,i=e.start_y,o=u.getNextId(),a=u.getNextId().replace("svg_",h),s="width:100%;height:100%;text-align: left;margin-top:unset;background-color:"+t+";color:"+r+";";s+="font-size:14px;";var d={elements:[{type:"rect",attr:{x:n,y:i-f,width:v,height:f,fill:t,stroke:r,"stroke-width":0,id:o}},{type:"foreignObject",content:[{tag:"select",attr:{id:"S-"+a},style:s+="font-family:sans-serif;"}],attr:{x:n,y:i-f,height:f,width:v,id:"H-"+a}}]};return c=l.getNextId().replace("svg_",h),g=l.addSvgGroupFromJson({group:"g",id:c,type:m,attr:{type:m,style:"pointer-events:none",fill:t,stroke:r,"stroke-width":1,"xml:space":"preserve"},elements:d.elements}),{started:!0}}},mouseMove:function(e){},mouseUp:function(e){if(u.getMode()===p)return{keep:e.event.clientX!=t.x&&e.event.clientY!=t.y,element:g,started:!1}},getClassId:function(){return m},getPrefixId:function(){return h},setFontAttribute:function(t){t.elem.getAttribute("type")===m&&l.walkTree(t.elem,function(e){"select"===e.nodeName.toLowerCase()&&(t.attr=t.attr.replace("text-anchor","text-align"),t.value=t.value.replace("end","right").replace("middle","center").replace("start","left"),e.style[t.attr]=t.value)})},getFontAttribute:function(e){if(e.elem.getAttribute("type")===m){var r=!1;return l.walkTree(e.elem,function(e){if("select"===e.nodeName.toLowerCase()){var t=e.style["text-align"];t=t.replace("right","end").replace("center","middle").replace("left","start"),r={fontSize:e.style["font-size"],fontFamily:e.style["font-family"],textAnchor:t}}}),r}}}})},window.extHtmlSwitch=function(){window.svgEditor&&svgEditor.addExtension("html_switch",function(d){"use strict";var l,c,g=svgEditor.canvas,u=50,v=28,f="html_switch",p="svg-ext-"+f,m="HXT_",t={};return{callback:function(){$("#html_switch_panel").hide()},mouseDown:function(e){if(g.getMode()===f){!0;var t=g.getColor("fill"),r=g.getColor("stroke"),n=e.start_x,i=e.start_y,o=g.getNextId(),a=g.getNextId().replace("svg_",m),s={elements:[{type:"rect",attr:{x:n,y:i-v,width:u,height:v,"stroke-width":0,id:o}},{type:"foreignObject",content:[{tag:"label",attr:{id:"T-"+a,class:"md-switch"},style:"width:calc(100% - 6px);height:calc(100% - 6px);text-align:center;background-color:"+t+";color:"+r+";margin: 3px 3px 3px 3px;"}],attr:{x:n,y:i-v,height:v,width:u,id:"H-"+a}}]};return l=g.getNextId().replace("svg_",m),c=d.addSvgGroupFromJson({group:"g",id:l,type:p,attr:{type:p,style:"pointer-events:none",fill:"rgba(0,0,0,0)",stroke:"rgba(0,0,0,0)","xml:space":"preserve"},elements:s.elements}),{started:!0}}},mouseMove:function(e){if("resize"===g.getMode()&&e&&e.selected&&e.selected.id&&e.selected.id.startsWith(m))return e.selected.id},mouseUp:function(e){if(g.getMode()===f)return{keep:e.event.clientX!=t.x&&e.event.clientY!=t.y,element:c,started:!1}},getClassId:function(){return p},getPrefixId:function(){return m}}})},window.extHtmlChart=function(){window.svgEditor&&svgEditor.addExtension("html_chart",function(d){"use strict";var l,c,g=svgEditor.canvas,u=380,v=240,f="html_chart",p="svg-ext-"+f,m="HXC_",r={};return{callback:function(){$("#html_chart_panel").hide()},mouseDown:function(e){if(g.getMode()===f){!0;var t=g.getColor("fill"),r=g.getColor("stroke"),n=e.start_x,i=e.start_y,o=g.getNextId(),a=g.getNextId().replace("svg_",m),s={elements:[{type:"rect",attr:{x:n,y:i-v,width:u,height:v,"stroke-width":0,id:o}},{type:"foreignObject",content:[{tag:"div",attr:{id:"D-"+a},style:"width:100%;height:100%;"}],attr:{x:n,y:i-v,height:v,width:u,id:"H-"+a}}]};return l=d.getNextId().replace("svg_",m),c=d.addSvgGroupFromJson({group:"g",id:l,type:p,attr:{type:p,style:"pointer-events:none",fill:t,stroke:r,"stroke-width":1,"font-size":g.getFontSize(),"font-family":g.getFontFamily(),"text-anchor":"right","xml:space":"preserve"},elements:s.elements}),{started:!0}}},mouseMove:function(e){if("resize"===g.getMode()&&e&&e.selected&&e.selected.id&&e.selected.id.startsWith(m))return e.selected.id},mouseUp:function(e){var t=g.getMode();return t!==f?"select"===t&&e&&e.selected&&e.selected.id&&e.selected.id.startsWith(m)?e.selected.id:void 0:{keep:e.event.clientX!=r.x&&e.event.clientY!=r.y,element:c,started:!1}},getClassId:function(){return p},getPrefixId:function(){return m}}})},window.extHtmlGraph=function(){window.svgEditor&&svgEditor.addExtension("html_graph",function(c){"use strict";var g,u,v=svgEditor.canvas,f={width:380,height:240},p={width:240,height:240},m=f,h="html_graph",x="svg-ext-"+h,w="HXC_",r={};return{callback:function(){$("#html_graph_panel").hide()},mouseDown:function(e){var t=v.getMode();if(t.startsWith(h)){-1!==t.indexOf("pie")?(m=p,x+="-pie"):(m=f,x+="-bar"),!0;var r=v.getColor("fill"),n=v.getColor("stroke"),i=e.start_x,o=e.start_y,a=v.getNextId(),s=v.getNextId().replace("svg_",w),d=[{tag:"div",attr:{id:"D-"+s},style:"width:100%;height:100%;"}],l={elements:[{type:"rect",attr:{x:i,y:o-m.height,width:m.width,height:m.height,"stroke-width":0,id:a}},{type:"foreignObject",content:d,attr:{x:i,y:o-m.height,height:m.height,width:m.width,id:"H-"+s}}]};return g=c.getNextId().replace("svg_",w),u=c.addSvgGroupFromJson({group:"g",id:g,type:x,attr:{type:x,style:"pointer-events:none",fill:r,stroke:n,"stroke-width":1,"font-size":v.getFontSize(),"font-family":v.getFontFamily(),"text-anchor":"right","xml:space":"preserve"},elements:l.elements}),{started:!0}}},mouseMove:function(e){if("resize"===v.getMode()&&e&&e.selected&&e.selected.id&&e.selected.id.startsWith(w))return e.selected.id},mouseUp:function(e){var t=v.getMode();return t.startsWith(h)?{keep:e.event.clientX!=r.x&&e.event.clientY!=r.y,element:u,started:!1}:"select"===t&&e&&e.selected&&e.selected.id&&e.selected.id.startsWith(w)?e.selected.id:void 0},getClassId:function(){return x},getPrefixId:function(){return w}}})},window.extHtmlBag=function(){window.svgEditor&&svgEditor.addExtension("html_bag",function(d){"use strict";var l,c,g=svgEditor.canvas,u=200,v=160,f="html_bag",p="svg-ext-"+f,m="BAG_",r={};return{callback:function(){},mouseDown:function(e){if(g.getMode()===f){!0;var t=g.getColor("fill"),r=g.getColor("stroke"),n=e.start_x,i=e.start_y,o=g.getNextId(),a=g.getNextId().replace("svg_",m),s={elements:[{type:"rect",attr:{x:n,y:i-v,width:u,height:v,"stroke-width":0,id:o}},{type:"foreignObject",content:[{tag:"div",attr:{id:"D-"+a},style:"width:100%;height:100%;"}],attr:{x:n,y:i-v,height:v,width:u,id:"H-"+a}}]};return l=d.getNextId().replace("svg_",m),c=d.addSvgGroupFromJson({group:"g",id:l,type:p,attr:{type:p,style:"pointer-events:none",fill:t,stroke:r,"stroke-width":1,"font-size":g.getFontSize(),"font-family":g.getFontFamily(),"text-anchor":"right","xml:space":"preserve"},elements:s.elements}),{started:!0}}},mouseMove:function(e){if("resize"===g.getMode()&&e&&e.selected&&e.selected.id&&e.selected.id.startsWith(m))return e.selected.id},mouseUp:function(e){var t=g.getMode();return t!==f?"select"===t&&e&&e.selected&&e.selected.id&&e.selected.id.startsWith(m)?e.selected.id:void 0:{keep:e.event.clientX!=r.x&&e.event.clientY!=r.y,element:c,started:!1}},getClassId:function(){return p},getPrefixId:function(){return m}}})},window.extGaugeProgress=function(){window.svgEditor&&svgEditor.addExtension("gauge_progress",function(v){"use strict";var f,p,m=svgEditor.canvas,h=100,x=25,w="gauge_progress",y="svg-ext-"+w,b="GXP_",k={};return{callback:function(){$("#gauge_progress_panel").hide()},mouseDown:function(e){if(m.getMode()===w){var t,r=m.getColor("fill"),n=m.getColor("stroke"),i=m.getStrokeWidth(),o=m.getFontSize(),a=e.start_x,s=e.start_y-h,d={"font-size":o,stroke:n,"stroke-width":i,"font-family":m.getFontFamily(),"xml:space":"preserve"},l=m.getNextId().replace("svg_",b);t=[];for(var c={elements:[{type:"rect",attr:{id:"A-"+m.getNextId().replace("svg_",b),x:a,y:s,width:x,height:h,fill:r}},{type:"rect",attr:{id:"B-"+m.getNextId().replace("svg_",b),x:a,y:s+h/2,width:x,height:h/2,fill:"#1565c0"}},{type:"foreignObject",content:t,attr:{x:a,y:s,height:h,width:x,id:"H-"+l}}]},g={type:y,x:a,y:s,style:"pointer-events:none"},u=0;u<c.elements.length;u++)$.extend(c.elements[u].attr,d);return $.extend(g,d),k.x=a,k.y=s,f=m.getNextId().replace("svg_",b),p=v.addSvgGroupFromJson({group:"g",id:f,type:y,attr:g,elements:c.elements}),{started:!0}}},mouseMove:function(e){m.getMode()},mouseUp:function(e){if(m.getMode()===w)return{keep:e.event.clientX!=k.x&&e.event.clientY!=k.y,element:p,started:!1}},getClassId:function(){return y},getPrefixId:function(){return b}}})},window.extGaugeSemaphore=function(){svgEditor.addExtension("gauge_semaphore",function(c){"use strict";var g,u,v=svgEditor.canvas,f="gauge_semaphore",p="svg-ext-"+f,m="GSE_",h={};return{callback:function(){$("#gauge_semaphore_panel").hide()},mouseDown:function(e){if(v.getMode()===f){for(var t=v.getColor("fill"),r=v.getColor("stroke"),n=v.getStrokeWidth(),i=e.start_x,o=e.start_y-30,a={fill:t,"font-size":v.getFontSize(),stroke:r,"stroke-width":n,"font-family":v.getFontFamily(),"xml:space":"preserve"},s={elements:[{type:"ellipse",attr:{id:v.getNextId().replace("svg_",m),cx:"15",cy:"15",rx:"14",ry:"14","stroke-width":"none"}}]},d={type:p,x:i,y:o,style:"pointer-events:none"},l=0;l<s.elements.length;l++)$.extend(s.elements[l].attr,a);return $.extend(d,a),h.x=i,h.y=o,g=v.getNextId().replace("svg_",m),(u=c.addSvgGroupFromJson({group:"g",id:g,type:p,attr:d,elements:s.elements})).setAttribute("transform","translate("+i+","+o+")"),c.recalculateDimensions(u),u.getBBox(),{started:!0}}},mouseMove:function(e){},mouseUp:function(e){if(v.getMode()===f)return{keep:e.event.clientX!=h.x&&e.event.clientY!=h.y,element:u,started:!1}},getClassId:function(){return p},getPrefixId:function(){return m}}})},window.extShapes=function(){window.svgEditor&&svgEditor.addExtension("shapes",function(){"use strict";var _,p,C,E,A,m=svgEditor.shapesList,S=svgEditor.canvas,h="SHE_",I={},x="svg-ext-",w={};return{callback:function(){},mouseDown:function(e){var t=S.getMode();if(x="svg-ext-"+t,p=t,void 0!==(_=m.find(function(e){return e.name===p}))){var r=S.getColor("fill"),n=S.getColor("stroke"),i=S.getFontSize(),o=S.getFontFamily(),a=S.getStrokeWidth();S.getStyle();r===n&&(r="#FFFFFF",n="#000000");for(var s=E=e.start_x,d=A=e.start_y,l={fill:r,stroke:n,"stroke-width":a,"font-size":i,"font-family":o,"text-anchor":"middle","xml:space":"preserve"},c={elements:[]},g=0;g<_.content.length;g++){var u=_.content[g],v={id:u.id+S.getNextId().replace("svg_",h),"stroke-width":a};$.extend(v,u.attr),c.elements.push({type:u.type,content:u.content,attr:v})}var f={type:x,x:s,y:d,style:"pointer-events:none"};return $.extend(f,l),w.x=s,w.y=d,p=S.getNextId().replace("svg_",h),(C=S.addSvgGroupFromJson({group:"g",id:p,type:x,attr:f,elements:c.elements})).setAttribute("transform","translate("+s+","+d+")"),S.recalculateDimensions(C),I=C.getBBox(),{started:!0}}},mouseMove:function(e){if(void 0!==_){var t=S.getZoom(),r=e.event,n=e.mouse_x/t,i=e.mouse_y/t;svgEditor.curConfig.gridSnapping&&(n=svgedit.utilities.snapToGrid(n),i=svgedit.utilities.snapToGrid(i));var o=S.getTransformList(C),a=C.getBBox(),s=a.x,d=a.y,l=a.width,c=a.height,g=n-E,u=i-A,v=(Math.min(E,n),Math.min(A,i),Math.abs(n-E)),f=Math.abs(i-A),p=0,m=0,h=c?(c+u)/c:1,x=l?(l+g)/l:1;x=v/I.width||1,h=f/I.height||1,n<E&&(p=I.width),i<A&&(m=I.height);var w=svgroot.createSVGTransform(),y=svgroot.createSVGTransform(),b=svgroot.createSVGTransform();if(w.setTranslate(-(s+p),-(d+m)),!r.shiftKey){var k=Math.min(Math.abs(x),Math.abs(h));x=k*(x<0?-1:1),h=k*(h<0?-1:1)}y.setScale(x,h),b.setTranslate(s+p,d+m),o.appendItem(b),o.appendItem(y),o.appendItem(w),S.recalculateDimensions(C),I=C.getBBox()}},mouseUp:function(e){if(void 0!==_)return{keep:e.event.clientX!=w.x&&e.event.clientY!=w.y,element:C,started:!1}},getClassId:function(){return x},getPrefixId:function(){return h}}})},window.extLinear=function(){window.svgEditor&&svgEditor.addExtension("help-linear",function(){"use strict";var e="rgba(255, 0, 0, 0.5)",o=svgEditor.canvas,a=["line","path","pipe"],s=!1,t=svgedit.NS,d=o.assignAttributes,r=document.getElementById("svgcanvas").ownerDocument,l=document.getElementById("canvasBackground"),c=r.createElementNS(t.SVG,"line");d(c,{x1:0,y1:0,x2:0,y2:0,"stroke-width":1,stroke:e});var g=r.createElementNS(t.SVG,"line");function n(){s=!1,d(c,{x1:0,y1:0,x2:0,y2:0}),d(g,{x1:0,y1:0,x2:0,y2:0})}return d(g,{x1:0,y1:0,x2:0,y2:0,"stroke-width":1,stroke:e}),l.append(c),l.append(g),{callback:function(){},mouseDown:function(e){var t=o.getMode();-1!==a.indexOf(t)?s=!0:n()},mouseMove:function(e){if(s){var t=o.getMode();-1!==a.indexOf(t)&&(r=e.mouse_x,n=e.mouse_y,i=l.getBBox(),d(c,{x1:r,y1:0,x2:r,y2:i.height}),d(g,{x1:0,y1:n,x2:i.width,y2:n}))}var r,n,i},mouseUp:function(e){if(s&&"line"!=o.getMode())return;n()}}})},window.extPipe=function(){window.svgEditor&&svgEditor.addExtension("pipe",function(e){"use strict";var g=svgEditor.canvas,u="svg-ext-pipe",v="PIE_";return{name:"pipe",initPipe:function(e){if(!e||!e[0])return!1;var t=document.getElementById(e[0].id);if(!t)return!1;var r=e[0].property;if("path"==t.nodeName){var n=t.getBBox(),i=t.getAttribute("d"),o=r.contentSpace+" "+r.contentSpace;t.remove();var a=[{type:"path",attr:{id:"b"+g.getNextId().replace("svg_",v),d:i,"stroke-width":r.borderWidth,stroke:r.border,fill:"none"}},{type:"path",attr:{id:"p"+g.getNextId().replace("svg_",v),d:i,"stroke-width":r.pipeWidth,stroke:r.pipe,fill:"none"}},{type:"path",attr:{id:"c"+g.getNextId().replace("svg_",v),d:i,"stroke-width":r.contentWidth,stroke:r.content,fill:"none","stroke-dasharray":o}}],s=g.getNextId().replace("svg_",v),d={type:u,x:n.x,y:n.y,style:"pointer-events:none"};return $.extend(d,{"xml:space":"preserve"}),{keep:!0,element:g.addSvgGroupFromJson({group:"g",id:s,type:u,attr:d,elements:a}),started:!1}}for(var l=0;l<t.childNodes.length;l++){var c=t.childNodes[l];if(0<=c.id.indexOf("b"+v))c.setAttribute("stroke-width",r.borderWidth),c.setAttribute("stroke",r.border);else if(0<=c.id.indexOf("p"+v))c.setAttribute("stroke-width",r.pipeWidth),c.setAttribute("stroke",r.pipe);else if(0<=c.id.indexOf("c"+v)){c.setAttribute("stroke-width",r.contentWidth),c.setAttribute("stroke",r.content);o=r.contentSpace+" "+r.contentSpace;c.setAttribute("stroke-dasharray",o)}}return{keep:!0,element:t,started:!1}},getClassId:function(){return u},getPrefixId:function(){return v}}})},window.extHtmlSlider=function(){window.svgEditor&&svgEditor.addExtension("html_slider",function(d){"use strict";var l,c,g=svgEditor.canvas,u=200,v=200,f="html_slider",p="svg-ext-"+f,m="SLI_",r={};return{callback:function(){},mouseDown:function(e){if(g.getMode()===f){!0;var t=g.getColor("fill"),r=g.getColor("stroke"),n=e.start_x,i=e.start_y,o=g.getNextId(),a=g.getNextId().replace("svg_",m),s={elements:[{type:"rect",attr:{x:n,y:i-v,width:u,height:v,"stroke-width":0,id:o}},{type:"foreignObject",content:[{tag:"div",attr:{id:"D-"+a},style:"width:100%;height:100%;"}],attr:{x:n,y:i-v,height:v,width:u,id:"H-"+a}}]};return l=d.getNextId().replace("svg_",m),c=d.addSvgGroupFromJson({group:"g",id:l,type:p,attr:{type:p,style:"pointer-events:none",fill:t,stroke:r,"stroke-width":1,"font-size":g.getFontSize(),"font-family":g.getFontFamily(),"text-anchor":"right","xml:space":"preserve"},elements:s.elements}),{started:!0}}},mouseMove:function(e){if("resize"===g.getMode()&&e&&e.selected&&e.selected.id&&e.selected.id.startsWith(m))return e.selected.id},mouseUp:function(e){var t=g.getMode();return t!==f?"select"===t&&e&&e.selected&&e.selected.id&&e.selected.id.startsWith(m)?e.selected.id:void 0:{keep:e.event.clientX!=r.x&&e.event.clientY!=r.y,element:c,started:!1}},getClassId:function(){return p},getPrefixId:function(){return m}}})},window.extOwnCtrl=function(){window.svgEditor&&svgEditor.addExtension("own_ctrl",function(c){"use strict";var g,u,v=svgEditor.canvas,f=220,p=140,m="own_ctrl",h="svg-ext-"+m,x=h,w="OXC_",r={};return{callback:function(){$("#own_ctrl_panel").hide()},mouseDown:function(e){var t=v.getMode();if(t.startsWith(m)){var r=t.replace(m,"");x=h+r,!0;var n=v.getColor("fill"),i=v.getColor("stroke"),o=e.start_x,a=e.start_y,s=v.getNextId(),d=v.getNextId().replace("svg_",w),l={elements:[{type:"rect",attr:{x:o,y:a-p,width:f,height:p,"stroke-width":0,id:s}},{type:"foreignObject",content:[{tag:"div",attr:{id:"D-"+d},style:"width:100%;height:100%;"}],attr:{x:o,y:a-p,height:p,width:f,id:"H-"+d}}]};return g=c.getNextId().replace("svg_",w),u=c.addSvgGroupFromJson({group:"g",id:g,type:x,attr:{type:x,style:"pointer-events:none",fill:n,stroke:i,"stroke-width":1,"font-size":v.getFontSize(),"font-family":v.getFontFamily(),"text-anchor":"right","xml:space":"preserve"},elements:l.elements}),{started:!0}}},mouseMove:function(e){if("resize"===v.getMode()&&e&&e.selected&&e.selected.id&&e.selected.id.startsWith(w))return e.selected.id},mouseUp:function(e){var t=v.getMode();return t.startsWith(m)?{keep:e.event.clientX!=r.x&&e.event.clientY!=r.y,element:u,started:!1}:"select"===t&&e&&e.selected&&e.selected.id&&e.selected.id.startsWith(w)?e.selected.id:void 0},getClassId:function(){return x},getPrefixId:function(){return w}}})};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.btn{position:relative;display:block;padding:0;overflow:hidden;border-width:0;outline:0;border-radius:2px;box-shadow:0 1px 4px rgba(0,0,0,.6);background-color:#2ecc71;color:#ecf0f1;transition:background-color .3s}.btn:focus,.btn:hover{background-color:#27ae60}.btn>*{position:relative}.btn span{display:block;padding:12px 24px}.btn:before{content:"";position:absolute;top:50%;left:50%;display:block;width:0;padding-top:0;border-radius:100%;background-color:rgba(236,240,241,.3);-webkit-transform:translate(-50%,-50%);-moz-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);-o-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.btn:active:before{width:120%;padding-top:120%;transition:width .2s ease-out,padding-top .2s ease-out}.btn.orange{background-color:#e67e22}.btn.orange:focus,.btn.orange:hover{background-color:#d35400}.btn.red{background-color:#e74c3c}.btn.red:focus,.btn.red:hover{background-color:#c0392b}.md-btn{font-family:"Roboto medium",sans-serif;font-size:14px;display:inline-block;padding:0;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:0;border-radius:2px;outline:0;box-shadow:1px 2px 5px -1px #888;margin:2px}.md-btn:active{opacity:.8!important}.md-btn-raised{box-shadow:1px 2px 5px -1px #888;transition:box-shadow .28s cubic-bezier(.4,0,.2,1)}.md-btn-raised:active{box-shadow:1px 1px 1px -1px #888}.md-btn-ripple{overflow:hidden;position:relative}.md-btn-ripple:after{content:'';display:block;position:absolute;left:50%;top:50%;width:120px;height:120px;margin-left:-60px;margin-top:-60px;background:rgba(255,255,255,.3);border-radius:100%;transform:scale(0)}
|