Merge branch 'bzr/golem' of /Users/distler/Sites/code/instiki
This commit is contained in:
commit
32262cb6d0
13
public/svg-edit/clipart/moon.svg
Normal file
13
public/svg-edit/clipart/moon.svg
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg width="205.5" xmlns="http://www.w3.org/2000/svg" height="255.87">
|
||||||
|
<g display="inline">
|
||||||
|
<title>Layer 1</title>
|
||||||
|
<path id="svg_1" d="m10.671,231.42c89.543,56.086,188.11-10.029,193.33-94.559-1.7286-101.53-92.171-150.4-160.16-128.01,35.129,15.844,73.4,62.729,73.871,88.013-3.4428,7.5157-5.8714,16.373,1.5286,18.844-2,12.857-18.486,33.571-21.043,40.643-2.5571,7.0714,2.2143,9.8443,5.4429,10.357,0.2,6.0586-4.4429,8.3572-5.3572,12.156-7.9,3.13-8.4714,9.9872-7.3286,14.844-19.714,18.571-20.571,27.143-80.286,37.714z" stroke="#000" stroke-width="5" fill="#f6c700"/>
|
||||||
|
<path id="svg_3" d="m98.193,180.83c2.5851-3.421,7.4852,2.5632,7.1642,5.1572-0.32201,2.594-0.67928,4.0227-3.7143,5.2857" stroke="#000" stroke-width="5" fill="none"/>
|
||||||
|
<path id="svg_4" d="m104.11,166.92c5.5357-0.49998,14.643,3.8472,17.75,2.37,3.1072-1.4771,3.3929-4.6686,2.3572-6.5129" stroke="#000" stroke-width="5" fill="none"/>
|
||||||
|
<path id="svg_5" d="m125.64,171.49c-3.9286,8.2143-3.8572,18.987,4.2143,33.286" stroke="#000" stroke-width="2" fill="none"/>
|
||||||
|
<path id="svg_6" d="m117.91,97.816c9.572,1.8,16.143-9.0571,20.8-10.101,3.057-1.0986,14.057,27.473,21.057,35.616" stroke="#000" stroke-width="5" fill="none"/>
|
||||||
|
<path id="svg_7" d="m129.49,105.78c7.6428-3.6429,11.179,6.5357,12.607,10.929,1.4286,4.3928,7.1428,5.1071,10.857,5.5" stroke="#000" stroke-width="2" fill="none"/>
|
||||||
|
<path id="svg_8" d="m133.91,114.75c0.87856-0.13215,1.6214,4.3107,2.5143,6.8236,1.2857-0.90571,0.82143-1.5129,1.3928-1.9771,0.96429-0.82143,1.6071,3.6657,2.3572,5.1429,4.8572-0.00001,5.4643,0.89286,5.4286,1.9286-3.25,0.21429-5.1786,0.67857-7.5,1.6071-3.7857,2.3214-6.0357,6.6072-7,5.4286-0.32143-1.5,3.3571-4.5357,4-5.4286-3.0714-5.1428-2.0714-13.393-1.1929-13.525z" stroke="#000" fill="#000"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.8 KiB |
4
public/svg-edit/clipart/star.svg
Normal file
4
public/svg-edit/clipart/star.svg
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" height="100" width="100">
|
||||||
|
<path stroke-linejoin="round" d="M36.536,32.822c12.699-31.856,13.17-31.734,26.356-1.061,34.15,2.198,39.388,9.622,6.513,23.932,19.821,46.047-0.792,28.383-19.842,13.178-22.358,25.013-29.541,22.639-18.782-12.118-7.282-8.501-45.095-18.741,5.755-23.931z" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-miterlimit="4" stroke-width="5" fill="#FF0"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 489 B |
3
public/svg-edit/clipart/sun.svg
Normal file
3
public/svg-edit/clipart/sun.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 9.2 KiB |
|
@ -1,4 +1,4 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg">
|
<svg xmlns="http://www.w3.org/2000/svg">
|
||||||
<!-- All images created with SVG-edit - http://svg-edit.googlecode.com/ -->
|
<!-- All images created with SVG-edit - http://svg-edit.googlecode.com/ -->
|
||||||
|
|
||||||
<g id="logo">
|
<g id="logo">
|
||||||
|
@ -235,99 +235,6 @@
|
||||||
</svg>
|
</svg>
|
||||||
</g>
|
</g>
|
||||||
|
|
||||||
<g id="foreign">
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 84 84">
|
|
||||||
<g fill="#444" opacity="0.2" transform="translate(6,6)">
|
|
||||||
<path d="M42.8,74.3c0,4.3,0,5.9,11.8,5.9l4.1,0l0,3.8c-4.5-0.4-16.1-0.4-21.2-0.3c-5.1,0-16.6,0-21,0.4l0-3.8l4.1,0
|
|
||||||
c11.8,0,11.8-1.7,11.8-5.9l0-6.9C13.9,65.6,0,54.6,0,42c0-12.2,13.3-23.5,32.4-25.4l0-6.9c0-4.3,0-5.9-11.8-5.9l-4.1,0l0-3.8
|
|
||||||
c4.5,0.4,16.1,0.4,21.2,0.3c5.1,0,16.6,0,21-0.4l0,3.8l-4.1,0c-11.8,0-11.8,1.7-11.8,5.9l0,6.9C61.6,18.1,75.8,29.2,75.8,42
|
|
||||||
c0,12.4-13.8,23.9-33.1,25.4L42.8,74.3z M32.4,19.4c-18.7,2.5-19.9,16.2-19.9,22.6c0,7.6,2.3,20.2,20,22.5L32.4,19.4z M42.7,64.7
|
|
||||||
c18.8-2.2,20.7-15.4,20.6-22.8c0-9.3-3.5-20.6-20.7-22.6L42.7,64.7z"/>
|
|
||||||
</g>
|
|
||||||
<g fill="#444" opacity="0.3" transform="translate(4,4)">
|
|
||||||
<path d="M42.8,74.3c0,4.3,0,5.9,11.8,5.9l4.1,0l0,3.8c-4.5-0.4-16.1-0.4-21.2-0.3c-5.1,0-16.6,0-21,0.4l0-3.8l4.1,0
|
|
||||||
c11.8,0,11.8-1.7,11.8-5.9l0-6.9C13.9,65.6,0,54.6,0,42c0-12.2,13.3-23.5,32.4-25.4l0-6.9c0-4.3,0-5.9-11.8-5.9l-4.1,0l0-3.8
|
|
||||||
c4.5,0.4,16.1,0.4,21.2,0.3c5.1,0,16.6,0,21-0.4l0,3.8l-4.1,0c-11.8,0-11.8,1.7-11.8,5.9l0,6.9C61.6,18.1,75.8,29.2,75.8,42
|
|
||||||
c0,12.4-13.8,23.9-33.1,25.4L42.8,74.3z M32.4,19.4c-18.7,2.5-19.9,16.2-19.9,22.6c0,7.6,2.3,20.2,20,22.5L32.4,19.4z M42.7,64.7
|
|
||||||
c18.8-2.2,20.7-15.4,20.6-22.8c0-9.3-3.5-20.6-20.7-22.6L42.7,64.7z"/>
|
|
||||||
</g>
|
|
||||||
<g fill="#444" opacity="0.5" transform="translate(2,2)">
|
|
||||||
<path d="M42.8,74.3c0,4.3,0,5.9,11.8,5.9l4.1,0l0,3.8c-4.5-0.4-16.1-0.4-21.2-0.3c-5.1,0-16.6,0-21,0.4l0-3.8l4.1,0
|
|
||||||
c11.8,0,11.8-1.7,11.8-5.9l0-6.9C13.9,65.6,0,54.6,0,42c0-12.2,13.3-23.5,32.4-25.4l0-6.9c0-4.3,0-5.9-11.8-5.9l-4.1,0l0-3.8
|
|
||||||
c4.5,0.4,16.1,0.4,21.2,0.3c5.1,0,16.6,0,21-0.4l0,3.8l-4.1,0c-11.8,0-11.8,1.7-11.8,5.9l0,6.9C61.6,18.1,75.8,29.2,75.8,42
|
|
||||||
c0,12.4-13.8,23.9-33.1,25.4L42.8,74.3z M32.4,19.4c-18.7,2.5-19.9,16.2-19.9,22.6c0,7.6,2.3,20.2,20,22.5L32.4,19.4z M42.7,64.7
|
|
||||||
c18.8-2.2,20.7-15.4,20.6-22.8c0-9.3-3.5-20.6-20.7-22.6L42.7,64.7z"/>
|
|
||||||
</g>
|
|
||||||
<g fill="#0000CC">
|
|
||||||
<path id="xyz321" d="M42.8,74.3c0,4.3,0,5.9,11.8,5.9l4.1,0l0,3.8c-4.5-0.4-16.1-0.4-21.2-0.3c-5.1,0-16.6,0-21,0.4l0-3.8l4.1,0
|
|
||||||
c11.8,0,11.8-1.7,11.8-5.9l0-6.9C13.9,65.6,0,54.6,0,42c0-12.2,13.3-23.5,32.4-25.4l0-6.9c0-4.3,0-5.9-11.8-5.9l-4.1,0l0-3.8
|
|
||||||
c4.5,0.4,16.1,0.4,21.2,0.3c5.1,0,16.6,0,21-0.4l0,3.8l-4.1,0c-11.8,0-11.8,1.7-11.8,5.9l0,6.9C61.6,18.1,75.8,29.2,75.8,42
|
|
||||||
c0,12.4-13.8,23.9-33.1,25.4L42.8,74.3z M32.4,19.4c-18.7,2.5-19.9,16.2-19.9,22.6c0,7.6,2.3,20.2,20,22.5L32.4,19.4z M42.7,64.7
|
|
||||||
c18.8-2.2,20.7-15.4,20.6-22.8c0-9.3-3.5-20.6-20.7-22.6L42.7,64.7z"/>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<g id="edit_foreign">
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="34 38 170 170" overflow="hidden">
|
|
||||||
<g fill="#000088">
|
|
||||||
<path d="M30.1,63.9v-4.3l30.2-14.9V50L36.5,61.7l23.8,11.7v5.3L30.1,63.9z"/>
|
|
||||||
<path d="M106.1,79.7v-1.1c4.2-0.5,4.8-1.1,4.8-5.2V58.2c0-6-1.3-7.9-5.4-7.9c-3.3,0-5.7,1.3-7.8,4.4v18.1
|
|
||||||
c0,4.5,1.1,5.7,5.2,5.8v1.1H86.8v-1.1c4.1-0.3,4.9-1.1,4.9-5.1V57.9c0-5-1.6-7.6-4.8-7.6c-2.5,0-5.6,1.2-7.4,2.9
|
|
||||||
c-0.5,0.5-1.1,1.4-1.1,1.4v20.3c0,2.8,1.1,3.6,4.9,3.7v1.1h-16v-1.1c4-0.1,5-1.2,5-5V55.4c0-3.5-0.6-4.6-2.5-4.6
|
|
||||||
c-0.8,0-1.4,0.1-2.3,0.3v-1.2c4-1.1,6.4-1.9,10.1-3.2l0.5,0.1v5.4c6-4.5,8-5.5,11.2-5.5c3.9,0,6.3,1.9,7.6,6c3.9-4.2,7.6-6,11.7-6
|
|
||||||
c5.5,0,8.4,4.3,8.4,12.8v14.8c0,2.8,0.9,4.1,3.1,4.2l1.9,0.1v1.1H106.1z"/>
|
|
||||||
<path d="M147.3,80.5c-3,0-4.2-1.4-4.6-5.3c-4.4,3.7-7.3,5.3-10.5,5.3c-4.5,0-7.6-3.2-7.6-7.7c0-2.4,1-4.8,2.6-6.3
|
|
||||||
c3.1-2.7,4.3-3.3,15.4-7.8v-4.4c0-3.9-1.9-6-5.5-6c-2.9,0-5.2,1.6-5.2,3.5c0,0.5,0.1,1.1,0.2,1.7c0.1,0.5,0.1,0.9,0.1,1.2
|
|
||||||
c0,1.6-1.5,3-3.2,3s-3.1-1.4-3.1-3.1c0-1.8,1.2-3.9,3-5.4c2-1.7,5.5-2.7,9.1-2.7c4.4,0,7.5,1.4,9,4.2c1,1.7,1.4,3.7,1.4,7.3v14
|
|
||||||
c0,3.2,0.5,4.2,2.2,4.2c1.1,0,1.9-0.4,3.2-1.4v1.9C151.3,79.6,149.8,80.5,147.3,80.5z M142.6,60.5c-8.7,3.2-11.7,5.8-11.7,10v0.3
|
|
||||||
c0,3.1,2,5.5,4.5,5.5c1.5,0,3.5-0.6,5.3-1.6c1.5-0.9,1.9-1.6,1.9-3.8V60.5z"/>
|
|
||||||
<path d="M165.3,80.5c-4.2,0-6.3-3.1-6.3-9.1V49.7h-3.8c-0.2-0.1-0.3-0.3-0.3-0.5c0-0.4,0.4-0.9,1.2-1.4
|
|
||||||
c1.9-1.1,4.3-3.7,7-7.7c0.5-0.6,1-1.3,1.4-2c0.4,0,0.5,0.2,0.5,0.9v8.4h7.3v2.3h-7.3v20.6c0,4.6,1.1,6.5,3.7,6.5
|
|
||||||
c1.6,0,2.7-0.6,4.3-2.5l0.9,0.8C171.8,78.7,169,80.5,165.3,80.5z"/>
|
|
||||||
<path d="M193.8,79.7v-1.1c4.1-0.4,4.9-1.3,4.9-6.2V58.1c0-5-1.8-7.6-5.4-7.6c-2.8,0-5,1.2-8,4.5v17.4
|
|
||||||
c0,5,0.7,5.8,4.9,6.3v1.1h-15.6v-1.1c4.2-0.6,4.6-1.2,4.6-6.3V38.5c0-3.1-0.6-3.7-3.7-3.7c-0.4,0-0.6,0-0.9,0.1v-1.2l1.9-0.6
|
|
||||||
c4-1.2,5.8-1.7,8.3-2.6l0.4,0.2v21.9c3.3-4.3,6.3-6,10.6-6c5.9,0,8.9,3.9,8.9,11.5v14.3c0,5,0.4,5.5,4.3,6.3v1.1h-15.2V79.7z"/>
|
|
||||||
<path d="M59.1,116.1v-4.3l30.2-14.9v5.3l-23.8,11.7l23.8,11.7v5.3L59.1,116.1z"/>
|
|
||||||
<path d="M135.1,131.9v-1.1c4.2-0.5,4.8-1.1,4.8-5.2v-15.1c0-6-1.3-7.9-5.4-7.9c-3.3,0-5.7,1.3-7.8,4.4v18.1
|
|
||||||
c0,4.5,1.1,5.7,5.2,5.8v1.1h-16.1v-1.1c4.1-0.3,4.9-1.1,4.9-5.1v-15.7c0-5-1.6-7.6-4.8-7.6c-2.5,0-5.6,1.2-7.4,2.9
|
|
||||||
c-0.5,0.5-1.1,1.4-1.1,1.4v20.3c0,2.8,1.1,3.6,4.9,3.7v1.1h-16v-1.1c4-0.1,5-1.2,5-5v-18.2c0-3.5-0.6-4.6-2.5-4.6
|
|
||||||
c-0.8,0-1.4,0.1-2.3,0.3v-1.2c4-1.1,6.4-1.9,10.1-3.2l0.5,0.1v5.4c6-4.5,8-5.5,11.2-5.5c3.9,0,6.3,1.9,7.6,6c3.9-4.2,7.6-6,11.7-6
|
|
||||||
c5.5,0,8.4,4.3,8.4,12.8v14.8c0,2.8,0.9,4.1,3.1,4.2l1.9,0.1v1.1H135.1z"/>
|
|
||||||
<path d="M152.1,131.9v-1.1c5-0.3,5.7-1.1,5.7-6.3v-16.6c0-3.2-0.6-4.3-2.4-4.3c-0.6,0-1.6,0.1-2.4,0.2l-0.6,0.1v-1.1
|
|
||||||
l11.2-4L164,99v25.6c0,5.2,0.6,5.9,5.3,6.3v1.1L152.1,131.9L152.1,131.9z M160.8,93.1c-2,0-3.7-1.6-3.7-3.7c0-2,1.7-3.7,3.7-3.7
|
|
||||||
c2.1,0,3.7,1.7,3.7,3.7C164.6,91.6,163,93.1,160.8,93.1z"/>
|
|
||||||
<path d="M175.8,131v-5.3l23.7-11.8l-23.7-11.7v-5.3l30.1,14.9v4.3L175.8,131z"/>
|
|
||||||
<path d="M31.1,169.5v-4.3l30.2-14.9v5.3l-23.8,11.7L61.3,179v5.3L31.1,169.5z"/>
|
|
||||||
<path d="M71.3,186.4h-4.9l16.5-49.7h4.8L71.3,186.4z"/>
|
|
||||||
<path d="M127.1,185.3v-1.1c4.2-0.5,4.8-1.1,4.8-5.2v-15.2c0-6-1.3-7.9-5.4-7.9c-3.3,0-5.7,1.3-7.8,4.4v18.1
|
|
||||||
c0,4.5,1.1,5.7,5.2,5.8v1.1h-16.1v-1.1c4.1-0.3,4.9-1.1,4.9-5.1v-15.6c0-5-1.6-7.6-4.8-7.6c-2.5,0-5.6,1.2-7.4,2.9
|
|
||||||
c-0.5,0.5-1.1,1.4-1.1,1.4v20.3c0,2.8,1.1,3.6,4.9,3.7v1.1h-16v-1.1c4-0.1,5-1.2,5-5V161c0-3.5-0.6-4.6-2.5-4.6
|
|
||||||
c-0.8,0-1.4,0.1-2.3,0.3v-1.2c4-1.1,6.4-1.9,10.1-3.2l0.5,0.1v5.4c6-4.5,8-5.5,11.2-5.5c3.9,0,6.3,1.9,7.6,6c3.9-4.2,7.6-6,11.7-6
|
|
||||||
c5.5,0,8.4,4.3,8.4,12.8v14.8c0,2.8,0.9,4.1,3.1,4.2l1.9,0.1v1.1H127.1L127.1,185.3z"/>
|
|
||||||
<path d="M168.3,186.1c-3,0-4.2-1.4-4.6-5.3c-4.4,3.7-7.3,5.3-10.5,5.3c-4.5,0-7.6-3.2-7.6-7.7c0-2.4,1-4.8,2.6-6.3
|
|
||||||
c3.1-2.7,4.3-3.3,15.4-7.8v-4.4c0-3.9-1.9-6-5.5-6c-2.9,0-5.2,1.6-5.2,3.5c0,0.5,0.1,1.1,0.2,1.7c0.1,0.5,0.1,0.9,0.1,1.2
|
|
||||||
c0,1.6-1.5,3-3.2,3s-3.1-1.4-3.1-3.1c0-1.8,1.2-3.9,3-5.4c2-1.7,5.5-2.7,9.1-2.7c4.4,0,7.5,1.4,9,4.2c1,1.7,1.4,3.7,1.4,7.3v14
|
|
||||||
c0,3.2,0.5,4.2,2.2,4.2c1.1,0,1.9-0.4,3.2-1.4v1.9C172.3,185.2,170.8,186.1,168.3,186.1z M163.8,166.1c-8.7,3.2-11.7,5.8-11.7,10
|
|
||||||
v0.3c0,3.1,2,5.5,4.5,5.5c1.5,0,3.5-0.6,5.3-1.6c1.5-0.9,1.9-1.6,1.9-3.8V166.1z"/>
|
|
||||||
<path d="M186.3,186.1c-4.2,0-6.3-3.1-6.3-9.1v-21.7h-3.8c-0.2-0.1-0.3-0.3-0.3-0.5c0-0.4,0.4-0.9,1.2-1.4
|
|
||||||
c1.9-1.1,4.3-3.7,7-7.7c0.5-0.6,1-1.3,1.4-2c0.4,0,0.5,0.2,0.5,0.9v8.4h7.3v2.3h-7.3v20.6c0,4.6,1.1,6.5,3.7,6.5
|
|
||||||
c1.6,0,2.7-0.6,4.3-2.5l0.9,0.8C192.8,184.3,190,186.1,186.3,186.1z"/>
|
|
||||||
<path d="M209.1,185.3h-13.4v-1.1c4.2-0.6,4.6-1.2,4.6-6.3V144c0-3.1-0.6-3.7-3.7-3.7c-0.4,0-0.6,0-0.9,0.1v-1.2
|
|
||||||
l1.9-0.6c4-1.2,5.8-1.7,8.3-2.6l0.4,0.2v21.9c0.9-1.2,1.9-2.2,2.8-3.1"/>
|
|
||||||
<path d="M209.1,157.9c-0.8,0.7-1.7,1.5-2.7,2.6v17.4c0,4,0.4,5.3,2.7,5.9"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<polyline opacity="0.2" fill="#231F20" points="209.1,76.4 118.7,186.5 139.1,186.4 209.1,121 209.1,76.4 "/>
|
|
||||||
<polyline opacity="0.4" fill="#231F20" points="209.1,76.2 118.5,186.5 129.7,186.4 200.2,120.3 209.1,100.8 209.1,76.4 "/>
|
|
||||||
<path fill="#FFD761" d="M121.6,88.7l0.8,87.5l62.3-56.7c0,0-15.3-25.8-24.8-30C151.1,85.6,121.6,88.7,121.6,88.7z"/>
|
|
||||||
<path fill="#FEA01E" d="M209.1,19.5h-54l-33.5,69.2c0,0,29.7-3.4,38.3,0.8c8.9,4.4,25,30.8,25,30.8l24.2-50V19.5z"/>
|
|
||||||
<path d="M120.4,153.7l-0.6,25l23.8-16.9c0,0-8-7-11.2-8.1C129.4,152.8,120.4,153.7,120.4,153.7z"/>
|
|
||||||
<polyline fill="none" stroke="#231F20" stroke-width="5" points="153.9,19.5 121.6,88.7 120.7,181.2 186.6,120.3 209.1,70.3 "/>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<g id="arrow_right">
|
<g id="arrow_right">
|
||||||
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 25 50">
|
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 25 50">
|
||||||
<path stroke="#000000" fill="#000000" d="m0,0l0,50l25,-25l-25,-25z"/>
|
<path stroke="#000000" fill="#000000" d="m0,0l0,50l25,-25l-25,-25z"/>
|
||||||
|
@ -385,6 +292,19 @@
|
||||||
</svg>
|
</svg>
|
||||||
</g>
|
</g>
|
||||||
|
|
||||||
|
<g id="import">
|
||||||
|
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<defs>
|
||||||
|
<linearGradient y2="0.875" x2="0.21484" y1="0.00391" x1="0.04297" id="svg_46_import">
|
||||||
|
<stop stop-opacity="1" stop-color="#81f4bb" offset="0"/>
|
||||||
|
<stop stop-opacity="1" stop-color="#37b76e" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<rect x="2.42792" y="1.6692" width="18" height="21" id="svg_55" fill="#eaeaea" stroke="#606060"/>
|
||||||
|
<path stroke="#285582" fill="url(#svg_46_import)" id="svg_45" d="m7.14286,12.74903l5.21236,5.79151l5.50193,-5.88803l-2.50965,-0.09653l0,-2.79923c0,-2.3166 -2.3166,-5.59846 -6.56371,-5.59846c-4.05405,0 -6.27413,3.37838 -6.56371,6.75676c0.48263,-1.5444 2.7027,-4.53668 4.44015,-4.44015c2.12355,-0.09653 2.79923,1.64093 2.79923,3.37838l0.09653,2.79923l-2.41313,0.09653z"/>
|
||||||
|
</svg>
|
||||||
|
</g>
|
||||||
|
|
||||||
<g id="docprops">
|
<g id="docprops">
|
||||||
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||||
<defs>
|
<defs>
|
||||||
|
|
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 43 KiB |
|
@ -101,6 +101,7 @@
|
||||||
{"id": "tool_fhrect", "title": "Free-Hand Rectangle"},
|
{"id": "tool_fhrect", "title": "Free-Hand Rectangle"},
|
||||||
{"id": "tool_group", "title": "Group Elements"},
|
{"id": "tool_group", "title": "Group Elements"},
|
||||||
{"id": "tool_image", "title": "Image Tool"},
|
{"id": "tool_image", "title": "Image Tool"},
|
||||||
|
{"id": "tool_import", "textContent": "Import Image"},
|
||||||
{"id": "tool_italic", "title": "Italic Text"},
|
{"id": "tool_italic", "title": "Italic Text"},
|
||||||
{"id": "tool_line", "title": "Line Tool"},
|
{"id": "tool_line", "title": "Line Tool"},
|
||||||
{"id": "tool_move_bottom", "title": "Move to Bottom"},
|
{"id": "tool_move_bottom", "title": "Move to Bottom"},
|
||||||
|
|
|
@ -568,12 +568,12 @@ span.zoom_tool {
|
||||||
-webkit-border-radius: 5px;
|
-webkit-border-radius: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#svg_editor #main_menu li#tool_open {
|
#svg_editor #main_menu li#tool_open, #svg_editor #main_menu li#tool_import {
|
||||||
position: relative;
|
position: relative;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
#tool_open input {
|
#tool_open input, #tool_import input {
|
||||||
-moz-transform: scale(4,2); /* Not entirely necessary, but keeps it nice and big for OS X*/
|
-moz-transform: scale(4,2); /* Not entirely necessary, but keeps it nice and big for OS X*/
|
||||||
height: 100%;
|
height: 100%;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|
|
@ -100,6 +100,13 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
|
||||||
Open Image [O]
|
Open Image [O]
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
<li id="tool_import" style="display:none;">
|
||||||
|
<div id="fileinputs_import">
|
||||||
|
<div></div>
|
||||||
|
</div>
|
||||||
|
Import SVG
|
||||||
|
</li>
|
||||||
|
|
||||||
<li id="tool_save">
|
<li id="tool_save">
|
||||||
<div></div>
|
<div></div>
|
||||||
Save Image [S]
|
Save Image [S]
|
||||||
|
@ -419,7 +426,7 @@ script type="text/javascript" src="locale/locale.min.js"></script-->
|
||||||
<td><div id="stroke_bg"></div><div id="stroke_color" class="color_block" title="Change stroke color"></div></td>
|
<td><div id="stroke_bg"></div><div id="stroke_color" class="color_block" title="Change stroke color"></div></td>
|
||||||
<td><div id="stroke_opacity" class="label">100 %</div></td>
|
<td><div id="stroke_opacity" class="label">100 %</div></td>
|
||||||
<td>
|
<td>
|
||||||
<input id="stroke_width" title="Change stroke width by 1, shift-click to change by 0.1" size="2" value="5" type="text" data-attr="Stroke Width"/>
|
<input id="stroke_width" title="Change stroke width by 1, shift-click to change by 0.1" size="2" value="2" type="text" data-attr="Stroke Width"/>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<select id="stroke_style" title="Change stroke dash style">
|
<select id="stroke_style" title="Change stroke dash style">
|
||||||
|
|
|
@ -1459,6 +1459,9 @@ function svg_edit_setup() {
|
||||||
var clickOpen = function(){
|
var clickOpen = function(){
|
||||||
svgCanvas.open();
|
svgCanvas.open();
|
||||||
};
|
};
|
||||||
|
var clickImport = function(){
|
||||||
|
svgCanvas.import();
|
||||||
|
};
|
||||||
|
|
||||||
var clickUndo = function(){
|
var clickUndo = function(){
|
||||||
if (svgCanvas.getUndoStackSize() > 0) {
|
if (svgCanvas.getUndoStackSize() > 0) {
|
||||||
|
@ -2461,12 +2464,13 @@ function svg_edit_setup() {
|
||||||
{sel:'#tool_clear', fn: clickClear, evt: 'mouseup', key: [modKey+'N', true]},
|
{sel:'#tool_clear', fn: clickClear, evt: 'mouseup', key: [modKey+'N', true]},
|
||||||
{sel:'#tool_save', fn: function() { editingsource?saveSourceEditor():clickSave()}, evt: 'mouseup', key: [modKey+'S', true]},
|
{sel:'#tool_save', fn: function() { editingsource?saveSourceEditor():clickSave()}, evt: 'mouseup', key: [modKey+'S', true]},
|
||||||
{sel:'#tool_open', fn: clickOpen, evt: 'mouseup', key: [modKey+'O', true]},
|
{sel:'#tool_open', fn: clickOpen, evt: 'mouseup', key: [modKey+'O', true]},
|
||||||
|
{sel:'#tool_import', fn: clickImport, evt: 'mouseup'},
|
||||||
{sel:'#tool_source', fn: showSourceEditor, evt: 'click', key: ['U', true]},
|
{sel:'#tool_source', fn: showSourceEditor, evt: 'click', key: ['U', true]},
|
||||||
{sel:'#tool_wireframe', fn: clickWireframe, evt: 'click', key: ['F', true]},
|
{sel:'#tool_wireframe', fn: clickWireframe, evt: 'click', key: ['F', true]},
|
||||||
{sel:'#tool_source_cancel,#svg_source_overlay,#tool_docprops_cancel', fn: cancelOverlays, evt: 'click', key: ['esc', false, false], hidekey: true},
|
{sel:'#tool_source_cancel,#svg_source_overlay,#tool_docprops_cancel', fn: cancelOverlays, evt: 'click', key: ['esc', false, false], hidekey: true},
|
||||||
{sel:'#tool_source_save', fn: saveSourceEditor, evt: 'click'},
|
{sel:'#tool_source_save', fn: saveSourceEditor, evt: 'click'},
|
||||||
{sel:'#tool_docprops_save', fn: saveDocProperties, evt: 'click'},
|
{sel:'#tool_docprops_save', fn: saveDocProperties, evt: 'click'},
|
||||||
{sel:'#tool_docprops', fn: showDocProperties, evt: 'mouseup', key: [modKey+'I', true]},
|
{sel:'#tool_docprops', fn: showDocProperties, evt: 'mouseup', key: [modKey+'P', true]},
|
||||||
{sel:'#tool_delete,#tool_delete_multi', fn: deleteSelected, evt: 'click', key: ['del/backspace', true]},
|
{sel:'#tool_delete,#tool_delete_multi', fn: deleteSelected, evt: 'click', key: ['del/backspace', true]},
|
||||||
{sel:'#tool_reorient', fn: reorientPath, evt: 'click'},
|
{sel:'#tool_reorient', fn: reorientPath, evt: 'click'},
|
||||||
{sel:'#tool_node_link', fn: linkControlPoints, evt: 'click'},
|
{sel:'#tool_node_link', fn: linkControlPoints, evt: 'click'},
|
||||||
|
@ -2696,6 +2700,18 @@ function svg_edit_setup() {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
$("#tool_open").show().prepend(inp);
|
$("#tool_open").show().prepend(inp);
|
||||||
|
var inp2 = $('<input type="file">').change(function() {
|
||||||
|
$('#main_menu').hide();
|
||||||
|
if(this.files.length==1) {
|
||||||
|
var reader = new FileReader();
|
||||||
|
reader.onloadend = function(e) {
|
||||||
|
svgCanvas.importSvgString(e.target.result);
|
||||||
|
updateCanvas();
|
||||||
|
};
|
||||||
|
reader.readAsText(this.files[0]);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
$("#tool_import").show().prepend(inp2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -2764,7 +2780,7 @@ function svg_edit_setup() {
|
||||||
updateCanvas(true);
|
updateCanvas(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
// var revnums = "svg-editor.js ($Rev: 1414 $) ";
|
// var revnums = "svg-editor.js ($Rev: 1421 $) ";
|
||||||
// revnums += svgCanvas.getVersion();
|
// revnums += svgCanvas.getVersion();
|
||||||
// $('#copyright')[0].setAttribute("title", revnums);
|
// $('#copyright')[0].setAttribute("title", revnums);
|
||||||
return svgCanvas;
|
return svgCanvas;
|
||||||
|
@ -2835,6 +2851,7 @@ function svg_edit_setup() {
|
||||||
'#tool_clear div,#layer_new':'new_image',
|
'#tool_clear div,#layer_new':'new_image',
|
||||||
'#tool_save div':'save',
|
'#tool_save div':'save',
|
||||||
'#tool_open div div':'open',
|
'#tool_open div div':'open',
|
||||||
|
'#tool_import div div':'import',
|
||||||
'#tool_source':'source',
|
'#tool_source':'source',
|
||||||
'#tool_docprops > div':'docprops',
|
'#tool_docprops > div':'docprops',
|
||||||
'#tool_wireframe':'wireframe',
|
'#tool_wireframe':'wireframe',
|
||||||
|
|
|
@ -114,7 +114,7 @@ var isOpera = !!window.opera,
|
||||||
"radialGradient": ["class", "cx", "cy", "fx", "fy", "gradientTransform", "gradientUnits", "id", "r", "requiredFeatures", "spreadMethod", "systemLanguage", "xlink:href"],
|
"radialGradient": ["class", "cx", "cy", "fx", "fy", "gradientTransform", "gradientUnits", "id", "r", "requiredFeatures", "spreadMethod", "systemLanguage", "xlink:href"],
|
||||||
"rect": ["class", "clip-path", "clip-rule", "fill", "fill-opacity", "fill-rule", "filter", "height", "id", "mask", "opacity", "requiredFeatures", "rx", "ry", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "style", "systemLanguage", "transform", "width", "x", "y"],
|
"rect": ["class", "clip-path", "clip-rule", "fill", "fill-opacity", "fill-rule", "filter", "height", "id", "mask", "opacity", "requiredFeatures", "rx", "ry", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "style", "systemLanguage", "transform", "width", "x", "y"],
|
||||||
"stop": ["class", "id", "offset", "requiredFeatures", "stop-color", "stop-opacity", "style", "systemLanguage"],
|
"stop": ["class", "id", "offset", "requiredFeatures", "stop-color", "stop-opacity", "style", "systemLanguage"],
|
||||||
"svg": ["class", "clip-path", "clip-rule", "filter", "id", "height", "markdown", "mask", "preserveAspectRatio", "requiredFeatures", "style", "systemLanguage", "transform", "viewBox", "width", "xmlns", "xmlns:se", "xmlns:xlink"],
|
"svg": ["class", "clip-path", "clip-rule", "filter", "id", "height", "markdown", "mask", "preserveAspectRatio", "requiredFeatures", "style", "systemLanguage", "viewBox", "width", "x", "xmlns", "xmlns:se", "xmlns:xlink", "y"],
|
||||||
"switch": ["class", "id", "requiredFeatures", "systemLanguage"],
|
"switch": ["class", "id", "requiredFeatures", "systemLanguage"],
|
||||||
"symbol": ["class", "fill", "fill-opacity", "fill-rule", "filter", "font-family", "font-size", "font-style", "font-weight", "id", "opacity", "preserveAspectRatio", "requiredFeatures", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "style", "systemLanguage", "transform", "viewBox"],
|
"symbol": ["class", "fill", "fill-opacity", "fill-rule", "filter", "font-family", "font-size", "font-style", "font-weight", "id", "opacity", "preserveAspectRatio", "requiredFeatures", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "style", "systemLanguage", "transform", "viewBox"],
|
||||||
"text": ["class", "clip-path", "clip-rule", "fill", "fill-opacity", "fill-rule", "filter", "font-family", "font-size", "font-style", "font-weight", "id", "mask", "opacity", "requiredFeatures", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "style", "systemLanguage", "text-anchor", "transform", "x", "xml:space", "y"],
|
"text": ["class", "clip-path", "clip-rule", "fill", "fill-opacity", "fill-rule", "filter", "font-family", "font-size", "font-style", "font-weight", "id", "mask", "opacity", "requiredFeatures", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "style", "systemLanguage", "text-anchor", "transform", "x", "xml:space", "y"],
|
||||||
|
@ -1169,7 +1169,7 @@ function BatchCommand(text) {
|
||||||
stroke: "#000000",
|
stroke: "#000000",
|
||||||
stroke_paint: null,
|
stroke_paint: null,
|
||||||
stroke_opacity: 1,
|
stroke_opacity: 1,
|
||||||
stroke_width: 5,
|
stroke_width: 2,
|
||||||
stroke_style: 'none',
|
stroke_style: 'none',
|
||||||
opacity: 1
|
opacity: 1
|
||||||
}
|
}
|
||||||
|
@ -2819,7 +2819,6 @@ function BatchCommand(text) {
|
||||||
|
|
||||||
start_transform = mouse_target.getAttribute("transform");
|
start_transform = mouse_target.getAttribute("transform");
|
||||||
var tlist = canvas.getTransformList(mouse_target);
|
var tlist = canvas.getTransformList(mouse_target);
|
||||||
|
|
||||||
switch (current_mode) {
|
switch (current_mode) {
|
||||||
case "select":
|
case "select":
|
||||||
started = true;
|
started = true;
|
||||||
|
@ -5525,6 +5524,9 @@ function BatchCommand(text) {
|
||||||
this.open = function() {
|
this.open = function() {
|
||||||
// Nothing by default, handled by optional widget/extension
|
// Nothing by default, handled by optional widget/extension
|
||||||
};
|
};
|
||||||
|
this.import = function() {
|
||||||
|
// Nothing by default, handled by optional widget/extension
|
||||||
|
};
|
||||||
|
|
||||||
// Function: save
|
// Function: save
|
||||||
// Serializes the current drawing into SVG XML text and returns it to the 'saved' handler.
|
// Serializes the current drawing into SVG XML text and returns it to the 'saved' handler.
|
||||||
|
@ -5681,6 +5683,128 @@ function BatchCommand(text) {
|
||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Function: importSvgString
|
||||||
|
// This function imports the input SVG XML into the current layer in the drawing
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// xmlString - The SVG as XML text.
|
||||||
|
//
|
||||||
|
// Returns:
|
||||||
|
// This function returns false if the import was unsuccessful, true otherwise.
|
||||||
|
|
||||||
|
// TODO: create a new layer for the imported SVG
|
||||||
|
// TODO: properly size the new group
|
||||||
|
this.importSvgString = function(xmlString) {
|
||||||
|
try {
|
||||||
|
// convert string into XML document
|
||||||
|
var newDoc = Utils.text2xml(xmlString);
|
||||||
|
// run it through our sanitizer to remove anything we do not support
|
||||||
|
sanitizeSvg(newDoc.documentElement);
|
||||||
|
|
||||||
|
var batchCmd = new BatchCommand("Change Source");
|
||||||
|
|
||||||
|
// import new svg document into our document
|
||||||
|
var importedNode = svgdoc.importNode(newDoc.documentElement, true);
|
||||||
|
|
||||||
|
if (current_layer) {
|
||||||
|
// add all children of the imported <svg> to the <g> we create
|
||||||
|
var g = svgdoc.createElementNS(svgns, "g");
|
||||||
|
while (importedNode.hasChildNodes()) { g.appendChild(importedNode.firstChild); }
|
||||||
|
current_layer.appendChild(g);
|
||||||
|
}
|
||||||
|
|
||||||
|
// change image href vals if possible
|
||||||
|
// $(svgcontent).find('image').each(function() {
|
||||||
|
// var image = this;
|
||||||
|
// preventClickDefault(image);
|
||||||
|
// var val = this.getAttributeNS(xlinkns, "href");
|
||||||
|
// if(val.indexOf('data:') === 0) {
|
||||||
|
// // Check if an SVG-edit data URI
|
||||||
|
// var m = val.match(/svgedit_url=(.*?);/);
|
||||||
|
// if(m) {
|
||||||
|
// var url = decodeURIComponent(m[1]);
|
||||||
|
// $(new Image()).load(function() {
|
||||||
|
// image.setAttributeNS(xlinkns,'xlink:href',url);
|
||||||
|
// }).attr('src',url);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// // Add to encodableImages if it loads
|
||||||
|
// canvas.embedImage(val);
|
||||||
|
// });
|
||||||
|
|
||||||
|
// Fix XML for Opera/Win/Non-EN
|
||||||
|
if(!support.goodDecimals) {
|
||||||
|
canvas.fixOperaXML(svgcontent, importedNode);
|
||||||
|
}
|
||||||
|
|
||||||
|
// recalculate dimensions on the top-level children so that unnecessary transforms
|
||||||
|
// are removed
|
||||||
|
var deepdive = function(node) {
|
||||||
|
if (node.nodeType == 1) {
|
||||||
|
var children = node.childNodes;
|
||||||
|
var i = children.length;
|
||||||
|
while (i--) { deepdive(children.item(i)); }
|
||||||
|
try {
|
||||||
|
recalculateDimensions(node);
|
||||||
|
} catch(e) { console.log(e); }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
deepdive(importedNode);
|
||||||
|
|
||||||
|
// var content = $(svgcontent);
|
||||||
|
|
||||||
|
// var attrs = {
|
||||||
|
// id: 'svgcontent',
|
||||||
|
// overflow: 'visible'
|
||||||
|
// };
|
||||||
|
|
||||||
|
// determine proper size
|
||||||
|
// if (content.attr("viewBox")) {
|
||||||
|
// var vb = content.attr("viewBox").split(' ');
|
||||||
|
// attrs.width = vb[2];
|
||||||
|
// attrs.height = vb[3];
|
||||||
|
// }
|
||||||
|
// // handle content that doesn't have a viewBox
|
||||||
|
// else {
|
||||||
|
// $.each(['width', 'height'], function(i, dim) {
|
||||||
|
// // Set to 100 if not given
|
||||||
|
// var val = content.attr(dim) || 100;
|
||||||
|
//
|
||||||
|
// if((val+'').substr(-1) === "%") {
|
||||||
|
// // Use user units if percentage given
|
||||||
|
// attrs[dim] = parseInt(val);
|
||||||
|
// } else {
|
||||||
|
// attrs[dim] = convertToNum(dim, val);
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
|
||||||
|
// content.attr(attrs);
|
||||||
|
batchCmd.addSubCommand(new InsertElementCommand(svgcontent));
|
||||||
|
// update root to the correct size
|
||||||
|
// var changes = content.attr(["width", "height"]);
|
||||||
|
// batchCmd.addSubCommand(new ChangeElementCommand(svgroot, changes));
|
||||||
|
|
||||||
|
// reset zoom
|
||||||
|
current_zoom = 1;
|
||||||
|
|
||||||
|
// identify layers
|
||||||
|
// identifyLayers();
|
||||||
|
|
||||||
|
// reset transform lists
|
||||||
|
svgTransformLists = {};
|
||||||
|
canvas.clearSelection();
|
||||||
|
|
||||||
|
addCommandToHistory(batchCmd);
|
||||||
|
call("changed", [svgcontent]);
|
||||||
|
} catch(e) {
|
||||||
|
console.log(e);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
};
|
||||||
|
|
||||||
// Layer API Functions
|
// Layer API Functions
|
||||||
|
|
||||||
// Group: Layers
|
// Group: Layers
|
||||||
|
@ -7475,9 +7599,11 @@ function BatchCommand(text) {
|
||||||
|
|
||||||
$.each(elems, function(i, elem) {
|
$.each(elems, function(i, elem) {
|
||||||
var cur_bb = bboxes[i];
|
var cur_bb = bboxes[i];
|
||||||
|
if (cur_bb) {
|
||||||
var offset = getOffset(elem);
|
var offset = getOffset(elem);
|
||||||
max_x = Math.max(max_x, cur_bb.x + cur_bb.width + offset);
|
max_x = Math.max(max_x, cur_bb.x + cur_bb.width + offset);
|
||||||
max_y = Math.max(max_y, cur_bb.y + cur_bb.height + offset);
|
max_y = Math.max(max_y, cur_bb.y + cur_bb.height + offset);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
full_bb.width = max_x - min_x;
|
full_bb.width = max_x - min_x;
|
||||||
|
@ -7754,7 +7880,7 @@ function BatchCommand(text) {
|
||||||
// Function: getVersion
|
// Function: getVersion
|
||||||
// Returns a string which describes the revision number of SvgCanvas.
|
// Returns a string which describes the revision number of SvgCanvas.
|
||||||
this.getVersion = function() {
|
this.getVersion = function() {
|
||||||
return "svgcanvas.js ($Rev: 1409 $)";
|
return "svgcanvas.js ($Rev: 1422 $)";
|
||||||
};
|
};
|
||||||
|
|
||||||
this.setUiStrings = function(strs) {
|
this.setUiStrings = function(strs) {
|
||||||
|
|
Loading…
Reference in a new issue