346 Commits

Author SHA1 Message Date
Paulo Gustavo Veiga
59f0ed5793 Merge branch 'develop'
Conflicts:
	core-js/pom.xml
	mindplot/pom.xml
	pom.xml
	web2d/pom.xml
	wise-editor/pom.xml
	wise-webapp/pom.xml
2015-02-21 13:10:07 -03:00
Ezequiel Bergamaschi
9e2e8a56d0 fixing note edition 2015-02-12 22:58:28 -03:00
Ezequiel Bergamaschi
65165f935e fix keyboard throubles with ie11 2015-02-12 22:57:13 -03:00
Paulo Gustavo Veiga
1e4d88fa55 Replace version to the next SNAPSHOT 2015-02-06 23:07:44 -03:00
Paulo Gustavo Veiga
d955e44167 Merge branch 'develop'
Conflicts:
	core-js/pom.xml
	mindplot/pom.xml
	pom.xml
	web2d/pom.xml
	wise-editor/pom.xml
	wise-webapp/pom.xml
2015-02-06 22:48:58 -03:00
Ezequiel Bergamaschi
088bba7985 bugfixing for keypress events when user wrinting in a topic 2015-02-01 23:44:34 -03:00
Ezequiel Bergamaschi
48ca102d0a jasmine specs not running for mindplot through maven 2015-02-01 21:37:41 -03:00
Paulo Gustavo Veiga
34e147e5ac Add undercorejs.js as dependency. 2015-01-31 23:38:17 -03:00
Paulo Gustavo Veiga
1f01b67297 Fix main version. 2015-01-31 23:22:48 -03:00
Paulo Gustavo Veiga
d3dd58fdc5 Merge branch 'feature/remove_mootols' into develop 2015-01-31 21:35:52 -03:00
Paulo Gustavo Veiga
1993040520 Move from 3.0.5-SNAPSHOT to 4.0.0-SNAPSHOT 2015-01-31 21:30:12 -03:00
Ezequiel Bergamaschi
6950f7f715 fix rows unclickeables when searching maps that are not in the first page 2015-01-31 16:55:16 -03:00
Ezequiel Bergamaschi
9f79d8f40a fixing samples 2015-01-31 15:32:09 -03:00
Ezequiel Bergamaschi
2d3493b648 fixing missing symb links && samples 2015-01-31 14:40:10 -03:00
Claudio Barril
72b5685fce undo jasmine plugin removed from poms 2015-01-11 12:16:47 -03:00
Ezequiel Bergamaschi
bd3f1b39b2 fixing all popover, some hacks 2014-12-27 00:46:19 -03:00
Ezequiel Bergamaschi
15c13a8f4f fix popover not updated when updating notes 2014-12-27 00:09:01 -03:00
Ezequiel Bergamaschi
91f85139ca fix error in pom and add data for accept click events in bootstrap dialogs 2014-12-26 23:13:12 -03:00
Ezequiel Bergamaschi
513781272e Merge remote-tracking branch 'origin/develop' into feature/remove_mootols
Conflicts:
	mindplot/src/main/javascript/widget/LinkIconTooltip.js
	pom.xml
2014-12-26 20:13:10 -03:00
Ezequiel Bergamaschi
d0dd1bb288 change api for url thumbnails 2014-12-26 20:12:07 -03:00
Ezequiel Bergamaschi
4107e8e61c change api for url thumbnails 2014-12-26 20:11:41 -03:00
Ezequiel Bergamaschi
5ca5a93eb3 fixing bugs in shortcuts and modal dialog with errors 2014-12-26 20:01:15 -03:00
Ezequiel Bergamaschi
8c807398a4 remove mootools components 2014-12-26 18:09:30 -03:00
Ezequiel Bergamaschi
3ee4bdd019 reformat moootools js for develop 2014-12-26 18:08:55 -03:00
Ezequiel Bergamaschi
0d20938506 still removing .bind(this) usages 2014-12-26 18:07:31 -03:00
Claudio Barril
ff6ff266c5 test broken because overlapping (is failing in master) 2014-12-21 14:33:11 -03:00
Claudio Barril
9e08a50c2d fix test name 2014-12-21 14:30:07 -03:00
Claudio Barril
75b89e1c7f fix code style 2014-12-21 14:29:51 -03:00
Paulo Gustavo Veiga
350fb5d2ab Fix typo... 2014-12-16 21:03:19 -03:00
Paulo Gustavo Veiga
2baf8c92fe Fix Swagger console base URL location issue. 2014-12-16 00:43:40 -03:00
Claudio Barril
645be7afb3 symmetric test suite 2014-12-14 19:17:48 -03:00
Claudio Barril
65cc84e062 test suite with node constants 2014-12-14 17:36:00 -03:00
Claudio Barril
4ea1bf6f71 free test migrated to jasmine (only which really works) 2014-12-14 17:35:08 -03:00
Claudio Barril
3770c0cac6 balanced test migrated to jasmine 2014-12-14 17:33:22 -03:00
Paulo Gustavo Veiga
fc213d5745 Test new release plugin. 2014-12-12 23:28:35 -03:00
Ezequiel Bergamaschi
00ab6fd61a adding tests to suite 2014-10-26 18:43:30 -03:00
Ezequiel Bergamaschi
8202248bad move bootstrap dir from wise-editor to mindplot 2014-10-26 18:13:02 -03:00
Ezequiel Bergamaschi
6e5ec59137 change js for symlink in tests 2014-10-26 18:11:56 -03:00
Ezequiel Bergamaschi
429f335001 jasmine framework configured for mindplot 2014-10-26 17:53:57 -03:00
Ezequiel Bergamaschi
60fed4ef8a adding resource test 2014-10-26 17:53:22 -03:00
Ezequiel Bergamaschi
728e8d7f38 comment tests setup in order to fix the continous build 2014-10-07 01:25:35 -03:00
Ezequiel Bergamaschi
e5b1e17e1f mindplot integrated with jasmine, dummy test uploaded 2014-10-07 01:17:23 -03:00
Ezequiel Bergamaschi
a814366058 some additional assertion 2014-10-07 01:16:56 -03:00
Ezequiel Bergamaschi
6de0b2d183 symb links for tests 2014-10-07 01:16:41 -03:00
Ezequiel Bergamaschi
fdd3b484fc remove unless dependency 2014-09-28 16:33:21 -03:00
Ezequiel Bergamaschi
10c596e95c use old jquery version since htmlunit does not support jquery 2.1.0 yet 2014-09-27 15:58:15 -03:00
Ezequiel Bergamaschi
b83e45e406 adding development jquery source 2014-09-27 15:57:46 -03:00
Ezequiel Bergamaschi
5412e1aaaa change webDriver since htmlunit throws error with jquery 2014-09-27 15:15:35 -03:00
Ezequiel Bergamaschi
98d9d877a2 unit testing for events 2014-09-27 14:35:49 -03:00
Ezequiel Bergamaschi
27149b0870 reducing functionality of Events class 2014-09-27 14:35:40 -03:00
Ezequiel Bergamaschi
8b0bd46f4d try change browser version for continuous build 2014-09-26 23:33:18 -03:00
Ezequiel Bergamaschi
e65eb3131b Merge branch 'feature/WISE-214-JasmineTests' into feature/remove_mootols 2014-09-26 23:24:47 -03:00
Ezequiel Bergamaschi
5a863734a0 Merge remote-tracking branch 'origin/develop' into feature/remove_mootols
Conflicts:
	mindplot/src/main/javascript/widget/LinkIconTooltip.js
	wise-webapp/src/main/webapp/jsp/mindmapExport.jsp
2014-09-26 23:24:41 -03:00
Ezequiel Bergamaschi
4987f1030d adding jasmine configuration and suite to core-js module 2014-09-26 23:22:37 -03:00
Ezequiel Bergamaschi
3026504110 Merge remote-tracking branch 'origin/develop' into feature/WISE-214-JasmineTests 2014-09-25 03:10:05 -03:00
Ezequiel Bergamaschi
81468c2e04 fix thumbnail service is down 2014-09-25 00:18:03 -03:00
Ezequiel Bergamaschi
ac27edae21 css bug fixing 2014-09-22 03:37:18 -03:00
Ezequiel Bergamaschi
412518f264 include js in final war 2014-09-22 03:28:34 -03:00
Ezequiel Bergamaschi
4642352fc1 rename js symb link 2014-09-22 03:14:28 -03:00
Paulo Gustavo Veiga
2b3fdf1196 Fix release version on master. 2014-09-21 22:20:48 -03:00
Paulo Gustavo Veiga
6a0605b6ac Update release version to 3.0.4 snapshot 2014-09-21 22:19:21 -03:00
Ezequiel Bergamaschi
4c94f44f3c replace old event.control and event.meta by event.ctrlKey and event.metaKey 2014-09-21 18:34:45 -03:00
Mariela Michalek
b7e5500e96 update remove button for editors 2014-09-14 18:32:18 -03:00
Ezequiel Bergamaschi
0dc7ead2a9 BootstrapDialog improvements and design 2014-09-14 17:45:11 -03:00
Ezequiel Bergamaschi
e23ef8d9d0 remove old References to MooDialog 2014-09-14 17:44:50 -03:00
Ezequiel Bergamaschi
23f5603460 change statix input size by percentage value 2014-09-12 17:09:17 -03:00
Ezequiel Bergamaschi
00e0959855 Revert "Revert "Revert "new header"""
This reverts commit 9844fb156e.

Conflicts:

	wise-webapp/src/main/webapp/jsp/header.jsp
2014-09-12 17:07:22 -03:00
Ezequiel Bergamaschi
144a5061a3 change thumbnails service due to service is down 2014-09-12 02:01:19 -03:00
Ezequiel Bergamaschi
ae1e8a2625 temporary hack for same scrollbar of mindmapList 2014-09-11 16:59:55 -03:00
Ezequiel Bergamaschi
4a0f39fb07 finishing css bug fixing of custom toolbar items 2014-09-11 16:59:22 -03:00
Ezequiel Bergamaschi
400f3963f5 mindmapExport css bug fixing 2014-09-11 15:12:27 -03:00
Mariela Michalek
687657bab3 when dialog is closed, remove divs from dom 2014-09-11 14:42:15 -03:00
Ezequiel Bergamaschi
7c31954b19 trigger event when dialog is shown to perform custom dialog actions 2014-09-11 14:38:49 -03:00
Ezequiel Bergamaschi
71b9357a9f fix esc key not working if not focus in modal 2014-09-11 14:38:22 -03:00
Ezequiel Bergamaschi
0f8b7ca662 mindmapShare css improvements 2014-09-11 13:04:50 -03:00
Ezequiel Bergamaschi
4f1f111432 fixing style stuffs 2014-09-11 11:35:31 -03:00
Paulo Gustavo Veiga
08d2403133 Merge branch 'develop' 2014-09-09 22:41:53 -03:00
Claudio Barril
28660e3400 really fix share editor (prod bug) 2014-09-09 18:48:51 -03:00
Claudio Barril
fb3a82222b fix some issues in share dialog 2014-09-09 17:43:22 -03:00
Claudio Barril
7abd37a138 remove duplicates files uploads 2014-09-09 17:42:17 -03:00
Claudio Barril
5c9b6f735d add translation for History in spanish 2014-09-09 17:41:25 -03:00
Claudio Barril
b9b3eb43f7 fix view history of maps 2014-09-09 13:50:17 -03:00
Claudio Barril
5b7bbf2e72 fix first save (wrong timestamp was being taken) 2014-09-09 11:54:48 -03:00
Claudio Barril
ded8dae982 fix publish panel 2014-09-09 11:19:56 -03:00
Claudio Barril
f1c6c845b8 fix regular expresion in export window 2014-09-09 11:19:20 -03:00
Claudio Barril
dcb4de0e0e fix content type 2014-09-08 15:51:20 -03:00
Ezequiel Bergamaschi
943a1ddbd7 dialogs migration from moodialog to bootstrap 2014-09-08 14:55:34 -03:00
Claudio Barril
802c9d3375 fix exporter to freemind issues (shape, font styles and font sizes) 2014-09-08 14:36:49 -03:00
Claudio Barril
81b138cf62 Merge remote-tracking branch 'origin/WISE-253-support-freemind-101' into develop 2014-09-07 23:31:57 -03:00
Claudio Barril
25ee14b7aa add default to import error manager 2014-09-07 23:16:00 -03:00
Claudio Barril
014d9334b3 fix nomenclature test name 2014-09-07 23:15:48 -03:00
Claudio Barril
7ee42468bd freemind constant 2014-09-07 23:15:27 -03:00
Claudio Barril
c83f4bd213 add test for version comparison 2014-09-07 21:02:04 -03:00
Claudio Barril
b0a6e7fac5 fixing files to test export 2014-09-07 20:20:03 -03:00
Ezequiel Bergamaschi
0c9d11c731 mindmap export bug fixing 2014-09-07 20:17:59 -03:00
Ezequiel Bergamaschi
4a27a7479a BootstrapDialog.Request implementation using modal body 2014-09-07 20:17:47 -03:00
Claudio Barril
7d973c7a87 setting default version for freemind export 2014-09-07 20:16:23 -03:00
Claudio Barril
d8e255cac8 considering possibility of null positions 2014-09-07 20:16:09 -03:00
Claudio Barril
b45f874ce4 remove console printing for debugging 2014-09-07 18:51:19 -03:00
Claudio Barril
8b6764af17 hack fix for relationships when import/export for freemind 2014-09-07 16:58:14 -03:00
Claudio Barril
a6a79e9f94 fix vertical order when export to freemind versions. 2014-09-07 16:10:06 -03:00
Claudio Barril
94e76fad9c support both export versions for freemind (old and new 1.0.1) 2014-09-07 16:06:58 -03:00
Ezequiel Bergamaschi
020dd0a876 BootstrapDialog.Request implementation 2014-09-01 02:45:15 -03:00
Claudio Barril
3c9573c93e fix drawn and freemind test 2014-08-30 22:42:28 -03:00
Claudio Barril
663310b388 copy parent background color when a sibling or a child is created 2014-08-25 23:58:13 -03:00
Claudio Barril
4641c3cc5a fix side as first level nodes are drawn 2014-08-25 23:32:17 -03:00
Mariela Michalek
be044840a1 Merge branch 'feature/remove_mootols' of bitbucket.org:wisemapping/wisemapping-open-source into feature/remove_mootols
Conflicts:
	mindplot/src/main/javascript/LinkIcon.js
2014-08-24 16:46:43 -03:00
Claudio Barril
1ff3cf2127 fixing import dialog, parameters modification and redirect 2014-08-20 23:31:14 -03:00
Claudio Barril
7b512ea2f6 removing comparasion hack and fixing order to compare versions 2014-08-20 23:30:24 -03:00
Ezequiel Bergamaschi
9844fb156e Revert "Revert "new header""
This reverts commit 3d6df8a143.
2014-08-18 21:54:41 -03:00
Ezequiel Bergamaschi
72a47b76bb Merge remote-tracking branch 'origin/develop' into feature/remove_mootols
Conflicts:
	wise-editor/src/main/webapp/js/less.js
	wise-webapp/pom.xml
	wise-webapp/src/main/webapp/js/less.js
2014-08-18 21:35:45 -03:00
Ezequiel Bergamaschi
8318e897fe fix less update and restoring symblinks 2014-08-18 21:23:42 -03:00
Ezequiel Bergamaschi
99c909c69b Revert "fix alias checking for jetty 9.x"
This reverts commit fff27e1bb7.
2014-08-18 21:10:25 -03:00
Ezequiel Bergamaschi
704fb02d1a old jetty pom 2014-08-18 21:09:56 -03:00
Ezequiel Bergamaschi
8686eb0ad4 Revert "removing unnecesary build"
This reverts commit 52cac830ae.
2014-08-18 20:19:59 -03:00
Ezequiel Bergamaschi
4aa0d22ebe fix save not working for mindmap (bad request) 2014-08-17 19:15:00 -03:00
Ezequiel Bergamaschi
f6464b6e37 fix link icon tooltip bug 2014-08-17 17:56:08 -03:00
Mariela Michalek
c925bd757b hide tooltip when editor is shown 2014-08-03 20:34:30 -03:00
Mariela Michalek
5d6ace0852 remove bind from LinkIcon 2014-08-03 20:10:14 -03:00
Mariela Michalek
ba638f06a1 remove bind from ImageIcon 2014-08-03 19:55:34 -03:00
Mariela Michalek
f24dcc4a5e remove .bind method from IconGroup 2014-08-03 19:34:25 -03:00
Mariela Michalek
1ec921efde update toolbar margin 2014-08-03 19:34:25 -03:00
Ezequiel Bergamaschi
75739389cc replace last Request by $.ajax 2014-08-03 17:07:48 -03:00
Ezequiel Bergamaschi
4ac182f0d9 RestPersisnteceManager reimplemented with ajax 2014-08-03 16:50:06 -03:00
Ezequiel Bergamaschi
df9f865e04 add missed css boostrap property 2014-08-03 15:24:58 -03:00
Ezequiel Bergamaschi
f9a5ac64b6 adding symlink for bootstrap in wise-webapp 2014-07-29 02:30:51 -03:00
Ezequiel Bergamaschi
ac8d2a179b remove wise-webapp bootstrap 2014-07-29 02:30:08 -03:00
Ezequiel Bergamaschi
9230c186e1 copying bootstrap from wise-webapp to wise-editor 2014-07-29 02:25:45 -03:00
Ezequiel Bergamaschi
c8cbd42fe3 link icon tooltip as black tooltip 2014-07-28 00:21:06 -03:00
Ezequiel Bergamaschi
19e949010f link icon tooltip hide on mouse leave 2014-07-28 00:20:32 -03:00
Ezequiel Bergamaschi
92e47fb98b reduce popover padding and size 2014-07-27 20:28:15 -03:00
Ezequiel Bergamaschi
f51480731a trying to load pom.xml 2014-07-27 18:25:52 -03:00
Ezequiel Bergamaschi
b9b4c380b2 adding js resources to jsp 2014-07-14 02:45:39 -03:00
Ezequiel Bergamaschi
954f242a63 updating some pom versions 2014-07-14 02:43:24 -03:00
Ezequiel Bergamaschi
e80f4f6518 loading dialog added 2014-07-14 00:12:23 -03:00
Ezequiel Bergamaschi
9fbe471585 change old addEvent method call by .on() 2014-07-14 00:11:56 -03:00
Ezequiel Bergamaschi
80ba57e5d3 restore symlink for less.js 2014-07-14 00:11:17 -03:00
Ezequiel Bergamaschi
3a83430771 Merge remote-tracking branch 'origin/develop' into feature/remove_mootols 2014-07-13 02:39:19 -03:00
Ezequiel Bergamaschi
039da8e73d adding hover to icon panel 2014-07-06 01:29:00 -03:00
Ezequiel Bergamaschi
c1b678c1aa ignore winkey on edit topics 2014-07-06 01:16:23 -03:00
Ezequiel Bergamaschi
5081311f7d adding option to ajax request for debugging 2014-07-06 01:16:08 -03:00
Ezequiel Bergamaschi
f2b0eb74ea removing .bind mootools call (phase 1/2) 2014-07-06 01:15:34 -03:00
Ezequiel Bergamaschi
3655df6cb8 adding stop propagation for keydown event in bootstrap dialog 2014-07-06 01:06:23 -03:00
Ezequiel Bergamaschi
d4f72f3633 fix multiline text editor enter not working and begin edit on tiping 2014-06-30 02:42:02 -03:00
Ezequiel Bergamaschi
9afb13b02f parsing text response manually from ajax request 2014-06-30 00:35:02 -03:00
Paulo Gustavo Veiga
5de02c8d51 Bug WISE-242 fixed
Add support for Firefox 3
2014-06-25 21:26:58 -03:00
Ezequiel Bergamaschi
8263b1abeb fix local storage manager 2014-06-22 23:46:36 -03:00
Ezequiel Bergamaschi
b5d1bbaa5b Merge remote-tracking branch 'origin/develop' into feature/remove_mootols 2014-06-19 00:49:34 -03:00
Ezequiel Bergamaschi
fff27e1bb7 fix alias checking for jetty 9.x 2014-06-19 00:43:10 -03:00
Ezequiel Bergamaschi
beaac8196d remove unless Json.encode method call 2014-06-16 01:36:33 -03:00
Ezequiel Bergamaschi
332ef31597 fix XMLSerializer_Pela appendChild error 2014-06-16 01:36:13 -03:00
Ezequiel Bergamaschi
a862a8ec3d fix some errors and old mootools syntax 2014-06-16 01:35:57 -03:00
Ezequiel Bergamaschi
8f3b55b650 ToolbarNotifier reimplemented 2014-06-16 01:35:34 -03:00
Ezequiel Bergamaschi
a5344c8400 change invalid preserveAspectRatio value 2014-06-06 00:10:07 -03:00
Ezequiel Bergamaschi
9d1ca21b67 designer keyboard shortcuts refactor 2014-06-06 00:09:48 -03:00
Ezequiel Bergamaschi
49da037936 fix NaN problem in group peer 2014-06-04 00:37:20 -03:00
Ezequiel Bergamaschi
c0abb0a71c adding wisemapping service script 2014-05-26 00:19:10 -03:00
Ezequiel Bergamaschi
3476c1cc95 removing periodical function from mootools 2014-05-22 00:17:34 -03:00
Ezequiel Bergamaschi
7406aa8e5b removing console logs 2014-05-21 23:53:56 -03:00
Ezequiel Bergamaschi
1b682bc3c2 remove positionRelativeTo method 2014-05-21 23:52:22 -03:00
Ezequiel Bergamaschi
f817167a7b text editor with position done 2014-05-21 23:51:51 -03:00
Ezequiel Bergamaschi
001f62b539 fixing Options problem 2014-05-16 00:27:57 -03:00
Ezequiel Bergamaschi
f1a63fbd09 clean mootools unless classes and methods 2014-05-13 02:23:32 -03:00
Ezequiel Bergamaschi
64f8c87577 extract Options mootools class 2014-05-13 02:23:32 -03:00
Ezequiel Bergamaschi
5923d01791 fix scrollbar zoom in / zoom out 2014-05-13 02:23:32 -03:00
Ezequiel Bergamaschi
2302116214 mousewheel jquery oficial plugin 2014-05-13 02:23:32 -03:00
Ezequiel Bergamaschi
58f3061b66 FadeEffect not working but hide and show correctly 2014-05-13 02:23:32 -03:00
Mariela Michalek
e6daae3ee8 remove url attr from input 2014-05-10 18:00:07 -03:00
Mariela Michalek
9cb881faaa update submit functionality on link editor 2014-05-10 17:58:29 -03:00
Mariela Michalek
4f74576ae7 add "URL_ERROR" in en properties 2014-05-10 17:54:52 -03:00
Mariela Michalek
9d0ba4b30d add url error BootstrapDialog and LinkEditor 2014-05-04 15:59:12 -03:00
Ezequiel Bergamaschi
faf34707d1 note tooltip reimplemented 2014-05-02 18:07:55 -03:00
Ezequiel Bergamaschi
25b1199160 LinkIconTooltip reimplemented 2014-05-02 17:55:35 -03:00
Ezequiel Bergamaschi
b692355b04 WISE-225 fixed 2014-05-02 15:26:27 -03:00
Ezequiel Bergamaschi
ef9b0ed227 fixme removed 2014-05-02 15:26:01 -03:00
Ezequiel Bergamaschi
d0304ff210 fix font type tooltip 2014-05-02 01:15:12 -03:00
Ezequiel Bergamaschi
9b9ab78839 color palette tooltip reimplemented 2014-05-02 01:00:32 -03:00
Michael Magill
e273c52f59 I was getting a 404 because it was looking for en_us, not just en. The en template may need to be copied for other English locales like en_GB, en_CA, etc. The 404 only showed up in Firefox's developer console did not appear to affect functionality, so this is just cleanup. 2014-04-29 15:42:31 +00:00
Paulo Gustavo Veiga
d23bff3f09 Merge branch 'develop' 2014-04-29 11:30:12 -03:00
Michael Magill
d609f6f3d7 Syntax error, CHARACTER SET utf8; should have been at the end of the create r_label_mindmap enty, not the bottom of the file. Probably copy and paste error. 2014-04-29 14:23:29 +00:00
Paulo Gustavo Veiga
1d6adf177f Merge branch 'develop' 2014-04-29 11:19:18 -03:00
Paulo Gustavo Veiga
06004f73a8 Rename migration script ... 2014-04-29 11:17:20 -03:00
Ezequiel Bergamaschi
4414e0943d some css changes.. 2014-04-27 23:59:45 -03:00
Ezequiel Bergamaschi
0e4d01475d toolbarItem reimplemented 2014-04-27 23:59:35 -03:00
Ezequiel Bergamaschi
bb39a9a9d7 removing unless parameters on fire event in floating tip 2014-04-27 23:59:01 -03:00
Paulo Gustavo Veiga
8542ef8b13 Merge branch 'develop' 2014-04-27 12:07:24 -03:00
Paulo Gustavo Veiga
72034aad1e Remove all used users for setup. Pending to define data set. 2014-04-27 12:05:49 -03:00
Paulo Gustavo Veiga
9efa963ec8 Fix SQL names. 2014-04-27 11:13:38 -03:00
Paulo Gustavo Veiga
55ab0f280f Merge branch 'develop' 2014-04-26 21:16:57 -03:00
Paulo Gustavo Veiga
a42811630d Merge branch 'develop' into feature/WISE-211-iconSupportOnLabels 2014-04-26 21:15:57 -03:00
Paulo Gustavo Veiga
5dd2440a73 Merge branch 'develop' 2014-04-26 21:11:35 -03:00
Paulo Gustavo Veiga
d7ca087182 Mir fix on label. 2014-04-26 21:08:13 -03:00
Claudio Barril
d2a99998b5 add update for label icon support with tag as default 2014-04-26 18:27:01 -03:00
Paulo Gustavo Veiga
d6a60636ed Merged feature/WISE-211-iconSupportOnLabels into develop 2014-04-26 15:44:36 -03:00
Paulo Gustavo Veiga
9ca2f6bb1e Merged in ldap-changes (pull request #1)
move 'ou=' from being hardcoded to part of security.ldap.subDn
2014-04-26 15:39:29 -03:00
Michael Magill
b886a5888a removed "ou=" from LDAP user search since it is now integrated with security.ldap.subDn 2014-04-25 20:41:50 +00:00
Michael Magill
cec140b1fd changed default security.ldap.subDn parameter to include "ou=" 2014-04-25 20:36:48 +00:00
Michael Magill
84cffac713 removed extra / from site.baseurl 2014-04-25 20:30:18 +00:00
Ezequiel Bergamaschi
52968d435c FloatingTip in ToolbarItem deleted 2014-04-21 00:34:23 -03:00
Ezequiel Bergamaschi
efd8c6e867 fixing some old refs 2014-04-21 00:34:01 -03:00
Ezequiel Bergamaschi
3d2c251b03 FloatingTip as bootstrap popover 2014-04-20 23:57:39 -03:00
Ezequiel Bergamaschi
6a786a46e0 KeyboardShortcutTooltip reimplemented 2014-04-19 16:47:11 -03:00
Mariela Michalek
12a90cc820 add open link functionality 2014-04-19 16:38:04 -03:00
Mariela Michalek
64ec947157 refactor note and link editors 2014-04-19 16:28:28 -03:00
Mariela Michalek
47241c38f3 update remove button 2014-04-19 16:25:28 -03:00
Ezequiel Bergamaschi
754d4b3dcf fixing wrong reference variable 2014-04-19 14:18:35 -03:00
Paulo Gustavo Veiga
7ee577c400 Update ads codes. 2014-04-18 19:48:09 -03:00
Paulo Gustavo Veiga
c854c1b377 Update analitics tracking code. 2014-04-18 19:13:55 -03:00
Mariela Michalek
02b6ea66dd set styles 2014-04-18 17:54:24 -03:00
Mariela Michalek
2f82ce6d54 update editors with remove button 2014-04-18 17:13:44 -03:00
Mariela Michalek
65286f0443 fade in remove button 2014-04-18 17:12:36 -03:00
Ezequiel Bergamaschi
bfe24b7dfb popovers for icons in label icon chooser 2014-04-17 01:29:44 -03:00
Claudio Barril
85c7e3ce5c fixing tests broken because refactor of label attribute icon 2014-04-16 10:29:36 -03:00
Claudio Barril
27304ea385 label icon list reduced 2014-04-16 03:00:00 -03:00
Claudio Barril
8a994ee6f5 jsp include for label icon list 2014-04-16 02:59:33 -03:00
Claudio Barril
5ec3b6cce1 label attribute icon to iconName refactor (because of eze code review) 2014-04-16 02:38:33 -03:00
Claudio Barril
8cd05ec37e adding icon to tags list (when tagging) and some style 2014-04-16 02:25:07 -03:00
Ezequiel Bergamaschi
5a00229390 adding css for color chooser 2014-04-16 01:57:42 -03:00
Ezequiel Bergamaschi
4b01f7c8ee removing fixme from dialogForm function 2014-04-16 01:48:09 -03:00
Claudio Barril
edb91b92bd fix tests 2014-04-16 00:25:32 -03:00
Claudio Barril
c6ae7be255 import label list from another jsp prototype 2014-04-14 18:14:56 -03:00
Claudio Barril
86ba19c120 sending icon data to api rest 2014-04-14 18:14:32 -03:00
Claudio Barril
183ab33729 add styles 2014-04-14 18:10:16 -03:00
Claudio Barril
9e992a8f61 add label icons back-end (model and database) 2014-04-14 18:09:34 -03:00
Claudio Barril
5d18283285 icon ui selection 2014-04-12 19:04:28 -03:00
Claudio Barril
d66666010d icon dropdown creation dialog 2014-04-12 19:04:19 -03:00
Claudio Barril
bddf867b63 icon message 2014-04-12 19:03:31 -03:00
Mariela Michalek
ff9cd9466e update accept button 2014-04-12 15:11:39 -03:00
Mariela Michalek
1416ff2d11 update editor's events 2014-04-12 15:00:51 -03:00
Mariela Michalek
356ccfe115 conflict linkEditor 2014-04-10 19:35:39 -03:00
Mariela Michalek
cb6d691ee2 update bootstrapDialog 2014-04-10 19:33:48 -03:00
Mariela Michalek
66bf71fbc7 update editors 2014-04-10 19:33:20 -03:00
Ezequiel Bergamaschi
cd5ed0414e adding configuration for mindplot module 2014-04-10 01:06:50 -03:00
Ezequiel Bergamaschi
7e36425aad jasmine maven plugin dependency declared in parent pom 2014-04-10 00:53:48 -03:00
Claudio Barril
d0d161e8ab fix padding and label in two lines 2014-04-09 00:13:38 -03:00
Ezequiel Bergamaschi
0c80f8f544 removing css class 2014-04-06 18:31:28 -03:00
Ezequiel Bergamaschi
a47232d6df removing custom class .btn-primary, keep bootstrap 2014-04-06 18:24:16 -03:00
Ezequiel Bergamaschi
776f2e968d fixing bug 2014-04-03 22:56:11 -03:00
Ezequiel Bergamaschi
5803d46fa6 Merge remote-tracking branch 'origin/feature/remove_mootols' into feature/remove_mootols
Conflicts:
	mindplot/src/main/javascript/widget/LinkEditor.js
2014-04-03 22:42:21 -03:00
Ezequiel Bergamaschi
c385603454 BootstrapDialog and fixing LinkEditor 2014-04-03 22:39:23 -03:00
Mariela Michalek
0348662bf6 update link and note editor 2014-04-02 15:57:32 -03:00
Mariela Michalek
52fa7679b9 revert "update bootstrap modal dialog"
This reverts commit 690b653092.
2014-04-02 15:28:59 -03:00
Mariela Michalek
31671d1c5e update bootstrapDialog 2014-04-02 15:19:54 -03:00
Mariela Michalek
7ecee63edd update bootstrap dialog 2014-04-01 07:25:22 -03:00
Mariela Michalek
4dd9d89a5e update note editor 2014-04-01 07:24:58 -03:00
Mariela Michalek
b911e4d916 update link editor 2014-04-01 07:24:36 -03:00
Mariela Michalek
690b653092 update bootstrap modal dialog 2014-04-01 07:24:00 -03:00
Mariela Michalek
d4b8754c05 change compatibility file 2014-04-01 07:15:12 -03:00
Mariela Michalek
cf085f1af9 update linkEditor 2014-03-29 17:13:31 -03:00
Mariela Michalek
9c2f303acd update pom - bootstrapDialog 2014-03-29 17:12:51 -03:00
Mariela Michalek
eb861b56fd add BootstrapDialog 2014-03-29 17:10:52 -03:00
Claudio Barril
64c7198d50 update mysql schemas population 2014-03-19 23:29:00 -03:00
Claudio Barril
2fae012fd9 update hsql schemas population 2014-03-19 23:28:46 -03:00
Ezequiel Bergamaschi
bc880497b4 fixing more bugs 2014-03-19 01:51:55 -03:00
Ezequiel Bergamaschi
454354f9cd MultilineTextEditor partially fixed 2014-03-17 03:08:08 -03:00
Ezequiel Bergamaschi
dccc1c8c88 fix click outside modal is closing it on wait dialog 2014-03-17 02:15:03 -03:00
Ezequiel Bergamaschi
3ea4d56604 fix wrong jquery call method, replace toggle by trigger for handling events 2014-03-17 02:14:41 -03:00
Ezequiel Bergamaschi
2ab488bfa6 replacing old .each mootools' method by _.each 2014-03-17 00:36:29 -03:00
Ezequiel Bergamaschi
a0e3c74921 adding underscorejs library 2014-03-17 00:35:54 -03:00
Ezequiel Bergamaschi
a438eca3da ColorPalettePanel reimplemented 2014-03-16 22:15:16 -03:00
Ezequiel Bergamaschi
48c7fe2a96 replace old Events class 2014-03-16 22:00:04 -03:00
Ezequiel Bergamaschi
bd70f3b609 IconPanel reimplemented 2014-03-16 21:33:56 -03:00
Ezequiel Bergamaschi
43898f6878 browser global variable workaround 2014-03-16 18:12:21 -03:00
Ezequiel Bergamaschi
51d4510241 reimplementing persistence managers 2014-03-16 17:05:40 -03:00
Paulo Gustavo Veiga
5be0a547b6 Remove old test drive configuration. 2014-03-16 12:54:53 -03:00
Paulo Gustavo Veiga
e8ee76c5f8 Merged feature/WISE-220-mindmapListImprovements into develop 2014-03-16 11:34:38 -03:00
Paulo Gustavo Veiga
e1a357c8c9 Remove Events class from moootools library. 2014-03-16 11:30:37 -03:00
Ezequiel Bergamaschi
4bcea1363e removing fixme 2014-03-15 03:56:10 -03:00
Ezequiel Bergamaschi
7b5835f2e9 removing todo 2014-03-15 03:55:57 -03:00
Ezequiel Bergamaschi
8115b50556 adding Events mootool class 2014-03-15 03:55:42 -03:00
Ezequiel Bergamaschi
3e0d84392b ModalDialogNotifier reimplemented 2014-03-15 02:48:28 -03:00
Ezequiel Bergamaschi
3d6df8a143 Revert "new header"
This reverts commit 251f0eca46.

Conflicts:

	wise-webapp/src/main/webapp/jsp/header.jsp
2014-03-14 23:59:16 -03:00
Ezequiel Bergamaschi
dec0fb7aef bootstrap 13px 2014-03-14 23:57:23 -03:00
Ezequiel Bergamaschi
980a984499 bootstrap 12px and 13px 2014-03-14 23:48:05 -03:00
Ezequiel Bergamaschi
1f8e251009 orange buttons new header 2014-03-13 00:41:45 -03:00
Ezequiel Bergamaschi
4729022d6a updating webdefault.xml 2014-03-12 23:42:30 -03:00
Ezequiel Bergamaschi
eb9a28603c updating jetty version and removing old config 2014-03-12 23:42:20 -03:00
Ezequiel Bergamaschi
d191aa9075 reducing delete dialog size 2014-03-12 01:53:47 -03:00
Ezequiel Bergamaschi
e585686bd2 bootstrap recompiled with base font size 12px 2014-03-12 01:41:36 -03:00
Ezequiel Bergamaschi
44b3707005 avoid override bootstrap nav-pills class 2014-03-11 23:43:45 -03:00
Ezequiel Bergamaschi
251f0eca46 new header 2014-03-10 01:22:30 -03:00
Ezequiel Bergamaschi
1bdf75e295 rows clickeables 2014-03-10 00:12:49 -03:00
Ezequiel Bergamaschi
ccdab5257b css and animation fadeIn 2014-03-09 23:41:39 -03:00
Ezequiel Bergamaschi
797a4adfd4 small searcher 2014-03-09 23:41:17 -03:00
Ezequiel Bergamaschi
3b64577d15 small buttons 2014-03-09 23:41:00 -03:00
Ezequiel Bergamaschi
06fc95c454 Revert "rename parameter"
This reverts commit 29894a276e.
2014-03-09 22:08:46 -03:00
Ezequiel Bergamaschi
18584e8c9f using bootstrap for modal loading dialog 2014-03-09 20:50:41 -03:00
Ezequiel Bergamaschi
3969097d21 working on loading dialog 2014-03-09 05:50:52 -03:00
Claudio Barril
0c15789c4b force linkLabel to use view security in mindmap service 2014-03-09 02:34:20 -03:00
Claudio Barril
ae31613fdd renaming method addLabel to linkLabel 2014-03-09 02:34:20 -03:00
Ezequiel Bergamaschi
1edb15cfe1 hotkeys enter issue fixed 2014-03-09 02:00:16 -03:00
Ezequiel Bergamaschi
f4773c4ce7 reimplementing shortcuts 2014-03-09 01:46:05 -03:00
Ezequiel Bergamaschi
c89a27e62e Dummy Keyboard class 2014-03-09 01:45:53 -03:00
Ezequiel Bergamaschi
d2176a49a7 hotkeys plugin 2014-03-09 01:45:36 -03:00
Paulo Gustavo Veiga
6432fefa67 Merged WISE-217-fixMindmapsAreShowingOtherUserLabels into develop 2014-03-08 23:58:20 -03:00
Claudio Barril
29037e60d8 select only my labels from all mindmap labels 2014-03-08 16:29:43 -03:00
Claudio Barril
29894a276e rename parameter 2014-03-08 16:29:42 -03:00
Claudio Barril
db0595ac7e remove unused exception and class 2014-03-08 16:29:42 -03:00
Paulo Gustavo Veiga
fde613e24a Start working on editor.html. 2014-03-05 00:55:22 -03:00
Paulo Gustavo Veiga
1706c25cfd Rename web2d fire event. 2014-03-05 00:45:08 -03:00
Paulo Gustavo Veiga
dca67ecd79 Fix event fore. 2014-03-05 00:38:03 -03:00
Paulo Gustavo Veiga
e5186688ab Finally viewmode.html render. 2014-03-05 00:14:28 -03:00
Paulo Gustavo Veiga
255f50eda8 More fixes ... 2014-03-04 23:09:39 -03:00
Paulo Gustavo Veiga
3cf3b857a3 Keep fixing issues. 2014-03-04 22:59:39 -03:00
Paulo Gustavo Veiga
b46ad170fb Keep migration to jQuery ... 2014-03-04 22:48:31 -03:00
Paulo Gustavo Veiga
0d0db68038 Fix workspace. 2014-03-04 21:33:47 -03:00
Paulo Gustavo Veiga
1580d20e31 Fix font tests. 2014-03-04 21:24:03 -03:00
Paulo Gustavo Veiga
d9cd33c487 Fix text children... 2014-03-04 21:09:59 -03:00
Paulo Gustavo Veiga
88369dfb53 Replace document.id by Jquery $ 2014-03-04 21:07:52 -03:00
Paulo Gustavo Veiga
4c83b27e6f Reduce Mootools components. 2014-03-04 20:47:23 -03:00
Paulo Gustavo Veiga
4c6484ff00 Remove Overlay.js ... 2014-03-04 18:27:52 -03:00
Paulo Gustavo Veiga
6048b6ae14 Merge branch 'develop' into feature/remove_mootols 2014-03-04 18:21:54 -03:00
Paulo Gustavo Veiga
bf8345908b Merge branch 'feature/WISE-15-mindmapListFolderSupport' into develop 2014-03-04 16:11:52 -03:00
Mariela Michalek
d111c54f15 add new label test 2014-02-25 22:19:52 -03:00
Paulo Gustavo Veiga
0e0e3ec29e Remove moodialog
Re-implementing message dialog.
Fix several imports.
2014-02-19 03:34:12 -03:00
Paulo Gustavo Veiga
4efd64fac1 Remove mootools more dependency. 2014-02-19 03:11:13 -03:00
Paulo Gustavo Veiga
f8f8892dbb Remove Hash dependency. 2014-02-19 03:09:24 -03:00
Paulo Gustavo Veiga
f3f03be007 Add just restricted mootools libraries. 2014-02-19 03:01:32 -03:00
Paulo Gustavo Veiga
e386a571d3 Fix arrow tests. 2014-02-17 10:43:25 -03:00
Paulo Gustavo Veiga
f14fe84a85 Fix several tests. 2014-02-17 10:20:55 -03:00
Paulo Gustavo Veiga
ef164cc831 Replace $ by document.id for avoid colitions. 2014-02-17 10:16:43 -03:00
Paulo Gustavo Veiga
ac50c6633c Replace $dolar sign. 2014-02-17 10:11:58 -03:00
Paulo Gustavo Veiga
6a5eb910b5 Fix display lock message. 2014-02-17 09:05:54 -03:00
Ezequiel Bergamaschi
8462e54293 Merge remote-tracking branch 'origin/develop' into feature/WISE-15-mindmapListFolderSupport
Conflicts:
	wise-webapp/src/main/webapp/jsp/mindmapList.jsp
2014-02-14 03:54:36 -03:00
Paulo Gustavo Veiga
7b45b4b633 Remove console.log messsage. 2014-02-12 14:37:04 -03:00
Paulo Gustavo Veiga
b7051d56c0 Fix modal dialogs loading ... 2014-02-12 14:37:04 -03:00
Paulo Gustavo Veiga
8be0f19792 Move adsense location 2014-02-12 01:00:12 -03:00
Paulo Gustavo Veiga
44dbce0801 Fix login color h1. 2014-02-12 00:55:04 -03:00
Paulo Gustavo Veiga
878fe464ea Reference bootstrap min.
Fin export dialog.
2014-02-12 00:20:06 -03:00
Paulo Gustavo Veiga
68fd71d300 Fix no closed div element on account settings. 2014-02-11 23:27:46 -03:00
Paulo Gustavo Veiga
73e955afac Fix table hover issue. 2014-02-11 21:45:29 -03:00
Ezequiel Bergamaschi
ea4684d9c8 get label by id with user and validate label exists on link to mindmap 2014-02-11 02:04:09 -03:00
Ezequiel Bergamaschi
0b021c7602 style change.. 2014-02-11 01:36:19 -03:00
Ezequiel Bergamaschi
1de1a9f55f warning in yellow 2014-02-11 01:05:31 -03:00
Ezequiel Bergamaschi
60d75b6f2d code indendt 2014-02-11 00:48:48 -03:00
Ezequiel Bergamaschi
ae71b1331f fix focus on modal 2014-02-11 00:43:20 -03:00
Ezequiel Bergamaschi
c56698d085 fix color picker on background 2014-02-11 00:43:04 -03:00
Ezequiel Bergamaschi
7299c7d506 fixing ui 2014-02-11 00:18:46 -03:00
Ezequiel Bergamaschi
9e8f73df99 Merge remote-tracking branch 'origin/develop' into feature/WISE-15-mindmapListFolderSupport
Conflicts:
	wise-webapp/src/main/webapp/jsp/mindmapList.jsp
2014-02-10 22:16:48 -03:00
Paulo Gustavo Veiga
08a066271b Merged WISE-209-new-map-is-not-working-on-ie-10 into develop 2014-02-09 23:11:38 -03:00
Paulo Gustavo Veiga
8996df4cbb More minor fixes. 2014-02-09 22:44:58 -03:00
Paulo Gustavo Veiga
c5932dc0f8 Fix mindmap list navigator toolbar. 2014-02-09 22:14:53 -03:00
Paulo Gustavo Veiga
832fb6ce52 Enable MYSQL display message. 2014-02-09 22:04:01 -03:00
Paulo Gustavo Veiga
bbc380366f Fix login page. 2014-02-09 21:58:23 -03:00
Paulo Gustavo Veiga
95d9414ae3 Change sd to md styles. 2014-02-09 20:12:24 -03:00
Paulo Gustavo Veiga
f339ed777e Merge branch 'release/v3.0.2' of https://bitbucket.org/wisemapping/wisemapping-open-source 2014-01-15 11:03:41 -03:00
405 changed files with 35029 additions and 22994 deletions

View File

@@ -6,22 +6,5 @@ INSERT INTO COLLABORATOR (id, email, creation_date) VALUES (2, 'admin@wisemappin
INSERT INTO USER (colaborator_id, firstname, lastname, password, activation_code, activation_date, allow_send_email,authentication_type)
VALUES (2, 'Admin', 'User', 'admin', 1237, CURDATE(), 1,'D');
INSERT INTO COLLABORATOR (id, email, creation_date) VALUES (3, 'homer@wisemapping.org', CURDATE());
INSERT INTO USER (colaborator_id, firstname, lastname, password, activation_code, activation_date, allow_send_email,authentication_type)
VALUES (3, 'Homer', 'Simpson', 'homer', 1237, CURDATE(), 1, 'D');
INSERT INTO COLLABORATOR (id, email, creation_date) VALUES (4, 'marge@wisemapping.org', CURDATE());
INSERT INTO USER (colaborator_id, firstname, lastname, password, activation_code, activation_date, allow_send_email,authentication_type)
VALUES (4, 'Marge', 'Bouvier', 'marge', 1237, CURDATE(), 1, 'D');
INSERT INTO COLLABORATOR (id, email, creation_date) VALUES (5, 'bart@wisemapping.org', CURDATE());
INSERT INTO USER (colaborator_id, firstname, lastname, password, activation_code, activation_date, allow_send_email,authentication_type)
VALUES (5, 'Bart', 'Simpson', 'bart', 1237, CURDATE(), 1, 'D');
INSERT INTO COLLABORATOR (id, email, creation_date) VALUES (6, 'lisa@wisemapping.org', CURDATE());
INSERT INTO USER (colaborator_id, firstname, lastname, password, activation_code, activation_date, allow_send_email,authentication_type)
VALUES (6, 'Lisa', 'Simpson', 'lisa', 1237, CURDATE(), 1, 'D');
COMMIT;
SHUTDOWN;
SHUTDOWN;

View File

@@ -37,7 +37,8 @@ CREATE TABLE LABEL (
title VARCHAR(30),
creator_id INTEGER NOT NULL,
parent_label_id INTEGER,
color VARCHAR(7) NOT NULL
color VARCHAR(7) NOT NULL,
iconName VARCHAR(50) NOT NULL
--FOREIGN KEY (creator_id) REFERENCES USER (colaborator_id)
);

View File

@@ -10,20 +10,4 @@ INSERT INTO COLLABORATOR (id, email, creation_date) VALUES (2, 'admin@wisemappin
INSERT INTO USER (colaborator_id, firstname, lastname, password, activation_code, activation_date, allow_send_email,authentication_type)
VALUES (2, 'Admin', 'User', 'admin', 1237, CURRENT_DATE(), 1,'D');
INSERT INTO COLLABORATOR (id, email, creation_date) VALUES (3, 'homer@wisemapping.org', CURRENT_DATE());
INSERT INTO USER (colaborator_id, firstname, lastname, password, activation_code, activation_date, allow_send_email,authentication_type)
VALUES (3, 'Homer', 'Simpson', 'homer', 1237, CURRENT_DATE(), 1, 'D');
INSERT INTO COLLABORATOR (id, email, creation_date) VALUES (4, 'marge@wisemapping.org', CURRENT_DATE());
INSERT INTO USER (colaborator_id, firstname, lastname, password, activation_code, activation_date, allow_send_email,authentication_type)
VALUES (4, 'Marge', 'Bouvier', 'marge', 1237, CURRENT_DATE(), 1, 'D');
INSERT INTO COLLABORATOR (id, email, creation_date) VALUES (5, 'bart@wisemapping.org', CURRENT_DATE());
INSERT INTO USER (colaborator_id, firstname, lastname, password, activation_code, activation_date, allow_send_email,authentication_type)
VALUES (5, 'Bart', 'Simpson', 'bart', 1237, CURRENT_DATE(), 1, 'D');
INSERT INTO COLLABORATOR (id, email, creation_date) VALUES (6, 'lisa@wisemapping.org', CURRENT_DATE());
INSERT INTO USER (colaborator_id, firstname, lastname, password, activation_code, activation_date, allow_send_email,authentication_type)
VALUES (6, 'Lisa', 'Simpson', 'lisa', 1237, CURRENT_DATE(), 1, 'D');
COMMIT;

View File

@@ -58,6 +58,7 @@ CREATE TABLE LABEL (
creator_id INTEGER NOT NULL,
parent_label_id INTEGER,
color VARCHAR(7) NOT NULL,
iconName VARCHAR(50) NOT NULL,
FOREIGN KEY (creator_id) REFERENCES USER (colaborator_id),
FOREIGN KEY (parent_label_id) REFERENCES LABEL (id)
ON DELETE CASCADE

View File

@@ -31,4 +31,7 @@ CREATE TABLE R_LABEL_MINDMAP (
)
CHARACTER SET utf8;
ALTER TABLE `LABEL`
ADD COLUMN iconName VARCHAR(50) NOT NULL;
UPDATE LABEL SET iconName = 'glyphicon glyphicon-tag';

View File

@@ -9,8 +9,11 @@
<groupId>org.wisemapping</groupId>
<artifactId>wisemapping</artifactId>
<relativePath>../pom.xml</relativePath>
<version>3.1-SNAPSHOT</version>
<version>4.0.1</version>
</parent>
<scm>
<developerConnection>scm:git:git@bitbucket.org:wisemapping/wisemapping-open-source.git</developerConnection>
</scm>
<build>
<plugins>
@@ -32,6 +35,28 @@
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.5</version>
</plugin>
<plugin>
<groupId>com.github.searls</groupId>
<artifactId>jasmine-maven-plugin</artifactId>
<version>1.3.1.5</version>
<executions>
<execution>
<goals>
<goal>test</goal>
</goals>
</execution>
</executions>
<configuration>
<sourceIncludes>
<include>Functions.js</include>
</sourceIncludes>
</configuration>
</plugin>
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>yuicompressor-maven-plugin</artifactId>
@@ -51,19 +76,9 @@
<include>${basedir}/target/tmp/header-min.js</include>
<include>${basedir}/target/tmp/Functions-min.js</include>
<include>${basedir}/target/tmp/Utils-min.js</include>
<!-- @Todo:Review this -->
<include>
${basedir}/../mindplot/src/main/javascript/libraries/moodialog/Overlay.js
</include>
<include>
${basedir}/../mindplot/src/main/javascript/libraries/moodialog/MooDialog.js
</include>
<include>
${basedir}/../mindplot/src/main/javascript/libraries/moodialog/MooDialog.Request.js
</include>
<include>
${basedir}/../mindplot/src/main/javascript/libraries/moodialog/MooDialog.Fx.js
</include>
<include>${basedir}/../mindplot/src/main/javascript/Options.js</include>
<include>${basedir}/../mindplot/src/main/javascript/libraries/bootstrap/BootstrapDialog.js</include>
<include>${basedir}/../mindplot/src/main/javascript/libraries/bootstrap/BootstrapDialog.Request.js</include>
</includes>
</aggregation>
</aggregations>

View File

@@ -0,0 +1,10 @@
describe("Functions suite test", function() {
it("$defined() test spec", function() {
var testVariable = undefined;
expect($defined(testVariable)).toBe(false);
testVariable = 1;
expect($defined(testVariable)).toBe(true);
testVariable = null;
expect($defined(testVariable)).toBe(false);
});
});

View File

@@ -8,7 +8,7 @@ BASE_DIR=`pwd`
TARGET_DIR=$BASE_DIR/target
JETTY_DIR=$TARGET_DIR/wisemapping-$WISE_VERSION
WISE_WEBAPP_DIR=$JETTY_DIR/webapps/wisemapping
JETTY_VERSION=8.1.14.v20131031
JETTY_VERSION=8.1.16.v20140903
JETTY_DIST_DIR=jetty-distribution-${JETTY_VERSION}
JETTY_ZIP=${JETTY_DIST_DIR}.zip
@@ -53,6 +53,7 @@ cp $BASE_DIR/wisemapping.xml $JETTY_DIR/contexts/
# Distribute scripts
cp -r $BASE_DIR/../config/ $TARGET_DIR/wisemapping-$WISE_VERSION/config
cp ./start.sh ${JETTY_DIR}/
cp -r $BASE_DIR/service $TARGET_DIR/wisemapping-$WISE_VERSION/service
# Store version
echo $1 > $WISE_WEBAPP_DIR/version

View File

@@ -0,0 +1,72 @@
#!/bin/bash
### BEGIN INIT INFO
# Provides: wisemapping
# Required-Start: $all
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: wisemapping
# Description: www.wisemapping.com
### END INIT INFO
set -e
set -u
#environmental variables
JAVA_HOME="/usr/lib/jvm/java7"
JDK_HOME=$JAVA_HOME
export PATH=$JAVA_HOME/bin:$PATH
WISE_HOME="/opt/wisemapping"
PID_FILE="$WISE_HOME/.pid"
SELF=$(cd $(dirname $0); pwd -P)/$(basename $0)
preInitChecks() {
MYSQL_STATUS=`pgrep mysql`
if [ -z $MYSQL_STATUS ]; then
service mysql start >/dev/null 2>&1
fi
}
wiseStatus() {
echo `pgrep -f "$WISE_HOME/start.jar"`
}
case "${1:-''}" in
'start')
#preInitChecks
cd $WISE_HOME
echo "Starting Wisemapping..."
java -Xmx256m -Dorg.apache.jasper.compiler.disablejsr199=true -jar $WISE_HOME/start.jar > $WISE_HOME/logs/start.log 2>&1 &
PID=$!
cd - >/dev/null 2>&1
echo "proccess id: $PID"
echo "$PID" > $PID_FILE
;;
'stop')
if [ ! -f $PID_FILE ]; then
PID=$(wiseStatus)
else
PID=`cat $PID_FILE`
rm $PID_FILE >/dev/null 2>&1
fi
kill $PID
echo "Wisemapping stopped"
;;
'restart')
set +e; $SELF stop; set -e
$SELF start
;;
'status')
STATUS=$(wiseStatus)
if [ -n "$STATUS" ]; then
echo "Wisemapping server is running, pid: $STATUS"
else
echo "Wisemapping is stopped"
fi
;;
*)
echo "Usage: $SELF start|stop|restart|status"
exit 1
;;
esac

View File

@@ -9,7 +9,7 @@
<groupId>org.wisemapping</groupId>
<artifactId>wisemapping</artifactId>
<relativePath>../pom.xml</relativePath>
<version>3.1-SNAPSHOT</version>
<version>4.0.1</version>
</parent>
<dependencies>
@@ -124,6 +124,8 @@
<inputDir>${basedir}/target/compress</inputDir>
<includes>
<include>header.js</include>
<include>Events.js</include>
<include>Options.js</include>
<include>${basedir}/../web2d/target/classes/web2d.svg-min.js</include>
<include>Messages.js</include>
<include>TopicEventDispatcher.js</include>
@@ -139,7 +141,9 @@
<include>ScreenManager.js</include>
<include>Workspace.js</include>
<include>ShrinkConnector.js</include>
<include>Keyboard.js</include>
<include>DesignerKeyboard.js</include>
<include>Keyboard.js</include>
<include>TopicStyle.js</include>
<include>NodeGraph.js</include>
<include>Topic.js</include>
@@ -250,6 +254,153 @@
<skipTests>true</skipTests>
</configuration>
</plugin>
<plugin>
<groupId>com.github.searls</groupId>
<artifactId>jasmine-maven-plugin</artifactId>
<version>1.3.1.5</version>
<executions>
<execution>
<goals>
<!--goal>test</goal-->
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>net.sourceforge.htmlunit</groupId>
<artifactId>htmlunit</artifactId>
<version>2.15</version>
</dependency>
</dependencies>
<configuration>
<preloadSources>
<source>libraries/mootools/mootools-core-1.4.5-full-nocompat-yc.js</source>
<source>lib/jquery-1.8.2.js</source>
<source>lib/core.js/</source>
<source>lib/web2d.svg-min.js</source>
<source>libraries/hotkeys/jquery.hotkeys.js</source>
<source>libraries/underscorejs/underscore-min.js</source>
<source>libraries/bootstrap/js/bootstrap.js</source>
</preloadSources>
<sourceIncludes>
<include>header.js</include>
<include>Events.js</include>
<include>Messages.js</include>
<include>TopicEventDispatcher.js</include>
<include>model/IMindmap.js</include>
<include>model/Mindmap.js</include>
<include>model/INodeModel.js</include>
<include>model/NodeModel.js</include>
<include>model/RelationshipModel.js</include>
<include>ActionDispatcher.js</include>
<include>StandaloneActionDispatcher.js</include>
<include>DesignerModel.js</include>
<include>Designer.js</include>
<include>ScreenManager.js</include>
<include>Workspace.js</include>
<include>ShrinkConnector.js</include>
<include>Keyboard.js</include>
<include>DesignerKeyboard.js</include>
<include>Keyboard.js</include>
<include>TopicStyle.js</include>
<include>NodeGraph.js</include>
<include>Topic.js</include>
<include>CentralTopic.js</include>
<include>MainTopic.js</include>
<include>DragTopic.js</include>
<include>DragManager.js</include>
<include>DragPivot.js</include>
<include>ConnectionLine.js</include>
<include>Relationship.js</include>
<include>DragConnector.js</include>
<include>TextEditor.js</include>
<include>MultilineTextEditor.js</include>
<include>TextEditorFactory.js</include>
<include>util/Shape.js</include>
<include>util/FadeEffect.js</include>
<include>persistence/ModelCodeName.js</include>
<include>persistence/XMLSerializer_Pela.js</include>
<include>persistence/XMLSerializer_Tango.js</include>
<include>persistence/Pela2TangoMigrator.js</include>
<include>persistence/XMLSerializer_Beta.js</include>
<include>persistence/Beta2PelaMigrator.js</include>
<include>persistence/XMLSerializerFactory.js</include>
<include>PersistenceManager.js</include>
<include>RestPersistenceManager.js</include>
<include>LocalStorageManager.js</include>
<include>EditorProperties.js</include>
<include>IconGroup.js</include>
<include>Icon.js</include>
<include>LinkIcon.js</include>
<include>NoteIcon.js</include>
<include>ActionIcon.js</include>
<include>ImageIcon.js</include>
<include>model/FeatureModel.js</include>
<include>model/IconModel.js</include>
<include>model/LinkModel.js</include>
<include>model/NoteModel.js</include>
<include>Command.js</include>
<include>DesignerActionRunner.js</include>
<include>DesignerUndoManager.js</include>
<include>ControlPoint.js</include>
<include>EditorOptions.js</include>
<include>RelationshipPivot.js</include>
<include>TopicFeature.js</include>
<include>commands/GenericFunctionCommand.js</include>
<include>commands/DeleteCommand.js</include>
<include>commands/DragTopicCommand.js</include>
<include>commands/AddTopicCommand.js</include>
<include>commands/ChangeFeatureToTopicCommand.js</include>
<include>commands/RemoveFeatureFromTopicCommand.js</include>
<include>commands/AddFeatureToTopicCommand.js</include>
<include>commands/AddRelationshipCommand.js</include>
<include>commands/MoveControlPointCommand.js</include>
<include>widget/ModalDialogNotifier.js</include>
<include>widget/ToolbarNotifier.js</include>
<include>widget/ToolbarItem.js</include>
<include>widget/ToolbarPaneItem.js</include>
<include>widget/NoteEditor.js</include>
<include>widget/LinkEditor.js</include>
<include>widget/FloatingTip.js</include>
<include>widget/LinkIconTooltip.js</include>
<include>widget/KeyboardShortcutTooltip.js</include>
<include>widget/ColorPalettePanel.js</include>
<include>widget/ListToolbarPanel.js</include>
<include>widget/FontFamilyPanel.js</include>
<include>widget/FontSizePanel.js</include>
<include>widget/TopicShapePanel.js</include>
<include>widget/IconPanel.js</include>
<include>widget/IMenu.js</include>
<include>widget/Menu.js</include>
<include>TopicFeature.js</include>
<include>layout/EventBusDispatcher.js</include>
<include>layout/ChangeEvent.js</include>
<include>layout/LayoutManager.js</include>
<include>layout/Node.js</include>
<include>layout/RootedTreeSet.js</include>
<include>layout/ChildrenSorterStrategy.js</include>
<include>layout/AbstractBasicSorter.js</include>
<include>layout/BalancedSorter.js</include>
<include>layout/SymmetricSorter.js</include>
<include>layout/GridSorter.js</include>
<include>layout/OriginalLayout.js</include>
<include>layout/EventBus.js</include>
<include>MessageBundle_en.js</include>
<include>MessageBundle_es.js</include>
<include>MessageBundle_de.js</include>
<include>MessageBundle_fr.js</include>
<include>MessageBundle_pt_BR.js</include>
<include>MessageBundle_zh_CN.js</include>
<include>MessageBundle_zh_TW.js</include>
<include>MessageBundle_ca.js</include>
<include>footer.js</include>
</sourceIncludes>
<specExcludes>
<exclude>static/test/*.js</exclude>
<exclude>simpleTest.js</exclude>
</specExcludes>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@@ -18,7 +18,7 @@
//noinspection JSUnusedLocalSymbols
mindplot.ActionDispatcher = new Class({
Implements:[Events],
Implements:[mindplot.Events],
initialize: function(commandContext) {
$assert(commandContext, "commandContext can not be null");
},

View File

@@ -36,7 +36,7 @@ mindplot.ActionIcon = new Class({
},
addToGroup:function(group) {
group.appendChild(this.getImage());
group.append(this.getImage());
},
setVisibility:function(visible) {

View File

@@ -61,6 +61,6 @@ mindplot.CentralTopic = new Class({
var pos = this.getPosition();
var isAtRight = mindplot.util.Shape.isAtRight(targetPosition, pos);
var size = this.getSize();
return mindplot.util.Shape.calculateRectConnectionPoint(pos, size, !isAtRight);
return mindplot.util.Shape.calculateRectConnectionPoint(pos, size, !isAtRight);
}
});

View File

@@ -145,7 +145,7 @@ mindplot.ConnectionLine = new Class({
},
addToWorkspace:function (workspace) {
workspace.appendChild(this._line2d);
workspace.append(this._line2d);
this._line2d.moveToBack();
},

View File

@@ -29,30 +29,26 @@ mindplot.ControlPoint = new Class({
new web2d.Line({strokeColor:"#6589de", strokeWidth:1, opacity:0.3})];
this._isBinded = false;
var me = this;
this._controlPointsController[0].addEvent('mousedown', function(event) {
(this._mouseDown.bind(this))(event, mindplot.ControlPoint.FROM);
}.bind(this));
(me._mouseDown)(event, mindplot.ControlPoint.FROM, me);
});
this._controlPointsController[0].addEvent('click', function(event) {
(this._mouseClick.bind(this))(event);
}.bind(this));
(me._mouseClick)(event);
});
this._controlPointsController[0].addEvent('dblclick', function(event) {
(this._mouseClick.bind(this))(event);
}.bind(this));
(me._mouseClick)(event);
});
this._controlPointsController[1].addEvent('mousedown', function(event) {
(this._mouseDown.bind(this))(event, mindplot.ControlPoint.TO);
}.bind(this));
(me._mouseDown)(event, mindplot.ControlPoint.TO, me);
});
this._controlPointsController[1].addEvent('click', function(event) {
(this._mouseClick.bind(this))(event);
}.bind(this));
(me._mouseClick)(event);
});
this._controlPointsController[1].addEvent('dblclick', function(event) {
(this._mouseClick.bind(this))(event);
}.bind(this));
},
setSide : function(side) {
this._side = side;
(me._mouseClick)(event);
});
},
setLine : function(line) {
@@ -91,22 +87,21 @@ mindplot.ControlPoint = new Class({
},
_mouseDown : function(event, point) {
_mouseDown : function(event, point, me) {
if (!this._isBinded) {
this._isBinded = true;
this._mouseMoveFunction = function(event) {
(this._mouseMoveEvent.bind(this))(event, point);
}.bind(this);
(me._mouseMoveEvent)(event, point, me);
};
this._workspace.getScreenManager().addEvent('mousemove', this._mouseMoveFunction);
this._mouseUpFunction = function(event) {
(this._mouseUp.bind(this))(event, point);
}.bind(this);
(me._mouseUp)(event, point, me);
};
this._workspace.getScreenManager().addEvent('mouseup', this._mouseUpFunction);
}
event.preventDefault();
event.stop();
event.stopPropagation();
return false;
},
@@ -143,7 +138,7 @@ mindplot.ControlPoint = new Class({
_mouseClick : function(event) {
event.preventDefault();
event.stop();
event.stopPropagation();
return false;
},
@@ -162,10 +157,10 @@ mindplot.ControlPoint = new Class({
addToWorkspace : function(workspace) {
this._workspace = workspace;
workspace.appendChild(this._controlPointsController[0]);
workspace.appendChild(this._controlPointsController[1]);
workspace.appendChild(this._controlLines[0]);
workspace.appendChild(this._controlLines[1]);
workspace.append(this._controlPointsController[0]);
workspace.append(this._controlPointsController[1]);
workspace.append(this._controlLines[0]);
workspace.append(this._controlLines[1]);
},
removeFromWorkspace : function(workspace) {

View File

@@ -17,10 +17,11 @@
*/
mindplot.Designer = new Class({
Extends:Events,
Extends: mindplot.Events,
initialize:function (options, divElement) {
$assert(options, "options must be defined");
$assert(options.zoom, "zoom must be defined");
$assert(options.size, "size must be defined");
$assert(divElement, "divElement must be defined");
// Set up i18n location ...
@@ -29,15 +30,16 @@ mindplot.Designer = new Class({
this._options = options;
// Set full div elem render area ...
divElement.setStyles(options.size);
divElement.css(options.size);
// Dispatcher manager ...
var commandContext = new mindplot.CommandContext(this);
this._actionDispatcher = new mindplot.StandaloneActionDispatcher(commandContext);
var me = this;
this._actionDispatcher.addEvent("modelUpdate", function (event) {
this.fireEvent("modelUpdate", event);
}.bind(this));
me.fireEvent("modelUpdate", event);
});
mindplot.ActionDispatcher.setInstance(this._actionDispatcher);
this._model = new mindplot.DesignerModel(options);
@@ -80,13 +82,12 @@ mindplot.Designer = new Class({
_registerWheelEvents:function () {
var workspace = this._workspace;
var screenManager = workspace.getScreenManager();
var me = this;
// Zoom In and Zoom Out must active event
$(document).addEvent('mousewheel', function (event) {
$(document).on('mousewheel', function (event) {
// Change mousewheel handling so we let the default
//event happen if we are outside the container.
var coords = screenManager.getContainer().getCoordinates();
// event happen if we are outside the container. -> FIXME: it still happening?
/*var coords = screenManager.getContainer().getCoordinates();
var isOutsideContainer = event.client.y < coords.top ||
event.client.y > coords.bottom ||
event.client.x < coords.left ||
@@ -100,8 +101,15 @@ mindplot.Designer = new Class({
this.zoomOut(1.05);
}
event.preventDefault();
}*/
if (event.deltaY > 0) {
me.zoomIn(1.05);
}
}.bind(this));
else {
me.zoomOut(1.05);
}
event.preventDefault();
});
},
/**
@@ -124,37 +132,34 @@ mindplot.Designer = new Class({
_registerMouseEvents:function () {
var workspace = this._workspace;
var screenManager = workspace.getScreenManager();
var me = this;
// Initialize workspace event listeners.
screenManager.addEvent('update', function () {
// Topic must be set to his original state. All editors must be closed.
var topics = this.getModel().getTopics();
topics.each(function (object) {
var topics = me.getModel().getTopics();
_.each(topics, function(object){
object.closeEditors();
});
// Clean some selected nodes on event ..
if (this._cleanScreen)
this._cleanScreen();
}.bind(this));
if (me._cleanScreen)
me._cleanScreen();
});
// Deselect on click ...
screenManager.addEvent('click', function (event) {
this.onObjectFocusEvent(null, event);
}.bind(this));
me.onObjectFocusEvent(null, event);
});
// Create nodes on double click...
screenManager.addEvent('dblclick', function (event) {
if (workspace.isWorkspaceEventsEnabled()) {
var mousePos = screenManager.getWorkspaceMousePosition(event);
var centralTopic = this.getModel().getCentralTopic();
var model = this._createChildModel(centralTopic, mousePos);
var centralTopic = me.getModel().getCentralTopic();
var model = me._createChildModel(centralTopic, mousePos);
this._actionDispatcher.addTopics([model], [centralTopic.getId()]);
}
}.bind(this));
});
// Register mouse drag and drop event ...
function noopHandler(evt) {
@@ -248,13 +253,13 @@ mindplot.Designer = new Class({
// Create node graph ...
var topic = mindplot.NodeGraph.create(model, {readOnly:readOnly});
this.getModel().addTopic(topic);
var me = this;
// Add Topic events ...
if (!readOnly) {
// If a node had gained focus, clean the rest of the nodes ...
topic.addEvent('mousedown', function (event) {
this.onObjectFocusEvent(topic, event);
}.bind(this));
me.onObjectFocusEvent(topic, event);
});
// Register node listeners ...
if (topic.getType() != mindplot.model.INodeModel.CENTRAL_TOPIC_TYPE) {
@@ -286,38 +291,38 @@ mindplot.Designer = new Class({
}
topic.addEvent('ontblur', function () {
var topics = this.getModel().filterSelectedTopics();
var rels = this.getModel().filterSelectedRelationships();
var topics = me.getModel().filterSelectedTopics();
var rels = me.getModel().filterSelectedRelationships();
if (topics.length == 0 || rels.length == 0) {
this.fireEvent('onblur');
me.fireEvent('onblur');
}
}.bind(this));
});
topic.addEvent('ontfocus', function () {
var topics = this.getModel().filterSelectedTopics();
var rels = this.getModel().filterSelectedRelationships();
var topics = me.getModel().filterSelectedTopics();
var rels = me.getModel().filterSelectedRelationships();
if (topics.length == 1 || rels.length == 1) {
this.fireEvent('onfocus');
me.fireEvent('onfocus');
}
}.bind(this));
});
return topic;
return topic;
},
onObjectFocusEvent:function (currentObject, event) {
// Close node editors ..
var topics = this.getModel().getTopics();
topics.each(function (topic) {
_.each(topics, function(topic) {
topic.closeEditors();
});
var model = this.getModel();
var objects = model.getEntities();
objects.each(function (object) {
_.each(objects, function(object) {
// Disable all nodes on focus but not the current if Ctrl key isn't being pressed
if (!$defined(event) || (!event.control && !event.meta)) {
if (!$defined(event) || (!event.ctrlKey && !event.metaKey)) {
if (object.isOnFocus() && object != currentObject) {
object.setOnFocus(false);
}
@@ -329,14 +334,14 @@ mindplot.Designer = new Class({
selectAll:function () {
var model = this.getModel();
var objects = model.getEntities();
objects.each(function (object) {
_.each(objects, function(object) {
object.setOnFocus(true);
});
},
deselectAll:function () {
var objects = this.getModel().getEntities();
objects.each(function (object) {
_.each(objects, function (object) {
object.setOnFocus(false);
});
},
@@ -506,6 +511,11 @@ mindplot.Designer = new Class({
if(borderColor){
targetModel.setBorderColor(borderColor)
}
var backgroundColor = sourceModel.getBackgroundColor();
if(backgroundColor){
targetModel.setBackgroundColor(backgroundColor)
}
},
_createChildModel:function (topic, mousePos) {
@@ -624,12 +634,13 @@ mindplot.Designer = new Class({
// Init layout manager ...
var size = {width:25, height:25};
var layoutManager = new mindplot.layout.LayoutManager(mindmapModel.getCentralTopic().getId(), size);
var me = this;
layoutManager.addEvent('change', function (event) {
var id = event.getId();
var topic = this.getModel().findTopicById(id);
var topic = me.getModel().findTopicById(id);
topic.setPosition(event.getPosition());
topic.setOrder(event.getOrder());
}.bind(this));
});
this._eventBussDispatcher.setLayoutManager(layoutManager);
@@ -686,7 +697,7 @@ mindplot.Designer = new Class({
var nodeGraph = this._buildNodeGraph(nodeModel, this.isReadOnly());
nodeGraph.setVisibility(false);
this._workspace.appendChild(nodeGraph);
this._workspace.append(nodeGraph);
for (var i = 0; i < children.length; i++) {
var child = children[i];
if ($defined(child))
@@ -709,7 +720,7 @@ mindplot.Designer = new Class({
result.setVisibility(sourceTopic.isVisible() && targetTopic.isVisible());
this._workspace.appendChild(result);
this._workspace.append(result);
return result;
},
@@ -747,24 +758,25 @@ mindplot.Designer = new Class({
// Build relationship line ....
var result = new mindplot.Relationship(sourceTopic, targetTopic, model);
var me = this;
result.addEvent('ontblur', function () {
var topics = this.getModel().filterSelectedTopics();
var rels = this.getModel().filterSelectedRelationships();
var topics = me.getModel().filterSelectedTopics();
var rels = me.getModel().filterSelectedRelationships();
if (topics.length == 0 || rels.length == 0) {
this.fireEvent('onblur');
me.fireEvent('onblur');
}
}.bind(this));
});
result.addEvent('ontfocus', function () {
var topics = this.getModel().filterSelectedTopics();
var rels = this.getModel().filterSelectedRelationships();
var topics = me.getModel().filterSelectedTopics();
var rels = me.getModel().filterSelectedRelationships();
if (topics.length == 1 || rels.length == 1) {
this.fireEvent('onfocus');
me.fireEvent('onfocus');
}
}.bind(this));
});
// Append it to the workspace ...
dmodel.addRelationship(result);

View File

@@ -17,11 +17,10 @@
*/
mindplot.DesignerKeyboard = new Class({
Extends:Keyboard,
Extends: mindplot.Keyboard,
Static:{
register:function (designer) {
this._instance = new mindplot.DesignerKeyboard(designer);
this._instance.activate();
},
getInstance:function () {
@@ -31,360 +30,250 @@ mindplot.DesignerKeyboard = new Class({
initialize:function (designer) {
$assert(designer, "designer can not be null");
this.parent({defaultEventType:'keydown'});
this._registerEvents(designer);
},
_registerEvents:function (designer) {
// Try with the keyboard ..
var model = designer.getModel();
var keyboardEvents = {
'backspace':function (event) {
this.addShortcut(
['backspace'], function (event) {
event.preventDefault();
event.stopPropagation();
designer.deleteSelectedEntities();
}.bind(this),
'space':function () {
}
);
this.addShortcut(
['space'], function() {
designer.shrinkSelectedBranch();
}.bind(this),
'f2':function () {
}
);
this.addShortcut(
['f2'],function() {
var node = model.selectedTopic();
if (node) {
node.showTextEditor();
}
}.bind(this),
'delete':function (event) {
}
);
this.addShortcut(
['del'], function(event) {
designer.deleteSelectedEntities();
event.preventDefault();
event.stopPropagation();
}.bind(this),
'enter':function () {
}
);
this.addShortcut(
['enter'], function() {
designer.createSiblingForSelectedNode();
}.bind(this),
'insert':function (event) {
}
);
this.addShortcut(
['insert'], function(event) {
designer.createChildForSelectedNode();
event.preventDefault();
event.stopPropagation();
}.bind(this),
'tab':function (event) {
}
);
this.addShortcut(
['tab'], function(event) {
designer.createChildForSelectedNode();
event.preventDefault();
event.stopPropagation();
}.bind(this),
'-':function () { // "-" is a insert on several Browsers. Don't ask why ...
}
);
this.addShortcut(
'-', function() { // "-" is a insert on several Browsers. Don't ask why ...
designer.createChildForSelectedNode();
}.bind(this),
'meta+enter':function (event) {
}
);
this.addShortcut(
['meta+enter'], function(event) {
event.preventDefault();
event.stopPropagation();
designer.createChildForSelectedNode();
}.bind(this),
'ctrl+z':function (event) {
}
);
this.addShortcut(
['ctrl+z', 'meta+z'], function(event) {
event.preventDefault(event);
event.stopPropagation();
designer.undo();
}.bind(this),
'meta+z':function (event) {
event.preventDefault();
event.stopPropagation();
designer.undo();
}.bind(this),
'ctrl+c':function (event) {
}
);
this.addShortcut(
['ctrl+c', 'meta+c'], function (event) {
event.preventDefault(event);
event.stopPropagation();
designer.copyToClipboard();
}.bind(this),
'meta+c':function (event) {
event.preventDefault();
event.stopPropagation();
designer.copyToClipboard();
}.bind(this),
'ctrl+v':function (event) {
}
);
this.addShortcut(
['ctrl+v', 'meta+v'], function (event) {
event.preventDefault(event);
event.stopPropagation();
designer.pasteClipboard();
}.bind(this),
'meta+v':function (event) {
}
);
this.addShortcut(
['ctrl+shift+z', 'meta+shift+z', 'ctrl+y', 'meta+y'], function (event) {
event.preventDefault();
event.stopPropagation();
designer.pasteClipboard();
}.bind(this),
'ctrl+z+shift':function (event) {
event.preventDefault();
event.stopPropagation();
designer.redo();
}.bind(this),
'meta+z+shift':function (event) {
}
);
this.addShortcut(
['ctrl+a', 'meta+a'], function (event) {
event.preventDefault();
event.stopPropagation();
designer.redo();
}.bind(this),
'ctrl+y':function (event) {
event.preventDefault();
event.stopPropagation();
designer.redo();
}.bind(this),
'meta+y':function (event) {
event.preventDefault();
event.stopPropagation();
designer.redo();
}.bind(this),
'ctrl+a':function (event) {
event.preventDefault();
event.stopPropagation();
designer.selectAll();
},
'ctrl+b':function (event) {
}
);
this.addShortcut(
['ctrl+b', 'meta+b'], function (event) {
event.preventDefault();
event.stopPropagation();
designer.changeFontWeight();
},
'meta+b':function (event) {
}
);
this.addShortcut(
['ctrl+s', 'meta+s'], function (event) {
event.preventDefault();
event.stopPropagation();
designer.changeFontWeight();
},
'ctrl+s':function (event) {
event.preventDefault();
event.stopPropagation();
$('save').fireEvent('click');
},
'meta+s':function (event) {
event.preventDefault();
event.stopPropagation();
$('save').fireEvent('click');
},
'ctrl+i':function (event) {
$(document).find('#save').trigger('click');
}
);
this.addShortcut(
['ctrl+i', 'meta+i'], function (event) {
event.preventDefault();
event.stopPropagation();
designer.changeFontStyle();
},
'meta+i':function (event) {
event.preventDefault();
event.stopPropagation();
designer.changeFontStyle();
},
'meta+shift+a':function (event) {
}
);
this.addShortcut(
['ctrl+shift+a', 'meta+shift+a'], function (event) {
event.preventDefault();
event.stopPropagation();
designer.deselectAll();
},
'ctrl+shift+a':function (event) {
event.preventDefault();
event.stopPropagation();
designer.deselectAll();
},
'meta+a':function (event) {
event.preventDefault();
event.stopPropagation();
designer.selectAll();
},
'meta+=':function (event) {
}
);
this.addShortcut(
['meta+=', 'ctrl+='], function (event) {
event.preventDefault();
event.stopPropagation();
designer.zoomIn();
},
'meta+-':function (event) {
}
);
this.addShortcut(
['meta+-', 'ctrl+-'], function (event) {
event.preventDefault();
event.stopPropagation();
designer.zoomOut();
},
'ctrl+=':function (event) {
event.preventDefault();
event.stopPropagation();
designer.zoomIn();
},
'ctrl+-':function (event) {
event.preventDefault();
event.stopPropagation();
designer.zoomOut();
},
'right':function (event) {
}
);
var me = this;
this.addShortcut(
'right', function (event) {
var node = model.selectedTopic();
if (node) {
if (node.isCentralTopic()) {
this._goToSideChild(designer, node, 'RIGHT');
me._goToSideChild(designer, node, 'RIGHT');
}
else {
if (node.getPosition().x < 0) {
this._goToParent(designer, node);
me._goToParent(designer, node);
}
else if (!node.areChildrenShrunken()) {
this._goToChild(designer, node);
me._goToChild(designer, node);
}
}
} else {
var centralTopic = model.getCentralTopic();
this._goToNode(designer, centralTopic);
me._goToNode(designer, centralTopic);
}
event.preventDefault();
event.stopPropagation();
}.bind(this),
'left':function (event) {
}
);
this.addShortcut(
'left', function (event) {
var node = model.selectedTopic();
if (node) {
if (node.isCentralTopic()) {
this._goToSideChild(designer, node, 'LEFT');
me._goToSideChild(designer, node, 'LEFT');
}
else {
if (node.getPosition().x > 0) {
this._goToParent(designer, node);
me._goToParent(designer, node);
}
else if (!node.areChildrenShrunken()) {
this._goToChild(designer, node);
me._goToChild(designer, node);
}
}
} else {
var centralTopic = model.getCentralTopic();
this._goToNode(designer, centralTopic);
me._goToNode(designer, centralTopic);
}
event.preventDefault();
event.stopPropagation();
}.bind(this),
'up':function (event) {
var node = model.selectedTopic();
if (node) {
if (!node.isCentralTopic()) {
this._goToBrother(designer, node, 'UP');
}
} else {
var centralTopic = model.getCentralTopic();
this._goToNode(designer, centralTopic);
}
event.preventDefault();
event.stopPropagation();
}.bind(this),
'down':function (event) {
var node = model.selectedTopic();
if (node) {
if (!node.isCentralTopic()) {
this._goToBrother(designer, node, 'DOWN');
}
} else {
var centralTopic = model.getCentralTopic();
this._goToNode(designer, centralTopic);
}
event.preventDefault();
event.stopPropagation();
}.bind(this)
};
this.addEvents(keyboardEvents);
var regex = /^(?:shift|control|ctrl|alt|meta)$/;
var modifiers = ['shift', 'control', 'alt', 'meta'];
var excludes = ['esc', 'capslock', 'tab', 'f1', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9', 'f10', 'f11', 'f12', 'backspace', 'down', 'up', 'left', 'right', 'control'];
if (!Browser.Platform.mac) {
// This is to avoid enter on edition mode in the node when alt+tab is pressed.
excludes.push("alt");
}
$(document).addEvent('keydown', function (event) {
// Convert key to mootools keyboard event format...
var keys = [];
modifiers.each(function (mod) {
if (event[mod]) keys.push(mod);
});
if (!regex.test(event.key))
keys.push(event.key);
var key = keys.join('+');
// Is the pressed key one of the already registered in the keyboard ?
var isRegistered = false;
for (var eKey in keyboardEvents) {
if (eKey == key) {
isRegistered = true;
break;
}
}
);
this.addShortcut(
'up', function (event) {
var node = model.selectedTopic();
if (node) {
if (!node.isCentralTopic()) {
me._goToBrother(designer, node, 'UP');
}
} else {
var centralTopic = model.getCentralTopic();
me._goToNode(designer, centralTopic);
}
event.preventDefault();
event.stopPropagation();
}
);
this.addShortcut(
'down', function (event) {
var node = model.selectedTopic();
if (node) {
if (!node.isCentralTopic()) {
me._goToBrother(designer, node, 'DOWN');
}
} else {
var centralTopic = model.getCentralTopic();
me._goToNode(designer, centralTopic);
}
event.preventDefault();
event.stopPropagation();
}
);
// If it's not registered, let's
if (!isRegistered && !excludes.contains(key) && !excludes.contains(event.key) && !event.meta && !event.control) {
$(document).on('keypress', function (event) {
var keyCode = event.keyCode;
var specialKey = jQuery.hotkeys.specialKeys[keyCode];
if (["enter", "capslock"].indexOf(specialKey) == -1 && !jQuery.hotkeys.shiftNums[keyCode] && keyCode != 91 /*win key*/) {
var nodes = designer.getModel().filterSelectedTopics();
if (nodes.length > 0) {
// If a modifier is press, the key selected must be ignored.
var pressKey = event.key;
if (modifiers.contains(event.key)) {
pressKey = "";
var pressKey = String.fromCharCode(keyCode);
if (event.ctrlKey || event.altKey || event.metaKey) {
return;
}
nodes[0].showTextEditor(pressKey);
event.stopPropagation();
}
}
});
},

View File

@@ -17,7 +17,7 @@
*/
mindplot.DesignerModel = new Class({
Implements:[Events],
Implements:[mindplot.Events],
initialize:function (options) {
this._zoom = options.zoom;
this._topics = [];

View File

@@ -84,15 +84,16 @@ mindplot.DragConnector = new Class({
// - Horizontal proximity
// - It's already connected.
var currentConnection = dragTopic.getConnectedToTopic();
var me = this;
topics = topics.sort(function (a, b) {
var aPos = a.getPosition();
var bPos = b.getPosition();
var av = this._isVerticallyAligned(a.getSize(), aPos, sPos);
var bv = this._isVerticallyAligned(b.getSize(), bPos, sPos);
return this._proximityWeight(av, a, sPos, currentConnection) - this._proximityWeight(bv, b, sPos, currentConnection);
var av = me._isVerticallyAligned(a.getSize(), aPos, sPos);
var bv = me._isVerticallyAligned(b.getSize(), bPos, sPos);
return me._proximityWeight(av, a, sPos, currentConnection) - me._proximityWeight(bv, b, sPos, currentConnection);
}.bind(this));
});
return topics;
},

View File

@@ -31,14 +31,14 @@ mindplot.DragManager = new Class({
var workspace = this._workspace;
var screen = workspace.getScreenManager();
var dragManager = this;
var me = this;
var mouseDownListener = function(event) {
if (workspace.isWorkspaceEventsEnabled()) {
// Disable double drag...
workspace.enableWorkspaceEvents(false);
// Set initial position.
var layoutManager = this._eventDispatcher.getLayoutManager();
var layoutManager = me._eventDispatcher.getLayoutManager();
var dragNode = node.createDragNode(layoutManager);
// Register mouse move listener ...
@@ -52,7 +52,7 @@ mindplot.DragManager = new Class({
// Change cursor.
window.document.body.style.cursor = 'move';
}
}.bind(this);
};
node.addEvent('mousedown', mouseDownListener);
},
@@ -70,18 +70,18 @@ mindplot.DragManager = new Class({
_buildMouseMoveListener : function(workspace, dragNode, dragManager) {
var screen = workspace.getScreenManager();
var me = this;
var result = function(event) {
if (!this._isDragInProcess) {
if (!me._isDragInProcess) {
// Execute Listeners ..
var startDragListener = dragManager._listeners['startdragging'];
startDragListener(event, dragNode);
// Add shadow node to the workspace.
workspace.appendChild(dragNode);
workspace.append(dragNode);
this._isDragInProcess = true;
me._isDragInProcess = true;
}
var pos = screen.getWorkspaceMousePosition(event);
@@ -95,13 +95,14 @@ mindplot.DragManager = new Class({
event.preventDefault();
}.bind(this);
};
dragManager._mouseMoveListener = result;
return result;
},
_buildMouseUpListener : function(workspace, node, dragNode, dragManager) {
var screen = workspace.getScreenManager();
var me = this;
var result = function(event) {
$assert(dragNode.isDragTopic, 'dragNode must be an DragTopic');
@@ -117,7 +118,7 @@ mindplot.DragManager = new Class({
// Change the cursor to the default.
window.document.body.style.cursor = 'default';
if (this._isDragInProcess) {
if (me._isDragInProcess) {
// Execute Listeners only if the node has been moved.
var endDragListener = dragManager._listeners['enddragging'];
@@ -126,11 +127,11 @@ mindplot.DragManager = new Class({
// Remove drag node from the workspace.
dragNode.removeFromWorkspace(workspace);
this._isDragInProcess = false;
me._isDragInProcess = false;
}
}.bind(this);
};
dragManager._mouseUpListener = result;
return result;
},

View File

@@ -146,27 +146,27 @@ mindplot.DragPivot = new Class({
addToWorkspace : function(workspace) {
var pivotRect = this._getPivotRect();
workspace.appendChild(pivotRect);
workspace.append(pivotRect);
var connectToRect = this._connectRect;
workspace.appendChild(connectToRect);
workspace.append(connectToRect);
// Add a hidden straight line ...
var straighLine = this._straightLine;
straighLine.setVisibility(false);
workspace.appendChild(straighLine);
workspace.append(straighLine);
straighLine.moveToBack();
// Add a hidden curved line ...
var curvedLine = this._curvedLine;
curvedLine.setVisibility(false);
workspace.appendChild(curvedLine);
workspace.append(curvedLine);
curvedLine.moveToBack();
// Add a connect rect ...
var connectRect = this._connectRect;
connectRect.setVisibility(false);
workspace.appendChild(connectRect);
workspace.append(connectRect);
connectRect.moveToBack();
},

View File

@@ -67,7 +67,7 @@ mindplot.DragTopic = new Class({
},
updateFreeLayout:function (event) {
var isFreeEnabled = (event.meta && Browser.Platform.mac) || (event.control && !Browser.Platform.mac);
var isFreeEnabled = (event.metaKey && Browser.Platform.mac) || (event.ctrlKey && !Browser.Platform.mac);
if (this.isFreeLayoutOn() != isFreeEnabled) {
var dragPivot = this._getDragPivot();
dragPivot.setVisibility(!isFreeEnabled);
@@ -133,7 +133,7 @@ mindplot.DragTopic = new Class({
addToWorkspace:function (workspace) {
if (!this._isInWorkspace) {
workspace.appendChild(this._elem2d);
workspace.append(this._elem2d);
var dragPivot = this._getDragPivot();
dragPivot.addToWorkspace(workspace);
this._isInWorkspace = true;
@@ -201,7 +201,7 @@ mindplot.DragTopic.init = function (workspace) {
$assert(workspace, "workspace can not be null");
var pivot = mindplot.DragTopic.__getDragPivot();
workspace.appendChild(pivot);
workspace.append(pivot);
};
mindplot.DragTopic.__getDragPivot = function () {

View File

@@ -0,0 +1,41 @@
mindplot.Events = new Class({
$events: {},
_removeOn: function(string){
return string.replace(/^on([A-Z])/, function(full, first){
return first.toLowerCase();
});
},
addEvent: function(type, fn, internal){
type = this._removeOn(type);
this.$events[type] = (this.$events[type] || []).include(fn);
if (internal) fn.internal = true;
return this;
},
fireEvent: function(type, args, delay){
type = this._removeOn(type);
var events = this.$events[type];
if (!events) return this;
args = Array.from(args);
_.each(events, function(fn){
if (delay) fn.delay(delay, this, args);
else fn.apply(this, args);
}, this);
return this;
},
removeEvent: function(type, fn){
type = this._removeOn(type);
var events = this.$events[type];
if (events && !fn.internal){
var index = events.indexOf(fn);
if (index != -1) events.splice(index, 1);
}
return this;
}
});

View File

@@ -62,7 +62,7 @@ mindplot.IconGroup = new Class({
this._positionIcon(icon, this._icons.length - 1);
var imageShape = icon.getImage();
this._group.appendChild(imageShape);
this._group.append(imageShape);
// Register event for the group ..
if (remove) {
@@ -72,7 +72,7 @@ mindplot.IconGroup = new Class({
_findIconFromModel:function (iconModel) {
var result = null;
this._icons.each(function (icon) {
_.each(this._icons, function (icon) {
var elModel = icon.getModel();
if (elModel.getId() == iconModel.getId()) {
result = icon;
@@ -101,11 +101,11 @@ mindplot.IconGroup = new Class({
this._icons.erase(icon);
this._resize(this._icons.length);
var me = this;
// Add all again ...
this._icons.each(function (elem, i) {
this._positionIcon(elem, i);
}.bind(this));
_.each(this._icons, function (elem, i) {
me._positionIcon(elem, i);
});
},
moveToFront:function () {
@@ -166,16 +166,18 @@ mindplot.IconGroup.RemoveTip = new Class({
icon.remove();
});
var me = this;
widget.addEvent('mouseover', function () {
this.show(topicId, icon);
}.bind(this));
me.show(topicId, icon);
});
widget.addEvent('mouseout', function () {
this.hide();
}.bind(this));
me.hide();
});
widget.setPosition(pos.x + 80, pos.y - 50);
this._fadeElem.appendChild(widget);
this._fadeElem.append(widget);
// Setup current element ...
this._activeIcon = icon;
@@ -197,17 +199,15 @@ mindplot.IconGroup.RemoveTip = new Class({
clearTimeout(this._closeTimeoutId)
}
var me = this;
if (this._activeIcon) {
var widget = this._widget;
var close = function () {
this._activeIcon = null;
this._fadeElem.removeChild(widget);
this._widget = null;
this._closeTimeoutId = null;
}.bind(this);
me._activeIcon = null;
me._fadeElem.removeChild(widget);
me._widget = null;
me._closeTimeoutId = null;
};
if (!$defined(delay) || delay == 0) {
close();
@@ -236,7 +236,7 @@ mindplot.IconGroup.RemoveTip = new Class({
stroke:'0',
fillColor:'black'
});
result.appendChild(outerRect);
result.append(outerRect);
outerRect.setCursor('pointer');
var innerRect = new web2d.Rect(0, {
@@ -247,17 +247,17 @@ mindplot.IconGroup.RemoveTip = new Class({
stroke:'1 solid white',
fillColor:'gray'
});
result.appendChild(innerRect);
result.append(innerRect);
var line = new web2d.Line({stroke:'1 solid white'});
line.setFrom(1, 1);
line.setTo(9, 9);
result.appendChild(line);
result.append(line);
var line2 = new web2d.Line({stroke:'1 solid white'});
line2.setFrom(1, 9);
line2.setTo(9, 1);
result.appendChild(line2);
result.append(line2);
// Some events ...
result.addEvent('mouseover', function () {
@@ -273,14 +273,16 @@ mindplot.IconGroup.RemoveTip = new Class({
decorate:function (topicId, icon) {
var me = this;
if (!icon.__remove) {
icon.addEvent('mouseover', function () {
this.show(topicId, icon);
}.bind(this));
me.show(topicId, icon);
});
icon.addEvent('mouseout', function () {
this.hide();
}.bind(this));
me.hide();
});
icon.__remove = true;
}
}

View File

@@ -34,16 +34,17 @@ mindplot.ImageIcon = new Class({
//Icon
var image = this.getImage();
var me = this;
image.addEvent('click', function () {
var iconType = iconModel.getIconType();
var newIconType = this._getNextFamilyIconId(iconType);
var newIconType = me._getNextFamilyIconId(iconType);
iconModel.setIconType(newIconType);
var imgUrl = this._getImageUrl(newIconType);
this._image.setHref(imgUrl);
var imgUrl = me._getImageUrl(newIconType);
me._image.setHref(imgUrl);
}.bind(this));
});
this._image.setCursor('pointer');
}
},

View File

@@ -0,0 +1,33 @@
/*
* Copyright [2012] [wisemapping]
*
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
* It is basically the Apache License, Version 2.0 (the "License") plus the
* "powered by wisemapping" text requirement on every single page;
* you may not use this file except in compliance with the License.
* You may obtain a copy of the license at
*
* http://www.wisemapping.org/license
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
mindplot.Keyboard = new Class({
initialize:function () {
},
addShortcut: function(shortcuts, callback) {
if (!$.isArray(shortcuts)) {
shortcuts = [shortcuts];
}
_.each(shortcuts, function(shortcut) {
$(document).bind('keydown', shortcut, callback);
});
}
});

View File

@@ -33,16 +33,30 @@ mindplot.LinkIcon = new Class({
_registerEvents:function () {
this._image.setCursor('pointer');
this._tip = new mindplot.widget.LinkIconTooltip(this);
var me = this;
if (!this._readOnly) {
// Add on click event to open the editor ...
this.addEvent('click', function (event) {
this._topic.showLinkEditor();
me._tip.hide();
me._topic.showLinkEditor();
event.stopPropagation();
}.bind(this));
});
//FIXME: we shouldn't have timeout of that..
this.addEvent("mouseleave", function(event) {
window.setTimeout(function() {
if (!$("#linkPopover:hover").length) {
me._tip.hide();
}
event.stopPropagation();
}, 100)
});
}
this._tip = new mindplot.widget.LinkIconTooltip(this);
$(this.getImage()._peer._native).mouseenter(function() {
me._tip.show();
})
},
getModel:function () {

View File

@@ -35,25 +35,23 @@ mindplot.LocalStorageManager = new Class({
loadMapDom:function (mapId) {
var xml = localStorage.getItem(mapId + "-xml");
if (xml == null || this.forceLoad) {
var xmlRequest = new Request({
url:this.documentUrl.replace("{id}", mapId),
$.ajax({
url: this.documentUrl.replace("{id}", mapId),
headers:{"Content-Type":"text/plain","Accept":"application/xml"},
method:'get',
async:false,
onSuccess:function (responseText) {
xml = responseText;
type:'get',
dataType: "text",
async: false,
success:function (response) {
xml = response;
}
});
xmlRequest.send();
// If I could not load it from a file, hard code one.
if (xml == null) {
throw new Error("Map could not be loaded");
}
}
var parser = new DOMParser();
return parser.parseFromString(xml, "text/xml");
return jQuery.parseXML(xml);
},
unlockMap:function (mindmap) {

View File

@@ -42,7 +42,7 @@ mindplot.MainTopic = new Class({
// Create group ...
var groupAttributes = {width:100, height:100, coordSizeWidth:100, coordSizeHeight:100};
var group = new web2d.Group(groupAttributes);
group.appendChild(innerShape);
group.append(innerShape);
// Add Text ...
if (this.getShapeType() != mindplot.model.TopicShape.IMAGE) {
@@ -50,7 +50,7 @@ mindplot.MainTopic = new Class({
var text = this.getText();
textShape.setText(text);
textShape.setOpacity(0.5);
group.appendChild(textShape);
group.append(textShape);
}
return group;
},

View File

@@ -17,7 +17,7 @@
*/
mindplot.MultilineTextEditor = new Class({
Extends:Events,
Extends: mindplot.Events,
initialize:function () {
this._topic = null;
this._timeoutId = -1;
@@ -25,47 +25,42 @@ mindplot.MultilineTextEditor = new Class({
_buildEditor:function () {
var result = new Element('div');
result.setStyles({
position:"absolute",
var result = $('<div></div>')
.attr('id', 'textContainer')
.css({
display:"none",
zIndex:"8",
overflow:"hidden",
border:"0 none"
}
);
});
var textareaElem = new Element('textarea',
{ tabindex:'-1',
value:"",
wrap:'off'
}
);
textareaElem.setStyles({
border:"1px gray dashed",
background:"rgba(98, 135, 167, .3)",
outline:'0 none',
resize:'none',
overflow:"hidden"
});
textareaElem.inject(result);
var textareaElem = $('<textarea tabindex="-1" value="" wrap="off" ></textarea>')
.css({
border:"1px gray dashed",
background:"rgba(98, 135, 167, .3)",
outline:'0 none',
resize:'none',
overflow:"hidden"
});
result.append(textareaElem);
return result;
},
_registerEvents:function (containerElem) {
var textareaElem = this._getTextareaElem();
textareaElem.addEvent('keydown', function (event) {
switch (event.key) {
var me = this;
textareaElem.on('keydown', function (event) {
switch (jQuery.hotkeys.specialKeys[event.keyCode]) {
case 'esc':
this.close(false);
me.close(false);
break;
case 'enter':
if (event.meta || event.control) {
if (event.metaKey || event.ctrlKey) {
// Add return ...
var text = textareaElem.value;
var text = textareaElem.val();
var cursorPosition = text.length;
if (textareaElem.selectionStart) {
cursorPosition = textareaElem.selectionStart;
@@ -76,12 +71,12 @@ mindplot.MultilineTextEditor = new Class({
if (cursorPosition < text.length) {
tail = text.substring(cursorPosition, text.length);
}
textareaElem.value = head + "\n" + tail;
textareaElem.val(head + "\n" + tail);
// Position cursor ...
if (textareaElem.setSelectionRange) {
if (textareaElem[0].setSelectionRange) {
textareaElem.focus();
textareaElem.setSelectionRange(cursorPosition + 1, cursorPosition + 1);
textareaElem[0].setSelectionRange(cursorPosition + 1, cursorPosition + 1);
} else if (textareaElem.createTextRange) {
var range = textareaElem.createTextRange();
range.moveStart('character', cursorPosition + 1);
@@ -90,31 +85,42 @@ mindplot.MultilineTextEditor = new Class({
}
else {
this.close(true);
me.close(true);
}
break;
case 'tab':
event.preventDefault();
var start = $(this).get(0).selectionStart;
var end = $(this).get(0).selectionEnd;
// set textarea value to: text before caret + tab + text after caret
$(this).val($(this).val().substring(0, start) + "\t" + $(this).val().substring(end));
// put caret at right position again
$(this).get(0).selectionStart = $(this).get(0).selectionEnd = start + 1;
break;
}
event.stopPropagation();
}.bind(this));
});
textareaElem.addEvent('keypress', function (event) {
textareaElem.on('keypress', function (event) {
event.stopPropagation();
});
textareaElem.addEvent('keyup', function (event) {
var text = this._getTextareaElem().value;
this.fireEvent('input', [event, text]);
this._adjustEditorSize();
}.bind(this));
textareaElem.on('keyup', function (event) {
var text = me._getTextareaElem().val();
me.fireEvent('input', [event, text]);
me._adjustEditorSize();
});
// If the user clicks on the input, all event must be ignored ...
containerElem.addEvent('click', function (event) {
containerElem.on('click', function (event) {
event.stopPropagation();
});
containerElem.addEvent('dblclick', function (event) {
containerElem.on('dblclick', function (event) {
event.stopPropagation();
});
containerElem.addEvent('mousedown', function (event) {
containerElem.on('mousedown', function (event) {
event.stopPropagation();
});
},
@@ -124,25 +130,25 @@ mindplot.MultilineTextEditor = new Class({
if (this.isVisible()) {
var textElem = this._getTextareaElem();
var lines = textElem.value.split('\n');
var lines = textElem.val().split('\n');
var maxLineLength = 1;
lines.each(function (line) {
_.each(lines, function (line) {
if (maxLineLength < line.length)
maxLineLength = line.length;
});
textElem.setAttribute('cols', maxLineLength);
textElem.setAttribute('rows', lines.length);
textElem.attr('cols', maxLineLength);
textElem.attr('rows', lines.length);
this._containerElem.setStyles({
this._containerElem.css({
width:(maxLineLength + 3) + 'em',
height:textElem.getSize().height
height:textElem.height()
});
}
},
isVisible:function () {
return $defined(this._containerElem) && this._containerElem.getStyle('display') == 'block';
return $defined(this._containerElem) && this._containerElem.css('display') == 'block';
},
_updateModel:function () {
@@ -156,7 +162,7 @@ mindplot.MultilineTextEditor = new Class({
}
},
show:function (topic, text) {
show: function (topic, text) {
// Close a previous node editor if it's opened ...
if (this._topic) {
this.close(false);
@@ -166,7 +172,7 @@ mindplot.MultilineTextEditor = new Class({
if (!this.isVisible()) {
//Create editor ui
var containerElem = this._buildEditor();
containerElem.inject($(document.body));
$('body').append(containerElem);
this._containerElem = containerElem;
this._registerEvents(containerElem);
@@ -187,26 +193,27 @@ mindplot.MultilineTextEditor = new Class({
font.size = nodeText.getHtmlFontSize();
font.color = nodeText.getColor();
this._setStyle(font);
var me = this;
// Set editor's initial size
var displayFunc = function () {
// Position the editor and set the size...
var textShape = topic.getTextShape();
textShape.positionRelativeTo(this._containerElem, {
position:{x:'left', y:'top'},
edge:{x:'left', y:'top'}
});
this._containerElem.setStyle('display', 'block');
me._containerElem.css('display', 'block');
//FIXME: Im not sure if this is best way...
var shapePosition = textShape.getNativePosition();
me._containerElem.offset(shapePosition);
// Set editor's initial text ...
var text = $defined(defaultText) ? defaultText : topic.getText();
this._setText(text);
me._setText(text);
// Set the element focus and select the current text ...
var inputElem = this._getTextareaElem();
this._positionCursor(inputElem, !$defined(defaultText));
var inputElem = me._getTextareaElem();
me._positionCursor(inputElem, !$defined(defaultText));
}.bind(this);
};
this._timeoutId = displayFunc.delay(10);
},
@@ -232,44 +239,52 @@ mindplot.MultilineTextEditor = new Class({
fontWeight:fontStyle.weight,
color:fontStyle.color
};
inputField.setStyles(style);
this._containerElem.setStyles(style);
inputField.css(style);
this._containerElem.css(style);
},
_setText:function (text) {
var textareaElem = this._getTextareaElem();
textareaElem.value = text;
textareaElem.val(text);
this._adjustEditorSize();
},
_getText:function () {
return this._getTextareaElem().value;
return this._getTextareaElem().val();
},
_getTextareaElem:function () {
return this._containerElem.getElement('textarea');
return this._containerElem.find('textarea');
},
_positionCursor:function (textareaElem, selectText) {
textareaElem.focus();
var lenght = textareaElem.val().length;
if (selectText) {
// Mark text as selected ...
if (textareaElem.createTextRange) {
var rang = textareaElem.createTextRange();
rang.select();
rang.move("character", textareaElem.value.length);
rang.move("character", lenght);
}
else {
textareaElem.setSelectionRange(0, textareaElem.value.length);
textareaElem[0].setSelectionRange(0, lenght);
}
} else {
// Move the cursor to the last character ..
if (textareaElem.createTextRange) {
var range = textareaElem.createTextRange();
range.move("character", textareaElem.value.length);
range.move("character", lenght);
} else {
textareaElem.selectionStart = textareaElem.value.length;
if (Browser.ie11) {
textareaElem[0].selectionStart = lenght;
textareaElem[0].selectionEnd = lenght;
} else {
textareaElem.selectionStart = lenght;
textareaElem.selectionEnd = lenght;
}
textareaElem.focus();
}
}
@@ -288,7 +303,7 @@ mindplot.MultilineTextEditor = new Class({
this._topic.getTextShape().setVisibility(true);
// Remove it form the screen ...
this._containerElem.dispose();
this._containerElem.remove();
this._containerElem = null;
this._timeoutId = -1;
}

View File

@@ -24,7 +24,6 @@ mindplot.NodeGraph = new Class({
this._mouseEvents = true;
this.setModel(nodeModel);
this._onFocus = false;
this._event = new Events();
this._size = {width:50,height:20};
},
@@ -67,7 +66,7 @@ mindplot.NodeGraph = new Class({
fireEvent: function(type, event) {
var elem = this.get2DElement();
elem.fireEvent(type, event);
elem.trigger(type, event);
},
setMouseEventsEnabled : function(isEnabled) {

View File

@@ -31,50 +31,45 @@ mindplot.NoteIcon = new Class({
_registerEvents:function () {
this._image.setCursor('pointer');
var me = this;
if (!this._readOnly) {
// Add on click event to open the editor ...
this.addEvent('click', function (event) {
this._topic.showNoteEditor();
me._topic.showNoteEditor();
event.stopPropagation();
}.bind(this));
});
}
this._tip = new mindplot.widget.FloatingTip(this.getImage()._peer._native, {
this._tip = new mindplot.widget.FloatingTip($(me.getImage()._peer._native), {
title: $msg('NOTE'),
container: 'body',
// Content can also be a function of the target element!
content:function () {
var result = new Element('div');
result.setStyles({padding:'5px'});
var title = new Element('div', {text:$msg('NOTE')});
title.setStyles({
'font-weight':'bold',
color:'black',
'padding-bottom':'5px',
width:'100px'
});
title.inject(result);
var text = new Element('div', {text:this._linksModel.getText()});
text.setStyles({
'white-space':'pre-wrap',
'word-wrap':'break-word'
}
);
text.inject(result);
return result;
}.bind(this),
content: function() {
return me._buildTooltipContent();
},
html:true,
position:'bottom',
arrowOffset:10,
center:true,
arrowSize:15,
offset:{x:10, y:20},
className:'notesTip'
placement:'bottom',
destroyOnExit: true
});
},
_buildTooltipContent: function() {
if ($("body").find("#textPopoverNote").length == 1) {
var text = $("body").find("#textPopoverNote");
text.text(this._linksModel.getText());
} else {
var result = $('<div id="textPopoverNote"></div>').css({padding:'5px'});
var text = $('<div></div>').text(this._linksModel.getText())
.css({
'white-space':'pre-wrap',
'word-wrap':'break-word'
}
);
result.append(text);
return result;
}
},
getModel:function () {

View File

@@ -0,0 +1,13 @@
Options = new Class({
setOptions: function(){
var options = this.options = Object.merge.apply(null, [{}, this.options].append(arguments));
if (this.addEvent) for (var option in options){
if (typeOf(options[option]) != 'function' || !(/^on[A-Z]/).test(option)) continue;
this.addEvent(option, options[option]);
delete options[option];
}
return this;
}
});

View File

@@ -42,7 +42,7 @@ mindplot.PersistenceManager = new Class({
var domMap = serializer.toXML(mindmap);
var mapXml = core.Utils.innerXML(domMap);
var pref = JSON.encode(editorProperties);
var pref = JSON.stringify(editorProperties);
try {
this.saveMapXml(mapId, mapXml, pref, saveHistory, events, sync);
} catch (e) {

View File

@@ -160,16 +160,16 @@ mindplot.Relationship = new Class({
},
addToWorkspace:function (workspace) {
workspace.appendChild(this._focusShape);
workspace.appendChild(this._controlPointsController);
workspace.append(this._focusShape);
workspace.append(this._controlPointsController);
this._controlPointControllerListener = this._initializeControlPointController.bind(this);
this._line2d.addEvent('click', this._controlPointControllerListener);
this._isInWorkspace = true;
workspace.appendChild(this._startArrow);
workspace.append(this._startArrow);
if (this._endArrow)
workspace.appendChild(this._endArrow);
workspace.append(this._endArrow);
this.parent(workspace);
this._positionArrows();
@@ -325,6 +325,6 @@ mindplot.Relationship = new Class({
fireEvent:function (type, event) {
var elem = this._line2d;
elem.fireEvent(type, event);
elem.trigger(type, event);
}
});

View File

@@ -23,6 +23,7 @@ mindplot.RelationshipPivot = new Class({
this._workspace = workspace;
this._designer = designer;
//FIXME: the aim of the migration is remove .bind mootools method, please remove these!
this._mouseMoveEvent = this._mouseMove.bind(this);
this._onClickEvent = this._cleanOnMouseClick.bind(this);
this._onTopicClick = this._connectOnFocus.bind(this);
@@ -56,8 +57,8 @@ mindplot.RelationshipPivot = new Class({
this._startArrow.setStrokeWidth(2);
this._startArrow.setFrom(sourcePos.x, sourcePos.y);
this._workspace.appendChild(this._pivot);
this._workspace.appendChild(this._startArrow);
this._workspace.append(this._pivot);
this._workspace.append(this._startArrow);
this._workspace.addEvent('mousemove', this._mouseMoveEvent);
this._workspace.addEvent('click', this._onClickEvent);
@@ -65,7 +66,7 @@ mindplot.RelationshipPivot = new Class({
// Register focus events on all topics ...
var model = this._designer.getModel();
var topics = model.getTopics();
topics.each(function (topic) {
_.each(topics, function (topic) {
topic.addEvent('ontfocus', this._onTopicClick);
}.bind(this));
}
@@ -81,9 +82,10 @@ mindplot.RelationshipPivot = new Class({
var model = this._designer.getModel();
var topics = model.getTopics();
topics.each(function (topic) {
topic.removeEvent('ontfocus', this._onTopicClick);
}.bind(this));
var me = this;
_.each(topics, function (topic) {
topic.removeEvent('ontfocus', me._onTopicClick);
});
workspace.removeChild(this._pivot);
workspace.removeChild(this._startArrow);
@@ -139,7 +141,7 @@ mindplot.RelationshipPivot = new Class({
return mindplot.util.Shape.calculateRelationShipPointCoordinates(this._sourceTopic, spoint);
},
_connectOnFocus:function (targetTopic) {
_connectOnFocus:function (event, targetTopic) {
var sourceTopic = this._sourceTopic;
var mindmap = this._designer.getMindmap();

View File

@@ -55,38 +55,38 @@ mindplot.RESTPersistenceManager = new Class({
persistence.onSave = false;
}, 10000);
var request = new Request({
url:this.documentUrl.replace("{id}", mapId) + "?" + query,
method:'put',
$.ajax({
url: this.documentUrl.replace("{id}", mapId) + "?" + query,
type:'put',
dataType:"json",
data: JSON.stringify(data),
contentType:"application/json; charset=utf-8",
async:!sync,
onSuccess:function (responseText, responseXML) {
persistence.timestamp = responseText;
success: function (data, textStatus, jqXHRresponseText) {
persistence.timestamp = data;
events.onSuccess();
},
onException:function (headerName, value) {
error: function (jqXHR, textStatus, errorThrown) {
events.onError(persistence._buildError());
},
onComplete:function () {
complete: function () {
// Clear event timeout ...
if (persistence.clearTimeout) {
clearTimeout(persistence.clearTimeout);
}
persistence.onSave = false;
},
onFailure:function (xhr) {
fail:function (xhr, textStatus) {
var responseText = xhr.responseText;
var userMsg = {severity:"SEVERE", message:$msg('SAVE_COULD_NOT_BE_COMPLETED')};
var contentType = this.getHeader("Content-Type");
var contentType = xhr.getResponseHeader("Content-Type");
if (contentType != null && contentType.indexOf("application/json") != -1) {
var serverMsg = null;
try {
serverMsg = JSON.decode(responseText);
serverMsg = $.parseJSON(responseText);
serverMsg = serverMsg.globalSeverity ? serverMsg : null;
} catch (e) {
// Message could not be decoded ...
@@ -100,52 +100,29 @@ mindplot.RESTPersistenceManager = new Class({
}
events.onError(userMsg);
persistence.onSave = false;
},
headers:{"Content-Type":"application/json; charset=utf-8", "Accept":"application/json"},
emulation:false,
urlEncoded:false
}
});
request.put(JSON.encode(data));
}
},
discardChanges:function (mapId) {
var request = new Request({
$.ajax({
url:this.revertUrl.replace("{id}", mapId),
async:false,
method:'post',
onSuccess:function () {
},
onException:function () {
},
onFailure:function () {
},
headers:{"Content-Type":"application/json; charset=utf-8", "Accept":"application/json"},
emulation:false,
urlEncoded:false
headers:{"Content-Type":"application/json; charset=utf-8", "Accept":"application/json"}
});
request.post();
},
unlockMap:function (mindmap) {
var mapId = mindmap.getId();
var request = new Request({
$.ajax({
url:this.lockUrl.replace("{id}", mapId),
async:false,
method:'put',
onSuccess:function () {
},
onException:function () {
},
onFailure:function () {
},
headers:{"Content-Type":"text/plain"},
emulation:false,
urlEncoded:false
data: "false"
});
request.put("false");
},
_buildError:function (jsonSeverResponse) {
@@ -165,26 +142,22 @@ mindplot.RESTPersistenceManager = new Class({
loadMapDom:function (mapId) {
// Let's try to open one from the local directory ...
var xml;
var xmlRequest = new Request({
$.ajax({
url:this.documentUrl.replace("{id}", mapId) + "/xml",
method:'get',
async:false,
headers:{"Content-Type":"text/plain","Accept":"application/xml"},
onSuccess:function (responseText) {
success:function (responseText) {
xml = responseText;
}
});
xmlRequest.send();
// If I could not load it from a file, hard code one.
if (xml == null) {
throw new Error("Map could not be loaded");
}
var parser = new DOMParser();
return parser.parseFromString(xml, "text/xml");
return xml;
}
}
);

View File

@@ -24,11 +24,11 @@ mindplot.ScreenManager = new Class({
// Ignore default click event propagation. Prevent 'click' event on drag.
this._clickEvents = [];
this._divContainer.addEvent('click', function(event) {
this._divContainer.bind('click', function(event) {
event.stopPropagation()
}.bind(this));
});
this._divContainer.addEvent('dblclick', function(event) {
this._divContainer.bind('dblclick', function(event) {
event.stopPropagation();
event.preventDefault();
});
@@ -43,7 +43,7 @@ mindplot.ScreenManager = new Class({
if (event == 'click')
this._clickEvents.push(listener);
else
this._divContainer.addEvent(event, listener);
this._divContainer.bind(event, listener);
},
removeEvent : function(event, listener) {
@@ -51,18 +51,18 @@ mindplot.ScreenManager = new Class({
this._clickEvents.remove(listener);
}
else{
this._divContainer.removeEvent(event, listener);
this._divContainer.unbind(event, listener);
}
},
fireEvent : function(type, event) {
if (type == 'click') {
this._clickEvents.each(function(listener) {
_.each(this._clickEvents, function(listener) {
listener(type, event);
});
}
else {
this._divContainer.fireEvent(type, event);
this._divContainer.trigger(type, event);
}
},
@@ -118,13 +118,13 @@ mindplot.ScreenManager = new Class({
getWorkspaceMousePosition : function(event) {
// Retrieve current mouse position.
var x = event.client.x;
var y = event.client.y;
var x = event.clientX;
var y = event.clientY;
// Subtract div position.
var containerPosition = this.getContainer().getPosition();
//FIXME: paulo: why? Subtract div position.
/*var containerPosition = this.getContainer().position();
x = x - containerPosition.x;
y = y - containerPosition.y;
y = y - containerPosition.y;*/
// Scale coordinate in order to be relative to the workspace. That's coordSize/size;
x = x * this._scale;

View File

@@ -50,11 +50,11 @@ mindplot.ShirinkConnector = new Class({
ellipse.setFill('rgb(153, 0, 255)');
});
var me = this;
ellipse.addEvent('mouseout', function(event) {
var color = topic.getBackgroundColor();
this.setFill(color);
}.bind(this));
me.setFill(color);
});
ellipse.setCursor('default');
this._fillColor = '#f7f7f7';
@@ -90,7 +90,7 @@ mindplot.ShirinkConnector = new Class({
},
addToWorkspace: function(group) {
group.appendChild(this._ellipse);
group.append(this._ellipse);
},
setPosition: function(x, y) {
@@ -104,4 +104,4 @@ mindplot.ShirinkConnector = new Class({
moveToFront: function() {
this._ellipse.moveToFront();
}
});
});

View File

@@ -16,6 +16,7 @@
* limitations under the License.
*/
//FIXME: Not used!
mindplot.TextEditor = new Class({
initialize:function(topic) {
this._topic = topic;
@@ -68,14 +69,15 @@ mindplot.TextEditor = new Class({
_registerEvents : function(divElem) {
var inputElem = this._getTextareaElem();
var spanElem = this._getSpanElem();
var me = this;
divElem.addEvent('keydown', function (event) {
switch (event.key) {
case 'esc':
this.close(false);
me.close(false);
break;
case 'enter':
this.close(true);
me.close(true);
break;
default:
spanElem.innerHTML = inputElem.value;
@@ -87,7 +89,7 @@ mindplot.TextEditor = new Class({
break;
}
event.stopPropagation();
}.bind(this));
});
// If the user clicks on the input, all event must be ignored ...
divElem.addEvent('click', function(event) {
@@ -121,7 +123,7 @@ mindplot.TextEditor = new Class({
if (!this.isVisible()) {
//Create editor ui
var editorElem = this._buildEditor();
editorElem.inject($(document.body));
editorElem.inject($(document.body)[0]);
this._containerElem = editorElem;
this._registerEvents(editorElem);
@@ -147,25 +149,24 @@ mindplot.TextEditor = new Class({
var text = $defined(defaultText) ? defaultText : topic.getText();
this._setText(text);
var me = this;
// Set editor's initial size
var displayFunc = function() {
// Position the editor and set the size...
var textShape = this._topic.getTextShape();
textShape.positionRelativeTo(this._containerElem, {
position: {x: 'left',y:'top'},
edge: {x: 'left', y: 'top'}
});
this._containerElem.setStyle('display', 'block');
var textShape = me._topic.getTextShape();
me._containerElem.css('display', 'block');
me._containerElem.offset(textShape.getNativePosition());
// Set size ...
var elemSize = topic.getSize();
this._setEditorSize(elemSize.width, elemSize.height);
me._setEditorSize(elemSize.width, elemSize.height);
var textareaElem = this._getTextareaElem();
var textareaElem = me._getTextareaElem();
textareaElem.focus();
this._positionCursor(textareaElem, !$defined(defaultText));
me._positionCursor(textareaElem, !$defined(defaultText));
}.bind(this);
};
displayFunc.delay(10);
},

View File

@@ -47,11 +47,11 @@ mindplot.Topic = new Class({
this.addEvent('click', function (event) {
event.stopPropagation();
});
var me = this;
this.addEvent('dblclick', function (event) {
this._getTopicEventDispatcher().show(this);
me._getTopicEventDispatcher().show(me);
event.stopPropagation();
}.bind(this));
});
},
setShapeType:function (type) {
@@ -82,7 +82,7 @@ mindplot.Topic = new Class({
this.setSize(size, true);
var group = this.get2DElement();
group.appendChild(innerShape);
group.append(innerShape);
// Move text to the front ...
var text = this.getTextShape();
@@ -246,7 +246,7 @@ mindplot.Topic = new Class({
if (!$defined(this._iconsGroup)) {
this._iconsGroup = this._buildIconGroup();
var group = this.get2DElement();
group.appendChild(this._iconsGroup.getNativeElement());
group.append(this._iconsGroup.getNativeElement());
this._iconsGroup.moveToFront();
}
return this._iconsGroup;
@@ -458,7 +458,7 @@ mindplot.Topic = new Class({
setText:function (text) {
// Avoid empty nodes ...
if (!text || text.trim().length == 0) {
if (!text || $.trim(text).length == 0) {
text = null;
}
@@ -542,9 +542,9 @@ mindplot.Topic = new Class({
var textShape = this.getTextShape();
// Add to the group ...
group.appendChild(outerShape);
group.appendChild(innerShape);
group.appendChild(textShape);
group.append(outerShape);
group.append(innerShape);
group.append(textShape);
// Update figure size ...
var model = this.getModel();
@@ -576,24 +576,25 @@ mindplot.Topic = new Class({
};
elem.addEvent('mouseout', outout);
var me = this;
// Focus events ...
elem.addEvent('mousedown', function (event) {
if (!this.isReadOnly()) {
if (!me.isReadOnly()) {
// Disable topic selection of readOnly mode ...
var value = true;
if ((event.meta && Browser.Platform.mac) || (event.control && !Browser.Platform.mac)) {
value = !this.isOnFocus();
if ((event.metaKey && Browser.Platform.mac) || (event.ctrlKey && !Browser.Platform.mac)) {
value = !me.isOnFocus();
event.stopPropagation();
event.preventDefault();
}
topic.setOnFocus(value);
}
var eventDispatcher = this._getTopicEventDispatcher();
eventDispatcher.process(mindplot.TopicEvent.CLICK, this);
var eventDispatcher = me._getTopicEventDispatcher();
eventDispatcher.process(mindplot.TopicEvent.CLICK, me);
event.stopPropagation();
}.bind(this));
});
},
areChildrenShrunken:function () {
@@ -626,10 +627,11 @@ mindplot.Topic = new Class({
// Do some fancy animation ....
var elements = this._flatten2DElements(this);
var fade = new mindplot.util.FadeEffect(elements, !value);
var me = this;
fade.addEvent('complete', function () {
// Set focus on the parent node ...
if (value) {
this.setOnFocus(true);
me.setOnFocus(true);
}
// Set focus in false for all the children ...
@@ -638,7 +640,7 @@ mindplot.Topic = new Class({
elem.setOnFocus(false);
}
});
}.bind(this));
});
fade.start();
mindplot.EventBus.instance.fireEvent(mindplot.EventBus.events.NodeShrinkEvent, model);
@@ -887,7 +889,7 @@ mindplot.Topic = new Class({
},
_setRelationshipLinesVisibility:function (value) {
this._relationships.each(function (relationship) {
_.each(this._relationships, function (relationship) {
var sourceTopic = relationship.getSourceTopic();
var targetTopic = relationship.getTargetTopic();
@@ -1043,7 +1045,7 @@ mindplot.Topic = new Class({
$assert(workspace, 'Workspace can not be null');
// Connect Graphical Nodes ...
targetTopic.appendChild(this);
targetTopic.append(this);
this._parent = targetTopic;
// Update model ...
@@ -1056,7 +1058,7 @@ mindplot.Topic = new Class({
outgoingLine.setVisibility(false);
this._outgoingLine = outgoingLine;
workspace.appendChild(outgoingLine);
workspace.append(outgoingLine);
// Update figure is necessary.
this.updateTopicShape(targetTopic);
@@ -1088,7 +1090,7 @@ mindplot.Topic = new Class({
}
},
appendChild:function (child) {
append:function (child) {
var children = this.getChildren();
children.push(child);
},
@@ -1120,7 +1122,7 @@ mindplot.Topic = new Class({
addToWorkspace:function (workspace) {
var elem = this.get2DElement();
workspace.appendChild(elem);
workspace.append(elem);
if (!this.isInWorkspace()) {
if (!this.isCentralTopic()) {
mindplot.EventBus.instance.fireEvent(mindplot.EventBus.events.NodeAdded, this.getModel());

View File

@@ -17,7 +17,7 @@
*/
mindplot.TopicEventDispatcher = new Class({
Extends: Events,
Extends: mindplot.Events,
Static: {
_instance: null,

View File

@@ -26,8 +26,8 @@ mindplot.Workspace = new Class({
this._screenManager = screenManager;
var divContainer = screenManager.getContainer();
this._screenWidth = parseInt(divContainer.getStyle('width'));
this._screenHeight = parseInt(divContainer.getStyle('height'));
this._screenWidth = parseInt(divContainer.css('width'));
this._screenHeight = parseInt(divContainer.css('height'));
// Initialize web2d workspace.
var workspace = this._createWorkspace();
@@ -61,11 +61,11 @@ mindplot.Workspace = new Class({
return new web2d.Workspace(workspaceProfile);
},
appendChild: function(shape) {
append: function(shape) {
if ($defined(shape.addToWorkspace)) {
shape.addToWorkspace(this);
} else {
this._workspace.appendChild(shape);
this._workspace.append(shape);
}
},
@@ -189,7 +189,7 @@ mindplot.Workspace = new Class({
wasDragged = true;
}.bind(this);
};
screenManager.addEvent('mousemove', workspace._mouseMoveListener);
// Register mouse up listeners ...

View File

@@ -29,19 +29,20 @@ mindplot.commands.AddTopicCommand = new Class({
execute:function (commandContext) {
this._models.each(function (model, index) {
var me = this;
_.each(this._models, function (model, index) {
// Add a new topic ...
var topic = commandContext.createTopic(model);
// Connect to topic ...
if (this._parentsIds) {
var parentId = this._parentsIds[index];
if (me._parentsIds) {
var parentId = me._parentsIds[index];
if ($defined(parentId)) {
var parentTopic = commandContext.findTopics(parentId)[0];
commandContext.connect(topic, parentTopic);
}
}else {
} else {
commandContext.addTopic(topic);
}
@@ -53,23 +54,23 @@ mindplot.commands.AddTopicCommand = new Class({
// Render node ...
topic.setVisibility(true);
}.bind(this));
});
},
undoExecute:function (commandContext) {
// Delete disconnected the nodes. Create a copy of the topics ...
var clonedModel = [];
this._models.each(function (model) {
_.each(this._models, function (model) {
clonedModel.push(model.clone());
});
// Finally, remove the nodes ...
this._models.each(function (model) {
_.each(this._models, function (model) {
var topicId = model.getId();
var topic = commandContext.findTopics(topicId)[0];
commandContext.deleteTopic(topic);
}.bind(this));
});
this._models = clonedModel;
}

View File

@@ -35,7 +35,7 @@ mindplot.commands.DeleteCommand = new Class({
var topics = this._filterChildren(this._topicIds, commandContext);
if (topics.length > 0) {
topics.each(function (topic) {
_.each(topics, function (topic) {
// In case that it's editing text node, force close without update ...
topic.closeEditors();
@@ -47,7 +47,7 @@ mindplot.commands.DeleteCommand = new Class({
return rel.getModel().clone();
}));
relationships.each(function (relationship) {
_.each(relationships, function (relationship) {
commandContext.deleteRelationship(relationship);
});
@@ -69,7 +69,7 @@ mindplot.commands.DeleteCommand = new Class({
var rels = commandContext.findRelationships(this._relIds);
if (rels.length > 0) {
rels.each(function (rel) {
_.each(rels, function (rel) {
this._deletedRelModel.push(rel.getModel().clone());
commandContext.deleteRelationship(rel);
}, this);
@@ -79,12 +79,12 @@ mindplot.commands.DeleteCommand = new Class({
undoExecute:function (commandContext) {
// Add all the topics ...
this._deletedTopicModels.each(function (model) {
_.each(this._deletedTopicModels, function (model) {
commandContext.createTopic(model);
}, this);
// Do they need to be connected ?
this._deletedTopicModels.each(function (topicModel, index) {
_.each(this._deletedTopicModels, function (topicModel, index) {
var topics = commandContext.findTopics(topicModel.getId());
var parentId = this._parentTopicIds[index];
@@ -95,12 +95,12 @@ mindplot.commands.DeleteCommand = new Class({
}, this);
// Add rebuild relationships ...
this._deletedRelModel.each(function (model) {
_.each(this._deletedRelModel, function (model) {
commandContext.addRelationship(model);
}.bind(this));
});
// Finally display the topics ...
this._deletedTopicModels.each(function (topicModel) {
_.each(this._deletedTopicModels, function (topicModel) {
var topics = commandContext.findTopics(topicModel.getId());
topics[0].setBranchVisibility(true);
}, this);
@@ -121,7 +121,7 @@ mindplot.commands.DeleteCommand = new Class({
var topics = commandContext.findTopics(topicIds);
var result = [];
topics.each(function (topic) {
_.each(topics, function (topic) {
var parent = topic.getParent();
var found = false;
while (parent != null && !found) {

View File

@@ -46,10 +46,11 @@ mindplot.commands.GenericFunctionCommand = new Class({
}
if (topics != null) {
topics.each(function (topic) {
var oldValue = this._commandFunc(topic, this._value);
this._oldValues.push(oldValue);
}.bind(this));
var me = this;
_.each(topics, function (topic) {
var oldValue = me._commandFunc(topic, me._value);
me._oldValues.push(oldValue);
});
}
this.applied = true;
@@ -62,10 +63,11 @@ mindplot.commands.GenericFunctionCommand = new Class({
undoExecute:function (commandContext) {
if (this.applied) {
var topics = commandContext.findTopics(this._topicsId);
topics.each(function (topic, index) {
this._commandFunc(topic, this._oldValues[index]);
var me = this;
_.each(topics, function (topic, index) {
me._commandFunc(topic, me._oldValues[index]);
}.bind(this));
});
this.applied = false;
this._oldValues = [];

View File

@@ -1 +1,5 @@
$(document).fireEvent('loadcomplete', 'mind');
try {
$(document).trigger('loadcomplete', 'mind');
} catch (e) {
console.error(e.stack);
}

View File

@@ -38,7 +38,7 @@ mindplot.layout.AbstractBasicSorter = new Class({
result = height;
} else {
var childrenHeight = 0;
children.each(function(child) {
_.each(children, function(child) {
childrenHeight += this._computeChildrenHeight(treeSet, child, heightCache);
}, this);

View File

@@ -77,7 +77,7 @@ mindplot.layout.BalancedSorter = new Class({
var result = null;
var last = children.getLast();
position = position || {x:last.getPosition().x, y:last.getPosition().y + 1};
children.each(function (child, index) {
_.each(children, function (child, index) {
var cpos = child.getPosition();
if (position.y > cpos.y) {
yOffset = child == last ?
@@ -129,7 +129,7 @@ mindplot.layout.BalancedSorter = new Class({
// Filter nodes on one side..
var children = this._getChildrenForOrder(parent, treeSet, node.getOrder());
children.each(function (child, index) {
_.each(children, function (child, index) {
if (child.getOrder() > node.getOrder()) {
child.setOrder(child.getOrder() - 2);
}
@@ -154,7 +154,7 @@ mindplot.layout.BalancedSorter = new Class({
var totalPHeight = 0;
var totalNHeight = 0;
heights.each(function (elem) {
_.each(heights, function (elem) {
if (elem.order % 2 == 0) {
totalPHeight += elem.height;
} else {

View File

@@ -16,7 +16,7 @@
* limitations under the License.
*/
mindplot.EventBus = new Class({
Implements:Events,
Implements: mindplot.Events,
initialize: function() {
}
});

View File

@@ -26,9 +26,13 @@ mindplot.layout.GridSorter = new Class({
var children = this._getSortedChildren(treeSet, node);
// Compute heights ...
var me = this;
var heights = children.map(function(child) {
return {id:child.getId(),height:this._computeChildrenHeight(treeSet, child)};
}.bind(this));
return {
id: child.getId(),
height: me._computeChildrenHeight(treeSet, child)
};
});
// Calculate the offsets ...
var result = {};

View File

@@ -16,7 +16,7 @@
* limitations under the License.
*/
mindplot.layout.LayoutManager = new Class({
Extends: Events,
Extends: mindplot.Events,
initialize: function(rootNodeId, rootSize) {
$assert($defined(rootNodeId), "rootNodeId can not be null");
$assert(rootSize, "rootSize can not be null");
@@ -137,7 +137,7 @@ mindplot.layout.LayoutManager = new Class({
// Collect changes ...
this._collectChanges();
if (!$(fireEvents) || fireEvents) {
if ($(fireEvents).length>0 || fireEvents) {
this._flushEvents();
}
@@ -145,7 +145,7 @@ mindplot.layout.LayoutManager = new Class({
},
_flushEvents: function() {
this._events.each(function(event) {
_.each(this._events, function(event) {
this.fireEvent('change', event);
}, this);
this._events = [];
@@ -155,7 +155,7 @@ mindplot.layout.LayoutManager = new Class({
if (!nodes)
nodes = this._treeSet.getTreeRoots();
nodes.each(function(node) {
_.each(nodes, function(node) {
if (node.hasOrderChanged() || node.hasPositionChanged()) {
// Find or create a event ...

View File

@@ -155,7 +155,7 @@ mindplot.layout.Node = new Class({
}
// Only update if the property has changed ...
if (JSON.encode(prop.value) != JSON.encode(value)) {
if (JSON.stringify(prop.value) != JSON.stringify(value)) {
prop.oldValue = prop.value;
prop.value = value;
prop.hasChanged = true;

View File

@@ -70,7 +70,7 @@ mindplot.layout.OriginalLayout = new Class({
layout:function () {
var roots = this._treeSet.getTreeRoots();
roots.each(function (node) {
_.each(roots, function (node) {
// Calculate all node heights ...
var sorter = node.getSorter();
@@ -107,12 +107,12 @@ mindplot.layout.OriginalLayout = new Class({
var sorter = node.getSorter();
var offsetById = sorter.computeOffsets(this._treeSet, node);
var parentPosition = node.getPosition();
children.each(function (child) {
var me = this;
_.each(children, function (child) {
var offset = offsetById[child.getId()];
var childFreeDisplacement = child.getFreeDisplacement();
var direction = node.getSorter().getChildDirection(this._treeSet, child);
var direction = node.getSorter().getChildDirection(me._treeSet, child);
if ((direction > 0 && childFreeDisplacement.x < 0) || (direction < 0 && childFreeDisplacement.x > 0)) {
child.resetFreeDisplacement();
@@ -125,15 +125,15 @@ mindplot.layout.OriginalLayout = new Class({
var parentX = parentPosition.x;
var parentY = parentPosition.y;
var newPos = {x:parentX + offset.x, y:parentY + offset.y + this._calculateAlignOffset(node, child, heightById)};
this._treeSet.updateBranchPosition(child, newPos);
}.bind(this));
var newPos = {x:parentX + offset.x, y:parentY + offset.y + me._calculateAlignOffset(node, child, heightById)};
me._treeSet.updateBranchPosition(child, newPos);
});
node._branchHeight = newBranchHeight;
}
// Continue reordering the children nodes ...
children.each(function (child) {
_.each(children, function (child) {
this._layoutChildren(child, heightById);
}, this);
},
@@ -183,7 +183,7 @@ mindplot.layout.OriginalLayout = new Class({
this._shiftBranches(node, heightById);
}
children.each(function (child) {
_.each(children, function (child) {
this._fixOverlapping(child, heightById);
}, this);
},
@@ -193,7 +193,7 @@ mindplot.layout.OriginalLayout = new Class({
var siblingsToShift = this._treeSet.getSiblingsInVerticalDirection(node, node.getFreeDisplacement().y);
var last = node;
siblingsToShift.each(function (sibling) {
_.each(siblingsToShift, function (sibling) {
var overlappingOccurs = shiftedBranches.some(function (shiftedBranch) {
return this._branchesOverlap(shiftedBranch, sibling, heightById);
}, this);
@@ -209,7 +209,7 @@ mindplot.layout.OriginalLayout = new Class({
return !shiftedBranches.contains(branch);
});
branchesToShift.each(function (branch) {
_.each(branchesToShift, function (branch) {
var bAmount = node.getFreeDisplacement().y;
this._treeSet.shiftBranchPosition(branch, 0, bAmount);
shiftedBranches.push(branch);

View File

@@ -240,9 +240,10 @@ mindplot.layout.RootedTreeSet = new Class({
var yOffset = oldPos.y - position.y;
var children = this.getChildren(node);
children.each(function (child) {
this.shiftBranchPosition(child, xOffset, yOffset);
}.bind(this));
var me = this;
_.each(children, function (child) {
me.shiftBranchPosition(child, xOffset, yOffset);
});
},
@@ -251,9 +252,10 @@ mindplot.layout.RootedTreeSet = new Class({
node.setPosition({x:position.x + xOffset, y:position.y + yOffset});
var children = this.getChildren(node);
children.each(function (child) {
this.shiftBranchPosition(child, xOffset, yOffset);
}.bind(this));
var me = this;
_.each(children, function (child) {
me.shiftBranchPosition(child, xOffset, yOffset);
});
},
getSiblingsInVerticalDirection:function (node, yOffset) {

View File

@@ -168,7 +168,7 @@ mindplot.layout.SymmetricSorter = new Class({
// Compute the center of the branch ...
var totalHeight = 0;
heights.each(function (elem) {
_.each(heights, function (elem) {
totalHeight += elem.height;
});
var ysum = totalHeight / 2;

View File

@@ -0,0 +1,49 @@
BootstrapDialog.Request = new Class({
Extends: BootstrapDialog,
initialize: function(url, title, options) {
this.parent(title, options);
this.requestOptions = {};
this.requestOptions.cache = false;
var me = this;
this.requestOptions.fail = function(xhr) {
// Intercept form requests ...
console.log("Failure:");
console.log(xhr);
};
this.requestOptions.success = function() {
// Intercept form requests ...
var forms = me._native.find('form');
_.each(forms, function(form) {
$(form).on('submit', function(event) {
// Intercept form ...
me.requestOptions.url = form.action;
me.requestOptions.method = form.method ? form.method : 'post';
$.ajax(me.requestOptions);
event.stopPropagation();
return false;
});
});
};
this._native.find('.modal-body').load(url, function () {
me.acceptButton.unbind('click').click(function () {
submitDialogForm();
});
me._native.on('hidden.bs.modal', function () {
$(this).remove();
});
me.show();
});
},
onDialogShown: function() {
if (typeof(onDialogShown) == "function") {
onDialogShown();
}
}
});

View File

@@ -0,0 +1,114 @@
var BootstrapDialog = new Class({
Implements: Options,
options: {
cancelButton: false,
closeButton: false,
acceptButton: true,
removeButton:false,
errorMessage: false,
onEventData:{}
},
initialize: function (title, options) {
this.setOptions(options);
this.options.onEventData.dialog = this;
this._native = $('<div class="modal fade" tabindex="-1"></div>').append('<div class="modal-dialog"></div>');
var content = $('<div class="modal-content"></div>');
content.on('keydown', function(event) {
event.stopPropagation();
});
var header = this._buildHeader(title);
if (header) {
content.append(header);
}
var body = $('<div class="modal-body"></div>');
if(this.options.errorMessage){
var error = $('<div class="alert alert-danger"></div>');
error.hide();
body.append(error);
}
content.append(body);
var footer = this._buildFooter();
if (footer) {
content.append(footer);
}
this._native.find(".modal-dialog").append(content);
this._native.on('hidden.bs.modal', function() {
$(this).remove();
});
this._native.on('shown.bs.modal', this.onDialogShown);
},
_buildFooter: function() {
var footer = null;
if (this.options.acceptButton || this.options.removeButton || this.options.cancelButton) {
footer = $('<div class="modal-footer" style="paddingTop:5;textAlign:center">');
}
if (this.options.acceptButton) {
this.acceptButton = $('<button type="button" class="btn btn-primary" id="acceptBtn" data-dismiss="modal">'+ $msg('ACCEPT') + '</button>');
footer.append(this.acceptButton);
this.acceptButton.unbind('click').on("click",this.options.onEventData, this.onAcceptClick)
}
if (this.options.removeButton) {
this.removeButton = $('<button type="button" class="btn btn-secondary" id="removeBtn" data-dismiss="modal">'+ $msg('REMOVE') +'</button>');
footer.append(this.removeButton);
this.removeButton.on('click', this.options.onEventData, this.onRemoveClick);
}
if (this.options.cancelButton) {
footer.append('<button type="button" class="btn btn-secondary" data-dismiss="modal">'+ $msg('CANCEL') +'</button>');
}
return footer;
},
_buildHeader: function(title) {
var header = null;
if (this.options.closeButton || title) {
header = $('<div class="modal-header"></div>');
}
if (this.options.closeButton) {
header.append(
'<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>'
);
}
if (title) {
header.append('<h2 class="modal-title">' + title + '</h2>');
}
return header;
},
onAcceptClick: function(event) {
throw "Unsupported operation";
},
onDialogShown: function() {},
onRemoveClick: function(event) {
throw "Unsupported operation";
},
show: function () {
this._native.modal();
},
setContent: function(content) {
var modalBody = this._native.find('.modal-body');
modalBody.append(content);
},
css: function(options){
this._native.find('.modal-dialog').css(options);
},
close: function() {
this._native.modal('hide');
},
alertError: function(message){
this._native.find('.alert-danger').text(message);
this._native.find('.alert-danger').show();
},
cleanError: function(){
this._native.find('.alert-danger').hide();
}
});

View File

@@ -1,5 +1,5 @@
/*!
* Bootstrap v3.1.0 (http://getbootstrap.com)
* Bootstrap v3.1.1 (http://getbootstrap.com)
* Copyright 2011-2014 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/

File diff suppressed because one or more lines are too long

View File

@@ -1,5 +1,5 @@
/*!
* Bootstrap v3.1.0 (http://getbootstrap.com)
* Bootstrap v3.1.1 (http://getbootstrap.com)
* Copyright 2011-2014 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -28,12 +28,12 @@
<glyph unicode="&#x205f;" horiz-adv-x="326" />
<glyph unicode="&#x20ac;" d="M100 500l100 100h113q0 47 5 100h-218l100 100h135q37 167 112 257q117 141 297 141q242 0 354 -189q60 -103 66 -209h-181q0 55 -25.5 99t-63.5 68t-75 36.5t-67 12.5q-24 0 -52.5 -10t-62.5 -32t-65.5 -67t-50.5 -107h379l-100 -100h-300q-6 -46 -6 -100h406l-100 -100 h-300q9 -74 33 -132t52.5 -91t62 -54.5t59 -29t46.5 -7.5q29 0 66 13t75 37t63.5 67.5t25.5 96.5h174q-31 -172 -128 -278q-107 -117 -274 -117q-205 0 -324 158q-36 46 -69 131.5t-45 205.5h-217z" />
<glyph unicode="&#x2212;" d="M200 400h900v300h-900v-300z" />
<glyph unicode="&#x2601;" d="M-14 494q0 -80 56.5 -137t135.5 -57h750q120 0 205 86t85 208q0 120 -85 206.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5z" />
<glyph unicode="&#x25fc;" horiz-adv-x="500" d="M0 0z" />
<glyph unicode="&#x2601;" d="M-14 494q0 -80 56.5 -137t135.5 -57h750q120 0 205 86.5t85 207.5t-85 207t-205 86q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5z" />
<glyph unicode="&#x2709;" d="M0 100l400 400l200 -200l200 200l400 -400h-1200zM0 300v600l300 -300zM0 1100l600 -603l600 603h-1200zM900 600l300 300v-600z" />
<glyph unicode="&#x270f;" d="M-13 -13l333 112l-223 223zM187 403l214 -214l614 614l-214 214zM887 1103l214 -214l99 92q13 13 13 32.5t-13 33.5l-153 153q-15 13 -33 13t-33 -13z" />
<glyph unicode="&#xe000;" horiz-adv-x="500" d="M0 0z" />
<glyph unicode="&#xe001;" d="M0 1200h1200l-500 -550v-550h300v-100h-800v100h300v550z" />
<glyph unicode="&#xe002;" d="M14 84q18 -55 86 -75.5t147 5.5q65 21 109 69t44 90v606l600 155v-521q-64 16 -138 -7q-79 -26 -122.5 -83t-25.5 -111q17 -55 85.5 -75.5t147.5 4.5q70 23 111.5 63.5t41.5 95.5v881q0 10 -7 15.5t-17 2.5l-752 -193q-10 -3 -17 -12.5t-7 -19.5v-689q-64 17 -138 -7 q-79 -25 -122.5 -82t-25.5 -112z" />
<glyph unicode="&#xe002;" d="M14 84q18 -55 86 -75.5t147 5.5q65 21 109 69t44 90v606l600 155v-521q-64 16 -138 -7q-79 -26 -122.5 -83t-25.5 -111q18 -55 86 -75.5t147 4.5q70 23 111.5 63.5t41.5 95.5v881q0 10 -7 15.5t-17 2.5l-752 -193q-10 -3 -17 -12.5t-7 -19.5v-689q-64 17 -138 -7 q-79 -25 -122.5 -82t-25.5 -112z" />
<glyph unicode="&#xe003;" d="M23 693q0 200 142 342t342 142t342 -142t142 -342q0 -142 -78 -261l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233z" />
<glyph unicode="&#xe005;" d="M100 784q0 64 28 123t73 100.5t104.5 64t119 20.5t120 -38.5t104.5 -104.5q48 69 109.5 105t121.5 38t118.5 -20.5t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-149.5 152.5t-126.5 127.5 t-94 124.5t-33.5 117.5z" />
<glyph unicode="&#xe006;" d="M-72 800h479l146 400h2l146 -400h472l-382 -278l145 -449l-384 275l-382 -275l146 447zM168 71l2 1z" />
@@ -46,7 +46,7 @@
<glyph unicode="&#xe013;" d="M29 454l419 -420l818 820l-212 212l-607 -607l-206 207z" />
<glyph unicode="&#xe014;" d="M106 318l282 282l-282 282l212 212l282 -282l282 282l212 -212l-282 -282l282 -282l-212 -212l-282 282l-282 -282z" />
<glyph unicode="&#xe015;" d="M23 693q0 200 142 342t342 142t342 -142t142 -342q0 -142 -78 -261l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233zM300 600v200h100v100h200v-100h100v-200h-100v-100h-200v100h-100z" />
<glyph unicode="&#xe016;" d="M23 694q0 200 142 342t342 142t342 -142t142 -342q0 -141 -78 -262l300 -299q7 -7 7 -18t-7 -18l-109 -109q-8 -8 -18 -8t-18 8l-300 299q-120 -77 -261 -77q-200 0 -342 142t-142 342zM176 694q0 -136 97 -233t234 -97t233.5 97t96.5 233t-96.5 233t-233.5 97t-234 -97 t-97 -233zM300 601h400v200h-400v-200z" />
<glyph unicode="&#xe016;" d="M23 694q0 200 142 342t342 142t342 -142t142 -342q0 -141 -78 -262l300 -299q7 -7 7 -18t-7 -18l-109 -109q-8 -8 -18 -8t-18 8l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 694q0 -136 97 -233t234 -97t233.5 97t96.5 233t-96.5 233t-233.5 97t-234 -97 t-97 -233zM300 601h400v200h-400v-200z" />
<glyph unicode="&#xe017;" d="M23 600q0 183 105 331t272 210v-166q-103 -55 -165 -155t-62 -220q0 -177 125 -302t302 -125t302 125t125 302q0 120 -62 220t-165 155v166q167 -62 272 -210t105 -331q0 -118 -45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5 zM500 750q0 -21 14.5 -35.5t35.5 -14.5h100q21 0 35.5 14.5t14.5 35.5v400q0 21 -14.5 35.5t-35.5 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-400z" />
<glyph unicode="&#xe018;" d="M100 1h200v300h-200v-300zM400 1v500h200v-500h-200zM700 1v800h200v-800h-200zM1000 1v1200h200v-1200h-200z" />
<glyph unicode="&#xe019;" d="M26 601q0 -33 6 -74l151 -38l2 -6q14 -49 38 -93l3 -5l-80 -134q45 -59 105 -105l133 81l5 -3q45 -26 94 -39l5 -2l38 -151q40 -5 74 -5q27 0 74 5l38 151l6 2q46 13 93 39l5 3l134 -81q56 44 104 105l-80 134l3 5q24 44 39 93l1 6l152 38q5 40 5 74q0 28 -5 73l-152 38 l-1 6q-16 51 -39 93l-3 5l80 134q-44 58 -104 105l-134 -81l-5 3q-45 25 -93 39l-6 1l-38 152q-40 5 -74 5q-27 0 -74 -5l-38 -152l-5 -1q-50 -14 -94 -39l-5 -3l-133 81q-59 -47 -105 -105l80 -134l-3 -5q-25 -47 -38 -93l-2 -6l-151 -38q-6 -48 -6 -73zM385 601 q0 88 63 151t152 63t152 -63t63 -151q0 -89 -63 -152t-152 -63t-152 63t-63 152z" />
@@ -58,7 +58,7 @@
<glyph unicode="&#xe025;" d="M0 0v400h490l-290 300h200v500h300v-500h200l-290 -300h490v-400h-1100zM813 200h175v100h-175v-100z" />
<glyph unicode="&#xe026;" d="M1 600q0 122 47.5 233t127.5 191t191 127.5t233 47.5t233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233zM188 600q0 -170 121 -291t291 -121t291 121t121 291t-121 291t-291 121 t-291 -121t-121 -291zM350 600h150v300h200v-300h150l-250 -300z" />
<glyph unicode="&#xe027;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM350 600l250 300 l250 -300h-150v-300h-200v300h-150z" />
<glyph unicode="&#xe028;" d="M0 25v475l200 700h800q199 -700 200 -700v-475q0 -11 -7 -18t-18 -7h-1150q-11 0 -18 7t-7 18zM200 500h200l50 -200h300l50 200h200l-97 500h-606z" />
<glyph unicode="&#xe028;" d="M0 25v475l200 700h800l199 -700l1 -475q0 -11 -7 -18t-18 -7h-1150q-11 0 -18 7t-7 18zM200 500h200l50 -200h300l50 200h200l-97 500h-606z" />
<glyph unicode="&#xe029;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM500 397v401 l297 -200z" />
<glyph unicode="&#xe030;" d="M23 600q0 -118 45.5 -224.5t123 -184t184 -123t224.5 -45.5t224.5 45.5t184 123t123 184t45.5 224.5h-150q0 -177 -125 -302t-302 -125t-302 125t-125 302t125 302t302 125q136 0 246 -81l-146 -146h400v400l-145 -145q-157 122 -355 122q-118 0 -224.5 -45.5t-184 -123 t-123 -184t-45.5 -224.5z" />
<glyph unicode="&#xe031;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5q198 0 355 -122l145 145v-400h-400l147 147q-112 80 -247 80q-177 0 -302 -125t-125 -302h-150zM100 0v400h400l-147 -147q112 -80 247 -80q177 0 302 125t125 302h150q0 -118 -45.5 -224.5t-123 -184t-184 -123 t-224.5 -45.5q-198 0 -355 122z" />
@@ -71,14 +71,14 @@
<glyph unicode="&#xe038;" d="M0 401v400h300l300 200v-800l-300 200h-300zM702 858l69 53q111 -135 111 -310q0 -170 -106 -303l-67 55q86 110 86 248q0 145 -93 257zM889 951l7 -8q123 -151 123 -344q0 -189 -119 -339l-7 -8l81 -66l6 8q142 178 142 405q0 230 -144 408l-6 8z" />
<glyph unicode="&#xe039;" d="M0 0h500v500h-200v100h-100v-100h-200v-500zM0 600h100v100h400v100h100v100h-100v300h-500v-600zM100 100v300h300v-300h-300zM100 800v300h300v-300h-300zM200 200v100h100v-100h-100zM200 900h100v100h-100v-100zM500 500v100h300v-300h200v-100h-100v-100h-200v100 h-100v100h100v200h-200zM600 0v100h100v-100h-100zM600 1000h100v-300h200v-300h300v200h-200v100h200v500h-600v-200zM800 800v300h300v-300h-300zM900 0v100h300v-100h-300zM900 900v100h100v-100h-100zM1100 200v100h100v-100h-100z" />
<glyph unicode="&#xe040;" d="M0 200h100v1000h-100v-1000zM100 0v100h300v-100h-300zM200 200v1000h100v-1000h-100zM500 0v91h100v-91h-100zM500 200v1000h200v-1000h-200zM700 0v91h100v-91h-100zM800 200v1000h100v-1000h-100zM900 0v91h200v-91h-200zM1000 200v1000h200v-1000h-200z" />
<glyph unicode="&#xe041;" d="M1 700v475q0 10 7.5 17.5t17.5 7.5h474l700 -700l-500 -500zM148 953q0 -42 29 -71q30 -30 71.5 -30t71.5 30q29 29 29 71t-29 71q-30 30 -71.5 30t-71.5 -30q-29 -29 -29 -71z" />
<glyph unicode="&#xe042;" d="M2 700v475q0 11 7 18t18 7h474l700 -700l-500 -500zM148 953q0 -42 30 -71q29 -30 71 -30t71 30q30 29 30 71t-30 71q-29 30 -71 30t-71 -30q-30 -29 -30 -71zM701 1200h100l700 -700l-500 -500l-50 50l450 450z" />
<glyph unicode="&#xe041;" d="M0 700l1 475q0 10 7.5 17.5t17.5 7.5h474l700 -700l-500 -500zM148 953q0 -42 29 -71q30 -30 71.5 -30t71.5 30q29 29 29 71t-29 71q-30 30 -71.5 30t-71.5 -30q-29 -29 -29 -71z" />
<glyph unicode="&#xe042;" d="M1 700l1 475q0 11 7 18t18 7h474l700 -700l-500 -500zM148 953q0 -42 30 -71q29 -30 71 -30t71 30q30 29 30 71t-30 71q-29 30 -71 30t-71 -30q-30 -29 -30 -71zM701 1200h100l700 -700l-500 -500l-50 50l450 450z" />
<glyph unicode="&#xe043;" d="M100 0v1025l175 175h925v-1000l-100 -100v1000h-750l-100 -100h750v-1000h-900z" />
<glyph unicode="&#xe044;" d="M200 0l450 444l450 -443v1150q0 20 -14.5 35t-35.5 15h-800q-21 0 -35.5 -15t-14.5 -35v-1151z" />
<glyph unicode="&#xe045;" d="M0 100v700h200l100 -200h600l100 200h200v-700h-200v200h-800v-200h-200zM253 829l40 -124h592l62 124l-94 346q-2 11 -10 18t-18 7h-450q-10 0 -18 -7t-10 -18zM281 24l38 152q2 10 11.5 17t19.5 7h500q10 0 19.5 -7t11.5 -17l38 -152q2 -10 -3.5 -17t-15.5 -7h-600 q-10 0 -15.5 7t-3.5 17z" />
<glyph unicode="&#xe046;" d="M0 200q0 -41 29.5 -70.5t70.5 -29.5h1000q41 0 70.5 29.5t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5h-150q-4 8 -11.5 21.5t-33 48t-53 61t-69 48t-83.5 21.5h-200q-41 0 -82 -20.5t-70 -50t-52 -59t-34 -50.5l-12 -20h-150q-41 0 -70.5 -29.5t-29.5 -70.5v-600z M356 500q0 100 72 172t172 72t172 -72t72 -172t-72 -172t-172 -72t-172 72t-72 172zM494 500q0 -44 31 -75t75 -31t75 31t31 75t-31 75t-75 31t-75 -31t-31 -75zM900 700v100h100v-100h-100z" />
<glyph unicode="&#xe047;" d="M53 0h365v66q-41 0 -72 11t-49 38t1 71l92 234h391l82 -222q16 -45 -5.5 -88.5t-74.5 -43.5v-66h417v66q-34 1 -74 43q-18 19 -33 42t-21 37l-6 13l-385 998h-93l-399 -1006q-24 -48 -52 -75q-12 -12 -33 -25t-36 -20l-15 -7v-66zM416 521l178 457l46 -140l116 -317h-340 z" />
<glyph unicode="&#xe048;" d="M100 0v89q41 7 70.5 32.5t29.5 65.5v827q0 28 -1 39.5t-5.5 26t-15.5 21t-29 14t-49 14.5v70h471q120 0 213 -88t93 -228q0 -55 -11.5 -101.5t-28 -74t-33.5 -47.5t-28 -28l-12 -7q8 -3 21.5 -9t48 -31.5t60.5 -58t47.5 -91.5t21.5 -129q0 -84 -59 -156.5t-142 -111 t-162 -38.5h-500zM400 200h161q89 0 153 48.5t64 132.5q0 90 -62.5 154.5t-156.5 64.5h-159v-400zM400 700h139q76 0 130 61.5t54 138.5q0 82 -84 130.5t-239 48.5v-379z" />
<glyph unicode="&#xe048;" d="M100 0v89q41 7 70.5 32.5t29.5 65.5v827q0 28 -1 39.5t-5.5 26t-15.5 21t-29 14t-49 14.5v71l471 -1q120 0 213 -88t93 -228q0 -55 -11.5 -101.5t-28 -74t-33.5 -47.5t-28 -28l-12 -7q8 -3 21.5 -9t48 -31.5t60.5 -58t47.5 -91.5t21.5 -129q0 -84 -59 -156.5t-142 -111 t-162 -38.5h-500zM400 200h161q89 0 153 48.5t64 132.5q0 90 -62.5 154.5t-156.5 64.5h-159v-400zM400 700h139q76 0 130 61.5t54 138.5q0 82 -84 130.5t-239 48.5v-379z" />
<glyph unicode="&#xe049;" d="M200 0v57q77 7 134.5 40.5t65.5 80.5l173 849q10 56 -10 74t-91 37q-6 1 -10.5 2.5t-9.5 2.5v57h425l2 -57q-33 -8 -62 -25.5t-46 -37t-29.5 -38t-17.5 -30.5l-5 -12l-128 -825q-10 -52 14 -82t95 -36v-57h-500z" />
<glyph unicode="&#xe050;" d="M-75 200h75v800h-75l125 167l125 -167h-75v-800h75l-125 -167zM300 900v300h150h700h150v-300h-50q0 29 -8 48.5t-18.5 30t-33.5 15t-39.5 5.5t-50.5 1h-200v-850l100 -50v-100h-400v100l100 50v850h-200q-34 0 -50.5 -1t-40 -5.5t-33.5 -15t-18.5 -30t-8.5 -48.5h-49z " />
<glyph unicode="&#xe051;" d="M33 51l167 125v-75h800v75l167 -125l-167 -125v75h-800v-75zM100 901v300h150h700h150v-300h-50q0 29 -8 48.5t-18 30t-33.5 15t-40 5.5t-50.5 1h-200v-650l100 -50v-100h-400v100l100 50v650h-200q-34 0 -50.5 -1t-39.5 -5.5t-33.5 -15t-18.5 -30t-8 -48.5h-50z" />
@@ -93,10 +93,10 @@
<glyph unicode="&#xe060;" d="M0 44v1012q0 18 13 31t31 13h1112q19 0 31.5 -13t12.5 -31v-1012q0 -18 -12.5 -31t-31.5 -13h-1112q-18 0 -31 13t-13 31zM100 263l247 182l298 -131l-74 156l293 318l236 -288v500h-1000v-737zM208 750q0 56 39 95t95 39t95 -39t39 -95t-39 -95t-95 -39t-95 39t-39 95z " />
<glyph unicode="&#xe062;" d="M148 745q0 124 60.5 231.5t165 172t226.5 64.5q123 0 227 -63t164.5 -169.5t60.5 -229.5t-73 -272q-73 -114 -166.5 -237t-150.5 -189l-57 -66q-10 9 -27 26t-66.5 70.5t-96 109t-104 135.5t-100.5 155q-63 139 -63 262zM342 772q0 -107 75.5 -182.5t181.5 -75.5 q107 0 182.5 75.5t75.5 182.5t-75.5 182t-182.5 75t-182 -75.5t-75 -181.5z" />
<glyph unicode="&#xe063;" d="M1 600q0 122 47.5 233t127.5 191t191 127.5t233 47.5t233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233zM173 600q0 -177 125.5 -302t301.5 -125v854q-176 0 -301.5 -125 t-125.5 -302z" />
<glyph unicode="&#xe064;" d="M117 406q0 94 34 186t88.5 172.5t112 159t115 177t87.5 194.5q21 -71 57.5 -142.5t76 -130.5t83 -118.5t82 -117t70 -116t50 -125.5t18.5 -136q0 -89 -39 -165.5t-102 -126.5t-140 -79.5t-156 -33.5q-114 6 -211.5 53t-161.5 138.5t-64 210.5zM243 414q14 -82 59.5 -136 t136.5 -80l16 98q-7 6 -18 17t-34 48t-33 77q-15 73 -14 143.5t10 122.5l9 51q-92 -110 -119.5 -185t-12.5 -156z" />
<glyph unicode="&#xe064;" d="M117 406q0 94 34 186t88.5 172.5t112 159t115 177t87.5 194.5q21 -71 57.5 -142.5t76 -130.5t83 -118.5t82 -117t70 -116t50 -125.5t18.5 -136q0 -89 -39 -165.5t-102 -126.5t-140 -79.5t-156 -33.5q-114 6 -211.5 53t-161.5 139t-64 210zM243 414q14 -82 59.5 -136 t136.5 -80l16 98q-7 6 -18 17t-34 48t-33 77q-15 73 -14 143.5t10 122.5l9 51q-92 -110 -119.5 -185t-12.5 -156z" />
<glyph unicode="&#xe065;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5q366 -6 397 -14l-186 -186h-311q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v125l200 200v-225q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM436 341l161 50l412 412l-114 113l-405 -405zM995 1015l113 -113l113 113l-21 85l-92 28z" />
<glyph unicode="&#xe066;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h261l2 -80q-133 -32 -218 -120h-145q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5l200 153v-53q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5 zM423 524q30 38 81.5 64t103 35.5t99 14t77.5 3.5l29 -1v-209l360 324l-359 318v-216q-7 0 -19 -1t-48 -8t-69.5 -18.5t-76.5 -37t-76.5 -59t-62 -88t-39.5 -121.5z" />
<glyph unicode="&#xe067;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q60 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69l200 200v-169q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM342 632l283 -284l566 567l-136 137l-430 -431l-147 147z" />
<glyph unicode="&#xe067;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q61 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69l200 200v-169q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM342 632l283 -284l567 567l-137 137l-430 -431l-146 147z" />
<glyph unicode="&#xe068;" d="M0 603l300 296v-198h200v200h-200l300 300l295 -300h-195v-200h200v198l300 -296l-300 -300v198h-200v-200h195l-295 -300l-300 300h200v200h-200v-198z" />
<glyph unicode="&#xe069;" d="M200 50v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-1100l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5z" />
<glyph unicode="&#xe070;" d="M0 50v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-487l500 487v-1100l-500 488v-488l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5z" />
@@ -110,13 +110,13 @@
<glyph unicode="&#xe078;" d="M100 250v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5zM100 500h1100l-550 564z" />
<glyph unicode="&#xe079;" d="M185 599l592 -592l240 240l-353 353l353 353l-240 240z" />
<glyph unicode="&#xe080;" d="M272 194l353 353l-353 353l241 240l572 -571l21 -22l-1 -1v-1l-592 -591z" />
<glyph unicode="&#xe081;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM300 500h200v-200h200v200h200v200h-200v200h-200v-200h-200v-200z" />
<glyph unicode="&#xe082;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM300 500h600v200h-600v-200z" />
<glyph unicode="&#xe083;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM246 459l213 -213l141 142l141 -142l213 213l-142 141l142 141l-213 212l-141 -141l-141 142l-212 -213l141 -141z" />
<glyph unicode="&#xe081;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM300 500h200v-200h200v200h200v200h-200v200h-200v-200h-200v-200z" />
<glyph unicode="&#xe082;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM300 500h600v200h-600v-200z" />
<glyph unicode="&#xe083;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM246 459l213 -213l141 142l141 -142l213 213l-142 141l142 141l-213 212l-141 -141l-141 142l-212 -213l141 -141 z" />
<glyph unicode="&#xe084;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM270 551l276 -277l411 411l-175 174l-236 -236l-102 102z" />
<glyph unicode="&#xe085;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM363 700h144q4 0 11.5 -1t11 -1t6.5 3t3 9t1 11t3.5 8.5t3.5 6t5.5 4t6.5 2.5t9 1.5t9 0.5h11.5h12.5q19 0 30 -10t11 -26 q0 -22 -4 -28t-27 -22q-5 -1 -12.5 -3t-27 -13.5t-34 -27t-26.5 -46t-11 -68.5h200q5 3 14 8t31.5 25.5t39.5 45.5t31 69t14 94q0 51 -17.5 89t-42 58t-58.5 32t-58.5 15t-51.5 3q-105 0 -172 -56t-67 -183zM500 300h200v100h-200v-100z" />
<glyph unicode="&#xe086;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM400 300h400v100h-100v300h-300v-100h100v-200h-100v-100zM500 800h200v100h-200v-100z" />
<glyph unicode="&#xe087;" d="M0 500v200h194q15 60 36 104.5t55.5 86t88 69t126.5 40.5v200h200v-200q54 -20 113 -60t112.5 -105.5t71.5 -134.5h203v-200h-203q-25 -102 -116.5 -186t-180.5 -117v-197h-200v197q-140 27 -208 102.5t-98 200.5h-194zM290 500q24 -73 79.5 -127.5t130.5 -78.5v206h200 v-206q149 48 201 206h-201v200h200q-25 74 -76 127.5t-124 76.5v-204h-200v203q-75 -24 -130 -77.5t-79 -125.5h209v-200h-210z" />
<glyph unicode="&#xe085;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM364 700h143q4 0 11.5 -1t11 -1t6.5 3t3 9t1 11t3.5 8.5t3.5 6t5.5 4t6.5 2.5t9 1.5t9 0.5h11.5h12.5 q19 0 30 -10t11 -26q0 -22 -4 -28t-27 -22q-5 -1 -12.5 -3t-27 -13.5t-34 -27t-26.5 -46t-11 -68.5h200q5 3 14 8t31.5 25.5t39.5 45.5t31 69t14 94q0 51 -17.5 89t-42 58t-58.5 32t-58.5 15t-51.5 3q-50 0 -90.5 -12t-75 -38.5t-53.5 -74.5t-19 -114zM500 300h200v100h-200 v-100z" />
<glyph unicode="&#xe086;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM400 300h400v100h-100v300h-300v-100h100v-200h-100v-100zM500 800h200v100h-200v-100z" />
<glyph unicode="&#xe087;" d="M0 500v200h195q31 125 98.5 199.5t206.5 100.5v200h200v-200q54 -20 113 -60t112.5 -105.5t71.5 -134.5h203v-200h-203q-25 -102 -116.5 -186t-180.5 -117v-197h-200v197q-140 27 -208 102.5t-98 200.5h-194zM290 500q24 -73 79.5 -127.5t130.5 -78.5v206h200v-206 q149 48 201 206h-201v200h200q-25 74 -75.5 127t-124.5 77v-204h-200v203q-75 -23 -130 -77t-79 -126h209v-200h-210z" />
<glyph unicode="&#xe088;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM356 465l135 135 l-135 135l109 109l135 -135l135 135l109 -109l-135 -135l135 -135l-109 -109l-135 135l-135 -135z" />
<glyph unicode="&#xe089;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM322 537l141 141 l87 -87l204 205l142 -142l-346 -345z" />
<glyph unicode="&#xe090;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -115 62 -215l568 567q-100 62 -216 62q-171 0 -292.5 -121.5t-121.5 -292.5zM391 245q97 -59 209 -59q171 0 292.5 121.5t121.5 292.5 q0 112 -59 209z" />
@@ -127,14 +127,14 @@
<glyph unicode="&#xe095;" d="M0 200q6 132 41 238.5t103.5 193t184 138t271.5 59.5v271l600 -453l-600 -448v301q-95 -2 -183 -20t-170 -52t-147 -92.5t-100 -135.5z" />
<glyph unicode="&#xe096;" d="M0 0v400l129 -129l294 294l142 -142l-294 -294l129 -129h-400zM635 777l142 -142l294 294l129 -129v400h-400l129 -129z" />
<glyph unicode="&#xe097;" d="M34 176l295 295l-129 129h400v-400l-129 130l-295 -295zM600 600v400l129 -129l295 295l142 -141l-295 -295l129 -130h-400z" />
<glyph unicode="&#xe101;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5t224.5 -45.5t184 -123t123 -184t45.5 -224.5t-45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5zM456 851l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5 t21.5 34.5l58 302q4 20 -8 34.5t-33 14.5h-207q-20 0 -32 -14.5t-8 -34.5zM500 300h200v100h-200v-100z" />
<glyph unicode="&#xe102;" d="M0 800h100v-200h400v300h200v-300h400v200h100v100h-111v6t-1 15t-3 18l-34 172q-11 39 -41.5 63t-69.5 24q-32 0 -61 -17l-239 -144q-22 -13 -40 -35q-19 24 -40 36l-238 144q-33 18 -62 18q-39 0 -69.5 -23t-40.5 -61l-35 -177q-2 -8 -3 -18t-1 -15v-6h-111v-100z M100 0h400v400h-400v-400zM200 900q-3 0 14 48t35 96l18 47l214 -191h-281zM700 0v400h400v-400h-400zM731 900l202 197q5 -12 12 -32.5t23 -64t25 -72t7 -28.5h-269z" />
<glyph unicode="&#xe101;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5t224.5 -45.5t184 -123t123 -184t45.5 -224.5t-45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5zM456 851l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5 t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5h-207q-21 0 -33 -14.5t-8 -34.5zM500 300h200v100h-200v-100z" />
<glyph unicode="&#xe102;" d="M0 800h100v-200h400v300h200v-300h400v200h100v100h-111q1 1 1 6.5t-1.5 15t-3.5 17.5l-34 172q-11 39 -41.5 63t-69.5 24q-32 0 -61 -17l-239 -144q-22 -13 -40 -35q-19 24 -40 36l-238 144q-33 18 -62 18q-39 0 -69.5 -23t-40.5 -61l-35 -177q-2 -8 -3 -18t-1 -15v-6 h-111v-100zM100 0h400v400h-400v-400zM200 900q-3 0 14 48t36 96l18 47l213 -191h-281zM700 0v400h400v-400h-400zM731 900l202 197q5 -12 12 -32.5t23 -64t25 -72t7 -28.5h-269z" />
<glyph unicode="&#xe103;" d="M0 -22v143l216 193q-9 53 -13 83t-5.5 94t9 113t38.5 114t74 124q47 60 99.5 102.5t103 68t127.5 48t145.5 37.5t184.5 43.5t220 58.5q0 -189 -22 -343t-59 -258t-89 -181.5t-108.5 -120t-122 -68t-125.5 -30t-121.5 -1.5t-107.5 12.5t-87.5 17t-56.5 7.5l-99 -55z M238.5 300.5q19.5 -6.5 86.5 76.5q55 66 367 234q70 38 118.5 69.5t102 79t99 111.5t86.5 148q22 50 24 60t-6 19q-7 5 -17 5t-26.5 -14.5t-33.5 -39.5q-35 -51 -113.5 -108.5t-139.5 -89.5l-61 -32q-369 -197 -458 -401q-48 -111 -28.5 -117.5z" />
<glyph unicode="&#xe104;" d="M111 408q0 -33 5 -63q9 -56 44 -119.5t105 -108.5q31 -21 64 -16t62 23.5t57 49.5t48 61.5t35 60.5q32 66 39 184.5t-13 157.5q79 -80 122 -164t26 -184q-5 -33 -20.5 -69.5t-37.5 -80.5q-10 -19 -14.5 -29t-12 -26t-9 -23.5t-3 -19t2.5 -15.5t11 -9.5t19.5 -5t30.5 2.5 t42 8q57 20 91 34t87.5 44.5t87 64t65.5 88.5t47 122q38 172 -44.5 341.5t-246.5 278.5q22 -44 43 -129q39 -159 -32 -154q-15 2 -33 9q-79 33 -120.5 100t-44 175.5t48.5 257.5q-13 -8 -34 -23.5t-72.5 -66.5t-88.5 -105.5t-60 -138t-8 -166.5q2 -12 8 -41.5t8 -43t6 -39.5 t3.5 -39.5t-1 -33.5t-6 -31.5t-13.5 -24t-21 -20.5t-31 -12q-38 -10 -67 13t-40.5 61.5t-15 81.5t10.5 75q-52 -46 -83.5 -101t-39 -107t-7.5 -85z" />
<glyph unicode="&#xe105;" d="M-61 600l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5t145.5 -23.5t132.5 -59t116.5 -83.5t97 -90t74.5 -85.5t49 -63.5t20 -30l26 -40l-26 -40q-6 -10 -20 -30t-49 -63.5t-74.5 -85.5t-97 -90t-116.5 -83.5t-132.5 -59t-145.5 -23.5 t-145.5 23.5t-132.5 59t-116.5 83.5t-97 90t-74.5 85.5t-49 63.5t-20 30zM120 600q7 -10 40.5 -58t56 -78.5t68 -77.5t87.5 -75t103 -49.5t125 -21.5t123.5 20t100.5 45.5t85.5 71.5t66.5 75.5t58 81.5t47 66q-1 1 -28.5 37.5t-42 55t-43.5 53t-57.5 63.5t-58.5 54 q49 -74 49 -163q0 -124 -88 -212t-212 -88t-212 88t-88 212q0 85 46 158q-102 -87 -226 -258zM377 656q49 -124 154 -191l105 105q-37 24 -75 72t-57 84l-20 36z" />
<glyph unicode="&#xe106;" d="M-61 600l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5q61 0 121 -17l37 142h148l-314 -1200h-148l37 143q-82 21 -165 71.5t-140 102t-109.5 112t-72 88.5t-29.5 43zM120 600q210 -282 393 -336l37 141q-107 18 -178.5 101.5t-71.5 193.5 q0 85 46 158q-102 -87 -226 -258zM377 656q49 -124 154 -191l47 47l23 87q-30 28 -59 69t-44 68l-14 26zM780 161l38 145q22 15 44.5 34t46 44t40.5 44t41 50.5t33.5 43.5t33 44t24.5 34q-97 127 -140 175l39 146q67 -54 131.5 -125.5t87.5 -103.5t36 -52l26 -40l-26 -40 q-7 -12 -25.5 -38t-63.5 -79.5t-95.5 -102.5t-124 -100t-146.5 -79z" />
<glyph unicode="&#xe107;" d="M-97.5 34q13.5 -34 50.5 -34h1294q37 0 50.5 35.5t-7.5 67.5l-642 1056q-20 33 -48 36t-48 -29l-642 -1066q-21 -32 -7.5 -66zM155 200l445 723l445 -723h-345v100h-200v-100h-345zM500 600l100 -300l100 300v100h-200v-100z" />
<glyph unicode="&#xe108;" d="M100 262v41q0 20 11 44.5t26 38.5l363 325v339q0 62 44 106t106 44t106 -44t44 -106v-339l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -91 100 -113v-64q0 -21 -13 -29t-32 1l-94 78h-222l-94 -78q-19 -9 -32 -1t-13 29v64 q0 22 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5z" />
<glyph unicode="&#xe107;" d="M-97.5 34q13.5 -34 50.5 -34h1294q37 0 50.5 35.5t-7.5 67.5l-642 1056q-20 34 -48 36.5t-48 -29.5l-642 -1066q-21 -32 -7.5 -66zM155 200l445 723l445 -723h-345v100h-200v-100h-345zM500 600l100 -300l100 300v100h-200v-100z" />
<glyph unicode="&#xe108;" d="M100 262v41q0 20 11 44.5t26 38.5l363 325v339q0 62 44 106t106 44t106 -44t44 -106v-339l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -91 100 -113v-64q0 -20 -13 -28.5t-32 0.5l-94 78h-222l-94 -78q-19 -9 -32 -0.5t-13 28.5 v64q0 22 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5z" />
<glyph unicode="&#xe109;" d="M0 50q0 -20 14.5 -35t35.5 -15h1000q21 0 35.5 15t14.5 35v750h-1100v-750zM0 900h1100v150q0 21 -14.5 35.5t-35.5 14.5h-150v100h-100v-100h-500v100h-100v-100h-150q-21 0 -35.5 -14.5t-14.5 -35.5v-150zM100 100v100h100v-100h-100zM100 300v100h100v-100h-100z M100 500v100h100v-100h-100zM300 100v100h100v-100h-100zM300 300v100h100v-100h-100zM300 500v100h100v-100h-100zM500 100v100h100v-100h-100zM500 300v100h100v-100h-100zM500 500v100h100v-100h-100zM700 100v100h100v-100h-100zM700 300v100h100v-100h-100zM700 500 v100h100v-100h-100zM900 100v100h100v-100h-100zM900 300v100h100v-100h-100zM900 500v100h100v-100h-100z" />
<glyph unicode="&#xe110;" d="M0 200v200h259l600 600h241v198l300 -295l-300 -300v197h-159l-600 -600h-341zM0 800h259l122 -122l141 142l-181 180h-341v-200zM678 381l141 142l122 -123h159v198l300 -295l-300 -300v197h-241z" />
<glyph unicode="&#xe111;" d="M0 400v600q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-596l-304 -300v300h-100q-41 0 -70.5 29.5t-29.5 70.5z" />
@@ -148,33 +148,33 @@
<glyph unicode="&#xe119;" d="M302 300h198v600h-198l298 300l298 -300h-198v-600h198l-298 -300z" />
<glyph unicode="&#xe120;" d="M0 600l300 298v-198h600v198l300 -298l-300 -297v197h-600v-197z" />
<glyph unicode="&#xe121;" d="M0 100v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM31 400l172 739q5 22 23 41.5t38 19.5h672q19 0 37.5 -22.5t23.5 -45.5l172 -732h-1138zM800 100h100v100h-100v-100z M1000 100h100v100h-100v-100z" />
<glyph unicode="&#xe122;" d="M-101 600v50q0 24 25 49t50 38l25 13v-250l-11 5.5t-24 14t-30 21.5t-24 27.5t-11 31.5zM99 500v250v5q0 13 0.5 18.5t2.5 13t8 10.5t15 3h200l675 250v-850l-675 200h-38l47 -276q2 -12 -3 -17.5t-11 -6t-21 -0.5h-8h-83q-20 0 -34.5 14t-18.5 35q-56 337 -56 351z M1100 200v850q0 21 14.5 35.5t35.5 14.5q20 0 35 -14.5t15 -35.5v-850q0 -20 -15 -35t-35 -15q-21 0 -35.5 15t-14.5 35z" />
<glyph unicode="&#xe123;" d="M74 350q0 21 13.5 35.5t33.5 14.5h17l118 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3 32t29 13h94q20 0 29 -10.5t3 -29.5l-18 -37q83 -19 144 -82.5t76 -140.5l63 -327l118 -173h17q20 0 33.5 -14.5t13.5 -35.5q0 -20 -13 -40t-31 -27q-22 -9 -63 -23t-167.5 -37 t-251.5 -23t-245.5 20.5t-178.5 41.5l-58 20q-18 7 -31 27.5t-13 40.5zM497 110q12 -49 40 -79.5t63 -30.5t63 30.5t39 79.5q-48 -6 -102 -6t-103 6z" />
<glyph unicode="&#xe122;" d="M-101 600v50q0 24 25 49t50 38l25 13v-250l-11 5.5t-24 14t-30 21.5t-24 27.5t-11 31.5zM100 500v250v8v8v7t0.5 7t1.5 5.5t2 5t3 4t4.5 3.5t6 1.5t7.5 0.5h200l675 250v-850l-675 200h-38l47 -276q2 -12 -3 -17.5t-11 -6t-21 -0.5h-8h-83q-20 0 -34.5 14t-18.5 35 q-55 337 -55 351zM1100 200v850q0 21 14.5 35.5t35.5 14.5q20 0 35 -14.5t15 -35.5v-850q0 -20 -15 -35t-35 -15q-21 0 -35.5 15t-14.5 35z" />
<glyph unicode="&#xe123;" d="M74 350q0 21 13.5 35.5t33.5 14.5h18l117 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3 32t29 13h94q20 0 29 -10.5t3 -29.5q-18 -36 -18 -37q83 -19 144 -82.5t76 -140.5l63 -327l118 -173h17q20 0 33.5 -14.5t13.5 -35.5q0 -20 -13 -40t-31 -27q-8 -3 -23 -8.5 t-65 -20t-103 -25t-132.5 -19.5t-158.5 -9q-125 0 -245.5 20.5t-178.5 40.5l-58 20q-18 7 -31 27.5t-13 40.5zM497 110q12 -49 40 -79.5t63 -30.5t63 30.5t39 79.5q-48 -6 -102 -6t-103 6z" />
<glyph unicode="&#xe124;" d="M21 445l233 -45l-78 -224l224 78l45 -233l155 179l155 -179l45 233l224 -78l-78 224l234 45l-180 155l180 156l-234 44l78 225l-224 -78l-45 233l-155 -180l-155 180l-45 -233l-224 78l78 -225l-233 -44l179 -156z" />
<glyph unicode="&#xe125;" d="M0 200h200v600h-200v-600zM300 275q0 -75 100 -75h61q123 -100 139 -100h250q46 0 83 57l238 344q29 31 29 74v100q0 44 -30.5 84.5t-69.5 40.5h-328q28 118 28 125v150q0 44 -30.5 84.5t-69.5 40.5h-50q-27 0 -51 -20t-38 -48l-96 -198l-145 -196q-20 -26 -20 -63v-400z M400 300v375l150 212l100 213h50v-175l-50 -225h450v-125l-250 -375h-214l-136 100h-100z" />
<glyph unicode="&#xe126;" d="M0 400v600h200v-600h-200zM300 525v400q0 75 100 75h61q123 100 139 100h250q46 0 83 -57l238 -344q29 -31 29 -74v-100q0 -44 -30.5 -84.5t-69.5 -40.5h-328q28 -118 28 -125v-150q0 -44 -30.5 -84.5t-69.5 -40.5h-50q-27 0 -51 20t-38 48l-96 198l-145 196 q-20 26 -20 63zM400 525l150 -212l100 -213h50v175l-50 225h450v125l-250 375h-214l-136 -100h-100v-375z" />
<glyph unicode="&#xe125;" d="M0 200h200v600h-200v-600zM300 275q0 -75 100 -75h61q124 -100 139 -100h250q46 0 83 57l238 344q29 31 29 74v100q0 44 -30.5 84.5t-69.5 40.5h-328q28 118 28 125v150q0 44 -30.5 84.5t-69.5 40.5h-50q-27 0 -51 -20t-38 -48l-96 -198l-145 -196q-20 -26 -20 -63v-400z M400 300v375l150 213l100 212h50v-175l-50 -225h450v-125l-250 -375h-214l-136 100h-100z" />
<glyph unicode="&#xe126;" d="M0 400v600h200v-600h-200zM300 525v400q0 75 100 75h61q124 100 139 100h250q46 0 83 -57l238 -344q29 -31 29 -74v-100q0 -44 -30.5 -84.5t-69.5 -40.5h-328q28 -118 28 -125v-150q0 -44 -30.5 -84.5t-69.5 -40.5h-50q-27 0 -51 20t-38 48l-96 198l-145 196 q-20 26 -20 63zM400 525l150 -212l100 -213h50v175l-50 225h450v125l-250 375h-214l-136 -100h-100v-375z" />
<glyph unicode="&#xe127;" d="M8 200v600h200v-600h-200zM308 275v525q0 17 14 35.5t28 28.5l14 9l362 230q14 6 25 6q17 0 29 -12l109 -112q14 -14 14 -34q0 -18 -11 -32l-85 -121h302q85 0 138.5 -38t53.5 -110t-54.5 -111t-138.5 -39h-107l-130 -339q-7 -22 -20.5 -41.5t-28.5 -19.5h-341 q-7 0 -90 81t-83 94zM408 289l100 -89h293l131 339q6 21 19.5 41t28.5 20h203q16 0 25 15t9 36q0 20 -9 34.5t-25 14.5h-457h-6.5h-7.5t-6.5 0.5t-6 1t-5 1.5t-5.5 2.5t-4 4t-4 5.5q-5 12 -5 20q0 14 10 27l147 183l-86 83l-339 -236v-503z" />
<glyph unicode="&#xe128;" d="M-101 651q0 72 54 110t139 37h302l-85 121q-11 16 -11 32q0 21 14 34l109 113q13 12 29 12q11 0 25 -6l365 -230q7 -4 16.5 -10.5t26 -26t16.5 -36.5v-526q0 -13 -85.5 -93.5t-93.5 -80.5h-342q-15 0 -28.5 20t-19.5 41l-131 339h-106q-84 0 -139 39t-55 111zM-1 601h222 q15 0 28.5 -20.5t19.5 -40.5l131 -339h293l106 89v502l-342 237l-87 -83l145 -184q10 -11 10 -26q0 -11 -5 -20q-1 -3 -3.5 -5.5l-4 -4t-5 -2.5t-5.5 -1.5t-6.5 -1t-6.5 -0.5h-7.5h-6.5h-476v-100zM999 201v600h200v-600h-200z" />
<glyph unicode="&#xe129;" d="M97 719l230 -363q4 -6 10.5 -15.5t26 -25t36.5 -15.5h525q13 0 94 83t81 90v342q0 15 -20 28.5t-41 19.5l-339 131v106q0 84 -39 139t-111 55t-110 -53.5t-38 -138.5v-302l-121 84q-15 12 -33.5 11.5t-32.5 -13.5l-112 -110q-22 -22 -6 -53zM172 739l83 86l183 -146 q22 -18 47 -5q3 1 5.5 3.5l4 4t2.5 5t1.5 5.5t1 6.5t0.5 6v7.5v7v456q0 22 25 31t50 -0.5t25 -30.5v-202q0 -16 20 -29.5t41 -19.5l339 -130v-294l-89 -100h-503zM400 0v200h600v-200h-600z" />
<glyph unicode="&#xe130;" d="M1 585q-15 -31 7 -53l112 -110q13 -13 32 -13.5t34 10.5l121 85l-1 -302q0 -84 38.5 -138t110.5 -54t111 55t39 139v106l339 131q20 6 40.5 19.5t20.5 28.5v342q0 7 -81 90t-94 83h-525q-17 0 -35.5 -14t-28.5 -28l-10 -15zM76 565l237 339h503l89 -100v-294l-340 -130 q-20 -6 -40 -20t-20 -29v-202q0 -22 -25 -31t-50 0t-25 31v456v14.5t-1.5 11.5t-5 12t-9.5 7q-24 13 -46 -5l-184 -146zM305 1104v200h600v-200h-600z" />
<glyph unicode="&#xe131;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 500h300l-2 -194l402 294l-402 298v-197h-298v-201z" />
<glyph unicode="&#xe132;" d="M0 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t231.5 47.5q122 0 232.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-218 -217.5t-300 -80t-299.5 80t-217.5 217.5t-80 299.5zM200 600l400 -294v194h302v201h-300v197z" />
<glyph unicode="&#xe133;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600h200v-300h200v300h200l-300 400z" />
<glyph unicode="&#xe134;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600l300 -400l300 400h-200v300h-200v-300h-200z" />
<glyph unicode="&#xe135;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM254 780q-8 -34 5.5 -93t7.5 -87q0 -9 17 -44t16 -60q12 0 23 -5.5 t23 -15t20 -13.5q20 -10 108 -42q22 -8 53 -31.5t59.5 -38.5t57.5 -11q8 -18 -15 -55.5t-20 -57.5q12 -21 22.5 -34.5t28 -27t36.5 -17.5q0 -6 -3 -15.5t-3.5 -14.5t4.5 -17q101 -2 221 111q31 30 47 48t34 49t21 62q-14 9 -37.5 9.5t-35.5 7.5q-14 7 -49 15t-52 19 q-9 0 -39.5 -0.5t-46.5 -1.5t-39 -6.5t-39 -16.5q-50 -35 -66 -12q-4 2 -3.5 25.5t0.5 25.5q-6 13 -26.5 17t-24.5 7q2 22 -2 41t-16.5 28t-38.5 -20q-23 -25 -42 4q-19 28 -8 58q8 16 22 22q6 -1 26 -1.5t33.5 -4.5t19.5 -13q12 -19 32 -37.5t34 -27.5l14 -8q0 3 9.5 39.5 t5.5 57.5q-4 23 14.5 44.5t22.5 31.5q5 14 10 35t8.5 31t15.5 22.5t34 21.5q-6 18 10 37q8 0 23.5 -1.5t24.5 -1.5t20.5 4.5t20.5 15.5q-10 23 -30.5 42.5t-38 30t-49 26.5t-43.5 23q11 41 1 44q31 -13 58.5 -14.5t39.5 3.5l11 4q6 36 -17 53.5t-64 28.5t-56 23 q-19 -3 -37 0q-15 -12 -36.5 -21t-34.5 -12t-44 -8t-39 -6q-15 -3 -46 0t-45 -3q-20 -6 -51.5 -25.5t-34.5 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -91t-29.5 -79zM518 915q3 12 16 30.5t16 25.5q10 -10 18.5 -10t14 6t14.5 14.5t16 12.5q0 -18 8 -42.5t16.5 -44 t9.5 -23.5q-6 1 -39 5t-53.5 10t-36.5 16z" />
<glyph unicode="&#xe128;" d="M-101 651q0 72 54 110t139 38l302 -1l-85 121q-11 16 -11 32q0 21 14 34l109 113q13 12 29 12q11 0 25 -6l365 -230q7 -4 17 -10.5t26.5 -26t16.5 -36.5v-526q0 -13 -86 -93.5t-94 -80.5h-341q-16 0 -29.5 20t-19.5 41l-130 339h-107q-84 0 -139 39t-55 111zM-1 601h222 q15 0 28.5 -20.5t19.5 -40.5l131 -339h293l107 89v502l-343 237l-87 -83l145 -184q10 -11 10 -26q0 -11 -5 -20q-1 -3 -3.5 -5.5l-4 -4t-5 -2.5t-5.5 -1.5t-6.5 -1t-6.5 -0.5h-7.5h-6.5h-476v-100zM1000 201v600h200v-600h-200z" />
<glyph unicode="&#xe129;" d="M97 719l230 -363q4 -6 10.5 -15.5t26 -25t36.5 -15.5h525q13 0 94 83t81 90v342q0 15 -20 28.5t-41 19.5l-339 131v106q0 84 -39 139t-111 55t-110 -53.5t-38 -138.5v-302l-121 84q-15 12 -33.5 11.5t-32.5 -13.5l-112 -110q-22 -22 -6 -53zM172 739l83 86l183 -146 q22 -18 47 -5q3 1 5.5 3.5l4 4t2.5 5t1.5 5.5t1 6.5t0.5 6.5v7.5v6.5v456q0 22 25 31t50 -0.5t25 -30.5v-202q0 -16 20 -29.5t41 -19.5l339 -130v-294l-89 -100h-503zM400 0v200h600v-200h-600z" />
<glyph unicode="&#xe130;" d="M2 585q-16 -31 6 -53l112 -110q13 -13 32 -13.5t34 10.5l121 85q0 -51 -0.5 -153.5t-0.5 -148.5q0 -84 38.5 -138t110.5 -54t111 55t39 139v106l339 131q20 6 40.5 19.5t20.5 28.5v342q0 7 -81 90t-94 83h-525q-17 0 -35.5 -14t-28.5 -28l-10 -15zM77 565l236 339h503 l89 -100v-294l-340 -130q-20 -6 -40 -20t-20 -29v-202q0 -22 -25 -31t-50 0t-25 31v456v14.5t-1.5 11.5t-5 12t-9.5 7q-24 13 -46 -5l-184 -146zM305 1104v200h600v-200h-600z" />
<glyph unicode="&#xe131;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM298 701l2 -201h300l-2 -194l402 294l-402 298v-197h-300z" />
<glyph unicode="&#xe132;" d="M0 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t231.5 47.5q122 0 232.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-218 -217.5t-300 -80t-299.5 80t-217.5 217.5t-80 299.5zM200 600l402 -294l-2 194h300l2 201h-300v197z" />
<glyph unicode="&#xe133;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600h200v-300h200v300h200l-300 400z" />
<glyph unicode="&#xe134;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600l300 -400l300 400h-200v300h-200v-300h-200z" />
<glyph unicode="&#xe135;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM254 780q-8 -33 5.5 -92.5t7.5 -87.5q0 -9 17 -44t16 -60 q12 0 23 -5.5t23 -15t20 -13.5q24 -12 108 -42q22 -8 53 -31.5t59.5 -38.5t57.5 -11q8 -18 -15 -55t-20 -57q42 -71 87 -80q0 -6 -3 -15.5t-3.5 -14.5t4.5 -17q104 -3 221 112q30 29 47 47t34.5 49t20.5 62q-14 9 -37 9.5t-36 7.5q-14 7 -49 15t-52 19q-9 0 -39.5 -0.5 t-46.5 -1.5t-39 -6.5t-39 -16.5q-50 -35 -66 -12q-4 2 -3.5 25.5t0.5 25.5q-6 13 -26.5 17t-24.5 7q2 22 -2 41t-16.5 28t-38.5 -20q-23 -25 -42 4q-19 28 -8 58q6 16 22 22q6 -1 26 -1.5t33.5 -4t19.5 -13.5q12 -19 32 -37.5t34 -27.5l14 -8q0 3 9.5 39.5t5.5 57.5 q-4 23 14.5 44.5t22.5 31.5q5 14 10 35t8.5 31t15.5 22.5t34 21.5q-6 18 10 37q8 0 23.5 -1.5t24.5 -1.5t20.5 4.5t20.5 15.5q-10 23 -30.5 42.5t-38 30t-49 26.5t-43.5 23q11 39 2 44q31 -13 58 -14.5t39 3.5l11 4q7 36 -16.5 53.5t-64.5 28.5t-56 23q-19 -3 -37 0 q-15 -12 -36.5 -21t-34.5 -12t-44 -8t-39 -6q-15 -3 -45.5 0.5t-45.5 -2.5q-21 -7 -52 -26.5t-34 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -90.5t-29.5 -79.5zM518 916q3 12 16 30t16 25q10 -10 18.5 -10t14 6t14.5 14.5t16 12.5q0 -24 17 -66.5t17 -43.5 q-9 2 -31 5t-36 5t-32 8t-30 14zM692 1003h1h-1z" />
<glyph unicode="&#xe136;" d="M0 164.5q0 21.5 15 37.5l600 599q-33 101 6 201.5t135 154.5q164 92 306 -9l-259 -138l145 -232l251 126q13 -175 -151 -267q-123 -70 -253 -23l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5z" />
<glyph unicode="&#xe137;" horiz-adv-x="1220" d="M0 196v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM0 596v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5zM0 996v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM600 596h500v100h-500v-100zM800 196h300v100h-300v-100zM900 996h200v100h-200v-100z" />
<glyph unicode="&#xe138;" d="M100 1100v100h1000v-100h-1000zM150 1000h900l-350 -500v-300l-200 -200v500z" />
<glyph unicode="&#xe139;" d="M0 200v200h1200v-200q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM0 500v400q0 41 29.5 70.5t70.5 29.5h300v100q0 41 29.5 70.5t70.5 29.5h200q41 0 70.5 -29.5t29.5 -70.5v-100h300q41 0 70.5 -29.5t29.5 -70.5v-400h-500v100h-200v-100h-500z M500 1000h200v100h-200v-100z" />
<glyph unicode="&#xe140;" d="M0 0v400l129 -129l200 200l142 -142l-200 -200l129 -129h-400zM0 800l129 129l200 -200l142 142l-200 200l129 129h-400v-400zM729 329l142 142l200 -200l129 129v-400h-400l129 129zM729 871l200 200l-129 129h400v-400l-129 129l-200 -200z" />
<glyph unicode="&#xe141;" d="M0 596q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM182 596q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM291 655 q0 23 15.5 38.5t38.5 15.5t39 -16t16 -38q0 -23 -16 -39t-39 -16q-22 0 -38 16t-16 39zM400 850q0 22 16 38.5t39 16.5q22 0 38 -16t16 -39t-16 -39t-38 -16q-23 0 -39 16.5t-16 38.5zM513 609q0 32 21 56.5t52 29.5l122 126l1 1q-9 14 -9 28q0 22 16 38.5t39 16.5 q22 0 38 -16t16 -39t-16 -39t-38 -16q-16 0 -29 10l-55 -145q17 -22 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5q-37 0 -62.5 25.5t-25.5 61.5zM800 655q0 22 16 38t39 16t38.5 -15.5t15.5 -38.5t-16 -39t-38 -16q-23 0 -39 16t-16 39z" />
<glyph unicode="&#xe142;" d="M-40 375q-13 -95 35 -173q35 -57 94 -89t129 -32q63 0 119 28q33 16 65 40.5t52.5 45.5t59.5 64q40 44 57 61l394 394q35 35 47 84t-3 96q-27 87 -117 104q-20 2 -29 2q-46 0 -79.5 -17t-67.5 -51l-388 -396l-7 -7l69 -67l377 373q20 22 39 38q23 23 50 23q38 0 53 -36 q16 -39 -20 -75l-547 -547q-52 -52 -125 -52q-55 0 -100 33t-54 96q-5 35 2.5 66t31.5 63t42 50t56 54q24 21 44 41l348 348q52 52 82.5 79.5t84 54t107.5 26.5q25 0 48 -4q95 -17 154 -94.5t51 -175.5q-7 -101 -98 -192l-252 -249l-253 -256l7 -7l69 -60l517 511 q67 67 95 157t11 183q-16 87 -67 154t-130 103q-69 33 -152 33q-107 0 -197 -55q-40 -24 -111 -95l-512 -512q-68 -68 -81 -163z" />
<glyph unicode="&#xe143;" d="M79 784q0 131 99 229.5t230 98.5q144 0 242 -129q103 129 245 129q130 0 227 -98.5t97 -229.5q0 -46 -17.5 -91t-61 -99t-77 -89.5t-104.5 -105.5q-197 -191 -293 -322l-17 -23l-16 23q-43 58 -100 122.5t-92 99.5t-101 100l-84.5 84.5t-68 74t-60 78t-33.5 70.5t-15 78z M250 784q0 -27 30.5 -70t61.5 -75.5t95 -94.5l22 -22q93 -90 190 -201q82 92 195 203l12 12q64 62 97.5 97t64.5 79t31 72q0 71 -48 119.5t-106 48.5q-73 0 -131 -83l-118 -171l-114 174q-51 80 -124 80q-59 0 -108.5 -49.5t-49.5 -118.5z" />
<glyph unicode="&#xe144;" d="M57 353q0 -94 66 -160l141 -141q66 -66 159 -66q95 0 159 66l283 283q66 66 66 159t-66 159l-141 141q-12 12 -19 17l-105 -105l212 -212l-389 -389l-247 248l95 95l-18 18q-46 45 -75 101l-55 -55q-66 -66 -66 -159zM269 706q0 -93 66 -159l141 -141l19 -17l105 105 l-212 212l389 389l247 -247l-95 -96l18 -18q46 -46 77 -99l29 29q35 35 62.5 88t27.5 96q0 93 -66 159l-141 141q-66 66 -159 66q-95 0 -159 -66l-283 -283q-66 -64 -66 -159z" />
<glyph unicode="&#xe141;" d="M0 596q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM182 596q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM291 655 q0 23 15.5 38.5t38.5 15.5t39 -16t16 -38q0 -23 -16 -39t-39 -16q-22 0 -38 16t-16 39zM400 850q0 22 16 38.5t39 16.5q22 0 38 -16t16 -39t-16 -39t-38 -16q-23 0 -39 16.5t-16 38.5zM514 609q0 32 20.5 56.5t51.5 29.5l122 126l1 1q-9 14 -9 28q0 22 16 38.5t39 16.5 q22 0 38 -16t16 -39t-16 -39t-38 -16q-14 0 -29 10l-55 -145q17 -22 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5t-61.5 25.5t-25.5 61.5zM800 655q0 22 16 38t39 16t38.5 -15.5t15.5 -38.5t-16 -39t-38 -16q-23 0 -39 16t-16 39z" />
<glyph unicode="&#xe142;" d="M-40 375q-13 -95 35 -173q35 -57 94 -89t129 -32q63 0 119 28q33 16 65 40.5t52.5 45.5t59.5 64q40 44 57 61l394 394q35 35 47 84t-3 96q-27 87 -117 104q-20 2 -29 2q-46 0 -78.5 -16.5t-67.5 -51.5l-389 -396l-7 -7l69 -67l377 373q20 22 39 38q23 23 50 23 q38 0 53 -36q16 -39 -20 -75l-547 -547q-52 -52 -125 -52q-55 0 -100 33t-54 96q-5 35 2.5 66t31.5 63t42 50t56 54q24 21 44 41l348 348q52 52 82.5 79.5t84 54t107.5 26.5q25 0 48 -4q95 -17 154 -94.5t51 -175.5q-7 -101 -98 -192l-252 -249l-253 -256l7 -7l69 -60 l517 511q67 67 95 157t11 183q-16 87 -67 154t-130 103q-69 33 -152 33q-107 0 -197 -55q-40 -24 -111 -95l-512 -512q-68 -68 -81 -163z" />
<glyph unicode="&#xe143;" d="M80 784q0 131 98.5 229.5t230.5 98.5q143 0 241 -129q103 129 246 129q129 0 226 -98.5t97 -229.5q0 -46 -17.5 -91t-61 -99t-77 -89.5t-104.5 -105.5q-197 -191 -293 -322l-17 -23l-16 23q-43 58 -100 122.5t-92 99.5t-101 100q-71 70 -104.5 105.5t-77 89.5t-61 99 t-17.5 91zM250 784q0 -27 30.5 -70t61.5 -75.5t95 -94.5l22 -22q93 -90 190 -201q82 92 195 203l12 12q64 62 97.5 97t64.5 79t31 72q0 71 -48 119.5t-105 48.5q-74 0 -132 -83l-118 -171l-114 174q-51 80 -123 80q-60 0 -109.5 -49.5t-49.5 -118.5z" />
<glyph unicode="&#xe144;" d="M57 353q0 -95 66 -159l141 -142q68 -66 159 -66q93 0 159 66l283 283q66 66 66 159t-66 159l-141 141q-8 9 -19 17l-105 -105l212 -212l-389 -389l-247 248l95 95l-18 18q-46 45 -75 101l-55 -55q-66 -66 -66 -159zM269 706q0 -93 66 -159l141 -141q7 -7 19 -17l105 105 l-212 212l389 389l247 -247l-95 -96l18 -17q47 -49 77 -100l29 29q35 35 62.5 88t27.5 96q0 93 -66 159l-141 141q-66 66 -159 66q-95 0 -159 -66l-283 -283q-66 -64 -66 -159z" />
<glyph unicode="&#xe145;" d="M200 100v953q0 21 30 46t81 48t129 38t163 15t162 -15t127 -38t79 -48t29 -46v-953q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-41 0 -70.5 29.5t-29.5 70.5zM300 300h600v700h-600v-700zM496 150q0 -43 30.5 -73.5t73.5 -30.5t73.5 30.5t30.5 73.5t-30.5 73.5t-73.5 30.5 t-73.5 -30.5t-30.5 -73.5z" />
<glyph unicode="&#xe146;" d="M0 0l303 380l207 208l-210 212h300l267 279l-35 36q-15 14 -15 35t15 35q14 15 35 15t35 -15l283 -282q15 -15 15 -36t-15 -35q-14 -15 -35 -15t-35 15l-36 35l-279 -267v-300l-212 210l-208 -207z" />
<glyph unicode="&#xe148;" d="M295 433h139q5 -77 48.5 -126.5t117.5 -64.5v335l-27 7q-46 14 -79 26.5t-72 36t-62.5 52t-40 72.5t-16.5 99q0 92 44 159.5t109 101t144 40.5v78h100v-79q38 -4 72.5 -13.5t75.5 -31.5t71 -53.5t51.5 -84t24.5 -118.5h-159q-8 72 -35 109.5t-101 50.5v-307l64 -14 q34 -7 64 -16.5t70 -31.5t67.5 -52t47.5 -80.5t20 -112.5q0 -139 -89 -224t-244 -96v-77h-100v78q-152 17 -237 104q-40 40 -52.5 93.5t-15.5 139.5zM466 889q0 -29 8 -51t16.5 -34t29.5 -22.5t31 -13.5t38 -10q7 -2 11 -3v274q-61 -8 -97.5 -37.5t-36.5 -102.5zM700 237 q170 18 170 151q0 64 -44 99.5t-126 60.5v-311z" />
<glyph unicode="&#xe149;" d="M100 600v100h166q-24 49 -44 104q-10 26 -14.5 55.5t-3 72.5t25 90t68.5 87q97 88 263 88q129 0 230 -89t101 -208h-153q0 52 -34 89.5t-74 51.5t-76 14q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -11 2.5 -24.5t5.5 -24t9.5 -26.5t10.5 -25t14 -27.5t14 -25.5 t15.5 -27t13.5 -24h242v-100h-197q8 -50 -2.5 -115t-31.5 -94q-41 -59 -99 -113q35 11 84 18t70 7q32 1 102 -16t104 -17q76 0 136 30l50 -147q-41 -25 -80.5 -36.5t-59 -13t-61.5 -1.5q-23 0 -128 33t-155 29q-39 -4 -82 -17t-66 -25l-24 -11l-55 145l16.5 11t15.5 10 t13.5 9.5t14.5 12t14.5 14t17.5 18.5q48 55 54 126.5t-30 142.5h-221z" />
<glyph unicode="&#xe148;" d="M295 433h139q5 -77 48.5 -126.5t117.5 -64.5v335q-6 1 -15.5 4t-11.5 3q-46 14 -79 26.5t-72 36t-62.5 52t-40 72.5t-16.5 99q0 92 44 159.5t109 101t144 40.5v78h100v-79q38 -4 72.5 -13.5t75.5 -31.5t71 -53.5t51.5 -84t24.5 -118.5h-159q-8 72 -35 109.5t-101 50.5 v-307l64 -14q34 -7 64 -16.5t70 -31.5t67.5 -52t47.5 -80.5t20 -112.5q0 -139 -89 -224t-244 -96v-77h-100v78q-152 17 -237 104q-40 40 -52.5 93.5t-15.5 139.5zM466 889q0 -29 8 -51t16.5 -34t29.5 -22.5t31 -13.5t38 -10q7 -2 11 -3v274q-61 -8 -97.5 -37.5t-36.5 -102.5 zM700 237q170 18 170 151q0 64 -44 99.5t-126 60.5v-311z" />
<glyph unicode="&#xe149;" d="M100 600v100h166q-24 49 -44 104q-10 26 -14.5 55.5t-3 72.5t25 90t68.5 87q97 88 263 88q129 0 230 -89t101 -208h-153q0 52 -34 89.5t-74 51.5t-76 14q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -28 16.5 -69.5t28 -62.5t41.5 -72h241v-100h-197q8 -50 -2.5 -115 t-31.5 -94q-41 -59 -99 -113q35 11 84 18t70 7q33 1 103 -16t103 -17q76 0 136 30l50 -147q-41 -25 -80.5 -36.5t-59 -13t-61.5 -1.5q-23 0 -128 33t-155 29q-39 -4 -82 -17t-66 -25l-24 -11l-55 145l16.5 11t15.5 10t13.5 9.5t14.5 12t14.5 14t17.5 18.5q48 55 54 126.5 t-30 142.5h-221z" />
<glyph unicode="&#xe150;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM602 900l298 300l298 -300h-198v-900h-200v900h-198z" />
<glyph unicode="&#xe151;" d="M2 300h198v900h200v-900h198l-298 -300zM700 0v200h100v-100h200v-100h-300zM700 400v100h300v-200h-99v-100h-100v100h99v100h-200zM700 700v500h300v-500h-100v100h-100v-100h-100zM801 900h100v200h-100v-200z" />
<glyph unicode="&#xe152;" d="M2 300h198v900h200v-900h198l-298 -300zM700 0v500h300v-500h-100v100h-100v-100h-100zM700 700v200h100v-100h200v-100h-300zM700 1100v100h300v-200h-99v-100h-100v100h99v100h-200zM801 200h100v200h-100v-200z" />
@@ -187,15 +187,15 @@
<glyph unicode="&#xe159;" d="M0 400v300q0 163 117.5 281.5t282.5 118.5h300q163 0 281.5 -119t118.5 -281v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM300 700l250 -333l250 333h-500z" />
<glyph unicode="&#xe160;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q165 0 282.5 -117.5t117.5 -282.5v-300q0 -162 -118.5 -281t-281.5 -119h-300q-165 0 -282.5 118.5t-117.5 281.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM300 400h500l-250 333z" />
<glyph unicode="&#xe161;" d="M0 400v300h300v200l400 -350l-400 -350v200h-300zM500 0v200h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-500v200h400q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-400z" />
<glyph unicode="&#xe162;" d="M216 519q10 -19 32 -19h302q-155 -438 -160 -458q-5 -21 4 -32l9 -8l9 -1q13 0 26 16l538 630q15 19 6 36q-8 18 -32 16h-300q1 4 78 219.5t79 227.5q2 17 -6 27l-8 8h-9q-16 0 -25 -15q-4 -5 -98.5 -111.5t-228 -257t-209.5 -238.5q-17 -19 -7 -40z" />
<glyph unicode="&#xe162;" d="M217 519q8 -19 31 -19h302q-155 -438 -160 -458q-5 -21 4 -32l9 -8h9q14 0 26 15q11 13 274.5 321.5t264.5 308.5q14 19 5 36q-8 17 -31 17l-301 -1q1 4 78 219.5t79 227.5q2 15 -5 27l-9 9h-9q-15 0 -25 -16q-4 -6 -98 -111.5t-228.5 -257t-209.5 -237.5q-16 -19 -6 -41 z" />
<glyph unicode="&#xe163;" d="M0 400q0 -165 117.5 -282.5t282.5 -117.5h300q47 0 100 15v185h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h500v185q-14 4 -114 7.5t-193 5.5l-93 2q-165 0 -282.5 -117.5t-117.5 -282.5v-300zM600 400v300h300v200l400 -350l-400 -350v200h-300z " />
<glyph unicode="&#xe164;" d="M0 400q0 -165 117.5 -282.5t282.5 -117.5h300q163 0 281.5 117.5t118.5 282.5v98l-78 73l-122 -123v-148q0 -41 -29.5 -70.5t-70.5 -29.5h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h156l118 122l-74 78h-100q-165 0 -282.5 -117.5t-117.5 -282.5 v-300zM496 709l353 342l-149 149h500v-500l-149 149l-342 -353z" />
<glyph unicode="&#xe165;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM406 600 q0 80 57 137t137 57t137 -57t57 -137t-57 -137t-137 -57t-137 57t-57 137z" />
<glyph unicode="&#xe166;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 800l445 -500l450 500h-295v400h-300v-400h-300zM900 150h100v50h-100v-50z" />
<glyph unicode="&#xe167;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 700h300v-300h300v300h295l-445 500zM900 150h100v50h-100v-50z" />
<glyph unicode="&#xe168;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 705l305 -305l596 596l-154 155l-442 -442l-150 151zM900 150h100v50h-100v-50z" />
<glyph unicode="&#xe169;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 988l97 -98l212 213l-97 97zM200 401h700v699l-250 -239l-149 149l-212 -212l149 -149zM900 150h100v50h-100v-50z" />
<glyph unicode="&#xe170;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM200 612l212 -212l98 97l-213 212zM300 1200l239 -250l-149 -149l212 -212l149 148l248 -237v700h-699zM900 150h100v50h-100v-50z" />
<glyph unicode="&#xe169;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 988l97 -98l212 213l-97 97zM200 400l697 1l3 699l-250 -239l-149 149l-212 -212l149 -149zM900 150h100v50h-100v-50z" />
<glyph unicode="&#xe170;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM200 612l212 -212l98 97l-213 212zM300 1200l239 -250l-149 -149l212 -212l149 148l249 -237l-1 697zM900 150h100v50h-100v-50z" />
<glyph unicode="&#xe171;" d="M23 415l1177 784v-1079l-475 272l-310 -393v416h-392zM494 210l672 938l-672 -712v-226z" />
<glyph unicode="&#xe172;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-850q0 -21 -15 -35.5t-35 -14.5h-150v400h-700v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 1000h100v200h-100v-200z" />
<glyph unicode="&#xe173;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-218l-276 -275l-120 120l-126 -127h-378v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM581 306l123 123l120 -120l353 352l123 -123l-475 -476zM600 1000h100v200h-100v-200z" />
@@ -204,11 +204,11 @@
<glyph unicode="&#xe176;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-402l-200 200l-298 -298h-402v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 300h200v-300h200v300h200l-300 300zM600 1000v200h100v-200h-100z" />
<glyph unicode="&#xe177;" d="M0 250q0 -21 14.5 -35.5t35.5 -14.5h1100q21 0 35.5 14.5t14.5 35.5v550h-1200v-550zM0 900h1200v150q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-150zM100 300v200h400v-200h-400z" />
<glyph unicode="&#xe178;" d="M0 400l300 298v-198h400v-200h-400v-198zM100 800v200h100v-200h-100zM300 800v200h100v-200h-100zM500 800v200h400v198l300 -298l-300 -298v198h-400zM800 300v200h100v-200h-100zM1000 300h100v200h-100v-200z" />
<glyph unicode="&#xe179;" d="M100 700v400l50 100l50 -100v-300h100v300l50 100l50 -100v-300h100v300l50 100l50 -100v-400l-100 -203v-447q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447zM800 597q0 -29 10.5 -55.5t25 -43t29 -28.5t25.5 -18l10 -5v-397q0 -21 14.5 -35.5 t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v1106q0 31 -18 40.5t-44 -7.5l-276 -117q-25 -16 -43.5 -50.5t-18.5 -65.5v-359z" />
<glyph unicode="&#xe179;" d="M100 700v400l50 100l50 -100v-300h100v300l50 100l50 -100v-300h100v300l50 100l50 -100v-400l-100 -203v-447q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447zM800 597q0 -29 10.5 -55.5t25 -43t29 -28.5t25.5 -18l10 -5v-397q0 -21 14.5 -35.5 t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v1106q0 31 -18 40.5t-44 -7.5l-276 -116q-25 -17 -43.5 -51.5t-18.5 -65.5v-359z" />
<glyph unicode="&#xe180;" d="M100 0h400v56q-75 0 -87.5 6t-12.5 44v394h500v-394q0 -38 -12.5 -44t-87.5 -6v-56h400v56q-4 0 -11 0.5t-24 3t-30 7t-24 15t-11 24.5v888q0 22 25 34.5t50 13.5l25 2v56h-400v-56q75 0 87.5 -6t12.5 -44v-394h-500v394q0 38 12.5 44t87.5 6v56h-400v-56q4 0 11 -0.5 t24 -3t30 -7t24 -15t11 -24.5v-888q0 -22 -25 -34.5t-50 -13.5l-25 -2v-56z" />
<glyph unicode="&#xe181;" d="M0 300q0 -41 29.5 -70.5t70.5 -29.5h300q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-300q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM100 100h400l200 200h105l295 98v-298h-425l-100 -100h-375zM100 300v200h300v-200h-300zM100 600v200h300v-200h-300z M100 1000h400l200 -200v-98l295 98h105v200h-425l-100 100h-375zM700 402v163l400 133v-163z" />
<glyph unicode="&#xe182;" d="M16.5 974.5q0.5 -21.5 16 -90t46.5 -140t104 -177.5t175 -208q103 -103 207.5 -176t180 -103.5t137 -47t92.5 -16.5l31 1l163 162q16 17 13 40.5t-22 37.5l-192 136q-19 14 -45 12t-42 -19l-119 -118q-143 103 -267 227q-126 126 -227 268l118 118q17 17 20 41.5 t-11 44.5l-139 194q-14 19 -36.5 22t-40.5 -14l-162 -162q-1 -11 -0.5 -32.5z" />
<glyph unicode="&#xe183;" d="M0 50v212q0 20 10.5 45.5t24.5 39.5l365 303v50q0 4 1 10.5t12 22.5t30 28.5t60 23t97 10.5t97 -10t60 -23.5t30 -27.5t12 -24l1 -10v-50l365 -303q14 -14 24.5 -39.5t10.5 -45.5v-212q0 -21 -15 -35.5t-35 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5zM0 712 q0 -21 14.5 -33.5t34.5 -8.5l202 33q20 4 34.5 21t14.5 38v146q141 24 300 24t300 -24v-146q0 -21 14.5 -38t34.5 -21l202 -33q20 -4 34.5 8.5t14.5 33.5v200q-6 8 -19 20.5t-63 45t-112 57t-171 45t-235 20.5q-92 0 -175 -10.5t-141.5 -27t-108.5 -36.5t-81.5 -40 t-53.5 -36.5t-31 -27.5l-9 -10v-200z" />
<glyph unicode="&#xe182;" d="M16.5 974.5q0.5 -21.5 16 -90t46.5 -140t104 -177.5t175 -208q103 -103 207.5 -176t180 -103.5t137 -47t92.5 -16.5l31 1l163 162q17 18 13.5 41t-22.5 37l-192 136q-19 14 -45 12t-42 -19l-118 -118q-142 101 -268 227t-227 268l118 118q17 17 20 41.5t-11 44.5 l-139 194q-14 19 -36.5 22t-40.5 -14l-162 -162q-1 -11 -0.5 -32.5z" />
<glyph unicode="&#xe183;" d="M0 50v212q0 20 10.5 45.5t24.5 39.5l365 303v50q0 4 1 10.5t12 22.5t30 28.5t60 23t97 10.5t97 -10t60 -23.5t30 -27.5t12 -24l1 -10v-50l365 -303q14 -14 24.5 -39.5t10.5 -45.5v-212q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-20 0 -35 14.5t-15 35.5zM0 712 q0 -21 14.5 -33.5t34.5 -8.5l202 33q20 4 34.5 21t14.5 38v146q141 24 300 24t300 -24v-146q0 -21 14.5 -38t34.5 -21l202 -33q20 -4 34.5 8.5t14.5 33.5v200q-6 8 -19 20.5t-63 45t-112 57t-171 45t-235 20.5q-92 0 -175 -10.5t-141.5 -27t-108.5 -36.5t-81.5 -40 t-53.5 -36.5t-31 -27.5l-9 -10v-200z" />
<glyph unicode="&#xe184;" d="M100 0v100h1100v-100h-1100zM175 200h950l-125 150v250l100 100v400h-100v-200h-100v200h-200v-200h-100v200h-200v-200h-100v200h-100v-400l100 -100v-250z" />
<glyph unicode="&#xe185;" d="M100 0h300v400q0 41 -29.5 70.5t-70.5 29.5h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-400zM500 0v1000q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-1000h-300zM900 0v700q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-700h-300z" />
<glyph unicode="&#xe186;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v300h-200v100h200v100h-300v-300h200v-100h-200v-100zM600 300h200v100h100v300h-100v100h-200v-500 zM700 400v300h100v-300h-100z" />
@@ -221,9 +221,9 @@
<glyph unicode="&#xe193;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 700v100h300v-300h-99v-100h-100v100h99v200h-200zM201 300v100h100v-100h-100zM601 300v100h100v-100h-100z M700 700v100h200v-500h-100v400h-100z" />
<glyph unicode="&#xe194;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM400 500v200 l100 100h300v-100h-300v-200h300v-100h-300z" />
<glyph unicode="&#xe195;" d="M0 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM182 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM400 400v400h300 l100 -100v-100h-100v100h-200v-100h200v-100h-200v-100h-100zM700 400v100h100v-100h-100z" />
<glyph unicode="&#xe197;" d="M-14 494q0 -80 56.5 -137t135.5 -57h222v300h400v-300h128q120 0 205 86t85 208q0 120 -85 206.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200h200v300h200v-300 h200l-300 -300z" />
<glyph unicode="&#xe198;" d="M-14 494q0 -80 56.5 -137t135.5 -57h8l414 414l403 -403q94 26 154.5 104t60.5 178q0 121 -85 207.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200l300 300 l300 -300h-200v-300h-200v300h-200z" />
<glyph unicode="&#xe197;" d="M-14 494q0 -80 56.5 -137t135.5 -57h222v300h400v-300h128q120 0 205 86.5t85 207.5t-85 207t-205 86q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200h200v300h200v-300h200 l-300 -300z" />
<glyph unicode="&#xe198;" d="M-14 494q0 -80 56.5 -137t135.5 -57h8l414 414l403 -403q94 26 154.5 104.5t60.5 178.5q0 120 -85 206.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200l300 300 l300 -300h-200v-300h-200v300h-200z" />
<glyph unicode="&#xe199;" d="M100 200h400v-155l-75 -45h350l-75 45v155h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170z" />
<glyph unicode="&#xe200;" d="M121 700q0 -53 28.5 -97t75.5 -65q-4 -16 -4 -38q0 -74 52.5 -126.5t126.5 -52.5q56 0 100 30v-306l-75 -45h350l-75 45v306q46 -30 100 -30q74 0 126.5 52.5t52.5 126.5q0 24 -9 55q50 32 79.5 83t29.5 112q0 90 -61.5 155.5t-150.5 71.5q-26 89 -99.5 145.5 t-167.5 56.5q-116 0 -197.5 -81.5t-81.5 -197.5q0 -4 1 -12t1 -11q-14 2 -23 2q-74 0 -126.5 -52.5t-52.5 -126.5z" />
<glyph unicode="&#xe200;" d="M121 700q0 -53 28.5 -97t75.5 -65q-4 -16 -4 -38q0 -74 52.5 -126.5t126.5 -52.5q56 0 100 30v-306l-75 -45h350l-75 45v306q46 -30 100 -30q74 0 126.5 52.5t52.5 126.5q0 24 -9 55q50 32 79.5 83t29.5 112q0 90 -61.5 155.5t-150.5 71.5q-26 89 -99.5 145.5 t-167.5 56.5q-116 0 -197.5 -81.5t-81.5 -197.5q0 -4 1 -11.5t1 -11.5q-14 2 -23 2q-74 0 -126.5 -52.5t-52.5 -126.5z" />
</font>
</defs></svg>

Before

Width:  |  Height:  |  Size: 61 KiB

After

Width:  |  Height:  |  Size: 62 KiB

View File

@@ -1,13 +1,13 @@
/*!
* Bootstrap v3.1.0 (http://getbootstrap.com)
* Bootstrap v3.1.1 (http://getbootstrap.com)
* Copyright 2011-2014 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
if (typeof jQuery === 'undefined') { throw new Error('Bootstrap requires jQuery') }
if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript requires jQuery') }
/* ========================================================================
* Bootstrap: transition.js v3.1.0
* Bootstrap: transition.js v3.1.1
* http://getbootstrap.com/javascript/#transitions
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -56,7 +56,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap requires jQuery'
}(jQuery);
/* ========================================================================
* Bootstrap: alert.js v3.1.0
* Bootstrap: alert.js v3.1.1
* http://getbootstrap.com/javascript/#alerts
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -145,7 +145,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap requires jQuery'
}(jQuery);
/* ========================================================================
* Bootstrap: button.js v3.1.0
* Bootstrap: button.js v3.1.1
* http://getbootstrap.com/javascript/#buttons
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -253,7 +253,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap requires jQuery'
}(jQuery);
/* ========================================================================
* Bootstrap: carousel.js v3.1.0
* Bootstrap: carousel.js v3.1.1
* http://getbootstrap.com/javascript/#carousel
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -459,7 +459,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap requires jQuery'
}(jQuery);
/* ========================================================================
* Bootstrap: collapse.js v3.1.0
* Bootstrap: collapse.js v3.1.1
* http://getbootstrap.com/javascript/#collapse
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -630,7 +630,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap requires jQuery'
}(jQuery);
/* ========================================================================
* Bootstrap: dropdown.js v3.1.0
* Bootstrap: dropdown.js v3.1.1
* http://getbootstrap.com/javascript/#dropdowns
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -778,7 +778,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap requires jQuery'
}(jQuery);
/* ========================================================================
* Bootstrap: modal.js v3.1.0
* Bootstrap: modal.js v3.1.1
* http://getbootstrap.com/javascript/#modals
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -1022,7 +1022,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap requires jQuery'
}(jQuery);
/* ========================================================================
* Bootstrap: tooltip.js v3.1.0
* Bootstrap: tooltip.js v3.1.1
* http://getbootstrap.com/javascript/#tooltip
* Inspired by the original jQuery.tipsy by Jason Frame
* ========================================================================
@@ -1422,7 +1422,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap requires jQuery'
}(jQuery);
/* ========================================================================
* Bootstrap: popover.js v3.1.0
* Bootstrap: popover.js v3.1.1
* http://getbootstrap.com/javascript/#popovers
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -1533,7 +1533,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap requires jQuery'
}(jQuery);
/* ========================================================================
* Bootstrap: scrollspy.js v3.1.0
* Bootstrap: scrollspy.js v3.1.1
* http://getbootstrap.com/javascript/#scrollspy
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -1687,7 +1687,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap requires jQuery'
}(jQuery);
/* ========================================================================
* Bootstrap: tab.js v3.1.0
* Bootstrap: tab.js v3.1.1
* http://getbootstrap.com/javascript/#tabs
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.
@@ -1813,7 +1813,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap requires jQuery'
}(jQuery);
/* ========================================================================
* Bootstrap: affix.js v3.1.0
* Bootstrap: affix.js v3.1.1
* http://getbootstrap.com/javascript/#affix
* ========================================================================
* Copyright 2011-2014 Twitter, Inc.

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,110 @@
/*
* jQuery Hotkeys Plugin
* Copyright 2010, John Resig
* Dual licensed under the MIT or GPL Version 2 licenses.
*
* Based upon the plugin by Tzury Bar Yochay:
* http://github.com/tzuryby/hotkeys
*
* Original idea by:
* Binny V A, http://www.openjs.com/scripts/events/keyboard_shortcuts/
*/
/*
* One small change is: now keys are passed by object { keys: '...' }
* Might be useful, when you want to pass some other data to your handler
*/
(function(jQuery){
jQuery.hotkeys = {
version: "0.8",
specialKeys: {
8: "backspace", 9: "tab", 10: "return", 13: "enter", 16: "shift", 17: "ctrl", 18: "alt", 19: "pause",
20: "capslock", 27: "esc", 32: "space", 33: "pageup", 34: "pagedown", 35: "end", 36: "home",
37: "left", 38: "up", 39: "right", 40: "down", 45: "insert", 46: "del",
96: "0", 97: "1", 98: "2", 99: "3", 100: "4", 101: "5", 102: "6", 103: "7",
104: "8", 105: "9", 106: "*", 107: "+", 109: "-", 110: ".", 111 : "/",
112: "f1", 113: "f2", 114: "f3", 115: "f4", 116: "f5", 117: "f6", 118: "f7", 119: "f8",
120: "f9", 121: "f10", 122: "f11", 123: "f12", 144: "numlock", 145: "scroll", 186: ";", 191: "/",
220: "\\", 222: "'", 224: "meta"
},
shiftNums: {
"`": "~", "1": "!", "2": "@", "3": "#", "4": "$", "5": "%", "6": "^", "7": "&",
"8": "*", "9": "(", "0": ")", "-": "_", "=": "+", ";": ": ", "'": "\"", ",": "<",
".": ">", "/": "?", "\\": "|"
}
};
function keyHandler( handleObj ) {
if ( typeof handleObj.data === "string" ) {
handleObj.data = { keys: handleObj.data };
}
// Only care when a possible input has been specified
if ( !handleObj.data || !handleObj.data.keys || typeof handleObj.data.keys !== "string" ) {
return;
}
var origHandler = handleObj.handler,
keys = handleObj.data.keys.toLowerCase().split(" "),
textAcceptingInputTypes = ["text", "password", "number", "email", "url", "range", "date", "month", "week", "time", "datetime", "datetime-local", "search", "color", "tel"];
handleObj.handler = function( event ) {
// Don't fire in text-accepting inputs that we didn't directly bind to
if ( this !== event.target && (/textarea|select/i.test( event.target.nodeName ) ||
jQuery.inArray(event.target.type, textAcceptingInputTypes) > -1 ) ) {
return;
}
var special = jQuery.hotkeys.specialKeys[ event.keyCode ],
character = String.fromCharCode( event.which ).toLowerCase(),
modif = "", possible = {};
// check combinations (alt|ctrl|shift+anything)
if ( event.altKey && special !== "alt" ) {
modif += "alt+";
}
if ( event.ctrlKey && special !== "ctrl" ) {
modif += "ctrl+";
}
// TODO: Need to make sure this works consistently across platforms
if ( event.metaKey && !event.ctrlKey && special !== "meta" ) {
modif += "meta+";
}
if ( event.shiftKey && special !== "shift" ) {
modif += "shift+";
}
if ( special ) {
possible[ modif + special ] = true;
}
if ( character ) {
possible[ modif + character ] = true;
possible[ modif + jQuery.hotkeys.shiftNums[ character ] ] = true;
// "$" can be triggered as "Shift+4" or "Shift+$" or just "$"
if ( modif === "shift+" ) {
possible[ jQuery.hotkeys.shiftNums[ character ] ] = true;
}
}
for ( var i = 0, l = keys.length; i < l; i++ ) {
if ( possible[ keys[i] ] ) {
return origHandler.apply( this, arguments );
}
}
};
}
jQuery.each([ "keydown", "keyup", "keypress" ], function() {
jQuery.event.special[ this ] = { add: keyHandler };
});
})( this.jQuery );

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,8 @@
/*! Copyright (c) 2013 Brandon Aaron (http://brandon.aaron.sh)
* Licensed under the MIT License (LICENSE.txt).
*
* Version: 3.1.11
*
* Requires: jQuery 1.2.2+
*/
!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?module.exports=a:a(jQuery)}(function(a){function b(b){var g=b||window.event,h=i.call(arguments,1),j=0,l=0,m=0,n=0,o=0,p=0;if(b=a.event.fix(g),b.type="mousewheel","detail"in g&&(m=-1*g.detail),"wheelDelta"in g&&(m=g.wheelDelta),"wheelDeltaY"in g&&(m=g.wheelDeltaY),"wheelDeltaX"in g&&(l=-1*g.wheelDeltaX),"axis"in g&&g.axis===g.HORIZONTAL_AXIS&&(l=-1*m,m=0),j=0===m?l:m,"deltaY"in g&&(m=-1*g.deltaY,j=m),"deltaX"in g&&(l=g.deltaX,0===m&&(j=-1*l)),0!==m||0!==l){if(1===g.deltaMode){var q=a.data(this,"mousewheel-line-height");j*=q,m*=q,l*=q}else if(2===g.deltaMode){var r=a.data(this,"mousewheel-page-height");j*=r,m*=r,l*=r}if(n=Math.max(Math.abs(m),Math.abs(l)),(!f||f>n)&&(f=n,d(g,n)&&(f/=40)),d(g,n)&&(j/=40,l/=40,m/=40),j=Math[j>=1?"floor":"ceil"](j/f),l=Math[l>=1?"floor":"ceil"](l/f),m=Math[m>=1?"floor":"ceil"](m/f),k.settings.normalizeOffset&&this.getBoundingClientRect){var s=this.getBoundingClientRect();o=b.clientX-s.left,p=b.clientY-s.top}return b.deltaX=l,b.deltaY=m,b.deltaFactor=f,b.offsetX=o,b.offsetY=p,b.deltaMode=0,h.unshift(b,j,l,m),e&&clearTimeout(e),e=setTimeout(c,200),(a.event.dispatch||a.event.handle).apply(this,h)}}function c(){f=null}function d(a,b){return k.settings.adjustOldDeltas&&"mousewheel"===a.type&&b%120===0}var e,f,g=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],h="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],i=Array.prototype.slice;if(a.event.fixHooks)for(var j=g.length;j;)a.event.fixHooks[g[--j]]=a.event.mouseHooks;var k=a.event.special.mousewheel={version:"3.1.11",setup:function(){if(this.addEventListener)for(var c=h.length;c;)this.addEventListener(h[--c],b,!1);else this.onmousewheel=b;a.data(this,"mousewheel-line-height",k.getLineHeight(this)),a.data(this,"mousewheel-page-height",k.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var c=h.length;c;)this.removeEventListener(h[--c],b,!1);else this.onmousewheel=null;a.removeData(this,"mousewheel-line-height"),a.removeData(this,"mousewheel-page-height")},getLineHeight:function(b){var c=a(b)["offsetParent"in a.fn?"offsetParent":"parent"]();return c.length||(c=a("body")),parseInt(c.css("fontSize"),10)},getPageHeight:function(b){return a(b).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};a.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})});

View File

@@ -1,971 +0,0 @@
//
// LESS - Leaner CSS v1.1.3
// http://lesscss.org
//
// Copyright (c) 2009-2011, Alexis Sellier
// Licensed under the Apache 2.0 License.
//
//
// LESS - Leaner CSS v1.1.3
// http://lesscss.org
//
// Copyright (c) 2009-2011, Alexis Sellier
// Licensed under the Apache 2.0 License.
//
(function(a, b) {
function v(a, b) {
var c = "less-error-message:" + p(b),e = ["<ul>",'<li><label>[-1]</label><pre class="ctx">{0}</pre></li>',"<li><label>[0]</label><pre>{current}</pre></li>",'<li><label>[1]</label><pre class="ctx">{2}</pre></li>',"</ul>"].join("\n"),f = document.createElement("div"),g,h;
f.id = c,f.className = "less-error-message",h = "<h3>" + (a.message || "There is an error in your .less file") + "</h3>" + '<p><a href="' + b + '">' + b + "</a> ",a.extract && (h += "on line " + a.line + ", column " + (a.column + 1) + ":</p>" + e.replace(/\[(-?\d)\]/g,
function(b, c) {
return parseInt(a.line) + parseInt(c) || ""
}).replace(/\{(\d)\}/g,
function(b, c) {
return a.extract[parseInt(c)] || ""
}).replace(/\{current\}/, a.extract[1].slice(0, a.column) + '<span class="error">' + a.extract[1].slice(a.column) + "</span>")),f.innerHTML = h,q([".less-error-message ul, .less-error-message li {","list-style-type: none;","margin-right: 15px;","padding: 4px 0;","margin: 0;","}",".less-error-message label {","font-size: 12px;","margin-right: 15px;","padding: 4px 0;","color: #cc7777;","}",".less-error-message pre {","color: #ee4444;","padding: 4px 0;","margin: 0;","display: inline-block;","}",".less-error-message pre.ctx {","color: #dd4444;","}",".less-error-message h3 {","font-size: 20px;","font-weight: bold;","padding: 15px 0 5px 0;","margin: 0;","}",".less-error-message a {","color: #10a","}",".less-error-message .error {","color: red;","font-weight: bold;","padding-bottom: 2px;","border-bottom: 1px dashed red;","}"].join("\n"), {title:"error-message"}),f.style.cssText = ["font-family: Arial, sans-serif","border: 1px solid #e00","background-color: #eee","border-radius: 5px","-webkit-border-radius: 5px","-moz-border-radius: 5px","color: #e00","padding: 15px","margin-bottom: 15px"].join(";"),d.env == "development" && (g = setInterval(function() {
document.body && (document.getElementById(c) ? document.body.replaceChild(f, document.getElementById(c)) : document.body.insertBefore(f, document.body.firstChild),clearInterval(g))
}, 10))
}
function u(a) {
d.env == "development" && typeof console != "undefined" && console.log("less: " + a)
}
function t(a) {
return a && a.parentNode.removeChild(a)
}
function s() {
if (a.XMLHttpRequest)return new XMLHttpRequest;
try {
return new ActiveXObject("MSXML2.XMLHTTP.3.0")
} catch(b) {
u("browser doesn't support AJAX.");
return null
}
}
function r(a, b, c, e) {
function i(b, c, d) {
b.status >= 200 && b.status < 300 ? c(b.responseText, b.getResponseHeader("Last-Modified")) : typeof d == "function" && d(b.status, a)
}
var f = s(),h = g ? !1 : d.async;
typeof f.overrideMimeType == "function" && f.overrideMimeType("text/css"),f.open("GET", a, h),f.setRequestHeader("Accept", b || "text/x-less, text/css; q=0.9, */*; q=0.5"),f.send(null),g ? f.status === 0 ? c(f.responseText) : e(f.status, a) : h ? f.onreadystatechange = function() {
f.readyState == 4 && i(f, c, e)
} : i(f, c, e)
}
function q(a, b, c) {
var d,e = b.href ? b.href.replace(/\?.*$/, "") : "",f = "less:" + (b.title || p(e));
(d = document.getElementById(f)) === null && (d = document.createElement("style"),d.type = "text/css",d.media = b.media || "screen",d.id = f,document.getElementsByTagName("head")[0].appendChild(d));
if (d.styleSheet)try {
d.styleSheet.cssText = a
} catch(g) {
throw new Error("Couldn't reassign styleSheet.cssText.")
} else(function(a) {
d.childNodes.length > 0 ? d.firstChild.nodeValue !== a.nodeValue && d.replaceChild(a, d.firstChild) : d.appendChild(a)
})(document.createTextNode(a));
c && h && (u("saving " + e + " to cache."),h.setItem(e, a),h.setItem(e + ":timestamp", c))
}
function p(a) {
return a.replace(/^[a-z]+:\/\/?[^\/]+/, "").replace(/^\//, "").replace(/\?.*$/, "").replace(/\.[^\.\/]+$/, "").replace(/[^\.\w-]+/g, "-").replace(/\./g, ":")
}
function o(b, c, e, f) {
var g = a.location.href.replace(/[#?].*$/, ""),i = b.href.replace(/\?.*$/, ""),j = h && h.getItem(i),k = h && h.getItem(i + ":timestamp"),l = {css:j,timestamp:k};
/^(https?|file):/.test(i) || (i.charAt(0) == "/" ? i = a.location.protocol + "//" + a.location.host + i : i = g.slice(0, g.lastIndexOf("/") + 1) + i),r(b.href, b.type, function(a, g) {
if (!e && l && g && (new Date(g)).valueOf() === (new Date(l.timestamp)).valueOf())q(l.css, b),c(null, b, {local:!0,remaining:f}); else try {
(new d.Parser({optimization:d.optimization,paths:[i.replace(/[\w\.-]+$/, "")],mime:b.type})).parse(a, function(a, d) {
if (a)return v(a, i);
try {
c(d, b, {local:!1,lastModified:g,remaining:f}),t(document.getElementById("less-error-message:" + p(i)))
} catch(a) {
v(a, i)
}
})
} catch(h) {
v(h, i)
}
}, function(a, b) {
throw new Error("Couldn't load " + b + " (" + a + ")")
})
}
function n(a, b) {
for (var c = 0; c < d.sheets.length; c++)o(d.sheets[c], a, b, d.sheets.length - (c + 1))
}
function m() {
var a = document.getElementsByTagName("style");
for (var b = 0; b < a.length; b++)a[b].type.match(k) && (new d.Parser).parse(a[b].innerHTML || "", function(c, d) {
a[b].type = "text/css",a[b].innerHTML = d.toCSS()
})
}
function c(b) {
return a.less[b.split("/")[1]]
}
Array.isArray || (Array.isArray = function(a) {
return Object.prototype.toString.call(a) === "[object Array]" || a instanceof Array
}),Array.prototype.forEach || (Array.prototype.forEach = function(a, b) {
var c = this.length >>> 0;
for (var d = 0; d < c; d++)d in this && a.call(b, this[d], d, this)
}),Array.prototype.map || (Array.prototype.map = function(a) {
var b = this.length >>> 0,c = Array(b),d = arguments[1];
for (var e = 0; e < b; e++)e in this && (c[e] = a.call(d, this[e], e, this));
return c
}),Array.prototype.filter || (Array.prototype.filter = function(a) {
var b = [],c = arguments[1];
for (var d = 0; d < this.length; d++)a.call(c, this[d]) && b.push(this[d]);
return b
}),Array.prototype.reduce || (Array.prototype.reduce = function(a) {
var b = this.length >>> 0,c = 0;
if (b === 0 && arguments.length === 1)throw new TypeError;
if (arguments.length >= 2)var d = arguments[1]; else for (; ;) {
if (c in this) {
d = this[c++];
break
}
if (++c >= b)throw new TypeError
}
for (; c < b; c++)c in this && (d = a.call(null, d, this[c], c, this));
return d
}),Array.prototype.indexOf || (Array.prototype.indexOf = function(a) {
var b = this.length,c = arguments[1] || 0;
if (!b)return-1;
if (c >= b)return-1;
c < 0 && (c += b);
for (; c < b; c++) {
if (!Object.prototype.hasOwnProperty.call(this, c))continue;
if (a === this[c])return c
}
return-1
}),Object.keys || (Object.keys = function(a) {
var b = [];
for (var c in a)Object.prototype.hasOwnProperty.call(a, c) && b.push(c);
return b
}),String.prototype.trim || (String.prototype.trim = function() {
return String(this).replace(/^\s\s*/, "").replace(/\s\s*$/, "")
});
var d,e;
typeof a == "undefined" ? (d = exports,e = c("less/tree")) : (typeof a.less == "undefined" && (a.less = {}),d = a.less,e = a.less.tree = {}),d.Parser = function(a) {
function t(a) {
return typeof a == "string" ? b.charAt(c) === a : a.test(j[f]) ? !0 : !1
}
function s(a) {
var d,e,g,h,i,m,n,o;
if (a instanceof Function)return a.call(l.parsers);
if (typeof a == "string")d = b.charAt(c) === a ? a : null,g = 1,r(); else {
r();
if (d = a.exec(j[f]))g = d[0].length; else return null
}
if (d) {
o = c += g,m = c + j[f].length - g;
while (c < m) {
h = b.charCodeAt(c);
if (h !== 32 && h !== 10 && h !== 9)break;
c++
}
j[f] = j[f].slice(g + (c - o)),k = c,j[f].length === 0 && f < j.length - 1 && f++;
return typeof d == "string" ? d : d.length === 1 ? d[0] : d
}
}
function r() {
c > k && (j[f] = j[f].slice(c - k),k = c)
}
function q() {
j[f] = g,c = h,k = c
}
function p() {
g = j[f],h = c,k = c
}
var b,c,f,g,h,i,j,k,l,m = this,n = function() {
},o = this.imports = {paths:a && a.paths || [],queue:[],files:{},mime:a && a.mime,push:function(b, c) {
var e = this;
this.queue.push(b),d.Parser.importer(b, this.paths, function(a) {
e.queue.splice(e.queue.indexOf(b), 1),e.files[b] = a,c(a),e.queue.length === 0 && n()
}, a)
}};
this.env = a = a || {},this.optimization = "optimization"in this.env ? this.env.optimization : 1,this.env.filename = this.env.filename || null;
return l = {imports:o,parse:function(d, g) {
var h,l,m,o,p,q,r = [],t,u = null;
c = f = k = i = 0,j = [],b = d.replace(/\r\n/g, "\n"),j = function(c) {
var d = 0,e = /[^"'`\{\}\/\(\)]+/g,f = /\/\*(?:[^*]|\*+[^\/*])*\*+\/|\/\/.*/g,g = 0,h,i = c[0],j,k;
for (var l = 0,m,n; l < b.length; l++) {
e.lastIndex = l,(h = e.exec(b)) && h.index === l && (l += h[0].length,i.push(h[0])),m = b.charAt(l),f.lastIndex = l,!k && !j && m === "/" && (n = b.charAt(l + 1),(n === "/" || n === "*") && (h = f.exec(b)) && h.index === l && (l += h[0].length,i.push(h[0]),m = b.charAt(l)));
if (m === "{" && !k && !j)g++,i.push(m); else if (m === "}" && !k && !j)g--,i.push(m),c[++d] = i = []; else if (m === "(" && !k && !j)i.push(m),j = !0; else if (m === ")" && !k && j)i.push(m),j = !1; else {
if (m === '"' || m === "'" || m === "`")k ? k = k === m ? !1 : k : k = m;
i.push(m)
}
}
if (g > 0)throw{type:"Syntax",message:"Missing closing `}`",filename:a.filename};
return c.map(function(a) {
return a.join("")
})
}([
[]
]),h = new e.Ruleset([], s(this.parsers.primary)),h.root = !0,h.toCSS = function(c) {
var d,f,g;
return function(g, h) {
function n(a) {
return a ? (b.slice(0, a).match(/\n/g) || "").length : null
}
var i = [];
g = g || {},typeof h == "object" && !Array.isArray(h) && (h = Object.keys(h).map(function(a) {
var b = h[a];
b instanceof e.Value || (b instanceof e.Expression || (b = new e.Expression([b])),b = new e.Value([b]));
return new e.Rule("@" + a, b, !1, 0)
}),i = [new e.Ruleset(null, h)]);
try {
var j = c.call(this, {frames:i}).toCSS([], {compress:g.compress || !1})
} catch(k) {
f = b.split("\n"),d = n(k.index);
for (var l = k.index,m = -1; l >= 0 && b.charAt(l) !== "\n"; l--)m++;
throw{type:k.type,message:k.message,filename:a.filename,index:k.index,line:typeof d == "number" ? d + 1 : null,callLine:k.call && n(k.call) + 1,callExtract:f[n(k.call)],stack:k.stack,column:m,extract:[f[d - 1],f[d],f[d + 1]]}
}
return g.compress ? j.replace(/(\s)+/g, "$1") : j
}
}(h.eval);
if (c < b.length - 1) {
c = i,q = b.split("\n"),p = (b.slice(0, c).match(/\n/g) || "").length + 1;
for (var v = c,w = -1; v >= 0 && b.charAt(v) !== "\n"; v--)w++;
u = {name:"ParseError",message:"Syntax Error on line " + p,index:c,filename:a.filename,line:p,column:w,extract:[q[p - 2],q[p - 1],q[p]]}
}
this.imports.queue.length > 0 ? n = function() {
g(u, h)
} : g(u, h)
},parsers:{primary:function() {
var a,b = [];
while ((a = s(this.mixin.definition) || s(this.rule) || s(this.ruleset) || s(this.mixin.call) || s(this.comment) || s(this.directive)) || s(/^[\s\n]+/))a && b.push(a);
return b
},comment:function() {
var a;
if (b.charAt(c) === "/") {
if (b.charAt(c + 1) === "/")return new e.Comment(s(/^\/\/.*/), !0);
if (a = s(/^\/\*(?:[^*]|\*+[^\/*])*\*+\/\n?/))return new e.Comment(a)
}
},entities:{quoted:function() {
var a,d = c,f;
b.charAt(d) === "~" && (d++,f = !0);
if (b.charAt(d) === '"' || b.charAt(d) === "'") {
f && s("~");
if (a = s(/^"((?:[^"\\\r\n]|\\.)*)"|'((?:[^'\\\r\n]|\\.)*)'/))return new e.Quoted(a[0], a[1] || a[2], f)
}
},keyword:function() {
var a;
if (a = s(/^[A-Za-z-]+/))return new e.Keyword(a)
},call:function() {
var a,b,d = c;
if (!!(a = /^([\w-]+|%)\(/.exec(j[f]))) {
a = a[1].toLowerCase();
if (a === "url")return null;
c += a.length;
if (a === "alpha")return s(this.alpha);
s("("),b = s(this.entities.arguments);
if (!s(")"))return;
if (a)return new e.Call(a, b, d)
}
},arguments:function() {
var a = [],b;
while (b = s(this.expression)) {
a.push(b);
if (!s(","))break
}
return a
},literal:function() {
return s(this.entities.dimension) || s(this.entities.color) || s(this.entities.quoted)
},url:function() {
var a;
if (b.charAt(c) === "u" && !!s(/^url\(/)) {
a = s(this.entities.quoted) || s(this.entities.variable) || s(this.entities.dataURI) || s(/^[-\w%@$\/.&=:;#+?~]+/) || "";
if (!s(")"))throw new Error("missing closing ) for url()");
return new e.URL(a.value || a.data || a instanceof e.Variable ? a : new e.Anonymous(a), o.paths)
}
},dataURI:function() {
var a;
if (s(/^data:/)) {
a = {},a.mime = s(/^[^\/]+\/[^,;)]+/) || "",a.charset = s(/^;\s*charset=[^,;)]+/) || "",a.base64 = s(/^;\s*base64/) || "",a.data = s(/^,\s*[^)]+/);
if (a.data)return a
}
},variable:function() {
var a,d = c;
if (b.charAt(c) === "@" && (a = s(/^@@?[\w-]+/)))return new e.Variable(a, d)
},color:function() {
var a;
if (b.charAt(c) === "#" && (a = s(/^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})/)))return new e.Color(a[1])
},dimension:function() {
var a,d = b.charCodeAt(c);
if (!(d > 57 || d < 45 || d === 47))if (a = s(/^(-?\d*\.?\d+)(px|%|em|pc|ex|in|deg|s|ms|pt|cm|mm|rad|grad|turn)?/))return new e.Dimension(a[1], a[2])
},javascript:function() {
var a,d = c,f;
b.charAt(d) === "~" && (d++,f = !0);
if (b.charAt(d) === "`") {
f && s("~");
if (a = s(/^`([^`]*)`/))return new e.JavaScript(a[1], c, f)
}
}},variable:function() {
var a;
if (b.charAt(c) === "@" && (a = s(/^(@[\w-]+)\s*:/)))return a[1]
},shorthand:function() {
var a,b;
if (!!t(/^[@\w.%-]+\/[@\w.-]+/) && (a = s(this.entity)) && s("/") && (b = s(this.entity)))return new e.Shorthand(a, b)
},mixin:{call:function() {
var a = [],d,f,g,h = c,i = b.charAt(c);
if (i === "." || i === "#") {
while (d = s(/^[#.](?:[\w-]|\\(?:[a-fA-F0-9]{1,6} ?|[^a-fA-F0-9]))+/))a.push(new e.Element(f, d)),f = s(">");
s("(") && (g = s(this.entities.arguments)) && s(")");
if (a.length > 0 && (s(";") || t("}")))return new e.mixin.Call(a, g, h)
}
},definition:function() {
var a,d = [],f,g,h,i;
if (!(b.charAt(c) !== "." && b.charAt(c) !== "#" || t(/^[^{]*(;|})/)))if (f = s(/^([#.](?:[\w-]|\\(?:[a-fA-F0-9]{1,6} ?|[^a-fA-F0-9]))+)\s*\(/)) {
a = f[1];
while (h = s(this.entities.variable) || s(this.entities.literal) || s(this.entities.keyword)) {
if (h instanceof e.Variable)if (s(":"))if (i = s(this.expression))d.push({name:h.name,value:i}); else throw new Error("Expected value"); else d.push({name:h.name}); else d.push({value:h});
if (!s(","))break
}
if (!s(")"))throw new Error("Expected )");
g = s(this.block);
if (g)return new e.mixin.Definition(a, d, g)
}
}},entity:function() {
return s(this.entities.literal) || s(this.entities.variable) || s(this.entities.url) || s(this.entities.call) || s(this.entities.keyword) || s(this.entities.javascript) || s(this.comment)
},end:function() {
return s(";") || t("}")
},alpha:function() {
var a;
if (!!s(/^\(opacity=/i))if (a = s(/^\d+/) || s(this.entities.variable)) {
if (!s(")"))throw new Error("missing closing ) for alpha()");
return new e.Alpha(a)
}
},element:function() {
var a,b,c;
c = s(this.combinator),a = s(/^(?:[.#]?|:*)(?:[\w-]|\\(?:[a-fA-F0-9]{1,6} ?|[^a-fA-F0-9]))+/) || s("*") || s(this.attribute) || s(/^\([^)@]+\)/);
if (a)return new e.Element(c, a)
},combinator:function() {
var a,d = b.charAt(c);
if (d === ">" || d === "&" || d === "+" || d === "~") {
c++;
while (b.charAt(c) === " ")c++;
return new e.Combinator(d)
}
if (d === ":" && b.charAt(c + 1) === ":") {
c += 2;
while (b.charAt(c) === " ")c++;
return new e.Combinator("::")
}
return b.charAt(c - 1) === " " ? new e.Combinator(" ") : new e.Combinator(null)
},selector:function() {
var a,d,f = [],g,h;
while (d = s(this.element)) {
g = b.charAt(c),f.push(d);
if (g === "{" || g === "}" || g === ";" || g === ",")break
}
if (f.length > 0)return new e.Selector(f)
},tag:function() {
return s(/^[a-zA-Z][a-zA-Z-]*[0-9]?/) || s("*")
},attribute:function() {
var a = "",b,c,d;
if (!!s("[")) {
if (b = s(/^[a-zA-Z-]+/) || s(this.entities.quoted))(d = s(/^[|~*$^]?=/)) && (c = s(this.entities.quoted) || s(/^[\w-]+/)) ? a = [b,d,c.toCSS ? c.toCSS() : c].join("") : a = b;
if (!s("]"))return;
if (a)return"[" + a + "]"
}
},block:function() {
var a;
if (s("{") && (a = s(this.primary)) && s("}"))return a
},ruleset:function() {
var a = [],b,d,g;
p();
if (g = /^([.#: \w-]+)[\s\n]*\{/.exec(j[f]))c += g[0].length - 1,a = [new e.Selector([new e.Element(null, g[1])])]; else while (b = s(this.selector)) {
a.push(b),s(this.comment);
if (!s(","))break;
s(this.comment)
}
if (a.length > 0 && (d = s(this.block)))return new e.Ruleset(a, d);
i = c,q()
},rule:function() {
var a,d,g = b.charAt(c),k,l;
p();
if (g !== "." && g !== "#" && g !== "&")if (a = s(this.variable) || s(this.property)) {
a.charAt(0) != "@" && (l = /^([^@+\/'"*`(;{}-]*);/.exec(j[f])) ? (c += l[0].length - 1,d = new e.Anonymous(l[1])) : a === "font" ? d = s(this.font) : d = s(this.value),k = s(this.important);
if (d && s(this.end))return new e.Rule(a, d, k, h);
i = c,q()
}
},"import":function() {
var a;
if (s(/^@import\s+/) && (a = s(this.entities.quoted) || s(this.entities.url)) && s(";"))return new e.Import(a, o)
},directive:function() {
var a,d,f,g;
if (b.charAt(c) === "@") {
if (d = s(this["import"]))return d;
if (a = s(/^@media|@page|@-[-a-z]+/)) {
g = (s(/^[^{]+/) || "").trim();
if (f = s(this.block))return new e.Directive(a + " " + g, f)
} else if (a = s(/^@[-a-z]+/))if (a === "@font-face") {
if (f = s(this.block))return new e.Directive(a, f)
} else if ((d = s(this.entity)) && s(";"))return new e.Directive(a, d)
}
},font:function() {
var a = [],b = [],c,d,f,g;
while (g = s(this.shorthand) || s(this.entity))b.push(g);
a.push(new e.Expression(b));
if (s(","))while (g = s(this.expression)) {
a.push(g);
if (!s(","))break
}
return new e.Value(a)
},value:function() {
var a,b = [],c;
while (a = s(this.expression)) {
b.push(a);
if (!s(","))break
}
if (b.length > 0)return new e.Value(b)
},important:function() {
if (b.charAt(c) === "!")return s(/^! *important/)
},sub:function() {
var a;
if (s("(") && (a = s(this.expression)) && s(")"))return a
},multiplication:function() {
var a,b,c,d;
if (a = s(this.operand)) {
while ((c = s("/") || s("*")) && (b = s(this.operand)))d = new e.Operation(c, [d || a,b]);
return d || a
}
},addition:function() {
var a,d,f,g;
if (a = s(this.multiplication)) {
while ((f = s(/^[-+]\s+/) || b.charAt(c - 1) != " " && (s("+") || s("-"))) && (d = s(this.multiplication)))g = new e.Operation(f, [g || a,d]);
return g || a
}
},operand:function() {
var a,d = b.charAt(c + 1);
b.charAt(c) === "-" && (d === "@" || d === "(") && (a = s("-"));
var f = s(this.sub) || s(this.entities.dimension) || s(this.entities.color) || s(this.entities.variable) || s(this.entities.call);
return a ? new e.Operation("*", [new e.Dimension(-1),f]) : f
},expression:function() {
var a,b,c = [],d;
while (a = s(this.addition) || s(this.entity))c.push(a);
if (c.length > 0)return new e.Expression(c)
},property:function() {
var a;
if (a = s(/^(\*?-?[-a-z_0-9]+)\s*:/))return a[1]
}}}
},typeof a != "undefined" && (d.Parser.importer = function(a, b, c, d) {
a.charAt(0) !== "/" && b.length > 0 && (a = b[0] + a),o({href:a,title:a,type:d.mime}, c, !0)
}),function(a) {
function d(a) {
return Math.min(1, Math.max(0, a))
}
function c(b) {
if (b instanceof a.Dimension)return parseFloat(b.unit == "%" ? b.value / 100 : b.value);
if (typeof b == "number")return b;
throw{error:"RuntimeError",message:"color functions take numbers as parameters"}
}
function b(b) {
return a.functions.hsla(b.h, b.s, b.l, b.a)
}
a.functions = {rgb:function(a, b, c) {
return this.rgba(a, b, c, 1)
},rgba:function(b, d, e, f) {
var g = [b,d,e].map(function(a) {
return c(a)
}),f = c(f);
return new a.Color(g, f)
},hsl:function(a, b, c) {
return this.hsla(a, b, c, 1)
},hsla:function(a, b, d, e) {
function h(a) {
a = a < 0 ? a + 1 : a > 1 ? a - 1 : a;
return a * 6 < 1 ?