From df821e754e5b5427d794f30092deeadcacb12ed3 Mon Sep 17 00:00:00 2001 From: Claudio Barril Date: Wed, 9 Apr 2014 00:13:38 -0300 Subject: [PATCH 01/57] fix padding and label in two lines --- wise-webapp/src/main/webapp/css/mindmapList.less | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/wise-webapp/src/main/webapp/css/mindmapList.less b/wise-webapp/src/main/webapp/css/mindmapList.less index 51678c8b..be5b8118 100644 --- a/wise-webapp/src/main/webapp/css/mindmapList.less +++ b/wise-webapp/src/main/webapp/css/mindmapList.less @@ -352,8 +352,13 @@ abbr[title] { padding:0px; margin:0px; } + #footerContainer > li.active { padding:0px; margin:0px; } +#foldersContainer > ul > li > a { + padding: 8px 15px; + white-space: nowrap; +} From a0f4024d263d1d0704c6932d282fdf842cee9757 Mon Sep 17 00:00:00 2001 From: Claudio Barril Date: Sat, 12 Apr 2014 19:03:31 -0300 Subject: [PATCH 02/57] icon message --- wise-webapp/src/main/resources/messages_en.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/wise-webapp/src/main/resources/messages_en.properties b/wise-webapp/src/main/resources/messages_en.properties index 91d96563..5f667902 100644 --- a/wise-webapp/src/main/resources/messages_en.properties +++ b/wise-webapp/src/main/resources/messages_en.properties @@ -145,6 +145,7 @@ NEW=New MIND_FILE=File PARENT_LABEL=Nest label under COLOR=Color +ICON=Icon CHOOSE_LABEL=Choose a label SELECT_LABEL=Please select a label NO_SEARCH_RESULT=No mindmap available for the selected filter criteria From e8567fccf0d49d2d34a74c624b354c471a35f4cf Mon Sep 17 00:00:00 2001 From: Claudio Barril Date: Sat, 12 Apr 2014 19:04:19 -0300 Subject: [PATCH 03/57] icon dropdown creation dialog --- .../src/main/webapp/css/mindmapList.less | 26 +++ .../src/main/webapp/jsp/mindmapList.jsp | 173 ++++++++++++++++++ 2 files changed, 199 insertions(+) diff --git a/wise-webapp/src/main/webapp/css/mindmapList.less b/wise-webapp/src/main/webapp/css/mindmapList.less index be5b8118..6199b5ca 100644 --- a/wise-webapp/src/main/webapp/css/mindmapList.less +++ b/wise-webapp/src/main/webapp/css/mindmapList.less @@ -362,3 +362,29 @@ abbr[title] { padding: 8px 15px; white-space: nowrap; } + +#iconGroup > div > button { + background: #eee; + border: 1px solid #ccc !important; +} + +.bs-glyphicons { + width: 800%; +} + +.bs-glyphicons > ul { + padding-left: 10px; + overflow-x: hidden; +} + +.bs-glyphicons > ul > li { + float: left; + width: 12%; + height: 25%; + padding: 10px; + font-size: 10px; + line-height: 1.4; + text-align: center; + border: 1px solid #fff; + background-color: #f9f9f9; +} diff --git a/wise-webapp/src/main/webapp/jsp/mindmapList.jsp b/wise-webapp/src/main/webapp/jsp/mindmapList.jsp index 2f5566cb..dd556d75 100644 --- a/wise-webapp/src/main/webapp/jsp/mindmapList.jsp +++ b/wise-webapp/src/main/webapp/jsp/mindmapList.jsp @@ -346,6 +346,179 @@ +
+ +
+ + + +
+
From 725be7ca9b64922d7055495a02ce5678e4802d2c Mon Sep 17 00:00:00 2001 From: Claudio Barril Date: Sat, 12 Apr 2014 19:04:28 -0300 Subject: [PATCH 04/57] icon ui selection --- wise-webapp/src/main/webapp/js/mindmapList.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/wise-webapp/src/main/webapp/js/mindmapList.js b/wise-webapp/src/main/webapp/js/mindmapList.js index 4404e1d7..2147a0f0 100644 --- a/wise-webapp/src/main/webapp/js/mindmapList.js +++ b/wise-webapp/src/main/webapp/js/mindmapList.js @@ -531,7 +531,15 @@ $(function () { $("#foldersContainer ul").css('overflow-x', 'hidden'); $("#foldersContainer ul").height(maxHeight); - }) + }); + + $(".bs-glyphicons-list li").on("click", function(){ + var defaultIcon = $("#defaultIcon"); + //remove current icon + defaultIcon.find("i").remove(); + var myClass = $(this).attr("class"); + defaultIcon.prepend(""); + }); }); /*--------------------------------------------- Label actions --------------------------------------------------**/ From 8e7133c4abb2ea3e61bd385e782a5081434f3f15 Mon Sep 17 00:00:00 2001 From: Claudio Barril Date: Mon, 14 Apr 2014 18:09:34 -0300 Subject: [PATCH 05/57] add label icons back-end (model and database) --- config/database/hsql/apopulate-schemas.sql | 6 +++--- config/database/hsql/create-schemas.sql | 3 ++- config/database/mysql/apopulate-schemas.sql | 6 +++--- config/database/mysql/create-schemas.sql | 1 + .../src/main/java/com/wisemapping/model/Label.java | 11 +++++++++++ .../java/com/wisemapping/rest/model/RestLabel.java | 8 ++++++++ .../resources/com/wisemapping/model/Label.hbm.xml | 1 + 7 files changed, 29 insertions(+), 7 deletions(-) diff --git a/config/database/hsql/apopulate-schemas.sql b/config/database/hsql/apopulate-schemas.sql index d1cd5912..092acc82 100644 --- a/config/database/hsql/apopulate-schemas.sql +++ b/config/database/hsql/apopulate-schemas.sql @@ -30,7 +30,7 @@ INSERT INTO COLLABORATION (id, colaborator_id, properties_id, mindmap_id, role_i INSERT INTO COLLABORATION_PROPERTIES (id, starred, mindmap_properties) VALUES (2, 1, '{zoom:0.8}'); INSERT INTO COLLABORATION (id, colaborator_id, properties_id, mindmap_id, role_id) VALUES (2, 2, 2, 1, 1); -INSERT INTO LABEL (id, title, creator_id, parent_label_id, color) VALUES (1, 'test label', 1, NULL, '#ff0000'); +INSERT INTO LABEL (id, title, creator_id, parent_label_id, color, icon) VALUES (1, 'test label', 1, NULL, '#ff0000', 'glyphicon glyphicon-tag'); INSERT INTO R_LABEL_MINDMAP (label_id, mindmap_id) VALUES (1,1); INSERT INTO MINDMAP (id, title, xml, description, public, creation_date, edition_date, creator_id, tags, last_editor_id) @@ -38,9 +38,9 @@ INSERT INTO MINDMAP (id, title, xml, description, public, creation_date, edition INSERT INTO COLLABORATION_PROPERTIES (id, starred, mindmap_properties) VALUES (3, 1, '{zoom:0.8}'); INSERT INTO COLLABORATION (id, colaborator_id, properties_id, mindmap_id, role_id) VALUES (3, 2, 3, 2, 0); -INSERT INTO LABEL (id, title, creator_id, parent_label_id, color) VALUES (2, 'admin label', 2, NULL, '#0000ff'); +INSERT INTO LABEL (id, title, creator_id, parent_label_id, color, icon) VALUES (2, 'admin label', 2, NULL, '#0000ff', 'glyphicon glyphicon-star'); INSERT INTO R_LABEL_MINDMAP (label_id, mindmap_id) VALUES (2,2); -INSERT INTO LABEL (id, title, creator_id, parent_label_id, color) VALUES (3, 'mindmap shared', 2, NULL, '#00ff00'); +INSERT INTO LABEL (id, title, creator_id, parent_label_id, color, icon) VALUES (3, 'mindmap shared', 2, NULL, '#00ff00', 'glyphicon glyphicon-share'); INSERT INTO R_LABEL_MINDMAP (label_id, mindmap_id) VALUES (3,1); COMMIT; diff --git a/config/database/hsql/create-schemas.sql b/config/database/hsql/create-schemas.sql index ca5ec213..92322877 100644 --- a/config/database/hsql/create-schemas.sql +++ b/config/database/hsql/create-schemas.sql @@ -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, + icon VARCHAR(255) NOT NULL --FOREIGN KEY (creator_id) REFERENCES USER (colaborator_id) ); diff --git a/config/database/mysql/apopulate-schemas.sql b/config/database/mysql/apopulate-schemas.sql index aee90b96..076cf61d 100644 --- a/config/database/mysql/apopulate-schemas.sql +++ b/config/database/mysql/apopulate-schemas.sql @@ -34,7 +34,7 @@ INSERT INTO COLLABORATION (id, colaborator_id, properties_id, mindmap_id, role_i INSERT INTO COLLABORATION_PROPERTIES (id, starred, mindmap_properties) VALUES (2, 1, '{zoom:0.8}'); INSERT INTO COLLABORATION (id, colaborator_id, properties_id, mindmap_id, role_id) VALUES (2, 2, 2, 1, 1); -INSERT INTO LABEL (id, title, creator_id, parent_label_id, color) VALUES (1, 'test label', 1, NULL, '#ff0000'); +INSERT INTO LABEL (id, title, creator_id, parent_label_id, color, icon) VALUES (1, 'test label', 1, NULL, '#ff0000', 'glyphicon glyphicon-tag'); INSERT INTO R_LABEL_MINDMAP (label_id, mindmap_id) VALUES (1,1); INSERT INTO MINDMAP (id, title, xml, description, public, creation_date, edition_date, creator_id, tags, last_editor_id) @@ -42,9 +42,9 @@ INSERT INTO MINDMAP (id, title, xml, description, public, creation_date, edition INSERT INTO COLLABORATION_PROPERTIES (id, starred, mindmap_properties) VALUES (3, 1, '{zoom:0.8}'); INSERT INTO COLLABORATION (id, colaborator_id, properties_id, mindmap_id, role_id) VALUES (3, 2, 3, 2, 0); -INSERT INTO LABEL (id, title, creator_id, parent_label_id, color) VALUES (2, 'admin label', 2, NULL, '#0000ff'); +INSERT INTO LABEL (id, title, creator_id, parent_label_id, color, icon) VALUES (2, 'admin label', 2, NULL, '#0000ff', 'glyphicon glyphicon-star'); INSERT INTO R_LABEL_MINDMAP (label_id, mindmap_id) VALUES (2,2); -INSERT INTO LABEL (id, title, creator_id, parent_label_id, color) VALUES (3, 'mindmap shared', 2, NULL, '#00ff00'); +INSERT INTO LABEL (id, title, creator_id, parent_label_id, color, icon) VALUES (3, 'mindmap shared', 2, NULL, '#00ff00', 'glyphicon glyphicon-share'); INSERT INTO R_LABEL_MINDMAP (label_id, mindmap_id) VALUES (3,1); COMMIT; diff --git a/config/database/mysql/create-schemas.sql b/config/database/mysql/create-schemas.sql index bf12dbf1..8aaaf0db 100644 --- a/config/database/mysql/create-schemas.sql +++ b/config/database/mysql/create-schemas.sql @@ -58,6 +58,7 @@ CREATE TABLE LABEL ( creator_id INTEGER NOT NULL, parent_label_id INTEGER, color VARCHAR(7) NOT NULL, + icon VARCHAR(255) NOT NULL, FOREIGN KEY (creator_id) REFERENCES USER (colaborator_id), FOREIGN KEY (parent_label_id) REFERENCES LABEL (id) ON DELETE CASCADE diff --git a/wise-webapp/src/main/java/com/wisemapping/model/Label.java b/wise-webapp/src/main/java/com/wisemapping/model/Label.java index ca8dad6b..654bbaf9 100644 --- a/wise-webapp/src/main/java/com/wisemapping/model/Label.java +++ b/wise-webapp/src/main/java/com/wisemapping/model/Label.java @@ -12,6 +12,7 @@ public class Label { @NotNull private User creator; @Nullable private Label parent; @NotNull private String color; + @NotNull private String icon; public void setParent(@Nullable Label parent) { this.parent = parent; @@ -57,6 +58,15 @@ public class Label { this.color = color; } + @NotNull + public String getIcon() { + return icon; + } + + public void setIcon(@NotNull String icon) { + this.icon = icon; + } + @Override public boolean equals(Object o) { if (this == o) return true; @@ -76,4 +86,5 @@ public class Label { result = 31 * result + (parent != null ? parent.hashCode() : 0); return result; } + } diff --git a/wise-webapp/src/main/java/com/wisemapping/rest/model/RestLabel.java b/wise-webapp/src/main/java/com/wisemapping/rest/model/RestLabel.java index 65bc29bb..14ad2abc 100644 --- a/wise-webapp/src/main/java/com/wisemapping/rest/model/RestLabel.java +++ b/wise-webapp/src/main/java/com/wisemapping/rest/model/RestLabel.java @@ -65,10 +65,18 @@ public class RestLabel { label.setColor(color); } + public void setIcon(@NotNull final String icon) { + label.setIcon(icon); + } + @Nullable public String getColor() { return label.getColor(); } + @Nullable public String getIcon() { + return label.getIcon(); + } + @JsonIgnore public Label getDelegated() { return label; diff --git a/wise-webapp/src/main/resources/com/wisemapping/model/Label.hbm.xml b/wise-webapp/src/main/resources/com/wisemapping/model/Label.hbm.xml index 11602ec6..b0589623 100644 --- a/wise-webapp/src/main/resources/com/wisemapping/model/Label.hbm.xml +++ b/wise-webapp/src/main/resources/com/wisemapping/model/Label.hbm.xml @@ -11,6 +11,7 @@ + From bf26c4c0efe606ef50f0805af3810bf6bb1b6af4 Mon Sep 17 00:00:00 2001 From: Claudio Barril Date: Mon, 14 Apr 2014 18:10:16 -0300 Subject: [PATCH 06/57] add styles --- wise-webapp/src/main/webapp/css/mindmapList.less | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/wise-webapp/src/main/webapp/css/mindmapList.less b/wise-webapp/src/main/webapp/css/mindmapList.less index 6199b5ca..ff737479 100644 --- a/wise-webapp/src/main/webapp/css/mindmapList.less +++ b/wise-webapp/src/main/webapp/css/mindmapList.less @@ -363,11 +363,15 @@ abbr[title] { white-space: nowrap; } -#iconGroup > div > button { +#defaultIcon { background: #eee; border: 1px solid #ccc !important; } +#defaultIcon:hover { + background-color: #C8C8C8; +} + .bs-glyphicons { width: 800%; } @@ -387,4 +391,9 @@ abbr[title] { text-align: center; border: 1px solid #fff; background-color: #f9f9f9; + cursor: pointer; } + +.bs-glyphicons > ul > li:hover { + background-color: #C8C8C8; +} \ No newline at end of file From 25783d81529a4c20088e66ddb0250e31eb0a0ed7 Mon Sep 17 00:00:00 2001 From: Claudio Barril Date: Mon, 14 Apr 2014 18:14:32 -0300 Subject: [PATCH 07/57] sending icon data to api rest --- wise-webapp/src/main/webapp/js/mindmapList.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/wise-webapp/src/main/webapp/js/mindmapList.js b/wise-webapp/src/main/webapp/js/mindmapList.js index 2147a0f0..8cb84100 100644 --- a/wise-webapp/src/main/webapp/js/mindmapList.js +++ b/wise-webapp/src/main/webapp/js/mindmapList.js @@ -91,6 +91,12 @@ jQuery.fn.dialogForm = function (options) { formData[elem.name] = elem.value; }); + // FIX: How should I do this? + var icon = $("#defaultIcon"); + if (icon) { + formData["icon"] = icon.find('i').attr('class'); + } + // Success actions ... var onSuccess = function (jqXHR, textStatus, data) { var resourceId = jqXHR ? jqXHR.getResponseHeader("ResourceId") : undefined; @@ -301,7 +307,7 @@ $(function () { postUpdate: function(data, id) { createLabelItem(data, id); if (mapIds.length > 0) { - linkLabelToMindmap(mapIds, {id: id, title: data.title, color: data.color}); + linkLabelToMindmap(mapIds, {id: id, title: data.title, color: data.color, icon: data.icon}); } } }); @@ -548,7 +554,7 @@ function createLabelItem(data, id) { var labelItem = $("
  • "); labelItem.append( " " + - "" + + "" + "
    " + "
    " + data.title + "
    " + "" + From 1a7bae563e2c7f8a996d55c8c40aa405d6aa18bf Mon Sep 17 00:00:00 2001 From: Claudio Barril Date: Mon, 14 Apr 2014 18:14:56 -0300 Subject: [PATCH 08/57] import label list from another jsp prototype --- .../src/main/webapp/jsp/labelIconList.jsp | 163 +++++++++ .../src/main/webapp/jsp/mindmapList.jsp | 334 +++++++++--------- 2 files changed, 333 insertions(+), 164 deletions(-) create mode 100644 wise-webapp/src/main/webapp/jsp/labelIconList.jsp diff --git a/wise-webapp/src/main/webapp/jsp/labelIconList.jsp b/wise-webapp/src/main/webapp/jsp/labelIconList.jsp new file mode 100644 index 00000000..f909a0fe --- /dev/null +++ b/wise-webapp/src/main/webapp/jsp/labelIconList.jsp @@ -0,0 +1,163 @@ +<%@page pageEncoding="UTF-8" %> +
      +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • + +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • + +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • + +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • +
    • + +
    • +
    • +
    • +
    • +
    • +
    \ No newline at end of file diff --git a/wise-webapp/src/main/webapp/jsp/mindmapList.jsp b/wise-webapp/src/main/webapp/jsp/mindmapList.jsp index dd556d75..e8c848f1 100644 --- a/wise-webapp/src/main/webapp/jsp/mindmapList.jsp +++ b/wise-webapp/src/main/webapp/jsp/mindmapList.jsp @@ -122,6 +122,12 @@ }); }); + + @@ -342,179 +348,179 @@
    - +
    - - +
    +
    From 0f3d4856d237dfc94a2c22095e9f9d223c8e4a18 Mon Sep 17 00:00:00 2001 From: Claudio Barril Date: Wed, 16 Apr 2014 00:25:32 -0300 Subject: [PATCH 09/57] fix tests --- .../wisemapping/validator/LabelValidator.java | 1 + .../test/rest/RestLabelITCase.java | 25 ++++++++++++++----- .../test/rest/RestMindmapITCase.java | 3 ++- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/wise-webapp/src/main/java/com/wisemapping/validator/LabelValidator.java b/wise-webapp/src/main/java/com/wisemapping/validator/LabelValidator.java index f7f0083f..2dbc2f9a 100644 --- a/wise-webapp/src/main/java/com/wisemapping/validator/LabelValidator.java +++ b/wise-webapp/src/main/java/com/wisemapping/validator/LabelValidator.java @@ -37,6 +37,7 @@ public class LabelValidator implements Validator { private void validateLabel(@NotNull final Label label, @NotNull final Errors errors) { ValidationUtils.rejectIfEmptyOrWhitespace(errors, "title", Messages.FIELD_REQUIRED); ValidationUtils.rejectIfEmptyOrWhitespace(errors, "color", Messages.FIELD_REQUIRED); + ValidationUtils.rejectIfEmptyOrWhitespace(errors, "icon", Messages.FIELD_REQUIRED); final String title = label.getTitle(); ValidatorUtils.rejectIfExceeded( errors, diff --git a/wise-webapp/src/test/java/com/wisemapping/test/rest/RestLabelITCase.java b/wise-webapp/src/test/java/com/wisemapping/test/rest/RestLabelITCase.java index 00d7ffcc..0a35304f 100644 --- a/wise-webapp/src/test/java/com/wisemapping/test/rest/RestLabelITCase.java +++ b/wise-webapp/src/test/java/com/wisemapping/test/rest/RestLabelITCase.java @@ -30,6 +30,7 @@ public class RestLabelITCase { private String userEmail; private static final String COLOR = "#000000"; + private static final String ICON = "glyphicon glyphicon-tag"; @BeforeClass void createUser() { @@ -45,11 +46,11 @@ public class RestLabelITCase { // Create a new label final String title1 = "Label 1 - " + mediaType.toString(); - addNewLabel(requestHeaders, template, title1, COLOR); + addNewLabel(requestHeaders, template, title1, COLOR, ICON); // Create a new label final String title2 = "Label 2 - " + mediaType.toString(); - addNewLabel(requestHeaders, template, title2, COLOR); + addNewLabel(requestHeaders, template, title2, COLOR, ICON); // Check that the label has been created ... final RestLabelList restLabelList = getLabels(requestHeaders, template); @@ -83,7 +84,7 @@ public class RestLabelITCase { final RestTemplate template = RestHelper.createTemplate( userEmail + ":" + "admin"); try { - addNewLabel(requestHeaders, template, null, COLOR); + addNewLabel(requestHeaders, template, null, COLOR, ICON); fail("Wrong response"); } catch (HttpClientErrorException e) { final String responseBodyAsString = e.getResponseBodyAsString(); @@ -91,12 +92,21 @@ public class RestLabelITCase { } try { - addNewLabel(requestHeaders, template, "title12345", null); + addNewLabel(requestHeaders, template, "title12345", null, ICON); fail("Wrong response"); } catch (HttpClientErrorException e) { final String responseBodyAsString = e.getResponseBodyAsString(); assert (responseBodyAsString.contains("Required field cannot be left blank")); } + + try { + addNewLabel(requestHeaders, template, "title12345", COLOR, null); + fail("Wrong response"); + } catch (HttpClientErrorException e) { + final String responseBodyAsString = e.getResponseBodyAsString(); + assert (responseBodyAsString.contains("Required field cannot be left blank")); + } + } @Test(dataProviderClass = RestHelper.class, dataProvider="ContentType-Provider-Function") @@ -105,7 +115,7 @@ public class RestLabelITCase { final RestTemplate template = RestHelper.createTemplate( userEmail + ":" + "admin"); final String title = "title to delete"; - final URI resourceUri = addNewLabel(requestHeaders, template, title, COLOR); + final URI resourceUri = addNewLabel(requestHeaders, template, title, COLOR, ICON); // Now remove it ... template.delete(RestHelper.HOST_PORT + resourceUri.toString()); @@ -119,7 +129,7 @@ public class RestLabelITCase { } - static URI addNewLabel(@NotNull HttpHeaders requestHeaders, @NotNull RestTemplate template, @Nullable String title, @Nullable String color ) throws IOException, WiseMappingException { + static URI addNewLabel(@NotNull HttpHeaders requestHeaders, @NotNull RestTemplate template, @Nullable String title, @Nullable String color, @Nullable String icon) throws IOException, WiseMappingException { final RestLabel restLabel = new RestLabel(); if (title != null) { restLabel.setTitle(title); @@ -127,6 +137,9 @@ public class RestLabelITCase { if (color != null) { restLabel.setColor(color); } + if (icon != null) { + restLabel.setIcon(icon); + } // Create a new label ... HttpEntity createUserEntity = new HttpEntity(restLabel, requestHeaders); diff --git a/wise-webapp/src/test/java/com/wisemapping/test/rest/RestMindmapITCase.java b/wise-webapp/src/test/java/com/wisemapping/test/rest/RestMindmapITCase.java index b083feb2..7316dfff 100644 --- a/wise-webapp/src/test/java/com/wisemapping/test/rest/RestMindmapITCase.java +++ b/wise-webapp/src/test/java/com/wisemapping/test/rest/RestMindmapITCase.java @@ -40,6 +40,7 @@ import static org.testng.Assert.fail; public class RestMindmapITCase { private String userEmail = "admin@wisemapping.com"; + private static final String ICON = "glyphicon glyphicon-tag"; @BeforeClass void createUser() { @@ -251,7 +252,7 @@ public class RestMindmapITCase { // Create a new label final String titleLabel = "Label 1 - " + mediaType.toString(); - final URI labelUri = RestLabelITCase.addNewLabel(requestHeaders, template, titleLabel, COLOR); + final URI labelUri = RestLabelITCase.addNewLabel(requestHeaders, template, titleLabel, COLOR, ICON); // Create a sample map ... final String mapTitle = "Maps 1 - " + mediaType.toString(); From 5206d3b627daa897ba8e90822ae0ce4631f2eddf Mon Sep 17 00:00:00 2001 From: Ezequiel Bergamaschi Date: Wed, 16 Apr 2014 01:47:40 -0300 Subject: [PATCH 10/57] removing fixme from dialogForm function --- wise-webapp/src/main/webapp/js/mindmapList.js | 10 +++------- wise-webapp/src/main/webapp/jsp/mindmapList.jsp | 3 ++- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/wise-webapp/src/main/webapp/js/mindmapList.js b/wise-webapp/src/main/webapp/js/mindmapList.js index 8cb84100..70867cb9 100644 --- a/wise-webapp/src/main/webapp/js/mindmapList.js +++ b/wise-webapp/src/main/webapp/js/mindmapList.js @@ -78,7 +78,8 @@ jQuery.fn.dialogForm = function (options) { // Clear form values ... if (options.clearForm == undefined || options.clearForm) { - $("#" + containerId).find('input[name!="color"]').val(''); + //FIXME: icon and color should be handled as exceptions.. + $("#" + containerId).find('input[name!="color"]input[name!="icon"]').val(''); } // Clear button "Saving..." state ... @@ -91,12 +92,6 @@ jQuery.fn.dialogForm = function (options) { formData[elem.name] = elem.value; }); - // FIX: How should I do this? - var icon = $("#defaultIcon"); - if (icon) { - formData["icon"] = icon.find('i').attr('class'); - } - // Success actions ... var onSuccess = function (jqXHR, textStatus, data) { var resourceId = jqXHR ? jqXHR.getResponseHeader("ResourceId") : undefined; @@ -545,6 +540,7 @@ $(function () { defaultIcon.find("i").remove(); var myClass = $(this).attr("class"); defaultIcon.prepend(""); + defaultIcon.closest("#iconGroup").find('input').val(myClass); }); }); diff --git a/wise-webapp/src/main/webapp/jsp/mindmapList.jsp b/wise-webapp/src/main/webapp/jsp/mindmapList.jsp index e8c848f1..39df6061 100644 --- a/wise-webapp/src/main/webapp/jsp/mindmapList.jsp +++ b/wise-webapp/src/main/webapp/jsp/mindmapList.jsp @@ -353,7 +353,8 @@
    - + +
  • ').attr('value', value.id).attr('color', value.color) + $('
  • ').attr('value', value.id).attr('color', value.color).attr('icon', value.icon) .append( '
    ' + + "
    " + "
    " + "
    " + value.title + "
    " + '
    ') diff --git a/wise-webapp/src/main/webapp/jsp/mindmapList.jsp b/wise-webapp/src/main/webapp/jsp/mindmapList.jsp index 39df6061..ca4b429a 100644 --- a/wise-webapp/src/main/webapp/jsp/mindmapList.jsp +++ b/wise-webapp/src/main/webapp/jsp/mindmapList.jsp @@ -360,7 +360,7 @@ - From 96068e05d4ff25093a932041f00ccd0a3fbc65f3 Mon Sep 17 00:00:00 2001 From: Claudio Barril Date: Wed, 16 Apr 2014 03:00:00 -0300 Subject: [PATCH 15/57] label icon list reduced --- .../src/main/webapp/jsp/labelIconList.jsp | 33 +------------------ 1 file changed, 1 insertion(+), 32 deletions(-) diff --git a/wise-webapp/src/main/webapp/jsp/labelIconList.jsp b/wise-webapp/src/main/webapp/jsp/labelIconList.jsp index f909a0fe..83a3f789 100644 --- a/wise-webapp/src/main/webapp/jsp/labelIconList.jsp +++ b/wise-webapp/src/main/webapp/jsp/labelIconList.jsp @@ -1,4 +1,5 @@ <%@page pageEncoding="UTF-8" %> +
    • @@ -17,30 +18,22 @@
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • @@ -49,14 +42,7 @@
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • @@ -65,7 +51,6 @@
    • -
    • @@ -83,8 +68,6 @@
    • -
    • -
    • @@ -99,12 +82,9 @@
    • -
    • -
    • -
    • @@ -124,8 +104,6 @@
    • -
    • -
    • @@ -133,15 +111,8 @@
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • @@ -158,6 +129,4 @@
    • -
    • -
    \ No newline at end of file From 8b679bae00bd879451c46abe58bf6f1b1beaf573 Mon Sep 17 00:00:00 2001 From: Claudio Barril Date: Wed, 16 Apr 2014 10:29:36 -0300 Subject: [PATCH 16/57] fixing tests broken because refactor of label attribute icon --- .../src/main/java/com/wisemapping/validator/LabelValidator.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wise-webapp/src/main/java/com/wisemapping/validator/LabelValidator.java b/wise-webapp/src/main/java/com/wisemapping/validator/LabelValidator.java index 2dbc2f9a..bd5e2035 100644 --- a/wise-webapp/src/main/java/com/wisemapping/validator/LabelValidator.java +++ b/wise-webapp/src/main/java/com/wisemapping/validator/LabelValidator.java @@ -37,7 +37,7 @@ public class LabelValidator implements Validator { private void validateLabel(@NotNull final Label label, @NotNull final Errors errors) { ValidationUtils.rejectIfEmptyOrWhitespace(errors, "title", Messages.FIELD_REQUIRED); ValidationUtils.rejectIfEmptyOrWhitespace(errors, "color", Messages.FIELD_REQUIRED); - ValidationUtils.rejectIfEmptyOrWhitespace(errors, "icon", Messages.FIELD_REQUIRED); + ValidationUtils.rejectIfEmptyOrWhitespace(errors, "iconName", Messages.FIELD_REQUIRED); final String title = label.getTitle(); ValidatorUtils.rejectIfExceeded( errors, From 7ea9da3512280cb025b9c3922b46a762dfe2631e Mon Sep 17 00:00:00 2001 From: Ezequiel Bergamaschi Date: Thu, 17 Apr 2014 01:29:44 -0300 Subject: [PATCH 17/57] popovers for icons in label icon chooser --- .../src/main/resources/messages_en.properties | 126 ++++++++++++++++++ wise-webapp/src/main/webapp/js/mindmapList.js | 14 +- 2 files changed, 139 insertions(+), 1 deletion(-) diff --git a/wise-webapp/src/main/resources/messages_en.properties b/wise-webapp/src/main/resources/messages_en.properties index 5f667902..0ce64939 100644 --- a/wise-webapp/src/main/resources/messages_en.properties +++ b/wise-webapp/src/main/resources/messages_en.properties @@ -282,6 +282,132 @@ OPEN_OFFICE_EXPORT_FORMAT_DETAILS=Get your map as OpenOffice Write Document MINDJET_EXPORT_FORMAT=(BETA) MindJet 8.x MINDJET_EXPORT_FORMAT_DETAILS=Export your maps in MindJet 8.x format MINDMAP_IS_LOCKED=Mindmap is locked for edition. +# icons.. +ASTERISK=Asterisk +PLUS=Plus +EURO=Euro +MINUS=Minus +CLOUD=Cloud +ENVELOPE=Envelope +PENCIL=Pencil +CLASS=Glass +MUSIC=Music +HEART=Heart +STAR=Star +STAR-EMPTY=Empty Star +USER=User +FILM=Film +OK=Ok +REMOVE=Remove +SIGNAL=Signal +COG=Cog +TRASH=Trash +FILE=File +TIME=Time +DOWNLOAD-ALT=Download +DOWNLOAD=Download +UPLOAD=Upload +INBOX=Inbox +REPEAT=Repeat +REFRESH=Refresh +LIST-ALT=List +LOCK=Lock +FLAG=Flag +HEADPHONES=Headphones +GRCODE=GR Code +BARCODE=Barcode +TAG=Tag +TAGS=Tags +BOOK=Book +BOOKMARK=Bookmark +PRING=Print +CAMERA=Camera +LIST=List +FACETIME-VIDEO=Facetime Video +PICTURE=Picture +MAP-MARKER=Map Maker +ADJUST=Adjust +TINT=Tint +EDIT=Edit +CHECK=Check +CHEVRON-LEFT=Chevron Left +CHEVRON-RIGHT=Chevron Right +PLUS-SIGN=Plus Sign +MINUS-SIGN=Minus Sign +REMOVE-SIGN=Remove Sign +OK-SIGN=Ok Sign +QUESTION-SIGN=Question Sign +INFO-SIGN=Info Sign +SCREENSHOT=Screenshot +REMOVE-CIRCLE=Remove Circle +OK-CIRCLE=Ok Circle +BAN-CIRCLE=Ban Circle +ARROW-LEFT=Arrow Left +ARROW-RIGHT=Arrow Right +ARROW-UP=Arrow Up +ARROW-DOWN=Arrow Down +SHARE-ALT=Share +EXCLAMATION-SIGN=Exclamation +GIFT=Gift +LEAF=Leaf +FIRE=Fire +EYE-OPEN=Open eye +EYE-CLOSE=Closed eye +WARNING-SIGN=Warning +PLANE=Plane +CALENDAR=Calendar +RANDOM=Random +COMMENT=Comment +MAGNET=Magnet +CHEVRON-UP=Chevrop Up +CHEVRON-DOWN=Chevron Down +SHOPPING-CART=Shopping +FOLDER-CLOSE=Closed Folder +FOLDER-OPEN=Open Folder +HDD=HDD +BULLHORN=Bullhorn +BELL=Bell +CERTIFICATE=Certificate +THUMBS-UP=Thumbs up +THUMBS-DOWN=Thumbs down +HAND-RIGHT=Hand right +HAND-LEFT=Hand left +HAND-UP=Hang up +HAND-DOWN=Hang down +CIRCLE-ARROW-RIGHT=Circle right +CIRCLE-ARROW-LEFT=Circle left +CIRCLE-ARROW-UP=Circle up +CIRCLE-ARROW-DOWN=Circle down +GLOBE=Globe +WRENCH=Wrench +TASKS=Tasks +FILTER=Filter +BRIEFCASE=Briefcase +PAPERCLIP=Paperclip +HEART-EMPTY=Empty Heart +LINK=Link +PHONE=Phone +PUSHPIN=Pushpin +USD=USD +GBP=GBP +UNCHECKED=Unchecked +FLASH=Flash +RECORD=Record +SAVED=Saved +SEND=Send +FLOPPY-DISK=Floppy Disk +TRANSFER +CUTLERY=Cutlery +HEADER=Header +COMPRESSED=Compressed +EARPHONE=Earphone +PHONE-ALT=Phone +TOWER=Tower +STATS=Stats +COPYRIGTH-MARK=Copyright +REGISTRATION-MARK=Registration Mark +CLOUD-DOWNLOAD=Cloud Download +CLOUD-UPLOAD=Cloud Updload diff --git a/wise-webapp/src/main/webapp/js/mindmapList.js b/wise-webapp/src/main/webapp/js/mindmapList.js index 5f4dd119..67addd10 100644 --- a/wise-webapp/src/main/webapp/js/mindmapList.js +++ b/wise-webapp/src/main/webapp/js/mindmapList.js @@ -539,7 +539,19 @@ $(function () { }); - $(".bs-glyphicons-list li").on("click", function(){ + //init popovers... + var icons = $(".bs-glyphicons-list li"); + icons.each(function() { + $(this).popover({ + animation: true, + placement: "auto", + trigger: 'hover', + //FIXME: Which is the best way to use messages.properties here? + content: ($(this).attr('class').replace('glyphicon glyphicon-','')) + }) + }); + + icons.on("click", function(){ var defaultIcon = $("#defaultIcon"); //remove current icon defaultIcon.find("i").remove(); From fccbf7b99681bda10faa7ff9bb41e9d9fe287cbe Mon Sep 17 00:00:00 2001 From: Paulo Gustavo Veiga Date: Fri, 18 Apr 2014 19:13:55 -0300 Subject: [PATCH 18/57] Update analitics tracking code. --- .../src/main/webapp/jsp/googleAnalytics.jsf | 22 ++++++++----------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/wise-webapp/src/main/webapp/jsp/googleAnalytics.jsf b/wise-webapp/src/main/webapp/jsp/googleAnalytics.jsf index e424a3c5..18d5993e 100644 --- a/wise-webapp/src/main/webapp/jsp/googleAnalytics.jsf +++ b/wise-webapp/src/main/webapp/jsp/googleAnalytics.jsf @@ -1,19 +1,15 @@ <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> - \ No newline at end of file From 1f61a40e5c5c82eafeede780a06b2bc9f31d79c8 Mon Sep 17 00:00:00 2001 From: Paulo Gustavo Veiga Date: Fri, 18 Apr 2014 19:48:09 -0300 Subject: [PATCH 19/57] Update ads codes. --- .../src/main/webapp/jsp/mindmapList.jsp | 20 +++++------ wise-webapp/src/main/webapp/jsp/template.jsp | 35 ++++++++++++------- 2 files changed, 30 insertions(+), 25 deletions(-) diff --git a/wise-webapp/src/main/webapp/jsp/mindmapList.jsp b/wise-webapp/src/main/webapp/jsp/mindmapList.jsp index 2f5566cb..bceaafa0 100644 --- a/wise-webapp/src/main/webapp/jsp/mindmapList.jsp +++ b/wise-webapp/src/main/webapp/jsp/mindmapList.jsp @@ -257,19 +257,15 @@
    - + + + -
    - -
    diff --git a/wise-webapp/src/main/webapp/jsp/template.jsp b/wise-webapp/src/main/webapp/jsp/template.jsp index c5b87b61..03dcdde7 100644 --- a/wise-webapp/src/main/webapp/jsp/template.jsp +++ b/wise-webapp/src/main/webapp/jsp/template.jsp @@ -55,28 +55,37 @@
    -
    +
    - + + + -
    - -
    + +
    + + + + +
    +
    From 10ff33be13101122a303929453d768c770a9f28b Mon Sep 17 00:00:00 2001 From: Ezequiel Bergamaschi Date: Sat, 19 Apr 2014 14:18:35 -0300 Subject: [PATCH 20/57] fixing wrong reference variable --- wise-webapp/src/main/webapp/js/mindmapList.js | 8 +++----- wise-webapp/src/main/webapp/jsp/mindmapList.jsp | 2 +- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/wise-webapp/src/main/webapp/js/mindmapList.js b/wise-webapp/src/main/webapp/js/mindmapList.js index 67addd10..fc2fa0f3 100644 --- a/wise-webapp/src/main/webapp/js/mindmapList.js +++ b/wise-webapp/src/main/webapp/js/mindmapList.js @@ -66,7 +66,6 @@ jQuery.fn.dataTableExt.removeSelectedRows = function () { updateStatusToolbar(); }; - jQuery.fn.dialogForm = function (options) { var containerId = this[0].id; @@ -79,7 +78,7 @@ jQuery.fn.dialogForm = function (options) { // Clear form values ... if (options.clearForm == undefined || options.clearForm) { //FIXME: icon and color should be handled as exceptions.. - $("#" + containerId).find('input[name!="color"]input[name!="icon"]').val(''); + $("#" + containerId).find('input[name!="color"]input[name!="iconName"]').val(''); } // Clear button "Saving..." state ... @@ -178,7 +177,6 @@ jQuery.fn.dialogForm = function (options) { }; - // Update toolbar events ... function updateStatusToolbar() { @@ -567,7 +565,7 @@ function createLabelItem(data, id) { var labelItem = $("
  • "); labelItem.append( " " + - "" + + "" + "
    " + "
    " + data.title + "
    " + "" + @@ -641,7 +639,7 @@ function prepareLabelList(labels) { $('
  • ').attr('value', value.id).attr('color', value.color).attr('icon', value.icon) .append( '' + - "
    " + + "
    " + "
    " + "
    " + value.title + "
    " + '
    ') diff --git a/wise-webapp/src/main/webapp/jsp/mindmapList.jsp b/wise-webapp/src/main/webapp/jsp/mindmapList.jsp index adc2e25f..6ae0df9d 100644 --- a/wise-webapp/src/main/webapp/jsp/mindmapList.jsp +++ b/wise-webapp/src/main/webapp/jsp/mindmapList.jsp @@ -354,7 +354,7 @@
    - +
    From aac835a516604199483ec52d208b301135675e4e Mon Sep 17 00:00:00 2001 From: Paulo Gustavo Veiga Date: Sun, 27 Apr 2014 11:13:38 -0300 Subject: [PATCH 26/57] Fix SQL names. --- .../mysql/{v3.0-to-v3.1.sql => v3.0-to-v3.0.1.sql} | 0 .../mysql/{v3.1-to-v3.3.sql => v3.0.1-to-v3.0.3.sql} | 7 ++++++- config/database/mysql/v3.3-to-v3.4.sql | 4 ---- 3 files changed, 6 insertions(+), 5 deletions(-) rename config/database/mysql/{v3.0-to-v3.1.sql => v3.0-to-v3.0.1.sql} (100%) rename config/database/mysql/{v3.1-to-v3.3.sql => v3.0.1-to-v3.0.3.sql} (87%) delete mode 100644 config/database/mysql/v3.3-to-v3.4.sql diff --git a/config/database/mysql/v3.0-to-v3.1.sql b/config/database/mysql/v3.0-to-v3.0.1.sql similarity index 100% rename from config/database/mysql/v3.0-to-v3.1.sql rename to config/database/mysql/v3.0-to-v3.0.1.sql diff --git a/config/database/mysql/v3.1-to-v3.3.sql b/config/database/mysql/v3.0.1-to-v3.0.3.sql similarity index 87% rename from config/database/mysql/v3.1-to-v3.3.sql rename to config/database/mysql/v3.0.1-to-v3.0.3.sql index 6d16873e..1ff82e5d 100644 --- a/config/database/mysql/v3.1-to-v3.3.sql +++ b/config/database/mysql/v3.0.1-to-v3.0.3.sql @@ -29,6 +29,11 @@ CREATE TABLE R_LABEL_MINDMAP ( ON DELETE CASCADE ON UPDATE NO ACTION ) - CHARACTER SET utf8; +ALTER TABLE `LABEL` + ADD COLUMN iconName VARCHAR(50) NOT NULL; + +UPDATE LABEL SET iconName = 'glyphicon glyphicon-tag'; + +CHARACTER SET utf8; diff --git a/config/database/mysql/v3.3-to-v3.4.sql b/config/database/mysql/v3.3-to-v3.4.sql deleted file mode 100644 index fa2381c8..00000000 --- a/config/database/mysql/v3.3-to-v3.4.sql +++ /dev/null @@ -1,4 +0,0 @@ -ALTER TABLE `LABEL` - ADD COLUMN iconName VARCHAR(50) NOT NULL; - -UPDATE LABEL SET iconName = 'glyphicon glyphicon-tag'; From 8aea5499d3a1f49da4afd783d56f83a7ff524342 Mon Sep 17 00:00:00 2001 From: Paulo Gustavo Veiga Date: Sun, 27 Apr 2014 12:05:49 -0300 Subject: [PATCH 27/57] Remove all used users for setup. Pending to define data set. --- config/database/hsql/apopulate-schemas.sql | 39 +-------------------- config/database/mysql/apopulate-schemas.sql | 37 ------------------- 2 files changed, 1 insertion(+), 75 deletions(-) diff --git a/config/database/hsql/apopulate-schemas.sql b/config/database/hsql/apopulate-schemas.sql index 0d4e071f..35351bc8 100644 --- a/config/database/hsql/apopulate-schemas.sql +++ b/config/database/hsql/apopulate-schemas.sql @@ -6,42 +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'); - -INSERT INTO MINDMAP (id, title, xml, description, public, creation_date, edition_date, creator_id, tags, last_editor_id) - VALUES (1, 'Welcome Test', x'504B0304140008080800ED036F4400000000000000000000000007000000636F6E74656E74AD57DD8EDA3814BEEF53B8E9452F360CF985B0C0542C43D5B960355259ED45558D9CC464AC3176E43843A76FB3CFD0479817DB1393F0938442871A09417EFC7DE7F83BDFB1472B9C228E57646CE4194E88819E88CCA8E06343619E08E3FA0D82315222A5118A08571233B827737854916F6A6C4CC54A20F822FC3B96E88381683C366C032D05579FD53383A987C377448FE17068A030990A26E4D8786761F8042586C6A191E07A828C26FCFE81B0D4E8EEDDDED048454695E668F76DB3E3590612322630A35591BA93F02489714C321413B478F9012F8AAC24D760E7E95163E7F856485C638B5E8E506EE90796EF0FF6E8B78410611E11B61F446B20CEC0373B03671B885D053249244920AF7F0B854BFAAE5D83D43372A1C8F5E8ED97E9CD6431F932CB9440107BCEB17E15BDFDFAF57AD4D50F1D32E96A2A27E8B90EE4D9B68366A22B7E33CE70048018DDE184729CA17F49B8E1DB3F9EED963818E58F289720B207A5D23FBBDDF57A7D9508913072158915E03EA7855A6533A9E785625B108AB78DC4AD2299E74CD194410C903CCA8416CEC71C244F1A1A28865E0AA72D843AA46739ED2AD5422A17D5AD6769B9B4601459EA9E8B61BB4D0195C194287E0D65180A160FA9C28C46E70259A6BD13AA53E12C687A90B20D5EEF006F4157241BF6862D419DB97810A5BB53A157817F14720592BBA14B220B7408377BC0854E24891406ED6CF804AD2B794C9DA78B36303BBD5E3317B7600155CA3DB74D225B935842D5DCAF41F32713D2BC50E7D3B18343423B11C434A22F3F38FA27C33C0667606841228663B121E938C76BB4E17F5B83C4716C2FFB47FDEF01CBF8FE913C87027E9C4C66C7F582C26306FB65A2B9F57EC93F8A80773E38174F4411702725775D00BA15473386A6B9CC84D4C6A8DF7A85203BAE0FCE18047B296F53D8B653D2A24B8249CEB248D2904A704B09FF62A84009660DABF24D556BE2FD56B102D3BED9290CA06E7C7792141DBF303E281D89D28252E5EB05A74DDAD0270245C6C5513374EAE6F24BECFA60CBBD165F29D96134559275E744E13FDA697ECEC38AEA718ACD767E614EA16DB7F8D1FCE5BF0C7DB8429FA0BA5104DEFA882847EF2711B4C8C22569614B227B8FB00419E0CD82FBD6C15EE764B9DBAE670E5A32063283DC285A76969F94CF5E2DC35E295C2EEBB5DC703CDF357B7EB391DDF22750309AAC68228A3D00CC8A4321714961F07A61384ECF6CDB17CD562109410584A3BF9848AA9D9D750112D4C7BEFDEC149887B08218A91CCD715AEDC2ECF3D47E8E6BF703B36F37EB529BB6D87AF65CE459D9C65EE5D6F120F4EDE0E76EBDD218A765EFF44DC7A91BB577814FDF88901134D595024BBAE73AE99E416A77BCD0AF3DDBF4FBFB7AD2FB94DF475DF39D4A52D02DFBCD858C21D98765AECDE202C61329710607B95D43D4A4EF00B3101CBEB425BA3DD821BA4D418390F5CE43081656D6E0F48F56CBE11F49182E00B2079AA24C468BE2DE6DB97781639EDA5D30101C22C8429F13009CF0182216EBEAD89A819454796589D946F0A32E9C84AFDFFC0F504B070890C15C185C040000100F0000504B01021400140008080800ED036F4490C15C185C040000100F0000070000000000000000000000000000000000636F6E74656E74504B0506000000000100010035000000910400000000', '', 0, now(), now(), 1, NULL, 1); -INSERT INTO COLLABORATION_PROPERTIES (id, starred, mindmap_properties) VALUES (1, 0, '{zoom:0.8}'); -INSERT INTO COLLABORATION (id, colaborator_id, properties_id, mindmap_id, role_id) VALUES (1, 1, 1, 1, 0); - -INSERT INTO COLLABORATION_PROPERTIES (id, starred, mindmap_properties) VALUES (2, 1, '{zoom:0.8}'); -INSERT INTO COLLABORATION (id, colaborator_id, properties_id, mindmap_id, role_id) VALUES (2, 2, 2, 1, 1); - -INSERT INTO LABEL (id, title, creator_id, parent_label_id, color, iconName) VALUES (1, 'test label', 1, NULL, '#ff0000', 'glyphicon glyphicon-tag'); -INSERT INTO R_LABEL_MINDMAP (label_id, mindmap_id) VALUES (1,1); - -INSERT INTO MINDMAP (id, title, xml, description, public, creation_date, edition_date, creator_id, tags, last_editor_id) - VALUES (2, 'Welcome Admin', x'504B0304140008080800ED036F4400000000000000000000000007000000636F6E74656E74AD57DD8EDA3814BEEF53B8E9452F360CF985B0C0542C43D5B960355259ED45558D9CC464AC3176E43843A76FB3CFD0479817DB1393F0938442871A09417EFC7DE7F83BDFB1472B9C228E57646CE4194E88819E88CCA8E06343619E08E3FA0D82315222A5118A08571233B827737854916F6A6C4CC54A20F822FC3B96E88381683C366C032D05579FD53383A987C377448FE17068A030990A26E4D8786761F8042586C6A191E07A828C26FCFE81B0D4E8EEDDDED048454695E668F76DB3E3590612322630A35591BA93F02489714C321413B478F9012F8AAC24D760E7E95163E7F856485C638B5E8E506EE90796EF0FF6E8B78410611E11B61F446B20CEC0373B03671B885D053249244920AF7F0B854BFAAE5D83D43372A1C8F5E8ED97E9CD6431F932CB9440107BCEB17E15BDFDFAF57AD4D50F1D32E96A2A27E8B90EE4D9B68366A22B7E33CE70048018DDE184729CA17F49B8E1DB3F9EED963818E58F289720B207A5D23FBBDDF57A7D9508913072158915E03EA7855A6533A9E785625B108AB78DC4AD2299E74CD194410C903CCA8416CEC71C244F1A1A28865E0AA72D843AA46739ED2AD5422A17D5AD6769B9B4601459EA9E8B61BB4D0195C194287E0D65180A160FA9C28C46E70259A6BD13AA53E12C687A90B20D5EEF006F4157241BF6862D419DB97810A5BB53A157817F14720592BBA14B220B7408377BC0854E24891406ED6CF804AD2B794C9DA78B36303BBD5E3317B7600155CA3DB74D225B935842D5DCAF41F32713D2BC50E7D3B18343423B11C434A22F3F38FA27C33C0667606841228663B121E938C76BB4E17F5B83C4716C2FFB47FDEF01CBF8FE913C87027E9C4C66C7F582C26306FB65A2B9F57EC93F8A80773E38174F4411702725775D00BA15473386A6B9CC84D4C6A8DF7A85203BAE0FCE18047B296F53D8B653D2A24B8249CEB248D2904A704B09FF62A84009660DABF24D556BE2FD56B102D3BED9290CA06E7C7792141DBF303E281D89D28252E5EB05A74DDAD0270245C6C5513374EAE6F24BECFA60CBBD165F29D96134559275E744E13FDA697ECEC38AEA718ACD767E614EA16DB7F8D1FCE5BF0C7DB8429FA0BA5104DEFA882847EF2711B4C8C22569614B227B8FB00419E0CD82FBD6C15EE764B9DBAE670E5A32063283DC285A76969F94CF5E2DC35E295C2EEBB5DC703CDF357B7EB391DDF22750309AAC68228A3D00CC8A4321714961F07A61384ECF6CDB17CD562109410584A3BF9848AA9D9D750112D4C7BEFDEC149887B08218A91CCD715AEDC2ECF3D47E8E6BF703B36F37EB529BB6D87AF65CE459D9C65EE5D6F120F4EDE0E76EBDD218A765EFF44DC7A91BB577814FDF88901134D595024BBAE73AE99E416A77BCD0AF3DDBF4FBFB7AD2FB94DF475DF39D4A52D02DFBCD858C21D98765AECDE202C61329710607B95D43D4A4EF00B3101CBEB425BA3DD821BA4D418390F5CE43081656D6E0F48F56CBE11F49182E00B2079AA24C468BE2DE6DB97781639EDA5D30101C22C8429F13009CF0182216EBEAD89A819454796589D946F0A32E9C84AFDFFC0F504B070890C15C185C040000100F0000504B01021400140008080800ED036F4490C15C185C040000100F0000070000000000000000000000000000000000636F6E74656E74504B0506000000000100010035000000910400000000', 'This is a short description', 0, now(), now(), 2, NULL, 2); -INSERT INTO COLLABORATION_PROPERTIES (id, starred, mindmap_properties) VALUES (3, 1, '{zoom:0.8}'); -INSERT INTO COLLABORATION (id, colaborator_id, properties_id, mindmap_id, role_id) VALUES (3, 2, 3, 2, 0); - -INSERT INTO LABEL (id, title, creator_id, parent_label_id, color, iconName) VALUES (2, 'admin label', 2, NULL, '#0000ff', 'glyphicon glyphicon-star'); -INSERT INTO R_LABEL_MINDMAP (label_id, mindmap_id) VALUES (2,2); -INSERT INTO LABEL (id, title, creator_id, parent_label_id, color, iconName) VALUES (3, 'mindmap shared', 2, NULL, '#00ff00', 'glyphicon glyphicon-share'); -INSERT INTO R_LABEL_MINDMAP (label_id, mindmap_id) VALUES (3,1); - COMMIT; -SHUTDOWN; \ No newline at end of file +SHUTDOWN; diff --git a/config/database/mysql/apopulate-schemas.sql b/config/database/mysql/apopulate-schemas.sql index 8db7865a..4db8f325 100644 --- a/config/database/mysql/apopulate-schemas.sql +++ b/config/database/mysql/apopulate-schemas.sql @@ -10,41 +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'); - -INSERT INTO MINDMAP (id, title, xml, description, public, creation_date, edition_date, creator_id, tags, last_editor_id) - VALUES (1, 'Welcome Test', 0x504B0304140008080800ED036F4400000000000000000000000007000000636F6E74656E74AD57DD8EDA3814BEEF53B8E9452F360CF985B0C0542C43D5B960355259ED45558D9CC464AC3176E43843A76FB3CFD0479817DB1393F0938442871A09417EFC7DE7F83BDFB1472B9C228E57646CE4194E88819E88CCA8E06343619E08E3FA0D82315222A5118A08571233B827737854916F6A6C4CC54A20F822FC3B96E88381683C366C032D05579FD53383A987C377448FE17068A030990A26E4D8786761F8042586C6A191E07A828C26FCFE81B0D4E8EEDDDED048454695E668F76DB3E3590612322630A35591BA93F02489714C321413B478F9012F8AAC24D760E7E95163E7F856485C638B5E8E506EE90796EF0FF6E8B78410611E11B61F446B20CEC0373B03671B885D053249244920AF7F0B854BFAAE5D83D43372A1C8F5E8ED97E9CD6431F932CB9440107BCEB17E15BDFDFAF57AD4D50F1D32E96A2A27E8B90EE4D9B68366A22B7E33CE70048018DDE184729CA17F49B8E1DB3F9EED963818E58F289720B207A5D23FBBDDF57A7D9508913072158915E03EA7855A6533A9E785625B108AB78DC4AD2299E74CD194410C903CCA8416CEC71C244F1A1A28865E0AA72D843AA46739ED2AD5422A17D5AD6769B9B4601459EA9E8B61BB4D0195C194287E0D65180A160FA9C28C46E70259A6BD13AA53E12C687A90B20D5EEF006F4157241BF6862D419DB97810A5BB53A157817F14720592BBA14B220B7408377BC0854E24891406ED6CF804AD2B794C9DA78B36303BBD5E3317B7600155CA3DB74D225B935842D5DCAF41F32713D2BC50E7D3B18343423B11C434A22F3F38FA27C33C0667606841228663B121E938C76BB4E17F5B83C4716C2FFB47FDEF01CBF8FE913C87027E9C4C66C7F582C26306FB65A2B9F57EC93F8A80773E38174F4411702725775D00BA15473386A6B9CC84D4C6A8DF7A85203BAE0FCE18047B296F53D8B653D2A24B8249CEB248D2904A704B09FF62A84009660DABF24D556BE2FD56B102D3BED9290CA06E7C7792141DBF303E281D89D28252E5EB05A74DDAD0270245C6C5513374EAE6F24BECFA60CBBD165F29D96134559275E744E13FDA697ECEC38AEA718ACD767E614EA16DB7F8D1FCE5BF0C7DB8429FA0BA5104DEFA882847EF2711B4C8C22569614B227B8FB00419E0CD82FBD6C15EE764B9DBAE670E5A32063283DC285A76969F94CF5E2DC35E295C2EEBB5DC703CDF357B7EB391DDF22750309AAC68228A3D00CC8A4321714961F07A61384ECF6CDB17CD562109410584A3BF9848AA9D9D750112D4C7BEFDEC149887B08218A91CCD715AEDC2ECF3D47E8E6BF703B36F37EB529BB6D87AF65CE459D9C65EE5D6F120F4EDE0E76EBDD218A765EFF44DC7A91BB577814FDF88901134D595024BBAE73AE99E416A77BCD0AF3DDBF4FBFB7AD2FB94DF475DF39D4A52D02DFBCD858C21D98765AECDE202C61329710607B95D43D4A4EF00B3101CBEB425BA3DD821BA4D418390F5CE43081656D6E0F48F56CBE11F49182E00B2079AA24C468BE2DE6DB97781639EDA5D30101C22C8429F13009CF0182216EBEAD89A819454796589D946F0A32E9C84AFDFFC0F504B070890C15C185C040000100F0000504B01021400140008080800ED036F4490C15C185C040000100F0000070000000000000000000000000000000000636F6E74656E74504B0506000000000100010035000000910400000000, '', 0, now(), now(), 1, NULL, 1); -INSERT INTO COLLABORATION_PROPERTIES (id, starred, mindmap_properties) VALUES (1, 0, '{zoom:0.8}'); -INSERT INTO COLLABORATION (id, colaborator_id, properties_id, mindmap_id, role_id) VALUES (1, 1, 1, 1, 0); - -INSERT INTO COLLABORATION_PROPERTIES (id, starred, mindmap_properties) VALUES (2, 1, '{zoom:0.8}'); -INSERT INTO COLLABORATION (id, colaborator_id, properties_id, mindmap_id, role_id) VALUES (2, 2, 2, 1, 1); - -INSERT INTO LABEL (id, title, creator_id, parent_label_id, color, iconName) VALUES (1, 'test label', 1, NULL, '#ff0000', 'glyphicon glyphicon-tag'); -INSERT INTO R_LABEL_MINDMAP (label_id, mindmap_id) VALUES (1,1); - -INSERT INTO MINDMAP (id, title, xml, description, public, creation_date, edition_date, creator_id, tags, last_editor_id) - VALUES (2, 'Welcome Admin', 0x504B0304140008080800ED036F4400000000000000000000000007000000636F6E74656E74AD57DD8EDA3814BEEF53B8E9452F360CF985B0C0542C43D5B960355259ED45558D9CC464AC3176E43843A76FB3CFD0479817DB1393F0938442871A09417EFC7DE7F83BDFB1472B9C228E57646CE4194E88819E88CCA8E06343619E08E3FA0D82315222A5118A08571233B827737854916F6A6C4CC54A20F822FC3B96E88381683C366C032D05579FD53383A987C377448FE17068A030990A26E4D8786761F8042586C6A191E07A828C26FCFE81B0D4E8EEDDDED048454695E668F76DB3E3590612322630A35591BA93F02489714C321413B478F9012F8AAC24D760E7E95163E7F856485C638B5E8E506EE90796EF0FF6E8B78410611E11B61F446B20CEC0373B03671B885D053249244920AF7F0B854BFAAE5D83D43372A1C8F5E8ED97E9CD6431F932CB9440107BCEB17E15BDFDFAF57AD4D50F1D32E96A2A27E8B90EE4D9B68366A22B7E33CE70048018DDE184729CA17F49B8E1DB3F9EED963818E58F289720B207A5D23FBBDDF57A7D9508913072158915E03EA7855A6533A9E785625B108AB78DC4AD2299E74CD194410C903CCA8416CEC71C244F1A1A28865E0AA72D843AA46739ED2AD5422A17D5AD6769B9B4601459EA9E8B61BB4D0195C194287E0D65180A160FA9C28C46E70259A6BD13AA53E12C687A90B20D5EEF006F4157241BF6862D419DB97810A5BB53A157817F14720592BBA14B220B7408377BC0854E24891406ED6CF804AD2B794C9DA78B36303BBD5E3317B7600155CA3DB74D225B935842D5DCAF41F32713D2BC50E7D3B18343423B11C434A22F3F38FA27C33C0667606841228663B121E938C76BB4E17F5B83C4716C2FFB47FDEF01CBF8FE913C87027E9C4C66C7F582C26306FB65A2B9F57EC93F8A80773E38174F4411702725775D00BA15473386A6B9CC84D4C6A8DF7A85203BAE0FCE18047B296F53D8B653D2A24B8249CEB248D2904A704B09FF62A84009660DABF24D556BE2FD56B102D3BED9290CA06E7C7792141DBF303E281D89D28252E5EB05A74DDAD0270245C6C5513374EAE6F24BECFA60CBBD165F29D96134559275E744E13FDA697ECEC38AEA718ACD767E614EA16DB7F8D1FCE5BF0C7DB8429FA0BA5104DEFA882847EF2711B4C8C22569614B227B8FB00419E0CD82FBD6C15EE764B9DBAE670E5A32063283DC285A76969F94CF5E2DC35E295C2EEBB5DC703CDF357B7EB391DDF22750309AAC68228A3D00CC8A4321714961F07A61384ECF6CDB17CD562109410584A3BF9848AA9D9D750112D4C7BEFDEC149887B08218A91CCD715AEDC2ECF3D47E8E6BF703B36F37EB529BB6D87AF65CE459D9C65EE5D6F120F4EDE0E76EBDD218A765EFF44DC7A91BB577814FDF88901134D595024BBAE73AE99E416A77BCD0AF3DDBF4FBFB7AD2FB94DF475DF39D4A52D02DFBCD858C21D98765AECDE202C61329710607B95D43D4A4EF00B3101CBEB425BA3DD821BA4D418390F5CE43081656D6E0F48F56CBE11F49182E00B2079AA24C468BE2DE6DB97781639EDA5D30101C22C8429F13009CF0182216EBEAD89A819454796589D946F0A32E9C84AFDFFC0F504B070890C15C185C040000100F0000504B01021400140008080800ED036F4490C15C185C040000100F0000070000000000000000000000000000000000636F6E74656E74504B0506000000000100010035000000910400000000, 'This is a short description', 0, now(), now(), 2, NULL, 2); -INSERT INTO COLLABORATION_PROPERTIES (id, starred, mindmap_properties) VALUES (3, 1, '{zoom:0.8}'); -INSERT INTO COLLABORATION (id, colaborator_id, properties_id, mindmap_id, role_id) VALUES (3, 2, 3, 2, 0); - -INSERT INTO LABEL (id, title, creator_id, parent_label_id, color, iconName) VALUES (2, 'admin label', 2, NULL, '#0000ff', 'glyphicon glyphicon-star'); -INSERT INTO R_LABEL_MINDMAP (label_id, mindmap_id) VALUES (2,2); -INSERT INTO LABEL (id, title, creator_id, parent_label_id, color, iconName) VALUES (3, 'mindmap shared', 2, NULL, '#00ff00', 'glyphicon glyphicon-share'); -INSERT INTO R_LABEL_MINDMAP (label_id, mindmap_id) VALUES (3,1); - COMMIT; From 5b588d2425897cc346956c8951fbddfb8c4ae653 Mon Sep 17 00:00:00 2001 From: Paulo Gustavo Veiga Date: Tue, 29 Apr 2014 11:17:20 -0300 Subject: [PATCH 28/57] Rename migration script ... --- .../database/mysql/{v3.0.1-to-v3.0.3.sql => v3.0.2-to-v3.0.3.sql} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename config/database/mysql/{v3.0.1-to-v3.0.3.sql => v3.0.2-to-v3.0.3.sql} (100%) diff --git a/config/database/mysql/v3.0.1-to-v3.0.3.sql b/config/database/mysql/v3.0.2-to-v3.0.3.sql similarity index 100% rename from config/database/mysql/v3.0.1-to-v3.0.3.sql rename to config/database/mysql/v3.0.2-to-v3.0.3.sql From bcdc1a1ca410b3e6b454523e929ec3f5837f0b0f Mon Sep 17 00:00:00 2001 From: Michael Magill Date: Tue, 29 Apr 2014 14:23:29 +0000 Subject: [PATCH 29/57] 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. --- config/database/mysql/v3.0.2-to-v3.0.3.sql | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/config/database/mysql/v3.0.2-to-v3.0.3.sql b/config/database/mysql/v3.0.2-to-v3.0.3.sql index 1ff82e5d..094dfa9d 100644 --- a/config/database/mysql/v3.0.2-to-v3.0.3.sql +++ b/config/database/mysql/v3.0.2-to-v3.0.3.sql @@ -29,11 +29,9 @@ CREATE TABLE R_LABEL_MINDMAP ( ON DELETE CASCADE ON UPDATE NO ACTION ) + CHARACTER SET utf8; + ALTER TABLE `LABEL` ADD COLUMN iconName VARCHAR(50) NOT NULL; UPDATE LABEL SET iconName = 'glyphicon glyphicon-tag'; - -CHARACTER SET utf8; - - From d3b1c9087f67ff2d29fc9c1611d3e07dc21dc1f3 Mon Sep 17 00:00:00 2001 From: Michael Magill Date: Tue, 29 Apr 2014 15:42:31 +0000 Subject: [PATCH 30/57] 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. --- .../main/webapp/js/jquery.timeago.en_us.js | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 wise-webapp/src/main/webapp/js/jquery.timeago.en_us.js diff --git a/wise-webapp/src/main/webapp/js/jquery.timeago.en_us.js b/wise-webapp/src/main/webapp/js/jquery.timeago.en_us.js new file mode 100644 index 00000000..a6d4266a --- /dev/null +++ b/wise-webapp/src/main/webapp/js/jquery.timeago.en_us.js @@ -0,0 +1,20 @@ +// English (US) +jQuery.timeago.settings.strings = { + prefixAgo: null, + prefixFromNow: null, + suffixAgo: "ago", + suffixFromNow: "from now", + seconds: "less than a minute", + minute: "about a minute", + minutes: "%d minutes", + hour: "about an hour", + hours: "about %d hours", + day: "a day", + days: "%d days", + month: "about a month", + months: "%d months", + year: "about a year", + years: "%d years", + wordSeparator: " ", + numbers: [] +}; \ No newline at end of file From 9641e978a6a4bafb5974fa8414248ea4e31ce1e4 Mon Sep 17 00:00:00 2001 From: Ezequiel Bergamaschi Date: Mon, 26 May 2014 00:19:10 -0300 Subject: [PATCH 31/57] adding wisemapping service script --- distribution/package-bin.sh | 1 + distribution/service/wisemapping | 72 ++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100755 distribution/service/wisemapping diff --git a/distribution/package-bin.sh b/distribution/package-bin.sh index 97f4e87a..cae1ff18 100755 --- a/distribution/package-bin.sh +++ b/distribution/package-bin.sh @@ -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 diff --git a/distribution/service/wisemapping b/distribution/service/wisemapping new file mode 100755 index 00000000..95b1e466 --- /dev/null +++ b/distribution/service/wisemapping @@ -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 From 425ac4a7aded5330c7dcae7fed5329b925a3cf7d Mon Sep 17 00:00:00 2001 From: Ezequiel Bergamaschi Date: Thu, 19 Jun 2014 00:43:10 -0300 Subject: [PATCH 32/57] fix alias checking for jetty 9.x --- wise-webapp/jetty.xml | 10 ++++++++++ wise-webapp/pom.xml | 4 +--- wise-webapp/webdefault.xml | 17 ----------------- 3 files changed, 11 insertions(+), 20 deletions(-) create mode 100644 wise-webapp/jetty.xml delete mode 100644 wise-webapp/webdefault.xml diff --git a/wise-webapp/jetty.xml b/wise-webapp/jetty.xml new file mode 100644 index 00000000..e8c4e24f --- /dev/null +++ b/wise-webapp/jetty.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/wise-webapp/pom.xml b/wise-webapp/pom.xml index d0f7513a..0d730e7f 100644 --- a/wise-webapp/pom.xml +++ b/wise-webapp/pom.xml @@ -555,9 +555,7 @@ 9999 ${project.build.directory}/wisemapping.war automatic - - ${project.basedir}/webdefault.xml - + ${project.basedir}/jetty.xml database.base.url diff --git a/wise-webapp/webdefault.xml b/wise-webapp/webdefault.xml deleted file mode 100644 index 9cecd06d..00000000 --- a/wise-webapp/webdefault.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - default - org.eclipse.jetty.servlet.DefaultServlet - - aliases - true - - - \ No newline at end of file From 756afef4b60a3bbda308e975a9a4278ad36b61b9 Mon Sep 17 00:00:00 2001 From: Paulo Gustavo Veiga Date: Wed, 25 Jun 2014 12:31:51 -0300 Subject: [PATCH 33/57] Bug WISE-242 fixed Add support for Firefox 3 --- .../main/java/com/wisemapping/filter/SupportedUserAgent.java | 1 + .../test/java/com/wisemapping/test/model/UserAgentTest.java | 3 +++ 2 files changed, 4 insertions(+) diff --git a/wise-webapp/src/main/java/com/wisemapping/filter/SupportedUserAgent.java b/wise-webapp/src/main/java/com/wisemapping/filter/SupportedUserAgent.java index d50e8e45..2e40ea1b 100644 --- a/wise-webapp/src/main/java/com/wisemapping/filter/SupportedUserAgent.java +++ b/wise-webapp/src/main/java/com/wisemapping/filter/SupportedUserAgent.java @@ -47,6 +47,7 @@ public class SupportedUserAgent implements Serializable { boolean result = browser == Browser.FIREFOX && majorVersion >= 10; result = result || browser == Browser.FIREFOX2 && majorVersion >= 17; + result = result || browser == Browser.FIREFOX3 && majorVersion >= 29; result = result || browser == Browser.IE8 || browser == Browser.IE9 || browser == Browser.IE11 ; result = result || browser == Browser.IE && majorVersion >= 8; result = result || browser == Browser.OPERA10 && majorVersion >= 11; diff --git a/wise-webapp/src/test/java/com/wisemapping/test/model/UserAgentTest.java b/wise-webapp/src/test/java/com/wisemapping/test/model/UserAgentTest.java index 6ae0f326..d347261d 100644 --- a/wise-webapp/src/test/java/com/wisemapping/test/model/UserAgentTest.java +++ b/wise-webapp/src/test/java/com/wisemapping/test/model/UserAgentTest.java @@ -54,6 +54,9 @@ public class UserAgentTest { final SupportedUserAgent firefox20 = SupportedUserAgent.create("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20121215 Firefox/20.0 AppEngine-Google; (+http://code.google.com/appengine; appid: slubuntuk)"); Assert.assertEquals(firefox20.isBrowserSupported(), true); + + final SupportedUserAgent firefox30 = SupportedUserAgent.create("Mozilla/5.0 (Windows NT 5.1; rv:31.0) Gecko/20100101 Firefox/31.0"); + Assert.assertEquals(firefox30.isBrowserSupported(), true); } From 961865eb6f237a064867d0cbd365901c0d3320ff Mon Sep 17 00:00:00 2001 From: Ezequiel Bergamaschi Date: Mon, 18 Aug 2014 20:09:26 -0300 Subject: [PATCH 34/57] Revert "removing unnecesary build" This reverts commit 52cac830ae8b97dd1487be294b1d8f3eeee3f331. --- wise-editor/pom.xml | 57 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/wise-editor/pom.xml b/wise-editor/pom.xml index 6c8b8935..9f6efa4f 100644 --- a/wise-editor/pom.xml +++ b/wise-editor/pom.xml @@ -27,5 +27,62 @@ + + + + org.mortbay.jetty + jetty-maven-plugin + 8.1.14.v20131031 + + + + 8080 + 60000 + + + ${project.build.directory}/wise-editor-${com.wisemapping.version}.war + + + + + maven-war-plugin + 2.1.1 + + js/mindplot-min.js + + + org.wisemapping + core-js + jar + js + + *.js + + + + org.wisemapping + mindplot + jar + css + + **/*.css + **/*.html + + + + org.wisemapping + mindplot + jar + js + + *.js + + + + + + + + From 46fd579933f65398c0f27160f0b2a5b83b7beef1 Mon Sep 17 00:00:00 2001 From: Ezequiel Bergamaschi Date: Mon, 18 Aug 2014 19:20:59 -0300 Subject: [PATCH 35/57] old jetty pom --- wise-webapp/pom.xml | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/wise-webapp/pom.xml b/wise-webapp/pom.xml index 0d730e7f..be8c5d05 100644 --- a/wise-webapp/pom.xml +++ b/wise-webapp/pom.xml @@ -547,9 +547,9 @@ - org.eclipse.jetty + org.mortbay.jetty jetty-maven-plugin - 9.1.1.v20140108 + 8.1.14.v20131031 foo 9999 @@ -557,6 +557,14 @@ automatic ${project.basedir}/jetty.xml + + org.mortbay.util.FileResource.checkAliases + false + + + org.mortbay.util.FileResource.checkAliases + false + database.base.url ${project.build.directory} @@ -596,9 +604,9 @@ - org.eclipse.jetty + org.mortbay.jetty jetty-runner - 9.1.3.v20140225 + 7.4.5.v20110725 jetty-runner.jar From a6eeecbbf76835a603171e492784773f44a4a7cb Mon Sep 17 00:00:00 2001 From: Ezequiel Bergamaschi Date: Mon, 18 Aug 2014 21:10:25 -0300 Subject: [PATCH 36/57] Revert "fix alias checking for jetty 9.x" This reverts commit fff27e1bb70d3fed77b5e646728c4c4e13934631. --- wise-webapp/jetty.xml | 10 ---------- wise-webapp/pom.xml | 4 +++- wise-webapp/webdefault.xml | 17 +++++++++++++++++ 3 files changed, 20 insertions(+), 11 deletions(-) delete mode 100644 wise-webapp/jetty.xml create mode 100644 wise-webapp/webdefault.xml diff --git a/wise-webapp/jetty.xml b/wise-webapp/jetty.xml deleted file mode 100644 index e8c4e24f..00000000 --- a/wise-webapp/jetty.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/wise-webapp/pom.xml b/wise-webapp/pom.xml index be8c5d05..a1f82b27 100644 --- a/wise-webapp/pom.xml +++ b/wise-webapp/pom.xml @@ -555,7 +555,9 @@ 9999 ${project.build.directory}/wisemapping.war automatic - ${project.basedir}/jetty.xml + + ${project.basedir}/webdefault.xml + org.mortbay.util.FileResource.checkAliases diff --git a/wise-webapp/webdefault.xml b/wise-webapp/webdefault.xml new file mode 100644 index 00000000..9cecd06d --- /dev/null +++ b/wise-webapp/webdefault.xml @@ -0,0 +1,17 @@ + + + + + + default + org.eclipse.jetty.servlet.DefaultServlet + + aliases + true + + + \ No newline at end of file From c282a80b5dfb5cd2726d726e66f9691a1cc2c753 Mon Sep 17 00:00:00 2001 From: Ezequiel Bergamaschi Date: Mon, 18 Aug 2014 21:23:42 -0300 Subject: [PATCH 37/57] fix less update and restoring symblinks --- .../libraries/less/less-1.1.3.min.js | 971 ------------------ .../libraries/less/less-1.6.2.min.js | 16 + wise-editor/src/main/webapp/js/less.js | 2 +- wise-webapp/src/main/webapp/js/less.js | 17 +- 4 files changed, 18 insertions(+), 988 deletions(-) delete mode 100644 mindplot/src/main/javascript/libraries/less/less-1.1.3.min.js create mode 100644 mindplot/src/main/javascript/libraries/less/less-1.6.2.min.js mode change 100644 => 120000 wise-webapp/src/main/webapp/js/less.js diff --git a/mindplot/src/main/javascript/libraries/less/less-1.1.3.min.js b/mindplot/src/main/javascript/libraries/less/less-1.1.3.min.js deleted file mode 100644 index ac578485..00000000 --- a/mindplot/src/main/javascript/libraries/less/less-1.1.3.min.js +++ /dev/null @@ -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 = ["
      ",'
    • {0}
    • ',"
    • {current}
    • ",'
    • {2}
    • ',"
    "].join("\n"),f = document.createElement("div"),g,h; - f.id = c,f.className = "less-error-message",h = "

    " + (a.message || "There is an error in your .less file") + "

    " + '

    ' + b + " ",a.extract && (h += "on line " + a.line + ", column " + (a.column + 1) + ":

    " + 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) + '' + a.extract[1].slice(a.column) + "")),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 ? g + (f - g) * a * 6 : a * 2 < 1 ? f : a * 3 < 2 ? g + (f - g) * (2 / 3 - a) * 6 : g - } - - a = c(a) % 360 / 360,b = c(b),d = c(d),e = c(e); - var f = d <= .5 ? d * (b + 1) : d + b - d * b,g = d * 2 - f; - return this.rgba(h(a + 1 / 3) * 255, h(a) * 255, h(a - 1 / 3) * 255, e) - },hue:function(b) { - return new a.Dimension(Math.round(b.toHSL().h)) - },saturation:function(b) { - return new a.Dimension(Math.round(b.toHSL().s * 100), "%") - },lightness:function(b) { - return new a.Dimension(Math.round(b.toHSL().l * 100), "%") - },alpha:function(b) { - return new a.Dimension(b.toHSL().a) - },saturate:function(a, c) { - var e = a.toHSL(); - e.s += c.value / 100,e.s = d(e.s); - return b(e) - },desaturate:function(a, c) { - var e = a.toHSL(); - e.s -= c.value / 100,e.s = d(e.s); - return b(e) - },lighten:function(a, c) { - var e = a.toHSL(); - e.l += c.value / 100,e.l = d(e.l); - return b(e) - },darken:function(a, c) { - var e = a.toHSL(); - e.l -= c.value / 100,e.l = d(e.l); - return b(e) - },fadein:function(a, c) { - var e = a.toHSL(); - e.a += c.value / 100,e.a = d(e.a); - return b(e) - },fadeout:function(a, c) { - var e = a.toHSL(); - e.a -= c.value / 100,e.a = d(e.a); - return b(e) - },spin:function(a, c) { - var d = a.toHSL(),e = (d.h + c.value) % 360; - d.h = e < 0 ? 360 + e : e; - return b(d) - },mix:function(b, c, d) { - var e = d.value / 100,f = e * 2 - 1,g = b.toHSL().a - c.toHSL().a,h = ((f * g == -1 ? f : (f + g) / (1 + f * g)) + 1) / 2,i = 1 - h,j = [b.rgb[0] * h + c.rgb[0] * i,b.rgb[1] * h + c.rgb[1] * i,b.rgb[2] * h + c.rgb[2] * i],k = b.alpha * e + c.alpha * (1 - e); - return new a.Color(j, k) - },greyscale:function(b) { - return this.desaturate(b, new a.Dimension(100)) - },e:function(b) { - return new a.Anonymous(b instanceof a.JavaScript ? b.evaluated : b) - },escape:function(b) { - return new a.Anonymous(encodeURI(b.value).replace(/=/g, "%3D").replace(/:/g, "%3A").replace(/#/g, "%23").replace(/;/g, "%3B").replace(/\(/g, "%28").replace(/\)/g, "%29")) - },"%":function(b) { - var c = Array.prototype.slice.call(arguments, 1),d = b.value; - for (var e = 0; e < c.length; e++)d = d.replace(/%[sda]/i, function(a) { - var b = a.match(/s/i) ? c[e].value : c[e].toCSS(); - return a.match(/[A-Z]$/) ? encodeURIComponent(b) : b - }); - d = d.replace(/%%/g, "%"); - return new a.Quoted('"' + d + '"', d) - },round:function(b) { - if (b instanceof a.Dimension)return new a.Dimension(Math.round(c(b)), b.unit); - if (typeof b == "number")return Math.round(b); - throw{error:"RuntimeError",message:"math functions take numbers as parameters"} - }} - }(c("less/tree")),function(a) { - a.Alpha = function(a) { - this.value = a - },a.Alpha.prototype = {toCSS:function() { - return"alpha(opacity=" + (this.value.toCSS ? this.value.toCSS() : this.value) + ")" - },eval:function(a) { - this.value.eval && (this.value = this.value.eval(a)); - return this - }} - }(c("less/tree")),function(a) { - a.Anonymous = function(a) { - this.value = a.value || a - },a.Anonymous.prototype = {toCSS:function() { - return this.value - },eval:function() { - return this - }} - }(c("less/tree")),function(a) { - a.Call = function(a, b, c) { - this.name = a,this.args = b,this.index = c - },a.Call.prototype = {eval:function(b) { - var c = this.args.map(function(a) { - return a.eval(b) - }); - if (!(this.name in a.functions))return new a.Anonymous(this.name + "(" + c.map( - function(a) { - return a.toCSS() - }).join(", ") + ")"); - try { - return a.functions[this.name].apply(a.functions, c) - } catch(d) { - throw{message:"error evaluating function `" + this.name + "`",index:this.index} - } - },toCSS:function(a) { - return this.eval(a).toCSS() - }} - }(c("less/tree")),function(a) { - a.Color = function(a, b) { - Array.isArray(a) ? this.rgb = a : a.length == 6 ? this.rgb = a.match(/.{2}/g).map(function(a) { - return parseInt(a, 16) - }) : a.length == 8 ? (this.alpha = parseInt(a.substring(0, 2), 16) / 255,this.rgb = a.substr(2).match(/.{2}/g).map(function(a) { - return parseInt(a, 16) - })) : this.rgb = a.split("").map(function(a) { - return parseInt(a + a, 16) - }),this.alpha = typeof b == "number" ? b : 1 - },a.Color.prototype = {eval:function() { - return this - },toCSS:function() { - return this.alpha < 1 ? "rgba(" + this.rgb.map( - function(a) { - return Math.round(a) - }).concat(this.alpha).join(", ") + ")" : "#" + this.rgb.map( - function(a) { - a = Math.round(a),a = (a > 255 ? 255 : a < 0 ? 0 : a).toString(16); - return a.length === 1 ? "0" + a : a - }).join("") - },operate:function(b, c) { - var d = []; - c instanceof a.Color || (c = c.toColor()); - for (var e = 0; e < 3; e++)d[e] = a.operate(b, this.rgb[e], c.rgb[e]); - return new a.Color(d, this.alpha + c.alpha) - },toHSL:function() { - var a = this.rgb[0] / 255,b = this.rgb[1] / 255,c = this.rgb[2] / 255,d = this.alpha,e = Math.max(a, b, c),f = Math.min(a, b, c),g,h,i = (e + f) / 2,j = e - f; - if (e === f)g = h = 0; else { - h = i > .5 ? j / (2 - e - f) : j / (e + f); - switch (e) { - case a: - g = (b - c) / j + (b < c ? 6 : 0); - break; - case b: - g = (c - a) / j + 2; - break; - case c: - g = (a - b) / j + 4 - } - g /= 6 - } - return{h:g * 360,s:h,l:i,a:d} - }} - }(c("less/tree")),function(a) { - a.Comment = function(a, b) { - this.value = a,this.silent = !!b - },a.Comment.prototype = {toCSS:function(a) { - return a.compress ? "" : this.value - },eval:function() { - return this - }} - }(c("less/tree")),function(a) { - a.Dimension = function(a, b) { - this.value = parseFloat(a),this.unit = b || null - },a.Dimension.prototype = {eval:function() { - return this - },toColor:function() { - return new a.Color([this.value,this.value,this.value]) - },toCSS:function() { - var a = this.value + this.unit; - return a - },operate:function(b, c) { - return new a.Dimension(a.operate(b, this.value, c.value), this.unit || c.unit) - }} - }(c("less/tree")),function(a) { - a.Directive = function(b, c) { - this.name = b,Array.isArray(c) ? this.ruleset = new a.Ruleset([], c) : this.value = c - },a.Directive.prototype = {toCSS:function(a, b) { - if (this.ruleset) { - this.ruleset.root = !0; - return this.name + (b.compress ? "{" : " {\n ") + this.ruleset.toCSS(a, b).trim().replace(/\n/g, "\n ") + (b.compress ? "}" : "\n}\n") - } - return this.name + " " + this.value.toCSS() + ";\n" - },eval:function(a) { - a.frames.unshift(this),this.ruleset = this.ruleset && this.ruleset.eval(a),a.frames.shift(); - return this - },variable:function(b) { - return a.Ruleset.prototype.variable.call(this.ruleset, b) - },find:function() { - return a.Ruleset.prototype.find.apply(this.ruleset, arguments) - },rulesets:function() { - return a.Ruleset.prototype.rulesets.apply(this.ruleset) - }} - }(c("less/tree")),function(a) { - a.Element = function(b, c) { - this.combinator = b instanceof a.Combinator ? b : new a.Combinator(b),this.value = c.trim() - },a.Element.prototype.toCSS = function(a) { - return this.combinator.toCSS(a || {}) + this.value - },a.Combinator = function(a) { - a === " " ? this.value = " " : this.value = a ? a.trim() : "" - },a.Combinator.prototype.toCSS = function(a) { - return{"":""," ":" ","&":"",":":" :","::":"::","+":a.compress ? "+" : " + ","~":a.compress ? "~" : " ~ ",">":a.compress ? ">" : " > "}[this.value] - } - }(c("less/tree")),function(a) { - a.Expression = function(a) { - this.value = a - },a.Expression.prototype = {eval:function(b) { - return this.value.length > 1 ? new a.Expression(this.value.map(function(a) { - return a.eval(b) - })) : this.value.length === 1 ? this.value[0].eval(b) : this - },toCSS:function(a) { - return this.value.map( - function(b) { - return b.toCSS(a) - }).join(" ") - }} - }(c("less/tree")),function(a) { - a.Import = function(b, c) { - var d = this; - this._path = b,b instanceof a.Quoted ? this.path = /\.(le?|c)ss$/.test(b.value) ? b.value : b.value + ".less" : this.path = b.value.value || b.value,this.css = /css$/.test(this.path),this.css || c.push(this.path, function(a) { - if (!a)throw new Error("Error parsing " + d.path); - d.root = a - }) - },a.Import.prototype = {toCSS:function() { - return this.css ? "@import " + this._path.toCSS() + ";\n" : "" - },eval:function(b) { - var c; - if (this.css)return this; - c = new a.Ruleset(null, this.root.rules.slice(0)); - for (var d = 0; d < c.rules.length; d++)c.rules[d]instanceof a.Import && Array.prototype.splice.apply(c.rules, [d,1].concat(c.rules[d].eval(b))); - return c.rules - }} - }(c("less/tree")),function(a) { - a.JavaScript = function(a, b, c) { - this.escaped = c,this.expression = a,this.index = b - },a.JavaScript.prototype = {eval:function(b) { - var c,d = this,e = {},f = this.expression.replace(/@\{([\w-]+)\}/g, function(c, e) { - return a.jsify((new a.Variable("@" + e, d.index)).eval(b)) - }); - try { - f = new Function("return (" + f + ")") - } catch(g) { - throw{message:"JavaScript evaluation error: `" + f + "`",index:this.index} - } - for (var h in b.frames[0].variables())e[h.slice(1)] = {value:b.frames[0].variables()[h].value,toJS:function() { - return this.value.eval(b).toCSS() - }}; - try { - c = f.call(e) - } catch(g) { - throw{message:"JavaScript evaluation error: '" + g.name + ": " + g.message + "'",index:this.index} - } - return typeof c == "string" ? new a.Quoted('"' + c + '"', c, this.escaped, this.index) : Array.isArray(c) ? new a.Anonymous(c.join(", ")) : new a.Anonymous(c) - }} - }(c("less/tree")),function(a) { - a.Keyword = function(a) { - this.value = a - },a.Keyword.prototype = {eval:function() { - return this - },toCSS:function() { - return this.value - }} - }(c("less/tree")),function(a) { - a.mixin = {},a.mixin.Call = function(b, c, d) { - this.selector = new a.Selector(b),this.arguments = c,this.index = d - },a.mixin.Call.prototype = {eval:function(a) { - var b,c,d = [],e = !1; - for (var f = 0; f < a.frames.length; f++)if ((b = a.frames[f].find(this.selector)).length > 0) { - c = this.arguments && this.arguments.map(function(b) { - return b.eval(a) - }); - for (var g = 0; g < b.length; g++)if (b[g].match(c, a))try { - Array.prototype.push.apply(d, b[g].eval(a, this.arguments).rules),e = !0 - } catch(h) { - throw{message:h.message,index:h.index,stack:h.stack,call:this.index} - } - if (e)return d; - throw{message:"No matching definition was found for `" + this.selector.toCSS().trim() + "(" + this.arguments.map( - function(a) { - return a.toCSS() - }).join(", ") + ")`",index:this.index} - } - throw{message:this.selector.toCSS().trim() + " is undefined",index:this.index} - }},a.mixin.Definition = function(b, c, d) { - this.name = b,this.selectors = [new a.Selector([new a.Element(null, b)])],this.params = c,this.arity = c.length,this.rules = d,this._lookups = {},this.required = c.reduce(function(a, b) { - return!b.name || b.name && !b.value ? a + 1 : a - }, 0),this.parent = a.Ruleset.prototype,this.frames = [] - },a.mixin.Definition.prototype = {toCSS:function() { - return"" - },variable:function(a) { - return this.parent.variable.call(this, a) - },variables:function() { - return this.parent.variables.call(this) - },find:function() { - return this.parent.find.apply(this, arguments) - },rulesets:function() { - return this.parent.rulesets.apply(this) - },eval:function(b, c) { - var d = new a.Ruleset(null, []),e,f = []; - for (var g = 0,h; g < this.params.length; g++)if (this.params[g].name)if (h = c && c[g] || this.params[g].value)d.rules.unshift(new a.Rule(this.params[g].name, h.eval(b))); else throw{message:"wrong number of arguments for " + this.name + " (" + c.length + " for " + this.arity + ")"}; - for (var g = 0; g < Math.max(this.params.length, c && c.length); g++)f.push(c[g] || this.params[g].value); - d.rules.unshift(new a.Rule("@arguments", (new a.Expression(f)).eval(b))); - return(new a.Ruleset(null, this.rules.slice(0))).eval({frames:[this,d].concat(this.frames, b.frames)}) - },match:function(a, b) { - var c = a && a.length || 0,d; - if (c < this.required)return!1; - if (this.required > 0 && c > this.params.length)return!1; - d = Math.min(c, this.arity); - for (var e = 0; e < d; e++)if (!this.params[e].name && a[e].eval(b).toCSS() != this.params[e].value.eval(b).toCSS())return!1; - return!0 - }} - }(c("less/tree")),function(a) { - a.Operation = function(a, b) { - this.op = a.trim(),this.operands = b - },a.Operation.prototype.eval = function(b) { - var c = this.operands[0].eval(b),d = this.operands[1].eval(b),e; - if (c instanceof a.Dimension && d instanceof a.Color)if (this.op === "*" || this.op === "+")e = d,d = c,c = e; else throw{name:"OperationError",message:"Can't substract or divide a color from a number"}; - return c.operate(this.op, d) - },a.operate = function(a, b, c) { - switch (a) { - case"+": - return b + c; - case"-": - return b - c; - case"*": - return b * c; - case"/": - return b / c - } - } - }(c("less/tree")),function(a) { - a.Quoted = function(a, b, c, d) { - this.escaped = c,this.value = b || "",this.quote = a.charAt(0),this.index = d - },a.Quoted.prototype = {toCSS:function() { - return this.escaped ? this.value : this.quote + this.value + this.quote - },eval:function(b) { - var c = this,d = this.value.replace(/`([^`]+)`/g, - function(d, e) { - return(new a.JavaScript(e, c.index, !0)).eval(b).value - }).replace(/@\{([\w-]+)\}/g, function(d, e) { - var f = (new a.Variable("@" + e, c.index)).eval(b); - return f.value || f.toCSS() - }); - return new a.Quoted(this.quote + d + this.quote, d, this.escaped, this.index) - }} - }(c("less/tree")),function(a) { - a.Rule = function(b, c, d, e) { - this.name = b,this.value = c instanceof a.Value ? c : new a.Value([c]),this.important = d ? " " + d.trim() : "",this.index = e,b.charAt(0) === "@" ? this.variable = !0 : this.variable = !1 - },a.Rule.prototype.toCSS = function(a) { - return this.variable ? "" : this.name + (a.compress ? ":" : ": ") + this.value.toCSS(a) + this.important + ";" - },a.Rule.prototype.eval = function(b) { - return new a.Rule(this.name, this.value.eval(b), this.important, this.index) - },a.Shorthand = function(a, b) { - this.a = a,this.b = b - },a.Shorthand.prototype = {toCSS:function(a) { - return this.a.toCSS(a) + "/" + this.b.toCSS(a) - },eval:function() { - return this - }} - }(c("less/tree")),function(a) { - a.Ruleset = function(a, b) { - this.selectors = a,this.rules = b,this._lookups = {} - },a.Ruleset.prototype = {eval:function(b) { - var c = new a.Ruleset(this.selectors, this.rules.slice(0)); - c.root = this.root,b.frames.unshift(c); - if (c.root)for (var d = 0; d < c.rules.length; d++)c.rules[d]instanceof a.Import && Array.prototype.splice.apply(c.rules, [d,1].concat(c.rules[d].eval(b))); - for (var d = 0; d < c.rules.length; d++)c.rules[d]instanceof a.mixin.Definition && (c.rules[d].frames = b.frames.slice(0)); - for (var d = 0; d < c.rules.length; d++)c.rules[d]instanceof a.mixin.Call && Array.prototype.splice.apply(c.rules, [d,1].concat(c.rules[d].eval(b))); - for (var d = 0,e; d < c.rules.length; d++)e = c.rules[d],e instanceof a.mixin.Definition || (c.rules[d] = e.eval ? e.eval(b) : e); - b.frames.shift(); - return c - },match:function(a) { - return!a || a.length === 0 - },variables:function() { - return this._variables ? this._variables : this._variables = this.rules.reduce(function(b, c) { - c instanceof a.Rule && c.variable === !0 && (b[c.name] = c); - return b - }, {}) - },variable:function(a) { - return this.variables()[a] - },rulesets:function() { - return this._rulesets ? this._rulesets : this._rulesets = this.rules.filter(function(b) { - return b instanceof a.Ruleset || b instanceof a.mixin.Definition - }) - },find:function(b, c) { - c = c || this; - var d = [],e,f,g = b.toCSS(); - if (g in this._lookups)return this._lookups[g]; - this.rulesets().forEach(function(e) { - if (e !== c)for (var g = 0; g < e.selectors.length; g++)if (f = b.match(e.selectors[g])) { - b.elements.length > 1 ? Array.prototype.push.apply(d, e.find(new a.Selector(b.elements.slice(1)), c)) : d.push(e); - break - } - }); - return this._lookups[g] = d - },toCSS:function(b, c) { - var d = [],e = [],f = [],g = [],h,i; - if (!this.root)if (b.length === 0)g = this.selectors.map(function(a) { - return[a] - }); else for (var j = 0; j < this.selectors.length; j++)for (var k = 0; k < b.length; k++)g.push(b[k].concat([this.selectors[j]])); - for (var l = 0; l < this.rules.length; l++)i = this.rules[l],i.rules || i instanceof a.Directive ? f.push(i.toCSS(g, c)) : i instanceof a.Comment ? i.silent || (this.root ? f.push(i.toCSS(c)) : e.push(i.toCSS(c))) : i.toCSS && !i.variable ? e.push(i.toCSS(c)) : i.value && !i.variable && e.push(i.value.toString()); - f = f.join(""),this.root ? d.push(e.join(c.compress ? "" : "\n")) : e.length > 0 && (h = g.map( - function(a) { - return a.map( - function(a) { - return a.toCSS(c) - }).join("").trim() - }).join(c.compress ? "," : g.length > 3 ? ",\n" : ", "),d.push(h, (c.compress ? "{" : " {\n ") + e.join(c.compress ? "" : "\n ") + (c.compress ? "}" : "\n}\n"))),d.push(f); - return d.join("") + (c.compress ? "\n" : "") - }} - }(c("less/tree")),function(a) { - a.Selector = function(a) { - this.elements = a,this.elements[0].combinator.value === "" && (this.elements[0].combinator.value = " ") - },a.Selector.prototype.match = function(a) { - return this.elements[0].value === a.elements[0].value ? !0 : !1 - },a.Selector.prototype.toCSS = function(a) { - if (this._css)return this._css; - return this._css = this.elements.map( - function(b) { - return typeof b == "string" ? " " + b.trim() : b.toCSS(a) - }).join("") - } - }(c("less/tree")),function(b) { - b.URL = function(b, c) { - b.data ? this.attrs = b : (!/^(?:https?:\/|file:\/|data:\/)?\//.test(b.value) && c.length > 0 && typeof a != "undefined" && (b.value = c[0] + (b.value.charAt(0) === "/" ? b.value.slice(1) : b.value)),this.value = b,this.paths = c) - },b.URL.prototype = {toCSS:function() { - return"url(" + (this.attrs ? "data:" + this.attrs.mime + this.attrs.charset + this.attrs.base64 + this.attrs.data : this.value.toCSS()) + ")" - },eval:function(a) { - return this.attrs ? this : new b.URL(this.value.eval(a), this.paths) - }} - }(c("less/tree")),function(a) { - a.Value = function(a) { - this.value = a,this.is = "value" - },a.Value.prototype = {eval:function(b) { - return this.value.length === 1 ? this.value[0].eval(b) : new a.Value(this.value.map(function(a) { - return a.eval(b) - })) - },toCSS:function(a) { - return this.value.map( - function(b) { - return b.toCSS(a) - }).join(a.compress ? "," : ", ") - }} - }(c("less/tree")),function(a) { - a.Variable = function(a, b) { - this.name = a,this - .index = b - },a.Variable.prototype = {eval:function(b) { - var c,d,e = this.name; - e.indexOf("@@") == 0 && (e = "@" + (new a.Variable(e.slice(1))).eval(b).value); - if (c = a.find(b.frames, function(a) { - if (d = a.variable(e))return d.value.eval(b) - }))return c; - throw{message:"variable " + e + " is undefined",index:this.index} - }} - }(c("less/tree")),c("less/tree").find = function(a, b) { - for (var c = 0,d; c < a.length; c++)if (d = b.call(a, a[c]))return d; - return null - },c("less/tree").jsify = function(a) { - return Array.isArray(a.value) && a.value.length > 1 ? "[" + a.value.map( - function(a) { - return a.toCSS(!1) - }).join(", ") + "]" : a.toCSS(!1) - }; - var g = location.protocol === "file:" || location.protocol === "chrome:" || location.protocol === "chrome-extension:" || location.protocol === "resource:"; - d.env = d.env || (location.hostname == "127.0.0.1" || location.hostname == "0.0.0.0" || location.hostname == "localhost" || location.port.length > 0 || g ? "development" : "production"),d.async = !1,d.poll = d.poll || (g ? 1e3 : 1500),d.watch = function() { - return this.watchMode = !0 - },d.unwatch = function() { - return this.watchMode = !1 - },d.env === "development" ? (d.optimization = 0,/!watch/.test(location.hash) && d.watch(),d.watchTimer = setInterval(function() { - d.watchMode && n(function(a, b, c) { - a && q(a.toCSS(), b, c.lastModified) - }) - }, d.poll)) : d.optimization = 3; - var h; - try { - h = typeof a.localStorage == "undefined" ? null : a.localStorage - } catch(i) { - h = null - } - var j = document.getElementsByTagName("link"),k = /^text\/(x-)?less$/; - d.sheets = []; - for (var l = 0; l < j.length; l++)(j[l].rel === "stylesheet/less" || j[l].rel.match(/stylesheet/) && j[l].type.match(k)) && d.sheets.push(j[l]); - d.refresh = function(a) { - var b,c; - b = c = new Date,n(function(a, d, e) { - e.local ? u("loading " + d.href + " from cache.") : (u("parsed " + d.href + " successfully."),q(a.toCSS(), d, e.lastModified)),u("css for " + d.href + " generated in " + (new Date - c) + "ms"),e.remaining === 0 && u("css generated in " + (new Date - b) + "ms"),c = new Date - }, a),m() - },d.refreshStyles = m,d.refresh(d.env === "development") -})(window) \ No newline at end of file diff --git a/mindplot/src/main/javascript/libraries/less/less-1.6.2.min.js b/mindplot/src/main/javascript/libraries/less/less-1.6.2.min.js new file mode 100644 index 00000000..6a7a8208 --- /dev/null +++ b/mindplot/src/main/javascript/libraries/less/less-1.6.2.min.js @@ -0,0 +1,16 @@ +/*! + * LESS - Leaner CSS v1.6.2 + * http://lesscss.org + * + * Copyright (c) 2009-2014, Alexis Sellier + * Licensed under the Apache v2 License. + * + */ + +/** * @license Apache v2 + */ + +!function(a,b){function c(b){return a.less[b.split("/")[1]]}function d(a,b){"development"==v.env&&"undefined"!=typeof console&&v.logLevel>=b&&console.log("less: "+a)}function e(a){return a.replace(/^[a-z-]+:\/+?[^\/]+/,"").replace(/^\//,"").replace(/\.[a-zA-Z]+$/,"").replace(/[^\.\w-]+/g,"-").replace(/\./g,":")}function f(a,c){var e="{line} {content}",f=a.filename||c,g=[],h=(a.type||"Syntax")+"Error: "+(a.message||"There is an error in your .less file")+" in "+f+" ",i=function(a,c,d){a.extract[c]!==b&&g.push(e.replace(/\{line\}/,(parseInt(a.line,10)||0)+(c-1)).replace(/\{class\}/,d).replace(/\{content\}/,a.extract[c]))};a.extract?(i(a,0,""),i(a,1,"line"),i(a,2,""),h+="on line "+a.line+", column "+(a.column+1)+":\n"+g.join("\n")):a.stack&&(h+=a.stack),d(h,y.errors)}function g(a,b,c){var f=b.href||"",g="less:"+(b.title||e(f)),h=document.getElementById(g),i=!1,j=document.createElement("style");if(j.setAttribute("type","text/css"),b.media&&j.setAttribute("media",b.media),j.id=g,j.styleSheet)try{j.styleSheet.cssText=a}catch(k){throw new Error("Couldn't reassign styleSheet.cssText.")}else j.appendChild(document.createTextNode(a)),i=null!==h&&h.childNodes.length>0&&j.childNodes.length>0&&h.firstChild.nodeValue===j.firstChild.nodeValue;var l=document.getElementsByTagName("head")[0];if(null===h||i===!1){var m=b&&b.nextSibling||null;m?m.parentNode.insertBefore(j,m):l.appendChild(j)}if(h&&i===!1&&h.parentNode.removeChild(h),c&&C){d("saving "+f+" to cache.",y.info);try{C.setItem(f,a),C.setItem(f+":timestamp",c)}catch(k){d("failed to save",y.errors)}}}function h(a,c){var d,f,h="less-error-message:"+e(c||""),i='
  • {content}
  • ',j=document.createElement("div"),k=[],l=a.filename||c,m=l.match(/([^\/]+(\?.*)?)$/)[1];j.id=h,j.className="less-error-message",f="

    "+(a.type||"Syntax")+"Error: "+(a.message||"There is an error in your .less file")+'

    in '+m+" ";var n=function(a,c,d){a.extract[c]!==b&&k.push(i.replace(/\{line\}/,(parseInt(a.line,10)||0)+(c-1)).replace(/\{class\}/,d).replace(/\{content\}/,a.extract[c]))};a.extract?(n(a,0,""),n(a,1,"line"),n(a,2,""),f+="on line "+a.line+", column "+(a.column+1)+":

      "+k.join("")+"
    "):a.stack&&(f+="
    "+a.stack.split("\n").slice(1).join("
    ")),j.innerHTML=f,g([".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: #dd6666;","padding: 4px 0;","margin: 0;","display: inline-block;","}",".less-error-message pre.line {","color: #ff0000;","}",".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"}),j.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(";"),"development"==v.env&&(d=setInterval(function(){document.body&&(document.getElementById(h)?document.body.replaceChild(j,document.getElementById(h)):document.body.insertBefore(j,document.body.firstChild),clearInterval(d))},10))}function i(a,b){v.errorReporting&&"html"!==v.errorReporting?"console"===v.errorReporting?f(a,b):"function"==typeof v.errorReporting&&v.errorReporting("add",a,b):h(a,b)}function j(a){var b=document.getElementById("less-error-message:"+e(a));b&&b.parentNode.removeChild(b)}function k(){}function l(a){v.errorReporting&&"html"!==v.errorReporting?"console"===v.errorReporting?k(a):"function"==typeof v.errorReporting&&v.errorReporting("remove",a):j(a)}function m(a){for(var b,c=document.getElementsByTagName("style"),d=0;d0&&(h.splice(c-1,2),c-=2)}return g.hostPart=f[1],g.directories=h,g.path=f[1]+h.join("/"),g.fileUrl=g.path+(f[4]||""),g.url=g.fileUrl+(f[5]||""),g}function o(a,b){var c,d,e,f,g=n(a),h=n(b),i="";if(g.hostPart!==h.hostPart)return"";for(d=Math.max(h.directories.length,g.directories.length),c=0;d>c&&h.directories[c]===g.directories[c];c++);for(f=h.directories.slice(c),e=g.directories.slice(c),c=0;c=200&&b.status<300?c(b.responseText,b.getResponseHeader("Last-Modified")):"function"==typeof d&&d(b.status,a)}var g=p(),h=x?v.fileAsync:v.async;"function"==typeof g.overrideMimeType&&g.overrideMimeType("text/css"),d("XHR: Getting '"+a+"'",y.info),g.open("GET",a,h),g.setRequestHeader("Accept",b||"text/x-less, text/css; q=0.9, */*; q=0.5"),g.send(null),x&&!v.fileAsync?0===g.status||g.status>=200&&g.status<300?c(g.responseText):e(g.status,a):h?g.onreadystatechange=function(){4==g.readyState&&f(g,c,e)}:f(g,c,e)}function r(b,c,d,e){c&&c.currentDirectory&&!/^([a-z-]+:)?\//.test(b)&&(b=c.currentDirectory+b);var f=n(b,a.location.href),g=f.url,h={currentDirectory:f.path,filename:g};if(c?(h.entryPath=c.entryPath,h.rootpath=c.rootpath,h.rootFilename=c.rootFilename,h.relativeUrls=c.relativeUrls):(h.entryPath=f.path,h.rootpath=v.rootpath||f.path,h.rootFilename=g,h.relativeUrls=e.relativeUrls),h.relativeUrls&&(h.rootpath=e.rootpath?n(e.rootpath+o(f.path,h.entryPath)).path:f.path),e.useFileCache&&D[g])try{var i=D[g];d(null,i,g,h,{lastModified:new Date})}catch(j){d(j,null,g)}else q(g,e.mime,function(a,b){D[g]=a;try{d(null,a,g,h,{lastModified:b})}catch(c){d(c,null,g)}},function(a,b){d({type:"File",message:"'"+b+"' wasn't found ("+a+")"},null,g)})}function s(a,b,c,d,e){var f=new v.tree.parseEnv(v);f.mime=a.type,(e||v.globalVars)&&(f.useFileCache=!0),r(a.href,null,function(h,i,j,k,m){if(m){m.remaining=d;var n=C&&C.getItem(j),o=C&&C.getItem(j+":timestamp");if(!c&&o&&m.lastModified&&new Date(m.lastModified).valueOf()===new Date(o).valueOf())return g(n,a),m.local=!0,b(null,null,i,a,m,j),void 0}l(j),i?(f.currentFileInfo=k,new v.Parser(f).parse(i,function(c,d){if(c)return b(c,null,null,a);try{b(c,d,i,a,m,j)}catch(c){b(c,null,null,a)}},{modifyVars:e,globalVars:v.globalVars})):b(h,null,null,a,m,j)},f,e)}function t(a,b,c){for(var d=0;dE&&(D=D.slice(x-E),E=x)}function g(a,b){var c=a.charCodeAt(0|b);return 32>=c&&(32===c||10===c||9===c)}function h(a){var b,c,d=typeof a;return"string"===d?u.charAt(x)!==a?null:(k(1),a):(f(),(b=a.exec(D))?(c=b[0].length,k(c),"string"==typeof b?b:1===b.length?b[0]:b):null)}function i(a){x>E&&(D=D.slice(x-E),E=x);var b=a.exec(D);return b?(k(b[0].length),"string"==typeof b?b:1===b.length?b[0]:b):null}function j(a){return u.charAt(x)!==a?null:(k(1),a)}function k(a){for(var b,c=x,d=y,e=x-E,f=x+D.length-e,g=x+=a,h=u;f>x&&(b=h.charCodeAt(x),!(b>32))&&(32===b||10===b||9===b||13===b);x++);return D=D.slice(a+x-g+e),E=x,!D.length&&y=0&&"\n"!==b.charAt(c);)e++;return"number"==typeof a&&(d=(b.slice(0,a).match(/\n/g)||"").length),{line:d,column:e}}function s(a,b,d){var e=d.currentFileInfo.filename;return"browser"!==v.mode&&"rhino"!==v.mode&&(e=c("path").resolve(e)),{lineNumber:r(a,b).line+1,fileName:e}}function t(a,b){var c=q(a,b),d=r(a.index,c),e=d.line,f=d.column,g=a.call&&r(a.call,c).line,h=c.split("\n");this.type=a.type||"Syntax",this.message=a.message,this.filename=a.filename||b.currentFileInfo.filename,this.index=a.index,this.line="number"==typeof e?e+1:null,this.callLine=g+1,this.callExtract=h[g],this.stack=a.stack,this.column=f,this.extract=[h[e-1],h[e],h[e+1]]}var u,x,y,z,A,B,C,D,E,F,G,H=a&&a.filename;a instanceof w.parseEnv||(a=new w.parseEnv(a));var I=this.imports={paths:a.paths||[],queue:[],files:a.files,contents:a.contents,contentsIgnoredChars:a.contentsIgnoredChars,mime:a.mime,error:null,push:function(b,c,d,e){var f=this;this.queue.push(b);var g=function(a,c,d){f.queue.splice(f.queue.indexOf(b),1);var g=d in f.files||d===H;f.files[d]=c,a&&!f.error&&(f.error=a),e(a,c,g,d)};v.Parser.importer?v.Parser.importer(b,c,g,a):v.Parser.fileLoader(b,c,function(b,e,f,h){if(b)return g(b),void 0;var i=new w.parseEnv(a);i.currentFileInfo=h,i.processImports=!1,i.contents[f]=e,(c.reference||d.reference)&&(h.reference=!0),d.inline?g(null,e,f):new v.Parser(i).parse(e,function(a,b){g(a,b,f)})},a)}},J=i;return t.prototype=new Error,t.prototype.constructor=t,this.env=a=a||{},this.optimization="optimization"in this.env?this.env.optimization:1,F={imports:I,parse:function(d,e,f){var g,h,i,j,k,l=null,m="";if(x=y=E=B=0,j=f&&f.globalVars?v.Parser.serializeVars(f.globalVars)+"\n":"",k=f&&f.modifyVars?"\n"+v.Parser.serializeVars(f.modifyVars):"",(j||f&&f.banner)&&(m=(f&&f.banner?f.banner:"")+j,F.imports.contentsIgnoredChars[a.currentFileInfo.filename]=m.length),d=d.replace(/\r\n/g,"\n"),u=d=m+d.replace(/^\uFEFF/,"")+k,F.imports.contents[a.currentFileInfo.filename]=d,C=function(b){function c(b,c){l=new t({index:c||i,type:"Parse",message:b,filename:a.currentFileInfo.filename},a)}function d(a){var c=i-s;512>c&&!a||!c||(r.push(b.slice(s,i+1)),s=i+1)}var e,f,g,h,i,j,k,m,n,o=b.length,p=0,q=0,r=[],s=0;for(i=0;o>i;i++)if(k=b.charCodeAt(i),!(k>=97&&122>=k||34>k))switch(k){case 40:q++,f=i;continue;case 41:if(--q<0)return c("missing opening `(`");continue;case 59:q||d();continue;case 123:p++,e=i;continue;case 125:if(--p<0)return c("missing opening `{`");p||d();continue;case 92:if(o-1>i){i++;continue}return c("unescaped `\\`");case 34:case 39:case 96:for(n=0,j=i,i+=1;o>i;i++)if(m=b.charCodeAt(i),!(m>96)){if(m==k){n=1;break}if(92==m){if(i==o-1)return c("unescaped `\\`");i++}}if(n)continue;return c("unmatched `"+String.fromCharCode(k)+"`",j);case 47:if(q||i==o-1)continue;if(m=b.charCodeAt(i+1),47==m)for(i+=2;o>i&&(m=b.charCodeAt(i),!(13>=m)||10!=m&&13!=m);i++);else if(42==m){for(g=j=i,i+=2;o-1>i&&(m=b.charCodeAt(i),125==m&&(h=i),42!=m||47!=b.charCodeAt(i+1));i++);if(i==o-1)return c("missing closing `*/`",j);i++}continue;case 42:if(o-1>i&&47==b.charCodeAt(i+1))return c("unmatched `/*`");continue}return 0!==p?g>e&&h>g?c("missing closing `}` or `*/`",e):c("missing closing `}`",e):0!==q?c("missing closing `)`",f):(d(!0),r)}(d),l)return e(new t(l,a));D=C[0];try{g=new w.Ruleset(null,this.parsers.primary()),g.root=!0,g.firstRoot=!0}catch(n){return e(new t(n,a))}if(g.toCSS=function(d){return function(e,f){e=e||{};var g,h,i=new w.evalEnv(e);"object"!=typeof f||Array.isArray(f)||(f=Object.keys(f).map(function(a){var b=f[a];return b instanceof w.Value||(b instanceof w.Expression||(b=new w.Expression([b])),b=new w.Value([b])),new w.Rule("@"+a,b,!1,null,0)}),i.frames=[new w.Ruleset(null,f)]);try{var j,k=[],l=[new w.joinSelectorVisitor,new w.processExtendsVisitor,new w.toCSSVisitor({compress:Boolean(e.compress)})],m=this;if(e.plugins)for(j=0;j57||43>b||47===b||44==b))return a=i(/^([+-]?\d*\.?\d+)(%|[a-z]+)?/),a?new w.Dimension(a[1],a[2]):void 0},unicodeDescriptor:function(){var a;return a=i(/^U\+[0-9a-fA-F?]+(\-[0-9a-fA-F?]+)?/),a?new w.UnicodeDescriptor(a[0]):void 0},javascript:function(){var c,d,e=x;return"~"===u.charAt(e)&&(e++,d=!0),"`"===u.charAt(e)?(a.javascriptEnabled===b||a.javascriptEnabled||n("You are using JavaScript, which has been disabled."),d&&j("~"),c=i(/^`([^`]*)`/),c?new w.JavaScript(c[1],x,d):void 0):void 0}},variable:function(){var a;return"@"===u.charAt(x)&&(a=i(/^(@[\w-]+)\s*:/))?a[1]:void 0},extend:function(a){var b,c,d,e,f,g=x;if(a?i(/^&:extend\(/):i(/^:extend\(/)){do{for(d=null,b=null;!(d=i(/^(all)(?=\s*(\)|,))/))&&(c=this.element());)b?b.push(c):b=[c];d=d&&d[1],f=new w.Extend(new w.Selector(b),d,g),e?e.push(f):e=[f]}while(j(","));return l(/^\)/),a&&l(/^;/),e}},extendRule:function(){return this.extend(!0)},mixin:{call:function(){var b,c,f,g,h,k,l=u.charAt(x),n=!1,o=x;if("."===l||"#"===l){for(d();;){if(b=x,g=i(/^[#.](?:[\w-]|\\(?:[A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9]))+/),!g)break;f=new w.Element(h,g,b,a.currentFileInfo),c?c.push(f):c=[f],h=j(">")}return c&&(j("(")&&(k=this.args(!0).args,m(")")),G.important()&&(n=!0),G.end())?new w.mixin.Call(c,k,o,a.currentFileInfo,n):(e(),void 0)}},args:function(a){for(var b,c,d,e,f,g,h=F.parsers,k=h.entities,m={args:null,variadic:!1},o=[],p=[],q=[];;){if(a)g=h.expression();else{if(h.comments(),"."===u.charAt(x)&&i(/^\.{3}/)){m.variadic=!0,j(";")&&!b&&(b=!0),(b?p:q).push({variadic:!0});break}g=k.variable()||k.literal()||k.keyword()}if(!g)break;e=null,g.throwAwayComments&&g.throwAwayComments(),f=g;var r=null;if(a?1==g.value.length&&(r=g.value[0]):r=g,r&&r instanceof w.Variable)if(j(":"))o.length>0&&(b&&n("Cannot mix ; and , as delimiter types"),c=!0),f=l(h.expression),e=d=r.name;else{if(!a&&i(/^\.{3}/)){m.variadic=!0,j(";")&&!b&&(b=!0),(b?p:q).push({name:g.name,variadic:!0});break}a||(d=e=r.name,f=null)}f&&o.push(f),q.push({name:e,value:f}),j(",")||(j(";")||b)&&(c&&n("Cannot mix ; and , as delimiter types"),b=!0,o.length>1&&(f=new w.Value(o)),p.push({name:d,value:f}),d=null,o=[],c=!1)}return m.args=b?p:q,m},definition:function(){var a,b,c,f,g=[],h=!1;if(!("."!==u.charAt(x)&&"#"!==u.charAt(x)||o(/^[^{]*\}/))&&(d(),b=i(/^([#.](?:[\w-]|\\(?:[A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9]))+)\s*\(/))){a=b[1];var k=this.args(!1);if(g=k.args,h=k.variadic,j(")")||(B=x,e()),G.comments(),i(/^when/)&&(f=l(G.conditions,"expected condition")),c=G.block())return new w.mixin.Definition(a,g,c,f,h);e()}}},entity:function(){var a=this.entities;return a.literal()||a.variable()||a.url()||a.call()||a.keyword()||a.javascript()||this.comment()},end:function(){return j(";")||p("}")},alpha:function(){var a;if(i(/^\(opacity=/i))return a=i(/^\d+/)||this.entities.variable(),a?(m(")"),new w.Alpha(a)):void 0},element:function(){var b,c,d,e=x;return c=this.combinator(),b=i(/^(?:\d+\.\d+|\d+)%/)||i(/^(?:[.#]?|:*)(?:[\w-]|[^\x00-\x9f]|\\(?:[A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9]))+/)||j("*")||j("&")||this.attribute()||i(/^\([^()@]+\)/)||i(/^[\.#](?=@)/)||this.entities.variableCurly(),b||j("(")&&(d=this.selector())&&j(")")&&(b=new w.Paren(d)),b?new w.Element(c,b,e,a.currentFileInfo):void 0},combinator:function(){var a=u.charAt(x);if(">"===a||"+"===a||"~"===a||"|"===a||"^"===a){for(x++,"^"===u.charAt(x)&&(a="^^",x++);g(u,x);)x++;return new w.Combinator(a)}return g(u,x-1)?new w.Combinator(" "):new w.Combinator(null)},lessSelector:function(){return this.selector(!0)},selector:function(b){for(var c,d,e,f,g,h,i,j=x,k=J;(b&&(g=this.extend())||b&&(h=k(/^when/))||(f=this.element()))&&(h?i=l(this.conditions,"expected condition"):i?n("CSS guard can only be used at the end of selector"):g?d?d.push(g):d=[g]:(d&&n("Extend can only be used at the end of selector"),e=u.charAt(x),c?c.push(f):c=[f],f=null),"{"!==e&&"}"!==e&&";"!==e&&","!==e&&")"!==e););return c?new w.Selector(c,d,i,j,a.currentFileInfo):(d&&n("Extend must be used to extend a selector, it cannot be used on its own"),void 0)},attribute:function(){if(j("[")){var a,b,c,d=this.entities;return(a=d.variableCurly())||(a=l(/^(?:[_A-Za-z0-9-\*]*\|)?(?:[_A-Za-z0-9-]|\\.)+/)),c=i(/^[|~*$^]?=/),c&&(b=d.quoted()||i(/^[0-9]+%/)||i(/^[\w-]+/)||d.variableCurly()),m("]"),new w.Attribute(a,c,b)}},block:function(){var a;return j("{")&&(a=this.primary())&&j("}")?a:void 0},ruleset:function(){var b,c,f,g;for(d(),a.dumpLineNumbers&&(g=s(x,u,a));;){if(c=this.lessSelector(),!c)break;if(b?b.push(c):b=[c],this.comments(),c.condition&&b.length>1&&n("Guards are only currently allowed on a single selector."),!j(","))break;c.condition&&n("Guards are only currently allowed on a single selector."),this.comments()}if(b&&(f=this.block())){var h=new w.Ruleset(b,f,a.strictImports);return a.dumpLineNumbers&&(h.debugInfo=g),h}B=x,e()},rule:function(b){var c,f,g,h=u.charAt(x),i=!1;if(d(),"."!==h&&"#"!==h&&"&"!==h&&(c=this.variable()||this.ruleProperty())){if(f=!b&&(a.compress||c.charAt&&"@"===c.charAt(0))?this.value()||this.anonymousValue():this.anonymousValue()||this.value(),g=this.important(),i=c.pop&&"+"===c.pop().value,f&&this.end())return new w.Rule(c,f,g,i,A,a.currentFileInfo);if(B=x,e(),f&&!b)return this.rule(!0)}},anonymousValue:function(){var a;return a=/^([^@+\/'"*`(;{}-]*);/.exec(D),a?(x+=a[0].length-1,new w.Anonymous(a[1])):void 0},"import":function(){var b,c,f=x;d();var g=i(/^@import?\s+/),h=(g?this.importOptions():null)||{};return g&&(b=this.entities.quoted()||this.entities.url())&&(c=this.mediaFeatures(),j(";"))?(c=c&&new w.Value(c),new w.Import(b,c,h,f,a.currentFileInfo)):(e(),void 0)},importOptions:function(){var a,b,c,d={};if(!j("("))return null;do if(a=this.importOption()){switch(b=a,c=!0,b){case"css":b="less",c=!1;break;case"once":b="multiple",c=!1}if(d[b]=c,!j(","))break}while(a);return m(")"),d},importOption:function(){var a=i(/^(less|css|multiple|once|inline|reference)/);return a?a[1]:void 0},mediaFeature:function(){var b,c,d=this.entities,e=[];do if(b=d.keyword()||d.variable())e.push(b);else if(j("(")){if(c=this.property(),b=this.value(),!j(")"))return null;if(c&&b)e.push(new w.Paren(new w.Rule(c,b,null,null,x,a.currentFileInfo,!0)));else{if(!b)return null;e.push(new w.Paren(b))}}while(b);return e.length>0?new w.Expression(e):void 0},mediaFeatures:function(){var a,b=this.entities,c=[];do if(a=this.mediaFeature()){if(c.push(a),!j(","))break}else if(a=b.variable(),a&&(c.push(a),!j(",")))break;while(a);return c.length>0?c:null},media:function(){var b,c,d,e;return a.dumpLineNumbers&&(e=s(x,u,a)),i(/^@media/)&&(b=this.mediaFeatures(),c=this.block())?(d=new w.Media(c,b,x,a.currentFileInfo),a.dumpLineNumbers&&(d.debugInfo=e),d):void 0},directive:function(){var b,c,f,g,h,k,l,m,n=x;if("@"===u.charAt(x)){if(c=this["import"]()||this.media())return c;if(d(),b=i(/^@[a-z-]+/)){switch(g=b,"-"==b.charAt(1)&&b.indexOf("-",2)>0&&(g="@"+b.slice(b.indexOf("-",2)+1)),g){case"@font-face":h=!0;break;case"@viewport":case"@top-left":case"@top-left-corner":case"@top-center":case"@top-right":case"@top-right-corner":case"@bottom-left":case"@bottom-left-corner":case"@bottom-center":case"@bottom-right":case"@bottom-right-corner":case"@left-top":case"@left-middle":case"@left-bottom":case"@right-top":case"@right-middle":case"@right-bottom":h=!0;break;case"@host":case"@page":case"@document":case"@supports":case"@keyframes":h=!0,k=!0;break;case"@namespace":l=!0}if(k&&(m=(i(/^[^{]+/)||"").trim(),m&&(b+=" "+m)),h){if(f=this.block())return new w.Directive(b,f,n,a.currentFileInfo)}else if(c=l?this.expression():this.entity(),c&&j(";")){var o=new w.Directive(b,c,n,a.currentFileInfo);return a.dumpLineNumbers&&(o.debugInfo=s(x,u,a)),o}e()}}},value:function(){var a,b=[];do if(a=this.expression(),a&&(b.push(a),!j(",")))break;while(a);return b.length>0?new w.Value(b):void 0},important:function(){return"!"===u.charAt(x)?i(/^! *important/):void 0},sub:function(){var a,b;return j("(")&&(a=this.addition())?(b=new w.Expression([a]),m(")"),b.parens=!0,b):void 0},multiplication:function(){var a,b,c,d,e;if(a=this.operand()){for(e=g(u,x-1);;){if(o(/^\/[*\/]/))break;if(c=j("/")||j("*"),!c)break;if(b=this.operand(),!b)break;a.parensInOp=!0,b.parensInOp=!0,d=new w.Operation(c,[d||a,b],e),e=g(u,x-1)}return d||a}},addition:function(){var a,b,c,d,e;if(a=this.multiplication()){for(e=g(u,x-1);;){if(c=i(/^[-+]\s+/)||!e&&(j("+")||j("-")),!c)break;if(b=this.multiplication(),!b)break;a.parensInOp=!0,b.parensInOp=!0,d=new w.Operation(c,[d||a,b],e),e=g(u,x-1)}return d||a}},conditions:function(){var a,b,c,d=x;if(a=this.condition()){for(;;){if(!o(/^,\s*(not\s*)?\(/)||!j(","))break;if(b=this.condition(),!b)break;c=new w.Condition("or",c||a,b,d)}return c||a}},condition:function(){var a,b,c,d,e=this.entities,f=x,g=!1;return i(/^not/)&&(g=!0),m("("),a=this.addition()||e.keyword()||e.quoted(),a?(d=i(/^(?:>=|<=|=<|[<=>])/),d?(b=this.addition()||e.keyword()||e.quoted(),b?c=new w.Condition(d,a,b,f,g):n("expected expression")):c=new w.Condition("=",a,new w.Keyword("true"),f,g),m(")"),i(/^and/)?new w.Condition("and",c,this.condition()):c):void 0},operand:function(){var a,b=this.entities,c=u.charAt(x+1);"-"!==u.charAt(x)||"@"!==c&&"("!==c||(a=j("-"));var d=this.sub()||b.dimension()||b.color()||b.variable()||b.call();return a&&(d.parensInOp=!0,d=new w.Negative(d)),d},expression:function(){var a,b,c=[];do a=this.addition()||this.entity(),a&&(c.push(a),o(/^\/[\/*]/)||(b=j("/"),b&&c.push(new w.Anonymous(b))));while(a);return c.length>0?new w.Expression(c):void 0},property:function(){var a=i(/^(\*?-?[_a-zA-Z0-9-]+)\s*:/);return a?a[1]:void 0},ruleProperty:function(){function b(a){var b=a.exec(e);return b?(g.push(x+h),h+=b[0].length,e=e.slice(b[1].length),f.push(b[1])):void 0}var c,d,e=D,f=[],g=[],h=0;for(b(/^(\*?)/);b(/^((?:[\w-]+)|(?:@\{[\w-]+\}))/););if(f.length>1&&b(/^\s*(\+?)\s*:/)){for(k(h),""===f[0]&&(f.shift(),g.shift()),d=0;dl;l++)e=b.rgb[l]/255,f=c.rgb[l]/255,h=a(e,f),g&&(h=(j*f+i*(e-j*(e+f-h)))/g),k[l]=255*h;return new d.Color(k,g)}function g(){var a,b=d.functions;for(a in l)l.hasOwnProperty(a)&&(b[a]=e.bind(null,Math[a],l[a]));for(a in m)m.hasOwnProperty(a)&&(b[a]=f.bind(null,m[a]));a=d.defaultFunc,b["default"]=a.eval.bind(a)}function h(a){return d.functions.hsla(a.h,a.s,a.l,a.a)}function i(a,b){return a instanceof d.Dimension&&a.unit.is("%")?parseFloat(a.value*b/100):j(a)}function j(a){if(a instanceof d.Dimension)return parseFloat(a.unit.is("%")?a.value/100:a.value);if("number"==typeof a)return a;throw{error:"RuntimeError",message:"color functions take numbers as parameters"}}function k(a){return Math.min(1,Math.max(0,a))}d.functions={rgb:function(a,b,c){return this.rgba(a,b,c,1)},rgba:function(a,b,c,e){var f=[a,b,c].map(function(a){return i(a,255)});return e=j(e),new d.Color(f,e)},hsl:function(a,b,c){return this.hsla(a,b,c,1)},hsla:function(a,b,c,d){function e(a){return a=0>a?a+1:a>1?a-1:a,1>6*a?g+(f-g)*a*6:1>2*a?f:2>3*a?g+(f-g)*(2/3-a)*6:g}a=j(a)%360/360,b=k(j(b)),c=k(j(c)),d=k(j(d));var f=.5>=c?c*(b+1):c+b-c*b,g=2*c-f;return this.rgba(255*e(a+1/3),255*e(a),255*e(a-1/3),d)},hsv:function(a,b,c){return this.hsva(a,b,c,1)},hsva:function(a,b,c,d){a=j(a)%360/360*360,b=j(b),c=j(c),d=j(d);var e,f;e=Math.floor(a/60%6),f=a/60-e;var g=[c,c*(1-b),c*(1-f*b),c*(1-(1-f)*b)],h=[[0,3,1],[2,0,1],[1,0,3],[1,2,0],[3,1,0],[0,1,2]];return this.rgba(255*g[h[e][0]],255*g[h[e][1]],255*g[h[e][2]],d)},hue:function(a){return new d.Dimension(Math.round(a.toHSL().h))},saturation:function(a){return new d.Dimension(Math.round(100*a.toHSL().s),"%")},lightness:function(a){return new d.Dimension(Math.round(100*a.toHSL().l),"%")},hsvhue:function(a){return new d.Dimension(Math.round(a.toHSV().h))},hsvsaturation:function(a){return new d.Dimension(Math.round(100*a.toHSV().s),"%")},hsvvalue:function(a){return new d.Dimension(Math.round(100*a.toHSV().v),"%")},red:function(a){return new d.Dimension(a.rgb[0])},green:function(a){return new d.Dimension(a.rgb[1])},blue:function(a){return new d.Dimension(a.rgb[2])},alpha:function(a){return new d.Dimension(a.toHSL().a)},luma:function(a){return new d.Dimension(Math.round(a.luma()*a.alpha*100),"%")},saturate:function(a,b){if(!a.rgb)return null;var c=a.toHSL();return c.s+=b.value/100,c.s=k(c.s),h(c)},desaturate:function(a,b){var c=a.toHSL();return c.s-=b.value/100,c.s=k(c.s),h(c)},lighten:function(a,b){var c=a.toHSL();return c.l+=b.value/100,c.l=k(c.l),h(c)},darken:function(a,b){var c=a.toHSL();return c.l-=b.value/100,c.l=k(c.l),h(c)},fadein:function(a,b){var c=a.toHSL();return c.a+=b.value/100,c.a=k(c.a),h(c)},fadeout:function(a,b){var c=a.toHSL();return c.a-=b.value/100,c.a=k(c.a),h(c)},fade:function(a,b){var c=a.toHSL();return c.a=b.value/100,c.a=k(c.a),h(c)},spin:function(a,b){var c=a.toHSL(),d=(c.h+b.value)%360;return c.h=0>d?360+d:d,h(c)},mix:function(a,b,c){c||(c=new d.Dimension(50));var e=c.value/100,f=2*e-1,g=a.toHSL().a-b.toHSL().a,h=((f*g==-1?f:(f+g)/(1+f*g))+1)/2,i=1-h,j=[a.rgb[0]*h+b.rgb[0]*i,a.rgb[1]*h+b.rgb[1]*i,a.rgb[2]*h+b.rgb[2]*i],k=a.alpha*e+b.alpha*(1-e);return new d.Color(j,k)},greyscale:function(a){return this.desaturate(a,new d.Dimension(100))},contrast:function(a,b,c,d){if(!a.rgb)return null;if("undefined"==typeof c&&(c=this.rgba(255,255,255,1)),"undefined"==typeof b&&(b=this.rgba(0,0,0,1)),b.luma()>c.luma()){var e=c;c=b,b=e}return d="undefined"==typeof d?.43:j(d),a.luma()i.value)&&(k[f]=g)):(l[j]=k.length,k.push(g))):k.push(g);return 1==k.length?k[0]:(c=k.map(function(a){return a.toCSS(this.env)}).join(this.env.compress?",":", "),new d.Anonymous((a?"min":"max")+"("+c+")"))},min:function(){return this._minmax(!0,arguments)},max:function(){return this._minmax(!1,arguments)},argb:function(a){return new d.Anonymous(a.toARGB())},percentage:function(a){return new d.Dimension(100*a.value,"%")},color:function(a){if(a instanceof d.Quoted){var b,c=a.value;if(b=d.Color.fromKeyword(c))return b;if(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})/.test(c))return new d.Color(c.slice(1));throw{type:"Argument",message:"argument must be a color keyword or 3/6 digit hex e.g. #FFF"}}throw{type:"Argument",message:"argument must be a string"}},iscolor:function(a){return this._isa(a,d.Color)},isnumber:function(a){return this._isa(a,d.Dimension)},isstring:function(a){return this._isa(a,d.Quoted)},iskeyword:function(a){return this._isa(a,d.Keyword)},isurl:function(a){return this._isa(a,d.URL)},ispixel:function(a){return this.isunit(a,"px")},ispercentage:function(a){return this.isunit(a,"%")},isem:function(a){return this.isunit(a,"em")},isunit:function(a,b){return a instanceof d.Dimension&&a.unit.is(b.value||b)?d.True:d.False},_isa:function(a,b){return a instanceof b?d.True:d.False},tint:function(a,b){return this.mix(this.rgb(255,255,255),a,b)},shade:function(a,b){return this.mix(this.rgb(0,0,0),a,b)},extract:function(a,b){return b=b.value-1,Array.isArray(a.value)?a.value[b]:Array(a)[b]},length:function(a){var b=Array.isArray(a.value)?a.value.length:1;return new d.Dimension(b)},"data-uri":function(b,e){if("undefined"!=typeof a)return new d.URL(e||b,this.currentFileInfo).eval(this.env);var f=b.value,g=e&&e.value,h=c("fs"),i=c("path"),j=!1;if(arguments.length<2&&(g=f),this.env.isPathRelative(g)&&(g=this.currentFileInfo.relativeUrls?i.join(this.currentFileInfo.currentDirectory,g):i.join(this.currentFileInfo.entryPath,g)),arguments.length<2){var k;try{k=c("mime")}catch(l){k=d._mime}f=k.lookup(g);var m=k.charsets.lookup(f);j=["US-ASCII","UTF-8"].indexOf(m)<0,j&&(f+=";base64")}else j=/;base64$/.test(f);var n=h.readFileSync(g),o=32,p=parseInt(n.length/1024,10);if(p>=o&&this.env.ieCompat!==!1)return this.env.silent||console.warn("Skipped data-uri embedding of %s because its size (%dKB) exceeds IE8-safe %dKB!",g,p,o),new d.URL(e||b,this.currentFileInfo).eval(this.env);n=j?n.toString("base64"):encodeURIComponent(n);var q='"data:'+f+","+n+'"';return new d.URL(new d.Anonymous(q))},"svg-gradient":function(a){function e(){throw{type:"Argument",message:"svg-gradient expects direction, start_color [start_position], [color position,]..., end_color [end_position]"}}arguments.length<3&&e();var f,g,h,i,j,k,l,m=Array.prototype.slice.call(arguments,1),n="linear",o='x="0" y="0" width="1" height="1"',p=!0,q={compress:!1},r=a.toCSS(q);switch(r){case"to bottom":f='x1="0%" y1="0%" x2="0%" y2="100%"';break;case"to right":f='x1="0%" y1="0%" x2="100%" y2="0%"';break;case"to bottom right":f='x1="0%" y1="0%" x2="100%" y2="100%"';break;case"to top right":f='x1="0%" y1="100%" x2="100%" y2="0%"';break;case"ellipse":case"ellipse at center":n="radial",f='cx="50%" cy="50%" r="75%"',o='x="-50" y="-50" width="101" height="101"';break;default:throw{type:"Argument",message:"svg-gradient direction must be 'to bottom', 'to right', 'to bottom right', 'to top right' or 'ellipse at center'"}}for(g='<'+n+'Gradient id="gradient" gradientUnits="userSpaceOnUse" '+f+">",h=0;hl?' stop-opacity="'+l+'"':"")+"/>";if(g+="',p)try{g=c("./encoder").encodeBase64(g)}catch(s){p=!1}return g="'data:image/svg+xml"+(p?";base64":"")+","+g+"'",new d.URL(new d.Anonymous(g))}},d._mime={_types:{".htm":"text/html",".html":"text/html",".gif":"image/gif",".jpg":"image/jpeg",".jpeg":"image/jpeg",".png":"image/png"},lookup:function(a){var e=c("path").extname(a),f=d._mime._types[e];if(f===b)throw new Error('Optional dependency "mime" is required for '+e);return f},charsets:{lookup:function(a){return a&&/^text\//.test(a)?"UTF-8":""}}};var l={ceil:null,floor:null,sqrt:null,abs:null,tan:"",sin:"",cos:"",atan:"rad",asin:"rad",acos:"rad"},m={multiply:function(a,b){return a*b},screen:function(a,b){return a+b-a*b},overlay:function(a,b){return a*=2,1>=a?m.multiply(a,b):m.screen(a-1,b)},softlight:function(a,b){var c=1,d=a;return b>.5&&(d=1,c=a>.25?Math.sqrt(a):((16*a-12)*a+4)*a),a-(1-2*b)*d*(c-a)},hardlight:function(a,b){return m.overlay(b,a)},difference:function(a,b){return Math.abs(a-b)},exclusion:function(a,b){return a+b-2*a*b},average:function(a,b){return(a+b)/2},negation:function(a,b){return 1-Math.abs(a+b-1)}};d.defaultFunc={eval:function(){var a=this.value_,b=this.error_;if(b)throw b;return null!=a?a?d.True:d.False:void 0},value:function(a){this.value_=a},error:function(a){this.error_=a},reset:function(){this.value_=this.error_=null}},g(),d.fround=function(a,b){var c;return a&&null!=a.numPrecision?(c=Math.pow(10,a.numPrecision),Math.round(b*c)/c):b},d.functionCall=function(a,b){this.env=a,this.currentFileInfo=b},d.functionCall.prototype=d.functions}(c("./tree")),function(a){a.colors={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgrey:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",grey:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"}}(c("./tree")),function(a){a.debugInfo=function(b,c,d){var e="";if(b.dumpLineNumbers&&!b.compress)switch(b.dumpLineNumbers){case"comments":e=a.debugInfo.asComment(c);break;case"mediaquery":e=a.debugInfo.asMediaQuery(c);break;case"all":e=a.debugInfo.asComment(c)+(d||"")+a.debugInfo.asMediaQuery(c)}return e},a.debugInfo.asComment=function(a){return"/* line "+a.debugInfo.lineNumber+", "+a.debugInfo.fileName+" */\n"},a.debugInfo.asMediaQuery=function(a){return"@media -sass-debug-info{filename{font-family:"+("file://"+a.debugInfo.fileName).replace(/([.:\/\\])/g,function(a){return"\\"==a&&(a="/"),"\\"+a})+"}line{font-family:\\00003"+a.debugInfo.lineNumber+"}}\n"},a.find=function(a,b){for(var c,d=0;d1?"["+a.value.map(function(a){return a.toCSS(!1)}).join(", ")+"]":a.toCSS(!1)},a.toCSS=function(a){var b=[];return this.genCSS(a,{add:function(a){b.push(a)},isEmpty:function(){return 0===b.length}}),b.join("")},a.outputRuleset=function(a,b,c){var d,e=c.length;if(a.tabLevel=(0|a.tabLevel)+1,a.compress){for(b.add("{"),d=0;e>d;d++)c[d].genCSS(a,b);return b.add("}"),a.tabLevel--,void 0}var f="\n"+Array(a.tabLevel).join(" "),g=f+" ";if(e){for(b.add(" {"+g),c[0].genCSS(a,b),d=1;e>d;d++)b.add(g),c[d].genCSS(a,b);b.add(f+"}")}else b.add(" {"+f+"}");a.tabLevel--}}(c("./tree")),function(a){a.Alpha=function(a){this.value=a},a.Alpha.prototype={type:"Alpha",accept:function(a){this.value=a.visit(this.value)},eval:function(b){return this.value.eval?new a.Alpha(this.value.eval(b)):this},genCSS:function(a,b){b.add("alpha(opacity="),this.value.genCSS?this.value.genCSS(a,b):b.add(this.value),b.add(")")},toCSS:a.toCSS}}(c("../tree")),function(a){a.Anonymous=function(a,b,c,d){this.value=a.value||a,this.index=b,this.mapLines=d,this.currentFileInfo=c},a.Anonymous.prototype={type:"Anonymous",eval:function(){return new a.Anonymous(this.value,this.index,this.currentFileInfo,this.mapLines)},compare:function(a){if(!a.toCSS)return-1;var b=this.toCSS(),c=a.toCSS();return b===c?0:c>b?-1:1},genCSS:function(a,b){b.add(this.value,this.currentFileInfo,this.index,this.mapLines)},toCSS:a.toCSS}}(c("../tree")),function(a){a.Assignment=function(a,b){this.key=a,this.value=b},a.Assignment.prototype={type:"Assignment",accept:function(a){this.value=a.visit(this.value)},eval:function(b){return this.value.eval?new a.Assignment(this.key,this.value.eval(b)):this},genCSS:function(a,b){b.add(this.key+"="),this.value.genCSS?this.value.genCSS(a,b):b.add(this.value)},toCSS:a.toCSS}}(c("../tree")),function(a){a.Call=function(a,b,c,d){this.name=a,this.args=b,this.index=c,this.currentFileInfo=d},a.Call.prototype={type:"Call",accept:function(a){this.args&&(this.args=a.visitArray(this.args))},eval:function(b){var c,d,e=this.args.map(function(a){return a.eval(b)}),f=this.name.toLowerCase();if(f in a.functions)try{if(d=new a.functionCall(b,this.currentFileInfo),c=d[f].apply(d,e),null!=c)return c}catch(g){throw{type:g.type||"Runtime",message:"error evaluating function `"+this.name+"`"+(g.message?": "+g.message:""),index:this.index,filename:this.currentFileInfo.filename}}return new a.Call(this.name,e,this.index,this.currentFileInfo)},genCSS:function(a,b){b.add(this.name+"(",this.currentFileInfo,this.index);for(var c=0;ca?"0":"")+a.toString(16)}).join("")}function c(a,b){return Math.min(Math.max(a,0),b)}a.Color=function(a,b){this.rgb=Array.isArray(a)?a:6==a.length?a.match(/.{2}/g).map(function(a){return parseInt(a,16)}):a.split("").map(function(a){return parseInt(a+a,16)}),this.alpha="number"==typeof b?b:1};var d="transparent";a.Color.prototype={type:"Color",eval:function(){return this},luma:function(){return.2126*this.rgb[0]/255+.7152*this.rgb[1]/255+.0722*this.rgb[2]/255},genCSS:function(a,b){b.add(this.toCSS(a))},toCSS:function(b,e){var f=b&&b.compress&&!e,g=a.fround(b,this.alpha);if(1>g)return 0===g&&this.isTransparentKeyword?d:"rgba("+this.rgb.map(function(a){return c(Math.round(a),255)}).concat(c(g,1)).join(","+(f?"":" "))+")";var h=this.toRGB();if(f){var i=h.split("");i[1]===i[2]&&i[3]===i[4]&&i[5]===i[6]&&(h="#"+i[1]+i[3]+i[5])}return h},operate:function(b,c,d){for(var e=[],f=this.alpha*(1-d.alpha)+d.alpha,g=0;3>g;g++)e[g]=a.operate(b,c,this.rgb[g],d.rgb[g]);return new a.Color(e,f)},toRGB:function(){return b(this.rgb)},toHSL:function(){var a,b,c=this.rgb[0]/255,d=this.rgb[1]/255,e=this.rgb[2]/255,f=this.alpha,g=Math.max(c,d,e),h=Math.min(c,d,e),i=(g+h)/2,j=g-h;if(g===h)a=b=0;else{switch(b=i>.5?j/(2-g-h):j/(g+h),g){case c:a=(d-e)/j+(e>d?6:0);break;case d:a=(e-c)/j+2;break;case e:a=(c-d)/j+4}a/=6}return{h:360*a,s:b,l:i,a:f}},toHSV:function(){var a,b,c=this.rgb[0]/255,d=this.rgb[1]/255,e=this.rgb[2]/255,f=this.alpha,g=Math.max(c,d,e),h=Math.min(c,d,e),i=g,j=g-h;if(b=0===g?0:j/g,g===h)a=0;else{switch(g){case c:a=(d-e)/j+(e>d?6:0);break;case d:a=(e-c)/j+2;break;case e:a=(c-d)/j+4}a/=6}return{h:360*a,s:b,v:i,a:f}},toARGB:function(){return b([255*this.alpha].concat(this.rgb))},compare:function(a){return a.rgb?a.rgb[0]===this.rgb[0]&&a.rgb[1]===this.rgb[1]&&a.rgb[2]===this.rgb[2]&&a.alpha===this.alpha?0:-1:-1}},a.Color.fromKeyword=function(b){if(b=b.toLowerCase(),a.colors.hasOwnProperty(b))return new a.Color(a.colors[b].slice(1));if(b===d){var c=new a.Color([0,0,0],0);return c.isTransparentKeyword=!0,c}}}(c("../tree")),function(a){a.Comment=function(a,b,c,d){this.value=a,this.silent=!!b,this.currentFileInfo=d},a.Comment.prototype={type:"Comment",genCSS:function(b,c){this.debugInfo&&c.add(a.debugInfo(b,this),this.currentFileInfo,this.index),c.add(this.value.trim())},toCSS:a.toCSS,isSilent:function(a){var b=this.currentFileInfo&&this.currentFileInfo.reference&&!this.isReferenced,c=a.compress&&!this.value.match(/^\/\*!/);return this.silent||b||c},eval:function(){return this},markReferenced:function(){this.isReferenced=!0}}}(c("../tree")),function(a){a.Condition=function(a,b,c,d,e){this.op=a.trim(),this.lvalue=b,this.rvalue=c,this.index=d,this.negate=e},a.Condition.prototype={type:"Condition",accept:function(a){this.lvalue=a.visit(this.lvalue),this.rvalue=a.visit(this.rvalue)},eval:function(a){var b,c=this.lvalue.eval(a),d=this.rvalue.eval(a),e=this.index;return b=function(a){switch(a){case"and":return c&&d;case"or":return c||d;default:if(c.compare)b=c.compare(d);else{if(!d.compare)throw{type:"Type",message:"Unable to perform comparison",index:e};b=d.compare(c)}switch(b){case-1:return"<"===a||"=<"===a||"<="===a;case 0:return"="===a||">="===a||"=<"===a||"<="===a;case 1:return">"===a||">="===a}}}(this.op),this.negate?!b:b}}}(c("../tree")),function(a){a.Dimension=function(c,d){this.value=parseFloat(c),this.unit=d&&d instanceof a.Unit?d:new a.Unit(d?[d]:b)},a.Dimension.prototype={type:"Dimension",accept:function(a){this.unit=a.visit(this.unit)},eval:function(){return this},toColor:function(){return new a.Color([this.value,this.value,this.value])},genCSS:function(b,c){if(b&&b.strictUnits&&!this.unit.isSingular())throw new Error("Multiple units in dimension. Correct the units or use the unit function. Bad unit: "+this.unit.toString());var d=a.fround(b,this.value),e=String(d);if(0!==d&&1e-6>d&&d>-1e-6&&(e=d.toFixed(20).replace(/0+$/,"")),b&&b.compress){if(0===d&&this.unit.isLength())return c.add(e),void 0;d>0&&1>d&&(e=e.substr(1))}c.add(e),this.unit.genCSS(b,c)},toCSS:a.toCSS,operate:function(b,c,d){var e=a.operate(b,c,this.value,d.value),f=this.unit.clone();if("+"===c||"-"===c)if(0===f.numerator.length&&0===f.denominator.length)f.numerator=d.unit.numerator.slice(0),f.denominator=d.unit.denominator.slice(0);else if(0===d.unit.numerator.length&&0===f.denominator.length);else{if(d=d.convertTo(this.unit.usedUnits()),b.strictUnits&&d.unit.toString()!==f.toString())throw new Error("Incompatible units. Change the units or use the unit function. Bad units: '"+f.toString()+"' and '"+d.unit.toString()+"'.");e=a.operate(b,c,this.value,d.value)}else"*"===c?(f.numerator=f.numerator.concat(d.unit.numerator).sort(),f.denominator=f.denominator.concat(d.unit.denominator).sort(),f.cancel()):"/"===c&&(f.numerator=f.numerator.concat(d.unit.denominator).sort(),f.denominator=f.denominator.concat(d.unit.numerator).sort(),f.cancel());return new a.Dimension(e,f)},compare:function(b){if(b instanceof a.Dimension){var c=this.unify(),d=b.unify(),e=c.value,f=d.value;return f>e?-1:e>f?1:d.unit.isEmpty()||0===c.unit.compare(d.unit)?0:-1}return-1},unify:function(){return this.convertTo({length:"m",duration:"s",angle:"rad"})},convertTo:function(b){var c,d,e,f,g,h=this.value,i=this.unit.clone(),j={};if("string"==typeof b){for(c in a.UnitConversions)a.UnitConversions[c].hasOwnProperty(b)&&(j={},j[c]=b);b=j}g=function(a,b){return e.hasOwnProperty(a)?(b?h/=e[a]/e[f]:h*=e[a]/e[f],f):a};for(d in b)b.hasOwnProperty(d)&&(f=b[d],e=a.UnitConversions[d],i.map(g));return i.cancel(),new a.Dimension(h,i)}},a.UnitConversions={length:{m:1,cm:.01,mm:.001,"in":.0254,pt:.0254/72,pc:.0254/72*12},duration:{s:1,ms:.001},angle:{rad:1/(2*Math.PI),deg:1/360,grad:.0025,turn:1}},a.Unit=function(a,b,c){this.numerator=a?a.slice(0).sort():[],this.denominator=b?b.slice(0).sort():[],this.backupUnit=c},a.Unit.prototype={type:"Unit",clone:function(){return new a.Unit(this.numerator.slice(0),this.denominator.slice(0),this.backupUnit)},genCSS:function(a,b){this.numerator.length>=1?b.add(this.numerator[0]):this.denominator.length>=1?b.add(this.denominator[0]):a&&a.strictUnits||!this.backupUnit||b.add(this.backupUnit)},toCSS:a.toCSS,toString:function(){var a,b=this.numerator.join("*");for(a=0;a0)for(b=0;e>b;b++)this.numerator.push(a);else if(0>e)for(b=0;-e>b;b++)this.denominator.push(a)}0===this.numerator.length&&0===this.denominator.length&&c&&(this.backupUnit=c),this.numerator.sort(),this.denominator.sort()}}}(c("../tree")),function(a){a.Directive=function(b,c,d,e){this.name=b,Array.isArray(c)?(this.rules=[new a.Ruleset(null,c)],this.rules[0].allowImports=!0):this.value=c,this.index=d,this.currentFileInfo=e},a.Directive.prototype={type:"Directive",accept:function(a){this.rules&&(this.rules=a.visitArray(this.rules)),this.value&&(this.value=a.visit(this.value))},genCSS:function(b,c){c.add(this.name,this.currentFileInfo,this.index),this.rules?a.outputRuleset(b,c,this.rules):(c.add(" "),this.value.genCSS(b,c),c.add(";"))},toCSS:a.toCSS,eval:function(b){var c=this;return this.rules&&(b.frames.unshift(this),c=new a.Directive(this.name,null,this.index,this.currentFileInfo),c.rules=[this.rules[0].eval(b)],c.rules[0].root=!0,b.frames.shift()),c},variable:function(b){return a.Ruleset.prototype.variable.call(this.rules[0],b)},find:function(){return a.Ruleset.prototype.find.apply(this.rules[0],arguments)},rulesets:function(){return a.Ruleset.prototype.rulesets.apply(this.rules[0])},markReferenced:function(){var a,b;if(this.isReferenced=!0,this.rules)for(b=this.rules[0].rules,a=0;a":" > ","|":"|","^":" ^ ","^^":" ^^ "},_outputMapCompressed:{"":""," ":" ",":":" :","+":"+","~":"~",">":">","|":"|","^":"^","^^":"^^"},genCSS:function(a,b){b.add((a.compress?this._outputMapCompressed:this._outputMap)[this.value])},toCSS:a.toCSS}}(c("../tree")),function(a){a.Expression=function(a){this.value=a},a.Expression.prototype={type:"Expression",accept:function(a){this.value&&(this.value=a.visitArray(this.value))},eval:function(b){var c,d=this.parens&&!this.parensInOp,e=!1;return d&&b.inParenthesis(),this.value.length>1?c=new a.Expression(this.value.map(function(a){return a.eval(b)})):1===this.value.length?(this.value[0].parens&&!this.value[0].parensInOp&&(e=!0),c=this.value[0].eval(b)):c=this,d&&b.outOfParenthesis(),this.parens&&this.parensInOp&&!b.isMathOn()&&!e&&(c=new a.Paren(c)),c},genCSS:function(a,b){for(var c=0;c0&&c.length&&""===c[0].combinator.value&&(c[0].combinator.value=" "),d=d.concat(a[b].elements);this.selfSelectors=[{elements:d}]}}}(c("../tree")),function(a){a.Import=function(a,c,d,e,f){if(this.options=d,this.index=e,this.path=a,this.features=c,this.currentFileInfo=f,this.options.less!==b||this.options.inline)this.css=!this.options.less||this.options.inline;else{var g=this.getPath();g&&/css([\?;].*)?$/.test(g)&&(this.css=!0)}},a.Import.prototype={type:"Import",accept:function(a){this.features&&(this.features=a.visit(this.features)),this.path=a.visit(this.path),!this.options.inline&&this.root&&(this.root=a.visit(this.root))},genCSS:function(a,b){this.css&&(b.add("@import ",this.currentFileInfo,this.index),this.path.genCSS(a,b),this.features&&(b.add(" "),this.features.genCSS(a,b)),b.add(";"))},toCSS:a.toCSS,getPath:function(){if(this.path instanceof a.Quoted){var c=this.path.value;return this.css!==b||/(\.[a-z]*$)|([\?;].*)$/.test(c)?c:c+".less"}return this.path instanceof a.URL?this.path.value.value:null},evalForImport:function(b){return new a.Import(this.path.eval(b),this.features,this.options,this.index,this.currentFileInfo)},evalPath:function(b){var c=this.path.eval(b),d=this.currentFileInfo&&this.currentFileInfo.rootpath;if(!(c instanceof a.URL)){if(d){var e=c.value;e&&b.isPathRelative(e)&&(c.value=d+e)}c.value=b.normalizePath(c.value)}return c},eval:function(b){var c,d=this.features&&this.features.eval(b);if(this.skip)return[];if(this.options.inline){var e=new a.Anonymous(this.root,0,{filename:this.importedFilename},!0);return this.features?new a.Media([e],this.features.value):[e]}if(this.css){var f=new a.Import(this.evalPath(b),d,this.options,this.index);if(!f.css&&this.error)throw this.error;return f}return c=new a.Ruleset(null,this.root.rules.slice(0)),c.evalImports(b),this.features?new a.Media(c.rules,this.features.value):c.rules}}}(c("../tree")),function(a){a.JavaScript=function(a,b,c){this.escaped=c,this.expression=a,this.index=b},a.JavaScript.prototype={type:"JavaScript",eval:function(b){var c,d=this,e={},f=this.expression.replace(/@\{([\w-]+)\}/g,function(c,e){return a.jsify(new a.Variable("@"+e,d.index).eval(b))});try{f=new Function("return ("+f+")")}catch(g){throw{message:"JavaScript evaluation error: "+g.message+" from `"+f+"`",index:this.index}}var h=b.frames[0].variables();for(var i in h)h.hasOwnProperty(i)&&(e[i.slice(1)]={value:h[i].value,toJS:function(){return this.value.eval(b).toCSS()}});try{c=f.call(e)}catch(g){throw{message:"JavaScript evaluation error: '"+g.name+": "+g.message.replace(/["]/g,"'")+"'",index:this.index}}return"number"==typeof c?new a.Dimension(c):"string"==typeof c?new a.Quoted('"'+c+'"',c,this.escaped,this.index):Array.isArray(c)?new a.Anonymous(c.join(", ")):new a.Anonymous(c)}}}(c("../tree")),function(a){a.Keyword=function(a){this.value=a},a.Keyword.prototype={type:"Keyword",eval:function(){return this},genCSS:function(a,b){b.add(this.value)},toCSS:a.toCSS,compare:function(b){return b instanceof a.Keyword?b.value===this.value?0:1:-1}},a.True=new a.Keyword("true"),a.False=new a.Keyword("false")}(c("../tree")),function(a){a.Media=function(b,c,d,e){this.index=d,this.currentFileInfo=e;var f=this.emptySelectors();this.features=new a.Value(c),this.rules=[new a.Ruleset(f,b)],this.rules[0].allowImports=!0},a.Media.prototype={type:"Media",accept:function(a){this.features&&(this.features=a.visit(this.features)),this.rules&&(this.rules=a.visitArray(this.rules))},genCSS:function(b,c){c.add("@media ",this.currentFileInfo,this.index),this.features.genCSS(b,c),a.outputRuleset(b,c,this.rules)},toCSS:a.toCSS,eval:function(b){b.mediaBlocks||(b.mediaBlocks=[],b.mediaPath=[]);var c=new a.Media(null,[],this.index,this.currentFileInfo);this.debugInfo&&(this.rules[0].debugInfo=this.debugInfo,c.debugInfo=this.debugInfo);var d=!1;b.strictMath||(d=!0,b.strictMath=!0);try{c.features=this.features.eval(b)}finally{d&&(b.strictMath=!1)}return b.mediaPath.push(c),b.mediaBlocks.push(c),b.frames.unshift(this.rules[0]),c.rules=[this.rules[0].eval(b)],b.frames.shift(),b.mediaPath.pop(),0===b.mediaPath.length?c.evalTop(b):c.evalNested(b)},variable:function(b){return a.Ruleset.prototype.variable.call(this.rules[0],b)},find:function(){return a.Ruleset.prototype.find.apply(this.rules[0],arguments)},rulesets:function(){return a.Ruleset.prototype.rulesets.apply(this.rules[0])},emptySelectors:function(){var b=new a.Element("","&",this.index,this.currentFileInfo),c=[new a.Selector([b],null,null,this.index,this.currentFileInfo)];return c[0].mediaEmpty=!0,c},markReferenced:function(){var a,b=this.rules[0].rules;for(this.isReferenced=!0,a=0;a1){var d=this.emptySelectors();c=new a.Ruleset(d,b.mediaBlocks),c.multiMedia=!0}return delete b.mediaBlocks,delete b.mediaPath,c},evalNested:function(b){var c,d,e=b.mediaPath.concat([this]);for(c=0;c0;c--)b.splice(c,0,new a.Anonymous("and"));return new a.Expression(b)})),new a.Ruleset([],[])},permute:function(a){if(0===a.length)return[];if(1===a.length)return a[0];for(var b=[],c=this.permute(a.slice(1)),d=0;d0){for(j=!0,g=0;gh;h++)s.value(h),r[h]=d.matchCondition(e,b);(r[0]||r[1])&&(r[0]!=r[1]&&(l.group=r[1]?u:v),q.push(l))}else q.push(l);p=!0}}for(s.reset(),n=[0,0,0],g=0;g0)m=v;else if(m=u,n[u]+n[v]>1)throw{type:"Runtime",message:"Ambiguous use of `default()` found when matching for `"+this.format(e)+"`",index:this.index,filename:this.currentFileInfo.filename};for(g=0;gthis.params.length)return!1}c=Math.min(d,this.arity);for(var e=0;c>e;e++)if(!this.params[e].name&&!this.params[e].variadic&&a[e].value.eval(b).toCSS()!=this.params[e].value.eval(b).toCSS())return!1;return!0}}}(c("../tree")),function(a){a.Negative=function(a){this.value=a},a.Negative.prototype={type:"Negative",accept:function(a){this.value=a.visit(this.value)},genCSS:function(a,b){b.add("-"),this.value.genCSS(a,b)},toCSS:a.toCSS,eval:function(b){return b.isMathOn()?new a.Operation("*",[new a.Dimension(-1),this.value]).eval(b):new a.Negative(this.value.eval(b))}}}(c("../tree")),function(a){a.Operation=function(a,b,c){this.op=a.trim(),this.operands=b,this.isSpaced=c},a.Operation.prototype={type:"Operation",accept:function(a){this.operands=a.visit(this.operands)},eval:function(b){var c=this.operands[0].eval(b),d=this.operands[1].eval(b);if(b.isMathOn()){if(c instanceof a.Dimension&&d instanceof a.Color&&(c=c.toColor()),d instanceof a.Dimension&&c instanceof a.Color&&(d=d.toColor()),!c.operate)throw{type:"Operation",message:"Operation on an invalid type"};return c.operate(b,this.op,d)}return new a.Operation(this.op,[c,d],this.isSpaced)},genCSS:function(a,b){this.operands[0].genCSS(a,b),this.isSpaced&&b.add(" "),b.add(this.op),this.isSpaced&&b.add(" "),this.operands[1].genCSS(a,b)},toCSS:a.toCSS},a.operate=function(a,b,c,d){switch(b){case"+":return c+d;case"-":return c-d;case"*":return c*d;case"/":return c/d}}}(c("../tree")),function(a){a.Paren=function(a){this.value=a},a.Paren.prototype={type:"Paren",accept:function(a){this.value=a.visit(this.value)},genCSS:function(a,b){b.add("("),this.value.genCSS(a,b),b.add(")")},toCSS:a.toCSS,eval:function(b){return new a.Paren(this.value.eval(b))}}}(c("../tree")),function(a){a.Quoted=function(a,b,c,d,e){this.escaped=c,this.value=b||"",this.quote=a.charAt(0),this.index=d,this.currentFileInfo=e},a.Quoted.prototype={type:"Quoted",genCSS:function(a,b){this.escaped||b.add(this.quote,this.currentFileInfo,this.index),b.add(this.value),this.escaped||b.add(this.quote)},toCSS:a.toCSS,eval:function(b){var c=this,d=this.value.replace(/`([^`]+)`/g,function(d,e){return new a.JavaScript(e,c.index,!0).eval(b).value}).replace(/@\{([\w-]+)\}/g,function(d,e){var f=new a.Variable("@"+e,c.index,c.currentFileInfo).eval(b,!0);return f instanceof a.Quoted?f.value:f.toCSS()});return new a.Quoted(this.quote+d+this.quote,d,this.escaped,this.index,this.currentFileInfo)},compare:function(a){if(!a.toCSS)return-1;var b=this.toCSS(),c=a.toCSS();return b===c?0:c>b?-1:1}}}(c("../tree")),function(a){function b(a,b){var c,d="",e=b.length,f={add:function(a){d+=a}};for(c=0;e>c;c++)b[c].eval(a).genCSS(a,f);return d}a.Rule=function(b,c,d,e,f,g,h){this.name=b,this.value=c instanceof a.Value?c:new a.Value([c]),this.important=d?" "+d.trim():"",this.merge=e,this.index=f,this.currentFileInfo=g,this.inline=h||!1,this.variable=b.charAt&&"@"===b.charAt(0)},a.Rule.prototype={type:"Rule",accept:function(a){this.value=a.visit(this.value)},genCSS:function(a,b){b.add(this.name+(a.compress?":":": "),this.currentFileInfo,this.index);try{this.value.genCSS(a,b)}catch(c){throw c.index=this.index,c.filename=this.currentFileInfo.filename,c}b.add(this.important+(this.inline||a.lastRule&&a.compress?"":";"),this.currentFileInfo,this.index)},toCSS:a.toCSS,eval:function(c){var d=!1,e=this.name;"string"!=typeof e&&(e=1===e.length&&e[0]instanceof a.Keyword?e[0].value:b(c,e)),"font"!==e||c.strictMath||(d=!0,c.strictMath=!0);try{return new a.Rule(e,this.value.eval(c),this.important,this.merge,this.index,this.currentFileInfo,this.inline)}catch(f){throw f.index=f.index||this.index,f}finally{d&&(c.strictMath=!1)}},makeImportant:function(){return new a.Rule(this.name,this.value,"!important",this.merge,this.index,this.currentFileInfo,this.inline)}}}(c("../tree")),function(a){a.Ruleset=function(a,b,c){this.selectors=a,this.rules=b,this._lookups={},this.strictImports=c},a.Ruleset.prototype={type:"Ruleset",accept:function(a){this.paths?a.visitArray(this.paths,!0):this.selectors&&(this.selectors=a.visitArray(this.selectors)),this.rules&&this.rules.length&&(this.rules=a.visitArray(this.rules))},eval:function(b){var c,d,e,f=this.selectors,g=a.defaultFunc;if(f&&(d=f.length)){for(c=[],g.error({type:"Syntax",message:"it is currently only allowed in parametric mixin guards,"}),e=0;d>e;e++)c.push(f[e].eval(b));g.reset()}var h,i,j=this.rules?this.rules.slice(0):null,k=new a.Ruleset(c,j,this.strictImports);k.originalRuleset=this,k.root=this.root,k.firstRoot=this.firstRoot,k.allowImports=this.allowImports,this.debugInfo&&(k.debugInfo=this.debugInfo);var l=b.frames;l.unshift(k);var m=b.selectors;m||(b.selectors=m=[]),m.unshift(this.selectors),(k.root||k.allowImports||!k.strictImports)&&k.evalImports(b);var n=k.rules,o=n?n.length:0;for(e=0;o>e;e++)n[e]instanceof a.mixin.Definition&&(n[e].frames=l.slice(0));var p=b.mediaBlocks&&b.mediaBlocks.length||0;for(e=0;o>e;e++)n[e]instanceof a.mixin.Call&&(j=n[e].eval(b).filter(function(b){return b instanceof a.Rule&&b.variable?!k.variable(b.name):!0}),n.splice.apply(n,[e,1].concat(j)),o+=j.length-1,e+=j.length-1,k.resetCache());for(e=0;eb;b++)c=g[b],(c instanceof d||c instanceof e)&&f.push(c);return f},prependRule:function(a){var b=this.rules;b?b.unshift(a):this.rules=[a]},find:function(b,c){c=c||this;var d,e=[],f=b.toCSS();return f in this._lookups?this._lookups[f]:(this.rulesets().forEach(function(f){if(f!==c)for(var g=0;gd?Array.prototype.push.apply(e,f.find(new a.Selector(b.elements.slice(d)),c)):e.push(f);break}}),this._lookups[f]=e,e)},genCSS:function(b,c){var d,e,f,g,h,i,j=[],k=[];b.tabLevel=b.tabLevel||0,this.root||b.tabLevel++;var l,m=b.compress?"":Array(b.tabLevel+1).join(" "),n=b.compress?"":Array(b.tabLevel).join(" ");for(d=0;dd;d++)if(i=p[d],o=i.length)for(d>0&&c.add(l),b.firstSelector=!0,i[0].genCSS(b,c),b.firstSelector=!1,e=1;o>e;e++)i[e].genCSS(b,c);c.add((b.compress?"{":" {\n")+m)}for(d=0;dd;d++)l&&c.add(l),k[d].genCSS(b,c);c.isEmpty()||b.compress||!this.firstRoot||c.add("\n")},toCSS:a.toCSS,markReferenced:function(){for(var a=0;a0&&this.mergeElementsOnToSelectors(r,i),f=0;f0&&(k[0].elements=k[0].elements.slice(0),k[0].elements.push(new a.Element(j.combinator,"",j.index,j.currentFileInfo))),s.push(k);else for(g=0;g0?(m=k.slice(0),q=m.pop(),o=d.createDerived(q.elements.slice(0)),p=!1):o=d.createDerived([]),l.length>1&&(n=n.concat(l.slice(1))),l.length>0&&(p=!1,o.elements.push(new a.Element(j.combinator,l[0].elements[0].value,j.index,j.currentFileInfo)),o.elements=o.elements.concat(l[0].elements.slice(1))),p||m.push(o),m=m.concat(n),s.push(m);i=s,r=[]}for(r.length>0&&this.mergeElementsOnToSelectors(r,i),e=0;e0&&b.push(i[e])}else if(c.length>0)for(e=0;e0?e[e.length-1]=e[e.length-1].createDerived(e[e.length-1].elements.concat(b)):e.push(new a.Selector(b))}}}(c("../tree")),function(a){a.Selector=function(a,b,c,d,e,f){this.elements=a,this.extendList=b,this.condition=c,this.currentFileInfo=e||{},this.isReferenced=f,c||(this.evaldCondition=!0)},a.Selector.prototype={type:"Selector",accept:function(a){this.elements&&(this.elements=a.visitArray(this.elements)),this.extendList&&(this.extendList=a.visitArray(this.extendList)),this.condition&&(this.condition=a.visit(this.condition))},createDerived:function(b,c,d){d=null!=d?d:this.evaldCondition;var e=new a.Selector(b,c||this.extendList,null,this.index,this.currentFileInfo,this.isReferenced);return e.evaldCondition=d,e.mediaEmpty=this.mediaEmpty,e},match:function(a){var b,c,d=this.elements,e=d.length;if(a.CacheElements(),b=a._elements.length,0===b||b>e)return 0;for(c=0;b>c;c++)if(d[c].value!==a._elements[c])return 0;return b},CacheElements:function(){var a,b,c,d="";if(!this._elements){for(a=this.elements.length,c=0;a>c;c++)if(b=this.elements[c],d+=b.combinator.value,b.value.value){if("string"!=typeof b.value.value){d="";break}d+=b.value.value}else d+=b.value;this._elements=d.match(/[,&#\.\w-]([\w-]|(\\.))*/g),this._elements?"&"===this._elements[0]&&this._elements.shift():this._elements=[]}},isJustParentSelector:function(){return!this.mediaEmpty&&1===this.elements.length&&"&"===this.elements[0].value&&(" "===this.elements[0].combinator.value||""===this.elements[0].combinator.value)},eval:function(a){var b=this.condition&&this.condition.eval(a),c=this.elements,d=this.extendList;return c=c&&c.map(function(b){return b.eval(a)}),d=d&&d.map(function(b){return b.eval(a)}),this.createDerived(c,d,b)},genCSS:function(a,b){var c,d;if(a&&a.firstSelector||""!==this.elements[0].combinator.value||b.add(" ",this.currentFileInfo,this.index),!this._css)for(c=0;cc;c++)this.visit(a[c]);return a}var e=[];for(c=0;d>c;c++){var f=this.visit(a[c]);f.splice?f.length&&this.flatten(f,e):e.push(f)}return e},flatten:function(a,b){b||(b=[]);var c,d,e,f,g,h;for(d=0,c=a.length;c>d;d++)if(e=a[d],e.splice)for(g=0,f=e.length;f>g;g++)h=e[g],h.splice?h.length&&this.flatten(h,b):b.push(h);else b.push(e);return b}}}(c("./tree")),function(a){a.importVisitor=function(b,c,d){this._visitor=new a.visitor(this),this._importer=b,this._finish=c,this.env=d||new a.evalEnv,this.importCount=0},a.importVisitor.prototype={isReplacing:!0,run:function(a){var b;try{this._visitor.visit(a)}catch(c){b=c}this.isFinished=!0,0===this.importCount&&this._finish(b)},visitImport:function(b,c){var d,e=this,f=b.options.inline;if(!b.css||f){try{d=b.evalForImport(this.env)}catch(g){g.filename||(g.index=b.index,g.filename=b.currentFileInfo.filename),b.css=!0,b.error=g}if(d&&(!d.css||f)){b=d,this.importCount++;var h=new a.evalEnv(this.env,this.env.frames.slice(0));b.options.multiple&&(h.importMultiple=!0),this._importer.push(b.getPath(),b.currentFileInfo,b.options,function(c,d,g,i){c&&!c.filename&&(c.index=b.index,c.filename=b.currentFileInfo.filename),g&&!h.importMultiple&&(b.skip=g);var j=function(a){e.importCount--,0===e.importCount&&e.isFinished&&e._finish(a)};return!d||(b.root=d,b.importedFilename=i,f||b.skip)?(j(),void 0):(new a.importVisitor(e._importer,j,h).run(d),void 0)})}}return c.visitDeeper=!1,b},visitRule:function(a,b){return b.visitDeeper=!1,a},visitDirective:function(a){return this.env.frames.unshift(a),a},visitDirectiveOut:function(){this.env.frames.shift()},visitMixinDefinition:function(a){return this.env.frames.unshift(a),a},visitMixinDefinitionOut:function(){this.env.frames.shift()},visitRuleset:function(a){return this.env.frames.unshift(a),a},visitRulesetOut:function(){this.env.frames.shift()},visitMedia:function(a){return this.env.frames.unshift(a.ruleset),a},visitMediaOut:function(){this.env.frames.shift()}}}(c("./tree")),function(a){a.joinSelectorVisitor=function(){this.contexts=[[]],this._visitor=new a.visitor(this)},a.joinSelectorVisitor.prototype={run:function(a){return this._visitor.visit(a)},visitRule:function(a,b){b.visitDeeper=!1},visitMixinDefinition:function(a,b){b.visitDeeper=!1},visitRuleset:function(a){var b,c=this.contexts[this.contexts.length-1],d=[];this.contexts.push(d),a.root||(b=a.selectors,b&&(b=b.filter(function(a){return a.getIsOutput()}),a.selectors=b.length?b:b=null,b&&a.joinSelectors(d,c,b)),b||(a.rules=null),a.paths=d)},visitRulesetOut:function(){this.contexts.length=this.contexts.length-1},visitMedia:function(a){var b=this.contexts[this.contexts.length-1];a.rules[0].root=0===b.length||b[0].multiMedia}}}(c("./tree")),function(a){a.toCSSVisitor=function(b){this._visitor=new a.visitor(this),this._env=b},a.toCSSVisitor.prototype={isReplacing:!0,run:function(a){return this._visitor.visit(a)},visitRule:function(a){return a.variable?[]:a},visitMixinDefinition:function(){return[]},visitExtend:function(){return[]},visitComment:function(a){return a.isSilent(this._env)?[]:a},visitMedia:function(a,b){return a.accept(this._visitor),b.visitDeeper=!1,a.rules.length?a:[]},visitDirective:function(b){if(b.currentFileInfo.reference&&!b.isReferenced)return[];if("@charset"===b.name){if(this.charset){if(b.debugInfo){var c=new a.Comment("/* "+b.toCSS(this._env).replace(/\n/g,"")+" */\n");return c.debugInfo=b.debugInfo,this._visitor.visit(c)}return[]}this.charset=!0}return b},checkPropertiesInRoot:function(b){for(var c,d=0;d0)&&e.splice(0,0,b);else{b.paths&&(b.paths=b.paths.filter(function(b){var c;for(" "===b[0].elements[0].combinator.value&&(b[0].elements[0].combinator=new a.Combinator("")),c=0;ch;)d=f[h],d&&d.rules?(e.push(this._visitor.visit(d)),f.splice(h,1),g--):h++;g>0?b.accept(this._visitor):b.rules=null,c.visitDeeper=!1,f=b.rules,f&&(this._mergeRules(f),f=b.rules),f&&(this._removeDuplicateRules(f),f=b.rules),f&&f.length>0&&b.paths.length>0&&e.splice(0,0,b)}return 1===e.length?e[0]:e},_removeDuplicateRules:function(b){if(b){var c,d,e,f={};for(e=b.length-1;e>=0;e--)if(d=b[e],d instanceof a.Rule)if(f[d.name]){c=f[d.name],c instanceof a.Rule&&(c=f[d.name]=[f[d.name].toCSS(this._env)]);var g=d.toCSS(this._env);-1!==c.indexOf(g)?b.splice(e,1):c.push(g)}else f[d.name]=d}},_mergeRules:function(b){if(b){for(var c,d,e,f={},g=0;g1&&(d=c[0],d.value=new a.Value(c.map(function(a){return a.value})))})}}}}(c("./tree")),function(a){a.extendFinderVisitor=function(){this._visitor=new a.visitor(this),this.contexts=[],this.allExtendsStack=[[]]},a.extendFinderVisitor.prototype={run:function(a){return a=this._visitor.visit(a),a.allExtends=this.allExtendsStack[0],a},visitRule:function(a,b){b.visitDeeper=!1},visitMixinDefinition:function(a,b){b.visitDeeper=!1},visitRuleset:function(b){if(!b.root){var c,d,e,f,g=[],h=b.rules,i=h?h.length:0;for(c=0;i>c;c++)b.rules[c]instanceof a.Extend&&(g.push(h[c]),b.extendOnEveryPath=!0);var j=b.paths;for(c=0;c=0||(i=[k.selfSelectors[0]],g=n.findMatch(j,i),g.length&&j.selfSelectors.forEach(function(b){h=n.extendSelector(g,i,b),l=new a.Extend(k.selector,k.option,0),l.selfSelectors=h,h[h.length-1].extendList=[l],m.push(l),l.ruleset=k.ruleset,l.parent_ids=l.parent_ids.concat(k.parent_ids,j.parent_ids),k.firstExtendOnThisSelectorPath&&(l.firstExtendOnThisSelectorPath=!0,k.ruleset.paths.push(h))}));if(m.length){if(this.extendChainCount++,d>100){var o="{unable to calculate}",p="{unable to calculate}";try{o=m[0].selfSelectors[0].toCSS(),p=m[0].selector.toCSS()}catch(q){}throw{message:"extend circular reference detected. One of the circular extends is currently:"+o+":extend("+p+")"}}return m.concat(n.doExtendChaining(m,c,d+1))}return m},visitRule:function(a,b){b.visitDeeper=!1},visitMixinDefinition:function(a,b){b.visitDeeper=!1},visitSelector:function(a,b){b.visitDeeper=!1},visitRuleset:function(a){if(!a.root){var b,c,d,e,f=this.allExtendsStack[this.allExtendsStack.length-1],g=[],h=this;for(d=0;d0&&k[i.matched].combinator.value!==g?i=null:i.matched++,i&&(i.finished=i.matched===k.length,i.finished&&!a.allowAfter&&(e+1j&&k>0&&(l[l.length-1].elements=l[l.length-1].elements.concat(c[j].elements.slice(k)),k=0,j++),i=f.elements.slice(k,h.index).concat([g]).concat(d.elements.slice(1)),j===h.pathIndex&&e>0?l[l.length-1].elements=l[l.length-1].elements.concat(i):(l=l.concat(c.slice(j,h.pathIndex)),l.push(new a.Selector(i))),j=h.endPathIndex,k=h.endPathElementIndex,k>=c[j].elements.length&&(k=0,j++);return j0&&(l[l.length-1].elements=l[l.length-1].elements.concat(c[j].elements.slice(k)),j++),l=l.concat(c.slice(j,c.length))},visitRulesetOut:function(){},visitMedia:function(a){var b=a.allExtends.concat(this.allExtendsStack[this.allExtendsStack.length-1]);b=b.concat(this.doExtendChaining(b,a.allExtends)),this.allExtendsStack.push(b)},visitMediaOut:function(){this.allExtendsStack.length=this.allExtendsStack.length-1},visitDirective:function(a){var b=a.allExtends.concat(this.allExtendsStack[this.allExtendsStack.length-1]);b=b.concat(this.doExtendChaining(b,a.allExtends)),this.allExtendsStack.push(b)},visitDirectiveOut:function(){this.allExtendsStack.length=this.allExtendsStack.length-1}}}(c("./tree")),function(a){a.sourceMapOutput=function(a){this._css=[],this._rootNode=a.rootNode,this._writeSourceMap=a.writeSourceMap,this._contentsMap=a.contentsMap,this._contentsIgnoredCharsMap=a.contentsIgnoredCharsMap,this._sourceMapFilename=a.sourceMapFilename,this._outputFilename=a.outputFilename,this._sourceMapURL=a.sourceMapURL,a.sourceMapBasepath&&(this._sourceMapBasepath=a.sourceMapBasepath.replace(/\\/g,"/")),this._sourceMapRootpath=a.sourceMapRootpath,this._outputSourceFiles=a.outputSourceFiles,this._sourceMapGeneratorConstructor=a.sourceMapGenerator||c("source-map").SourceMapGenerator,this._sourceMapRootpath&&"/"!==this._sourceMapRootpath.charAt(this._sourceMapRootpath.length-1)&&(this._sourceMapRootpath+="/"),this._lineNumber=0,this._column=0},a.sourceMapOutput.prototype.normalizeFilename=function(a){return a=a.replace(/\\/g,"/"),this._sourceMapBasepath&&0===a.indexOf(this._sourceMapBasepath)&&(a=a.substring(this._sourceMapBasepath.length),("\\"===a.charAt(0)||"/"===a.charAt(0))&&(a=a.substring(1))),(this._sourceMapRootpath||"")+a},a.sourceMapOutput.prototype.add=function(a,b,c,d){if(a){var e,f,g,h,i;if(b){var j=this._contentsMap[b.filename];this._contentsIgnoredCharsMap[b.filename]&&(c-=this._contentsIgnoredCharsMap[b.filename],0>c&&(c=0),j=j.slice(this._contentsIgnoredCharsMap[b.filename])),j=j.substring(0,c),f=j.split("\n"),h=f[f.length-1]}if(e=a.split("\n"),g=e[e.length-1],b)if(d)for(i=0;i0){var d,e=JSON.stringify(this._sourceMapGenerator.toJSON());this._sourceMapURL?d=this._sourceMapURL:this._sourceMapFilename&&(d=this.normalizeFilename(this._sourceMapFilename)),this._writeSourceMap?this._writeSourceMap(e):d="data:application/json,"+encodeURIComponent(e),d&&this._css.push("/*# sourceMappingURL="+d+" */") +}return this._css.join("")}}(c("./tree"));var x=/^(file|chrome(-extension)?|resource|qrc|app):/.test(location.protocol);v.env=v.env||("127.0.0.1"==location.hostname||"0.0.0.0"==location.hostname||"localhost"==location.hostname||location.port&&location.port.length>0||x?"development":"production");var y={info:2,errors:1,none:0};if(v.logLevel="undefined"!=typeof v.logLevel?v.logLevel:y.info,v.async=v.async||!1,v.fileAsync=v.fileAsync||!1,v.poll=v.poll||(x?1e3:1500),v.functions)for(var z in v.functions)v.functions.hasOwnProperty(z)&&(v.tree.functions[z]=v.functions[z]);var A=/!dumpLineNumbers:(comments|mediaquery|all)/.exec(location.hash);A&&(v.dumpLineNumbers=A[1]);var B=/^text\/(x-)?less$/,C=null,D={};if(v.watch=function(){return v.watchMode||(v.env="development",u()),this.watchMode=!0,!0},v.unwatch=function(){return clearInterval(v.watchTimer),this.watchMode=!1,!1},/!watch/.test(location.hash)&&v.watch(),"development"!=v.env)try{C="undefined"==typeof a.localStorage?null:a.localStorage}catch(E){}var F=document.getElementsByTagName("link");v.sheets=[];for(var G=0;G - * Licensed under the Apache v2 License. - * - */ - - /** * @license Apache v2 - */ - -!function(a,b){function c(b){return a.less[b.split("/")[1]]}function d(a,b){"development"==v.env&&"undefined"!=typeof console&&v.logLevel>=b&&console.log("less: "+a)}function e(a){return a.replace(/^[a-z-]+:\/+?[^\/]+/,"").replace(/^\//,"").replace(/\.[a-zA-Z]+$/,"").replace(/[^\.\w-]+/g,"-").replace(/\./g,":")}function f(a,c){var e="{line} {content}",f=a.filename||c,g=[],h=(a.type||"Syntax")+"Error: "+(a.message||"There is an error in your .less file")+" in "+f+" ",i=function(a,c,d){a.extract[c]!==b&&g.push(e.replace(/\{line\}/,(parseInt(a.line,10)||0)+(c-1)).replace(/\{class\}/,d).replace(/\{content\}/,a.extract[c]))};a.extract?(i(a,0,""),i(a,1,"line"),i(a,2,""),h+="on line "+a.line+", column "+(a.column+1)+":\n"+g.join("\n")):a.stack&&(h+=a.stack),d(h,y.errors)}function g(a,b,c){var f=b.href||"",g="less:"+(b.title||e(f)),h=document.getElementById(g),i=!1,j=document.createElement("style");if(j.setAttribute("type","text/css"),b.media&&j.setAttribute("media",b.media),j.id=g,j.styleSheet)try{j.styleSheet.cssText=a}catch(k){throw new Error("Couldn't reassign styleSheet.cssText.")}else j.appendChild(document.createTextNode(a)),i=null!==h&&h.childNodes.length>0&&j.childNodes.length>0&&h.firstChild.nodeValue===j.firstChild.nodeValue;var l=document.getElementsByTagName("head")[0];if(null===h||i===!1){var m=b&&b.nextSibling||null;m?m.parentNode.insertBefore(j,m):l.appendChild(j)}if(h&&i===!1&&h.parentNode.removeChild(h),c&&C){d("saving "+f+" to cache.",y.info);try{C.setItem(f,a),C.setItem(f+":timestamp",c)}catch(k){d("failed to save",y.errors)}}}function h(a,c){var d,f,h="less-error-message:"+e(c||""),i='
  • {content}
  • ',j=document.createElement("div"),k=[],l=a.filename||c,m=l.match(/([^\/]+(\?.*)?)$/)[1];j.id=h,j.className="less-error-message",f="

    "+(a.type||"Syntax")+"Error: "+(a.message||"There is an error in your .less file")+'

    in '+m+" ";var n=function(a,c,d){a.extract[c]!==b&&k.push(i.replace(/\{line\}/,(parseInt(a.line,10)||0)+(c-1)).replace(/\{class\}/,d).replace(/\{content\}/,a.extract[c]))};a.extract?(n(a,0,""),n(a,1,"line"),n(a,2,""),f+="on line "+a.line+", column "+(a.column+1)+":

      "+k.join("")+"
    "):a.stack&&(f+="
    "+a.stack.split("\n").slice(1).join("
    ")),j.innerHTML=f,g([".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: #dd6666;","padding: 4px 0;","margin: 0;","display: inline-block;","}",".less-error-message pre.line {","color: #ff0000;","}",".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"}),j.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(";"),"development"==v.env&&(d=setInterval(function(){document.body&&(document.getElementById(h)?document.body.replaceChild(j,document.getElementById(h)):document.body.insertBefore(j,document.body.firstChild),clearInterval(d))},10))}function i(a,b){v.errorReporting&&"html"!==v.errorReporting?"console"===v.errorReporting?f(a,b):"function"==typeof v.errorReporting&&v.errorReporting("add",a,b):h(a,b)}function j(a){var b=document.getElementById("less-error-message:"+e(a));b&&b.parentNode.removeChild(b)}function k(){}function l(a){v.errorReporting&&"html"!==v.errorReporting?"console"===v.errorReporting?k(a):"function"==typeof v.errorReporting&&v.errorReporting("remove",a):j(a)}function m(a){for(var b,c=document.getElementsByTagName("style"),d=0;d0&&(h.splice(c-1,2),c-=2)}return g.hostPart=f[1],g.directories=h,g.path=f[1]+h.join("/"),g.fileUrl=g.path+(f[4]||""),g.url=g.fileUrl+(f[5]||""),g}function o(a,b){var c,d,e,f,g=n(a),h=n(b),i="";if(g.hostPart!==h.hostPart)return"";for(d=Math.max(h.directories.length,g.directories.length),c=0;d>c&&h.directories[c]===g.directories[c];c++);for(f=h.directories.slice(c),e=g.directories.slice(c),c=0;c=200&&b.status<300?c(b.responseText,b.getResponseHeader("Last-Modified")):"function"==typeof d&&d(b.status,a)}var g=p(),h=x?v.fileAsync:v.async;"function"==typeof g.overrideMimeType&&g.overrideMimeType("text/css"),d("XHR: Getting '"+a+"'",y.info),g.open("GET",a,h),g.setRequestHeader("Accept",b||"text/x-less, text/css; q=0.9, */*; q=0.5"),g.send(null),x&&!v.fileAsync?0===g.status||g.status>=200&&g.status<300?c(g.responseText):e(g.status,a):h?g.onreadystatechange=function(){4==g.readyState&&f(g,c,e)}:f(g,c,e)}function r(b,c,d,e){c&&c.currentDirectory&&!/^([a-z-]+:)?\//.test(b)&&(b=c.currentDirectory+b);var f=n(b,a.location.href),g=f.url,h={currentDirectory:f.path,filename:g};if(c?(h.entryPath=c.entryPath,h.rootpath=c.rootpath,h.rootFilename=c.rootFilename,h.relativeUrls=c.relativeUrls):(h.entryPath=f.path,h.rootpath=v.rootpath||f.path,h.rootFilename=g,h.relativeUrls=e.relativeUrls),h.relativeUrls&&(h.rootpath=e.rootpath?n(e.rootpath+o(f.path,h.entryPath)).path:f.path),e.useFileCache&&D[g])try{var i=D[g];d(null,i,g,h,{lastModified:new Date})}catch(j){d(j,null,g)}else q(g,e.mime,function(a,b){D[g]=a;try{d(null,a,g,h,{lastModified:b})}catch(c){d(c,null,g)}},function(a,b){d({type:"File",message:"'"+b+"' wasn't found ("+a+")"},null,g)})}function s(a,b,c,d,e){var f=new v.tree.parseEnv(v);f.mime=a.type,(e||v.globalVars)&&(f.useFileCache=!0),r(a.href,null,function(h,i,j,k,m){if(m){m.remaining=d;var n=C&&C.getItem(j),o=C&&C.getItem(j+":timestamp");if(!c&&o&&m.lastModified&&new Date(m.lastModified).valueOf()===new Date(o).valueOf())return g(n,a),m.local=!0,b(null,null,i,a,m,j),void 0}l(j),i?(f.currentFileInfo=k,new v.Parser(f).parse(i,function(c,d){if(c)return b(c,null,null,a);try{b(c,d,i,a,m,j)}catch(c){b(c,null,null,a)}},{modifyVars:e,globalVars:v.globalVars})):b(h,null,null,a,m,j)},f,e)}function t(a,b,c){for(var d=0;dE&&(D=D.slice(x-E),E=x)}function g(a,b){var c=a.charCodeAt(0|b);return 32>=c&&(32===c||10===c||9===c)}function h(a){var b,c,d=typeof a;return"string"===d?u.charAt(x)!==a?null:(k(1),a):(f(),(b=a.exec(D))?(c=b[0].length,k(c),"string"==typeof b?b:1===b.length?b[0]:b):null)}function i(a){x>E&&(D=D.slice(x-E),E=x);var b=a.exec(D);return b?(k(b[0].length),"string"==typeof b?b:1===b.length?b[0]:b):null}function j(a){return u.charAt(x)!==a?null:(k(1),a)}function k(a){for(var b,c=x,d=y,e=x-E,f=x+D.length-e,g=x+=a,h=u;f>x&&(b=h.charCodeAt(x),!(b>32))&&(32===b||10===b||9===b||13===b);x++);return D=D.slice(a+x-g+e),E=x,!D.length&&y=0&&"\n"!==b.charAt(c);)e++;return"number"==typeof a&&(d=(b.slice(0,a).match(/\n/g)||"").length),{line:d,column:e}}function s(a,b,d){var e=d.currentFileInfo.filename;return"browser"!==v.mode&&"rhino"!==v.mode&&(e=c("path").resolve(e)),{lineNumber:r(a,b).line+1,fileName:e}}function t(a,b){var c=q(a,b),d=r(a.index,c),e=d.line,f=d.column,g=a.call&&r(a.call,c).line,h=c.split("\n");this.type=a.type||"Syntax",this.message=a.message,this.filename=a.filename||b.currentFileInfo.filename,this.index=a.index,this.line="number"==typeof e?e+1:null,this.callLine=g+1,this.callExtract=h[g],this.stack=a.stack,this.column=f,this.extract=[h[e-1],h[e],h[e+1]]}var u,x,y,z,A,B,C,D,E,F,G,H=a&&a.filename;a instanceof w.parseEnv||(a=new w.parseEnv(a));var I=this.imports={paths:a.paths||[],queue:[],files:a.files,contents:a.contents,contentsIgnoredChars:a.contentsIgnoredChars,mime:a.mime,error:null,push:function(b,c,d,e){var f=this;this.queue.push(b);var g=function(a,c,d){f.queue.splice(f.queue.indexOf(b),1);var g=d in f.files||d===H;f.files[d]=c,a&&!f.error&&(f.error=a),e(a,c,g,d)};v.Parser.importer?v.Parser.importer(b,c,g,a):v.Parser.fileLoader(b,c,function(b,e,f,h){if(b)return g(b),void 0;var i=new w.parseEnv(a);i.currentFileInfo=h,i.processImports=!1,i.contents[f]=e,(c.reference||d.reference)&&(h.reference=!0),d.inline?g(null,e,f):new v.Parser(i).parse(e,function(a,b){g(a,b,f)})},a)}},J=i;return t.prototype=new Error,t.prototype.constructor=t,this.env=a=a||{},this.optimization="optimization"in this.env?this.env.optimization:1,F={imports:I,parse:function(d,e,f){var g,h,i,j,k,l=null,m="";if(x=y=E=B=0,j=f&&f.globalVars?v.Parser.serializeVars(f.globalVars)+"\n":"",k=f&&f.modifyVars?"\n"+v.Parser.serializeVars(f.modifyVars):"",(j||f&&f.banner)&&(m=(f&&f.banner?f.banner:"")+j,F.imports.contentsIgnoredChars[a.currentFileInfo.filename]=m.length),d=d.replace(/\r\n/g,"\n"),u=d=m+d.replace(/^\uFEFF/,"")+k,F.imports.contents[a.currentFileInfo.filename]=d,C=function(b){function c(b,c){l=new t({index:c||i,type:"Parse",message:b,filename:a.currentFileInfo.filename},a)}function d(a){var c=i-s;512>c&&!a||!c||(r.push(b.slice(s,i+1)),s=i+1)}var e,f,g,h,i,j,k,m,n,o=b.length,p=0,q=0,r=[],s=0;for(i=0;o>i;i++)if(k=b.charCodeAt(i),!(k>=97&&122>=k||34>k))switch(k){case 40:q++,f=i;continue;case 41:if(--q<0)return c("missing opening `(`");continue;case 59:q||d();continue;case 123:p++,e=i;continue;case 125:if(--p<0)return c("missing opening `{`");p||d();continue;case 92:if(o-1>i){i++;continue}return c("unescaped `\\`");case 34:case 39:case 96:for(n=0,j=i,i+=1;o>i;i++)if(m=b.charCodeAt(i),!(m>96)){if(m==k){n=1;break}if(92==m){if(i==o-1)return c("unescaped `\\`");i++}}if(n)continue;return c("unmatched `"+String.fromCharCode(k)+"`",j);case 47:if(q||i==o-1)continue;if(m=b.charCodeAt(i+1),47==m)for(i+=2;o>i&&(m=b.charCodeAt(i),!(13>=m)||10!=m&&13!=m);i++);else if(42==m){for(g=j=i,i+=2;o-1>i&&(m=b.charCodeAt(i),125==m&&(h=i),42!=m||47!=b.charCodeAt(i+1));i++);if(i==o-1)return c("missing closing `*/`",j);i++}continue;case 42:if(o-1>i&&47==b.charCodeAt(i+1))return c("unmatched `/*`");continue}return 0!==p?g>e&&h>g?c("missing closing `}` or `*/`",e):c("missing closing `}`",e):0!==q?c("missing closing `)`",f):(d(!0),r)}(d),l)return e(new t(l,a));D=C[0];try{g=new w.Ruleset(null,this.parsers.primary()),g.root=!0,g.firstRoot=!0}catch(n){return e(new t(n,a))}if(g.toCSS=function(d){return function(e,f){e=e||{};var g,h,i=new w.evalEnv(e);"object"!=typeof f||Array.isArray(f)||(f=Object.keys(f).map(function(a){var b=f[a];return b instanceof w.Value||(b instanceof w.Expression||(b=new w.Expression([b])),b=new w.Value([b])),new w.Rule("@"+a,b,!1,null,0)}),i.frames=[new w.Ruleset(null,f)]);try{var j,k=[],l=[new w.joinSelectorVisitor,new w.processExtendsVisitor,new w.toCSSVisitor({compress:Boolean(e.compress)})],m=this;if(e.plugins)for(j=0;j57||43>b||47===b||44==b))return a=i(/^([+-]?\d*\.?\d+)(%|[a-z]+)?/),a?new w.Dimension(a[1],a[2]):void 0},unicodeDescriptor:function(){var a;return a=i(/^U\+[0-9a-fA-F?]+(\-[0-9a-fA-F?]+)?/),a?new w.UnicodeDescriptor(a[0]):void 0},javascript:function(){var c,d,e=x;return"~"===u.charAt(e)&&(e++,d=!0),"`"===u.charAt(e)?(a.javascriptEnabled===b||a.javascriptEnabled||n("You are using JavaScript, which has been disabled."),d&&j("~"),c=i(/^`([^`]*)`/),c?new w.JavaScript(c[1],x,d):void 0):void 0}},variable:function(){var a;return"@"===u.charAt(x)&&(a=i(/^(@[\w-]+)\s*:/))?a[1]:void 0},extend:function(a){var b,c,d,e,f,g=x;if(a?i(/^&:extend\(/):i(/^:extend\(/)){do{for(d=null,b=null;!(d=i(/^(all)(?=\s*(\)|,))/))&&(c=this.element());)b?b.push(c):b=[c];d=d&&d[1],f=new w.Extend(new w.Selector(b),d,g),e?e.push(f):e=[f]}while(j(","));return l(/^\)/),a&&l(/^;/),e}},extendRule:function(){return this.extend(!0)},mixin:{call:function(){var b,c,f,g,h,k,l=u.charAt(x),n=!1,o=x;if("."===l||"#"===l){for(d();;){if(b=x,g=i(/^[#.](?:[\w-]|\\(?:[A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9]))+/),!g)break;f=new w.Element(h,g,b,a.currentFileInfo),c?c.push(f):c=[f],h=j(">")}return c&&(j("(")&&(k=this.args(!0).args,m(")")),G.important()&&(n=!0),G.end())?new w.mixin.Call(c,k,o,a.currentFileInfo,n):(e(),void 0)}},args:function(a){for(var b,c,d,e,f,g,h=F.parsers,k=h.entities,m={args:null,variadic:!1},o=[],p=[],q=[];;){if(a)g=h.expression();else{if(h.comments(),"."===u.charAt(x)&&i(/^\.{3}/)){m.variadic=!0,j(";")&&!b&&(b=!0),(b?p:q).push({variadic:!0});break}g=k.variable()||k.literal()||k.keyword()}if(!g)break;e=null,g.throwAwayComments&&g.throwAwayComments(),f=g;var r=null;if(a?1==g.value.length&&(r=g.value[0]):r=g,r&&r instanceof w.Variable)if(j(":"))o.length>0&&(b&&n("Cannot mix ; and , as delimiter types"),c=!0),f=l(h.expression),e=d=r.name;else{if(!a&&i(/^\.{3}/)){m.variadic=!0,j(";")&&!b&&(b=!0),(b?p:q).push({name:g.name,variadic:!0});break}a||(d=e=r.name,f=null)}f&&o.push(f),q.push({name:e,value:f}),j(",")||(j(";")||b)&&(c&&n("Cannot mix ; and , as delimiter types"),b=!0,o.length>1&&(f=new w.Value(o)),p.push({name:d,value:f}),d=null,o=[],c=!1)}return m.args=b?p:q,m},definition:function(){var a,b,c,f,g=[],h=!1;if(!("."!==u.charAt(x)&&"#"!==u.charAt(x)||o(/^[^{]*\}/))&&(d(),b=i(/^([#.](?:[\w-]|\\(?:[A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9]))+)\s*\(/))){a=b[1];var k=this.args(!1);if(g=k.args,h=k.variadic,j(")")||(B=x,e()),G.comments(),i(/^when/)&&(f=l(G.conditions,"expected condition")),c=G.block())return new w.mixin.Definition(a,g,c,f,h);e()}}},entity:function(){var a=this.entities;return a.literal()||a.variable()||a.url()||a.call()||a.keyword()||a.javascript()||this.comment()},end:function(){return j(";")||p("}")},alpha:function(){var a;if(i(/^\(opacity=/i))return a=i(/^\d+/)||this.entities.variable(),a?(m(")"),new w.Alpha(a)):void 0},element:function(){var b,c,d,e=x;return c=this.combinator(),b=i(/^(?:\d+\.\d+|\d+)%/)||i(/^(?:[.#]?|:*)(?:[\w-]|[^\x00-\x9f]|\\(?:[A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9]))+/)||j("*")||j("&")||this.attribute()||i(/^\([^()@]+\)/)||i(/^[\.#](?=@)/)||this.entities.variableCurly(),b||j("(")&&(d=this.selector())&&j(")")&&(b=new w.Paren(d)),b?new w.Element(c,b,e,a.currentFileInfo):void 0},combinator:function(){var a=u.charAt(x);if(">"===a||"+"===a||"~"===a||"|"===a||"^"===a){for(x++,"^"===u.charAt(x)&&(a="^^",x++);g(u,x);)x++;return new w.Combinator(a)}return g(u,x-1)?new w.Combinator(" "):new w.Combinator(null)},lessSelector:function(){return this.selector(!0)},selector:function(b){for(var c,d,e,f,g,h,i,j=x,k=J;(b&&(g=this.extend())||b&&(h=k(/^when/))||(f=this.element()))&&(h?i=l(this.conditions,"expected condition"):i?n("CSS guard can only be used at the end of selector"):g?d?d.push(g):d=[g]:(d&&n("Extend can only be used at the end of selector"),e=u.charAt(x),c?c.push(f):c=[f],f=null),"{"!==e&&"}"!==e&&";"!==e&&","!==e&&")"!==e););return c?new w.Selector(c,d,i,j,a.currentFileInfo):(d&&n("Extend must be used to extend a selector, it cannot be used on its own"),void 0)},attribute:function(){if(j("[")){var a,b,c,d=this.entities;return(a=d.variableCurly())||(a=l(/^(?:[_A-Za-z0-9-\*]*\|)?(?:[_A-Za-z0-9-]|\\.)+/)),c=i(/^[|~*$^]?=/),c&&(b=d.quoted()||i(/^[0-9]+%/)||i(/^[\w-]+/)||d.variableCurly()),m("]"),new w.Attribute(a,c,b)}},block:function(){var a;return j("{")&&(a=this.primary())&&j("}")?a:void 0},ruleset:function(){var b,c,f,g;for(d(),a.dumpLineNumbers&&(g=s(x,u,a));;){if(c=this.lessSelector(),!c)break;if(b?b.push(c):b=[c],this.comments(),c.condition&&b.length>1&&n("Guards are only currently allowed on a single selector."),!j(","))break;c.condition&&n("Guards are only currently allowed on a single selector."),this.comments()}if(b&&(f=this.block())){var h=new w.Ruleset(b,f,a.strictImports);return a.dumpLineNumbers&&(h.debugInfo=g),h}B=x,e()},rule:function(b){var c,f,g,h=u.charAt(x),i=!1;if(d(),"."!==h&&"#"!==h&&"&"!==h&&(c=this.variable()||this.ruleProperty())){if(f=!b&&(a.compress||c.charAt&&"@"===c.charAt(0))?this.value()||this.anonymousValue():this.anonymousValue()||this.value(),g=this.important(),i=c.pop&&"+"===c.pop().value,f&&this.end())return new w.Rule(c,f,g,i,A,a.currentFileInfo);if(B=x,e(),f&&!b)return this.rule(!0)}},anonymousValue:function(){var a;return a=/^([^@+\/'"*`(;{}-]*);/.exec(D),a?(x+=a[0].length-1,new w.Anonymous(a[1])):void 0},"import":function(){var b,c,f=x;d();var g=i(/^@import?\s+/),h=(g?this.importOptions():null)||{};return g&&(b=this.entities.quoted()||this.entities.url())&&(c=this.mediaFeatures(),j(";"))?(c=c&&new w.Value(c),new w.Import(b,c,h,f,a.currentFileInfo)):(e(),void 0)},importOptions:function(){var a,b,c,d={};if(!j("("))return null;do if(a=this.importOption()){switch(b=a,c=!0,b){case"css":b="less",c=!1;break;case"once":b="multiple",c=!1}if(d[b]=c,!j(","))break}while(a);return m(")"),d},importOption:function(){var a=i(/^(less|css|multiple|once|inline|reference)/);return a?a[1]:void 0},mediaFeature:function(){var b,c,d=this.entities,e=[];do if(b=d.keyword()||d.variable())e.push(b);else if(j("(")){if(c=this.property(),b=this.value(),!j(")"))return null;if(c&&b)e.push(new w.Paren(new w.Rule(c,b,null,null,x,a.currentFileInfo,!0)));else{if(!b)return null;e.push(new w.Paren(b))}}while(b);return e.length>0?new w.Expression(e):void 0},mediaFeatures:function(){var a,b=this.entities,c=[];do if(a=this.mediaFeature()){if(c.push(a),!j(","))break}else if(a=b.variable(),a&&(c.push(a),!j(",")))break;while(a);return c.length>0?c:null},media:function(){var b,c,d,e;return a.dumpLineNumbers&&(e=s(x,u,a)),i(/^@media/)&&(b=this.mediaFeatures(),c=this.block())?(d=new w.Media(c,b,x,a.currentFileInfo),a.dumpLineNumbers&&(d.debugInfo=e),d):void 0},directive:function(){var b,c,f,g,h,k,l,m,n=x;if("@"===u.charAt(x)){if(c=this["import"]()||this.media())return c;if(d(),b=i(/^@[a-z-]+/)){switch(g=b,"-"==b.charAt(1)&&b.indexOf("-",2)>0&&(g="@"+b.slice(b.indexOf("-",2)+1)),g){case"@font-face":h=!0;break;case"@viewport":case"@top-left":case"@top-left-corner":case"@top-center":case"@top-right":case"@top-right-corner":case"@bottom-left":case"@bottom-left-corner":case"@bottom-center":case"@bottom-right":case"@bottom-right-corner":case"@left-top":case"@left-middle":case"@left-bottom":case"@right-top":case"@right-middle":case"@right-bottom":h=!0;break;case"@host":case"@page":case"@document":case"@supports":case"@keyframes":h=!0,k=!0;break;case"@namespace":l=!0}if(k&&(m=(i(/^[^{]+/)||"").trim(),m&&(b+=" "+m)),h){if(f=this.block())return new w.Directive(b,f,n,a.currentFileInfo)}else if(c=l?this.expression():this.entity(),c&&j(";")){var o=new w.Directive(b,c,n,a.currentFileInfo);return a.dumpLineNumbers&&(o.debugInfo=s(x,u,a)),o}e()}}},value:function(){var a,b=[];do if(a=this.expression(),a&&(b.push(a),!j(",")))break;while(a);return b.length>0?new w.Value(b):void 0},important:function(){return"!"===u.charAt(x)?i(/^! *important/):void 0},sub:function(){var a,b;return j("(")&&(a=this.addition())?(b=new w.Expression([a]),m(")"),b.parens=!0,b):void 0},multiplication:function(){var a,b,c,d,e;if(a=this.operand()){for(e=g(u,x-1);;){if(o(/^\/[*\/]/))break;if(c=j("/")||j("*"),!c)break;if(b=this.operand(),!b)break;a.parensInOp=!0,b.parensInOp=!0,d=new w.Operation(c,[d||a,b],e),e=g(u,x-1)}return d||a}},addition:function(){var a,b,c,d,e;if(a=this.multiplication()){for(e=g(u,x-1);;){if(c=i(/^[-+]\s+/)||!e&&(j("+")||j("-")),!c)break;if(b=this.multiplication(),!b)break;a.parensInOp=!0,b.parensInOp=!0,d=new w.Operation(c,[d||a,b],e),e=g(u,x-1)}return d||a}},conditions:function(){var a,b,c,d=x;if(a=this.condition()){for(;;){if(!o(/^,\s*(not\s*)?\(/)||!j(","))break;if(b=this.condition(),!b)break;c=new w.Condition("or",c||a,b,d)}return c||a}},condition:function(){var a,b,c,d,e=this.entities,f=x,g=!1;return i(/^not/)&&(g=!0),m("("),a=this.addition()||e.keyword()||e.quoted(),a?(d=i(/^(?:>=|<=|=<|[<=>])/),d?(b=this.addition()||e.keyword()||e.quoted(),b?c=new w.Condition(d,a,b,f,g):n("expected expression")):c=new w.Condition("=",a,new w.Keyword("true"),f,g),m(")"),i(/^and/)?new w.Condition("and",c,this.condition()):c):void 0},operand:function(){var a,b=this.entities,c=u.charAt(x+1);"-"!==u.charAt(x)||"@"!==c&&"("!==c||(a=j("-"));var d=this.sub()||b.dimension()||b.color()||b.variable()||b.call();return a&&(d.parensInOp=!0,d=new w.Negative(d)),d},expression:function(){var a,b,c=[];do a=this.addition()||this.entity(),a&&(c.push(a),o(/^\/[\/*]/)||(b=j("/"),b&&c.push(new w.Anonymous(b))));while(a);return c.length>0?new w.Expression(c):void 0},property:function(){var a=i(/^(\*?-?[_a-zA-Z0-9-]+)\s*:/);return a?a[1]:void 0},ruleProperty:function(){function b(a){var b=a.exec(e);return b?(g.push(x+h),h+=b[0].length,e=e.slice(b[1].length),f.push(b[1])):void 0}var c,d,e=D,f=[],g=[],h=0;for(b(/^(\*?)/);b(/^((?:[\w-]+)|(?:@\{[\w-]+\}))/););if(f.length>1&&b(/^\s*(\+?)\s*:/)){for(k(h),""===f[0]&&(f.shift(),g.shift()),d=0;dl;l++)e=b.rgb[l]/255,f=c.rgb[l]/255,h=a(e,f),g&&(h=(j*f+i*(e-j*(e+f-h)))/g),k[l]=255*h;return new d.Color(k,g)}function g(){var a,b=d.functions;for(a in l)l.hasOwnProperty(a)&&(b[a]=e.bind(null,Math[a],l[a]));for(a in m)m.hasOwnProperty(a)&&(b[a]=f.bind(null,m[a]));a=d.defaultFunc,b["default"]=a.eval.bind(a)}function h(a){return d.functions.hsla(a.h,a.s,a.l,a.a)}function i(a,b){return a instanceof d.Dimension&&a.unit.is("%")?parseFloat(a.value*b/100):j(a)}function j(a){if(a instanceof d.Dimension)return parseFloat(a.unit.is("%")?a.value/100:a.value);if("number"==typeof a)return a;throw{error:"RuntimeError",message:"color functions take numbers as parameters"}}function k(a){return Math.min(1,Math.max(0,a))}d.functions={rgb:function(a,b,c){return this.rgba(a,b,c,1)},rgba:function(a,b,c,e){var f=[a,b,c].map(function(a){return i(a,255)});return e=j(e),new d.Color(f,e)},hsl:function(a,b,c){return this.hsla(a,b,c,1)},hsla:function(a,b,c,d){function e(a){return a=0>a?a+1:a>1?a-1:a,1>6*a?g+(f-g)*a*6:1>2*a?f:2>3*a?g+(f-g)*(2/3-a)*6:g}a=j(a)%360/360,b=k(j(b)),c=k(j(c)),d=k(j(d));var f=.5>=c?c*(b+1):c+b-c*b,g=2*c-f;return this.rgba(255*e(a+1/3),255*e(a),255*e(a-1/3),d)},hsv:function(a,b,c){return this.hsva(a,b,c,1)},hsva:function(a,b,c,d){a=j(a)%360/360*360,b=j(b),c=j(c),d=j(d);var e,f;e=Math.floor(a/60%6),f=a/60-e;var g=[c,c*(1-b),c*(1-f*b),c*(1-(1-f)*b)],h=[[0,3,1],[2,0,1],[1,0,3],[1,2,0],[3,1,0],[0,1,2]];return this.rgba(255*g[h[e][0]],255*g[h[e][1]],255*g[h[e][2]],d)},hue:function(a){return new d.Dimension(Math.round(a.toHSL().h))},saturation:function(a){return new d.Dimension(Math.round(100*a.toHSL().s),"%")},lightness:function(a){return new d.Dimension(Math.round(100*a.toHSL().l),"%")},hsvhue:function(a){return new d.Dimension(Math.round(a.toHSV().h))},hsvsaturation:function(a){return new d.Dimension(Math.round(100*a.toHSV().s),"%")},hsvvalue:function(a){return new d.Dimension(Math.round(100*a.toHSV().v),"%")},red:function(a){return new d.Dimension(a.rgb[0])},green:function(a){return new d.Dimension(a.rgb[1])},blue:function(a){return new d.Dimension(a.rgb[2])},alpha:function(a){return new d.Dimension(a.toHSL().a)},luma:function(a){return new d.Dimension(Math.round(a.luma()*a.alpha*100),"%")},saturate:function(a,b){if(!a.rgb)return null;var c=a.toHSL();return c.s+=b.value/100,c.s=k(c.s),h(c)},desaturate:function(a,b){var c=a.toHSL();return c.s-=b.value/100,c.s=k(c.s),h(c)},lighten:function(a,b){var c=a.toHSL();return c.l+=b.value/100,c.l=k(c.l),h(c)},darken:function(a,b){var c=a.toHSL();return c.l-=b.value/100,c.l=k(c.l),h(c)},fadein:function(a,b){var c=a.toHSL();return c.a+=b.value/100,c.a=k(c.a),h(c)},fadeout:function(a,b){var c=a.toHSL();return c.a-=b.value/100,c.a=k(c.a),h(c)},fade:function(a,b){var c=a.toHSL();return c.a=b.value/100,c.a=k(c.a),h(c)},spin:function(a,b){var c=a.toHSL(),d=(c.h+b.value)%360;return c.h=0>d?360+d:d,h(c)},mix:function(a,b,c){c||(c=new d.Dimension(50));var e=c.value/100,f=2*e-1,g=a.toHSL().a-b.toHSL().a,h=((f*g==-1?f:(f+g)/(1+f*g))+1)/2,i=1-h,j=[a.rgb[0]*h+b.rgb[0]*i,a.rgb[1]*h+b.rgb[1]*i,a.rgb[2]*h+b.rgb[2]*i],k=a.alpha*e+b.alpha*(1-e);return new d.Color(j,k)},greyscale:function(a){return this.desaturate(a,new d.Dimension(100))},contrast:function(a,b,c,d){if(!a.rgb)return null;if("undefined"==typeof c&&(c=this.rgba(255,255,255,1)),"undefined"==typeof b&&(b=this.rgba(0,0,0,1)),b.luma()>c.luma()){var e=c;c=b,b=e}return d="undefined"==typeof d?.43:j(d),a.luma()i.value)&&(k[f]=g)):(l[j]=k.length,k.push(g))):k.push(g);return 1==k.length?k[0]:(c=k.map(function(a){return a.toCSS(this.env)}).join(this.env.compress?",":", "),new d.Anonymous((a?"min":"max")+"("+c+")"))},min:function(){return this._minmax(!0,arguments)},max:function(){return this._minmax(!1,arguments)},argb:function(a){return new d.Anonymous(a.toARGB())},percentage:function(a){return new d.Dimension(100*a.value,"%")},color:function(a){if(a instanceof d.Quoted){var b,c=a.value;if(b=d.Color.fromKeyword(c))return b;if(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})/.test(c))return new d.Color(c.slice(1));throw{type:"Argument",message:"argument must be a color keyword or 3/6 digit hex e.g. #FFF"}}throw{type:"Argument",message:"argument must be a string"}},iscolor:function(a){return this._isa(a,d.Color)},isnumber:function(a){return this._isa(a,d.Dimension)},isstring:function(a){return this._isa(a,d.Quoted)},iskeyword:function(a){return this._isa(a,d.Keyword)},isurl:function(a){return this._isa(a,d.URL)},ispixel:function(a){return this.isunit(a,"px")},ispercentage:function(a){return this.isunit(a,"%")},isem:function(a){return this.isunit(a,"em")},isunit:function(a,b){return a instanceof d.Dimension&&a.unit.is(b.value||b)?d.True:d.False},_isa:function(a,b){return a instanceof b?d.True:d.False},tint:function(a,b){return this.mix(this.rgb(255,255,255),a,b)},shade:function(a,b){return this.mix(this.rgb(0,0,0),a,b)},extract:function(a,b){return b=b.value-1,Array.isArray(a.value)?a.value[b]:Array(a)[b]},length:function(a){var b=Array.isArray(a.value)?a.value.length:1;return new d.Dimension(b)},"data-uri":function(b,e){if("undefined"!=typeof a)return new d.URL(e||b,this.currentFileInfo).eval(this.env);var f=b.value,g=e&&e.value,h=c("fs"),i=c("path"),j=!1;if(arguments.length<2&&(g=f),this.env.isPathRelative(g)&&(g=this.currentFileInfo.relativeUrls?i.join(this.currentFileInfo.currentDirectory,g):i.join(this.currentFileInfo.entryPath,g)),arguments.length<2){var k;try{k=c("mime")}catch(l){k=d._mime}f=k.lookup(g);var m=k.charsets.lookup(f);j=["US-ASCII","UTF-8"].indexOf(m)<0,j&&(f+=";base64")}else j=/;base64$/.test(f);var n=h.readFileSync(g),o=32,p=parseInt(n.length/1024,10);if(p>=o&&this.env.ieCompat!==!1)return this.env.silent||console.warn("Skipped data-uri embedding of %s because its size (%dKB) exceeds IE8-safe %dKB!",g,p,o),new d.URL(e||b,this.currentFileInfo).eval(this.env);n=j?n.toString("base64"):encodeURIComponent(n);var q='"data:'+f+","+n+'"';return new d.URL(new d.Anonymous(q))},"svg-gradient":function(a){function e(){throw{type:"Argument",message:"svg-gradient expects direction, start_color [start_position], [color position,]..., end_color [end_position]"}}arguments.length<3&&e();var f,g,h,i,j,k,l,m=Array.prototype.slice.call(arguments,1),n="linear",o='x="0" y="0" width="1" height="1"',p=!0,q={compress:!1},r=a.toCSS(q);switch(r){case"to bottom":f='x1="0%" y1="0%" x2="0%" y2="100%"';break;case"to right":f='x1="0%" y1="0%" x2="100%" y2="0%"';break;case"to bottom right":f='x1="0%" y1="0%" x2="100%" y2="100%"';break;case"to top right":f='x1="0%" y1="100%" x2="100%" y2="0%"';break;case"ellipse":case"ellipse at center":n="radial",f='cx="50%" cy="50%" r="75%"',o='x="-50" y="-50" width="101" height="101"';break;default:throw{type:"Argument",message:"svg-gradient direction must be 'to bottom', 'to right', 'to bottom right', 'to top right' or 'ellipse at center'"}}for(g='<'+n+'Gradient id="gradient" gradientUnits="userSpaceOnUse" '+f+">",h=0;hl?' stop-opacity="'+l+'"':"")+"/>";if(g+="',p)try{g=c("./encoder").encodeBase64(g)}catch(s){p=!1}return g="'data:image/svg+xml"+(p?";base64":"")+","+g+"'",new d.URL(new d.Anonymous(g))}},d._mime={_types:{".htm":"text/html",".html":"text/html",".gif":"image/gif",".jpg":"image/jpeg",".jpeg":"image/jpeg",".png":"image/png"},lookup:function(a){var e=c("path").extname(a),f=d._mime._types[e];if(f===b)throw new Error('Optional dependency "mime" is required for '+e);return f},charsets:{lookup:function(a){return a&&/^text\//.test(a)?"UTF-8":""}}};var l={ceil:null,floor:null,sqrt:null,abs:null,tan:"",sin:"",cos:"",atan:"rad",asin:"rad",acos:"rad"},m={multiply:function(a,b){return a*b},screen:function(a,b){return a+b-a*b},overlay:function(a,b){return a*=2,1>=a?m.multiply(a,b):m.screen(a-1,b)},softlight:function(a,b){var c=1,d=a;return b>.5&&(d=1,c=a>.25?Math.sqrt(a):((16*a-12)*a+4)*a),a-(1-2*b)*d*(c-a)},hardlight:function(a,b){return m.overlay(b,a)},difference:function(a,b){return Math.abs(a-b)},exclusion:function(a,b){return a+b-2*a*b},average:function(a,b){return(a+b)/2},negation:function(a,b){return 1-Math.abs(a+b-1)}};d.defaultFunc={eval:function(){var a=this.value_,b=this.error_;if(b)throw b;return null!=a?a?d.True:d.False:void 0},value:function(a){this.value_=a},error:function(a){this.error_=a},reset:function(){this.value_=this.error_=null}},g(),d.fround=function(a,b){var c;return a&&null!=a.numPrecision?(c=Math.pow(10,a.numPrecision),Math.round(b*c)/c):b},d.functionCall=function(a,b){this.env=a,this.currentFileInfo=b},d.functionCall.prototype=d.functions}(c("./tree")),function(a){a.colors={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgrey:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",grey:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"}}(c("./tree")),function(a){a.debugInfo=function(b,c,d){var e="";if(b.dumpLineNumbers&&!b.compress)switch(b.dumpLineNumbers){case"comments":e=a.debugInfo.asComment(c);break;case"mediaquery":e=a.debugInfo.asMediaQuery(c);break;case"all":e=a.debugInfo.asComment(c)+(d||"")+a.debugInfo.asMediaQuery(c)}return e},a.debugInfo.asComment=function(a){return"/* line "+a.debugInfo.lineNumber+", "+a.debugInfo.fileName+" */\n"},a.debugInfo.asMediaQuery=function(a){return"@media -sass-debug-info{filename{font-family:"+("file://"+a.debugInfo.fileName).replace(/([.:\/\\])/g,function(a){return"\\"==a&&(a="/"),"\\"+a})+"}line{font-family:\\00003"+a.debugInfo.lineNumber+"}}\n"},a.find=function(a,b){for(var c,d=0;d1?"["+a.value.map(function(a){return a.toCSS(!1)}).join(", ")+"]":a.toCSS(!1)},a.toCSS=function(a){var b=[];return this.genCSS(a,{add:function(a){b.push(a)},isEmpty:function(){return 0===b.length}}),b.join("")},a.outputRuleset=function(a,b,c){var d,e=c.length;if(a.tabLevel=(0|a.tabLevel)+1,a.compress){for(b.add("{"),d=0;e>d;d++)c[d].genCSS(a,b);return b.add("}"),a.tabLevel--,void 0}var f="\n"+Array(a.tabLevel).join(" "),g=f+" ";if(e){for(b.add(" {"+g),c[0].genCSS(a,b),d=1;e>d;d++)b.add(g),c[d].genCSS(a,b);b.add(f+"}")}else b.add(" {"+f+"}");a.tabLevel--}}(c("./tree")),function(a){a.Alpha=function(a){this.value=a},a.Alpha.prototype={type:"Alpha",accept:function(a){this.value=a.visit(this.value)},eval:function(b){return this.value.eval?new a.Alpha(this.value.eval(b)):this},genCSS:function(a,b){b.add("alpha(opacity="),this.value.genCSS?this.value.genCSS(a,b):b.add(this.value),b.add(")")},toCSS:a.toCSS}}(c("../tree")),function(a){a.Anonymous=function(a,b,c,d){this.value=a.value||a,this.index=b,this.mapLines=d,this.currentFileInfo=c},a.Anonymous.prototype={type:"Anonymous",eval:function(){return new a.Anonymous(this.value,this.index,this.currentFileInfo,this.mapLines)},compare:function(a){if(!a.toCSS)return-1;var b=this.toCSS(),c=a.toCSS();return b===c?0:c>b?-1:1},genCSS:function(a,b){b.add(this.value,this.currentFileInfo,this.index,this.mapLines)},toCSS:a.toCSS}}(c("../tree")),function(a){a.Assignment=function(a,b){this.key=a,this.value=b},a.Assignment.prototype={type:"Assignment",accept:function(a){this.value=a.visit(this.value)},eval:function(b){return this.value.eval?new a.Assignment(this.key,this.value.eval(b)):this},genCSS:function(a,b){b.add(this.key+"="),this.value.genCSS?this.value.genCSS(a,b):b.add(this.value)},toCSS:a.toCSS}}(c("../tree")),function(a){a.Call=function(a,b,c,d){this.name=a,this.args=b,this.index=c,this.currentFileInfo=d},a.Call.prototype={type:"Call",accept:function(a){this.args&&(this.args=a.visitArray(this.args))},eval:function(b){var c,d,e=this.args.map(function(a){return a.eval(b)}),f=this.name.toLowerCase();if(f in a.functions)try{if(d=new a.functionCall(b,this.currentFileInfo),c=d[f].apply(d,e),null!=c)return c}catch(g){throw{type:g.type||"Runtime",message:"error evaluating function `"+this.name+"`"+(g.message?": "+g.message:""),index:this.index,filename:this.currentFileInfo.filename}}return new a.Call(this.name,e,this.index,this.currentFileInfo)},genCSS:function(a,b){b.add(this.name+"(",this.currentFileInfo,this.index);for(var c=0;ca?"0":"")+a.toString(16)}).join("")}function c(a,b){return Math.min(Math.max(a,0),b)}a.Color=function(a,b){this.rgb=Array.isArray(a)?a:6==a.length?a.match(/.{2}/g).map(function(a){return parseInt(a,16)}):a.split("").map(function(a){return parseInt(a+a,16)}),this.alpha="number"==typeof b?b:1};var d="transparent";a.Color.prototype={type:"Color",eval:function(){return this},luma:function(){return.2126*this.rgb[0]/255+.7152*this.rgb[1]/255+.0722*this.rgb[2]/255},genCSS:function(a,b){b.add(this.toCSS(a))},toCSS:function(b,e){var f=b&&b.compress&&!e,g=a.fround(b,this.alpha);if(1>g)return 0===g&&this.isTransparentKeyword?d:"rgba("+this.rgb.map(function(a){return c(Math.round(a),255)}).concat(c(g,1)).join(","+(f?"":" "))+")";var h=this.toRGB();if(f){var i=h.split("");i[1]===i[2]&&i[3]===i[4]&&i[5]===i[6]&&(h="#"+i[1]+i[3]+i[5])}return h},operate:function(b,c,d){for(var e=[],f=this.alpha*(1-d.alpha)+d.alpha,g=0;3>g;g++)e[g]=a.operate(b,c,this.rgb[g],d.rgb[g]);return new a.Color(e,f)},toRGB:function(){return b(this.rgb)},toHSL:function(){var a,b,c=this.rgb[0]/255,d=this.rgb[1]/255,e=this.rgb[2]/255,f=this.alpha,g=Math.max(c,d,e),h=Math.min(c,d,e),i=(g+h)/2,j=g-h;if(g===h)a=b=0;else{switch(b=i>.5?j/(2-g-h):j/(g+h),g){case c:a=(d-e)/j+(e>d?6:0);break;case d:a=(e-c)/j+2;break;case e:a=(c-d)/j+4}a/=6}return{h:360*a,s:b,l:i,a:f}},toHSV:function(){var a,b,c=this.rgb[0]/255,d=this.rgb[1]/255,e=this.rgb[2]/255,f=this.alpha,g=Math.max(c,d,e),h=Math.min(c,d,e),i=g,j=g-h;if(b=0===g?0:j/g,g===h)a=0;else{switch(g){case c:a=(d-e)/j+(e>d?6:0);break;case d:a=(e-c)/j+2;break;case e:a=(c-d)/j+4}a/=6}return{h:360*a,s:b,v:i,a:f}},toARGB:function(){return b([255*this.alpha].concat(this.rgb))},compare:function(a){return a.rgb?a.rgb[0]===this.rgb[0]&&a.rgb[1]===this.rgb[1]&&a.rgb[2]===this.rgb[2]&&a.alpha===this.alpha?0:-1:-1}},a.Color.fromKeyword=function(b){if(b=b.toLowerCase(),a.colors.hasOwnProperty(b))return new a.Color(a.colors[b].slice(1));if(b===d){var c=new a.Color([0,0,0],0);return c.isTransparentKeyword=!0,c}}}(c("../tree")),function(a){a.Comment=function(a,b,c,d){this.value=a,this.silent=!!b,this.currentFileInfo=d},a.Comment.prototype={type:"Comment",genCSS:function(b,c){this.debugInfo&&c.add(a.debugInfo(b,this),this.currentFileInfo,this.index),c.add(this.value.trim())},toCSS:a.toCSS,isSilent:function(a){var b=this.currentFileInfo&&this.currentFileInfo.reference&&!this.isReferenced,c=a.compress&&!this.value.match(/^\/\*!/);return this.silent||b||c},eval:function(){return this},markReferenced:function(){this.isReferenced=!0}}}(c("../tree")),function(a){a.Condition=function(a,b,c,d,e){this.op=a.trim(),this.lvalue=b,this.rvalue=c,this.index=d,this.negate=e},a.Condition.prototype={type:"Condition",accept:function(a){this.lvalue=a.visit(this.lvalue),this.rvalue=a.visit(this.rvalue)},eval:function(a){var b,c=this.lvalue.eval(a),d=this.rvalue.eval(a),e=this.index;return b=function(a){switch(a){case"and":return c&&d;case"or":return c||d;default:if(c.compare)b=c.compare(d);else{if(!d.compare)throw{type:"Type",message:"Unable to perform comparison",index:e};b=d.compare(c)}switch(b){case-1:return"<"===a||"=<"===a||"<="===a;case 0:return"="===a||">="===a||"=<"===a||"<="===a;case 1:return">"===a||">="===a}}}(this.op),this.negate?!b:b}}}(c("../tree")),function(a){a.Dimension=function(c,d){this.value=parseFloat(c),this.unit=d&&d instanceof a.Unit?d:new a.Unit(d?[d]:b)},a.Dimension.prototype={type:"Dimension",accept:function(a){this.unit=a.visit(this.unit)},eval:function(){return this},toColor:function(){return new a.Color([this.value,this.value,this.value])},genCSS:function(b,c){if(b&&b.strictUnits&&!this.unit.isSingular())throw new Error("Multiple units in dimension. Correct the units or use the unit function. Bad unit: "+this.unit.toString());var d=a.fround(b,this.value),e=String(d);if(0!==d&&1e-6>d&&d>-1e-6&&(e=d.toFixed(20).replace(/0+$/,"")),b&&b.compress){if(0===d&&this.unit.isLength())return c.add(e),void 0;d>0&&1>d&&(e=e.substr(1))}c.add(e),this.unit.genCSS(b,c)},toCSS:a.toCSS,operate:function(b,c,d){var e=a.operate(b,c,this.value,d.value),f=this.unit.clone();if("+"===c||"-"===c)if(0===f.numerator.length&&0===f.denominator.length)f.numerator=d.unit.numerator.slice(0),f.denominator=d.unit.denominator.slice(0);else if(0===d.unit.numerator.length&&0===f.denominator.length);else{if(d=d.convertTo(this.unit.usedUnits()),b.strictUnits&&d.unit.toString()!==f.toString())throw new Error("Incompatible units. Change the units or use the unit function. Bad units: '"+f.toString()+"' and '"+d.unit.toString()+"'.");e=a.operate(b,c,this.value,d.value)}else"*"===c?(f.numerator=f.numerator.concat(d.unit.numerator).sort(),f.denominator=f.denominator.concat(d.unit.denominator).sort(),f.cancel()):"/"===c&&(f.numerator=f.numerator.concat(d.unit.denominator).sort(),f.denominator=f.denominator.concat(d.unit.numerator).sort(),f.cancel());return new a.Dimension(e,f)},compare:function(b){if(b instanceof a.Dimension){var c=this.unify(),d=b.unify(),e=c.value,f=d.value;return f>e?-1:e>f?1:d.unit.isEmpty()||0===c.unit.compare(d.unit)?0:-1}return-1},unify:function(){return this.convertTo({length:"m",duration:"s",angle:"rad"})},convertTo:function(b){var c,d,e,f,g,h=this.value,i=this.unit.clone(),j={};if("string"==typeof b){for(c in a.UnitConversions)a.UnitConversions[c].hasOwnProperty(b)&&(j={},j[c]=b);b=j}g=function(a,b){return e.hasOwnProperty(a)?(b?h/=e[a]/e[f]:h*=e[a]/e[f],f):a};for(d in b)b.hasOwnProperty(d)&&(f=b[d],e=a.UnitConversions[d],i.map(g));return i.cancel(),new a.Dimension(h,i)}},a.UnitConversions={length:{m:1,cm:.01,mm:.001,"in":.0254,pt:.0254/72,pc:.0254/72*12},duration:{s:1,ms:.001},angle:{rad:1/(2*Math.PI),deg:1/360,grad:.0025,turn:1}},a.Unit=function(a,b,c){this.numerator=a?a.slice(0).sort():[],this.denominator=b?b.slice(0).sort():[],this.backupUnit=c},a.Unit.prototype={type:"Unit",clone:function(){return new a.Unit(this.numerator.slice(0),this.denominator.slice(0),this.backupUnit)},genCSS:function(a,b){this.numerator.length>=1?b.add(this.numerator[0]):this.denominator.length>=1?b.add(this.denominator[0]):a&&a.strictUnits||!this.backupUnit||b.add(this.backupUnit)},toCSS:a.toCSS,toString:function(){var a,b=this.numerator.join("*");for(a=0;a0)for(b=0;e>b;b++)this.numerator.push(a);else if(0>e)for(b=0;-e>b;b++)this.denominator.push(a)}0===this.numerator.length&&0===this.denominator.length&&c&&(this.backupUnit=c),this.numerator.sort(),this.denominator.sort()}}}(c("../tree")),function(a){a.Directive=function(b,c,d,e){this.name=b,Array.isArray(c)?(this.rules=[new a.Ruleset(null,c)],this.rules[0].allowImports=!0):this.value=c,this.index=d,this.currentFileInfo=e},a.Directive.prototype={type:"Directive",accept:function(a){this.rules&&(this.rules=a.visitArray(this.rules)),this.value&&(this.value=a.visit(this.value))},genCSS:function(b,c){c.add(this.name,this.currentFileInfo,this.index),this.rules?a.outputRuleset(b,c,this.rules):(c.add(" "),this.value.genCSS(b,c),c.add(";"))},toCSS:a.toCSS,eval:function(b){var c=this;return this.rules&&(b.frames.unshift(this),c=new a.Directive(this.name,null,this.index,this.currentFileInfo),c.rules=[this.rules[0].eval(b)],c.rules[0].root=!0,b.frames.shift()),c},variable:function(b){return a.Ruleset.prototype.variable.call(this.rules[0],b)},find:function(){return a.Ruleset.prototype.find.apply(this.rules[0],arguments)},rulesets:function(){return a.Ruleset.prototype.rulesets.apply(this.rules[0])},markReferenced:function(){var a,b;if(this.isReferenced=!0,this.rules)for(b=this.rules[0].rules,a=0;a":" > ","|":"|","^":" ^ ","^^":" ^^ "},_outputMapCompressed:{"":""," ":" ",":":" :","+":"+","~":"~",">":">","|":"|","^":"^","^^":"^^"},genCSS:function(a,b){b.add((a.compress?this._outputMapCompressed:this._outputMap)[this.value])},toCSS:a.toCSS}}(c("../tree")),function(a){a.Expression=function(a){this.value=a},a.Expression.prototype={type:"Expression",accept:function(a){this.value&&(this.value=a.visitArray(this.value))},eval:function(b){var c,d=this.parens&&!this.parensInOp,e=!1;return d&&b.inParenthesis(),this.value.length>1?c=new a.Expression(this.value.map(function(a){return a.eval(b)})):1===this.value.length?(this.value[0].parens&&!this.value[0].parensInOp&&(e=!0),c=this.value[0].eval(b)):c=this,d&&b.outOfParenthesis(),this.parens&&this.parensInOp&&!b.isMathOn()&&!e&&(c=new a.Paren(c)),c},genCSS:function(a,b){for(var c=0;c0&&c.length&&""===c[0].combinator.value&&(c[0].combinator.value=" "),d=d.concat(a[b].elements);this.selfSelectors=[{elements:d}]}}}(c("../tree")),function(a){a.Import=function(a,c,d,e,f){if(this.options=d,this.index=e,this.path=a,this.features=c,this.currentFileInfo=f,this.options.less!==b||this.options.inline)this.css=!this.options.less||this.options.inline;else{var g=this.getPath();g&&/css([\?;].*)?$/.test(g)&&(this.css=!0)}},a.Import.prototype={type:"Import",accept:function(a){this.features&&(this.features=a.visit(this.features)),this.path=a.visit(this.path),!this.options.inline&&this.root&&(this.root=a.visit(this.root))},genCSS:function(a,b){this.css&&(b.add("@import ",this.currentFileInfo,this.index),this.path.genCSS(a,b),this.features&&(b.add(" "),this.features.genCSS(a,b)),b.add(";"))},toCSS:a.toCSS,getPath:function(){if(this.path instanceof a.Quoted){var c=this.path.value;return this.css!==b||/(\.[a-z]*$)|([\?;].*)$/.test(c)?c:c+".less"}return this.path instanceof a.URL?this.path.value.value:null},evalForImport:function(b){return new a.Import(this.path.eval(b),this.features,this.options,this.index,this.currentFileInfo)},evalPath:function(b){var c=this.path.eval(b),d=this.currentFileInfo&&this.currentFileInfo.rootpath;if(!(c instanceof a.URL)){if(d){var e=c.value;e&&b.isPathRelative(e)&&(c.value=d+e)}c.value=b.normalizePath(c.value)}return c},eval:function(b){var c,d=this.features&&this.features.eval(b);if(this.skip)return[];if(this.options.inline){var e=new a.Anonymous(this.root,0,{filename:this.importedFilename},!0);return this.features?new a.Media([e],this.features.value):[e]}if(this.css){var f=new a.Import(this.evalPath(b),d,this.options,this.index);if(!f.css&&this.error)throw this.error;return f}return c=new a.Ruleset(null,this.root.rules.slice(0)),c.evalImports(b),this.features?new a.Media(c.rules,this.features.value):c.rules}}}(c("../tree")),function(a){a.JavaScript=function(a,b,c){this.escaped=c,this.expression=a,this.index=b},a.JavaScript.prototype={type:"JavaScript",eval:function(b){var c,d=this,e={},f=this.expression.replace(/@\{([\w-]+)\}/g,function(c,e){return a.jsify(new a.Variable("@"+e,d.index).eval(b))});try{f=new Function("return ("+f+")")}catch(g){throw{message:"JavaScript evaluation error: "+g.message+" from `"+f+"`",index:this.index}}var h=b.frames[0].variables();for(var i in h)h.hasOwnProperty(i)&&(e[i.slice(1)]={value:h[i].value,toJS:function(){return this.value.eval(b).toCSS()}});try{c=f.call(e)}catch(g){throw{message:"JavaScript evaluation error: '"+g.name+": "+g.message.replace(/["]/g,"'")+"'",index:this.index}}return"number"==typeof c?new a.Dimension(c):"string"==typeof c?new a.Quoted('"'+c+'"',c,this.escaped,this.index):Array.isArray(c)?new a.Anonymous(c.join(", ")):new a.Anonymous(c)}}}(c("../tree")),function(a){a.Keyword=function(a){this.value=a},a.Keyword.prototype={type:"Keyword",eval:function(){return this},genCSS:function(a,b){b.add(this.value)},toCSS:a.toCSS,compare:function(b){return b instanceof a.Keyword?b.value===this.value?0:1:-1}},a.True=new a.Keyword("true"),a.False=new a.Keyword("false")}(c("../tree")),function(a){a.Media=function(b,c,d,e){this.index=d,this.currentFileInfo=e;var f=this.emptySelectors();this.features=new a.Value(c),this.rules=[new a.Ruleset(f,b)],this.rules[0].allowImports=!0},a.Media.prototype={type:"Media",accept:function(a){this.features&&(this.features=a.visit(this.features)),this.rules&&(this.rules=a.visitArray(this.rules))},genCSS:function(b,c){c.add("@media ",this.currentFileInfo,this.index),this.features.genCSS(b,c),a.outputRuleset(b,c,this.rules)},toCSS:a.toCSS,eval:function(b){b.mediaBlocks||(b.mediaBlocks=[],b.mediaPath=[]);var c=new a.Media(null,[],this.index,this.currentFileInfo);this.debugInfo&&(this.rules[0].debugInfo=this.debugInfo,c.debugInfo=this.debugInfo);var d=!1;b.strictMath||(d=!0,b.strictMath=!0);try{c.features=this.features.eval(b)}finally{d&&(b.strictMath=!1)}return b.mediaPath.push(c),b.mediaBlocks.push(c),b.frames.unshift(this.rules[0]),c.rules=[this.rules[0].eval(b)],b.frames.shift(),b.mediaPath.pop(),0===b.mediaPath.length?c.evalTop(b):c.evalNested(b)},variable:function(b){return a.Ruleset.prototype.variable.call(this.rules[0],b)},find:function(){return a.Ruleset.prototype.find.apply(this.rules[0],arguments)},rulesets:function(){return a.Ruleset.prototype.rulesets.apply(this.rules[0])},emptySelectors:function(){var b=new a.Element("","&",this.index,this.currentFileInfo),c=[new a.Selector([b],null,null,this.index,this.currentFileInfo)];return c[0].mediaEmpty=!0,c},markReferenced:function(){var a,b=this.rules[0].rules;for(this.isReferenced=!0,a=0;a1){var d=this.emptySelectors();c=new a.Ruleset(d,b.mediaBlocks),c.multiMedia=!0}return delete b.mediaBlocks,delete b.mediaPath,c},evalNested:function(b){var c,d,e=b.mediaPath.concat([this]);for(c=0;c0;c--)b.splice(c,0,new a.Anonymous("and"));return new a.Expression(b)})),new a.Ruleset([],[])},permute:function(a){if(0===a.length)return[];if(1===a.length)return a[0];for(var b=[],c=this.permute(a.slice(1)),d=0;d0){for(j=!0,g=0;gh;h++)s.value(h),r[h]=d.matchCondition(e,b);(r[0]||r[1])&&(r[0]!=r[1]&&(l.group=r[1]?u:v),q.push(l))}else q.push(l);p=!0}}for(s.reset(),n=[0,0,0],g=0;g0)m=v;else if(m=u,n[u]+n[v]>1)throw{type:"Runtime",message:"Ambiguous use of `default()` found when matching for `"+this.format(e)+"`",index:this.index,filename:this.currentFileInfo.filename};for(g=0;gthis.params.length)return!1}c=Math.min(d,this.arity);for(var e=0;c>e;e++)if(!this.params[e].name&&!this.params[e].variadic&&a[e].value.eval(b).toCSS()!=this.params[e].value.eval(b).toCSS())return!1;return!0}}}(c("../tree")),function(a){a.Negative=function(a){this.value=a},a.Negative.prototype={type:"Negative",accept:function(a){this.value=a.visit(this.value)},genCSS:function(a,b){b.add("-"),this.value.genCSS(a,b)},toCSS:a.toCSS,eval:function(b){return b.isMathOn()?new a.Operation("*",[new a.Dimension(-1),this.value]).eval(b):new a.Negative(this.value.eval(b))}}}(c("../tree")),function(a){a.Operation=function(a,b,c){this.op=a.trim(),this.operands=b,this.isSpaced=c},a.Operation.prototype={type:"Operation",accept:function(a){this.operands=a.visit(this.operands)},eval:function(b){var c=this.operands[0].eval(b),d=this.operands[1].eval(b);if(b.isMathOn()){if(c instanceof a.Dimension&&d instanceof a.Color&&(c=c.toColor()),d instanceof a.Dimension&&c instanceof a.Color&&(d=d.toColor()),!c.operate)throw{type:"Operation",message:"Operation on an invalid type"};return c.operate(b,this.op,d)}return new a.Operation(this.op,[c,d],this.isSpaced)},genCSS:function(a,b){this.operands[0].genCSS(a,b),this.isSpaced&&b.add(" "),b.add(this.op),this.isSpaced&&b.add(" "),this.operands[1].genCSS(a,b)},toCSS:a.toCSS},a.operate=function(a,b,c,d){switch(b){case"+":return c+d;case"-":return c-d;case"*":return c*d;case"/":return c/d}}}(c("../tree")),function(a){a.Paren=function(a){this.value=a},a.Paren.prototype={type:"Paren",accept:function(a){this.value=a.visit(this.value)},genCSS:function(a,b){b.add("("),this.value.genCSS(a,b),b.add(")")},toCSS:a.toCSS,eval:function(b){return new a.Paren(this.value.eval(b))}}}(c("../tree")),function(a){a.Quoted=function(a,b,c,d,e){this.escaped=c,this.value=b||"",this.quote=a.charAt(0),this.index=d,this.currentFileInfo=e},a.Quoted.prototype={type:"Quoted",genCSS:function(a,b){this.escaped||b.add(this.quote,this.currentFileInfo,this.index),b.add(this.value),this.escaped||b.add(this.quote)},toCSS:a.toCSS,eval:function(b){var c=this,d=this.value.replace(/`([^`]+)`/g,function(d,e){return new a.JavaScript(e,c.index,!0).eval(b).value}).replace(/@\{([\w-]+)\}/g,function(d,e){var f=new a.Variable("@"+e,c.index,c.currentFileInfo).eval(b,!0);return f instanceof a.Quoted?f.value:f.toCSS()});return new a.Quoted(this.quote+d+this.quote,d,this.escaped,this.index,this.currentFileInfo)},compare:function(a){if(!a.toCSS)return-1;var b=this.toCSS(),c=a.toCSS();return b===c?0:c>b?-1:1}}}(c("../tree")),function(a){function b(a,b){var c,d="",e=b.length,f={add:function(a){d+=a}};for(c=0;e>c;c++)b[c].eval(a).genCSS(a,f);return d}a.Rule=function(b,c,d,e,f,g,h){this.name=b,this.value=c instanceof a.Value?c:new a.Value([c]),this.important=d?" "+d.trim():"",this.merge=e,this.index=f,this.currentFileInfo=g,this.inline=h||!1,this.variable=b.charAt&&"@"===b.charAt(0)},a.Rule.prototype={type:"Rule",accept:function(a){this.value=a.visit(this.value)},genCSS:function(a,b){b.add(this.name+(a.compress?":":": "),this.currentFileInfo,this.index);try{this.value.genCSS(a,b)}catch(c){throw c.index=this.index,c.filename=this.currentFileInfo.filename,c}b.add(this.important+(this.inline||a.lastRule&&a.compress?"":";"),this.currentFileInfo,this.index)},toCSS:a.toCSS,eval:function(c){var d=!1,e=this.name;"string"!=typeof e&&(e=1===e.length&&e[0]instanceof a.Keyword?e[0].value:b(c,e)),"font"!==e||c.strictMath||(d=!0,c.strictMath=!0);try{return new a.Rule(e,this.value.eval(c),this.important,this.merge,this.index,this.currentFileInfo,this.inline)}catch(f){throw f.index=f.index||this.index,f}finally{d&&(c.strictMath=!1)}},makeImportant:function(){return new a.Rule(this.name,this.value,"!important",this.merge,this.index,this.currentFileInfo,this.inline)}}}(c("../tree")),function(a){a.Ruleset=function(a,b,c){this.selectors=a,this.rules=b,this._lookups={},this.strictImports=c},a.Ruleset.prototype={type:"Ruleset",accept:function(a){this.paths?a.visitArray(this.paths,!0):this.selectors&&(this.selectors=a.visitArray(this.selectors)),this.rules&&this.rules.length&&(this.rules=a.visitArray(this.rules))},eval:function(b){var c,d,e,f=this.selectors,g=a.defaultFunc;if(f&&(d=f.length)){for(c=[],g.error({type:"Syntax",message:"it is currently only allowed in parametric mixin guards,"}),e=0;d>e;e++)c.push(f[e].eval(b));g.reset()}var h,i,j=this.rules?this.rules.slice(0):null,k=new a.Ruleset(c,j,this.strictImports);k.originalRuleset=this,k.root=this.root,k.firstRoot=this.firstRoot,k.allowImports=this.allowImports,this.debugInfo&&(k.debugInfo=this.debugInfo);var l=b.frames;l.unshift(k);var m=b.selectors;m||(b.selectors=m=[]),m.unshift(this.selectors),(k.root||k.allowImports||!k.strictImports)&&k.evalImports(b);var n=k.rules,o=n?n.length:0;for(e=0;o>e;e++)n[e]instanceof a.mixin.Definition&&(n[e].frames=l.slice(0));var p=b.mediaBlocks&&b.mediaBlocks.length||0;for(e=0;o>e;e++)n[e]instanceof a.mixin.Call&&(j=n[e].eval(b).filter(function(b){return b instanceof a.Rule&&b.variable?!k.variable(b.name):!0}),n.splice.apply(n,[e,1].concat(j)),o+=j.length-1,e+=j.length-1,k.resetCache());for(e=0;eb;b++)c=g[b],(c instanceof d||c instanceof e)&&f.push(c);return f},prependRule:function(a){var b=this.rules;b?b.unshift(a):this.rules=[a]},find:function(b,c){c=c||this;var d,e=[],f=b.toCSS();return f in this._lookups?this._lookups[f]:(this.rulesets().forEach(function(f){if(f!==c)for(var g=0;gd?Array.prototype.push.apply(e,f.find(new a.Selector(b.elements.slice(d)),c)):e.push(f);break}}),this._lookups[f]=e,e)},genCSS:function(b,c){var d,e,f,g,h,i,j=[],k=[];b.tabLevel=b.tabLevel||0,this.root||b.tabLevel++;var l,m=b.compress?"":Array(b.tabLevel+1).join(" "),n=b.compress?"":Array(b.tabLevel).join(" ");for(d=0;dd;d++)if(i=p[d],o=i.length)for(d>0&&c.add(l),b.firstSelector=!0,i[0].genCSS(b,c),b.firstSelector=!1,e=1;o>e;e++)i[e].genCSS(b,c);c.add((b.compress?"{":" {\n")+m)}for(d=0;dd;d++)l&&c.add(l),k[d].genCSS(b,c);c.isEmpty()||b.compress||!this.firstRoot||c.add("\n")},toCSS:a.toCSS,markReferenced:function(){for(var a=0;a0&&this.mergeElementsOnToSelectors(r,i),f=0;f0&&(k[0].elements=k[0].elements.slice(0),k[0].elements.push(new a.Element(j.combinator,"",j.index,j.currentFileInfo))),s.push(k);else for(g=0;g0?(m=k.slice(0),q=m.pop(),o=d.createDerived(q.elements.slice(0)),p=!1):o=d.createDerived([]),l.length>1&&(n=n.concat(l.slice(1))),l.length>0&&(p=!1,o.elements.push(new a.Element(j.combinator,l[0].elements[0].value,j.index,j.currentFileInfo)),o.elements=o.elements.concat(l[0].elements.slice(1))),p||m.push(o),m=m.concat(n),s.push(m);i=s,r=[]}for(r.length>0&&this.mergeElementsOnToSelectors(r,i),e=0;e0&&b.push(i[e])}else if(c.length>0)for(e=0;e0?e[e.length-1]=e[e.length-1].createDerived(e[e.length-1].elements.concat(b)):e.push(new a.Selector(b))}}}(c("../tree")),function(a){a.Selector=function(a,b,c,d,e,f){this.elements=a,this.extendList=b,this.condition=c,this.currentFileInfo=e||{},this.isReferenced=f,c||(this.evaldCondition=!0)},a.Selector.prototype={type:"Selector",accept:function(a){this.elements&&(this.elements=a.visitArray(this.elements)),this.extendList&&(this.extendList=a.visitArray(this.extendList)),this.condition&&(this.condition=a.visit(this.condition))},createDerived:function(b,c,d){d=null!=d?d:this.evaldCondition;var e=new a.Selector(b,c||this.extendList,null,this.index,this.currentFileInfo,this.isReferenced);return e.evaldCondition=d,e.mediaEmpty=this.mediaEmpty,e},match:function(a){var b,c,d=this.elements,e=d.length;if(a.CacheElements(),b=a._elements.length,0===b||b>e)return 0;for(c=0;b>c;c++)if(d[c].value!==a._elements[c])return 0;return b},CacheElements:function(){var a,b,c,d="";if(!this._elements){for(a=this.elements.length,c=0;a>c;c++)if(b=this.elements[c],d+=b.combinator.value,b.value.value){if("string"!=typeof b.value.value){d="";break}d+=b.value.value}else d+=b.value;this._elements=d.match(/[,&#\.\w-]([\w-]|(\\.))*/g),this._elements?"&"===this._elements[0]&&this._elements.shift():this._elements=[]}},isJustParentSelector:function(){return!this.mediaEmpty&&1===this.elements.length&&"&"===this.elements[0].value&&(" "===this.elements[0].combinator.value||""===this.elements[0].combinator.value)},eval:function(a){var b=this.condition&&this.condition.eval(a),c=this.elements,d=this.extendList;return c=c&&c.map(function(b){return b.eval(a)}),d=d&&d.map(function(b){return b.eval(a)}),this.createDerived(c,d,b)},genCSS:function(a,b){var c,d;if(a&&a.firstSelector||""!==this.elements[0].combinator.value||b.add(" ",this.currentFileInfo,this.index),!this._css)for(c=0;cc;c++)this.visit(a[c]);return a}var e=[];for(c=0;d>c;c++){var f=this.visit(a[c]);f.splice?f.length&&this.flatten(f,e):e.push(f)}return e},flatten:function(a,b){b||(b=[]);var c,d,e,f,g,h;for(d=0,c=a.length;c>d;d++)if(e=a[d],e.splice)for(g=0,f=e.length;f>g;g++)h=e[g],h.splice?h.length&&this.flatten(h,b):b.push(h);else b.push(e);return b}}}(c("./tree")),function(a){a.importVisitor=function(b,c,d){this._visitor=new a.visitor(this),this._importer=b,this._finish=c,this.env=d||new a.evalEnv,this.importCount=0},a.importVisitor.prototype={isReplacing:!0,run:function(a){var b;try{this._visitor.visit(a)}catch(c){b=c}this.isFinished=!0,0===this.importCount&&this._finish(b)},visitImport:function(b,c){var d,e=this,f=b.options.inline;if(!b.css||f){try{d=b.evalForImport(this.env)}catch(g){g.filename||(g.index=b.index,g.filename=b.currentFileInfo.filename),b.css=!0,b.error=g}if(d&&(!d.css||f)){b=d,this.importCount++;var h=new a.evalEnv(this.env,this.env.frames.slice(0));b.options.multiple&&(h.importMultiple=!0),this._importer.push(b.getPath(),b.currentFileInfo,b.options,function(c,d,g,i){c&&!c.filename&&(c.index=b.index,c.filename=b.currentFileInfo.filename),g&&!h.importMultiple&&(b.skip=g);var j=function(a){e.importCount--,0===e.importCount&&e.isFinished&&e._finish(a)};return!d||(b.root=d,b.importedFilename=i,f||b.skip)?(j(),void 0):(new a.importVisitor(e._importer,j,h).run(d),void 0)})}}return c.visitDeeper=!1,b},visitRule:function(a,b){return b.visitDeeper=!1,a},visitDirective:function(a){return this.env.frames.unshift(a),a},visitDirectiveOut:function(){this.env.frames.shift()},visitMixinDefinition:function(a){return this.env.frames.unshift(a),a},visitMixinDefinitionOut:function(){this.env.frames.shift()},visitRuleset:function(a){return this.env.frames.unshift(a),a},visitRulesetOut:function(){this.env.frames.shift()},visitMedia:function(a){return this.env.frames.unshift(a.ruleset),a},visitMediaOut:function(){this.env.frames.shift()}}}(c("./tree")),function(a){a.joinSelectorVisitor=function(){this.contexts=[[]],this._visitor=new a.visitor(this)},a.joinSelectorVisitor.prototype={run:function(a){return this._visitor.visit(a)},visitRule:function(a,b){b.visitDeeper=!1},visitMixinDefinition:function(a,b){b.visitDeeper=!1},visitRuleset:function(a){var b,c=this.contexts[this.contexts.length-1],d=[];this.contexts.push(d),a.root||(b=a.selectors,b&&(b=b.filter(function(a){return a.getIsOutput()}),a.selectors=b.length?b:b=null,b&&a.joinSelectors(d,c,b)),b||(a.rules=null),a.paths=d)},visitRulesetOut:function(){this.contexts.length=this.contexts.length-1},visitMedia:function(a){var b=this.contexts[this.contexts.length-1];a.rules[0].root=0===b.length||b[0].multiMedia}}}(c("./tree")),function(a){a.toCSSVisitor=function(b){this._visitor=new a.visitor(this),this._env=b},a.toCSSVisitor.prototype={isReplacing:!0,run:function(a){return this._visitor.visit(a)},visitRule:function(a){return a.variable?[]:a},visitMixinDefinition:function(){return[]},visitExtend:function(){return[]},visitComment:function(a){return a.isSilent(this._env)?[]:a},visitMedia:function(a,b){return a.accept(this._visitor),b.visitDeeper=!1,a.rules.length?a:[]},visitDirective:function(b){if(b.currentFileInfo.reference&&!b.isReferenced)return[];if("@charset"===b.name){if(this.charset){if(b.debugInfo){var c=new a.Comment("/* "+b.toCSS(this._env).replace(/\n/g,"")+" */\n");return c.debugInfo=b.debugInfo,this._visitor.visit(c)}return[]}this.charset=!0}return b},checkPropertiesInRoot:function(b){for(var c,d=0;d0)&&e.splice(0,0,b);else{b.paths&&(b.paths=b.paths.filter(function(b){var c;for(" "===b[0].elements[0].combinator.value&&(b[0].elements[0].combinator=new a.Combinator("")),c=0;ch;)d=f[h],d&&d.rules?(e.push(this._visitor.visit(d)),f.splice(h,1),g--):h++;g>0?b.accept(this._visitor):b.rules=null,c.visitDeeper=!1,f=b.rules,f&&(this._mergeRules(f),f=b.rules),f&&(this._removeDuplicateRules(f),f=b.rules),f&&f.length>0&&b.paths.length>0&&e.splice(0,0,b)}return 1===e.length?e[0]:e},_removeDuplicateRules:function(b){if(b){var c,d,e,f={};for(e=b.length-1;e>=0;e--)if(d=b[e],d instanceof a.Rule)if(f[d.name]){c=f[d.name],c instanceof a.Rule&&(c=f[d.name]=[f[d.name].toCSS(this._env)]);var g=d.toCSS(this._env);-1!==c.indexOf(g)?b.splice(e,1):c.push(g)}else f[d.name]=d}},_mergeRules:function(b){if(b){for(var c,d,e,f={},g=0;g1&&(d=c[0],d.value=new a.Value(c.map(function(a){return a.value})))})}}}}(c("./tree")),function(a){a.extendFinderVisitor=function(){this._visitor=new a.visitor(this),this.contexts=[],this.allExtendsStack=[[]]},a.extendFinderVisitor.prototype={run:function(a){return a=this._visitor.visit(a),a.allExtends=this.allExtendsStack[0],a},visitRule:function(a,b){b.visitDeeper=!1},visitMixinDefinition:function(a,b){b.visitDeeper=!1},visitRuleset:function(b){if(!b.root){var c,d,e,f,g=[],h=b.rules,i=h?h.length:0;for(c=0;i>c;c++)b.rules[c]instanceof a.Extend&&(g.push(h[c]),b.extendOnEveryPath=!0);var j=b.paths;for(c=0;c=0||(i=[k.selfSelectors[0]],g=n.findMatch(j,i),g.length&&j.selfSelectors.forEach(function(b){h=n.extendSelector(g,i,b),l=new a.Extend(k.selector,k.option,0),l.selfSelectors=h,h[h.length-1].extendList=[l],m.push(l),l.ruleset=k.ruleset,l.parent_ids=l.parent_ids.concat(k.parent_ids,j.parent_ids),k.firstExtendOnThisSelectorPath&&(l.firstExtendOnThisSelectorPath=!0,k.ruleset.paths.push(h))}));if(m.length){if(this.extendChainCount++,d>100){var o="{unable to calculate}",p="{unable to calculate}";try{o=m[0].selfSelectors[0].toCSS(),p=m[0].selector.toCSS()}catch(q){}throw{message:"extend circular reference detected. One of the circular extends is currently:"+o+":extend("+p+")"}}return m.concat(n.doExtendChaining(m,c,d+1))}return m},visitRule:function(a,b){b.visitDeeper=!1},visitMixinDefinition:function(a,b){b.visitDeeper=!1},visitSelector:function(a,b){b.visitDeeper=!1},visitRuleset:function(a){if(!a.root){var b,c,d,e,f=this.allExtendsStack[this.allExtendsStack.length-1],g=[],h=this;for(d=0;d0&&k[i.matched].combinator.value!==g?i=null:i.matched++,i&&(i.finished=i.matched===k.length,i.finished&&!a.allowAfter&&(e+1j&&k>0&&(l[l.length-1].elements=l[l.length-1].elements.concat(c[j].elements.slice(k)),k=0,j++),i=f.elements.slice(k,h.index).concat([g]).concat(d.elements.slice(1)),j===h.pathIndex&&e>0?l[l.length-1].elements=l[l.length-1].elements.concat(i):(l=l.concat(c.slice(j,h.pathIndex)),l.push(new a.Selector(i))),j=h.endPathIndex,k=h.endPathElementIndex,k>=c[j].elements.length&&(k=0,j++);return j0&&(l[l.length-1].elements=l[l.length-1].elements.concat(c[j].elements.slice(k)),j++),l=l.concat(c.slice(j,c.length))},visitRulesetOut:function(){},visitMedia:function(a){var b=a.allExtends.concat(this.allExtendsStack[this.allExtendsStack.length-1]);b=b.concat(this.doExtendChaining(b,a.allExtends)),this.allExtendsStack.push(b)},visitMediaOut:function(){this.allExtendsStack.length=this.allExtendsStack.length-1},visitDirective:function(a){var b=a.allExtends.concat(this.allExtendsStack[this.allExtendsStack.length-1]);b=b.concat(this.doExtendChaining(b,a.allExtends)),this.allExtendsStack.push(b)},visitDirectiveOut:function(){this.allExtendsStack.length=this.allExtendsStack.length-1}}}(c("./tree")),function(a){a.sourceMapOutput=function(a){this._css=[],this._rootNode=a.rootNode,this._writeSourceMap=a.writeSourceMap,this._contentsMap=a.contentsMap,this._contentsIgnoredCharsMap=a.contentsIgnoredCharsMap,this._sourceMapFilename=a.sourceMapFilename,this._outputFilename=a.outputFilename,this._sourceMapURL=a.sourceMapURL,a.sourceMapBasepath&&(this._sourceMapBasepath=a.sourceMapBasepath.replace(/\\/g,"/")),this._sourceMapRootpath=a.sourceMapRootpath,this._outputSourceFiles=a.outputSourceFiles,this._sourceMapGeneratorConstructor=a.sourceMapGenerator||c("source-map").SourceMapGenerator,this._sourceMapRootpath&&"/"!==this._sourceMapRootpath.charAt(this._sourceMapRootpath.length-1)&&(this._sourceMapRootpath+="/"),this._lineNumber=0,this._column=0},a.sourceMapOutput.prototype.normalizeFilename=function(a){return a=a.replace(/\\/g,"/"),this._sourceMapBasepath&&0===a.indexOf(this._sourceMapBasepath)&&(a=a.substring(this._sourceMapBasepath.length),("\\"===a.charAt(0)||"/"===a.charAt(0))&&(a=a.substring(1))),(this._sourceMapRootpath||"")+a},a.sourceMapOutput.prototype.add=function(a,b,c,d){if(a){var e,f,g,h,i;if(b){var j=this._contentsMap[b.filename];this._contentsIgnoredCharsMap[b.filename]&&(c-=this._contentsIgnoredCharsMap[b.filename],0>c&&(c=0),j=j.slice(this._contentsIgnoredCharsMap[b.filename])),j=j.substring(0,c),f=j.split("\n"),h=f[f.length-1]}if(e=a.split("\n"),g=e[e.length-1],b)if(d)for(i=0;i0){var d,e=JSON.stringify(this._sourceMapGenerator.toJSON());this._sourceMapURL?d=this._sourceMapURL:this._sourceMapFilename&&(d=this.normalizeFilename(this._sourceMapFilename)),this._writeSourceMap?this._writeSourceMap(e):d="data:application/json,"+encodeURIComponent(e),d&&this._css.push("/*# sourceMappingURL="+d+" */") -}return this._css.join("")}}(c("./tree"));var x=/^(file|chrome(-extension)?|resource|qrc|app):/.test(location.protocol);v.env=v.env||("127.0.0.1"==location.hostname||"0.0.0.0"==location.hostname||"localhost"==location.hostname||location.port&&location.port.length>0||x?"development":"production");var y={info:2,errors:1,none:0};if(v.logLevel="undefined"!=typeof v.logLevel?v.logLevel:y.info,v.async=v.async||!1,v.fileAsync=v.fileAsync||!1,v.poll=v.poll||(x?1e3:1500),v.functions)for(var z in v.functions)v.functions.hasOwnProperty(z)&&(v.tree.functions[z]=v.functions[z]);var A=/!dumpLineNumbers:(comments|mediaquery|all)/.exec(location.hash);A&&(v.dumpLineNumbers=A[1]);var B=/^text\/(x-)?less$/,C=null,D={};if(v.watch=function(){return v.watchMode||(v.env="development",u()),this.watchMode=!0,!0},v.unwatch=function(){return clearInterval(v.watchTimer),this.watchMode=!1,!1},/!watch/.test(location.hash)&&v.watch(),"development"!=v.env)try{C="undefined"==typeof a.localStorage?null:a.localStorage}catch(E){}var F=document.getElementsByTagName("link");v.sheets=[];for(var G=0;G Date: Wed, 20 Aug 2014 23:30:24 -0300 Subject: [PATCH 38/57] removing comparasion hack and fixing order to compare versions --- .../wisemapping/importer/freemind/FreemindImporter.java | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/wise-webapp/src/main/java/com/wisemapping/importer/freemind/FreemindImporter.java b/wise-webapp/src/main/java/com/wisemapping/importer/freemind/FreemindImporter.java index 15bed398..bf35454b 100755 --- a/wise-webapp/src/main/java/com/wisemapping/importer/freemind/FreemindImporter.java +++ b/wise-webapp/src/main/java/com/wisemapping/importer/freemind/FreemindImporter.java @@ -69,7 +69,7 @@ public class FreemindImporter private static final String EMPTY_FONT_STYLE = ";;;;;"; private final static Charset UTF_8_CHARSET = Charset.forName("UTF-8"); private final static int ORDER_SEPARATION_FACTOR = 2; - private static final VersionNumber SUPPORTED_FREEMIND_VERSION = new VersionNumber("0.9.0"); + private static final VersionNumber SUPPORTED_FREEMIND_VERSION = new VersionNumber("1.0.1"); private int currentId; @@ -120,13 +120,8 @@ public class FreemindImporter final String version = freemindMap.getVersion(); if (version != null) { - // Is freemind mindmap ? - if (version.charAt(0) != '0') { - throw new ImporterException("Mindmap is not a FreeMind document. Document type info " + version); - } - final VersionNumber mapVersion = new VersionNumber(version); - if (SUPPORTED_FREEMIND_VERSION.isGreaterThan(mapVersion)) { + if (mapVersion.isGreaterThan(SUPPORTED_FREEMIND_VERSION)) { throw new ImporterException("FreeMind version " + mapVersion.getVersion() + " is not supported."); } } From c4a4424364aa708258155e16a45a2c5d784c69b6 Mon Sep 17 00:00:00 2001 From: Claudio Barril Date: Wed, 20 Aug 2014 23:31:14 -0300 Subject: [PATCH 39/57] fixing import dialog, parameters modification and redirect --- .../src/main/webapp/jsp/mindmapImport.jsp | 75 ++++++++++--------- 1 file changed, 41 insertions(+), 34 deletions(-) diff --git a/wise-webapp/src/main/webapp/jsp/mindmapImport.jsp b/wise-webapp/src/main/webapp/jsp/mindmapImport.jsp index d9c84cbd..b6345cf9 100644 --- a/wise-webapp/src/main/webapp/jsp/mindmapImport.jsp +++ b/wise-webapp/src/main/webapp/jsp/mindmapImport.jsp @@ -25,7 +25,7 @@
    -
    @@ -46,12 +46,47 @@ $('#dialogMainForm').submit(function (event) { // Load form parameters ... - var title = $('#dialogMainForm #title').attr('value'); + var title = $('#dialogMainForm #title').val(); title = title == undefined ? "" : title; - var description = $('#dialogMainForm #description').attr('value'); + var description = $('#dialogMainForm #description').val(); description = description == undefined ? "" : description; + var onSuccess = function (data, textStatus, jqXHR) { + console.log('hola'); + var resourceId = data.getResponseHeader("ResourceId"); + window.location = "c/maps/" + resourceId + "/edit"; + }; + + var onError = function (jqXHR, textStatus, errorThrown) { + if (jqXHR.status == 400) { + var errors = JSON.parse(jqXHR.responseText); + // Mark fields with errors ... + var fieldErrors = errors.fieldErrors; + if (fieldErrors) { + for (var fieldName in fieldErrors) { + // Mark the field with errors ... + var message = fieldErrors[fieldName]; + var inputField = $("#dialogMainForm input[name='" + fieldName + "']"); + $("#dialogMainForm").find(".errorMessage").text(message).addClass("alert alert-danger"); + inputField.parent().addClass('error'); + } + } + var globalErrors = errors.globalErrors; + if (globalErrors) { + for (var error in globalErrors) { + // Mark the field with errors ... + $("#dialogMainForm").find(".errorMessage").text(error).addClass("alert alert-danger"); + inputField.parent().addClass('error'); + } + } + } else { + console.log(errorThrown); + console.log(jqXHR); + $('#messagesPanel div').text(errorThrown).parent().show(); + } + }; + // Save status on click ... jQuery.ajax("c/restful/maps?title=" + encodeURI(title) + "&description=" + encodeURI(description), { @@ -60,37 +95,9 @@ type:'POST', dataType:'json', contentType:contentType, - success:function (data, textStatus, jqXHR) { - var resourceId = jqXHR.getResponseHeader("ResourceId"); - window.location = "c/maps/" + resourceId + "/edit"; - }, - error:function (jqXHR, textStatus, errorThrown) { - if (jqXHR.status == 400) { - var errors = JSON.parse(jqXHR.responseText); - // Mark fields with errors ... - var fieldErrors = errors.fieldErrors; - if (fieldErrors) { - for (var fieldName in fieldErrors) { - // Mark the field with errors ... - var message = fieldErrors[fieldName]; - var inputField = $("#dialogMainForm input[name='" + fieldName + "']"); - $("#dialogMainForm").find(".errorMessage").text(message).addClass("alert alert-danger"); - inputField.parent().addClass('error'); - } - } - var globalErrors = errors.globalErrors; - if (globalErrors) { - for (var error in globalErrors) { - // Mark the field with errors ... - $("#dialogMainForm").find(".errorMessage").text(error).addClass("alert alert-danger"); - inputField.parent().addClass('error'); - } - } - } else { - console.log(errorThrown); - console.log(jqXHR); - $('#messagesPanel div').text(errorThrown).parent().show(); - } + statusCode: { + 201: onSuccess, + 400: onError } }); event.preventDefault(); From 696ac88330e267a82b66f1a6d0e6f2807402bc9f Mon Sep 17 00:00:00 2001 From: Claudio Barril Date: Mon, 25 Aug 2014 23:32:17 -0300 Subject: [PATCH 40/57] fix side as first level nodes are drawn --- .../importer/freemind/FreemindImporter.java | 71 ++++--------------- 1 file changed, 15 insertions(+), 56 deletions(-) diff --git a/wise-webapp/src/main/java/com/wisemapping/importer/freemind/FreemindImporter.java b/wise-webapp/src/main/java/com/wisemapping/importer/freemind/FreemindImporter.java index bf35454b..e419e6fd 100755 --- a/wise-webapp/src/main/java/com/wisemapping/importer/freemind/FreemindImporter.java +++ b/wise-webapp/src/main/java/com/wisemapping/importer/freemind/FreemindImporter.java @@ -230,6 +230,8 @@ public class FreemindImporter TopicType currentWiseTopic = wiseParent; int order = 0; + int firstLevelRightOrder = 0; + int firstLevelLeftOrder = 1; for (Object element : freeChilden) { if (element instanceof Node) { @@ -247,7 +249,13 @@ public class FreemindImporter if (depth != 1) { norder = order++; } else { - norder = calcFirstLevelOrder(freeChilden, freeChild); + if (freeChild.getPOSITION().equals(POSITION_LEFT)) { + norder = firstLevelLeftOrder; + firstLevelLeftOrder = firstLevelLeftOrder + 2; + } else { + norder = firstLevelRightOrder; + firstLevelRightOrder = firstLevelRightOrder + 2; + } } wiseChild.setOrder(norder); @@ -343,53 +351,6 @@ public class FreemindImporter } } - /** - * Sort the freemind node following this pattern: - *

    - * 0 -> 3 - * 1 -> 1 - * 2 -> 0 - * 3 -> 2 - * 4 -> 4 - */ - private int calcFirstLevelOrder(@NotNull List freeChilden, @Nullable Node freeChild) { - final List nodes = new ArrayList(); - int result; - - // Collect all the nodes of the same side ... - for (Object child : freeChilden) { - if (child instanceof Node) { - Node node = (Node) child; - - final String side = node.getPOSITION(); - if (side == freeChild.getPOSITION() || freeChild.getPOSITION().equals(side)) { - nodes.add(node); - } - } - } - - // What is the index of the current node ? - int nodeIndex = 0; - for (Node node : nodes) { - if (node == freeChild) { - break; - } - nodeIndex++; - } - - int size = nodes.size(); - int center = (size - 1) / 2; - result = nodeIndex - center; - - if (result < 0) { - result = (result * ORDER_SEPARATION_FACTOR * -2) - 1; - - } else { - result = result * ORDER_SEPARATION_FACTOR * 2; - } - return result; - } - /** * Position is (x,y). * x values greater than 0 are right axis @@ -420,16 +381,14 @@ public class FreemindImporter int y; if (depth == 1) { - // Follow the following algorithm ... - // Order: 3 = -100 1 - // Order: 1 = -50 2 - // Order: 0 = 0 3 - // Order: 2 = 50 4 - // Order: 4 = 100 5 + // pair order numbers represent nodes at the right + // odd order numbers represent nodes at the left if (order % 2 == 0) { - y = ROOT_LEVEL_TOPIC_HEIGHT * order; + int multiplier = (int) ((order - Math.floor((childrenCount - 1) / 2)) * 2); + y = multiplier * ROOT_LEVEL_TOPIC_HEIGHT; } else { - y = -ROOT_LEVEL_TOPIC_HEIGHT * (order + 1); + int multiplier = (int) ((order - Math.floor(childrenCount / 2)) * 2); + y = multiplier * ROOT_LEVEL_TOPIC_HEIGHT; } } else { From 43790c1b9a9d2c878a0938a12ca963fe21a87c9b Mon Sep 17 00:00:00 2001 From: Claudio Barril Date: Mon, 25 Aug 2014 23:58:13 -0300 Subject: [PATCH 41/57] copy parent background color when a sibling or a child is created --- mindplot/src/main/javascript/Designer.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mindplot/src/main/javascript/Designer.js b/mindplot/src/main/javascript/Designer.js index a0854923..78a9fe0f 100644 --- a/mindplot/src/main/javascript/Designer.js +++ b/mindplot/src/main/javascript/Designer.js @@ -506,6 +506,11 @@ mindplot.Designer = new Class({ if(borderColor){ targetModel.setBorderColor(borderColor) } + + var backgroundColor = sourceModel.getBackgroundColor(); + if(backgroundColor){ + targetModel.setBackgroundColor(backgroundColor) + } }, _createChildModel:function (topic, mousePos) { From 369f015af285c4a087fb24ae07fe4ea29d08efb7 Mon Sep 17 00:00:00 2001 From: Claudio Barril Date: Sat, 30 Aug 2014 22:42:28 -0300 Subject: [PATCH 42/57] fix drawn and freemind test --- .../importer/freemind/FreemindImporter.java | 37 ++++++-- .../test/resources/data/freemind/basic.wxml | 16 ++-- .../src/test/resources/data/freemind/bug.wxml | 92 +++++++++---------- .../test/resources/data/freemind/fonts.wxml | 2 +- .../test/resources/data/freemind/i18n.wxml | 6 +- .../test/resources/data/freemind/i18n2.wxml | 2 +- .../test/resources/data/freemind/icons.wxml | 16 ++-- .../test/resources/data/freemind/links.wxml | 2 +- .../resources/data/freemind/node-styles.wxml | 20 ++-- .../resources/data/freemind/numerosity.wxml | 40 ++++---- .../test/resources/data/freemind/process.wxml | 92 +++++++++---------- .../resources/data/freemind/richtextnode.wxml | 82 ++++++++--------- 12 files changed, 215 insertions(+), 192 deletions(-) diff --git a/wise-webapp/src/main/java/com/wisemapping/importer/freemind/FreemindImporter.java b/wise-webapp/src/main/java/com/wisemapping/importer/freemind/FreemindImporter.java index e419e6fd..c02676a5 100755 --- a/wise-webapp/src/main/java/com/wisemapping/importer/freemind/FreemindImporter.java +++ b/wise-webapp/src/main/java/com/wisemapping/importer/freemind/FreemindImporter.java @@ -33,9 +33,7 @@ import com.wisemapping.jaxb.wisemap.Link; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jsoup.Jsoup; -import org.jsoup.nodes.*; import org.jsoup.nodes.Document; -import org.w3c.dom.*; import org.w3c.dom.Element; import javax.xml.bind.JAXBException; @@ -61,6 +59,7 @@ public class FreemindImporter public static final String NODE_TYPE = "NODE"; private com.wisemapping.jaxb.wisemap.ObjectFactory mindmapObjectFactory; private static final String POSITION_LEFT = "left"; + private static final String POSITION_RIGHT = "right"; private static final String BOLD = "bold"; private static final String ITALIC = "italic"; private static final String EMPTY_NOTE = ""; @@ -249,7 +248,7 @@ public class FreemindImporter if (depth != 1) { norder = order++; } else { - if (freeChild.getPOSITION().equals(POSITION_LEFT)) { + if (freeChild.getPOSITION() != null && freeChild.getPOSITION().equals(POSITION_LEFT)) { norder = firstLevelLeftOrder; firstLevelLeftOrder = firstLevelLeftOrder + 2; } else { @@ -260,8 +259,8 @@ public class FreemindImporter wiseChild.setOrder(norder); // Convert node position - int childrenCount = freeChilden.size(); - final String position = convertPosition(wiseParent, freeChild, depth, norder, childrenCount); + int childrenCountSameSide = getChildrenCountSameSide(freeChilden, freeChild); + final String position = convertPosition(wiseParent, freeChild, depth, norder, childrenCountSameSide); wiseChild.setPosition(position); // Convert the rest of the node properties ... @@ -351,6 +350,30 @@ public class FreemindImporter } } + private int getChildrenCountSameSide(@NotNull List freeChildren, Node freeChild) { + int result = 0; + String childSide = freeChild.getPOSITION(); + if (childSide == null) { + childSide = POSITION_RIGHT; + } + + // Count all the nodes of the same side ... + for (Object child : freeChildren) { + if (child instanceof Node) { + Node node = (Node) child; + + String side = node.getPOSITION(); + if (side == null) { + side = POSITION_RIGHT; + } + if (childSide.equals(side)) { + result++; + } + } + } + return result; + } + /** * Position is (x,y). * x values greater than 0 are right axis @@ -384,10 +407,10 @@ public class FreemindImporter // pair order numbers represent nodes at the right // odd order numbers represent nodes at the left if (order % 2 == 0) { - int multiplier = (int) ((order - Math.floor((childrenCount - 1) / 2)) * 2); + int multiplier = ((order + 1) - childrenCount) * 2; y = multiplier * ROOT_LEVEL_TOPIC_HEIGHT; } else { - int multiplier = (int) ((order - Math.floor(childrenCount / 2)) * 2); + int multiplier = (order - childrenCount) * 2; y = multiplier * ROOT_LEVEL_TOPIC_HEIGHT; } } else { diff --git a/wise-webapp/src/test/resources/data/freemind/basic.wxml b/wise-webapp/src/test/resources/data/freemind/basic.wxml index be867357..4a356961 100644 --- a/wise-webapp/src/test/resources/data/freemind/basic.wxml +++ b/wise-webapp/src/test/resources/data/freemind/basic.wxml @@ -2,27 +2,27 @@ - + - + - + - + - + - + - + - + diff --git a/wise-webapp/src/test/resources/data/freemind/bug.wxml b/wise-webapp/src/test/resources/data/freemind/bug.wxml index 1d7805bf..d0df12ee 100644 --- a/wise-webapp/src/test/resources/data/freemind/bug.wxml +++ b/wise-webapp/src/test/resources/data/freemind/bug.wxml @@ -2,141 +2,141 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/wise-webapp/src/test/resources/data/freemind/fonts.wxml b/wise-webapp/src/test/resources/data/freemind/fonts.wxml index 5c66d648..ff9703dc 100644 --- a/wise-webapp/src/test/resources/data/freemind/fonts.wxml +++ b/wise-webapp/src/test/resources/data/freemind/fonts.wxml @@ -13,7 +13,7 @@ - + diff --git a/wise-webapp/src/test/resources/data/freemind/i18n.wxml b/wise-webapp/src/test/resources/data/freemind/i18n.wxml index 678c2c6c..36d3d2a7 100644 --- a/wise-webapp/src/test/resources/data/freemind/i18n.wxml +++ b/wise-webapp/src/test/resources/data/freemind/i18n.wxml @@ -2,13 +2,13 @@ - + - + - + diff --git a/wise-webapp/src/test/resources/data/freemind/i18n2.wxml b/wise-webapp/src/test/resources/data/freemind/i18n2.wxml index 94ce5659..f35b6a75 100644 --- a/wise-webapp/src/test/resources/data/freemind/i18n2.wxml +++ b/wise-webapp/src/test/resources/data/freemind/i18n2.wxml @@ -6,7 +6,7 @@ - + diff --git a/wise-webapp/src/test/resources/data/freemind/icons.wxml b/wise-webapp/src/test/resources/data/freemind/icons.wxml index f36c8dd1..662aa487 100644 --- a/wise-webapp/src/test/resources/data/freemind/icons.wxml +++ b/wise-webapp/src/test/resources/data/freemind/icons.wxml @@ -2,7 +2,7 @@ - + @@ -40,7 +40,7 @@ - + @@ -80,7 +80,7 @@ - + @@ -111,7 +111,7 @@ - + @@ -132,7 +132,7 @@ - + @@ -161,7 +161,7 @@ - + @@ -190,7 +190,7 @@ - + @@ -269,7 +269,7 @@ - + diff --git a/wise-webapp/src/test/resources/data/freemind/links.wxml b/wise-webapp/src/test/resources/data/freemind/links.wxml index ff0d6497..3749d9d4 100644 --- a/wise-webapp/src/test/resources/data/freemind/links.wxml +++ b/wise-webapp/src/test/resources/data/freemind/links.wxml @@ -8,7 +8,7 @@ - + diff --git a/wise-webapp/src/test/resources/data/freemind/node-styles.wxml b/wise-webapp/src/test/resources/data/freemind/node-styles.wxml index 58a2ab7f..8c03902d 100644 --- a/wise-webapp/src/test/resources/data/freemind/node-styles.wxml +++ b/wise-webapp/src/test/resources/data/freemind/node-styles.wxml @@ -17,45 +17,45 @@ - + + position="-290,-100" shape="rectagle"> + position="-290,-75" shape="rounded rectagle"> + position="-290,-50" shape="rectagle"> + position="-290,-25" shape="rectagle"> - + + position="-290,0" shape="rectagle"> + position="-290,25" shape="rounded rectagle"> + position="-290,50" shape="rectagle"> + position="-290,75" shape="rectagle"> diff --git a/wise-webapp/src/test/resources/data/freemind/numerosity.wxml b/wise-webapp/src/test/resources/data/freemind/numerosity.wxml index a1a3b098..1a3cec59 100644 --- a/wise-webapp/src/test/resources/data/freemind/numerosity.wxml +++ b/wise-webapp/src/test/resources/data/freemind/numerosity.wxml @@ -2,7 +2,7 @@ - + @@ -131,58 +131,58 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/wise-webapp/src/test/resources/data/freemind/process.wxml b/wise-webapp/src/test/resources/data/freemind/process.wxml index b423097e..65e426bd 100644 --- a/wise-webapp/src/test/resources/data/freemind/process.wxml +++ b/wise-webapp/src/test/resources/data/freemind/process.wxml @@ -2,7 +2,7 @@ - + @@ -26,7 +26,7 @@ - + @@ -41,7 +41,7 @@ - + @@ -77,68 +77,68 @@ - + - + - + + position="380,-250" shape="rounded rectagle"> - + + position="380,-225" shape="rounded rectagle"> + position="290,-225" shape="rounded rectagle"> - + + position="290,-200" shape="rounded rectagle"> - + - + - + - + - + - + + position="380,-100" shape="rounded rectagle"> - + + position="290,-75" shape="rounded rectagle"> - + @@ -147,74 +147,74 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/wise-webapp/src/test/resources/data/freemind/richtextnode.wxml b/wise-webapp/src/test/resources/data/freemind/richtextnode.wxml index e8624c3e..c9d1a4f0 100644 --- a/wise-webapp/src/test/resources/data/freemind/richtextnode.wxml +++ b/wise-webapp/src/test/resources/data/freemind/richtextnode.wxml @@ -10,185 +10,185 @@ + position="290,-50" shape="line"> - + + position="380,-75" shape="line"> + position="380,-50" shape="line"> + position="380,-25" shape="line"> + position="290,-25" shape="rounded rectagle"> + position="380,-100" shape="rectagle"> + position="470,-150" shape="rectagle"> + position="470,-125" shape="rectagle"> + position="470,-100" shape="rectagle"> + position="470,-75" shape="rectagle"> + position="470,-50" shape="rectagle"> - + + position="380,-75" shape="rectagle" shrink="true"> - + + position="380,-50" shape="rectagle"> - + + position="380,-25" shape="rectagle"> - + + position="380,0" shape="rectagle"> - + + position="380,25" shape="rectagle"> - + + position="380,50" shape="rectagle"> - + + position="290,0" shape="rounded rectagle"> + position="380,-25" shape="rectagle"> - + + position="380,0" shape="rectagle"> - + + position="380,25" shape="rectagle"> - + + position="290,25" shape="rounded rectagle"> + position="380,-25" shape="rectagle"> - + + position="380,0" shape="rectagle"> - + + position="380,25" shape="rectagle"> - + + position="380,50" shape="rectagle"> - + From 26a18ae7d0b69f3b01a40db7e1116c7746a9328e Mon Sep 17 00:00:00 2001 From: Claudio Barril Date: Sun, 7 Sep 2014 16:06:58 -0300 Subject: [PATCH 43/57] support both export versions for freemind (old and new 1.0.1) --- .../wisemapping/exporter/ExportProperties.java | 9 +++++++++ .../wisemapping/exporter/ExporterFactory.java | 1 + .../wisemapping/exporter/FreemindExporter.java | 11 +++++++++-- .../wisemapping/rest/MindmapController.java | 5 +++-- .../wisemapping/rest/view/TransformView.java | 4 ++++ .../src/main/resources/messages_ca.properties | 5 +++-- .../src/main/resources/messages_de.properties | 5 +++-- .../src/main/resources/messages_en.properties | 5 +++-- .../src/main/resources/messages_es.properties | 7 ++++--- .../src/main/resources/messages_fr.properties | 5 +++-- .../src/main/resources/messages_it.properties | 5 +++-- .../main/resources/messages_pt_BR.properties | 5 +++-- .../main/resources/messages_zh_CN.properties | 2 +- .../main/resources/messages_zh_TW.properties | 5 +++-- .../src/main/webapp/jsp/iframeWrapper.jsp | 2 ++ .../src/main/webapp/jsp/mindmapExport.jsp | 18 ++++++++++++++---- 16 files changed, 68 insertions(+), 26 deletions(-) diff --git a/wise-webapp/src/main/java/com/wisemapping/exporter/ExportProperties.java b/wise-webapp/src/main/java/com/wisemapping/exporter/ExportProperties.java index 2026135b..18e1354a 100644 --- a/wise-webapp/src/main/java/com/wisemapping/exporter/ExportProperties.java +++ b/wise-webapp/src/main/java/com/wisemapping/exporter/ExportProperties.java @@ -21,6 +21,7 @@ package com.wisemapping.exporter; public class ExportProperties { private ExportFormat format; private String baseImgPath; + private String version; public ExportFormat getFormat() { return format; @@ -40,6 +41,14 @@ public class ExportProperties { return result; } + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + static public class GenericProperties extends ExportProperties { private GenericProperties(ExportFormat format) { super(format); diff --git a/wise-webapp/src/main/java/com/wisemapping/exporter/ExporterFactory.java b/wise-webapp/src/main/java/com/wisemapping/exporter/ExporterFactory.java index f019051c..bcbb5880 100644 --- a/wise-webapp/src/main/java/com/wisemapping/exporter/ExporterFactory.java +++ b/wise-webapp/src/main/java/com/wisemapping/exporter/ExporterFactory.java @@ -142,6 +142,7 @@ public class ExporterFactory { } case FREEMIND: { final FreemindExporter exporter = new FreemindExporter(); + exporter.setVersion(properties.getVersion()); exporter.export(xml.getBytes(UTF_8_CHARSET_NAME), output); break; } diff --git a/wise-webapp/src/main/java/com/wisemapping/exporter/FreemindExporter.java b/wise-webapp/src/main/java/com/wisemapping/exporter/FreemindExporter.java index ea6fe517..29dc8c15 100755 --- a/wise-webapp/src/main/java/com/wisemapping/exporter/FreemindExporter.java +++ b/wise-webapp/src/main/java/com/wisemapping/exporter/FreemindExporter.java @@ -49,12 +49,12 @@ import java.util.Map; public class FreemindExporter implements Exporter { - private static final String FREE_MIND_VERSION = "0.9.0"; private static final String POSITION_LEFT = "left"; private static final String POSITION_RIGHT = "right"; private com.wisemapping.jaxb.freemind.ObjectFactory objectFactory; private static final String EMPTY_FONT_STYLE = ";;;;;"; private Map nodesMap = null; + private String version; public void export(Mindmap map, OutputStream outputStream) throws ExportException { export(map.getUnzipXml(), outputStream); @@ -71,7 +71,7 @@ public class FreemindExporter mindmapMap = (com.wisemapping.jaxb.wisemap.Map) JAXBUtils.getMapObject(stream, "com.wisemapping.jaxb.wisemap"); final com.wisemapping.jaxb.freemind.Map freemindMap = objectFactory.createMap(); - freemindMap.setVersion(FREE_MIND_VERSION); + freemindMap.setVersion(this.getVersion()); final List topics = mindmapMap.getTopic(); @@ -342,4 +342,11 @@ public class FreemindExporter } + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } } diff --git a/wise-webapp/src/main/java/com/wisemapping/rest/MindmapController.java b/wise-webapp/src/main/java/com/wisemapping/rest/MindmapController.java index 89d79f5d..86f1a816 100644 --- a/wise-webapp/src/main/java/com/wisemapping/rest/MindmapController.java +++ b/wise-webapp/src/main/java/com/wisemapping/rest/MindmapController.java @@ -114,13 +114,14 @@ public class MindmapController extends BaseController { return new ModelAndView("transformViewWise", values); } - @RequestMapping(method = RequestMethod.GET, value = "/maps/{id}", produces = {"application/freemind"}, params = {"download=mm"}) + @RequestMapping(method = RequestMethod.GET, value = "/maps/{id}", produces = {"application/freemind"}, params = {"download=mm","version"}) @ResponseBody - public ModelAndView retrieveDocumentAsFreemind(@PathVariable int id) throws IOException, MapCouldNotFoundException { + public ModelAndView retrieveDocumentAsFreemind(@PathVariable int id, @RequestParam(value = "version") String version) throws IOException, MapCouldNotFoundException { final Mindmap mindMap = findMindmapById(id); final Map values = new HashMap(); values.put("content", mindMap.getXmlStr()); values.put("filename", mindMap.getTitle()); + values.put("version", version); return new ModelAndView("transformViewFreemind", values); } diff --git a/wise-webapp/src/main/java/com/wisemapping/rest/view/TransformView.java b/wise-webapp/src/main/java/com/wisemapping/rest/view/TransformView.java index 26becdee..4c754537 100644 --- a/wise-webapp/src/main/java/com/wisemapping/rest/view/TransformView.java +++ b/wise-webapp/src/main/java/com/wisemapping/rest/view/TransformView.java @@ -56,6 +56,7 @@ public class TransformView extends AbstractView { final String content = (String) viewMap.get("content"); final String filename = (String) viewMap.get("filename"); + final String version = (String) viewMap.get("version"); // Build format properties ... final ExportProperties properties = ExportProperties.create(exportFormat); @@ -63,6 +64,9 @@ public class TransformView extends AbstractView { final ExportProperties.ImageProperties imageProperties = (ExportProperties.ImageProperties) properties; imageProperties.setSize(ExportProperties.ImageProperties.Size.LARGE); } + if (version != null) { + properties.setVersion(version); + } // Set format content type... final String contentType = exportFormat.getContentType(); diff --git a/wise-webapp/src/main/resources/messages_ca.properties b/wise-webapp/src/main/resources/messages_ca.properties index e8244e85..9b499c7e 100644 --- a/wise-webapp/src/main/resources/messages_ca.properties +++ b/wise-webapp/src/main/resources/messages_ca.properties @@ -35,7 +35,8 @@ EXPORT=Exportar SVG_EXPORT_FORMAT=Scalable Vector Graphics (SVG) PDF_EXPORT_FORMAT=Portable Document Format (PDF) IMG_EXPORT_FORMAT=Imatge(PNG/JPEG) -FREEMIND_EXPORT_FORMAT = Freemind (version 0.9.0) +FREEMIND_EXPORT_FORMAT_09 = Freemind (version 0.9.0) +FREEMIND_EXPORT_FORMAT = Freemind (version 1.0.1) DELETE=Esborrar LOGIN_ERROR=El nom d'usuari o la contrasenya no són correctes USER_INACTIVE=Perdo, el seu compre encara no ha estar activar. Rebrà un correu amb les dades d'activació. @@ -162,7 +163,7 @@ ADD_MESSAGE=Afegir un missatge WHO_CAN_ACCESS=Qui pot accedir IS_OWNER=És propietari OPTIONAL_CUSTOM_MESSAGE=Opcional\: Incloure un missatge personalitzat -IMPORT_MINDMAP_INFO=És possible importar mapes en format FreeMind 0.9 i WiseMapping. Seleccioni el fitxer a importar. +IMPORT_MINDMAP_INFO=És possible importar mapes en format FreeMind 1.0.1 i WiseMapping. Seleccioni el fitxer a importar. VIEW=veure YOU=Vostè INFO_UPDATE_SUCCESS=La seva informació s'ha actualitzat correctament. diff --git a/wise-webapp/src/main/resources/messages_de.properties b/wise-webapp/src/main/resources/messages_de.properties index ab854356..a59d134a 100644 --- a/wise-webapp/src/main/resources/messages_de.properties +++ b/wise-webapp/src/main/resources/messages_de.properties @@ -38,7 +38,8 @@ EXPORT=Exportieren SVG_EXPORT_FORMAT=Skalierbare Vektor Graphik (SVG) PDF_EXPORT_FORMAT=Portables Dokumenten Format (PDF) IMG_EXPORT_FORMAT=Bilddatei (PNG/JPEG) -FREEMIND_EXPORT_FORMAT = Freemind (version 0.9.0) +FREEMIND_EXPORT_FORMAT_09 = Freemind (version 0.9.0) +FREEMIND_EXPORT_FORMAT = Freemind (version 1.0.1) WISEMAPPING_EXPORT_FORMAT = WiseMapping LAST_UPDATE=Zuletzt geändert LAST_UPDATE_BY=Zuletzt geändert von @@ -99,7 +100,7 @@ UNEXPECTED_ERROR=Outch!!. Ein unerwarteter Fehler ist aufgetreten. UNEXPECTED_ERROR_DETAILS=Es tut uns Leid! Es ist ein Fehler aufgetreten der es uns nicht ermöglicht Ihre Anfrage zu bearbeiten. Bitte versuchen Sie es noch einmal oder gehen Sie zur Anfangsseite. NO_ENOUGH_PERMISSIONS=Outch!!. Diese map ist nicht mehr verfügbar. NO_ENOUGH_PERMISSIONS_DETAILS=Sie haben nicht die erforderlichen Rechte, um sich diese map anzusehen. Diese map ist entweder privat oder wurde gelöscht. -IMPORT_MINDMAP_INFO=Sie können FreeMind 0.9 und WiseMapping maps in Ihre List von maps importieren. Wählen Sie die Datei zum Import. +IMPORT_MINDMAP_INFO=Sie können FreeMind 1.0.1 und WiseMapping maps in Ihre List von maps importieren. Wählen Sie die Datei zum Import. PRINT=Drucken IMPORT_MAP_ERROR=FreeMind Datei konnte nicht importiert werden. {0} MAP_TITLE_ALREADY_EXISTS=Sie haben schon eine map mit identischem Namen. diff --git a/wise-webapp/src/main/resources/messages_en.properties b/wise-webapp/src/main/resources/messages_en.properties index 0ce64939..1d5427f4 100644 --- a/wise-webapp/src/main/resources/messages_en.properties +++ b/wise-webapp/src/main/resources/messages_en.properties @@ -40,7 +40,8 @@ EXPORT=Export SVG_EXPORT_FORMAT=Scalable Vector Graphics (SVG) PDF_EXPORT_FORMAT=Portable Document Format (PDF) IMG_EXPORT_FORMAT=Image File (PNG/JPEG) -FREEMIND_EXPORT_FORMAT = Freemind (version 0.9.0) +FREEMIND_EXPORT_FORMAT_09 = Freemind (version 0.9.0) +FREEMIND_EXPORT_FORMAT = Freemind (version 1.0.1) WISEMAPPING_EXPORT_FORMAT = WiseMapping LAST_UPDATE=Last Update LAST_UPDATE_BY=Last Update By @@ -103,7 +104,7 @@ UNEXPECTED_ERROR_DETAILS=We're sorry, an error has occurred and we can't process UNEXPECTED_ERROR_SERVER_ERROR=We're sorry, an error has occurred and we can't process your request. Refresh the page and try again. If the problem persist, click below on "Raise An Issue" to open a ticket. NO_ENOUGH_PERMISSIONS=Outch!!. This map is not available anymore. NO_ENOUGH_PERMISSIONS_DETAILS=You do not have enough right access to see this map. This map has been changed to private or deleted. -IMPORT_MINDMAP_INFO=You can import FreeMind 0.9 and WiseMapping maps to your list of maps. Select the file you want to import. +IMPORT_MINDMAP_INFO=You can import FreeMind 1.0.1 and WiseMapping maps to your list of maps. Select the file you want to import. PRINT=Print IMPORT_MAP_ERROR=FreeMind file could not be imported. {0} MAP_TITLE_ALREADY_EXISTS=You have already a map with the same name diff --git a/wise-webapp/src/main/resources/messages_es.properties b/wise-webapp/src/main/resources/messages_es.properties index 596a3ddc..ac2848e3 100644 --- a/wise-webapp/src/main/resources/messages_es.properties +++ b/wise-webapp/src/main/resources/messages_es.properties @@ -35,7 +35,8 @@ EXPORT=Exportar SVG_EXPORT_FORMAT=Scalable Vector Graphics (SVG) PDF_EXPORT_FORMAT=Portable Document Format (PDF) IMG_EXPORT_FORMAT=Imagen (PNG/JPEG) -FREEMIND_EXPORT_FORMAT = Freemind (version 0.9.0) +FREEMIND_EXPORT_FORMAT_09 = Freemind (version 0.9.0) +FREEMIND_EXPORT_FORMAT = Freemind (version 1.0.1) DELETE=Borrar LOGIN_ERROR=El nombre de usuario o la contraseña introducidos no son correctos. USER_INACTIVE=Disculpe, su cuenta aun no ha sido activada. Usted recibirá una notificación por email tan pronto la activemos. @@ -66,7 +67,7 @@ ACCOUNT_DETAIL=Desea cambiar sus preferencias? Este es el lugar. SVG_EXPORT_FORMAT_DETAILS=Scalable Vector Graphics (SVG) es un XML markup language para describir gráficos vectoriale de dos dimensiones. Este formato le permitira imprimir sus mapas sin perdida de calidad o resolución. PDF_EXPORT_FORMAT_DETAILS=Obtenga su mapa como un documento (PDF) para compartirlo y usarlo en sus presentaciones. IMG_EXPORT_FORMAT_DETAILS=Obtenga una representación gráfica de su mapa incluyendo todo los colores y formas para reusarlo en documentos o para ser archivado -FREEMIND_EXPORT_FORMAT_DETAILS = FreeMind un aplicación de escritorio gratuita de diseno de mapas mentales +FREEMIND_EXPORT_FORMAT_DETAILS = FreeMind una aplicación de escritorio gratuita de diseño de mapas mentales TERMSOFUSE=Términos de uso PRIVACYPOLICY= Politica de privacidad EXPORT_DETAILS=Exporte el mapa en el formato que desee y comience a utilizarlo en sus presentaciones @@ -164,7 +165,7 @@ ADD_MESSAGE=Agregar un mensaje WHO_CAN_ACCESS=Quienes pueden acceder IS_OWNER=Es dueño OPTIONAL_CUSTOM_MESSAGE=Opcional\: Incluir un mensaje personalizado -IMPORT_MINDMAP_INFO=Es posible importar mapas en formato FreeMind 0.9 y WiseMapping. Seleccione el archivo a importar. +IMPORT_MINDMAP_INFO=Es posible importar mapas en formato FreeMind 1.0.1 y WiseMapping. Seleccione el archivo a importar. VIEW=ver YOU=Vos INFO_UPDATE_SUCCESS=Your info has been changed successfully diff --git a/wise-webapp/src/main/resources/messages_fr.properties b/wise-webapp/src/main/resources/messages_fr.properties index 37499b38..cab4963e 100644 --- a/wise-webapp/src/main/resources/messages_fr.properties +++ b/wise-webapp/src/main/resources/messages_fr.properties @@ -43,7 +43,8 @@ EXPORT=Exporter SVG_EXPORT_FORMAT=Scalable Vector Graphics (SVG) PDF_EXPORT_FORMAT=Portable Document Format (PDF) IMG_EXPORT_FORMAT=Fichier Graphique (PNG/JPEG) -FREEMIND_EXPORT_FORMAT = Freemind (version 0.9.0) +FREEMIND_EXPORT_FORMAT_09 = Freemind (version 0.9.0) +FREEMIND_EXPORT_FORMAT = Freemind (version 1.0.1) WISEMAPPING_EXPORT_FORMAT = WiseMapping LAST_UPDATE=Date dernière modification LAST_UPDATE_BY=Dernière modification par @@ -104,7 +105,7 @@ UNEXPECTED_ERROR=Aïe!!. Une erreur inattendue est survenue. UNEXPECTED_ERROR_DETAILS=Désolé, une erreur s'est produite et nous ne pouvons pas exécuter votre demande. Essayez à nouveau, ou retournez à la page d'accueil. NO_ENOUGH_PERMISSIONS=Aïe!!. Cette carte n'est plus accessible. NO_ENOUGH_PERMISSIONS_DETAILS=Vous n'avez pas les droits d'accès suffisants pour voir cette carte. Cette carte est devenue privée, ou a été détruite. -IMPORT_MINDMAP_INFO=Vous pouvez importer des cartes FreeMind 0.9 et WiseMapping dans votre liste de cartes. Choisissez le fichier à importer. +IMPORT_MINDMAP_INFO=Vous pouvez importer des cartes FreeMind 1.0.1 et WiseMapping dans votre liste de cartes. Choisissez le fichier à importer. PRINT=Imprimer IMPORT_MAP_ERROR=Le fichier FreeMind n'a pas pu être importé. {0} MAP_TITLE_ALREADY_EXISTS=Vous avez déjà une carte portant le même nom. diff --git a/wise-webapp/src/main/resources/messages_it.properties b/wise-webapp/src/main/resources/messages_it.properties index f1886328..44868599 100644 --- a/wise-webapp/src/main/resources/messages_it.properties +++ b/wise-webapp/src/main/resources/messages_it.properties @@ -38,7 +38,8 @@ EXPORT=Esporta SVG_EXPORT_FORMAT=Scalable Vector Graphics (SVG) PDF_EXPORT_FORMAT=Portable Document Format (PDF) IMG_EXPORT_FORMAT=File Immagine (PNG/JPEG) -FREEMIND_EXPORT_FORMAT = Freemind (versione 0.9.0) +FREEMIND_EXPORT_FORMAT_09 = Freemind (version 0.9.0) +FREEMIND_EXPORT_FORMAT = Freemind (version 1.0.1) WISEMAPPING_EXPORT_FORMAT = WiseMapping LAST_UPDATE=Ultimo Aggiornamento LAST_UPDATE_BY=Ultimo aggiornamento da @@ -99,7 +100,7 @@ UNEXPECTED_ERROR=Oops!! Si è verificato un errore inaspettato. UNEXPECTED_ERROR_DETAILS=Siamo spiacenti, si è verificato un errore e non possiamo procedere nella tua richiesta. Prego, provare più tardi o torna alla home page. NO_ENOUGH_PERMISSIONS=Oops!!. Questa mappa non è più disponibile. NO_ENOUGH_PERMISSIONS_DETAILS=Non hai sufficienti diritti per visualizzare questa mappa. Il suo stato è cambiato in Privato oppure è stata eliminata. -IMPORT_MINDMAP_INFO=Puoi importare mappe da FreeMind 0.9 e da WiseMapping sulla tua lista di mappe. Seleziona il file da importare. +IMPORT_MINDMAP_INFO=Puoi importare mappe da FreeMind 1.0.1 e da WiseMapping sulla tua lista di mappe. Seleziona il file da importare. PRINT=Stampa IMPORT_MAP_ERROR=Il file FreeMind non può essere importato. {0} MAP_TITLE_ALREADY_EXISTS=Esiste già una mappa con lo stesso nome diff --git a/wise-webapp/src/main/resources/messages_pt_BR.properties b/wise-webapp/src/main/resources/messages_pt_BR.properties index 0fcd3c98..b4d3b90d 100644 --- a/wise-webapp/src/main/resources/messages_pt_BR.properties +++ b/wise-webapp/src/main/resources/messages_pt_BR.properties @@ -36,7 +36,8 @@ EXPORT=Exportar SVG_EXPORT_FORMAT=Gráfico Vetorial Escalável (SVG) PDF_EXPORT_FORMAT=Formato de Documento Portável (PDF) IMG_EXPORT_FORMAT=Arquivo de Imagem (PNG/JPEG) -FREEMIND_EXPORT_FORMAT = Exportar para o Freemind (version 0.9.0) +FREEMIND_EXPORT_FORMAT_09 = Exportar para o Freemind (version 0.9.0) +FREEMIND_EXPORT_FORMAT = Exportar para o Freemind (version 1.0.1) WISEMAPPING_EXPORT_FORMAT = WiseMapping LAST_UPDATE=Última Atualização LAST_UPDATE_BY=Última Atualização @@ -97,7 +98,7 @@ UNEXPECTED_ERROR=Opa!!. Ocorreu um erro inesperado. UNEXPECTED_ERROR_DETAILS=Lamentamos, ocorreu um erro e não podemos processar a sua solicitação. Por favor, tente novamente ou vá para a página Inicial. NO_ENOUGH_PERMISSIONS=Opa!!. Este mapa não está mais disponível. NO_ENOUGH_PERMISSIONS_DETAILS=Você não tem privilégios suficientes para ver este mapa. Este mapa foi alterado para privado ou deletado. -IMPORT_MINDMAP_INFO=Você pode importar mapas do FreeMind 0.9 e do WiseMapping para sua lista de mapas. Selecione o arquivo que você quer importar. +IMPORT_MINDMAP_INFO=Você pode importar mapas do FreeMind 1.0.1 e do WiseMapping para sua lista de mapas. Selecione o arquivo que você quer importar. PRINT=Imprimir IMPORT_MAP_ERROR=O arquivo FreeMind não pode ser importado. {0} MAP_TITLE_ALREADY_EXISTS=Você já tem um mapa com o mesmo nome diff --git a/wise-webapp/src/main/resources/messages_zh_CN.properties b/wise-webapp/src/main/resources/messages_zh_CN.properties index d1ce031a..688c392f 100644 --- a/wise-webapp/src/main/resources/messages_zh_CN.properties +++ b/wise-webapp/src/main/resources/messages_zh_CN.properties @@ -99,7 +99,7 @@ UNEXPECTED_ERROR=晕!!不可预知的错误。 UNEXPECTED_ERROR_DETAILS=抱歉,突遭错误,我们无法处理你的请求。 请重试或者访问首页。 NO_ENOUGH_PERMISSIONS=晕!!此图不可访问。 NO_ENOUGH_PERMISSIONS_DETAILS=你没有权限访问这张图。此图已修改访问权限或者已删除。 -IMPORT_MINDMAP_INFO=你可以导入 FreeMind 0.9 和 WiseMapping 格式的思维导图。选择你想要导入的文件。 +IMPORT_MINDMAP_INFO=你可以导入 FreeMind 1.0.1 和 WiseMapping 格式的思维导图。选择你想要导入的文件。 PRINT=打印 IMPORT_MAP_ERROR=FreeMind 文件不能导入。 MAP_TITLE_ALREADY_EXISTS=已有同名称图 diff --git a/wise-webapp/src/main/resources/messages_zh_TW.properties b/wise-webapp/src/main/resources/messages_zh_TW.properties index 55845eb1..7b4441aa 100644 --- a/wise-webapp/src/main/resources/messages_zh_TW.properties +++ b/wise-webapp/src/main/resources/messages_zh_TW.properties @@ -38,7 +38,8 @@ EXPORT=導出 SVG_EXPORT_FORMAT=可縮放向量圖形(SVG) PDF_EXPORT_FORMAT=便攜檔格式(PDF) IMG_EXPORT_FORMAT=圖像檔(PNG/JPEG) -FREEMIND_EXPORT_FORMAT = Freemind (version 0.9.0) +FREEMIND_EXPORT_FORMAT_09 = Freemind (version 0.9.0) +FREEMIND_EXPORT_FORMAT = Freemind (version 1.0.1) WISEMAPPING_EXPORT_FORMAT = WiseMapping LAST_UPDATE=最近更新 LAST_UPDATE_BY=最近更新者 @@ -99,7 +100,7 @@ UNEXPECTED_ERROR=暈!!不可預知的錯誤。 UNEXPECTED_ERROR_DETAILS=抱歉,突遭錯誤,我們無法處理你的請求。 請重試或者訪問首頁。 NO_ENOUGH_PERMISSIONS=暈!!此圖不可訪問。 NO_ENOUGH_PERMISSIONS_DETAILS=你沒有許可權訪問這張圖。此圖已修改訪問許可權或者已刪除。 -IMPORT_MINDMAP_INFO=你可以導入 FreeMind 0.9 和 WiseMapping 格式的思維導圖。選擇你想要導入的檔。 +IMPORT_MINDMAP_INFO=你可以導入 FreeMind 1.0.1 和 WiseMapping 格式的思維導圖。選擇你想要導入的檔。 PRINT=列印 IMPORT_MAP_ERROR=FreeMind 檔不能導入。 MAP_TITLE_ALREADY_EXISTS=已有同名稱圖 diff --git a/wise-webapp/src/main/webapp/jsp/iframeWrapper.jsp b/wise-webapp/src/main/webapp/jsp/iframeWrapper.jsp index efca321f..d240fb4c 100644 --- a/wise-webapp/src/main/webapp/jsp/iframeWrapper.jsp +++ b/wise-webapp/src/main/webapp/jsp/iframeWrapper.jsp @@ -26,6 +26,7 @@ var svgXml = context.method == "POST" ? window.document.getElementById('workspaceContainer').innerHTML : ""; $('svgXml').setAttribute('value', svgXml); $('download').setAttribute('value', context.formatType); + $('version').setAttribute('value', context.version); iframeForm.submit(); } if (MooDialog.Request.active) { @@ -44,4 +45,5 @@ enctype="application/x-www-form-urlencoded" id="iframeExportForm"> + \ No newline at end of file diff --git a/wise-webapp/src/main/webapp/jsp/mindmapExport.jsp b/wise-webapp/src/main/webapp/jsp/mindmapExport.jsp index 7b3dbd8d..8e8cf57c 100644 --- a/wise-webapp/src/main/webapp/jsp/mindmapExport.jsp +++ b/wise-webapp/src/main/webapp/jsp/mindmapExport.jsp @@ -10,11 +10,17 @@ enctype="application/x-www-form-urlencoded" id="dialogMainForm"> +
    + + @@ -87,7 +93,7 @@ // No way to obtain map svg. Hide panels.. if (window.location.pathname.indexOf('exportf') != -1) { $('#exportInfo').hide(); - $('#freemind,#pdf,#svg,#odt,#txt,#xls,#mmap').click('click', function (event) { + $('#freemind,#freemind09,#pdf,#svg,#odt,#txt,#xls,#mmap').click('click', function (event) { $('#imgFormat').hide(); }); @@ -103,7 +109,6 @@ // If the map is opened, use the latest model ... var formatType = $('#dialogMainForm input:checked').attr('value'); var form = $('#dialogMainForm'); - // Restore default .. form.attr('action', 'c/restful/maps/${mindmap.id}.' + formatType); @@ -123,6 +128,11 @@ } + var version = $('#dialogMainForm input:checked').attr('version'); + if (version) { + $('#dialogMainForm input[name=version]').attr('value', version); + } + $('#dialogMainForm input[name=download]').attr('value', formatType); if (!differ) { form.submit(); @@ -131,7 +141,7 @@ // Close dialog ... $('#export-dialog-modal').modal('hide'); - return {"action":form.attr('action'), "method":form.attr('method'), formatType:formatType}; + return {"action":form.attr('action'), "method":form.attr('method'), "formatType":formatType, "version": version}; } \ No newline at end of file From 2a121f91d2a48773e0fcd028279093c929feb191 Mon Sep 17 00:00:00 2001 From: Claudio Barril Date: Sun, 7 Sep 2014 16:10:06 -0300 Subject: [PATCH 44/57] fix vertical order when export to freemind versions. --- .../wisemapping/exporter/FreemindExporter.java | 2 ++ .../exporter/VerticalPositionComparator.java | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 wise-webapp/src/main/java/com/wisemapping/exporter/VerticalPositionComparator.java diff --git a/wise-webapp/src/main/java/com/wisemapping/exporter/FreemindExporter.java b/wise-webapp/src/main/java/com/wisemapping/exporter/FreemindExporter.java index 29dc8c15..fdc9d7b1 100755 --- a/wise-webapp/src/main/java/com/wisemapping/exporter/FreemindExporter.java +++ b/wise-webapp/src/main/java/com/wisemapping/exporter/FreemindExporter.java @@ -42,6 +42,7 @@ import java.io.OutputStream; import java.io.ByteArrayInputStream; import java.io.UnsupportedEncodingException; import java.math.BigInteger; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -136,6 +137,7 @@ public class FreemindExporter private void addNodeFromTopic(@NotNull final TopicType mainTopic, @NotNull final Node destNode) throws IOException, SAXException, ParserConfigurationException { final List currentTopic = mainTopic.getTopic(); + Collections.sort(currentTopic, new VerticalPositionComparator()); for (TopicType topicType : currentTopic) { final Node newNode = objectFactory.createNode(); nodesMap.put(topicType.getId(), newNode); diff --git a/wise-webapp/src/main/java/com/wisemapping/exporter/VerticalPositionComparator.java b/wise-webapp/src/main/java/com/wisemapping/exporter/VerticalPositionComparator.java new file mode 100644 index 00000000..ccac4dd2 --- /dev/null +++ b/wise-webapp/src/main/java/com/wisemapping/exporter/VerticalPositionComparator.java @@ -0,0 +1,18 @@ +package com.wisemapping.exporter; + +import com.wisemapping.jaxb.wisemap.TopicType; + +import java.util.Comparator; + +public class VerticalPositionComparator implements Comparator { + + @Override + public int compare(TopicType o1, TopicType o2) { + final String myPosition = o1.getPosition(); + final String otherPosition = o2.getPosition(); + int myPositionY = Integer.parseInt(myPosition.split(",")[1]); + int otherPositionY = Integer.parseInt(otherPosition.split(",")[1]); + return myPositionY - otherPositionY; + } + +} From bf5ae3b0dee371e88bb2dd8cde3408821f5aeba8 Mon Sep 17 00:00:00 2001 From: Claudio Barril Date: Sun, 7 Sep 2014 16:58:14 -0300 Subject: [PATCH 45/57] hack fix for relationships when import/export for freemind --- .../main/java/com/wisemapping/exporter/FreemindExporter.java | 5 +++-- .../com/wisemapping/importer/freemind/FreemindImporter.java | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/wise-webapp/src/main/java/com/wisemapping/exporter/FreemindExporter.java b/wise-webapp/src/main/java/com/wisemapping/exporter/FreemindExporter.java index fdc9d7b1..f9f59bc5 100755 --- a/wise-webapp/src/main/java/com/wisemapping/exporter/FreemindExporter.java +++ b/wise-webapp/src/main/java/com/wisemapping/exporter/FreemindExporter.java @@ -99,8 +99,9 @@ public class FreemindExporter final List relationships = mindmapMap.getRelationship(); for (RelationshipType relationship : relationships) { - Node srcNode = nodesMap.get(relationship.getSrcTopicId()); - Node dstNode = nodesMap.get(relationship.getDestTopicId()); + // FIXME:invert srcNode and dstNode to correct a bug in the wise mind map representation + Node srcNode = nodesMap.get(relationship.getDestTopicId()); + Node dstNode = nodesMap.get(relationship.getSrcTopicId()); // Workaround for nodes without relationship associated ... diff --git a/wise-webapp/src/main/java/com/wisemapping/importer/freemind/FreemindImporter.java b/wise-webapp/src/main/java/com/wisemapping/importer/freemind/FreemindImporter.java index c02676a5..ce8a24cd 100755 --- a/wise-webapp/src/main/java/com/wisemapping/importer/freemind/FreemindImporter.java +++ b/wise-webapp/src/main/java/com/wisemapping/importer/freemind/FreemindImporter.java @@ -322,8 +322,9 @@ public class FreemindImporter final Arrowlink arrow = (Arrowlink) element; RelationshipType relt = mindmapObjectFactory.createRelationshipType(); String destId = arrow.getDESTINATION(); - relt.setSrcTopicId(freeParent.getID()); - relt.setDestTopicId(destId); + // FIXME: invert srcTopic and dstTopic to correct a bug in the wise mind map representation + relt.setSrcTopicId(destId); + relt.setDestTopicId(freeParent.getID()); final String endinclination = arrow.getENDINCLINATION(); if (endinclination != null) { String[] inclination = endinclination.split(";"); From 37b2cc7466e3bc0edf418f05e3a7ec4d9d381bec Mon Sep 17 00:00:00 2001 From: Claudio Barril Date: Sun, 7 Sep 2014 18:51:19 -0300 Subject: [PATCH 46/57] remove console printing for debugging --- wise-webapp/src/main/webapp/jsp/mindmapImport.jsp | 1 - 1 file changed, 1 deletion(-) diff --git a/wise-webapp/src/main/webapp/jsp/mindmapImport.jsp b/wise-webapp/src/main/webapp/jsp/mindmapImport.jsp index b6345cf9..1802eee9 100644 --- a/wise-webapp/src/main/webapp/jsp/mindmapImport.jsp +++ b/wise-webapp/src/main/webapp/jsp/mindmapImport.jsp @@ -53,7 +53,6 @@ description = description == undefined ? "" : description; var onSuccess = function (data, textStatus, jqXHR) { - console.log('hola'); var resourceId = data.getResponseHeader("ResourceId"); window.location = "c/maps/" + resourceId + "/edit"; }; From 72ee23849f8730f895ed79297775d0ff6257ab81 Mon Sep 17 00:00:00 2001 From: Claudio Barril Date: Sun, 7 Sep 2014 20:16:09 -0300 Subject: [PATCH 47/57] considering possibility of null positions --- .../exporter/VerticalPositionComparator.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/wise-webapp/src/main/java/com/wisemapping/exporter/VerticalPositionComparator.java b/wise-webapp/src/main/java/com/wisemapping/exporter/VerticalPositionComparator.java index ccac4dd2..dfda0adc 100644 --- a/wise-webapp/src/main/java/com/wisemapping/exporter/VerticalPositionComparator.java +++ b/wise-webapp/src/main/java/com/wisemapping/exporter/VerticalPositionComparator.java @@ -10,9 +10,17 @@ public class VerticalPositionComparator implements Comparator { public int compare(TopicType o1, TopicType o2) { final String myPosition = o1.getPosition(); final String otherPosition = o2.getPosition(); - int myPositionY = Integer.parseInt(myPosition.split(",")[1]); - int otherPositionY = Integer.parseInt(otherPosition.split(",")[1]); - return myPositionY - otherPositionY; + int result; + if (otherPosition == null) { + result = -1; + } else if (myPosition == null) { + result = 1; + } else { + int myPositionY = Integer.parseInt(myPosition.split(",")[1]); + int otherPositionY = Integer.parseInt(otherPosition.split(",")[1]); + result = myPositionY - otherPositionY; + } + return result; } } From 01071a9236fc46936d8cf71a3327c311a411bf93 Mon Sep 17 00:00:00 2001 From: Claudio Barril Date: Sun, 7 Sep 2014 20:16:23 -0300 Subject: [PATCH 48/57] setting default version for freemind export --- .../main/java/com/wisemapping/exporter/FreemindExporter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wise-webapp/src/main/java/com/wisemapping/exporter/FreemindExporter.java b/wise-webapp/src/main/java/com/wisemapping/exporter/FreemindExporter.java index f9f59bc5..30850b4c 100755 --- a/wise-webapp/src/main/java/com/wisemapping/exporter/FreemindExporter.java +++ b/wise-webapp/src/main/java/com/wisemapping/exporter/FreemindExporter.java @@ -55,7 +55,7 @@ public class FreemindExporter private com.wisemapping.jaxb.freemind.ObjectFactory objectFactory; private static final String EMPTY_FONT_STYLE = ";;;;;"; private Map nodesMap = null; - private String version; + private String version = "1.0.1"; public void export(Mindmap map, OutputStream outputStream) throws ExportException { export(map.getUnzipXml(), outputStream); From 68b8428439b875e8b9689c7ec7da21c1caa9a9e1 Mon Sep 17 00:00:00 2001 From: Claudio Barril Date: Sun, 7 Sep 2014 20:20:03 -0300 Subject: [PATCH 49/57] fixing files to test export --- .../src/test/resources/data/export/bigmap.csv | 1348 ++++----- .../src/test/resources/data/export/bigmap.doc | 2680 ++++++++--------- .../test/resources/data/export/bigmap.latex | 450 +-- .../src/test/resources/data/export/bigmap.mm | 480 +-- .../test/resources/data/export/bigmap.mmap | 2 +- .../src/test/resources/data/export/bigmap.odt | 366 +-- .../src/test/resources/data/export/bigmap.txt | 380 +-- .../src/test/resources/data/export/bigmap.xls | 1672 +++++----- .../src/test/resources/data/export/bug2.csv | 94 +- .../src/test/resources/data/export/bug2.doc | 410 +-- .../src/test/resources/data/export/bug2.latex | 40 +- .../src/test/resources/data/export/bug2.mm | 60 +- .../src/test/resources/data/export/bug2.mmap | 2 +- .../src/test/resources/data/export/bug2.odt | 52 +- .../src/test/resources/data/export/bug2.txt | 60 +- .../src/test/resources/data/export/bug2.xls | 210 +- .../src/test/resources/data/export/bug3.csv | 32 +- .../src/test/resources/data/export/bug3.doc | 100 +- .../src/test/resources/data/export/bug3.latex | 12 +- .../src/test/resources/data/export/bug3.mm | 23 +- .../src/test/resources/data/export/bug3.mmap | 2 +- .../src/test/resources/data/export/bug3.odt | 10 +- .../src/test/resources/data/export/bug3.txt | 80 +- .../src/test/resources/data/export/bug3.xls | 50 +- .../resources/data/export/cdata-support.mm | 2 +- .../test/resources/data/export/complex.csv | 32 +- .../test/resources/data/export/complex.doc | 108 +- .../test/resources/data/export/complex.latex | 18 +- .../src/test/resources/data/export/complex.mm | 34 +- .../test/resources/data/export/complex.mmap | 2 +- .../test/resources/data/export/complex.odt | 16 +- .../test/resources/data/export/complex.txt | 30 +- .../test/resources/data/export/complex.xls | 58 +- .../test/resources/data/export/emptyNodes.mm | 2 +- .../src/test/resources/data/export/enc.csv | 82 +- .../src/test/resources/data/export/enc.doc | 280 +- .../src/test/resources/data/export/enc.latex | 30 +- .../src/test/resources/data/export/enc.mm | 214 +- .../src/test/resources/data/export/enc.mmap | 2 +- .../src/test/resources/data/export/enc.odt | 28 +- .../src/test/resources/data/export/enc.txt | 32 +- .../src/test/resources/data/export/enc.xls | 190 +- .../src/test/resources/data/export/huge.csv | 1360 ++++----- .../src/test/resources/data/export/huge.doc | 2628 ++++++++-------- .../src/test/resources/data/export/huge.latex | 458 +-- .../src/test/resources/data/export/huge.mm | 540 ++-- .../src/test/resources/data/export/huge.mmap | 2 +- .../src/test/resources/data/export/huge.odt | 368 +-- .../src/test/resources/data/export/huge.txt | 402 +-- .../src/test/resources/data/export/huge.xls | 1428 ++++----- .../src/test/resources/data/export/i18n.mm | 2 +- .../src/test/resources/data/export/i18n2.mm | 2 +- .../src/test/resources/data/export/issue.csv | 46 +- .../src/test/resources/data/export/issue.doc | 140 +- .../test/resources/data/export/issue.latex | 14 +- .../src/test/resources/data/export/issue.mm | 144 +- .../src/test/resources/data/export/issue.mmap | 2 +- .../src/test/resources/data/export/issue.odt | 14 +- .../src/test/resources/data/export/issue.txt | 28 +- .../src/test/resources/data/export/issue.xls | 96 +- .../test/resources/data/export/longnodes.mm | 2 +- .../src/test/resources/data/export/npe.mm | 2 +- .../test/resources/data/export/process.csv | 116 +- .../test/resources/data/export/process.doc | 380 +-- .../test/resources/data/export/process.latex | 38 +- .../src/test/resources/data/export/process.mm | 63 +- .../test/resources/data/export/process.mmap | 2 +- .../test/resources/data/export/process.odt | 38 +- .../test/resources/data/export/process.txt | 80 +- .../test/resources/data/export/process.xls | 190 +- .../test/resources/data/export/sample2.csv | 18 +- .../test/resources/data/export/sample2.doc | 48 +- .../test/resources/data/export/sample2.latex | 10 +- .../src/test/resources/data/export/sample2.mm | 12 +- .../test/resources/data/export/sample2.mmap | 2 +- .../test/resources/data/export/sample2.odt | 8 +- .../test/resources/data/export/sample2.txt | 16 +- .../test/resources/data/export/sample2.xls | 28 +- .../src/test/resources/data/export/sample3.mm | 2 +- .../src/test/resources/data/export/sample4.mm | 2 +- .../resources/data/export/simple-maps.latex | 4 +- .../test/resources/data/export/simple-maps.mm | 4 +- .../resources/data/export/simple-maps.mmap | 2 +- .../resources/data/export/simple-maps.txt | 4 +- .../data/export/welcome-reloaded.csv | 6 +- .../data/export/welcome-reloaded.doc | 20 +- .../data/export/welcome-reloaded.latex | 2 +- .../resources/data/export/welcome-reloaded.mm | 4 +- .../data/export/welcome-reloaded.mmap | 2 +- .../data/export/welcome-reloaded.odt | 2 +- .../data/export/welcome-reloaded.txt | 6 +- .../data/export/welcome-reloaded.xls | 10 +- .../src/test/resources/data/export/welcome.mm | 2 +- .../test/resources/data/freemind/basic.mmr | 2 +- .../src/test/resources/data/freemind/bug.mmr | 2 +- .../test/resources/data/freemind/fonts.mmr | 2 +- .../src/test/resources/data/freemind/i18n.mmr | 2 +- .../test/resources/data/freemind/i18n2.mmr | 2 +- .../test/resources/data/freemind/icons.mmr | 2 +- .../test/resources/data/freemind/links.mmr | 2 +- .../resources/data/freemind/longnodes.mmr | 2 +- .../resources/data/freemind/node-styles.mmr | 30 +- .../src/test/resources/data/freemind/note.mmr | 2 +- .../resources/data/freemind/numerosity.mmr | 20 +- .../resources/data/freemind/numerosity.wxml | 2 +- .../test/resources/data/freemind/process.mmr | 54 +- .../test/resources/data/freemind/process.wxml | 4 +- .../resources/data/freemind/richtextnode.mmr | 2 +- 108 files changed, 9353 insertions(+), 9351 deletions(-) diff --git a/wise-webapp/src/test/resources/data/export/bigmap.csv b/wise-webapp/src/test/resources/data/export/bigmap.csv index fd9d2343..3ff5e552 100644 --- a/wise-webapp/src/test/resources/data/export/bigmap.csv +++ b/wise-webapp/src/test/resources/data/export/bigmap.csv @@ -1,601 +1,105 @@ corona -, - Modelo in world -, - , - International market protected Modelo from unstable peso -, - , - Fifth largest distributor in world -, - , - , - Can they sustain that trend -, - , - , - in 12 years -, - , - One of top 10 breweries in world -, - Carloz Fernandez CEO -, - , - CEO Since 1997 -, - , - , - 29 years old -, - , - , - , - working there since 13 -, - , - vision: top five brewers -, - , - , - International Business model -, - , - , - , - experienced local distributors -, - , - , - , - Growing international demand -, - , - , - , - Capitalize on NAFTA -, - , - , - top 10 beer producers in world -, - , - , - , - 7.8 % sales growth compounded over ten years -, - , - , - , - 2005 -, - , - , - , - , - 12.3 % exports -, - , - , - , - , - 4% increase domestically -, - , - , - , - , - export sales 30% -, - , - , - , - Corona Extra -, - , - , - , - , - worlds fourth best selling beer -, - , - , - , - , - 56% shar of domestic market -, - , - , - , - , - Since 1997 #1 import in US -, - , - , - , - , - , - outsold competitor by 50% -, - , - Expanding production -, - , - , - renovate facility in Zacatecas -, - , - , - 300 million investment -, - US Beer Market -, - , - 2nd largest nest to China -, - , - Consumption six times higher per cap -, - , - Groth expectations reduced -, - , - 80% of market -, - , - , - AB -, - , - , - , - 75% of industry profits -, - , - , - adolf coors -, - , - , - Miller -, - , - dense network of regional craft brewing -, - , - volume main driver -, - Modelo in Mexico -, - , - History to 1970 -, - , - , - formed in 1922 -, - , - , - , - Pablo Diez Fernandez, Braulio Irare, Marin Oyamburr -, - , - , - , - Iriarte died in 1932 -, - , - , - , - Diez sole owner 1936 -, - , - , - , - Fernandez Family Sole owner since 1936 -, - , - , - focus on Mexico City -, - , - , - Modelo 1st Brand -, - , - , - Corona 2nd Brand -, - , - , - , - Clear Glass Customers preference -, - , - , - 1940s period of strong growth -, - , - , - , - concentrate domesti¬cally -, - , - , - , - improve distribution methods and produc¬tion facilities -, - , - , - , - , - distribution: direct with profit sharing -, - , - , - bought the brands and assets of the Toluca y Mexico Brewery -, - , - , - , - 1935 -, - , - , - , - country's oldest brand of beer -, - , - 1971, Antonino Fernandez was appointed CEO -, - , - , - Mexican Stock exchange in 1994 -, - , - , - Anheuser-Busch 17.7 % of the equity -, - , - , - , - The 50.2 % represented 43.9% voting -, - , - Largest Beer producer and distrubutor in Mexico -, - , - , - corona 56% share -, - Modelo in US -, - , - History -, - , - , - 1979 -, - , - , - Amalgamated Distillery Products Inc. ( -, - , - , - , - later renamed Barton Beers Ltd. -, - , - , - gained popularity in southern states -, - , - , - rapid growth 1980s -, - , - , - , - second most popular imported beer -, - , - , - 1991 -, - , - , - , - doubling of federal excise tax on beer -, - , - , - , - , - sales decrease of 15 percent -, - , - , - , - , - distributor absorb the tax 92 -, - , - , - , - distributors took the loss -, - , - 2007 5 beers to us -, - , - , - 3 of top 8 beers in US -, - , - , - Heineken -, - , - , - , - Main Import Comptitor -, - , - , - 131 million cases -, - , - Marketing -, - , - , - surfing mythology -, - , - , - not selling premium quality -, - , - , - not testosterone driven -, - , - , - found new following -, - , - , - beer for non beer drinkers -, - , - , - dependable second choise -, - , - , - Fun in the sun -, - , - , - , - Barton Beer's idea -, - , - , - , - escape -, - , - , - , - relaxation -, - , - , - 1996ad budget -, - , - , - , - Corona 5.1 mil -, - , - , - , - Heiniken 15 mil -, - , - , - , - an bsch 192 mil -, - , - Us dist contracts -, - , - , - importer/distributors -, - , - , - , - Local Companies -, - , - , - , - Autonomous -, - , - , - , - competitive relationship -, - , - , - , - transportation -, - , - , - , - insurance -, - , - , - , - pricing -, - , - , - , - customs -, - , - , - , - advertixing -, - , - , - procermex inc -, - , - , - , - Modelo us subsidiary -, - , - , - , - Support -, - , - , - , - Supervise -, - , - , - , - Coordinate -, - , - , - Modelo had final say on brand image -, - , - , - production in Mexico -, - , - , - Chicago based Barton Beers 1st -, - , - , - , - largest importer in 25 western states -, - , - , - Gambrinus -, - , - , - , - 1986 -, - , - , - , - eastern dist , The Beer market , , - traditionally a clustered market -, - , - many local breweries -, - , - no means of transport -, - , - colsolition happened in 1800s -, - , - different countries had different tastes -, - , - 90s national leaders expanded abroad -, - , - startup costs high + Future , , , - industry supported conectration -, - , - Interbrew + Sales were decreasing due to competitive media budgets , , , - Belgian -, - , - , - aquired breweries in 20 countries -, - , - , - sales in 110 countries -, - , - , - local managers controlling brands -, - , - , - flagship brand: Stella Artois -, - , - 2004 merger -, - , - , - #1 Interbrew -, - , - , - #5 Am Bev - Brazil -, - , - , - largest merge + Inbev in talks with Anh Bush , , , , - worth 12.8 billion + Two biggest companies will create huge company +, + , + , + other merger talks +, + , + , + domestic and foreign threats +, + , + Beer Marketing +, + , + , + People drink marketing , , 2007 , , , - inbev + Anh Bush , , , - SAP Miller + , + produces in foreign markets , , , Heineken +, + , + , + , + Dutch +, + , + , + , + reputation of top selling beer in world +, + , + , + , + marketing +, + , + , + , + , + 2006 aggressive marketing campaign +, + , + , + , + , + , + Heineken Premium Light +, + , + , + , + , + superior taste +, + , + , + , + , + no mythology +, + , + , + , + , + premium brand +, + , + , + , + , + premium beer , , , @@ -613,7 +117,7 @@ corona , , , - marketing + distribution , , , @@ -632,11 +136,6 @@ corona , , , - , - , - , - distribution -, , , , @@ -644,119 +143,243 @@ corona , , , + SAP Miller +, , , - premium beer + inbev +, + , + 2004 merger +, + , + , + largest merge +, + , + , + , + worth 12.8 billion +, + , + , + #5 Am Bev - Brazil +, + , + , + #1 Interbrew +, + , + Interbrew +, + , + , + flagship brand: Stella Artois +, + , + , + local managers controlling brands +, + , + , + sales in 110 countries +, + , + , + aquired breweries in 20 countries +, + , + , + Belgian +, + , + startup costs high +, + , + , + industry supported conectration +, + , + 90s national leaders expanded abroad +, + , + different countries had different tastes +, + , + colsolition happened in 1800s +, + , + no means of transport +, + , + many local breweries +, + , + traditionally a clustered market +, + Carloz Fernandez CEO +, + , + Expanding production +, + , + , + 300 million investment +, + , + , + renovate facility in Zacatecas +, + , + vision: top five brewers +, + , + , + top 10 beer producers in world +, + , + , + , + Corona Extra , , , , , - premium brand -, - , - , - , - , - no mythology -, - , - , - , - , - superior taste -, - , - , - , - , - 2006 aggressive marketing campaign + Since 1997 #1 import in US , , , , , , - Heineken Premium Light + outsold competitor by 50% , , , , - reputation of top selling beer in world + , + 56% shar of domestic market , , , , - Dutch -, , - , - Anh Bush + worlds fourth best selling beer , , , , - produces in foreign markets -, - , - Beer Marketing -, - , - , - People drink marketing -, - , - Future -, - , - , - domestic and foreign threats -, - , - , - other merger talks -, - , - , - Inbev in talks with Anh Bush + 2005 , , , , - Two biggest companies will create huge company + , + export sales 30% , , , - Sales were decreasing due to competitive media budgets + , + , + 4% increase domestically +, + , + , + , + , + 12.3 % exports +, + , + , + , + 7.8 % sales growth compounded over ten years +, + , + , + International Business model +, + , + , + , + Capitalize on NAFTA +, + , + , + , + Growing international demand +, + , + , + , + experienced local distributors +, + , + CEO Since 1997 +, + , + , + 29 years old +, + , + , + , + working there since 13 +, + Modelo in world +, + , + One of top 10 breweries in world +, + , + Fifth largest distributor in world +, + , + , + in 12 years +, + , + , + Can they sustain that trend +, + , + International market protected Modelo from unstable peso , Mexico Industry -, - , - has most trade agreements in world -, - , - one of the largest domestic beer markets -, - , - imported beer only 1% sales -, - , - , - half were anh bcsh dist by modelo -, - , - modelo -, - , - , - NAFTA S.A. An Bucsh -, - , - , - 62.8% of market , , FEMSA +, + , + , + foriegn market +, + , + , + , + Recently partnered with Heiniken for US market +, + , + , + , + , + 2005 18.7% growth +, + , + , + , + 90s entry to us market failed +, + , + , + , + Partnership Heiniken +, + , + , + , + , + Distribution in US , , , @@ -765,12 +388,23 @@ corona , , , - 37% of domestic market + NAFTA SACoca cola , , , , - production and distribution in Mexico: peso not a threat + , + Exclusive distributor +, + , + , + , + 997 to 2004 taking domestic market share +, + , + , + , + leads domestic premium beer market , , , @@ -786,51 +420,417 @@ corona , , , - leads domestic premium beer market + production and distribution in Mexico: peso not a threat , , , , - 997 to 2004 taking domestic market share + 37% of domestic market +, + , + modelo +, + , + , + 62.8% of market +, + , + , + NAFTA S.A. An Bucsh +, + , + imported beer only 1% sales +, + , + , + half were anh bcsh dist by modelo +, + , + one of the largest domestic beer markets +, + , + has most trade agreements in world +, + Modelo in Mexico +, + , + Largest Beer producer and distrubutor in Mexico +, + , + , + corona 56% share +, + , + 1971, Antonino Fernandez was appointed CEO +, + , + , + Anheuser-Busch 17.7 % of the equity , , , , - NAFTA SACoca cola + The 50.2 % represented 43.9% voting +, + , + , + Mexican Stock exchange in 1994 +, + , + History to 1970 +, + , + , + bought the brands and assets of the Toluca y Mexico Brewery +, + , + , + , + country's oldest brand of beer +, + , + , + , + 1935 +, + , + , + 1940s period of strong growth +, + , + , + , + improve distribution methods and produc¬tion facilities , , , , , - Exclusive distributor -, - , - , - foriegn market + distribution: direct with profit sharing , , , , - Partnership Heiniken + concentrate domesti¬cally +, + , + , + Corona 2nd Brand +, + , + , + , + Clear Glass Customers preference +, + , + , + Modelo 1st Brand +, + , + , + focus on Mexico City +, + , + , + formed in 1922 +, + , + , + , + Fernandez Family Sole owner since 1936 +, + , + , + , + Diez sole owner 1936 +, + , + , + , + Iriarte died in 1932 +, + , + , + , + Pablo Diez Fernandez, Braulio Irare, Marin Oyamburr +, + US Beer Market +, + , + volume main driver +, + , + dense network of regional craft brewing +, + , + 80% of market +, + , + , + Miller +, + , + , + adolf coors +, + , + , + AB +, + , + , + , + 75% of industry profits +, + , + Groth expectations reduced +, + , + Consumption six times higher per cap +, + , + 2nd largest nest to China +, + Modelo in US +, + , + Us dist contracts +, + , + , + Gambrinus +, + , + , + , + eastern dist +, + , + , + , + 1986 +, + , + , + Chicago based Barton Beers 1st +, + , + , + , + largest importer in 25 western states +, + , + , + production in Mexico +, + , + , + Modelo had final say on brand image +, + , + , + procermex inc +, + , + , + , + Coordinate +, + , + , + , + Supervise +, + , + , + , + Support +, + , + , + , + Modelo us subsidiary +, + , + , + importer/distributors +, + , + , + , + advertixing +, + , + , + , + customs +, + , + , + , + pricing +, + , + , + , + insurance +, + , + , + , + transportation +, + , + , + , + competitive relationship +, + , + , + , + Autonomous +, + , + , + , + Local Companies +, + , + Marketing +, + , + , + 1996ad budget +, + , + , + , + an bsch 192 mil +, + , + , + , + Heiniken 15 mil +, + , + , + , + Corona 5.1 mil +, + , + , + Fun in the sun +, + , + , + , + relaxation +, + , + , + , + escape +, + , + , + , + Barton Beer's idea +, + , + , + dependable second choise +, + , + , + beer for non beer drinkers +, + , + , + found new following +, + , + , + not testosterone driven +, + , + , + not selling premium quality +, + , + , + surfing mythology +, + , + 2007 5 beers to us +, + , + , + 131 million cases +, + , + , + Heineken +, + , + , + , + Main Import Comptitor +, + , + , + 3 of top 8 beers in US +, + , + History +, + , + , + 1991 +, + , + , + , + distributors took the loss +, + , + , + , + doubling of federal excise tax on beer , , , , , - Distribution in US -, - , - , - , - 90s entry to us market failed -, - , - , - , - Recently partnered with Heiniken for US market + distributor absorb the tax 92 , , , , , - 2005 18.7% growth + sales decrease of 15 percent +, + , + , + rapid growth 1980s +, + , + , + , + second most popular imported beer +, + , + , + gained popularity in southern states +, + , + , + Amalgamated Distillery Products Inc. ( +, + , + , + , + later renamed Barton Beers Ltd. +, + , + , + 1979 diff --git a/wise-webapp/src/test/resources/data/export/bigmap.doc b/wise-webapp/src/test/resources/data/export/bigmap.doc index 25bc30b8..debdbe7d 100644 --- a/wise-webapp/src/test/resources/data/export/bigmap.doc +++ b/wise-webapp/src/test/resources/data/export/bigmap.doc @@ -267,7 +267,7 @@ -Modelo in world +The Beer market @@ -276,17 +276,7 @@ -International market protected Modelo from unstable peso - - - - - - - - - -Fifth largest distributor in world +Future @@ -295,7 +285,7 @@ -Can they sustain that trend +Sales were decreasing due to competitive media budgets @@ -305,7 +295,37 @@ -in 12 years +Inbev in talks with Anh Bush + + + + + + + + +Two biggest companies will create huge company + + + + + + + + + + +other merger talks + + + + + + + + + +domestic and foreign threats @@ -316,7 +336,395 @@ -One of top 10 breweries in world +Beer Marketing + + + + + + + + +People drink marketing + + + + + + + + + + +2007 + + + + + + + + +Anh Bush + + + + + + + + +produces in foreign markets + + + + + + + + + + +Heineken + + + + + + + + +Dutch + + + + + + + + + +reputation of top selling beer in world + + + + + + + + + +marketing + + + + + + + +2006 aggressive marketing campaign + + + + + + + +Heineken Premium Light + + + + + + + +superior taste + + + + + + + +no mythology + + + + + + + +premium brand + + + + + + + +premium beer + + + + + + + + + +produces beer domestically + + + + + + + +parent of local distributors + + + + + + + +distribution + + + + + + + +importing + + + + + + + +import taxes passed on to consumer + + + + + + + +marketing + + + + + + + + + + +SAP Miller + + + + + + + + + +inbev + + + + + + + + + + +2004 merger + + + + + + + + +largest merge + + + + + + + + +worth 12.8 billion + + + + + + + + + + +#5 Am Bev - Brazil + + + + + + + + + +#1 Interbrew + + + + + + + + + + +Interbrew + + + + + + + + +flagship brand: Stella Artois + + + + + + + + + +local managers controlling brands + + + + + + + + + +sales in 110 countries + + + + + + + + + +aquired breweries in 20 countries + + + + + + + + + +Belgian + + + + + + + + + + +startup costs high + + + + + + + + +industry supported conectration + + + + + + + + + + +90s national leaders expanded abroad + + + + + + + + + +different countries had different tastes + + + + + + + + + +colsolition happened in 1800s + + + + + + + + + +no means of transport + + + + + + + + + +many local breweries + + + + + + + + + +traditionally a clustered market @@ -336,6 +744,182 @@ +Expanding production + + + + + + + + +300 million investment + + + + + + + + + +renovate facility in Zacatecas + + + + + + + + + + +vision: top five brewers + + + + + + + + +top 10 beer producers in world + + + + + + + + +Corona Extra + + + + + + + +Since 1997 #1 import in US + + + + + + + +outsold competitor by 50% + + + + + + + +56% shar of domestic market + + + + + + + +worlds fourth best selling beer + + + + + + + + + +2005 + + + + + + + +export sales 30% + + + + + + + +4% increase domestically + + + + + + + +12.3 % exports + + + + + + + + + +7.8 % sales growth compounded over ten years + + + + + + + + + + +International Business model + + + + + + + + +Capitalize on NAFTA + + + + + + + + + +Growing international demand + + + + + + + + + +experienced local distributors + + + + + + + + + + + CEO Since 1997 @@ -360,13 +944,33 @@ + + + + + + + +Modelo in world + + -vision: top five brewers +One of top 10 breweries in world + + + + + + + + + +Fifth largest distributor in world @@ -375,39 +979,9 @@ -International Business model +in 12 years - - - - - - -experienced local distributors - - - - - - - - - -Growing international demand - - - - - - - - - -Capitalize on NAFTA - - - @@ -415,95 +989,9 @@ -top 10 beer producers in world +Can they sustain that trend - - - - - - -7.8 % sales growth compounded over ten years - - - - - - - - - -2005 - - - - - - - -12.3 % exports - - - - - - - -4% increase domestically - - - - - - - -export sales 30% - - - - - - - - - -Corona Extra - - - - - - - -worlds fourth best selling beer - - - - - - - -56% shar of domestic market - - - - - - - -Since 1997 #1 import in US - - - - - - - -outsold competitor by 50% - - - @@ -512,29 +1000,9 @@ -Expanding production +International market protected Modelo from unstable peso - - - - - - -renovate facility in Zacatecas - - - - - - - - - -300 million investment - - - @@ -543,7 +1011,7 @@ -US Beer Market +Mexico Industry @@ -552,37 +1020,7 @@ -2nd largest nest to China - - - - - - - - - -Consumption six times higher per cap - - - - - - - - - -Groth expectations reduced - - - - - - - - - -80% of market +FEMSA @@ -591,7 +1029,7 @@ -AB +foriegn market @@ -600,7 +1038,43 @@ -75% of industry profits +Recently partnered with Heiniken for US market + + + + + + + +2005 18.7% growth + + + + + + + + + +90s entry to us market failed + + + + + + + + + +Partnership Heiniken + + + + + + + +Distribution in US @@ -611,7 +1085,103 @@ -adolf coors +domestic market + + + + + + + + +NAFTA SACoca cola + + + + + + + +Exclusive distributor + + + + + + + + + +997 to 2004 taking domestic market share + + + + + + + + + +leads domestic premium beer market + + + + + + + + + +Owns Oxxo C + + + + + + + +CA largest chain of conv stores + + + + + + + + + +production and distribution in Mexico: peso not a threat + + + + + + + + + +37% of domestic market + + + + + + + + + + + +modelo + + + + + + + + +62.8% of market @@ -621,7 +1191,7 @@ -Miller +NAFTA S.A. An Bucsh @@ -632,7 +1202,27 @@ -dense network of regional craft brewing +imported beer only 1% sales + + + + + + + + +half were anh bcsh dist by modelo + + + + + + + + + + +one of the largest domestic beer markets @@ -642,7 +1232,7 @@ -volume main driver +has most trade agreements in world @@ -662,6 +1252,66 @@ +Largest Beer producer and distrubutor in Mexico + + + + + + + + +corona 56% share + + + + + + + + + + +1971, Antonino Fernandez was appointed CEO + + + + + + + + +Anheuser-Busch 17.7 % of the equity + + + + + + + + +The 50.2 % represented 43.9% voting + + + + + + + + + + +Mexican Stock exchange in 1994 + + + + + + + + + + History to 1970 @@ -671,7 +1321,7 @@ -formed in 1922 +bought the brands and assets of the Toluca y Mexico Brewery @@ -680,7 +1330,7 @@ -Pablo Diez Fernandez, Braulio Irare, Marin Oyamburr +country's oldest brand of beer @@ -690,27 +1340,7 @@ -Iriarte died in 1932 - - - - - - - - - -Diez sole owner 1936 - - - - - - - - - -Fernandez Family Sole owner since 1936 +1935 @@ -721,20 +1351,38 @@ -focus on Mexico City +1940s period of strong growth + + + + + + + + +improve distribution methods and produc¬tion facilities + + + + + + + +distribution: direct with profit sharing - + -Modelo 1st Brand +concentrate domesti¬cally + @@ -761,37 +1409,9 @@ -1940s period of strong growth +Modelo 1st Brand - - - - - - -concentrate domesti¬cally - - - - - - - - - -improve distribution methods and produc¬tion facilities - - - - - - - -distribution: direct with profit sharing - - - @@ -799,7 +1419,17 @@ -bought the brands and assets of the Toluca y Mexico Brewery +focus on Mexico City + + + + + + + + + +formed in 1922 @@ -808,7 +1438,7 @@ -1935 +Fernandez Family Sole owner since 1936 @@ -818,7 +1448,107 @@ -country's oldest brand of beer +Diez sole owner 1936 + + + + + + + + + +Iriarte died in 1932 + + + + + + + + + +Pablo Diez Fernandez, Braulio Irare, Marin Oyamburr + + + + + + + + + + + + +US Beer Market + + + + + + + + +volume main driver + + + + + + + + + +dense network of regional craft brewing + + + + + + + + + +80% of market + + + + + + + + +Miller + + + + + + + + + +adolf coors + + + + + + + + + +AB + + + + + + + + +75% of industry profits @@ -830,39 +1560,9 @@ -1971, Antonino Fernandez was appointed CEO +Groth expectations reduced - - - - - - -Mexican Stock exchange in 1994 - - - - - - - - - -Anheuser-Busch 17.7 % of the equity - - - - - - - - -The 50.2 % represented 43.9% voting - - - - @@ -870,19 +1570,19 @@ -Largest Beer producer and distrubutor in Mexico - - - - - - - - -corona 56% share +Consumption six times higher per cap + + + + + + +2nd largest nest to China + + @@ -900,7 +1600,7 @@ -History +Us dist contracts @@ -909,17 +1609,7 @@ -1979 - - - - - - - - - -Amalgamated Distillery Products Inc. ( +Gambrinus @@ -928,73 +1618,7 @@ -later renamed Barton Beers Ltd. - - - - - - - - - - -gained popularity in southern states - - - - - - - - - -rapid growth 1980s - - - - - - - - -second most popular imported beer - - - - - - - - - - -1991 - - - - - - - - -doubling of federal excise tax on beer - - - - - - - -sales decrease of 15 percent - - - - - - - -distributor absorb the tax 92 +eastern dist @@ -1004,11 +1628,341 @@ -distributors took the loss +1986 + + + + + + +Chicago based Barton Beers 1st + + + + + + + + +largest importer in 25 western states + + + + + + + + + + +production in Mexico + + + + + + + + + +Modelo had final say on brand image + + + + + + + + + +procermex inc + + + + + + + + +Coordinate + + + + + + + + + +Supervise + + + + + + + + + +Support + + + + + + + + + +Modelo us subsidiary + + + + + + + + + + +importer/distributors + + + + + + + + +advertixing + + + + + + + + + +customs + + + + + + + + + +pricing + + + + + + + + + +insurance + + + + + + + + + +transportation + + + + + + + + + +competitive relationship + + + + + + + + + +Autonomous + + + + + + + + + +Local Companies + + + + + + + + + + + +Marketing + + + + + + + + +1996ad budget + + + + + + + + +an bsch 192 mil + + + + + + + + + +Heiniken 15 mil + + + + + + + + + +Corona 5.1 mil + + + + + + + + + + +Fun in the sun + + + + + + + + +relaxation + + + + + + + + + +escape + + + + + + + + + +Barton Beer's idea + + + + + + + + + + +dependable second choise + + + + + + + + + +beer for non beer drinkers + + + + + + + + + +found new following + + + + + + + + + +not testosterone driven + + + + + + + + + +not selling premium quality + + + + + + + + + +surfing mythology + + + @@ -1025,7 +1979,7 @@ -3 of top 8 beers in US +131 million cases @@ -1055,7 +2009,7 @@ -131 million cases +3 of top 8 beers in US @@ -1066,7 +2020,7 @@ -Marketing +History @@ -1075,67 +2029,7 @@ -surfing mythology - - - - - - - - - -not selling premium quality - - - - - - - - - -not testosterone driven - - - - - - - - - -found new following - - - - - - - - - -beer for non beer drinkers - - - - - - - - - -dependable second choise - - - - - - - - - -Fun in the sun +1991 @@ -1144,7 +2038,7 @@ -Barton Beer's idea +distributors took the loss @@ -1154,527 +2048,7 @@ -escape - - - - - - - - - -relaxation - - - - - - - - - - -1996ad budget - - - - - - - - -Corona 5.1 mil - - - - - - - - - -Heiniken 15 mil - - - - - - - - - -an bsch 192 mil - - - - - - - - - - - -Us dist contracts - - - - - - - - -importer/distributors - - - - - - - - -Local Companies - - - - - - - - - -Autonomous - - - - - - - - - -competitive relationship - - - - - - - - - -transportation - - - - - - - - - -insurance - - - - - - - - - -pricing - - - - - - - - - -customs - - - - - - - - - -advertixing - - - - - - - - - - -procermex inc - - - - - - - - -Modelo us subsidiary - - - - - - - - - -Support - - - - - - - - - -Supervise - - - - - - - - - -Coordinate - - - - - - - - - - -Modelo had final say on brand image - - - - - - - - - -production in Mexico - - - - - - - - - -Chicago based Barton Beers 1st - - - - - - - - -largest importer in 25 western states - - - - - - - - - - -Gambrinus - - - - - - - - -1986 - - - - - - - - - -eastern dist - - - - - - - - - - - - -The Beer market - - - - - - - - -traditionally a clustered market - - - - - - - - - -many local breweries - - - - - - - - - -no means of transport - - - - - - - - - -colsolition happened in 1800s - - - - - - - - - -different countries had different tastes - - - - - - - - - -90s national leaders expanded abroad - - - - - - - - - -startup costs high - - - - - - - - -industry supported conectration - - - - - - - - - - -Interbrew - - - - - - - - -Belgian - - - - - - - - - -aquired breweries in 20 countries - - - - - - - - - -sales in 110 countries - - - - - - - - - -local managers controlling brands - - - - - - - - - -flagship brand: Stella Artois - - - - - - - - - - -2004 merger - - - - - - - - -#1 Interbrew - - - - - - - - - -#5 Am Bev - Brazil - - - - - - - - - -largest merge - - - - - - - - -worth 12.8 billion - - - - - - - - - - - -2007 - - - - - - - - -inbev - - - - - - - - - -SAP Miller - - - - - - - - - -Heineken - - - - - - - - -produces beer domestically +doubling of federal excise tax on beer @@ -1682,7 +2056,7 @@ -parent of local distributors +distributor absorb the tax 92 @@ -1690,109 +2064,7 @@ -marketing - - - - - - - -importing - - - - - - - -import taxes passed on to consumer - - - - - - - -distribution - - - - - - - - - -marketing - - - - - - - -premium beer - - - - - - - -premium brand - - - - - - - -no mythology - - - - - - - -superior taste - - - - - - - -2006 aggressive marketing campaign - - - - - - - -Heineken Premium Light - - - - - - - - - -reputation of top selling beer in world - - - - - - - - - -Dutch +sales decrease of 15 percent @@ -1803,7 +2075,7 @@ -Anh Bush +rapid growth 1980s @@ -1812,77 +2084,7 @@ -produces in foreign markets - - - - - - - - - - - -Beer Marketing - - - - - - - - -People drink marketing - - - - - - - - - - -Future - - - - - - - - -domestic and foreign threats - - - - - - - - - -other merger talks - - - - - - - - - -Inbev in talks with Anh Bush - - - - - - - - -Two biggest companies will create huge company +second most popular imported beer @@ -1893,77 +2095,7 @@ -Sales were decreasing due to competitive media budgets - - - - - - - - - - - -Mexico Industry - - - - - - - - -has most trade agreements in world - - - - - - - - - -one of the largest domestic beer markets - - - - - - - - - -imported beer only 1% sales - - - - - - - - -half were anh bcsh dist by modelo - - - - - - - - - - -modelo - - - - - - - - -NAFTA S.A. An Bucsh +gained popularity in southern states @@ -1973,27 +2105,7 @@ -62.8% of market - - - - - - - - - - -FEMSA - - - - - - - - -domestic market +Amalgamated Distillery Products Inc. ( @@ -2002,73 +2114,7 @@ -37% of domestic market - - - - - - - - - -production and distribution in Mexico: peso not a threat - - - - - - - - - -Owns Oxxo C - - - - - - - -CA largest chain of conv stores - - - - - - - - - -leads domestic premium beer market - - - - - - - - - -997 to 2004 taking domestic market share - - - - - - - - - -NAFTA SACoca cola - - - - - - - -Exclusive distributor +later renamed Barton Beers Ltd. @@ -2079,55 +2125,9 @@ -foriegn market +1979 - - - - - - -Partnership Heiniken - - - - - - - -Distribution in US - - - - - - - - - -90s entry to us market failed - - - - - - - - - -Recently partnered with Heiniken for US market - - - - - - - -2005 18.7% growth - - - diff --git a/wise-webapp/src/test/resources/data/export/bigmap.latex b/wise-webapp/src/test/resources/data/export/bigmap.latex index c883f7b6..151a7493 100644 --- a/wise-webapp/src/test/resources/data/export/bigmap.latex +++ b/wise-webapp/src/test/resources/data/export/bigmap.latex @@ -1,251 +1,251 @@ \chapter{corona}\label{ID_null} - \section{Modelo in world}\label{ID_null} - \subsection{International market protected Modelo from unstable peso}\label{ID_null} - \subsection{Fifth largest distributor in world}\label{ID_null} - \subsubsection{Can they sustain that trend}\label{ID_null} - \subsubsection{in 12 years}\label{ID_null} - \subsection{One of top 10 breweries in world}\label{ID_null} - \section{Carloz Fernandez CEO}\label{ID_null} - \subsection{CEO Since 1997}\label{ID_null} - \subsubsection{29 years old}\label{ID_null}working there since 13\par - - \subsection{vision: top five brewers}\label{ID_null} - \subsubsection{International Business model}\label{ID_null}\begin{itemize} - \item \label{ID_null}experienced local distributors\par - \item \label{ID_null}Growing international demand\par - \item \label{ID_null}Capitalize on NAFTA\par - - \end{itemize} - - \subsubsection{top 10 beer producers in world}\label{ID_null}\begin{itemize} - \item \label{ID_null}7.8 % sales growth compounded over ten years\par - \item \label{ID_null}2005\par - \begin{itemize} - \item \label{ID_null}12.3 % exports\par - \item \label{ID_null}4% increase domestically\par - \item \label{ID_null}export sales 30%\par - - \end{itemize} - \item \label{ID_null}Corona Extra\par - \begin{itemize} - \item \label{ID_null}worlds fourth best selling beer\par - \item \label{ID_null}56% shar of domestic market\par - \item \label{ID_null}Since 1997 #1 import in US\par - outsold competitor by 50%\par - - \end{itemize} - - \end{itemize} - - \subsection{Expanding production }\label{ID_null} - \subsubsection{renovate facility in Zacatecas}\label{ID_null} - \subsubsection{300 million investment}\label{ID_null} - \section{US Beer Market}\label{ID_null} - \subsection{2nd largest nest to China}\label{ID_null} - \subsection{Consumption six times higher per cap}\label{ID_null} - \subsection{Groth expectations reduced}\label{ID_null} - \subsection{80% of market}\label{ID_null} - \subsubsection{AB}\label{ID_null}75% of industry profits\par - - \subsubsection{adolf coors}\label{ID_null} - \subsubsection{Miller}\label{ID_null} - \subsection{dense network of regional craft brewing}\label{ID_null} - \subsection{volume main driver}\label{ID_null} - \section{Modelo in Mexico}\label{ID_null} - \subsection{History to 1970}\label{ID_null} - \subsubsection{formed in 1922}\label{ID_null}\begin{itemize} - \item \label{ID_null}Pablo Diez Fernandez, Braulio Irare, Marin Oyamburr\par - \item \label{ID_null}Iriarte died in 1932\par - \item \label{ID_null}Diez sole owner 1936\par - \item \label{ID_null}Fernandez Family Sole owner since 1936\par - - \end{itemize} - - \subsubsection{focus on Mexico City}\label{ID_null} - \subsubsection{Modelo 1st Brand}\label{ID_null} - \subsubsection{Corona 2nd Brand}\label{ID_null}Clear Glass Customers preference\par - - \subsubsection{1940s period of strong growth }\label{ID_null}\begin{itemize} - \item \label{ID_null}concentrate domesti¬cally \par - \item \label{ID_null}improve distribution methods and produc¬tion facilities \par - distribution: direct with profit sharing\par - - \end{itemize} - - \subsubsection{bought the brands and assets of the Toluca y Mexico Brewery}\label{ID_null}\begin{itemize} - \item \label{ID_null}1935\par - \item \label{ID_null}country's oldest brand of beer\par - - \end{itemize} - - \subsection{1971, Antonino Fernandez was appointed CEO}\label{ID_null} - \subsubsection{Mexican Stock exchange in 1994}\label{ID_null} - \subsubsection{Anheuser-Busch 17.7 % of the equity}\label{ID_null}The 50.2 % represented 43.9% voting\par - - \subsection{Largest Beer producer and distrubutor in Mexico}\label{ID_null} - \subsubsection{corona 56% share}\label{ID_null} - \section{Modelo in US}\label{ID_null} - \subsection{History}\label{ID_null} - \subsubsection{1979}\label{ID_null} - \subsubsection{Amalgamated Distillery Products Inc. (}\label{ID_null}later renamed Barton Beers Ltd.\par - - \subsubsection{gained popularity in southern states}\label{ID_null} - \subsubsection{rapid growth 1980s}\label{ID_null}second most popular imported beer\par - - \subsubsection{1991}\label{ID_null}\begin{itemize} - \item \label{ID_null}doubling of federal excise tax on beer\par - \begin{itemize} - \item \label{ID_null}sales decrease of 15 percent\par - \item \label{ID_null}distributor absorb the tax 92\par - - \end{itemize} - \item \label{ID_null}distributors took the loss\par - - \end{itemize} - - \subsection{2007 5 beers to us}\label{ID_null} - \subsubsection{3 of top 8 beers in US}\label{ID_null} - \subsubsection{Heineken}\label{ID_null}Main Import Comptitor\par - - \subsubsection{131 million cases}\label{ID_null} - \subsection{Marketing}\label{ID_null} - \subsubsection{surfing mythology}\label{ID_null} - \subsubsection{not selling premium quality}\label{ID_null} - \subsubsection{not testosterone driven}\label{ID_null} - \subsubsection{found new following}\label{ID_null} - \subsubsection{beer for non beer drinkers}\label{ID_null} - \subsubsection{dependable second choise}\label{ID_null} - \subsubsection{Fun in the sun}\label{ID_null}\begin{itemize} - \item \label{ID_null}Barton Beer's idea\par - \item \label{ID_null}escape\par - \item \label{ID_null}relaxation\par - - \end{itemize} - - \subsubsection{1996ad budget}\label{ID_null}\begin{itemize} - \item \label{ID_null}Corona 5.1 mil\par - \item \label{ID_null}Heiniken 15 mil\par - \item \label{ID_null}an bsch 192 mil\par - - \end{itemize} - - \subsection{Us dist contracts}\label{ID_null} - \subsubsection{importer/distributors}\label{ID_null}\begin{itemize} - \item \label{ID_null}Local Companies\par - \item \label{ID_null}Autonomous\par - \item \label{ID_null}competitive relationship\par - \item \label{ID_null}transportation\par - \item \label{ID_null}insurance\par - \item \label{ID_null}pricing\par - \item \label{ID_null}customs\par - \item \label{ID_null}advertixing\par - - \end{itemize} - - \subsubsection{procermex inc}\label{ID_null}\begin{itemize} - \item \label{ID_null}Modelo us subsidiary\par - \item \label{ID_null}Support\par - \item \label{ID_null}Supervise\par - \item \label{ID_null}Coordinate\par - - \end{itemize} - - \subsubsection{Modelo had final say on brand image}\label{ID_null} - \subsubsection{production in Mexico}\label{ID_null} - \subsubsection{Chicago based Barton Beers 1st}\label{ID_null}largest importer in 25 western states\par - - \subsubsection{Gambrinus}\label{ID_null}\begin{itemize} - \item \label{ID_null}1986\par - \item \label{ID_null}eastern dist\par - - \end{itemize} - \section{The Beer market}\label{ID_null} - \subsection{traditionally a clustered market}\label{ID_null} - \subsection{many local breweries}\label{ID_null} - \subsection{no means of transport}\label{ID_null} - \subsection{colsolition happened in 1800s}\label{ID_null} - \subsection{different countries had different tastes}\label{ID_null} - \subsection{90s national leaders expanded abroad}\label{ID_null} - \subsection{startup costs high}\label{ID_null} - \subsubsection{industry supported conectration}\label{ID_null} - \subsection{Interbrew}\label{ID_null} - \subsubsection{Belgian}\label{ID_null} - \subsubsection{aquired breweries in 20 countries}\label{ID_null} - \subsubsection{sales in 110 countries}\label{ID_null} - \subsubsection{local managers controlling brands}\label{ID_null} - \subsubsection{flagship brand: Stella Artois}\label{ID_null} - \subsection{2004 merger}\label{ID_null} - \subsubsection{#1 Interbrew}\label{ID_null} - \subsubsection{#5 Am Bev - Brazil}\label{ID_null} - \subsubsection{largest merge}\label{ID_null}worth 12.8 billion\par + \subsection{Future}\label{ID_null} + \subsubsection{Sales were decreasing due to competitive media budgets}\label{ID_null} + \subsubsection{Inbev in talks with Anh Bush}\label{ID_null}Two biggest companies will create huge company\par + \subsubsection{other merger talks}\label{ID_null} + \subsubsection{domestic and foreign threats}\label{ID_null} + \subsection{Beer Marketing}\label{ID_null} + \subsubsection{People drink marketing}\label{ID_null} \subsection{2007}\label{ID_null} - \subsubsection{inbev}\label{ID_null} - \subsubsection{SAP Miller}\label{ID_null} + \subsubsection{Anh Bush}\label{ID_null}produces in foreign markets\par + \subsubsection{Heineken}\label{ID_null}\begin{itemize} + \item \label{ID_null}Dutch\par + \item \label{ID_null}reputation of top selling beer in world\par + \item \label{ID_null}marketing\par + \begin{itemize} + \item \label{ID_null}2006 aggressive marketing campaign\par + Heineken Premium Light\par + \item \label{ID_null}superior taste\par + \item \label{ID_null}no mythology\par + \item \label{ID_null}premium brand\par + \item \label{ID_null}premium beer\par + + \end{itemize} \item \label{ID_null}produces beer domestically\par parent of local distributors\par \begin{itemize} - \item \label{ID_null}marketing\par + \item \label{ID_null}distribution\par \item \label{ID_null}importing\par import taxes passed on to consumer\par - \item \label{ID_null}distribution\par - - \end{itemize} - \item \label{ID_null}marketing\par - \begin{itemize} - \item \label{ID_null}premium beer\par - \item \label{ID_null}premium brand\par - \item \label{ID_null}no mythology\par - \item \label{ID_null}superior taste\par - \item \label{ID_null}2006 aggressive marketing campaign\par - Heineken Premium Light\par - - \end{itemize} - \item \label{ID_null}reputation of top selling beer in world\par - \item \label{ID_null}Dutch\par + \item \label{ID_null}marketing\par \end{itemize} - \subsubsection{Anh Bush}\label{ID_null}produces in foreign markets\par + \end{itemize} + + \subsubsection{SAP Miller}\label{ID_null} + \subsubsection{inbev}\label{ID_null} + \subsection{2004 merger}\label{ID_null} + \subsubsection{largest merge}\label{ID_null}worth 12.8 billion\par - \subsection{Beer Marketing}\label{ID_null} - \subsubsection{People drink marketing}\label{ID_null} - \subsection{Future}\label{ID_null} - \subsubsection{domestic and foreign threats}\label{ID_null} - \subsubsection{other merger talks}\label{ID_null} - \subsubsection{Inbev in talks with Anh Bush}\label{ID_null}Two biggest companies will create huge company\par + \subsubsection{#5 Am Bev - Brazil}\label{ID_null} + \subsubsection{#1 Interbrew}\label{ID_null} + \subsection{Interbrew}\label{ID_null} + \subsubsection{flagship brand: Stella Artois}\label{ID_null} + \subsubsection{local managers controlling brands}\label{ID_null} + \subsubsection{sales in 110 countries}\label{ID_null} + \subsubsection{aquired breweries in 20 countries}\label{ID_null} + \subsubsection{Belgian}\label{ID_null} + \subsection{startup costs high}\label{ID_null} + \subsubsection{industry supported conectration}\label{ID_null} + \subsection{90s national leaders expanded abroad}\label{ID_null} + \subsection{different countries had different tastes}\label{ID_null} + \subsection{colsolition happened in 1800s}\label{ID_null} + \subsection{no means of transport}\label{ID_null} + \subsection{many local breweries}\label{ID_null} + \subsection{traditionally a clustered market}\label{ID_null} + \section{Carloz Fernandez CEO}\label{ID_null} + \subsection{Expanding production }\label{ID_null} + \subsubsection{300 million investment}\label{ID_null} + \subsubsection{renovate facility in Zacatecas}\label{ID_null} + \subsection{vision: top five brewers}\label{ID_null} + \subsubsection{top 10 beer producers in world}\label{ID_null}\begin{itemize} + \item \label{ID_null}Corona Extra\par + \begin{itemize} + \item \label{ID_null}Since 1997 #1 import in US\par + outsold competitor by 50%\par + \item \label{ID_null}56% shar of domestic market\par + \item \label{ID_null}worlds fourth best selling beer\par - \subsubsection{Sales were decreasing due to competitive media budgets}\label{ID_null} + \end{itemize} + \item \label{ID_null}2005\par + \begin{itemize} + \item \label{ID_null}export sales 30%\par + \item \label{ID_null}4% increase domestically\par + \item \label{ID_null}12.3 % exports\par + + \end{itemize} + \item \label{ID_null}7.8 % sales growth compounded over ten years\par + + \end{itemize} + + \subsubsection{International Business model}\label{ID_null}\begin{itemize} + \item \label{ID_null}Capitalize on NAFTA\par + \item \label{ID_null}Growing international demand\par + \item \label{ID_null}experienced local distributors\par + + \end{itemize} + + \subsection{CEO Since 1997}\label{ID_null} + \subsubsection{29 years old}\label{ID_null}working there since 13\par + + \section{Modelo in world}\label{ID_null} + \subsection{One of top 10 breweries in world}\label{ID_null} + \subsection{Fifth largest distributor in world}\label{ID_null} + \subsubsection{in 12 years}\label{ID_null} + \subsubsection{Can they sustain that trend}\label{ID_null} + \subsection{International market protected Modelo from unstable peso}\label{ID_null} \section{Mexico Industry}\label{ID_null} - \subsection{has most trade agreements in world}\label{ID_null} - \subsection{one of the largest domestic beer markets}\label{ID_null} - \subsection{imported beer only 1% sales}\label{ID_null} - \subsubsection{half were anh bcsh dist by modelo}\label{ID_null} - \subsection{modelo}\label{ID_null} - \subsubsection{NAFTA S.A. An Bucsh}\label{ID_null} - \subsubsection{62.8% of market}\label{ID_null} \subsection{FEMSA}\label{ID_null} + \subsubsection{foriegn market}\label{ID_null}\begin{itemize} + \item \label{ID_null}Recently partnered with Heiniken for US market\par + 2005 18.7% growth\par + \item \label{ID_null}90s entry to us market failed\par + \item \label{ID_null}Partnership Heiniken\par + Distribution in US\par + + \end{itemize} + \subsubsection{domestic market}\label{ID_null}\begin{itemize} - \item \label{ID_null}37% of domestic market\par - \item \label{ID_null}production and distribution in Mexico: peso not a threat\par + \item \label{ID_null}NAFTA SACoca cola\par + Exclusive distributor\par + \item \label{ID_null}997 to 2004 taking domestic market share\par + \item \label{ID_null}leads domestic premium beer market\par \item \label{ID_null}Owns Oxxo C\par CA largest chain of conv stores\par - \item \label{ID_null}leads domestic premium beer market\par - \item \label{ID_null}997 to 2004 taking domestic market share\par - \item \label{ID_null}NAFTA SACoca cola\par - Exclusive distributor\par + \item \label{ID_null}production and distribution in Mexico: peso not a threat\par + \item \label{ID_null}37% of domestic market\par \end{itemize} - \subsubsection{foriegn market}\label{ID_null}\begin{itemize} - \item \label{ID_null}Partnership Heiniken\par - Distribution in US\par - \item \label{ID_null}90s entry to us market failed\par - \item \label{ID_null}Recently partnered with Heiniken for US market\par - 2005 18.7% growth\par + \subsection{modelo}\label{ID_null} + \subsubsection{62.8% of market}\label{ID_null} + \subsubsection{NAFTA S.A. An Bucsh}\label{ID_null} + \subsection{imported beer only 1% sales}\label{ID_null} + \subsubsection{half were anh bcsh dist by modelo}\label{ID_null} + \subsection{one of the largest domestic beer markets}\label{ID_null} + \subsection{has most trade agreements in world}\label{ID_null} + \section{Modelo in Mexico}\label{ID_null} + \subsection{Largest Beer producer and distrubutor in Mexico}\label{ID_null} + \subsubsection{corona 56% share}\label{ID_null} + \subsection{1971, Antonino Fernandez was appointed CEO}\label{ID_null} + \subsubsection{Anheuser-Busch 17.7 % of the equity}\label{ID_null}The 50.2 % represented 43.9% voting\par + + \subsubsection{Mexican Stock exchange in 1994}\label{ID_null} + \subsection{History to 1970}\label{ID_null} + \subsubsection{bought the brands and assets of the Toluca y Mexico Brewery}\label{ID_null}\begin{itemize} + \item \label{ID_null}country's oldest brand of beer\par + \item \label{ID_null}1935\par \end{itemize} - \ No newline at end of file + + \subsubsection{1940s period of strong growth }\label{ID_null}\begin{itemize} + \item \label{ID_null}improve distribution methods and produc¬tion facilities \par + distribution: direct with profit sharing\par + \item \label{ID_null}concentrate domesti¬cally \par + + \end{itemize} + + \subsubsection{Corona 2nd Brand}\label{ID_null}Clear Glass Customers preference\par + + \subsubsection{Modelo 1st Brand}\label{ID_null} + \subsubsection{focus on Mexico City}\label{ID_null} + \subsubsection{formed in 1922}\label{ID_null}\begin{itemize} + \item \label{ID_null}Fernandez Family Sole owner since 1936\par + \item \label{ID_null}Diez sole owner 1936\par + \item \label{ID_null}Iriarte died in 1932\par + \item \label{ID_null}Pablo Diez Fernandez, Braulio Irare, Marin Oyamburr\par + + \end{itemize} + + \section{US Beer Market}\label{ID_null} + \subsection{volume main driver}\label{ID_null} + \subsection{dense network of regional craft brewing}\label{ID_null} + \subsection{80% of market}\label{ID_null} + \subsubsection{Miller}\label{ID_null} + \subsubsection{adolf coors}\label{ID_null} + \subsubsection{AB}\label{ID_null}75% of industry profits\par + + \subsection{Groth expectations reduced}\label{ID_null} + \subsection{Consumption six times higher per cap}\label{ID_null} + \subsection{2nd largest nest to China}\label{ID_null} + \section{Modelo in US}\label{ID_null} + \subsection{Us dist contracts}\label{ID_null} + \subsubsection{Gambrinus}\label{ID_null}\begin{itemize} + \item \label{ID_null}eastern dist\par + \item \label{ID_null}1986\par + + \end{itemize} + + \subsubsection{Chicago based Barton Beers 1st}\label{ID_null}largest importer in 25 western states\par + + \subsubsection{production in Mexico}\label{ID_null} + \subsubsection{Modelo had final say on brand image}\label{ID_null} + \subsubsection{procermex inc}\label{ID_null}\begin{itemize} + \item \label{ID_null}Coordinate\par + \item \label{ID_null}Supervise\par + \item \label{ID_null}Support\par + \item \label{ID_null}Modelo us subsidiary\par + + \end{itemize} + + \subsubsection{importer/distributors}\label{ID_null}\begin{itemize} + \item \label{ID_null}advertixing\par + \item \label{ID_null}customs\par + \item \label{ID_null}pricing\par + \item \label{ID_null}insurance\par + \item \label{ID_null}transportation\par + \item \label{ID_null}competitive relationship\par + \item \label{ID_null}Autonomous\par + \item \label{ID_null}Local Companies\par + + \end{itemize} + + \subsection{Marketing}\label{ID_null} + \subsubsection{1996ad budget}\label{ID_null}\begin{itemize} + \item \label{ID_null}an bsch 192 mil\par + \item \label{ID_null}Heiniken 15 mil\par + \item \label{ID_null}Corona 5.1 mil\par + + \end{itemize} + + \subsubsection{Fun in the sun}\label{ID_null}\begin{itemize} + \item \label{ID_null}relaxation\par + \item \label{ID_null}escape\par + \item \label{ID_null}Barton Beer's idea\par + + \end{itemize} + + \subsubsection{dependable second choise}\label{ID_null} + \subsubsection{beer for non beer drinkers}\label{ID_null} + \subsubsection{found new following}\label{ID_null} + \subsubsection{not testosterone driven}\label{ID_null} + \subsubsection{not selling premium quality}\label{ID_null} + \subsubsection{surfing mythology}\label{ID_null} + \subsection{2007 5 beers to us}\label{ID_null} + \subsubsection{131 million cases}\label{ID_null} + \subsubsection{Heineken}\label{ID_null}Main Import Comptitor\par + + \subsubsection{3 of top 8 beers in US}\label{ID_null} + \subsection{History}\label{ID_null} + \subsubsection{1991}\label{ID_null}\begin{itemize} + \item \label{ID_null}distributors took the loss\par + \item \label{ID_null}doubling of federal excise tax on beer\par + \begin{itemize} + \item \label{ID_null}distributor absorb the tax 92\par + \item \label{ID_null}sales decrease of 15 percent\par + + \end{itemize} + + \end{itemize} + + \subsubsection{rapid growth 1980s}\label{ID_null}second most popular imported beer\par + + \subsubsection{gained popularity in southern states}\label{ID_null} + \subsubsection{Amalgamated Distillery Products Inc. (}\label{ID_null}later renamed Barton Beers Ltd.\par + + \subsubsection{1979}\label{ID_null} \ No newline at end of file diff --git a/wise-webapp/src/test/resources/data/export/bigmap.mm b/wise-webapp/src/test/resources/data/export/bigmap.mm index 6252a306..e71a3747 100644 --- a/wise-webapp/src/test/resources/data/export/bigmap.mm +++ b/wise-webapp/src/test/resources/data/export/bigmap.mm @@ -1,262 +1,262 @@ - + - - - - - + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wise-webapp/src/test/resources/data/export/bigmap.mmap b/wise-webapp/src/test/resources/data/export/bigmap.mmap index 94b3c7e8..9be4a731 100644 --- a/wise-webapp/src/test/resources/data/export/bigmap.mmap +++ b/wise-webapp/src/test/resources/data/export/bigmap.mmap @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/wise-webapp/src/test/resources/data/export/bigmap.odt b/wise-webapp/src/test/resources/data/export/bigmap.odt index de16a5bc..31ff1723 100644 --- a/wise-webapp/src/test/resources/data/export/bigmap.odt +++ b/wise-webapp/src/test/resources/data/export/bigmap.odt @@ -79,198 +79,198 @@ corona -Modelo in world -International market protected Modelo from unstable peso -Fifth largest distributor in world -Can they sustain that trend -in 12 years -One of top 10 breweries in world +The Beer market +Future +Sales were decreasing due to competitive media budgets +Inbev in talks with Anh Bush +Two biggest companies will create huge company +other merger talks +domestic and foreign threats +Beer Marketing +People drink marketing +2007 +Anh Bush +produces in foreign markets +Heineken +Dutch +reputation of top selling beer in world +marketing +2006 aggressive marketing campaign +Heineken Premium Light +superior taste +no mythology +premium brand +premium beer +produces beer domestically +parent of local distributors +distribution +importing +import taxes passed on to consumer +marketing +SAP Miller +inbev +2004 merger +largest merge +worth 12.8 billion +#5 Am Bev - Brazil +#1 Interbrew +Interbrew +flagship brand: Stella Artois +local managers controlling brands +sales in 110 countries +aquired breweries in 20 countries +Belgian +startup costs high +industry supported conectration +90s national leaders expanded abroad +different countries had different tastes +colsolition happened in 1800s +no means of transport +many local breweries +traditionally a clustered market Carloz Fernandez CEO +Expanding production +300 million investment +renovate facility in Zacatecas +vision: top five brewers +top 10 beer producers in world +Corona Extra +Since 1997 #1 import in US +outsold competitor by 50% +56% shar of domestic market +worlds fourth best selling beer +2005 +export sales 30% +4% increase domestically +12.3 % exports +7.8 % sales growth compounded over ten years +International Business model +Capitalize on NAFTA +Growing international demand +experienced local distributors CEO Since 1997 29 years old working there since 13 -vision: top five brewers -International Business model -experienced local distributors -Growing international demand -Capitalize on NAFTA -top 10 beer producers in world -7.8 % sales growth compounded over ten years -2005 -12.3 % exports -4% increase domestically -export sales 30% -Corona Extra -worlds fourth best selling beer -56% shar of domestic market -Since 1997 #1 import in US -outsold competitor by 50% -Expanding production -renovate facility in Zacatecas -300 million investment -US Beer Market -2nd largest nest to China -Consumption six times higher per cap -Groth expectations reduced -80% of market -AB -75% of industry profits -adolf coors -Miller -dense network of regional craft brewing -volume main driver -Modelo in Mexico -History to 1970 -formed in 1922 -Pablo Diez Fernandez, Braulio Irare, Marin Oyamburr -Iriarte died in 1932 -Diez sole owner 1936 -Fernandez Family Sole owner since 1936 -focus on Mexico City -Modelo 1st Brand -Corona 2nd Brand -Clear Glass Customers preference -1940s period of strong growth -concentrate domesti¬cally -improve distribution methods and produc¬tion facilities -distribution: direct with profit sharing -bought the brands and assets of the Toluca y Mexico Brewery -1935 -country's oldest brand of beer -1971, Antonino Fernandez was appointed CEO -Mexican Stock exchange in 1994 -Anheuser-Busch 17.7 % of the equity -The 50.2 % represented 43.9% voting -Largest Beer producer and distrubutor in Mexico -corona 56% share -Modelo in US -History -1979 -Amalgamated Distillery Products Inc. ( -later renamed Barton Beers Ltd. -gained popularity in southern states -rapid growth 1980s -second most popular imported beer -1991 -doubling of federal excise tax on beer -sales decrease of 15 percent -distributor absorb the tax 92 -distributors took the loss -2007 5 beers to us -3 of top 8 beers in US -Heineken -Main Import Comptitor -131 million cases -Marketing -surfing mythology -not selling premium quality -not testosterone driven -found new following -beer for non beer drinkers -dependable second choise -Fun in the sun -Barton Beer's idea -escape -relaxation -1996ad budget -Corona 5.1 mil -Heiniken 15 mil -an bsch 192 mil -Us dist contracts -importer/distributors -Local Companies -Autonomous -competitive relationship -transportation -insurance -pricing -customs -advertixing -procermex inc -Modelo us subsidiary -Support -Supervise -Coordinate -Modelo had final say on brand image -production in Mexico -Chicago based Barton Beers 1st -largest importer in 25 western states -Gambrinus -1986 -eastern dist -The Beer market -traditionally a clustered market -many local breweries -no means of transport -colsolition happened in 1800s -different countries had different tastes -90s national leaders expanded abroad -startup costs high -industry supported conectration -Interbrew -Belgian -aquired breweries in 20 countries -sales in 110 countries -local managers controlling brands -flagship brand: Stella Artois -2004 merger -#1 Interbrew -#5 Am Bev - Brazil -largest merge -worth 12.8 billion -2007 -inbev -SAP Miller -Heineken -produces beer domestically -parent of local distributors -marketing -importing -import taxes passed on to consumer -distribution -marketing -premium beer -premium brand -no mythology -superior taste -2006 aggressive marketing campaign -Heineken Premium Light -reputation of top selling beer in world -Dutch -Anh Bush -produces in foreign markets -Beer Marketing -People drink marketing -Future -domestic and foreign threats -other merger talks -Inbev in talks with Anh Bush -Two biggest companies will create huge company -Sales were decreasing due to competitive media budgets +Modelo in world +One of top 10 breweries in world +Fifth largest distributor in world +in 12 years +Can they sustain that trend +International market protected Modelo from unstable peso Mexico Industry -has most trade agreements in world -one of the largest domestic beer markets -imported beer only 1% sales -half were anh bcsh dist by modelo -modelo -NAFTA S.A. An Bucsh -62.8% of market FEMSA -domestic market -37% of domestic market -production and distribution in Mexico: peso not a threat -Owns Oxxo C -CA largest chain of conv stores -leads domestic premium beer market -997 to 2004 taking domestic market share -NAFTA SACoca cola -Exclusive distributor foriegn market -Partnership Heiniken -Distribution in US -90s entry to us market failed Recently partnered with Heiniken for US market 2005 18.7% growth +90s entry to us market failed +Partnership Heiniken +Distribution in US +domestic market +NAFTA SACoca cola +Exclusive distributor +997 to 2004 taking domestic market share +leads domestic premium beer market +Owns Oxxo C +CA largest chain of conv stores +production and distribution in Mexico: peso not a threat +37% of domestic market +modelo +62.8% of market +NAFTA S.A. An Bucsh +imported beer only 1% sales +half were anh bcsh dist by modelo +one of the largest domestic beer markets +has most trade agreements in world +Modelo in Mexico +Largest Beer producer and distrubutor in Mexico +corona 56% share +1971, Antonino Fernandez was appointed CEO +Anheuser-Busch 17.7 % of the equity +The 50.2 % represented 43.9% voting +Mexican Stock exchange in 1994 +History to 1970 +bought the brands and assets of the Toluca y Mexico Brewery +country's oldest brand of beer +1935 +1940s period of strong growth +improve distribution methods and produc¬tion facilities +distribution: direct with profit sharing +concentrate domesti¬cally +Corona 2nd Brand +Clear Glass Customers preference +Modelo 1st Brand +focus on Mexico City +formed in 1922 +Fernandez Family Sole owner since 1936 +Diez sole owner 1936 +Iriarte died in 1932 +Pablo Diez Fernandez, Braulio Irare, Marin Oyamburr +US Beer Market +volume main driver +dense network of regional craft brewing +80% of market +Miller +adolf coors +AB +75% of industry profits +Groth expectations reduced +Consumption six times higher per cap +2nd largest nest to China +Modelo in US +Us dist contracts +Gambrinus +eastern dist +1986 +Chicago based Barton Beers 1st +largest importer in 25 western states +production in Mexico +Modelo had final say on brand image +procermex inc +Coordinate +Supervise +Support +Modelo us subsidiary +importer/distributors +advertixing +customs +pricing +insurance +transportation +competitive relationship +Autonomous +Local Companies +Marketing +1996ad budget +an bsch 192 mil +Heiniken 15 mil +Corona 5.1 mil +Fun in the sun +relaxation +escape +Barton Beer's idea +dependable second choise +beer for non beer drinkers +found new following +not testosterone driven +not selling premium quality +surfing mythology +2007 5 beers to us +131 million cases +Heineken +Main Import Comptitor +3 of top 8 beers in US +History +1991 +distributors took the loss +doubling of federal excise tax on beer +distributor absorb the tax 92 +sales decrease of 15 percent +rapid growth 1980s +second most popular imported beer +gained popularity in southern states +Amalgamated Distillery Products Inc. ( +later renamed Barton Beers Ltd. +1979 diff --git a/wise-webapp/src/test/resources/data/export/bigmap.txt b/wise-webapp/src/test/resources/data/export/bigmap.txt index 28db9cff..bf11ed30 100644 --- a/wise-webapp/src/test/resources/data/export/bigmap.txt +++ b/wise-webapp/src/test/resources/data/export/bigmap.txt @@ -1,193 +1,193 @@ 1 corona - 1.1 Modelo in world - 1.1.1 International market protected Modelo from unstable peso - 1.1.2 Fifth largest distributor in world - 1.1.2.1 Can they sustain that trend - 1.1.2.2 in 12 years - 1.1.3 One of top 10 breweries in world + 1.1 The Beer market + 1.1.1 Future + 1.1.1.1 Sales were decreasing due to competitive media budgets + 1.1.1.2 Inbev in talks with Anh Bush + 1.1.1.2.1 Two biggest companies will create huge company + 1.1.1.3 other merger talks + 1.1.1.4 domestic and foreign threats + 1.1.2 Beer Marketing + 1.1.2.1 People drink marketing + 1.1.3 2007 + 1.1.3.1 Anh Bush + 1.1.3.1.1 produces in foreign markets + 1.1.3.2 Heineken + 1.1.3.2.1 Dutch + 1.1.3.2.2 reputation of top selling beer in world + 1.1.3.2.3 marketing + 1.1.3.2.3.1 2006 aggressive marketing campaign + 1.1.3.2.3.1.1 Heineken Premium Light + 1.1.3.2.3.2 superior taste + 1.1.3.2.3.3 no mythology + 1.1.3.2.3.4 premium brand + 1.1.3.2.3.5 premium beer + 1.1.3.2.4 produces beer domestically + 1.1.3.2.4.1 parent of local distributors + 1.1.3.2.4.1.1 distribution + 1.1.3.2.4.1.2 importing + 1.1.3.2.4.1.2.1 import taxes passed on to consumer + 1.1.3.2.4.1.3 marketing + 1.1.3.3 SAP Miller + 1.1.3.4 inbev + 1.1.4 2004 merger + 1.1.4.1 largest merge + 1.1.4.1.1 worth 12.8 billion + 1.1.4.2 #5 Am Bev - Brazil + 1.1.4.3 #1 Interbrew + 1.1.5 Interbrew + 1.1.5.1 flagship brand: Stella Artois + 1.1.5.2 local managers controlling brands + 1.1.5.3 sales in 110 countries + 1.1.5.4 aquired breweries in 20 countries + 1.1.5.5 Belgian + 1.1.6 startup costs high + 1.1.6.1 industry supported conectration + 1.1.7 90s national leaders expanded abroad + 1.1.8 different countries had different tastes + 1.1.9 colsolition happened in 1800s + 1.1.10 no means of transport + 1.1.11 many local breweries + 1.1.12 traditionally a clustered market 1.2 Carloz Fernandez CEO - 1.2.1 CEO Since 1997 - 1.2.1.1 29 years old - 1.2.1.1.1 working there since 13 + 1.2.1 Expanding production + 1.2.1.1 300 million investment + 1.2.1.2 renovate facility in Zacatecas 1.2.2 vision: top five brewers - 1.2.2.1 International Business model - 1.2.2.1.1 experienced local distributors - 1.2.2.1.2 Growing international demand - 1.2.2.1.3 Capitalize on NAFTA - 1.2.2.2 top 10 beer producers in world - 1.2.2.2.1 7.8 % sales growth compounded over ten years - 1.2.2.2.2 2005 - 1.2.2.2.2.1 12.3 % exports - 1.2.2.2.2.2 4% increase domestically - 1.2.2.2.2.3 export sales 30% - 1.2.2.2.3 Corona Extra - 1.2.2.2.3.1 worlds fourth best selling beer - 1.2.2.2.3.2 56% shar of domestic market - 1.2.2.2.3.3 Since 1997 #1 import in US - 1.2.2.2.3.3.1 outsold competitor by 50% - 1.2.3 Expanding production - 1.2.3.1 renovate facility in Zacatecas - 1.2.3.2 300 million investment - 1.3 US Beer Market - 1.3.1 2nd largest nest to China - 1.3.2 Consumption six times higher per cap - 1.3.3 Groth expectations reduced - 1.3.4 80% of market - 1.3.4.1 AB - 1.3.4.1.1 75% of industry profits - 1.3.4.2 adolf coors - 1.3.4.3 Miller - 1.3.5 dense network of regional craft brewing - 1.3.6 volume main driver - 1.4 Modelo in Mexico - 1.4.1 History to 1970 - 1.4.1.1 formed in 1922 - 1.4.1.1.1 Pablo Diez Fernandez, Braulio Irare, Marin Oyamburr - 1.4.1.1.2 Iriarte died in 1932 - 1.4.1.1.3 Diez sole owner 1936 - 1.4.1.1.4 Fernandez Family Sole owner since 1936 - 1.4.1.2 focus on Mexico City - 1.4.1.3 Modelo 1st Brand - 1.4.1.4 Corona 2nd Brand - 1.4.1.4.1 Clear Glass Customers preference - 1.4.1.5 1940s period of strong growth - 1.4.1.5.1 concentrate domesti¬cally - 1.4.1.5.2 improve distribution methods and produc¬tion facilities - 1.4.1.5.2.1 distribution: direct with profit sharing - 1.4.1.6 bought the brands and assets of the Toluca y Mexico Brewery - 1.4.1.6.1 1935 - 1.4.1.6.2 country's oldest brand of beer - 1.4.2 1971, Antonino Fernandez was appointed CEO - 1.4.2.1 Mexican Stock exchange in 1994 - 1.4.2.2 Anheuser-Busch 17.7 % of the equity - 1.4.2.2.1 The 50.2 % represented 43.9% voting - 1.4.3 Largest Beer producer and distrubutor in Mexico - 1.4.3.1 corona 56% share - 1.5 Modelo in US - 1.5.1 History - 1.5.1.1 1979 - 1.5.1.2 Amalgamated Distillery Products Inc. ( - 1.5.1.2.1 later renamed Barton Beers Ltd. - 1.5.1.3 gained popularity in southern states - 1.5.1.4 rapid growth 1980s - 1.5.1.4.1 second most popular imported beer - 1.5.1.5 1991 - 1.5.1.5.1 doubling of federal excise tax on beer - 1.5.1.5.1.1 sales decrease of 15 percent - 1.5.1.5.1.2 distributor absorb the tax 92 - 1.5.1.5.2 distributors took the loss - 1.5.2 2007 5 beers to us - 1.5.2.1 3 of top 8 beers in US - 1.5.2.2 Heineken - 1.5.2.2.1 Main Import Comptitor - 1.5.2.3 131 million cases - 1.5.3 Marketing - 1.5.3.1 surfing mythology - 1.5.3.2 not selling premium quality - 1.5.3.3 not testosterone driven - 1.5.3.4 found new following - 1.5.3.5 beer for non beer drinkers - 1.5.3.6 dependable second choise - 1.5.3.7 Fun in the sun - 1.5.3.7.1 Barton Beer's idea - 1.5.3.7.2 escape - 1.5.3.7.3 relaxation - 1.5.3.8 1996ad budget - 1.5.3.8.1 Corona 5.1 mil - 1.5.3.8.2 Heiniken 15 mil - 1.5.3.8.3 an bsch 192 mil - 1.5.4 Us dist contracts - 1.5.4.1 importer/distributors - 1.5.4.1.1 Local Companies - 1.5.4.1.2 Autonomous - 1.5.4.1.3 competitive relationship - 1.5.4.1.4 transportation - 1.5.4.1.5 insurance - 1.5.4.1.6 pricing - 1.5.4.1.7 customs - 1.5.4.1.8 advertixing - 1.5.4.2 procermex inc - 1.5.4.2.1 Modelo us subsidiary - 1.5.4.2.2 Support - 1.5.4.2.3 Supervise - 1.5.4.2.4 Coordinate - 1.5.4.3 Modelo had final say on brand image - 1.5.4.4 production in Mexico - 1.5.4.5 Chicago based Barton Beers 1st - 1.5.4.5.1 largest importer in 25 western states - 1.5.4.6 Gambrinus - 1.5.4.6.1 1986 - 1.5.4.6.2 eastern dist - 1.6 The Beer market - 1.6.1 traditionally a clustered market - 1.6.2 many local breweries - 1.6.3 no means of transport - 1.6.4 colsolition happened in 1800s - 1.6.5 different countries had different tastes - 1.6.6 90s national leaders expanded abroad - 1.6.7 startup costs high - 1.6.7.1 industry supported conectration - 1.6.8 Interbrew - 1.6.8.1 Belgian - 1.6.8.2 aquired breweries in 20 countries - 1.6.8.3 sales in 110 countries - 1.6.8.4 local managers controlling brands - 1.6.8.5 flagship brand: Stella Artois - 1.6.9 2004 merger - 1.6.9.1 #1 Interbrew - 1.6.9.2 #5 Am Bev - Brazil - 1.6.9.3 largest merge - 1.6.9.3.1 worth 12.8 billion - 1.6.10 2007 - 1.6.10.1 inbev - 1.6.10.2 SAP Miller - 1.6.10.3 Heineken - 1.6.10.3.1 produces beer domestically - 1.6.10.3.1.1 parent of local distributors - 1.6.10.3.1.1.1 marketing - 1.6.10.3.1.1.2 importing - 1.6.10.3.1.1.2.1 import taxes passed on to consumer - 1.6.10.3.1.1.3 distribution - 1.6.10.3.2 marketing - 1.6.10.3.2.1 premium beer - 1.6.10.3.2.2 premium brand - 1.6.10.3.2.3 no mythology - 1.6.10.3.2.4 superior taste - 1.6.10.3.2.5 2006 aggressive marketing campaign - 1.6.10.3.2.5.1 Heineken Premium Light - 1.6.10.3.3 reputation of top selling beer in world - 1.6.10.3.4 Dutch - 1.6.10.4 Anh Bush - 1.6.10.4.1 produces in foreign markets - 1.6.11 Beer Marketing - 1.6.11.1 People drink marketing - 1.6.12 Future - 1.6.12.1 domestic and foreign threats - 1.6.12.2 other merger talks - 1.6.12.3 Inbev in talks with Anh Bush - 1.6.12.3.1 Two biggest companies will create huge company - 1.6.12.4 Sales were decreasing due to competitive media budgets - 1.7 Mexico Industry - 1.7.1 has most trade agreements in world - 1.7.2 one of the largest domestic beer markets - 1.7.3 imported beer only 1% sales - 1.7.3.1 half were anh bcsh dist by modelo - 1.7.4 modelo - 1.7.4.1 NAFTA S.A. An Bucsh - 1.7.4.2 62.8% of market - 1.7.5 FEMSA - 1.7.5.1 domestic market - 1.7.5.1.1 37% of domestic market - 1.7.5.1.2 production and distribution in Mexico: peso not a threat - 1.7.5.1.3 Owns Oxxo C - 1.7.5.1.3.1 CA largest chain of conv stores - 1.7.5.1.4 leads domestic premium beer market - 1.7.5.1.5 997 to 2004 taking domestic market share - 1.7.5.1.6 NAFTA SACoca cola - 1.7.5.1.6.1 Exclusive distributor - 1.7.5.2 foriegn market - 1.7.5.2.1 Partnership Heiniken - 1.7.5.2.1.1 Distribution in US - 1.7.5.2.2 90s entry to us market failed - 1.7.5.2.3 Recently partnered with Heiniken for US market - 1.7.5.2.3.1 2005 18.7% growth + 1.2.2.1 top 10 beer producers in world + 1.2.2.1.1 Corona Extra + 1.2.2.1.1.1 Since 1997 #1 import in US + 1.2.2.1.1.1.1 outsold competitor by 50% + 1.2.2.1.1.2 56% shar of domestic market + 1.2.2.1.1.3 worlds fourth best selling beer + 1.2.2.1.2 2005 + 1.2.2.1.2.1 export sales 30% + 1.2.2.1.2.2 4% increase domestically + 1.2.2.1.2.3 12.3 % exports + 1.2.2.1.3 7.8 % sales growth compounded over ten years + 1.2.2.2 International Business model + 1.2.2.2.1 Capitalize on NAFTA + 1.2.2.2.2 Growing international demand + 1.2.2.2.3 experienced local distributors + 1.2.3 CEO Since 1997 + 1.2.3.1 29 years old + 1.2.3.1.1 working there since 13 + 1.3 Modelo in world + 1.3.1 One of top 10 breweries in world + 1.3.2 Fifth largest distributor in world + 1.3.2.1 in 12 years + 1.3.2.2 Can they sustain that trend + 1.3.3 International market protected Modelo from unstable peso + 1.4 Mexico Industry + 1.4.1 FEMSA + 1.4.1.1 foriegn market + 1.4.1.1.1 Recently partnered with Heiniken for US market + 1.4.1.1.1.1 2005 18.7% growth + 1.4.1.1.2 90s entry to us market failed + 1.4.1.1.3 Partnership Heiniken + 1.4.1.1.3.1 Distribution in US + 1.4.1.2 domestic market + 1.4.1.2.1 NAFTA SACoca cola + 1.4.1.2.1.1 Exclusive distributor + 1.4.1.2.2 997 to 2004 taking domestic market share + 1.4.1.2.3 leads domestic premium beer market + 1.4.1.2.4 Owns Oxxo C + 1.4.1.2.4.1 CA largest chain of conv stores + 1.4.1.2.5 production and distribution in Mexico: peso not a threat + 1.4.1.2.6 37% of domestic market + 1.4.2 modelo + 1.4.2.1 62.8% of market + 1.4.2.2 NAFTA S.A. An Bucsh + 1.4.3 imported beer only 1% sales + 1.4.3.1 half were anh bcsh dist by modelo + 1.4.4 one of the largest domestic beer markets + 1.4.5 has most trade agreements in world + 1.5 Modelo in Mexico + 1.5.1 Largest Beer producer and distrubutor in Mexico + 1.5.1.1 corona 56% share + 1.5.2 1971, Antonino Fernandez was appointed CEO + 1.5.2.1 Anheuser-Busch 17.7 % of the equity + 1.5.2.1.1 The 50.2 % represented 43.9% voting + 1.5.2.2 Mexican Stock exchange in 1994 + 1.5.3 History to 1970 + 1.5.3.1 bought the brands and assets of the Toluca y Mexico Brewery + 1.5.3.1.1 country's oldest brand of beer + 1.5.3.1.2 1935 + 1.5.3.2 1940s period of strong growth + 1.5.3.2.1 improve distribution methods and produc¬tion facilities + 1.5.3.2.1.1 distribution: direct with profit sharing + 1.5.3.2.2 concentrate domesti¬cally + 1.5.3.3 Corona 2nd Brand + 1.5.3.3.1 Clear Glass Customers preference + 1.5.3.4 Modelo 1st Brand + 1.5.3.5 focus on Mexico City + 1.5.3.6 formed in 1922 + 1.5.3.6.1 Fernandez Family Sole owner since 1936 + 1.5.3.6.2 Diez sole owner 1936 + 1.5.3.6.3 Iriarte died in 1932 + 1.5.3.6.4 Pablo Diez Fernandez, Braulio Irare, Marin Oyamburr + 1.6 US Beer Market + 1.6.1 volume main driver + 1.6.2 dense network of regional craft brewing + 1.6.3 80% of market + 1.6.3.1 Miller + 1.6.3.2 adolf coors + 1.6.3.3 AB + 1.6.3.3.1 75% of industry profits + 1.6.4 Groth expectations reduced + 1.6.5 Consumption six times higher per cap + 1.6.6 2nd largest nest to China + 1.7 Modelo in US + 1.7.1 Us dist contracts + 1.7.1.1 Gambrinus + 1.7.1.1.1 eastern dist + 1.7.1.1.2 1986 + 1.7.1.2 Chicago based Barton Beers 1st + 1.7.1.2.1 largest importer in 25 western states + 1.7.1.3 production in Mexico + 1.7.1.4 Modelo had final say on brand image + 1.7.1.5 procermex inc + 1.7.1.5.1 Coordinate + 1.7.1.5.2 Supervise + 1.7.1.5.3 Support + 1.7.1.5.4 Modelo us subsidiary + 1.7.1.6 importer/distributors + 1.7.1.6.1 advertixing + 1.7.1.6.2 customs + 1.7.1.6.3 pricing + 1.7.1.6.4 insurance + 1.7.1.6.5 transportation + 1.7.1.6.6 competitive relationship + 1.7.1.6.7 Autonomous + 1.7.1.6.8 Local Companies + 1.7.2 Marketing + 1.7.2.1 1996ad budget + 1.7.2.1.1 an bsch 192 mil + 1.7.2.1.2 Heiniken 15 mil + 1.7.2.1.3 Corona 5.1 mil + 1.7.2.2 Fun in the sun + 1.7.2.2.1 relaxation + 1.7.2.2.2 escape + 1.7.2.2.3 Barton Beer's idea + 1.7.2.3 dependable second choise + 1.7.2.4 beer for non beer drinkers + 1.7.2.5 found new following + 1.7.2.6 not testosterone driven + 1.7.2.7 not selling premium quality + 1.7.2.8 surfing mythology + 1.7.3 2007 5 beers to us + 1.7.3.1 131 million cases + 1.7.3.2 Heineken + 1.7.3.2.1 Main Import Comptitor + 1.7.3.3 3 of top 8 beers in US + 1.7.4 History + 1.7.4.1 1991 + 1.7.4.1.1 distributors took the loss + 1.7.4.1.2 doubling of federal excise tax on beer + 1.7.4.1.2.1 distributor absorb the tax 92 + 1.7.4.1.2.2 sales decrease of 15 percent + 1.7.4.2 rapid growth 1980s + 1.7.4.2.1 second most popular imported beer + 1.7.4.3 gained popularity in southern states + 1.7.4.4 Amalgamated Distillery Products Inc. ( + 1.7.4.4.1 later renamed Barton Beers Ltd. + 1.7.4.5 1979 diff --git a/wise-webapp/src/test/resources/data/export/bigmap.xls b/wise-webapp/src/test/resources/data/export/bigmap.xls index 1909ee20..79345d17 100644 --- a/wise-webapp/src/test/resources/data/export/bigmap.xls +++ b/wise-webapp/src/test/resources/data/export/bigmap.xls @@ -28,32 +28,247 @@ -Modelo in world +The Beer market -International market protected Modelo from unstable peso - - - - -Fifth largest distributor in world +Future -Can they sustain that trend +Sales were decreasing due to competitive media budgets -in 12 years +Inbev in talks with Anh Bush + + + + +Two biggest companies will create huge company + + + + +other merger talks + + + + +domestic and foreign threats -One of top 10 breweries in world +Beer Marketing + + + + +People drink marketing + + + + +2007 + + + + +Anh Bush + + + + +produces in foreign markets + + + + +Heineken + + + + +Dutch + + + + +reputation of top selling beer in world + + + + +marketing + + + + +2006 aggressive marketing campaign + + + + +Heineken Premium Light + + + + +superior taste + + + + +no mythology + + + + +premium brand + + + + +premium beer + + + + +produces beer domestically + + + + +parent of local distributors + + + + +distribution + + + + +importing + + + + +import taxes passed on to consumer + + + + +marketing + + + + +SAP Miller + + + + +inbev + + + + +2004 merger + + + + +largest merge + + + + +worth 12.8 billion + + + + +#5 Am Bev - Brazil + + + + +#1 Interbrew + + + + +Interbrew + + + + +flagship brand: Stella Artois + + + + +local managers controlling brands + + + + +sales in 110 countries + + + + +aquired breweries in 20 countries + + + + +Belgian + + + + +startup costs high + + + + +industry supported conectration + + + + +90s national leaders expanded abroad + + + + +different countries had different tastes + + + + +colsolition happened in 1800s + + + + +no means of transport + + + + +many local breweries + + + + +traditionally a clustered market @@ -63,6 +278,101 @@ +Expanding production + + + + +300 million investment + + + + +renovate facility in Zacatecas + + + + +vision: top five brewers + + + + +top 10 beer producers in world + + + + +Corona Extra + + + + +Since 1997 #1 import in US + + + + +outsold competitor by 50% + + + + +56% shar of domestic market + + + + +worlds fourth best selling beer + + + + +2005 + + + + +export sales 30% + + + + +4% increase domestically + + + + +12.3 % exports + + + + +7.8 % sales growth compounded over ten years + + + + +International Business model + + + + +Capitalize on NAFTA + + + + +Growing international demand + + + + +experienced local distributors + + + + CEO Since 1997 @@ -77,793 +387,33 @@ - -vision: top five brewers - - - - -International Business model - - - - -experienced local distributors - - - - -Growing international demand - - - - -Capitalize on NAFTA - - - - -top 10 beer producers in world - - - - -7.8 % sales growth compounded over ten years - - - - -2005 - - - - -12.3 % exports - - - - -4% increase domestically - - - - -export sales 30% - - - - -Corona Extra - - - - -worlds fourth best selling beer - - - - -56% shar of domestic market - - - - -Since 1997 #1 import in US - - - - -outsold competitor by 50% - - - - -Expanding production - - - - -renovate facility in Zacatecas - - - - -300 million investment - - - -US Beer Market +Modelo in world -2nd largest nest to China +One of top 10 breweries in world -Consumption six times higher per cap +Fifth largest distributor in world + + + + +in 12 years + + + + +Can they sustain that trend -Groth expectations reduced - - - - -80% of market - - - - -AB - - - - -75% of industry profits - - - - -adolf coors - - - - -Miller - - - - -dense network of regional craft brewing - - - - -volume main driver - - - - -Modelo in Mexico - - - - -History to 1970 - - - - -formed in 1922 - - - - -Pablo Diez Fernandez, Braulio Irare, Marin Oyamburr - - - - -Iriarte died in 1932 - - - - -Diez sole owner 1936 - - - - -Fernandez Family Sole owner since 1936 - - - - -focus on Mexico City - - - - -Modelo 1st Brand - - - - -Corona 2nd Brand - - - - -Clear Glass Customers preference - - - - -1940s period of strong growth - - - - -concentrate domesti¬cally - - - - -improve distribution methods and produc¬tion facilities - - - - -distribution: direct with profit sharing - - - - -bought the brands and assets of the Toluca y Mexico Brewery - - - - -1935 - - - - -country's oldest brand of beer - - - - -1971, Antonino Fernandez was appointed CEO - - - - -Mexican Stock exchange in 1994 - - - - -Anheuser-Busch 17.7 % of the equity - - - - -The 50.2 % represented 43.9% voting - - - - -Largest Beer producer and distrubutor in Mexico - - - - -corona 56% share - - - - -Modelo in US - - - - -History - - - - -1979 - - - - -Amalgamated Distillery Products Inc. ( - - - - -later renamed Barton Beers Ltd. - - - - -gained popularity in southern states - - - - -rapid growth 1980s - - - - -second most popular imported beer - - - - -1991 - - - - -doubling of federal excise tax on beer - - - - -sales decrease of 15 percent - - - - -distributor absorb the tax 92 - - - - -distributors took the loss - - - - -2007 5 beers to us - - - - -3 of top 8 beers in US - - - - -Heineken - - - - -Main Import Comptitor - - - - -131 million cases - - - - -Marketing - - - - -surfing mythology - - - - -not selling premium quality - - - - -not testosterone driven - - - - -found new following - - - - -beer for non beer drinkers - - - - -dependable second choise - - - - -Fun in the sun - - - - -Barton Beer's idea - - - - -escape - - - - -relaxation - - - - -1996ad budget - - - - -Corona 5.1 mil - - - - -Heiniken 15 mil - - - - -an bsch 192 mil - - - - -Us dist contracts - - - - -importer/distributors - - - - -Local Companies - - - - -Autonomous - - - - -competitive relationship - - - - -transportation - - - - -insurance - - - - -pricing - - - - -customs - - - - -advertixing - - - - -procermex inc - - - - -Modelo us subsidiary - - - - -Support - - - - -Supervise - - - - -Coordinate - - - - -Modelo had final say on brand image - - - - -production in Mexico - - - - -Chicago based Barton Beers 1st - - - - -largest importer in 25 western states - - - - -Gambrinus - - - - -1986 - - - - -eastern dist - - - - -The Beer market - - - - -traditionally a clustered market - - - - -many local breweries - - - - -no means of transport - - - - -colsolition happened in 1800s - - - - -different countries had different tastes - - - - -90s national leaders expanded abroad - - - - -startup costs high - - - - -industry supported conectration - - - - -Interbrew - - - - -Belgian - - - - -aquired breweries in 20 countries - - - - -sales in 110 countries - - - - -local managers controlling brands - - - - -flagship brand: Stella Artois - - - - -2004 merger - - - - -#1 Interbrew - - - - -#5 Am Bev - Brazil - - - - -largest merge - - - - -worth 12.8 billion - - - - -2007 - - - - -inbev - - - - -SAP Miller - - - - -Heineken - - - - -produces beer domestically - - - - -parent of local distributors - - - - -marketing - - - - -importing - - - - -import taxes passed on to consumer - - - - -distribution - - - - -marketing - - - - -premium beer - - - - -premium brand - - - - -no mythology - - - - -superior taste - - - - -2006 aggressive marketing campaign - - - - -Heineken Premium Light - - - - -reputation of top selling beer in world - - - - -Dutch - - - - -Anh Bush - - - - -produces in foreign markets - - - - -Beer Marketing - - - - -People drink marketing - - - - -Future - - - - -domestic and foreign threats - - - - -other merger talks - - - - -Inbev in talks with Anh Bush - - - - -Two biggest companies will create huge company - - - - -Sales were decreasing due to competitive media budgets +International market protected Modelo from unstable peso @@ -873,57 +423,62 @@ -has most trade agreements in world - - - - -one of the largest domestic beer markets - - - - -imported beer only 1% sales - - - - -half were anh bcsh dist by modelo - - - - -modelo - - - - -NAFTA S.A. An Bucsh - - - - -62.8% of market - - - - FEMSA +foriegn market + + + + +Recently partnered with Heiniken for US market + + + + +2005 18.7% growth + + + + +90s entry to us market failed + + + + +Partnership Heiniken + + + + +Distribution in US + + + + domestic market -37% of domestic market +NAFTA SACoca cola + + + + +Exclusive distributor -production and distribution in Mexico: peso not a threat +997 to 2004 taking domestic market share + + + + +leads domestic premium beer market @@ -938,52 +493,497 @@ -leads domestic premium beer market +production and distribution in Mexico: peso not a threat -997 to 2004 taking domestic market share +37% of domestic market - -NAFTA SACoca cola - - - - -Exclusive distributor + +modelo -foriegn market +62.8% of market + + + + +NAFTA S.A. An Bucsh + + + + +imported beer only 1% sales + + + + +half were anh bcsh dist by modelo + + + + +one of the largest domestic beer markets + + + + +has most trade agreements in world + + + + +Modelo in Mexico + + + + +Largest Beer producer and distrubutor in Mexico + + + + +corona 56% share + + + + +1971, Antonino Fernandez was appointed CEO + + + + +Anheuser-Busch 17.7 % of the equity -Partnership Heiniken +The 50.2 % represented 43.9% voting + + + + +Mexican Stock exchange in 1994 + + + + +History to 1970 + + + + +bought the brands and assets of the Toluca y Mexico Brewery + + + + +country's oldest brand of beer + + + + +1935 + + + + +1940s period of strong growth + + + + +improve distribution methods and produc¬tion facilities -Distribution in US +distribution: direct with profit sharing -90s entry to us market failed +concentrate domesti¬cally + + + + +Corona 2nd Brand -Recently partnered with Heiniken for US market +Clear Glass Customers preference + + + + +Modelo 1st Brand + + + + +focus on Mexico City + + + + +formed in 1922 + + + + +Fernandez Family Sole owner since 1936 + + + + +Diez sole owner 1936 + + + + +Iriarte died in 1932 + + + + +Pablo Diez Fernandez, Braulio Irare, Marin Oyamburr + + + + +US Beer Market + + + + +volume main driver + + + + +dense network of regional craft brewing + + + + +80% of market + + + + +Miller + + + + +adolf coors + + + + +AB + + + + +75% of industry profits + + + + +Groth expectations reduced + + + + +Consumption six times higher per cap + + + + +2nd largest nest to China + + + + +Modelo in US + + + + +Us dist contracts + + + + +Gambrinus + + + + +eastern dist + + + + +1986 + + + + +Chicago based Barton Beers 1st + + + + +largest importer in 25 western states + + + + +production in Mexico + + + + +Modelo had final say on brand image + + + + +procermex inc + + + + +Coordinate + + + + +Supervise + + + + +Support + + + + +Modelo us subsidiary + + + + +importer/distributors + + + + +advertixing + + + + +customs + + + + +pricing + + + + +insurance + + + + +transportation + + + + +competitive relationship + + + + +Autonomous + + + + +Local Companies + + + + +Marketing + + + + +1996ad budget + + + + +an bsch 192 mil + + + + +Heiniken 15 mil + + + + +Corona 5.1 mil + + + + +Fun in the sun + + + + +relaxation + + + + +escape + + + + +Barton Beer's idea + + + + +dependable second choise + + + + +beer for non beer drinkers + + + + +found new following + + + + +not testosterone driven + + + + +not selling premium quality + + + + +surfing mythology + + + + +2007 5 beers to us + + + + +131 million cases + + + + +Heineken + + + + +Main Import Comptitor + + + + +3 of top 8 beers in US + + + + +History + + + + +1991 + + + + +distributors took the loss + + + + +doubling of federal excise tax on beer -2005 18.7% growth +distributor absorb the tax 92 + + + + +sales decrease of 15 percent + + + + +rapid growth 1980s + + + + +second most popular imported beer + + + + +gained popularity in southern states + + + + +Amalgamated Distillery Products Inc. ( + + + + +later renamed Barton Beers Ltd. + + + + +1979 diff --git a/wise-webapp/src/test/resources/data/export/bug2.csv b/wise-webapp/src/test/resources/data/export/bug2.csv index 6b4635b5..936e380e 100644 --- a/wise-webapp/src/test/resources/data/export/bug2.csv +++ b/wise-webapp/src/test/resources/data/export/bug2.csv @@ -1,8 +1,45 @@ SaberMás +, + Complementamos el trabajo de la escuela +, + , + SaberMás trabaja con, desde y para la motivación +, + , + Trabajamos en equipo en nuestros proyectos +, + , + Cada uno va a su ritmo, y cada cual pone sus límites +, + , + Aprendemos todos de todos +, + , + Valoramos lo que hemos aprendido +, + Estructura PBL: aprendemos cuando buscamos respuestas a nuestras propias preguntas +, + Trabajo basado en la experimentación y en la investigación +, + Alternativa a otras actividades de ocio +, + Actividades centradas en el contexto cercano +, + Duración limitada: 5-6 semanas , Utilización de medios de expresión artística, digitales y analógicos , Precio también limitado: 100-120? +, + Uso de la tecnología durante todo el proceso de aprendizaje +, + Niños y niñas que quieren saber más +, + Flexibilidad en el uso de las lenguas de trabajo (inglés, castellano, esukara?) +, + De 8 a 12 años, sin separación por edades +, + Máximo 10/1 por taller , Talleres temáticos , @@ -15,9 +52,19 @@ SaberMás , , Arqueología +, + , + Culturas Antiguas +, + , + , + Egipto, Grecia, China... , , Energía +, + , + Paleontología , , Astronomía @@ -30,50 +77,3 @@ SaberMás , , Poesía -, - , - Culturas Antiguas -, - , - , - Egipto, Grecia, China... -, - , - Paleontología -, - Duración limitada: 5-6 semanas -, - Niños y niñas que quieren saber más -, - Alternativa a otras actividades de ocio -, - Uso de la tecnología durante todo el proceso de aprendizaje -, - Estructura PBL: aprendemos cuando buscamos respuestas a nuestras propias preguntas -, - Trabajo basado en la experimentación y en la investigación -, - De 8 a 12 años, sin separación por edades -, - Máximo 10/1 por taller -, - Actividades centradas en el contexto cercano -, - Flexibilidad en el uso de las lenguas de trabajo (inglés, castellano, esukara?) -, - Complementamos el trabajo de la escuela -, - , - Cada uno va a su ritmo, y cada cual pone sus límites -, - , - Aprendemos todos de todos -, - , - Valoramos lo que hemos aprendido -, - , - SaberMás trabaja con, desde y para la motivación -, - , - Trabajamos en equipo en nuestros proyectos diff --git a/wise-webapp/src/test/resources/data/export/bug2.doc b/wise-webapp/src/test/resources/data/export/bug2.doc index 6a26f456..c6ec5345 100644 --- a/wise-webapp/src/test/resources/data/export/bug2.doc +++ b/wise-webapp/src/test/resources/data/export/bug2.doc @@ -267,6 +267,131 @@ +Complementamos el trabajo de la escuela + + + + + + + + + Todos los contenidos de los talleres están relacionados con el currículo de la enseñanza básica. + A diferencia de la práctica tradicional, pretendemos ahondar en el conocimiento partiendo de lo que realmente interesa al niño o niña, + ayudándole a que encuentre respuesta a las preguntas que él o ella se plantea. + + Por ese motivo, SaberMás proyecta estar al lado de los niños que necesitan una motivación extra para entender la escuela y fluir en ella, + y también al lado de aquellos a quienes la curiosidad y las ganas de saber les lleva más allá. + + + + + + + + + +SaberMás trabaja con, desde y para la motivación + + + + + + + + + +Trabajamos en equipo en nuestros proyectos + + + + + + + + + +Cada uno va a su ritmo, y cada cual pone sus límites + + + + + + + + + +Aprendemos todos de todos + + + + + + + + + +Valoramos lo que hemos aprendido + + + + + + + + + + +Estructura PBL: aprendemos cuando buscamos respuestas a nuestras propias preguntas + + + + + + + + + +Trabajo basado en la experimentación y en la investigación + + + + + + + + + +Alternativa a otras actividades de ocio + + + + + + + + + +Actividades centradas en el contexto cercano + + + + + + + + + +Duración limitada: 5-6 semanas + + + + + + + + + Utilización de medios de expresión artística, digitales y analógicos @@ -287,6 +412,56 @@ +Uso de la tecnología durante todo el proceso de aprendizaje + + + + + + + + + +Niños y niñas que quieren saber más + + + + + + + + + +Flexibilidad en el uso de las lenguas de trabajo (inglés, castellano, esukara?) + + + + + + + + + +De 8 a 12 años, sin separación por edades + + + + + + + + + +Máximo 10/1 por taller + + + + + + + + + Talleres temáticos @@ -326,6 +501,26 @@ +Culturas Antiguas + + + + + + + + +Egipto, Grecia, China... + + + + + + + + + + Energía @@ -336,6 +531,16 @@ +Paleontología + + + + + + + + + Astronomía @@ -370,211 +575,6 @@ - - - - - - -Culturas Antiguas - - - - - - - - -Egipto, Grecia, China... - - - - - - - - - - -Paleontología - - - - - - - - - - -Duración limitada: 5-6 semanas - - - - - - - - - -Niños y niñas que quieren saber más - - - - - - - - - -Alternativa a otras actividades de ocio - - - - - - - - - -Uso de la tecnología durante todo el proceso de aprendizaje - - - - - - - - - -Estructura PBL: aprendemos cuando buscamos respuestas a nuestras propias preguntas - - - - - - - - - -Trabajo basado en la experimentación y en la investigación - - - - - - - - - -De 8 a 12 años, sin separación por edades - - - - - - - - - -Máximo 10/1 por taller - - - - - - - - - -Actividades centradas en el contexto cercano - - - - - - - - - -Flexibilidad en el uso de las lenguas de trabajo (inglés, castellano, esukara?) - - - - - - - - - -Complementamos el trabajo de la escuela - - - - - - - - - Todos los contenidos de los talleres están relacionados con el currículo de la enseñanza básica. - A diferencia de la práctica tradicional, pretendemos ahondar en el conocimiento partiendo de lo que realmente interesa al niño o niña, - ayudándole a que encuentre respuesta a las preguntas que él o ella se plantea. - - Por ese motivo, SaberMás proyecta estar al lado de los niños que necesitan una motivación extra para entender la escuela y fluir en ella, - y también al lado de aquellos a quienes la curiosidad y las ganas de saber les lleva más allá. - - - - - - - - - -Cada uno va a su ritmo, y cada cual pone sus límites - - - - - - - - - -Aprendemos todos de todos - - - - - - - - - -Valoramos lo que hemos aprendido - - - - - - - - - -SaberMás trabaja con, desde y para la motivación - - - - - - - - - -Trabajamos en equipo en nuestros proyectos - - - diff --git a/wise-webapp/src/test/resources/data/export/bug2.latex b/wise-webapp/src/test/resources/data/export/bug2.latex index e8c27573..b2033118 100644 --- a/wise-webapp/src/test/resources/data/export/bug2.latex +++ b/wise-webapp/src/test/resources/data/export/bug2.latex @@ -1,32 +1,32 @@ \chapter{SaberMás}\label{ID_1} + \section{Complementamos el trabajo de la escuela}\label{ID_27}Todos los contenidos de los talleres están relacionados con el currículo de la enseñanza básica.A diferencia de la práctica tradicional, pretendemos ahondar en el conocimiento partiendo de lo que realmente interesa al niño o niña,ayudándole a que encuentre respuesta a las preguntas que él o ella se plantea.Por ese motivo, SaberMás proyecta estar al lado de los niños que necesitan una motivación extra para entender la escuela y fluir en ella,y también al lado de aquellos a quienes la curiosidad y las ganas de saber les lleva más allá. + \subsection{SaberMás trabaja con, desde y para la motivación}\label{ID_28} + \subsection{Trabajamos en equipo en nuestros proyectos }\label{ID_32} + \subsection{Cada uno va a su ritmo, y cada cual pone sus límites}\label{ID_30} + \subsection{Aprendemos todos de todos}\label{ID_31} + \subsection{Valoramos lo que hemos aprendido}\label{ID_33} + \section{Estructura PBL: aprendemos cuando buscamos respuestas a nuestras propias preguntas }\label{ID_3} + \section{Trabajo basado en la experimentación y en la investigación}\label{ID_4} + \section{Alternativa a otras actividades de ocio}\label{ID_8} + \section{Actividades centradas en el contexto cercano}\label{ID_37} + \section{Duración limitada: 5-6 semanas}\label{ID_6} \section{Utilización de medios de expresión artística, digitales y analógicos}\label{ID_5} \section{Precio también limitado: 100-120?}\label{ID_9} + \section{Uso de la tecnología durante todo el proceso de aprendizaje}\label{ID_23} + \section{Niños y niñas que quieren saber más}\label{ID_7} + \section{Flexibilidad en el uso de las lenguas de trabajo (inglés, castellano, esukara?)}\label{ID_22} + \section{De 8 a 12 años, sin separación por edades}\label{ID_10} + \section{Máximo 10/1 por taller}\label{ID_19} \section{Talleres temáticos}\label{ID_2} \subsection{Naturaleza}\label{ID_13} \subsubsection{Animales, Plantas, Piedras}\label{ID_17} \subsection{Arqueología}\label{ID_21} + \subsection{Culturas Antiguas}\label{ID_25} + \subsubsection{Egipto, Grecia, China...}\label{ID_26} \subsection{Energía}\label{ID_18} + \subsection{Paleontología}\label{ID_38} \subsection{Astronomía}\label{ID_16} \subsection{Arquitectura}\label{ID_20} \subsection{Cocina}\label{ID_11} - \subsection{Poesía}\label{ID_24} - \subsection{Culturas Antiguas}\label{ID_25} - \subsubsection{Egipto, Grecia, China...}\label{ID_26} - \subsection{Paleontología}\label{ID_38} - \section{Duración limitada: 5-6 semanas}\label{ID_6} - \section{Niños y niñas que quieren saber más}\label{ID_7} - \section{Alternativa a otras actividades de ocio}\label{ID_8} - \section{Uso de la tecnología durante todo el proceso de aprendizaje}\label{ID_23} - \section{Estructura PBL: aprendemos cuando buscamos respuestas a nuestras propias preguntas }\label{ID_3} - \section{Trabajo basado en la experimentación y en la investigación}\label{ID_4} - \section{De 8 a 12 años, sin separación por edades}\label{ID_10} - \section{Máximo 10/1 por taller}\label{ID_19} - \section{Actividades centradas en el contexto cercano}\label{ID_37} - \section{Flexibilidad en el uso de las lenguas de trabajo (inglés, castellano, esukara?)}\label{ID_22} - \section{Complementamos el trabajo de la escuela}\label{ID_27}Todos los contenidos de los talleres están relacionados con el currículo de la enseñanza básica.A diferencia de la práctica tradicional, pretendemos ahondar en el conocimiento partiendo de lo que realmente interesa al niño o niña,ayudándole a que encuentre respuesta a las preguntas que él o ella se plantea.Por ese motivo, SaberMás proyecta estar al lado de los niños que necesitan una motivación extra para entender la escuela y fluir en ella,y también al lado de aquellos a quienes la curiosidad y las ganas de saber les lleva más allá. - \subsection{Cada uno va a su ritmo, y cada cual pone sus límites}\label{ID_30} - \subsection{Aprendemos todos de todos}\label{ID_31} - \subsection{Valoramos lo que hemos aprendido}\label{ID_33} - \subsection{SaberMás trabaja con, desde y para la motivación}\label{ID_28} - \subsection{Trabajamos en equipo en nuestros proyectos }\label{ID_32} \ No newline at end of file + \subsection{Poesía}\label{ID_24} \ No newline at end of file diff --git a/wise-webapp/src/test/resources/data/export/bug2.mm b/wise-webapp/src/test/resources/data/export/bug2.mm index 5d08cb8f..71f38497 100644 --- a/wise-webapp/src/test/resources/data/export/bug2.mm +++ b/wise-webapp/src/test/resources/data/export/bug2.mm @@ -1,32 +1,5 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -41,11 +14,38 @@ + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/wise-webapp/src/test/resources/data/export/bug2.mmap b/wise-webapp/src/test/resources/data/export/bug2.mmap index 6b512a4d..da9894a1 100644 --- a/wise-webapp/src/test/resources/data/export/bug2.mmap +++ b/wise-webapp/src/test/resources/data/export/bug2.mmap @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/wise-webapp/src/test/resources/data/export/bug2.odt b/wise-webapp/src/test/resources/data/export/bug2.odt index 2718f918..7b67b000 100644 --- a/wise-webapp/src/test/resources/data/export/bug2.odt +++ b/wise-webapp/src/test/resources/data/export/bug2.odt @@ -79,30 +79,6 @@ SaberMás -Utilización de medios de expresión artística, digitales y analógicos -Precio también limitado: 100-120? -Talleres temáticos -Naturaleza -Animales, Plantas, Piedras -Arqueología -Energía -Astronomía -Arquitectura -Cocina -Poesía -Culturas Antiguas -Egipto, Grecia, China... -Paleontología -Duración limitada: 5-6 semanas -Niños y niñas que quieren saber más -Alternativa a otras actividades de ocio -Uso de la tecnología durante todo el proceso de aprendizaje -Estructura PBL: aprendemos cuando buscamos respuestas a nuestras propias preguntas -Trabajo basado en la experimentación y en la investigación -De 8 a 12 años, sin separación por edades -Máximo 10/1 por taller -Actividades centradas en el contexto cercano -Flexibilidad en el uso de las lenguas de trabajo (inglés, castellano, esukara?) Complementamos el trabajo de la escuela Todos los contenidos de los talleres están relacionados con el currículo de la enseñanza básica. A diferencia de la práctica tradicional, pretendemos ahondar en el conocimiento partiendo de lo que realmente interesa al niño o niña, @@ -110,11 +86,35 @@ Por ese motivo, SaberMás proyecta estar al lado de los niños que necesitan una motivación extra para entender la escuela y fluir en ella, y también al lado de aquellos a quienes la curiosidad y las ganas de saber les lleva más allá. +SaberMás trabaja con, desde y para la motivación +Trabajamos en equipo en nuestros proyectos Cada uno va a su ritmo, y cada cual pone sus límites Aprendemos todos de todos Valoramos lo que hemos aprendido -SaberMás trabaja con, desde y para la motivación -Trabajamos en equipo en nuestros proyectos +Estructura PBL: aprendemos cuando buscamos respuestas a nuestras propias preguntas +Trabajo basado en la experimentación y en la investigación +Alternativa a otras actividades de ocio +Actividades centradas en el contexto cercano +Duración limitada: 5-6 semanas +Utilización de medios de expresión artística, digitales y analógicos +Precio también limitado: 100-120? +Uso de la tecnología durante todo el proceso de aprendizaje +Niños y niñas que quieren saber más +Flexibilidad en el uso de las lenguas de trabajo (inglés, castellano, esukara?) +De 8 a 12 años, sin separación por edades +Máximo 10/1 por taller +Talleres temáticos +Naturaleza +Animales, Plantas, Piedras +Arqueología +Culturas Antiguas +Egipto, Grecia, China... +Energía +Paleontología +Astronomía +Arquitectura +Cocina +Poesía diff --git a/wise-webapp/src/test/resources/data/export/bug2.txt b/wise-webapp/src/test/resources/data/export/bug2.txt index 6bff8912..558b6b9d 100644 --- a/wise-webapp/src/test/resources/data/export/bug2.txt +++ b/wise-webapp/src/test/resources/data/export/bug2.txt @@ -1,32 +1,32 @@ 1 SaberMás - 1.1 Utilización de medios de expresión artística, digitales y analógicos - 1.2 Precio también limitado: 100-120? - 1.3 Talleres temáticos - 1.3.1 Naturaleza - 1.3.1.1 Animales, Plantas, Piedras - 1.3.2 Arqueología - 1.3.3 Energía - 1.3.4 Astronomía - 1.3.5 Arquitectura - 1.3.6 Cocina - 1.3.7 Poesía - 1.3.8 Culturas Antiguas - 1.3.8.1 Egipto, Grecia, China... - 1.3.9 Paleontología - 1.4 Duración limitada: 5-6 semanas - 1.5 Niños y niñas que quieren saber más - 1.6 Alternativa a otras actividades de ocio - 1.7 Uso de la tecnología durante todo el proceso de aprendizaje - 1.8 Estructura PBL: aprendemos cuando buscamos respuestas a nuestras propias preguntas - 1.9 Trabajo basado en la experimentación y en la investigación - 1.10 De 8 a 12 años, sin separación por edades - 1.11 Máximo 10/1 por taller - 1.12 Actividades centradas en el contexto cercano - 1.13 Flexibilidad en el uso de las lenguas de trabajo (inglés, castellano, esukara?) - 1.14 Complementamos el trabajo de la escuela + 1.1 Complementamos el trabajo de la escuela * Note: Todos los contenidos de los talleres están relacionados con el currículo de la enseñanza básica.A diferencia de la práctica tradicional, pretendemos ahondar en el conocimiento partiendo de lo que realmente interesa al niño o niña,ayudándole a que encuentre respuesta a las preguntas que él o ella se plantea.Por ese motivo, SaberMás proyecta estar al lado de los niños que necesitan una motivación extra para entender la escuela y fluir en ella,y también al lado de aquellos a quienes la curiosidad y las ganas de saber les lleva más allá. - 1.14.1 Cada uno va a su ritmo, y cada cual pone sus límites - 1.14.2 Aprendemos todos de todos - 1.14.3 Valoramos lo que hemos aprendido - 1.14.4 SaberMás trabaja con, desde y para la motivación - 1.14.5 Trabajamos en equipo en nuestros proyectos + 1.1.1 SaberMás trabaja con, desde y para la motivación + 1.1.2 Trabajamos en equipo en nuestros proyectos + 1.1.3 Cada uno va a su ritmo, y cada cual pone sus límites + 1.1.4 Aprendemos todos de todos + 1.1.5 Valoramos lo que hemos aprendido + 1.2 Estructura PBL: aprendemos cuando buscamos respuestas a nuestras propias preguntas + 1.3 Trabajo basado en la experimentación y en la investigación + 1.4 Alternativa a otras actividades de ocio + 1.5 Actividades centradas en el contexto cercano + 1.6 Duración limitada: 5-6 semanas + 1.7 Utilización de medios de expresión artística, digitales y analógicos + 1.8 Precio también limitado: 100-120? + 1.9 Uso de la tecnología durante todo el proceso de aprendizaje + 1.10 Niños y niñas que quieren saber más + 1.11 Flexibilidad en el uso de las lenguas de trabajo (inglés, castellano, esukara?) + 1.12 De 8 a 12 años, sin separación por edades + 1.13 Máximo 10/1 por taller + 1.14 Talleres temáticos + 1.14.1 Naturaleza + 1.14.1.1 Animales, Plantas, Piedras + 1.14.2 Arqueología + 1.14.3 Culturas Antiguas + 1.14.3.1 Egipto, Grecia, China... + 1.14.4 Energía + 1.14.5 Paleontología + 1.14.6 Astronomía + 1.14.7 Arquitectura + 1.14.8 Cocina + 1.14.9 Poesía diff --git a/wise-webapp/src/test/resources/data/export/bug2.xls b/wise-webapp/src/test/resources/data/export/bug2.xls index b2b5e3f6..1c0ff92f 100644 --- a/wise-webapp/src/test/resources/data/export/bug2.xls +++ b/wise-webapp/src/test/resources/data/export/bug2.xls @@ -28,6 +28,71 @@ +Complementamos el trabajo de la escuela + + +

    Todos los contenidos de los talleres están relacionados con el currículo de la enseñanza básica.

    +

    A diferencia de la práctica tradicional, pretendemos ahondar en el conocimiento partiendo de lo que realmente interesa al niño o niña,

    +

    ayudándole a que encuentre respuesta a las preguntas que él o ella se plantea.

    +

    +

    Por ese motivo, SaberMás proyecta estar al lado de los niños que necesitan una motivación extra para entender la escuela y fluir en ella,

    +

    y también al lado de aquellos a quienes la curiosidad y las ganas de saber les lleva más allá.

    +
    +
    +
    +
    + + +SaberMás trabaja con, desde y para la motivación + + + + +Trabajamos en equipo en nuestros proyectos + + + + +Cada uno va a su ritmo, y cada cual pone sus límites + + + + +Aprendemos todos de todos + + + + +Valoramos lo que hemos aprendido + + + + +Estructura PBL: aprendemos cuando buscamos respuestas a nuestras propias preguntas + + + + +Trabajo basado en la experimentación y en la investigación + + + + +Alternativa a otras actividades de ocio + + + + +Actividades centradas en el contexto cercano + + + + +Duración limitada: 5-6 semanas + + + + Utilización de medios de expresión artística, digitales y analógicos @@ -38,6 +103,31 @@ +Uso de la tecnología durante todo el proceso de aprendizaje + + + + +Niños y niñas que quieren saber más + + + + +Flexibilidad en el uso de las lenguas de trabajo (inglés, castellano, esukara?) + + + + +De 8 a 12 años, sin separación por edades + + + + +Máximo 10/1 por taller + + + + Talleres temáticos @@ -58,11 +148,26 @@ +Culturas Antiguas + + + + +Egipto, Grecia, China... + + + + Energía +Paleontología + + + + Astronomía @@ -81,111 +186,6 @@ Poesía - - -Culturas Antiguas - - - - -Egipto, Grecia, China... - - - - -Paleontología - - - - -Duración limitada: 5-6 semanas - - - - -Niños y niñas que quieren saber más - - - - -Alternativa a otras actividades de ocio - - - - -Uso de la tecnología durante todo el proceso de aprendizaje - - - - -Estructura PBL: aprendemos cuando buscamos respuestas a nuestras propias preguntas - - - - -Trabajo basado en la experimentación y en la investigación - - - - -De 8 a 12 años, sin separación por edades - - - - -Máximo 10/1 por taller - - - - -Actividades centradas en el contexto cercano - - - - -Flexibilidad en el uso de las lenguas de trabajo (inglés, castellano, esukara?) - - - - -Complementamos el trabajo de la escuela - - -

    Todos los contenidos de los talleres están relacionados con el currículo de la enseñanza básica.

    -

    A diferencia de la práctica tradicional, pretendemos ahondar en el conocimiento partiendo de lo que realmente interesa al niño o niña,

    -

    ayudándole a que encuentre respuesta a las preguntas que él o ella se plantea.

    -

    -

    Por ese motivo, SaberMás proyecta estar al lado de los niños que necesitan una motivación extra para entender la escuela y fluir en ella,

    -

    y también al lado de aquellos a quienes la curiosidad y las ganas de saber les lleva más allá.

    -
    -
    -
    -
    - - -Cada uno va a su ritmo, y cada cual pone sus límites - - - - -Aprendemos todos de todos - - - - -Valoramos lo que hemos aprendido - - - - -SaberMás trabaja con, desde y para la motivación - - - - -Trabajamos en equipo en nuestros proyectos - - diff --git a/wise-webapp/src/test/resources/data/export/bug3.csv b/wise-webapp/src/test/resources/data/export/bug3.csv index 7cf59b2e..e0efcab9 100644 --- a/wise-webapp/src/test/resources/data/export/bug3.csv +++ b/wise-webapp/src/test/resources/data/export/bug3.csv @@ -1340,6 +1340,22 @@ Indicator needs , , +, + How to improve image +, + , + Rankings +, + , + , + macro indicators +, + , + , + meso-indicators +, + , + Innovation investment climate , What investments in innovative projects , @@ -1493,19 +1509,3 @@ Indicator needs , , Private investment in innovation -, - How to improve image -, - , - Rankings -, - , - , - macro indicators -, - , - , - meso-indicators -, - , - Innovation investment climate diff --git a/wise-webapp/src/test/resources/data/export/bug3.doc b/wise-webapp/src/test/resources/data/export/bug3.doc index 0f21a468..85002d6c 100644 --- a/wise-webapp/src/test/resources/data/export/bug3.doc +++ b/wise-webapp/src/test/resources/data/export/bug3.doc @@ -2694,6 +2694,56 @@ +How to improve image + + + + + + + + +Rankings + + + + + + + + +macro indicators + + + + + + + + + +meso-indicators + + + + + + + + + + +Innovation investment climate + + + + + + + + + + What investments in innovative projects @@ -3008,56 +3058,6 @@ - - - - - - -How to improve image - - - - - - - - -Rankings - - - - - - - - -macro indicators - - - - - - - - - -meso-indicators - - - - - - - - - - -Innovation investment climate - - - - diff --git a/wise-webapp/src/test/resources/data/export/bug3.latex b/wise-webapp/src/test/resources/data/export/bug3.latex index 8b0d7b38..beec3ea8 100644 --- a/wise-webapp/src/test/resources/data/export/bug3.latex +++ b/wise-webapp/src/test/resources/data/export/bug3.latex @@ -381,6 +381,11 @@ \subsubsection{Impact assessment }\label{ID_290} \subsubsection{}\label{ID_291} \subsubsection{}\label{ID_296} + \section{How to improve image}\label{ID_69} + \subsection{Rankings}\label{ID_75} + \subsubsection{macro indicators}\label{ID_70} + \subsubsection{meso-indicators}\label{ID_71} + \subsection{Innovation investment climate}\label{ID_76} \section{What investments in innovative projects}\label{ID_7}Understanding what investments should be made in innovative projects. \subsection{Competitive niches}\label{ID_61} \subsubsection{Clusters behavior}\label{ID_59}\begin{itemize} @@ -430,9 +435,4 @@ \end{itemize} \subsection{Competitiveness support factors}\label{ID_64} - \subsubsection{Private investment in innovation}\label{ID_68} - \section{How to improve image}\label{ID_69} - \subsection{Rankings}\label{ID_75} - \subsubsection{macro indicators}\label{ID_70} - \subsubsection{meso-indicators}\label{ID_71} - \subsection{Innovation investment climate}\label{ID_76} \ No newline at end of file + \subsubsection{Private investment in innovation}\label{ID_68} \ No newline at end of file diff --git a/wise-webapp/src/test/resources/data/export/bug3.mm b/wise-webapp/src/test/resources/data/export/bug3.mm index 3d3e4fb1..a8772d63 100644 --- a/wise-webapp/src/test/resources/data/export/bug3.mm +++ b/wise-webapp/src/test/resources/data/export/bug3.mm @@ -1,4 +1,4 @@ - + @@ -332,7 +332,6 @@ - @@ -775,6 +774,7 @@ + @@ -956,7 +956,16 @@ - +
    + + + + + + + + + @@ -1030,13 +1039,5 @@ - - - - - - - -
    \ No newline at end of file diff --git a/wise-webapp/src/test/resources/data/export/bug3.mmap b/wise-webapp/src/test/resources/data/export/bug3.mmap index 336739bb..ad8f1e32 100644 --- a/wise-webapp/src/test/resources/data/export/bug3.mmap +++ b/wise-webapp/src/test/resources/data/export/bug3.mmap @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/wise-webapp/src/test/resources/data/export/bug3.odt b/wise-webapp/src/test/resources/data/export/bug3.odt index 10660a15..29c594b0 100644 --- a/wise-webapp/src/test/resources/data/export/bug3.odt +++ b/wise-webapp/src/test/resources/data/export/bug3.odt @@ -348,6 +348,11 @@ Impact assessment Average leverage of 1rub (there would beseveral programs with different leverage) Volume of attracted money per one rubleof regional budget expenditures on innovation projects +How to improve image +Rankings +macro indicators +meso-indicators +Innovation investment climate What investments in innovative projects Understanding what investments should be made in innovative projects. Competitive niches @@ -381,11 +386,6 @@ FASIE projects: Number of projects supportedby the FASIE per 1,000 workers [awards/worker] Competitiveness support factors Private investment in innovation -How to improve image -Rankings -macro indicators -meso-indicators -Innovation investment climate diff --git a/wise-webapp/src/test/resources/data/export/bug3.txt b/wise-webapp/src/test/resources/data/export/bug3.txt index 0debeb4e..9f69daf9 100644 --- a/wise-webapp/src/test/resources/data/export/bug3.txt +++ b/wise-webapp/src/test/resources/data/export/bug3.txt @@ -51,7 +51,7 @@ 1.3.2.1.2 Volume of manufacturing production per capita 1.3.2.1.3 Manufacturing value added per capita (non-natural resource-based) 1.3.2.2 The enabling environment - (see:Innovation investment climate) 1.3.2.2.1 Ease of doing business + 1.3.2.2.1 Ease of doing business * Note: WB 1.3.2.2.1.1 Level of administrative barriers (number and cost of administrative procedures) 1.3.2.2.2 Competition index @@ -205,7 +205,7 @@ 1.3.2.4.2.3 Access to certification and licensing for specific activities 1.3.2.4.2.4 Access to suppliers of equipment, production and engineering services 1.3.2.4.3 Innovation infrastructure - 1.3.2.4.3.1 Investments + (see:What to do about existing measures) 1.3.2.4.3.1 Investments 1.3.2.4.3.1.1 Public investment in innovation infrastructure 1.3.2.4.3.1.2 Increase of government investment in innovation infrastructure 1.3.2.4.3.1.3 Number of Development institution projects performed in the region @@ -214,7 +214,7 @@ 1.3.2.4.3.2 Volume of state support per one company 1.4 What to do about existing measures * Note: Understanding which measures should be strengthened, dropped or improved, and how. - (see:Innovation infrastructure) 1.4.1 Demand for measure + 1.4.1 Demand for measure 1.4.1.1 Quality of beneficiaries 1.4.1.1.1 Growth rates of employment in supported innovative firms 1.4.1.1.2 Growth rates of employment in supported innovative firms @@ -267,41 +267,41 @@ 1.4.4.3 Impact assessment 1.4.4.4 1.4.4.5 - 1.5 What investments in innovative projects + 1.5 How to improve image + 1.5.1 Rankings + 1.5.1.1 macro indicators + 1.5.1.2 meso-indicators + 1.5.2 Innovation investment climate + (see:The enabling environment) 1.6 What investments in innovative projects * Note: Understanding what investments should be made in innovative projects. - 1.5.1 Competitive niches - 1.5.1.1 Clusters behavior - 1.5.1.1.1 Cluster EU star rating - 1.5.1.1.2 Share of value added of cluster enterprises in GRP - 1.5.1.1.3 Share of cluster products in the relevant world market segment - 1.5.1.1.4 Share of export in cluster total volume of sales - 1.5.1.1.5 Growth of the volume of production in the cluster companies - 1.5.1.1.6 - 1.5.1.1.7 Growth of the volume of innovation production in the cluster - 1.5.1.1.8 Share of export in cluster total volume of sales (by zones: US, EU, CIS, other countries) - 1.5.1.1.9 Internal behavior - 1.5.1.1.9.1 Median wage in the cluster - 1.5.1.1.9.2 Growth of the volume of R&D in the cluster - 1.5.1.1.9.3 Cluster collaboration - 1.5.1.2 R&D - 1.5.1.2.1 Patent map - 1.5.1.2.2 Publications map - 1.5.1.3 Industry - 1.5.1.3.1 FDI map - 1.5.1.3.2 Gazelle map - 1.5.1.3.3 Business R&D expenditures as a share of revenues by sector - 1.5.1.3.4 Share of regional products in the world market - 1.5.1.3.5 Expenditure on innovation by firm size, by sector - 1.5.1.4 Entrepreneurship - 1.5.1.4.1 Startup map - 1.5.1.4.2 Venture investment map - 1.5.1.4.3 Attractiveness to public competitive funding - 1.5.1.4.3.1 Fed and regional seed fund investments - 1.5.1.4.3.2 - 1.5.2 Competitiveness support factors - 1.5.2.1 Private investment in innovation - 1.6 How to improve image - 1.6.1 Rankings - 1.6.1.1 macro indicators - 1.6.1.2 meso-indicators - 1.6.2 Innovation investment climate + 1.6.1 Competitive niches + 1.6.1.1 Clusters behavior + 1.6.1.1.1 Cluster EU star rating + 1.6.1.1.2 Share of value added of cluster enterprises in GRP + 1.6.1.1.3 Share of cluster products in the relevant world market segment + 1.6.1.1.4 Share of export in cluster total volume of sales + 1.6.1.1.5 Growth of the volume of production in the cluster companies + 1.6.1.1.6 + 1.6.1.1.7 Growth of the volume of innovation production in the cluster + 1.6.1.1.8 Share of export in cluster total volume of sales (by zones: US, EU, CIS, other countries) + 1.6.1.1.9 Internal behavior + 1.6.1.1.9.1 Median wage in the cluster + 1.6.1.1.9.2 Growth of the volume of R&D in the cluster + 1.6.1.1.9.3 Cluster collaboration + 1.6.1.2 R&D + 1.6.1.2.1 Patent map + 1.6.1.2.2 Publications map + 1.6.1.3 Industry + 1.6.1.3.1 FDI map + 1.6.1.3.2 Gazelle map + 1.6.1.3.3 Business R&D expenditures as a share of revenues by sector + 1.6.1.3.4 Share of regional products in the world market + 1.6.1.3.5 Expenditure on innovation by firm size, by sector + 1.6.1.4 Entrepreneurship + 1.6.1.4.1 Startup map + 1.6.1.4.2 Venture investment map + 1.6.1.4.3 Attractiveness to public competitive funding + 1.6.1.4.3.1 Fed and regional seed fund investments + 1.6.1.4.3.2 + 1.6.2 Competitiveness support factors + 1.6.2.1 Private investment in innovation diff --git a/wise-webapp/src/test/resources/data/export/bug3.xls b/wise-webapp/src/test/resources/data/export/bug3.xls index e501809c..0393f66f 100644 --- a/wise-webapp/src/test/resources/data/export/bug3.xls +++ b/wise-webapp/src/test/resources/data/export/bug3.xls @@ -1470,6 +1470,31 @@ +How to improve image + + + + +Rankings + + + + +macro indicators + + + + +meso-indicators + + + + +Innovation investment climate + + + + What investments in innovative projects @@ -1639,31 +1664,6 @@ Private investment in innovation - - -How to improve image - - - - -Rankings - - - - -macro indicators - - - - -meso-indicators - - - - -Innovation investment climate - - diff --git a/wise-webapp/src/test/resources/data/export/cdata-support.mm b/wise-webapp/src/test/resources/data/export/cdata-support.mm index 401efe27..a24159e1 100644 --- a/wise-webapp/src/test/resources/data/export/cdata-support.mm +++ b/wise-webapp/src/test/resources/data/export/cdata-support.mm @@ -1,4 +1,4 @@ - + diff --git a/wise-webapp/src/test/resources/data/export/complex.csv b/wise-webapp/src/test/resources/data/export/complex.csv index 19d10d0e..910dbe61 100644 --- a/wise-webapp/src/test/resources/data/export/complex.csv +++ b/wise-webapp/src/test/resources/data/export/complex.csv @@ -1,24 +1,29 @@ PPM Plan -, - Business Development -, - Backlog Management -, - Freeform IT -, - Client Project Management -, - Governance & Executive , Finance +, + Governance & Executive , Administration +, + Backlog Management +, + Client Project Management +, + Probono +, + , + +, + Freeform IT +, + Community Outreach , Human Resources , Freeform Hosting , - Community Outreach + Business Development , R&D , @@ -27,8 +32,3 @@ PPM Plan , , Formulize -, - Probono -, - , - diff --git a/wise-webapp/src/test/resources/data/export/complex.doc b/wise-webapp/src/test/resources/data/export/complex.doc index d26e02b4..abf358a4 100644 --- a/wise-webapp/src/test/resources/data/export/complex.doc +++ b/wise-webapp/src/test/resources/data/export/complex.doc @@ -267,37 +267,7 @@ -Business Development - - - - - - - - - -Backlog Management - - - - - - - - - -Freeform IT - - - - - - - - - -Client Project Management +Finance @@ -317,7 +287,7 @@ -Finance +Administration @@ -327,7 +297,57 @@ -Administration +Backlog Management + + + + + + + + + +Client Project Management + + + + + + + + + +Probono + + + + + + + + + + + + + + + + + + + +Freeform IT + + + + + + + + + +Community Outreach @@ -367,7 +387,7 @@ -Community Outreach +Business Development @@ -401,26 +421,6 @@ - - - - - - -Probono - - - - - - - - - - - - - diff --git a/wise-webapp/src/test/resources/data/export/complex.latex b/wise-webapp/src/test/resources/data/export/complex.latex index adb1e347..fd1a025f 100644 --- a/wise-webapp/src/test/resources/data/export/complex.latex +++ b/wise-webapp/src/test/resources/data/export/complex.latex @@ -1,17 +1,17 @@ \chapter{PPM Plan}\label{ID_1} - \section{Business Development }\label{ID_4} - \section{Backlog Management}\label{ID_18}Siehe auch \url{https://docs.google.com/a/freeform.ca/drawings/d/1mrtkVAN3_XefJJCgfxw4Va6xk9TVDBKXDt_uzyIF4Us/edit} - \section{Freeform IT}\label{ID_10} - \section{Client Project Management}\label{ID_204} - \section{Governance & Executive}\label{ID_206} \section{Finance}\label{ID_5} + \section{Governance & Executive}\label{ID_206} \section{Administration}\label{ID_3} + \section{Backlog Management}\label{ID_18}Siehe auch \url{https://docs.google.com/a/freeform.ca/drawings/d/1mrtkVAN3_XefJJCgfxw4Va6xk9TVDBKXDt_uzyIF4Us/edit} + \section{Client Project Management}\label{ID_204} + \section{Probono}\label{ID_268} + \subsection{}\label{ID_269} + \section{Freeform IT}\label{ID_10} + \section{Community Outreach}\label{ID_247} \section{Human Resources}\label{ID_154} \section{Freeform Hosting}\label{ID_16} - \section{Community Outreach}\label{ID_247} + \section{Business Development }\label{ID_4} \section{R&D}\label{ID_261} \subsection{Goals}\label{ID_263} - \subsection{Formulize}\label{ID_264} - \section{Probono}\label{ID_268} - \subsection{}\label{ID_269} \ No newline at end of file + \subsection{Formulize}\label{ID_264} \ No newline at end of file diff --git a/wise-webapp/src/test/resources/data/export/complex.mm b/wise-webapp/src/test/resources/data/export/complex.mm index 27673669..4596ea5b 100644 --- a/wise-webapp/src/test/resources/data/export/complex.mm +++ b/wise-webapp/src/test/resources/data/export/complex.mm @@ -1,24 +1,27 @@ - + - - - - - - - - - - + - + - + + + + + + + + + + + + + @@ -35,7 +38,7 @@ - + @@ -43,8 +46,5 @@ - - - \ No newline at end of file diff --git a/wise-webapp/src/test/resources/data/export/complex.mmap b/wise-webapp/src/test/resources/data/export/complex.mmap index 35346982..f10f67d4 100644 --- a/wise-webapp/src/test/resources/data/export/complex.mmap +++ b/wise-webapp/src/test/resources/data/export/complex.mmap @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/wise-webapp/src/test/resources/data/export/complex.odt b/wise-webapp/src/test/resources/data/export/complex.odt index 9e22de66..d62aed5b 100644 --- a/wise-webapp/src/test/resources/data/export/complex.odt +++ b/wise-webapp/src/test/resources/data/export/complex.odt @@ -79,25 +79,25 @@ PPM Plan -Business Development +Finance +Governance & Executive +Administration Backlog Management https://docs.google.com/a/freeform.ca/drawings/d/1mrtkVAN3_XefJJCgfxw4Va6xk9TVDBKXDt_uzyIF4Us/edit -Freeform IT Client Project Management -Governance & Executive -Finance -Administration +Probono + +Freeform IT +Community Outreach Human Resources Freeform Hosting -Community Outreach +Business Development R&D Goals Formulize -Probono - diff --git a/wise-webapp/src/test/resources/data/export/complex.txt b/wise-webapp/src/test/resources/data/export/complex.txt index 14e5c114..e68505be 100644 --- a/wise-webapp/src/test/resources/data/export/complex.txt +++ b/wise-webapp/src/test/resources/data/export/complex.txt @@ -1,18 +1,18 @@ 1 PPM Plan - 1.1 Business Development - 1.2 Backlog Management + 1.1 Finance + 1.2 Governance & Executive + 1.3 Administration + 1.4 Backlog Management * Link: https://docs.google.com/a/freeform.ca/drawings/d/1mrtkVAN3_XefJJCgfxw4Va6xk9TVDBKXDt_uzyIF4Us/edit - 1.3 Freeform IT - 1.4 Client Project Management - 1.5 Governance & Executive - 1.6 Finance - 1.7 Administration - 1.8 Human Resources + 1.5 Client Project Management + 1.6 Probono + 1.6.1 + 1.7 Freeform IT + 1.8 Community Outreach + 1.9 Human Resources * Note: - 1.9 Freeform Hosting - 1.10 Community Outreach - 1.11 R&D - 1.11.1 Goals - 1.11.2 Formulize - 1.12 Probono - 1.12.1 + 1.10 Freeform Hosting + 1.11 Business Development + 1.12 R&D + 1.12.1 Goals + 1.12.2 Formulize diff --git a/wise-webapp/src/test/resources/data/export/complex.xls b/wise-webapp/src/test/resources/data/export/complex.xls index 433caf46..f9933da0 100644 --- a/wise-webapp/src/test/resources/data/export/complex.xls +++ b/wise-webapp/src/test/resources/data/export/complex.xls @@ -28,22 +28,7 @@ -Business Development - - - - -Backlog Management - - - - -Freeform IT - - - - -Client Project Management +Finance @@ -53,12 +38,37 @@ -Finance +Administration -Administration +Backlog Management + + + + +Client Project Management + + + + +Probono + + + + + + + + + +Freeform IT + + + + +Community Outreach @@ -78,7 +88,7 @@ -Community Outreach +Business Development @@ -96,16 +106,6 @@ Formulize - - -Probono - - - - - - - diff --git a/wise-webapp/src/test/resources/data/export/emptyNodes.mm b/wise-webapp/src/test/resources/data/export/emptyNodes.mm index b0adee06..360319b8 100644 --- a/wise-webapp/src/test/resources/data/export/emptyNodes.mm +++ b/wise-webapp/src/test/resources/data/export/emptyNodes.mm @@ -1,4 +1,4 @@ - + diff --git a/wise-webapp/src/test/resources/data/export/enc.csv b/wise-webapp/src/test/resources/data/export/enc.csv index f2c4db13..4bf90413 100644 --- a/wise-webapp/src/test/resources/data/export/enc.csv +++ b/wise-webapp/src/test/resources/data/export/enc.csv @@ -1,4 +1,45 @@ Artigos GF comentários interessantes +, + Poorter 1999. Functional Ecology. 13:396-410 +, + , + Espécies pioneiras crescem mais rápido do que as não pioneiras +, + , + , + Tolerância a sombra está relacionada com persistência e não com crescimento +, + Chazdon 2010. Biotropica. 42(1): 31–40 +, + , + Falar no artigo que esse trabalho fala que é inadequada a divisão entre pioneira e não pioneira devido a grande variação que há entre elas. Além de terem descoberto que durante a ontogenia a resposta a luminosidade muda dentro de uma mesma espécie. Porém recomendar que essa classificação continue sendo usada em curto prazo enquanto não há informações confiáveis suficiente para esta simples classificação. Outras classificações como esta do artigo são bem vinda, contanto que tenham dados confiáveis. Porém dados estáticos já são difíceis de se obter, dados temporais, como taxa de crescimento em diâmetro ou altura, são mais difíceis ainda. Falar que vários tipos de classificações podem ser utilizadas e quanto mais detalhe melhor, porém os dados é que são mais limitantes. Se focarmos em dados de germinação e crescimento limitantes, como sugerem sainete e whitmore, da uma idéia maismrápida e a curto prazo da classificação destas espécies. Depois com o tempo conseguiremos construir classificações mais detalhadas e com mais dados confiáveis. +, + , + +, + , + +, + , + +, + , + +, + , + +, + , + +, + , + +, + , + +, + , + , Baraloto et al. 2010. Functional trait variation and sampling strategies in species-rich plant communities , @@ -25,44 +66,3 @@ Artigos GF comentários interessantes , , -, - Chazdon 2010. Biotropica. 42(1): 31–40 -, - , - -, - , - -, - , - Falar no artigo que esse trabalho fala que é inadequada a divisão entre pioneira e não pioneira devido a grande variação que há entre elas. Além de terem descoberto que durante a ontogenia a resposta a luminosidade muda dentro de uma mesma espécie. Porém recomendar que essa classificação continue sendo usada em curto prazo enquanto não há informações confiáveis suficiente para esta simples classificação. Outras classificações como esta do artigo são bem vinda, contanto que tenham dados confiáveis. Porém dados estáticos já são difíceis de se obter, dados temporais, como taxa de crescimento em diâmetro ou altura, são mais difíceis ainda. Falar que vários tipos de classificações podem ser utilizadas e quanto mais detalhe melhor, porém os dados é que são mais limitantes. Se focarmos em dados de germinação e crescimento limitantes, como sugerem sainete e whitmore, da uma idéia maismrápida e a curto prazo da classificação destas espécies. Depois com o tempo conseguiremos construir classificações mais detalhadas e com mais dados confiáveis. -, - , - -, - , - -, - , - -, - , - -, - , - -, - , - -, - , - -, - Poorter 1999. Functional Ecology. 13:396-410 -, - , - Espécies pioneiras crescem mais rápido do que as não pioneiras -, - , - , - Tolerância a sombra está relacionada com persistência e não com crescimento diff --git a/wise-webapp/src/test/resources/data/export/enc.doc b/wise-webapp/src/test/resources/data/export/enc.doc index 062e8045..19651805 100644 --- a/wise-webapp/src/test/resources/data/export/enc.doc +++ b/wise-webapp/src/test/resources/data/export/enc.doc @@ -267,6 +267,146 @@ +Poorter 1999. Functional Ecology. 13:396-410 + + + + + + + + +Espécies pioneiras crescem mais rápido do que as não pioneiras + + + + + + + + +Tolerância a sombra está relacionada com persistência e não com crescimento + + + + + + + + + + + +Chazdon 2010. Biotropica. 42(1): 31–40 + + + + + + + + +Falar no artigo que esse trabalho fala que é inadequada a divisão entre pioneira e não pioneira devido a grande variação que há entre elas. Além de terem descoberto que durante a ontogenia a resposta a luminosidade muda dentro de uma mesma espécie. Porém recomendar que essa classificação continue sendo usada em curto prazo enquanto não há informações confiáveis suficiente para esta simples classificação. Outras classificações como esta do artigo são bem vinda, contanto que tenham dados confiáveis. Porém dados estáticos já são difíceis de se obter, dados temporais, como taxa de crescimento em diâmetro ou altura, são mais difíceis ainda. Falar que vários tipos de classificações podem ser utilizadas e quanto mais detalhe melhor, porém os dados é que são mais limitantes. Se focarmos em dados de germinação e crescimento limitantes, como sugerem sainete e whitmore, da uma idéia maismrápida e a curto prazo da classificação destas espécies. Depois com o tempo conseguiremos construir classificações mais detalhadas e com mais dados confiáveis. + + + + + + + + + +Here, we develop a new approach that links functional attributes of tree species with studies of forest recovery and regional land-use transitions (Chazdon et al. 2007). Grouping species according to their functional attributes or demographic rates provides insight into both applied and theoretical questions, such as selecting species for reforestation programs, assessing ecosystem services, and understanding community assembly processes in tropical forests (Diaz et al. 2007, Kraft et al. 2008). + + + + + + + + + +Since we have data on leaf and wood functional traits for only a subset of the species in our study sites, we based our functional type classification on information for a large number of tree species obtained through vegetation monitoring studies. + + + + + + + + + +Our approach avoided preconceived notions of successional behavior or shade tolerance of tree species by developing an objective and independent classification of functional types based on vegetation monitoring data from permanent sample plots in mature and secondary forests of northeastern Costa Rica (Finegan et al. 1999, Chazdon et al. 2007).We apply an independent, prior classification of 293 tree species from our study region into five functional types, based on two species attributes: canopy strata and diameter growth rates for individuals Z10 cm dbh (Finegan et al. 1999, Salgado- Negret 2007). + + + + + + + + + +Our results demonstrate strong linkages between functional types defined by adult height and growth rates of large trees and colonization groups based on the timing of seedling, sapling, and tree recruitment in secondary forests. + + + + + + + + + +These results allow us to move beyond earlier conceptual frameworks of tropical forest secondary succession developed by Finegan (1996) and Chazdon (2008) based on subjective groupings, such as pioneers and shade-tolerant species (Swaine & Whitmore 1988). + + + + + + + + + +Reproductive traits, such as dispersal mode, pollination mode, and sexual system, were ultimately not useful in delimiting tree functional types for the tree species examined here (Salgado-Negret 2007). Thus, although reproductive traits do vary quantitatively in abundance between secondary and mature forests in our landscape (Chazdon et al. 2003), they do not seem to be important drivers of successional dynamics of trees Z10 cm dbh. For seedlings, however, dispersal mode and seed size are likely to play an important role in community dynamics during succession (Dalling&Hubbell 2002). + + + + + + + + + +Our classification of colonization groups defies the traditional dichotomy between ‘late successional’ shade-tolerant and ‘early successional’ pioneer species. Many tree species, classified here as regenerating pioneers on the basis of their population structure in secondary forests, are common in both young secondary forest and mature forests in this region (Guariguata et al. 1997), and many are important timber species (Vilchez et al. 2008). These generalists are by far the most abundant species of seedlings and saplings, conferring a high degree of resilience in the wet tropical forests of NE Costa Rica (Norden et al. 2009, Letcher & Chazdon 2009). The high abundance of regenerating pioneers in seedling and sapling size classes clearly shows that species with shade-tolerant seedlings can also recruit as trees early in succession. For these species, early tree colonization enhances seedling and sapling recruitment during the first 20–30 yr of succession, due to local seed rain. Species abundance and size distribution depend strongly on chance colonization events early in succession (Chazdon 2008). Other studies have shown that mature forest species are able to colonize early in succession (Finegan 1996, van Breugel et al. 2007, Franklin & Rey 2007, Ochoa-Gaona et al. 2007), emphasizing the importance of initial floristic composition in the determination of successional pathways and rates of forest regrowth. On the other hand, significant numbers of species in our sites (40% overall and the majority of rare species) colonized only after canopy closure, and these species may not occur as mature individuals until decades after agricultural abandonment. + + + + + + + + + +Classifying functional types based on functional traits with low plasticity, such as wood density and seed size, could potentially serve as robust proxies for demographic variables (Poorter et al. 2008, Zhang et al. 2008). + + + + + + + + + +CONDIT, R., S. P. HUBBELL, AND R. B. FOSTER. 1996. Assessing the response of plant functional types in tropical forests to climatic change. J. Veg. Sci. 7: 405–416. DALLING, J. S., AND S. P. HUBBELL. 2002. Seed size, growth rate and gap microsite conditions as determinants of recruitment success for pioneer species. J. Ecol. 90: 557–568. FINEGAN, B. 1996. Pattern and process in neotropical secondary forests: The first 100 years of succession. Trends Ecol. Evol. 11: 119–124. POORTER, L., S. J. WRIGHT, H. PAZ, D. D. ACKERLY, R. CONDIT, G. IBARRA-MANRI´QUEZ, K. E. HARMS, J. C. LICONA, M.MARTI´NEZ-RAMOS, S. J. MAZER, H. C. MULLER-LANDAU, M. PEN˜ A-CLAROS, C. O. WEBB, AND I. J. WRIGHT. 2008. Are functional traits good predictors of demographic rates? Evidence from five Neotropical forests. Ecology 89: 1908–1920. ZHANG, Z. D., R. G. ZANG, AND Y. D. QI. 2008. Spatiotemporal patterns and dynamics of species richness and abundance of woody plant functional groups in a tropical forest landscape of Hainan Island, South China. J. Integr. Plant Biol. 50: 547–558. + + + + + + + + + + Baraloto et al. 2010. Functional trait variation and sampling strategies in species-rich plant communities @@ -373,146 +513,6 @@ - - - - - - -Chazdon 2010. Biotropica. 42(1): 31–40 - - - - - - - - -Here, we develop a new approach that links functional attributes of tree species with studies of forest recovery and regional land-use transitions (Chazdon et al. 2007). Grouping species according to their functional attributes or demographic rates provides insight into both applied and theoretical questions, such as selecting species for reforestation programs, assessing ecosystem services, and understanding community assembly processes in tropical forests (Diaz et al. 2007, Kraft et al. 2008). - - - - - - - - - -Since we have data on leaf and wood functional traits for only a subset of the species in our study sites, we based our functional type classification on information for a large number of tree species obtained through vegetation monitoring studies. - - - - - - - - - -Falar no artigo que esse trabalho fala que é inadequada a divisão entre pioneira e não pioneira devido a grande variação que há entre elas. Além de terem descoberto que durante a ontogenia a resposta a luminosidade muda dentro de uma mesma espécie. Porém recomendar que essa classificação continue sendo usada em curto prazo enquanto não há informações confiáveis suficiente para esta simples classificação. Outras classificações como esta do artigo são bem vinda, contanto que tenham dados confiáveis. Porém dados estáticos já são difíceis de se obter, dados temporais, como taxa de crescimento em diâmetro ou altura, são mais difíceis ainda. Falar que vários tipos de classificações podem ser utilizadas e quanto mais detalhe melhor, porém os dados é que são mais limitantes. Se focarmos em dados de germinação e crescimento limitantes, como sugerem sainete e whitmore, da uma idéia maismrápida e a curto prazo da classificação destas espécies. Depois com o tempo conseguiremos construir classificações mais detalhadas e com mais dados confiáveis. - - - - - - - - - -Our approach avoided preconceived notions of successional behavior or shade tolerance of tree species by developing an objective and independent classification of functional types based on vegetation monitoring data from permanent sample plots in mature and secondary forests of northeastern Costa Rica (Finegan et al. 1999, Chazdon et al. 2007).We apply an independent, prior classification of 293 tree species from our study region into five functional types, based on two species attributes: canopy strata and diameter growth rates for individuals Z10 cm dbh (Finegan et al. 1999, Salgado- Negret 2007). - - - - - - - - - -Our results demonstrate strong linkages between functional types defined by adult height and growth rates of large trees and colonization groups based on the timing of seedling, sapling, and tree recruitment in secondary forests. - - - - - - - - - -These results allow us to move beyond earlier conceptual frameworks of tropical forest secondary succession developed by Finegan (1996) and Chazdon (2008) based on subjective groupings, such as pioneers and shade-tolerant species (Swaine & Whitmore 1988). - - - - - - - - - -Reproductive traits, such as dispersal mode, pollination mode, and sexual system, were ultimately not useful in delimiting tree functional types for the tree species examined here (Salgado-Negret 2007). Thus, although reproductive traits do vary quantitatively in abundance between secondary and mature forests in our landscape (Chazdon et al. 2003), they do not seem to be important drivers of successional dynamics of trees Z10 cm dbh. For seedlings, however, dispersal mode and seed size are likely to play an important role in community dynamics during succession (Dalling&Hubbell 2002). - - - - - - - - - -Our classification of colonization groups defies the traditional dichotomy between ‘late successional’ shade-tolerant and ‘early successional’ pioneer species. Many tree species, classified here as regenerating pioneers on the basis of their population structure in secondary forests, are common in both young secondary forest and mature forests in this region (Guariguata et al. 1997), and many are important timber species (Vilchez et al. 2008). These generalists are by far the most abundant species of seedlings and saplings, conferring a high degree of resilience in the wet tropical forests of NE Costa Rica (Norden et al. 2009, Letcher & Chazdon 2009). The high abundance of regenerating pioneers in seedling and sapling size classes clearly shows that species with shade-tolerant seedlings can also recruit as trees early in succession. For these species, early tree colonization enhances seedling and sapling recruitment during the first 20–30 yr of succession, due to local seed rain. Species abundance and size distribution depend strongly on chance colonization events early in succession (Chazdon 2008). Other studies have shown that mature forest species are able to colonize early in succession (Finegan 1996, van Breugel et al. 2007, Franklin & Rey 2007, Ochoa-Gaona et al. 2007), emphasizing the importance of initial floristic composition in the determination of successional pathways and rates of forest regrowth. On the other hand, significant numbers of species in our sites (40% overall and the majority of rare species) colonized only after canopy closure, and these species may not occur as mature individuals until decades after agricultural abandonment. - - - - - - - - - -Classifying functional types based on functional traits with low plasticity, such as wood density and seed size, could potentially serve as robust proxies for demographic variables (Poorter et al. 2008, Zhang et al. 2008). - - - - - - - - - -CONDIT, R., S. P. HUBBELL, AND R. B. FOSTER. 1996. Assessing the response of plant functional types in tropical forests to climatic change. J. Veg. Sci. 7: 405–416. DALLING, J. S., AND S. P. HUBBELL. 2002. Seed size, growth rate and gap microsite conditions as determinants of recruitment success for pioneer species. J. Ecol. 90: 557–568. FINEGAN, B. 1996. Pattern and process in neotropical secondary forests: The first 100 years of succession. Trends Ecol. Evol. 11: 119–124. POORTER, L., S. J. WRIGHT, H. PAZ, D. D. ACKERLY, R. CONDIT, G. IBARRA-MANRI´QUEZ, K. E. HARMS, J. C. LICONA, M.MARTI´NEZ-RAMOS, S. J. MAZER, H. C. MULLER-LANDAU, M. PEN˜ A-CLAROS, C. O. WEBB, AND I. J. WRIGHT. 2008. Are functional traits good predictors of demographic rates? Evidence from five Neotropical forests. Ecology 89: 1908–1920. ZHANG, Z. D., R. G. ZANG, AND Y. D. QI. 2008. Spatiotemporal patterns and dynamics of species richness and abundance of woody plant functional groups in a tropical forest landscape of Hainan Island, South China. J. Integr. Plant Biol. 50: 547–558. - - - - - - - - - - -Poorter 1999. Functional Ecology. 13:396-410 - - - - - - - - -Espécies pioneiras crescem mais rápido do que as não pioneiras - - - - - - - - -Tolerância a sombra está relacionada com persistência e não com crescimento - - - - - diff --git a/wise-webapp/src/test/resources/data/export/enc.latex b/wise-webapp/src/test/resources/data/export/enc.latex index 6056a79d..dc65996e 100644 --- a/wise-webapp/src/test/resources/data/export/enc.latex +++ b/wise-webapp/src/test/resources/data/export/enc.latex @@ -1,5 +1,19 @@ \chapter{Artigos GF comentários interessantes}\label{ID_1} + \section{Poorter 1999. Functional Ecology. 13:396-410}\label{ID_2} + \subsection{Espécies pioneiras crescem mais rápido do que as não pioneiras}\label{ID_3} + \subsubsection{Tolerância a sombra está relacionada com persistência e não com crescimento}\label{ID_4} + \section{Chazdon 2010. Biotropica. 42(1): 31–40}\label{ID_17} + \subsection{Falar no artigo que esse trabalho fala que é inadequada a divisão entre pioneira e não pioneira devido a grande variação que há entre elas. Além de terem descoberto que durante a ontogenia a resposta a luminosidade muda dentro de uma mesma espécie. Porém recomendar que essa classificação continue sendo usada em curto prazo enquanto não há informações confiáveis suficiente para esta simples classificação. Outras classificações como esta do artigo são bem vinda, contanto que tenham dados confiáveis. Porém dados estáticos já são difíceis de se obter, dados temporais, como taxa de crescimento em diâmetro ou altura, são mais difíceis ainda. Falar que vários tipos de classificações podem ser utilizadas e quanto mais detalhe melhor, porém os dados é que são mais limitantes. Se focarmos em dados de germinação e crescimento limitantes, como sugerem sainete e whitmore, da uma idéia maismrápida e a curto prazo da classificação destas espécies. Depois com o tempo conseguiremos construir classificações mais detalhadas e com mais dados confiáveis. }\label{ID_24} + \subsection{}\label{ID_22} + \subsection{}\label{ID_23} + \subsection{}\label{ID_25} + \subsection{}\label{ID_26} + \subsection{}\label{ID_27} + \subsection{}\label{ID_28} + \subsection{}\label{ID_29} + \subsection{}\label{ID_30} + \subsection{}\label{ID_31} \section{Baraloto et al. 2010. Functional trait variation and sampling strategies in species-rich plant communities}\label{ID_5} \subsection{}\label{ID_6} \subsection{}\label{ID_7} @@ -8,18 +22,4 @@ \subsection{Ver se classifica sucessão por densidade de tronco para citar no artigo como exemplo de outros atributos além de germinação e ver se e custoso no tempo e em dinheiro}\label{ID_12} \subsection{Intensas amostragens de experimentos simples tem maior retorno em acurácia de estimativa e de custo tb.}\label{ID_13} \subsection{}\label{ID_14}Isso significa que estudos de característica de história de vida compensam? Ver nos m&m. - \subsection{}\label{ID_15}Falar que isso corrobora nossa sugestão de utilizar poucas medidas, mas que elas sejam confiáveis. - \section{Chazdon 2010. Biotropica. 42(1): 31–40}\label{ID_17} - \subsection{}\label{ID_22} - \subsection{}\label{ID_23} - \subsection{Falar no artigo que esse trabalho fala que é inadequada a divisão entre pioneira e não pioneira devido a grande variação que há entre elas. Além de terem descoberto que durante a ontogenia a resposta a luminosidade muda dentro de uma mesma espécie. Porém recomendar que essa classificação continue sendo usada em curto prazo enquanto não há informações confiáveis suficiente para esta simples classificação. Outras classificações como esta do artigo são bem vinda, contanto que tenham dados confiáveis. Porém dados estáticos já são difíceis de se obter, dados temporais, como taxa de crescimento em diâmetro ou altura, são mais difíceis ainda. Falar que vários tipos de classificações podem ser utilizadas e quanto mais detalhe melhor, porém os dados é que são mais limitantes. Se focarmos em dados de germinação e crescimento limitantes, como sugerem sainete e whitmore, da uma idéia maismrápida e a curto prazo da classificação destas espécies. Depois com o tempo conseguiremos construir classificações mais detalhadas e com mais dados confiáveis. }\label{ID_24} - \subsection{}\label{ID_25} - \subsection{}\label{ID_26} - \subsection{}\label{ID_27} - \subsection{}\label{ID_28} - \subsection{}\label{ID_29} - \subsection{}\label{ID_30} - \subsection{}\label{ID_31} - \section{Poorter 1999. Functional Ecology. 13:396-410}\label{ID_2} - \subsection{Espécies pioneiras crescem mais rápido do que as não pioneiras}\label{ID_3} - \subsubsection{Tolerância a sombra está relacionada com persistência e não com crescimento}\label{ID_4} \ No newline at end of file + \subsection{}\label{ID_15}Falar que isso corrobora nossa sugestão de utilizar poucas medidas, mas que elas sejam confiáveis. \ No newline at end of file diff --git a/wise-webapp/src/test/resources/data/export/enc.mm b/wise-webapp/src/test/resources/data/export/enc.mm index 4639ef27..f9905de3 100644 --- a/wise-webapp/src/test/resources/data/export/enc.mm +++ b/wise-webapp/src/test/resources/data/export/enc.mm @@ -1,112 +1,16 @@ - + - + + - - - - - -

    Therecent growth of large functional trait data

    -

    bases has been fuelled by standardized protocols forthe

    -

    measurement of individual functional traits and intensive

    -

    efforts to compile trait data(Cornelissen etal. 2003; Chave etal. 2009). Nonetheless, there remains no consensusfor

    -

    the most appropriate sampling design so that traits can be

    -

    scaled from the individuals on whom measurements are

    -

    made to the community or ecosystem levels at which infer-

    -

    ences are drawn (Swenson etal. 2006,2007,Reich,Wright

    -

    & Lusk 2007;Kraft,Valencia & Ackerly 2008).

    - - -
    -
    - - - - - -

    However, the fast pace of

    -

    development of plant trait meta-analyses also suggests that

    -

    trait acquisition in the field is a factor limiting the growth of

    -

    plant trait data bases.

    - - -
    -
    - - - - - -

    We measured

    -

    traits for every individual tree in nine 1-ha plots in tropical

    -

    lowland rainforest (N = 4709). Each plant was sampled for

    -

    10 functional traits related to wood and leaf morphology and

    -

    ecophysiology. Here, we contrast the trait means and variances

    -

    obtained with a full sampling strategy with those of

    -

    other sampling designs used in the recent literature, which we

    -

    obtain by simulation. We assess the differences in community-

    -

    level estimates of functional trait means and variances

    -

    among design types and sampling intensities. We then contrast

    -

    the relative costs of these designs and discuss the appropriateness

    -

    of different sampling designs and intensities for

    -

    different questions and systems.

    - - -
    -
    - - - - - - - - -

    With regard to estimating mean trait values, strategies

    -

    alternative to BRIDGE were consistently cost-effective. On

    -

    the other hand, strategies alternative to BRIDGE clearly

    -

    failed to accurately estimate the variance of trait values. This

    -

    indicates that in situations where accurate estimation of plotlevel

    -

    variance is desired, complete censuses are essential.

    - - -
    - - - - -

    -

    Isso significa que estudos de característica de história de vida compensam? Ver nos m&m.

    - - -
    -
    - - - - - -

    We suggest that, in these studies,

    -

    the investment in complete sampling may be worthwhile

    -

    for at least some traits.

    - - -
    - - - - -

    -

    Falar que isso corrobora nossa sugestão de utilizar poucas medidas, mas que elas sejam confiáveis.

    - - -
    + + + @@ -138,7 +42,6 @@ - @@ -279,11 +182,108 @@ - - + - - + + + + + +

    Therecent growth of large functional trait data

    +

    bases has been fuelled by standardized protocols forthe

    +

    measurement of individual functional traits and intensive

    +

    efforts to compile trait data(Cornelissen etal. 2003; Chave etal. 2009). Nonetheless, there remains no consensusfor

    +

    the most appropriate sampling design so that traits can be

    +

    scaled from the individuals on whom measurements are

    +

    made to the community or ecosystem levels at which infer-

    +

    ences are drawn (Swenson etal. 2006,2007,Reich,Wright

    +

    & Lusk 2007;Kraft,Valencia & Ackerly 2008).

    + + +
    +
    + + + + + +

    However, the fast pace of

    +

    development of plant trait meta-analyses also suggests that

    +

    trait acquisition in the field is a factor limiting the growth of

    +

    plant trait data bases.

    + + +
    +
    + + + + + +

    We measured

    +

    traits for every individual tree in nine 1-ha plots in tropical

    +

    lowland rainforest (N = 4709). Each plant was sampled for

    +

    10 functional traits related to wood and leaf morphology and

    +

    ecophysiology. Here, we contrast the trait means and variances

    +

    obtained with a full sampling strategy with those of

    +

    other sampling designs used in the recent literature, which we

    +

    obtain by simulation. We assess the differences in community-

    +

    level estimates of functional trait means and variances

    +

    among design types and sampling intensities. We then contrast

    +

    the relative costs of these designs and discuss the appropriateness

    +

    of different sampling designs and intensities for

    +

    different questions and systems.

    + + +
    +
    + + + + + + + + +

    With regard to estimating mean trait values, strategies

    +

    alternative to BRIDGE were consistently cost-effective. On

    +

    the other hand, strategies alternative to BRIDGE clearly

    +

    failed to accurately estimate the variance of trait values. This

    +

    indicates that in situations where accurate estimation of plotlevel

    +

    variance is desired, complete censuses are essential.

    + + +
    + + + + +

    +

    Isso significa que estudos de característica de história de vida compensam? Ver nos m&m.

    + + +
    +
    + + + + + +

    We suggest that, in these studies,

    +

    the investment in complete sampling may be worthwhile

    +

    for at least some traits.

    + + +
    + + + + +

    +

    Falar que isso corrobora nossa sugestão de utilizar poucas medidas, mas que elas sejam confiáveis.

    + + +
    diff --git a/wise-webapp/src/test/resources/data/export/enc.mmap b/wise-webapp/src/test/resources/data/export/enc.mmap index e4a4aec7..f33b3aee 100644 --- a/wise-webapp/src/test/resources/data/export/enc.mmap +++ b/wise-webapp/src/test/resources/data/export/enc.mmap @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/wise-webapp/src/test/resources/data/export/enc.odt b/wise-webapp/src/test/resources/data/export/enc.odt index 48403573..a7100900 100644 --- a/wise-webapp/src/test/resources/data/export/enc.odt +++ b/wise-webapp/src/test/resources/data/export/enc.odt @@ -79,6 +79,20 @@ Artigos GF comentários interessantes +Poorter 1999. Functional Ecology. 13:396-410 +Espécies pioneiras crescem mais rápido do que as não pioneiras +Tolerância a sombra está relacionada com persistência e não com crescimento +Chazdon 2010. Biotropica. 42(1): 31–40 +Falar no artigo que esse trabalho fala que é inadequada a divisão entre pioneira e não pioneira devido a grande variação que há entre elas. Além de terem descoberto que durante a ontogenia a resposta a luminosidade muda dentro de uma mesma espécie. Porém recomendar que essa classificação continue sendo usada em curto prazo enquanto não há informações confiáveis suficiente para esta simples classificação. Outras classificações como esta do artigo são bem vinda, contanto que tenham dados confiáveis. Porém dados estáticos já são difíceis de se obter, dados temporais, como taxa de crescimento em diâmetro ou altura, são mais difíceis ainda. Falar que vários tipos de classificações podem ser utilizadas e quanto mais detalhe melhor, porém os dados é que são mais limitantes. Se focarmos em dados de germinação e crescimento limitantes, como sugerem sainete e whitmore, da uma idéia maismrápida e a curto prazo da classificação destas espécies. Depois com o tempo conseguiremos construir classificações mais detalhadas e com mais dados confiáveis. +Here, we develop a new approach that links functional attributesof tree species with studies of forest recovery and regionalland-use transitions (Chazdon et al. 2007). Grouping species accordingto their functional attributes or demographic rates providesinsight into both applied and theoretical questions, such as selectingspecies for reforestation programs, assessing ecosystem services, andunderstanding community assembly processes in tropical forests(Diaz et al. 2007, Kraft et al. 2008). +Since we have data on leafand wood functional traits for only a subset of the species in ourstudy sites, we based our functional type classification on informationfor a large number of tree species obtained through vegetationmonitoring studies. +Our approach avoided preconceived notions of successionalbehavior or shade tolerance of tree species by developing an objectiveand independent classification of functional types based on vegetationmonitoring data from permanent sample plots in mature andsecondary forests of northeastern Costa Rica (Finegan et al. 1999,Chazdon et al. 2007).We apply an independent, prior classificationof 293 tree species from our study region into five functional types, based on two species attributes: canopy strata and diameter growthrates for individuals Z10 cm dbh (Finegan et al. 1999, Salgado-Negret 2007). +Our results demonstrate strong linkages between functionaltypes defined by adult height and growth rates of large trees andcolonization groups based on the timing of seedling, sapling, andtree recruitment in secondary forests. +These results allow us to move beyond earlier conceptualframeworks of tropical forest secondary succession developedby Finegan (1996) and Chazdon (2008) based on subjective groupings,such as pioneers and shade-tolerant species (Swaine &Whitmore 1988). +Reproductive traits, such as dispersal mode, pollination mode,and sexual system, were ultimately not useful in delimiting treefunctional types for the tree species examined here (Salgado-Negret2007). Thus, although reproductive traits do vary quantitatively inabundance between secondary and mature forests in our landscape(Chazdon et al. 2003), they do not seem to be important drivers ofsuccessional dynamics of trees Z10 cm dbh. For seedlings, however,dispersal mode and seed size are likely to play an importantrole in community dynamics during succession (Dalling&Hubbell2002). +Our classification of colonization groups defies the traditionaldichotomy between ‘late successional’ shade-tolerant and ‘early successional’pioneer species. Many tree species, classified here asregenerating pioneers on the basis of their population structure insecondary forests, are common in both young secondary forest andmature forests in this region (Guariguata et al. 1997), and many areimportant timber species (Vilchez et al. 2008). These generalists areby far the most abundant species of seedlings and saplings, conferringa high degree of resilience in the wet tropical forests of NECosta Rica (Norden et al. 2009, Letcher & Chazdon 2009). Thehigh abundance of regenerating pioneers in seedling and saplingsize classes clearly shows that species with shade-tolerant seedlingscan also recruit as trees early in succession. For these species, earlytree colonization enhances seedling and sapling recruitment duringthe first 20–30 yr of succession, due to local seed rain. Speciesabundance and size distribution depend strongly on chance colonizationevents early in succession (Chazdon 2008). Other studieshave shown that mature forest species are able to colonize early insuccession (Finegan 1996, van Breugel et al. 2007, Franklin & Rey2007, Ochoa-Gaona et al. 2007), emphasizing the importance ofinitial floristic composition in the determination of successionalpathways and rates of forest regrowth. On the other hand, significantnumbers of species in our sites (40% overall and the majorityof rare species) colonized only after canopy closure, and these speciesmay not occur as mature individuals until decades after agriculturalabandonment. +Classifying functional typesbased on functional traits with low plasticity, such as wood densityand seed size, could potentially serve as robust proxies for demographicvariables (Poorter et al. 2008, Zhang et al. 2008). +CONDIT, R., S. P. HUBBELL, AND R. B. FOSTER. 1996. Assessing the response ofplant functional types in tropical forests to climatic change. J. Veg. Sci.7: 405–416.DALLING, J. S., AND S. P. HUBBELL. 2002. Seed size, growth rate and gap micrositeconditions as determinants of recruitment success for pioneer species.J. Ecol. 90: 557–568.FINEGAN, B. 1996. Pattern and process in neotropical secondary forests: The first100 years of succession. Trends Ecol. Evol. 11: 119–124.POORTER, L., S. J. WRIGHT, H. PAZ, D. D. ACKERLY, R. CONDIT, G.IBARRA-MANRI´QUEZ, K. E. HARMS, J. C. LICONA, M.MARTI´NEZ-RAMOS,S. J. MAZER, H. C. MULLER-LANDAU, M. PEN˜ A-CLAROS, C. O. WEBB,AND I. J. WRIGHT. 2008. Are functional traits good predictors of demographicrates? Evidence from five Neotropical forests. Ecology 89:1908–1920.ZHANG, Z. D., R. G. ZANG, AND Y. D. QI. 2008. Spatiotemporal patterns anddynamics of species richness and abundance of woody plant functionalgroups in a tropical forest landscape of Hainan Island, South China.J. Integr. Plant Biol. 50: 547–558. Baraloto et al. 2010. Functional trait variation and sampling strategies in species-rich plant communities Therecent growth of large functional trait databases has been fuelled by standardized protocols forthemeasurement of individual functional traits and intensiveefforts to compile trait data(Cornelissen etal. 2003; Chave etal. 2009). Nonetheless, there remains no consensusforthe most appropriate sampling design so that traits can bescaled from the individuals on whom measurements aremade to the community or ecosystem levels at which infer-ences are drawn (Swenson etal. 2006,2007,Reich,Wright& Lusk 2007;Kraft,Valencia & Ackerly 2008). However, the fast pace ofdevelopment of plant trait meta-analyses also suggests thattrait acquisition in the field is a factor limiting the growth ofplant trait data bases. @@ -92,20 +106,6 @@ We suggest that, in these studies,the investment in complete sampling may be worthwhilefor at least some traits. Falar que isso corrobora nossa sugestão de utilizar poucas medidas, mas que elas sejam confiáveis. -Chazdon 2010. Biotropica. 42(1): 31–40 -Here, we develop a new approach that links functional attributesof tree species with studies of forest recovery and regionalland-use transitions (Chazdon et al. 2007). Grouping species accordingto their functional attributes or demographic rates providesinsight into both applied and theoretical questions, such as selectingspecies for reforestation programs, assessing ecosystem services, andunderstanding community assembly processes in tropical forests(Diaz et al. 2007, Kraft et al. 2008). -Since we have data on leafand wood functional traits for only a subset of the species in ourstudy sites, we based our functional type classification on informationfor a large number of tree species obtained through vegetationmonitoring studies. -Falar no artigo que esse trabalho fala que é inadequada a divisão entre pioneira e não pioneira devido a grande variação que há entre elas. Além de terem descoberto que durante a ontogenia a resposta a luminosidade muda dentro de uma mesma espécie. Porém recomendar que essa classificação continue sendo usada em curto prazo enquanto não há informações confiáveis suficiente para esta simples classificação. Outras classificações como esta do artigo são bem vinda, contanto que tenham dados confiáveis. Porém dados estáticos já são difíceis de se obter, dados temporais, como taxa de crescimento em diâmetro ou altura, são mais difíceis ainda. Falar que vários tipos de classificações podem ser utilizadas e quanto mais detalhe melhor, porém os dados é que são mais limitantes. Se focarmos em dados de germinação e crescimento limitantes, como sugerem sainete e whitmore, da uma idéia maismrápida e a curto prazo da classificação destas espécies. Depois com o tempo conseguiremos construir classificações mais detalhadas e com mais dados confiáveis. -Our approach avoided preconceived notions of successionalbehavior or shade tolerance of tree species by developing an objectiveand independent classification of functional types based on vegetationmonitoring data from permanent sample plots in mature andsecondary forests of northeastern Costa Rica (Finegan et al. 1999,Chazdon et al. 2007).We apply an independent, prior classificationof 293 tree species from our study region into five functional types, based on two species attributes: canopy strata and diameter growthrates for individuals Z10 cm dbh (Finegan et al. 1999, Salgado-Negret 2007). -Our results demonstrate strong linkages between functionaltypes defined by adult height and growth rates of large trees andcolonization groups based on the timing of seedling, sapling, andtree recruitment in secondary forests. -These results allow us to move beyond earlier conceptualframeworks of tropical forest secondary succession developedby Finegan (1996) and Chazdon (2008) based on subjective groupings,such as pioneers and shade-tolerant species (Swaine &Whitmore 1988). -Reproductive traits, such as dispersal mode, pollination mode,and sexual system, were ultimately not useful in delimiting treefunctional types for the tree species examined here (Salgado-Negret2007). Thus, although reproductive traits do vary quantitatively inabundance between secondary and mature forests in our landscape(Chazdon et al. 2003), they do not seem to be important drivers ofsuccessional dynamics of trees Z10 cm dbh. For seedlings, however,dispersal mode and seed size are likely to play an importantrole in community dynamics during succession (Dalling&Hubbell2002). -Our classification of colonization groups defies the traditionaldichotomy between ‘late successional’ shade-tolerant and ‘early successional’pioneer species. Many tree species, classified here asregenerating pioneers on the basis of their population structure insecondary forests, are common in both young secondary forest andmature forests in this region (Guariguata et al. 1997), and many areimportant timber species (Vilchez et al. 2008). These generalists areby far the most abundant species of seedlings and saplings, conferringa high degree of resilience in the wet tropical forests of NECosta Rica (Norden et al. 2009, Letcher & Chazdon 2009). Thehigh abundance of regenerating pioneers in seedling and saplingsize classes clearly shows that species with shade-tolerant seedlingscan also recruit as trees early in succession. For these species, earlytree colonization enhances seedling and sapling recruitment duringthe first 20–30 yr of succession, due to local seed rain. Speciesabundance and size distribution depend strongly on chance colonizationevents early in succession (Chazdon 2008). Other studieshave shown that mature forest species are able to colonize early insuccession (Finegan 1996, van Breugel et al. 2007, Franklin & Rey2007, Ochoa-Gaona et al. 2007), emphasizing the importance ofinitial floristic composition in the determination of successionalpathways and rates of forest regrowth. On the other hand, significantnumbers of species in our sites (40% overall and the majorityof rare species) colonized only after canopy closure, and these speciesmay not occur as mature individuals until decades after agriculturalabandonment. -Classifying functional typesbased on functional traits with low plasticity, such as wood densityand seed size, could potentially serve as robust proxies for demographicvariables (Poorter et al. 2008, Zhang et al. 2008). -CONDIT, R., S. P. HUBBELL, AND R. B. FOSTER. 1996. Assessing the response ofplant functional types in tropical forests to climatic change. J. Veg. Sci.7: 405–416.DALLING, J. S., AND S. P. HUBBELL. 2002. Seed size, growth rate and gap micrositeconditions as determinants of recruitment success for pioneer species.J. Ecol. 90: 557–568.FINEGAN, B. 1996. Pattern and process in neotropical secondary forests: The first100 years of succession. Trends Ecol. Evol. 11: 119–124.POORTER, L., S. J. WRIGHT, H. PAZ, D. D. ACKERLY, R. CONDIT, G.IBARRA-MANRI´QUEZ, K. E. HARMS, J. C. LICONA, M.MARTI´NEZ-RAMOS,S. J. MAZER, H. C. MULLER-LANDAU, M. PEN˜ A-CLAROS, C. O. WEBB,AND I. J. WRIGHT. 2008. Are functional traits good predictors of demographicrates? Evidence from five Neotropical forests. Ecology 89:1908–1920.ZHANG, Z. D., R. G. ZANG, AND Y. D. QI. 2008. Spatiotemporal patterns anddynamics of species richness and abundance of woody plant functionalgroups in a tropical forest landscape of Hainan Island, South China.J. Integr. Plant Biol. 50: 547–558. -Poorter 1999. Functional Ecology. 13:396-410 -Espécies pioneiras crescem mais rápido do que as não pioneiras -Tolerância a sombra está relacionada com persistência e não com crescimento diff --git a/wise-webapp/src/test/resources/data/export/enc.txt b/wise-webapp/src/test/resources/data/export/enc.txt index cc575efa..aab4f10b 100644 --- a/wise-webapp/src/test/resources/data/export/enc.txt +++ b/wise-webapp/src/test/resources/data/export/enc.txt @@ -1,19 +1,11 @@ 1 Artigos GF comentários interessantes - 1.1 Baraloto et al. 2010. Functional trait variation and sampling strategies in species-rich plant communities - 1.1.1 - 1.1.2 - 1.1.3 - 1.1.4 Falar que a escolha das categorias de sucessão e dos parâmetros ou característica dos indivíduos que serão utilizadas dependera da facilidade de coleta dos dados e do custo monetário e temporal. - 1.1.5 Ver se classifica sucessão por densidade de tronco para citar no artigo como exemplo de outros atributos além de germinação e ver se e custoso no tempo e em dinheiro - 1.1.6 Intensas amostragens de experimentos simples tem maior retorno em acurácia de estimativa e de custo tb. - 1.1.7 - * Note: Isso significa que estudos de característica de história de vida compensam? Ver nos m&m. - 1.1.8 - * Note: Falar que isso corrobora nossa sugestão de utilizar poucas medidas, mas que elas sejam confiáveis. + 1.1 Poorter 1999. Functional Ecology. 13:396-410 + 1.1.1 Espécies pioneiras crescem mais rápido do que as não pioneiras + 1.1.1.1 Tolerância a sombra está relacionada com persistência e não com crescimento 1.2 Chazdon 2010. Biotropica. 42(1): 31–40 - 1.2.1 + 1.2.1 Falar no artigo que esse trabalho fala que é inadequada a divisão entre pioneira e não pioneira devido a grande variação que há entre elas. Além de terem descoberto que durante a ontogenia a resposta a luminosidade muda dentro de uma mesma espécie. Porém recomendar que essa classificação continue sendo usada em curto prazo enquanto não há informações confiáveis suficiente para esta simples classificação. Outras classificações como esta do artigo são bem vinda, contanto que tenham dados confiáveis. Porém dados estáticos já são difíceis de se obter, dados temporais, como taxa de crescimento em diâmetro ou altura, são mais difíceis ainda. Falar que vários tipos de classificações podem ser utilizadas e quanto mais detalhe melhor, porém os dados é que são mais limitantes. Se focarmos em dados de germinação e crescimento limitantes, como sugerem sainete e whitmore, da uma idéia maismrápida e a curto prazo da classificação destas espécies. Depois com o tempo conseguiremos construir classificações mais detalhadas e com mais dados confiáveis. 1.2.2 - 1.2.3 Falar no artigo que esse trabalho fala que é inadequada a divisão entre pioneira e não pioneira devido a grande variação que há entre elas. Além de terem descoberto que durante a ontogenia a resposta a luminosidade muda dentro de uma mesma espécie. Porém recomendar que essa classificação continue sendo usada em curto prazo enquanto não há informações confiáveis suficiente para esta simples classificação. Outras classificações como esta do artigo são bem vinda, contanto que tenham dados confiáveis. Porém dados estáticos já são difíceis de se obter, dados temporais, como taxa de crescimento em diâmetro ou altura, são mais difíceis ainda. Falar que vários tipos de classificações podem ser utilizadas e quanto mais detalhe melhor, porém os dados é que são mais limitantes. Se focarmos em dados de germinação e crescimento limitantes, como sugerem sainete e whitmore, da uma idéia maismrápida e a curto prazo da classificação destas espécies. Depois com o tempo conseguiremos construir classificações mais detalhadas e com mais dados confiáveis. + 1.2.3 1.2.4 1.2.5 1.2.6 @@ -21,6 +13,14 @@ 1.2.8 1.2.9 1.2.10 - 1.3 Poorter 1999. Functional Ecology. 13:396-410 - 1.3.1 Espécies pioneiras crescem mais rápido do que as não pioneiras - 1.3.1.1 Tolerância a sombra está relacionada com persistência e não com crescimento + 1.3 Baraloto et al. 2010. Functional trait variation and sampling strategies in species-rich plant communities + 1.3.1 + 1.3.2 + 1.3.3 + 1.3.4 Falar que a escolha das categorias de sucessão e dos parâmetros ou característica dos indivíduos que serão utilizadas dependera da facilidade de coleta dos dados e do custo monetário e temporal. + 1.3.5 Ver se classifica sucessão por densidade de tronco para citar no artigo como exemplo de outros atributos além de germinação e ver se e custoso no tempo e em dinheiro + 1.3.6 Intensas amostragens de experimentos simples tem maior retorno em acurácia de estimativa e de custo tb. + 1.3.7 + * Note: Isso significa que estudos de característica de história de vida compensam? Ver nos m&m. + 1.3.8 + * Note: Falar que isso corrobora nossa sugestão de utilizar poucas medidas, mas que elas sejam confiáveis. diff --git a/wise-webapp/src/test/resources/data/export/enc.xls b/wise-webapp/src/test/resources/data/export/enc.xls index 2f351c25..bf9b6105 100644 --- a/wise-webapp/src/test/resources/data/export/enc.xls +++ b/wise-webapp/src/test/resources/data/export/enc.xls @@ -28,99 +28,17 @@ -Baraloto et al. 2010. Functional trait variation and sampling strategies in species-rich plant communities +Poorter 1999. Functional Ecology. 13:396-410 - -

    Therecent growth of large functional trait data

    -

    bases has been fuelled by standardized protocols forthe

    -

    measurement of individual functional traits and intensive

    -

    efforts to compile trait data(Cornelissen etal. 2003; Chave etal. 2009). Nonetheless, there remains no consensusfor

    -

    the most appropriate sampling design so that traits can be

    -

    scaled from the individuals on whom measurements are

    -

    made to the community or ecosystem levels at which infer-

    -

    ences are drawn (Swenson etal. 2006,2007,Reich,Wright

    -

    & Lusk 2007;Kraft,Valencia & Ackerly 2008).

    -
    +Espécies pioneiras crescem mais rápido do que as não pioneiras
    - - -

    However, the fast pace of

    -

    development of plant trait meta-analyses also suggests that

    -

    trait acquisition in the field is a factor limiting the growth of

    -

    plant trait data bases.

    -
    -
    -
    - - - -

    We measured

    -

    traits for every individual tree in nine 1-ha plots in tropical

    -

    lowland rainforest (N = 4709). Each plant was sampled for

    -

    10 functional traits related to wood and leaf morphology and

    -

    ecophysiology. Here, we contrast the trait means and variances

    -

    obtained with a full sampling strategy with those of

    -

    other sampling designs used in the recent literature, which we

    -

    obtain by simulation. We assess the differences in community-

    -

    level estimates of functional trait means and variances

    -

    among design types and sampling intensities. We then contrast

    -

    the relative costs of these designs and discuss the appropriateness

    -

    of different sampling designs and intensities for

    -

    different questions and systems.

    -
    -
    -
    - - -Falar que a escolha das categorias de sucessão e dos parâmetros ou característica dos indivíduos que serão utilizadas dependera da facilidade de coleta dos dados e do custo monetário e temporal. - - - - -Ver se classifica sucessão por densidade de tronco para citar no artigo como exemplo de outros atributos além de germinação e ver se e custoso no tempo e em dinheiro - - - - -Intensas amostragens de experimentos simples tem maior retorno em acurácia de estimativa e de custo tb. - - - - - -

    With regard to estimating mean trait values, strategies

    -

    alternative to BRIDGE were consistently cost-effective. On

    -

    the other hand, strategies alternative to BRIDGE clearly

    -

    failed to accurately estimate the variance of trait values. This

    -

    indicates that in situations where accurate estimation of plotlevel

    -

    variance is desired, complete censuses are essential.

    -
    - - -

    -

    Isso significa que estudos de característica de história de vida compensam? Ver nos m&m.

    -
    -
    -
    -
    - - - -

    We suggest that, in these studies,

    -

    the investment in complete sampling may be worthwhile

    -

    for at least some traits.

    -
    - - -

    -

    Falar que isso corrobora nossa sugestão de utilizar poucas medidas, mas que elas sejam confiáveis.

    -
    -
    + +Tolerância a sombra está relacionada com persistência e não com crescimento
    @@ -130,6 +48,11 @@ +Falar no artigo que esse trabalho fala que é inadequada a divisão entre pioneira e não pioneira devido a grande variação que há entre elas. Além de terem descoberto que durante a ontogenia a resposta a luminosidade muda dentro de uma mesma espécie. Porém recomendar que essa classificação continue sendo usada em curto prazo enquanto não há informações confiáveis suficiente para esta simples classificação. Outras classificações como esta do artigo são bem vinda, contanto que tenham dados confiáveis. Porém dados estáticos já são difíceis de se obter, dados temporais, como taxa de crescimento em diâmetro ou altura, são mais difíceis ainda. Falar que vários tipos de classificações podem ser utilizadas e quanto mais detalhe melhor, porém os dados é que são mais limitantes. Se focarmos em dados de germinação e crescimento limitantes, como sugerem sainete e whitmore, da uma idéia maismrápida e a curto prazo da classificação destas espécies. Depois com o tempo conseguiremos construir classificações mais detalhadas e com mais dados confiáveis. + + + +

    Here, we develop a new approach that links functional attributes

    of tree species with studies of forest recovery and regional

    @@ -155,11 +78,6 @@
    -Falar no artigo que esse trabalho fala que é inadequada a divisão entre pioneira e não pioneira devido a grande variação que há entre elas. Além de terem descoberto que durante a ontogenia a resposta a luminosidade muda dentro de uma mesma espécie. Porém recomendar que essa classificação continue sendo usada em curto prazo enquanto não há informações confiáveis suficiente para esta simples classificação. Outras classificações como esta do artigo são bem vinda, contanto que tenham dados confiáveis. Porém dados estáticos já são difíceis de se obter, dados temporais, como taxa de crescimento em diâmetro ou altura, são mais difíceis ainda. Falar que vários tipos de classificações podem ser utilizadas e quanto mais detalhe melhor, porém os dados é que são mais limitantes. Se focarmos em dados de germinação e crescimento limitantes, como sugerem sainete e whitmore, da uma idéia maismrápida e a curto prazo da classificação destas espécies. Depois com o tempo conseguiremos construir classificações mais detalhadas e com mais dados confiáveis. - - - -

    Our approach avoided preconceived notions of successional

    behavior or shade tolerance of tree species by developing an objective

    @@ -278,17 +196,99 @@
    -Poorter 1999. Functional Ecology. 13:396-410 +Baraloto et al. 2010. Functional trait variation and sampling strategies in species-rich plant communities -Espécies pioneiras crescem mais rápido do que as não pioneiras + +

    Therecent growth of large functional trait data

    +

    bases has been fuelled by standardized protocols forthe

    +

    measurement of individual functional traits and intensive

    +

    efforts to compile trait data(Cornelissen etal. 2003; Chave etal. 2009). Nonetheless, there remains no consensusfor

    +

    the most appropriate sampling design so that traits can be

    +

    scaled from the individuals on whom measurements are

    +

    made to the community or ecosystem levels at which infer-

    +

    ences are drawn (Swenson etal. 2006,2007,Reich,Wright

    +

    & Lusk 2007;Kraft,Valencia & Ackerly 2008).

    +
    - -Tolerância a sombra está relacionada com persistência e não com crescimento + + +

    However, the fast pace of

    +

    development of plant trait meta-analyses also suggests that

    +

    trait acquisition in the field is a factor limiting the growth of

    +

    plant trait data bases.

    +
    +
    +
    + + + +

    We measured

    +

    traits for every individual tree in nine 1-ha plots in tropical

    +

    lowland rainforest (N = 4709). Each plant was sampled for

    +

    10 functional traits related to wood and leaf morphology and

    +

    ecophysiology. Here, we contrast the trait means and variances

    +

    obtained with a full sampling strategy with those of

    +

    other sampling designs used in the recent literature, which we

    +

    obtain by simulation. We assess the differences in community-

    +

    level estimates of functional trait means and variances

    +

    among design types and sampling intensities. We then contrast

    +

    the relative costs of these designs and discuss the appropriateness

    +

    of different sampling designs and intensities for

    +

    different questions and systems.

    +
    +
    +
    + + +Falar que a escolha das categorias de sucessão e dos parâmetros ou característica dos indivíduos que serão utilizadas dependera da facilidade de coleta dos dados e do custo monetário e temporal. + + + + +Ver se classifica sucessão por densidade de tronco para citar no artigo como exemplo de outros atributos além de germinação e ver se e custoso no tempo e em dinheiro + + + + +Intensas amostragens de experimentos simples tem maior retorno em acurácia de estimativa e de custo tb. + + + + + +

    With regard to estimating mean trait values, strategies

    +

    alternative to BRIDGE were consistently cost-effective. On

    +

    the other hand, strategies alternative to BRIDGE clearly

    +

    failed to accurately estimate the variance of trait values. This

    +

    indicates that in situations where accurate estimation of plotlevel

    +

    variance is desired, complete censuses are essential.

    +
    + + +

    +

    Isso significa que estudos de característica de história de vida compensam? Ver nos m&m.

    +
    +
    +
    +
    + + + +

    We suggest that, in these studies,

    +

    the investment in complete sampling may be worthwhile

    +

    for at least some traits.

    +
    + + +

    +

    Falar que isso corrobora nossa sugestão de utilizar poucas medidas, mas que elas sejam confiáveis.

    +
    +
    diff --git a/wise-webapp/src/test/resources/data/export/huge.csv b/wise-webapp/src/test/resources/data/export/huge.csv index 28432625..b65c0268 100644 --- a/wise-webapp/src/test/resources/data/export/huge.csv +++ b/wise-webapp/src/test/resources/data/export/huge.csv @@ -1,50 +1,318 @@ I Care +, + De markt +, + , + hygiëne +, + , + diensten +, + , + energie +, + , + , + kamer herkent gebruiker +, + , + , + automatische lichten +, + , + inrichting (woning) +, + , + , + advies +, + , + , + , + kleuren en stijlen +, + , + , + monitoring +, + , + , + , + eigendomsverificatie +, + , + , + , + kwaliteit +, + , + medicijnen +, + , + , + alternatieven +, + , + , + neveneffecten +, + , + , + werking +, + , + , + kwaliteit +, + , + electronica +, + , + , + monitoring +, + , + , + , + productie verloop +, + , + , + , + , + testfasen +, + , + , + , + , + wat/wanneer +, + , + , + , + , + door wie +, + , + , + , + levensloop +, + , + , + , + , + gebruikscycli +, + , + , + , + kwaliteit +, + , + , + , + , + reparatieservice +, + , + , + , + , + rechtstreekse link naar producent bij falen +, + , + , + eigendomsverificatie +, + , + , + , + afdanking (sluikstorten) +, + , + , + , + koop-verkoop +, + , + , + , + GPS tracking +, + , + voeding +, + , + , + zie bij handelingen -->winkelen +, + , + kleding +, + , + , + stijlen +, + , + , + , + begeleiding bij het winkelen naar gelijkaardige kleding +, + , + , + monitoring +, + , + , + kwaliteitsinfo bij aankoop +, + , + , + , + reviews +, + , + , + , + info uit cloud +, + , + , + informatiebronnen per merk +, + , + , + , + slimme kledij , veiligheid +, + , + criminaliteit +, + , + , + Aantal ongevallen/criminele feiten registreren +, + , + , + , + Terugkoppeling naar politie/verkeersdienst +, + , + , + , + Meer controle +, + , + , + , + Mapping van probleemsituaties +, + , + , + diefstal +, + , + , + , + tracking via gps +, + , + , + wapenhandel +, + , + , + , + opsporen +, + , + , + drugs +, + , + , + , + opsporen +, + , + , + , + , + testen per woonregio (via afvoerstelsels) +, + , + , + , + , + individuele tests , , verkeer -, - , - , - filevorming -, - , - , - , - preventie -, - , - , - , - Omleiding zoeken -, - , - , - Openbaar vervoer -, - , - , - Openbare fietsen -, - , - , - , - Trackingsysteem, # fietsen op 1 plaats -, - , - , - , - Fiets bestellen in grote steden , , , ongevallen +, + , + , + , + info over de staat van het wegdek +, + , + , + , + , + aanpassing van max. snelheid +, + , + , + , + , + waarschuwingen +, + , + , + , + , + wegenwerken +, + , + , + , + oorzaak +, + , + , + , + , + opsporen van vluchtmisdrijf +, + , + , + , + , + Automatisch opbellen van hulpdiensten +, + , + , + , + , + nagaan van de oorzaak , , , , preventie +, + , + , + , + , + bestraffen van chauffeurs? , , , @@ -61,303 +329,35 @@ I Care , , , - , - , - bestraffen van chauffeurs? + Openbare fietsen , , , , - oorzaak + Fiets bestellen in grote steden , , , , + Trackingsysteem, # fietsen op 1 plaats +, , - nagaan van de oorzaak + , + Openbaar vervoer +, + , + , + filevorming , , , , - , - Automatisch opbellen van hulpdiensten + Omleiding zoeken , , , , - , - opsporen van vluchtmisdrijf -, - , - , - , - info over de staat van het wegdek -, - , - , - , - , - wegenwerken -, - , - , - , - , - waarschuwingen -, - , - , - , - , - aanpassing van max. snelheid -, - , - criminaliteit -, - , - , - drugs -, - , - , - , - opsporen -, - , - , - , - , - individuele tests -, - , - , - , - , - testen per woonregio (via afvoerstelsels) -, - , - , - wapenhandel -, - , - , - , - opsporen -, - , - , - diefstal -, - , - , - , - tracking via gps -, - , - , - Aantal ongevallen/criminele feiten registreren -, - , - , - , - Mapping van probleemsituaties -, - , - , - , - Meer controle -, - , - , - , - Terugkoppeling naar politie/verkeersdienst -, - De markt -, - , - kleding -, - , - , - informatiebronnen per merk -, - , - , - , - slimme kledij -, - , - , - kwaliteitsinfo bij aankoop -, - , - , - , - info uit cloud -, - , - , - , - reviews -, - , - , - monitoring -, - , - , - stijlen -, - , - , - , - begeleiding bij het winkelen naar gelijkaardige kleding -, - , - voeding -, - , - , - zie bij handelingen -->winkelen -, - , - electronica -, - , - , - eigendomsverificatie -, - , - , - , - GPS tracking -, - , - , - , - koop-verkoop -, - , - , - , - afdanking (sluikstorten) -, - , - , - monitoring -, - , - , - , - kwaliteit -, - , - , - , - , - rechtstreekse link naar producent bij falen -, - , - , - , - , - reparatieservice -, - , - , - , - levensloop -, - , - , - , - , - gebruikscycli -, - , - , - , - productie verloop -, - , - , - , - , - door wie -, - , - , - , - , - wat/wanneer -, - , - , - , - , - testfasen -, - , - medicijnen -, - , - , - kwaliteit -, - , - , - werking -, - , - , - neveneffecten -, - , - , - alternatieven -, - , - inrichting (woning) -, - , - , - monitoring -, - , - , - , - kwaliteit -, - , - , - , - eigendomsverificatie -, - , - , - advies -, - , - , - , - kleuren en stijlen -, - , - energie -, - , - , - automatische lichten -, - , - , - kamer herkent gebruiker -, - , - diensten -, - , - hygiëne + preventie , handelingen , @@ -367,6 +367,38 @@ I Care , , winkelhulp +, + , + , + , + boodschappenlijst +, + , + , + , + , + alternatieven indien uitverkocht +, + , + , + , + , + dichtste bij bovenaan +, + , + , + , + recepten generator +, + , + , + , + bestellingen op afstand +, + , + , + , + digitale portemonnee , , , @@ -377,34 +409,13 @@ I Care , , , - allergie + alternatieve producten , , , , , - , - Gezondheidscontrole -, - , - , - , - , - , - Sensor voor vers fruit en vlees -, - , - , - , - , - , - Salmonella sensor -, - , - , - , - , - prijs + diëet checker , , , @@ -417,14 +428,7 @@ I Care , , , - via cloud -, - , - , - , - , - , - databases v. reviews + voedingstoffen , , , @@ -438,136 +442,116 @@ I Care , , , - voedingstoffen + databases v. reviews , , , , , - diëet checker + , + via cloud , , , , , - alternatieve producten -, - , - , - , - digitale portemonnee -, - , - , - , - bestellingen op afstand -, - , - , - , - recepten generator -, - , - , - , - boodschappenlijst + prijs , , , , , - dichtste bij bovenaan + allergie , , , , , - alternatieven indien uitverkocht -, - milieu -, , - bosbouw -, - , - , - ziektes bij bomen -, - , - , - parasieten -, - , - , - bodemvervuiling + Salmonella sensor , , , , - onderzoek -, , - mag ik dit door mijn gootsteen kappen -, , - pollutie -, - , - afval + Sensor voor vers fruit en vlees , , , - verwerking -, , , - riolen -, , - , - cradle 2 cradle -, - , - , - -, - , - dioxines -, - , - eco systemen -, - , - , - diversiteit -, - , - waterreserves -, - , - , - reserves -, - , - , - vervuiling -, - , - alternatieve energie -, - , - , - wind -, - , - , - zon -, - , - , - kernenergie + Gezondheidscontrole , industrie +, + aandoeningen en situaties +, + , + dementen +, + , + , + eten +, + , + , + wassen +, + , + , + wegloopdetectie +, + , + zwangerschap +, + , + , + geboortetimer +, + , + , + info over voeding +, + , + , + , + via cloud info over voeding +, + , + , + , + wat is gezond +, + , + , + baby monitoren +, + sport +, + , + opvolging van de sporter +, + , + , + gps +, + , + , + cadans +, + , + , + energieverbruik +, + , + , + bloeddruk +, + , + , + hartslag , cultuur , @@ -581,12 +565,7 @@ I Care , , , - isolatie -, - , - , - , - warmtemetingen + nameten , , , @@ -594,214 +573,84 @@ I Care , , , - nameten -, - aandoeningen en situaties -, - , - zwangerschap -, - , - , - baby monitoren -, - , - , - info over voeding + isolatie , , , , - wat is gezond -, - , - , - , - via cloud info over voeding -, - , - , - geboortetimer -, - , - dementen -, - , - , - wegloopdetectie -, - , - , - wassen -, - , - , - eten -, - sport -, - , - opvolging van de sporter -, - , - , - hartslag -, - , - , - bloeddruk -, - , - , - energieverbruik -, - , - , - cadans -, - , - , - gps + warmtemetingen , ziektes +, + , + stress +, + , + , + monitoring +, + , + , + , + in welke afdeling een probleem +, + , + , + , + , + aanpak +, + , + , + , + , + aan welke factoren ligt dat +, + , + , + afreageren +, + , + thuisverzorging +, + , + , + link naar ziekenhuis +, + , + , + link naar dokter +, + , + , + meting van de symptomen +, + , + , + , + objectieve metingen +, + , + , + , + toevoeging van eigen waarneming , , verschillende ziektes , , , - feedback van de lichaamsconditie + anorexia , , , , - aan de patiënt + eten ze voldoende , , , , - , - waarschuwingen -, - , - , - , - link -, - , - , - , - , - naar ziekenhuis -, - , - , - , - , - naar hulpdiensten -, - , - , - , - , - naar behandelend arts -, - , - , - , - aan dokter -, - , - , - , - , - contacteert patient indien nodig -, - , - , - , - , - volledig overzicht -, - , - , - , - , - op afstand consulatie -, - , - , - MS -, - , - , - , - bevorderen van communicatie tijdens de aftakeling -, - , - , - , - , - naar de dokters toe -, - , - , - , - , - naar familie en vrienden toe -, - , - , - mucoviscidose -, - , - , - , - longcapaciteit meten -, - , - , - , - alert voor donor -, - , - , - aids -, - , - , - , - vergroten van de database aan info -, - , - , - diabetes -, - , - , - , - suikerspiegel meten -, - , - , - , - , - alert indien te laag -, - , - , - , - , - automatische inspuiting -, - , - , - epilepsie -, - , - , - , - aanval voorspellen?? + nagaan of ze eten , , , @@ -823,7 +672,7 @@ I Care , , , - vervuiling + allergie veroorzakende deeltjes , , , @@ -837,71 +686,222 @@ I Care , , , - allergie veroorzakende deeltjes + vervuiling , , , - anorexia + epilepsie , , , , - nagaan of ze eten + aanval voorspellen?? +, + , + , + diabetes , , , , - eten ze voldoende -, - , - thuisverzorging -, - , - , - meting van de symptomen -, - , - , - , - toevoeging van eigen waarneming -, - , - , - , - objectieve metingen -, - , - , - link naar dokter -, - , - , - link naar ziekenhuis -, - , - stress -, - , - , - afreageren -, - , - , - monitoring -, - , - , - , - in welke afdeling een probleem + suikerspiegel meten , , , , , - aan welke factoren ligt dat + automatische inspuiting , , , , , - aanpak + alert indien te laag +, + , + , + aids +, + , + , + , + vergroten van de database aan info +, + , + , + mucoviscidose +, + , + , + , + alert voor donor +, + , + , + , + longcapaciteit meten +, + , + , + MS +, + , + , + , + bevorderen van communicatie tijdens de aftakeling +, + , + , + , + , + naar familie en vrienden toe +, + , + , + , + , + naar de dokters toe +, + , + , + feedback van de lichaamsconditie +, + , + , + , + aan dokter +, + , + , + , + , + op afstand consulatie +, + , + , + , + , + volledig overzicht +, + , + , + , + , + contacteert patient indien nodig +, + , + , + , + link +, + , + , + , + , + naar behandelend arts +, + , + , + , + , + naar hulpdiensten +, + , + , + , + , + naar ziekenhuis +, + , + , + , + aan de patiënt +, + , + , + , + , + waarschuwingen +, + milieu +, + , + alternatieve energie +, + , + , + kernenergie +, + , + , + zon +, + , + , + wind +, + , + waterreserves +, + , + , + vervuiling +, + , + , + reserves +, + , + eco systemen +, + , + , + diversiteit +, + , + dioxines +, + , + afval +, + , + , + +, + , + , + cradle 2 cradle +, + , + , + riolen +, + , + , + verwerking +, + , + pollutie +, + , + mag ik dit door mijn gootsteen kappen +, + , + bosbouw +, + , + , + bodemvervuiling +, + , + , + , + onderzoek +, + , + , + parasieten +, + , + , + ziektes bij bomen diff --git a/wise-webapp/src/test/resources/data/export/huge.doc b/wise-webapp/src/test/resources/data/export/huge.doc index 18c98060..90abe479 100644 --- a/wise-webapp/src/test/resources/data/export/huge.doc +++ b/wise-webapp/src/test/resources/data/export/huge.doc @@ -267,364 +267,6 @@ -veiligheid - - - - - - - - -verkeer - - - - - - - - - - - - - - - - - - -filevorming - - - - - - - - -preventie - - - - - - - - - - - - - - - - - - - -Omleiding zoeken - - - - - - - - - - -Openbaar vervoer - - - - - - - - - -Openbare fietsen - - - - - - - - -Trackingsysteem, # fietsen op 1 plaats - - - - - - - - - -Fiets bestellen in grote steden - - - - - - - - - - -ongevallen - - - - - - - - -preventie - - - - - - - -roekeloos rijgedrag opsporen - - - - - - - -via sensoren aan boord versnelling, manouvres, snelheid,... registreren - - - - - - - -bestraffen van chauffeurs? - - - - - - - - - -oorzaak - - - - - - - -nagaan van de oorzaak - - - - - - - -Automatisch opbellen van hulpdiensten - - - - - - - -opsporen van vluchtmisdrijf - - - - - - - - - -info over de staat van het wegdek - - - - - - - -wegenwerken - - - - - - - -waarschuwingen - - - - - - - -aanpassing van max. snelheid - - - - - - - - - - - -criminaliteit - - - - - - - - - - - - - - - - - - -drugs - - - - - - - - -opsporen - - - - - - - -individuele tests - - - - - - - -testen per woonregio (via afvoerstelsels) - - - - - - - - - - -wapenhandel - - - - - - - - -opsporen - - - - - - - - - - -diefstal - - - - - - - - -tracking via gps - - - - - - - - - - -Aantal ongevallen/criminele feiten registreren - - - - - - - - -Mapping van probleemsituaties - - - - - - - - - -Meer controle - - - - - - - - - -Terugkoppeling naar politie/verkeersdienst - - - - - - - - - - - - De markt @@ -644,7 +286,27 @@ -kleding +hygiëne + + + + + + + + + +diensten + + + + + + + + + +energie @@ -653,19 +315,9 @@ -informatiebronnen per merk +kamer herkent gebruiker - - - - - - -slimme kledij - - - @@ -673,26 +325,36 @@ -kwaliteitsinfo bij aankoop - - - - - - - - -info uit cloud +automatische lichten + + + + + + + +inrichting (woning) + + + + + + + + +advies + + -reviews +kleuren en stijlen @@ -706,14 +368,44 @@ monitoring + - + - - - +eigendomsverificatie + + + + + + + + + +kwaliteit + + + + + + + + + + + +medicijnen + + + + + + + + +alternatieven @@ -723,7 +415,47 @@ -stijlen +neveneffecten + + + + + + + + + +werking + + + + + + + + + +kwaliteit + + + + + + + + + + +electronica + + + + + + + + +monitoring @@ -732,7 +464,115 @@ -begeleiding bij het winkelen naar gelijkaardige kleding +productie verloop + + + + + + + +testfasen + + + + + + + +wat/wanneer + + + + + + + +door wie + + + + + + + + + +levensloop + + + + + + + +gebruikscycli + + + + + + + + + +kwaliteit + + + + + + + +reparatieservice + + + + + + + +rechtstreekse link naar producent bij falen + + + + + + + + + + +eigendomsverificatie + + + + + + + + +afdanking (sluikstorten) + + + + + + + + + +koop-verkoop + + + + + + + + + +GPS tracking @@ -764,7 +604,7 @@ -electronica +kleding @@ -773,7 +613,7 @@ -eigendomsverificatie +stijlen @@ -782,27 +622,7 @@ -GPS tracking - - - - - - - - - -koop-verkoop - - - - - - - - - -afdanking (sluikstorten) +begeleiding bij het winkelen naar gelijkaardige kleding @@ -816,29 +636,33 @@ monitoring + + + + + + + + + + + + + + + + + +kwaliteitsinfo bij aankoop + + -kwaliteit - - - - - - - -rechtstreekse link naar producent bij falen - - - - - - - -reparatieservice +reviews @@ -848,15 +672,77 @@ -levensloop +info uit cloud + + + + + + + + + + +informatiebronnen per merk + + + + + + + + +slimme kledij + + + + + + + + + + + + +veiligheid + + + + + + + + +criminaliteit - + -gebruikscycli + + + + + + + + + + + +Aantal ongevallen/criminele feiten registreren + + + + + + + + +Terugkoppeling naar politie/verkeersdienst @@ -866,7 +752,77 @@ -productie verloop +Meer controle + + + + + + + + + +Mapping van probleemsituaties + + + + + + + + + + +diefstal + + + + + + + + +tracking via gps + + + + + + + + + + +wapenhandel + + + + + + + + +opsporen + + + + + + + + + + +drugs + + + + + + + + +opsporen @@ -874,7 +830,7 @@ -door wie +testen per woonregio (via afvoerstelsels) @@ -882,15 +838,7 @@ -wat/wanneer - - - - - - - -testfasen +individuele tests @@ -902,7 +850,17 @@ -medicijnen +verkeer + + + + + + + + + + @@ -911,57 +869,7 @@ -kwaliteit - - - - - - - - - -werking - - - - - - - - - -neveneffecten - - - - - - - - - -alternatieven - - - - - - - - - - -inrichting (woning) - - - - - - - - -monitoring +ongevallen @@ -970,7 +878,31 @@ -kwaliteit +info over de staat van het wegdek + + + + + + + +aanpassing van max. snelheid + + + + + + + +waarschuwingen + + + + + + + +wegenwerken @@ -980,7 +912,65 @@ -eigendomsverificatie +oorzaak + + + + + + + +opsporen van vluchtmisdrijf + + + + + + + +Automatisch opbellen van hulpdiensten + + + + + + + +nagaan van de oorzaak + + + + + + + + + +preventie + + + + + + + +bestraffen van chauffeurs? + + + + + + + +roekeloos rijgedrag opsporen + + + + + + + +via sensoren aan boord versnelling, manouvres, snelheid,... registreren @@ -991,7 +981,7 @@ -advies +Openbare fietsen @@ -1000,28 +990,28 @@ -kleuren en stijlen +Fiets bestellen in grote steden - - - + -energie +Trackingsysteem, # fietsen op 1 plaats + + -automatische lichten +Openbaar vervoer @@ -1031,30 +1021,40 @@ -kamer herkent gebruiker +filevorming - - - + -diensten +Omleiding zoeken - + -hygiëne +preventie + + + + + + + + + + + + @@ -1090,7 +1090,7 @@ -productinfo +boodschappenlijst @@ -1098,7 +1098,7 @@ -allergie +alternatieven indien uitverkocht @@ -1106,107 +1106,7 @@ -Gezondheidscontrole - - - - - - - -Sensor voor vers fruit en vlees - - - - - - - -Salmonella sensor - - - - - - - -prijs - - - - - - - -kwaliteit - - - - - - - -via cloud - - - - - - - -databases v. reviews - - - - - - - -bio - - - - - - - -voedingstoffen - - - - - - - -diëet checker - - - - - - - -alternatieve producten - - - - - - - - - -digitale portemonnee - - - - - - - - - -bestellingen op afstand +dichtste bij bovenaan @@ -1236,256 +1136,126 @@ -boodschappenlijst - - - - - - - -dichtste bij bovenaan - - - - - - - -alternatieven indien uitverkocht +bestellingen op afstand - - - - - - - - - -milieu - - - - - - - - -bosbouw - - - - - - - - -ziektes bij bomen - - - - - - - - - -parasieten - - - - - - - - - -bodemvervuiling - - -onderzoek - - - - - - - - - - - -mag ik dit door mijn gootsteen kappen +digitale portemonnee - + -pollutie +productinfo + + + + + + + +alternatieve producten + + + + + + + +diëet checker + + + + + + + +kwaliteit + + + + + + + +voedingstoffen + + + + + + + +bio + + + + + + + +databases v. reviews + + + + + + + +via cloud + + + + + + + +prijs + + + + + + + +allergie + + + + + + + +Salmonella sensor + + + + + + + +Sensor voor vers fruit en vlees + + + + + + + +Gezondheidscontrole - - - - - - -afval - - - - - - - - -verwerking - - - - - - - - - -riolen - - - - - - - - - -cradle 2 cradle - - - - - - - - - - - - - - - - - - - - -dioxines - - - - - - - - - -eco systemen - - - - - - - - -diversiteit - - - - - - - - - - -waterreserves - - - - - - - - -reserves - - - - - - - - - -vervuiling - - - - - - - - - - -alternatieve energie - - - - - - - - -wind - - - - - - - - - -zon - - - - - - - - - -kernenergie - - @@ -1505,6 +1275,206 @@ +aandoeningen en situaties + + + + + + + + +dementen + + + + + + + + +eten + + + + + + + + + +wassen + + + + + + + + + +wegloopdetectie + + + + + + + + + + +zwangerschap + + + + + + + + +geboortetimer + + + + + + + + + + + + + + + + + + + +info over voeding + + + + + + + + +via cloud info over voeding + + + + + + + + + + + + + + + + + + + +wat is gezond + + + + + + + + + + +baby monitoren + + + + + + + + + + + +sport + + + + + + + + +opvolging van de sporter + + + + + + + + +gps + + + + + + + + + +cadans + + + + + + + + + +energieverbruik + + + + + + + + + +bloeddruk + + + + + + + + + +hartslag + + + + + + + + + + + cultuur @@ -1553,19 +1523,9 @@ -isolatie +nameten - - - - - - -warmtemetingen - - - @@ -1583,47 +1543,7 @@ -nameten - - - - - - - - - - - -aandoeningen en situaties - - - - - - - - -zwangerschap - - - - - - - - -baby monitoren - - - - - - - - - -info over voeding +isolatie @@ -1632,160 +1552,10 @@ -wat is gezond +warmtemetingen - - - - - - -via cloud info over voeding - - - - - - - - - - - - - - - - - - - - -geboortetimer - - - - - - - - - - - - - - - - - - - - -dementen - - - - - - - - -wegloopdetectie - - - - - - - - - -wassen - - - - - - - - - -eten - - - - - - - - - - - -sport - - - - - - - - -opvolging van de sporter - - - - - - - - -hartslag - - - - - - - - - -bloeddruk - - - - - - - - - -energieverbruik - - - - - - - - - -cadans - - - - - - - - - -gps - - @@ -1804,6 +1574,122 @@ +stress + + + + + + + + +monitoring + + + + + + + + +in welke afdeling een probleem + + + + + + + +aanpak + + + + + + + +aan welke factoren ligt dat + + + + + + + + + + +afreageren + + + + + + + + + + +thuisverzorging + + + + + + + + +link naar ziekenhuis + + + + + + + + + +link naar dokter + + + + + + + + + +meting van de symptomen + + + + + + + + +objectieve metingen + + + + + + + + + +toevoeging van eigen waarneming + + + + + + + + + + + verschillende ziektes @@ -1823,7 +1709,7 @@ -feedback van de lichaamsconditie +anorexia @@ -1832,15 +1718,7 @@ -aan de patiënt - - - - - - - -waarschuwingen +eten ze voldoende @@ -1850,207 +1728,7 @@ -link - - - - - - - -naar ziekenhuis - - - - - - - -naar hulpdiensten - - - - - - - -naar behandelend arts - - - - - - - - - -aan dokter - - - - - - - -contacteert patient indien nodig - - - - - - - -volledig overzicht - - - - - - - -op afstand consulatie - - - - - - - - - - -MS - - - - - - - - -bevorderen van communicatie tijdens de aftakeling - - - - - - - -naar de dokters toe - - - - - - - -naar familie en vrienden toe - - - - - - - - - - -mucoviscidose - - - - - - - - -longcapaciteit meten - - - - - - - - - -alert voor donor - - - - - - - - - - -aids - - - - - - - - -vergroten van de database aan info - - - - - - - - - - -diabetes - - - - - - - - -suikerspiegel meten - - - - - - - -alert indien te laag - - - - - - - -automatische inspuiting - - - - - - - - - - -epilepsie - - - - - - - - -aanval voorspellen?? +nagaan of ze eten @@ -2086,7 +1764,7 @@ -vervuiling +allergie veroorzakende deeltjes @@ -2102,7 +1780,7 @@ -allergie veroorzakende deeltjes +vervuiling @@ -2113,7 +1791,7 @@ -anorexia +epilepsie @@ -2122,7 +1800,83 @@ -nagaan of ze eten +aanval voorspellen?? + + + + + + + + + + +diabetes + + + + + + + + +suikerspiegel meten + + + + + + + +automatische inspuiting + + + + + + + +alert indien te laag + + + + + + + + + + +aids + + + + + + + + +vergroten van de database aan info + + + + + + + + + + +mucoviscidose + + + + + + + + +alert voor donor @@ -2132,19 +1886,161 @@ -eten ze voldoende +longcapaciteit meten + + + + + + + + + + +MS + + + + + + + + +bevorderen van communicatie tijdens de aftakeling + + + + + + + +naar familie en vrienden toe + + + + + + + +naar de dokters toe + + + + + + + + + + +feedback van de lichaamsconditie + + + + + + + + +aan dokter + + + + + + + +op afstand consulatie + + + + + + + +volledig overzicht + + + + + + + +contacteert patient indien nodig + + + + + + + + + +link + + + + + + + +naar behandelend arts + + + + + + + +naar hulpdiensten + + + + + + + +naar ziekenhuis + + + + + + + + + +aan de patiënt + + + + + + + +waarschuwingen + + + + + + + +milieu + + -thuisverzorging +alternatieve energie @@ -2153,37 +2049,7 @@ -meting van de symptomen - - - - - - - - -toevoeging van eigen waarneming - - - - - - - - - -objectieve metingen - - - - - - - - - - -link naar dokter +kernenergie @@ -2193,7 +2059,17 @@ -link naar ziekenhuis +zon + + + + + + + + + +wind @@ -2204,7 +2080,7 @@ -stress +waterreserves @@ -2213,7 +2089,7 @@ -afreageren +vervuiling @@ -2223,7 +2099,127 @@ -monitoring +reserves + + + + + + + + + + +eco systemen + + + + + + + + +diversiteit + + + + + + + + + + +dioxines + + + + + + + + + +afval + + + + + + + + + + + + + + + + + + +cradle 2 cradle + + + + + + + + + +riolen + + + + + + + + + +verwerking + + + + + + + + + + +pollutie + + + + + + + + + +mag ik dit door mijn gootsteen kappen + + + + + + + + + +bosbouw + + + + + + + + +bodemvervuiling @@ -2232,27 +2228,31 @@ -in welke afdeling een probleem - - - - - - - -aan welke factoren ligt dat - - - - - - - -aanpak +onderzoek + + + + + + +parasieten + + + + + + + + + +ziektes bij bomen + + + diff --git a/wise-webapp/src/test/resources/data/export/huge.latex b/wise-webapp/src/test/resources/data/export/huge.latex index 84d0913e..613951a7 100644 --- a/wise-webapp/src/test/resources/data/export/huge.latex +++ b/wise-webapp/src/test/resources/data/export/huge.latex @@ -1,291 +1,291 @@ \chapter{I Care}\label{ID_null} - \section{veiligheid}\label{ID_null} - \subsection{verkeer}\label{ID_null} - \subsubsection{filevorming}\label{ID_null}\begin{itemize} - \item \label{ID_null}preventie\par - \item \label{ID_null}Omleiding zoeken\par - - \end{itemize} - - \subsubsection{Openbaar vervoer}\label{ID_null} - \subsubsection{Openbare fietsen}\label{ID_null}\begin{itemize} - \item \label{ID_null}Trackingsysteem, # fietsen op 1 plaats\par - \item \label{ID_null}Fiets bestellen in grote steden\par - - \end{itemize} - - \subsubsection{ongevallen}\label{ID_null}\begin{itemize} - \item \label{ID_null}preventie\par - \begin{itemize} - \item \label{ID_null}roekeloos rijgedrag opsporen\par - via sensoren aan boord versnelling, manouvres, snelheid,... registreren\par - \item \label{ID_null}bestraffen van chauffeurs?\par - - \end{itemize} - \item \label{ID_null}oorzaak\par - \begin{itemize} - \item \label{ID_null}nagaan van de oorzaak\par - \item \label{ID_null}Automatisch opbellen van hulpdiensten\par - \item \label{ID_null}opsporen van vluchtmisdrijf\par - - \end{itemize} - \item \label{ID_null}info over de staat van het wegdek\par - \begin{itemize} - \item \label{ID_null}wegenwerken\par - \item \label{ID_null}waarschuwingen\par - \item \label{ID_null}aanpassing van max. snelheid\par - - \end{itemize} - - \end{itemize} - - \subsection{criminaliteit}\label{ID_null} - \subsubsection{drugs}\label{ID_null}opsporen\par - \begin{itemize} - \item \label{ID_null}individuele tests\par - \item \label{ID_null}testen per woonregio (via afvoerstelsels)\par - - \end{itemize} - - \subsubsection{wapenhandel}\label{ID_null}opsporen\par - - \subsubsection{diefstal}\label{ID_null}tracking via gps\par - - \subsubsection{Aantal ongevallen/criminele feiten registreren}\label{ID_null}\begin{itemize} - \item \label{ID_null}Mapping van probleemsituaties\par - \item \label{ID_null}Meer controle\par - \item \label{ID_null}Terugkoppeling naar politie/verkeersdienst\par - - \end{itemize} - \section{De markt}\label{ID_null} - \subsection{kleding}\label{ID_null} - \subsubsection{informatiebronnen per merk}\label{ID_null}slimme kledij\par + \subsection{hygiëne}\label{ID_null} + \subsection{diensten}\label{ID_null} + \subsection{energie}\label{ID_null} + \subsubsection{kamer herkent gebruiker}\label{ID_null} + \subsubsection{automatische lichten}\label{ID_null} + \subsection{inrichting (woning)}\label{ID_null} + \subsubsection{advies}\label{ID_null}kleuren en stijlen\par - \subsubsection{kwaliteitsinfo bij aankoop}\label{ID_null}\begin{itemize} - \item \label{ID_null}info uit cloud\par - \item \label{ID_null}reviews\par - - \end{itemize} - - \subsubsection{monitoring}\label{ID_null} - \subsubsection{stijlen}\label{ID_null}begeleiding bij het winkelen naar gelijkaardige kleding\par - - \subsection{voeding}\label{ID_null} - \subsubsection{zie bij handelingen -->winkelen}\label{ID_null} - \subsection{electronica}\label{ID_null} - \subsubsection{eigendomsverificatie}\label{ID_null}\begin{itemize} - \item \label{ID_null}GPS tracking\par - \item \label{ID_null}koop-verkoop\par - \item \label{ID_null}afdanking (sluikstorten)\par - - \end{itemize} - \subsubsection{monitoring}\label{ID_null}\begin{itemize} - \item \label{ID_null}kwaliteit\par + \item \label{ID_null}eigendomsverificatie\par + \item \label{ID_null}kwaliteit\par + + \end{itemize} + + \subsection{medicijnen}\label{ID_null} + \subsubsection{alternatieven}\label{ID_null} + \subsubsection{neveneffecten}\label{ID_null} + \subsubsection{werking}\label{ID_null} + \subsubsection{kwaliteit}\label{ID_null} + \subsection{electronica}\label{ID_null} + \subsubsection{monitoring}\label{ID_null}\begin{itemize} + \item \label{ID_null}productie verloop\par \begin{itemize} - \item \label{ID_null}rechtstreekse link naar producent bij falen\par - \item \label{ID_null}reparatieservice\par + \item \label{ID_null}testfasen\par + \item \label{ID_null}wat/wanneer\par + \item \label{ID_null}door wie\par \end{itemize} \item \label{ID_null}levensloop\par gebruikscycli\par - \item \label{ID_null}productie verloop\par + \item \label{ID_null}kwaliteit\par \begin{itemize} - \item \label{ID_null}door wie\par - \item \label{ID_null}wat/wanneer\par - \item \label{ID_null}testfasen\par + \item \label{ID_null}reparatieservice\par + \item \label{ID_null}rechtstreekse link naar producent bij falen\par \end{itemize} \end{itemize} - \subsection{medicijnen}\label{ID_null} - \subsubsection{kwaliteit}\label{ID_null} - \subsubsection{werking}\label{ID_null} - \subsubsection{neveneffecten}\label{ID_null} - \subsubsection{alternatieven}\label{ID_null} - \subsection{inrichting (woning)}\label{ID_null} - \subsubsection{monitoring}\label{ID_null}\begin{itemize} - \item \label{ID_null}kwaliteit\par - \item \label{ID_null}eigendomsverificatie\par + \subsubsection{eigendomsverificatie}\label{ID_null}\begin{itemize} + \item \label{ID_null}afdanking (sluikstorten)\par + \item \label{ID_null}koop-verkoop\par + \item \label{ID_null}GPS tracking\par \end{itemize} - \subsubsection{advies}\label{ID_null}kleuren en stijlen\par + \subsection{voeding}\label{ID_null} + \subsubsection{zie bij handelingen -->winkelen}\label{ID_null} + \subsection{kleding}\label{ID_null} + \subsubsection{stijlen}\label{ID_null}begeleiding bij het winkelen naar gelijkaardige kleding\par - \subsection{energie}\label{ID_null} - \subsubsection{automatische lichten}\label{ID_null} - \subsubsection{kamer herkent gebruiker}\label{ID_null} - \subsection{diensten}\label{ID_null} - \subsection{hygiëne}\label{ID_null} + \subsubsection{monitoring}\label{ID_null} + \subsubsection{kwaliteitsinfo bij aankoop}\label{ID_null}\begin{itemize} + \item \label{ID_null}reviews\par + \item \label{ID_null}info uit cloud\par + + \end{itemize} + + \subsubsection{informatiebronnen per merk}\label{ID_null}slimme kledij\par + + \section{veiligheid}\label{ID_null} + \subsection{criminaliteit}\label{ID_null} + \subsubsection{Aantal ongevallen/criminele feiten registreren}\label{ID_null}\begin{itemize} + \item \label{ID_null}Terugkoppeling naar politie/verkeersdienst\par + \item \label{ID_null}Meer controle\par + \item \label{ID_null}Mapping van probleemsituaties\par + + \end{itemize} + + \subsubsection{diefstal}\label{ID_null}tracking via gps\par + + \subsubsection{wapenhandel}\label{ID_null}opsporen\par + + \subsubsection{drugs}\label{ID_null}opsporen\par + \begin{itemize} + \item \label{ID_null}testen per woonregio (via afvoerstelsels)\par + \item \label{ID_null}individuele tests\par + + \end{itemize} + + \subsection{verkeer}\label{ID_null} + \subsubsection{ongevallen}\label{ID_null}\begin{itemize} + \item \label{ID_null}info over de staat van het wegdek\par + \begin{itemize} + \item \label{ID_null}aanpassing van max. snelheid\par + \item \label{ID_null}waarschuwingen\par + \item \label{ID_null}wegenwerken\par + + \end{itemize} + \item \label{ID_null}oorzaak\par + \begin{itemize} + \item \label{ID_null}opsporen van vluchtmisdrijf\par + \item \label{ID_null}Automatisch opbellen van hulpdiensten\par + \item \label{ID_null}nagaan van de oorzaak\par + + \end{itemize} + \item \label{ID_null}preventie\par + \begin{itemize} + \item \label{ID_null}bestraffen van chauffeurs?\par + \item \label{ID_null}roekeloos rijgedrag opsporen\par + via sensoren aan boord versnelling, manouvres, snelheid,... registreren\par + + \end{itemize} + + \end{itemize} + + \subsubsection{Openbare fietsen}\label{ID_null}\begin{itemize} + \item \label{ID_null}Fiets bestellen in grote steden\par + \item \label{ID_null}Trackingsysteem, # fietsen op 1 plaats\par + + \end{itemize} + + \subsubsection{Openbaar vervoer}\label{ID_null} + \subsubsection{filevorming}\label{ID_null}\begin{itemize} + \item \label{ID_null}Omleiding zoeken\par + \item \label{ID_null}preventie\par + + \end{itemize} + \section{handelingen}\label{ID_null} \subsection{winkelen}\label{ID_null} \subsubsection{winkelhulp}\label{ID_null}\begin{itemize} - \item \label{ID_null}productinfo\par + \item \label{ID_null}boodschappenlijst\par \begin{itemize} - \item \label{ID_null}allergie\par + \item \label{ID_null}alternatieven indien uitverkocht\par + \item \label{ID_null}dichtste bij bovenaan\par + + \end{itemize} + \item \label{ID_null}recepten generator\par + \item \label{ID_null}bestellingen op afstand\par + \item \label{ID_null}digitale portemonnee\par + \item \label{ID_null}productinfo\par \begin{itemize} - \item \label{ID_null}Gezondheidscontrole\par - \item \label{ID_null}Sensor voor vers fruit en vlees\par - \item \label{ID_null}Salmonella sensor\par + \item \label{ID_null}alternatieve producten\par + \item \label{ID_null}diëet checker\par + \item \label{ID_null}kwaliteit\par + \begin{itemize} + \item \label{ID_null}voedingstoffen\par + \item \label{ID_null}bio\par + \item \label{ID_null}databases v. reviews\par + \item \label{ID_null}via cloud\par \end{itemize} \item \label{ID_null}prijs\par - \item \label{ID_null}kwaliteit\par + \item \label{ID_null}allergie\par \begin{itemize} - \item \label{ID_null}via cloud\par - \item \label{ID_null}databases v. reviews\par - \item \label{ID_null}bio\par - \item \label{ID_null}voedingstoffen\par - - \end{itemize} - \item \label{ID_null}diëet checker\par - \item \label{ID_null}alternatieve producten\par - - \end{itemize} - \item \label{ID_null}digitale portemonnee\par - \item \label{ID_null}bestellingen op afstand\par - \item \label{ID_null}recepten generator\par - \item \label{ID_null}boodschappenlijst\par - \begin{itemize} - \item \label{ID_null}dichtste bij bovenaan\par - \item \label{ID_null}alternatieven indien uitverkocht\par + \item \label{ID_null}Salmonella sensor\par + \item \label{ID_null}Sensor voor vers fruit en vlees\par + \item \label{ID_null}Gezondheidscontrole\par \end{itemize} \end{itemize} - \section{milieu}\label{ID_null} - \subsection{bosbouw}\label{ID_null} - \subsubsection{ziektes bij bomen}\label{ID_null} - \subsubsection{parasieten}\label{ID_null} - \subsubsection{bodemvervuiling}\label{ID_null}onderzoek\par - - \subsection{mag ik dit door mijn gootsteen kappen}\label{ID_null} - \subsection{pollutie}\label{ID_null} - \subsection{afval}\label{ID_null} - \subsubsection{verwerking}\label{ID_null} - \subsubsection{riolen}\label{ID_null} - \subsubsection{cradle 2 cradle}\label{ID_null} - \subsubsection{}\label{ID_null} - \subsection{dioxines}\label{ID_null} - \subsection{eco systemen}\label{ID_null} - \subsubsection{diversiteit}\label{ID_null} - \subsection{waterreserves}\label{ID_null} - \subsubsection{reserves}\label{ID_null} - \subsubsection{vervuiling}\label{ID_null} - \subsection{alternatieve energie}\label{ID_null} - \subsubsection{wind}\label{ID_null} - \subsubsection{zon}\label{ID_null} - \subsubsection{kernenergie}\label{ID_null} + \end{itemize} + \section{industrie}\label{ID_null} + \section{aandoeningen en situaties}\label{ID_null} + \subsection{dementen}\label{ID_null} + \subsubsection{eten}\label{ID_null} + \subsubsection{wassen}\label{ID_null} + \subsubsection{wegloopdetectie}\label{ID_null} + \subsection{zwangerschap}\label{ID_null} + \subsubsection{geboortetimer}\label{ID_null} + \subsubsection{info over voeding}\label{ID_null}\begin{itemize} + \item \label{ID_null}via cloud info over voeding\par + \item \label{ID_null}wat is gezond\par + + \end{itemize} + + \subsubsection{baby monitoren}\label{ID_null} + \section{sport}\label{ID_null} + \subsection{opvolging van de sporter}\label{ID_null} + \subsubsection{gps}\label{ID_null} + \subsubsection{cadans}\label{ID_null} + \subsubsection{energieverbruik}\label{ID_null} + \subsubsection{bloeddruk}\label{ID_null} + \subsubsection{hartslag}\label{ID_null} \section{cultuur}\label{ID_null} \subsection{festival}\label{ID_null} \section{bouw}\label{ID_null} \subsection{opvolging zoals plannen zijn getekend}\label{ID_null} + \subsubsection{nameten}\label{ID_null} + \subsubsection{juistheid van materialen}\label{ID_null} \subsubsection{isolatie}\label{ID_null}warmtemetingen\par - \subsubsection{juistheid van materialen}\label{ID_null} - \subsubsection{nameten}\label{ID_null} - \section{aandoeningen en situaties}\label{ID_null} - \subsection{zwangerschap}\label{ID_null} - \subsubsection{baby monitoren}\label{ID_null} - \subsubsection{info over voeding}\label{ID_null}\begin{itemize} - \item \label{ID_null}wat is gezond\par - \item \label{ID_null}via cloud info over voeding\par - - \end{itemize} - - \subsubsection{geboortetimer}\label{ID_null} - \subsection{dementen}\label{ID_null} - \subsubsection{wegloopdetectie}\label{ID_null} - \subsubsection{wassen}\label{ID_null} - \subsubsection{eten}\label{ID_null} - \section{sport}\label{ID_null} - \subsection{opvolging van de sporter}\label{ID_null} - \subsubsection{hartslag}\label{ID_null} - \subsubsection{bloeddruk}\label{ID_null} - \subsubsection{energieverbruik}\label{ID_null} - \subsubsection{cadans}\label{ID_null} - \subsubsection{gps}\label{ID_null} \section{ziektes}\label{ID_null} + \subsection{stress}\label{ID_null} + \subsubsection{monitoring}\label{ID_null}in welke afdeling een probleem\par + \begin{itemize} + \item \label{ID_null}aanpak\par + \item \label{ID_null}aan welke factoren ligt dat\par + + \end{itemize} + + \subsubsection{afreageren}\label{ID_null} + \subsection{thuisverzorging}\label{ID_null} + \subsubsection{link naar ziekenhuis}\label{ID_null} + \subsubsection{link naar dokter}\label{ID_null} + \subsubsection{meting van de symptomen}\label{ID_null}\begin{itemize} + \item \label{ID_null}objectieve metingen\par + \item \label{ID_null}toevoeging van eigen waarneming\par + + \end{itemize} + \subsection{verschillende ziektes}\label{ID_null} - \subsubsection{feedback van de lichaamsconditie}\label{ID_null}\begin{itemize} - \item \label{ID_null}aan de patiënt\par - waarschuwingen\par - \item \label{ID_null}link\par - \begin{itemize} - \item \label{ID_null}naar ziekenhuis\par - \item \label{ID_null}naar hulpdiensten\par - \item \label{ID_null}naar behandelend arts\par - - \end{itemize} - \item \label{ID_null}aan dokter\par - \begin{itemize} - \item \label{ID_null}contacteert patient indien nodig\par - \item \label{ID_null}volledig overzicht\par - \item \label{ID_null}op afstand consulatie\par + \subsubsection{anorexia}\label{ID_null}\begin{itemize} + \item \label{ID_null}eten ze voldoende\par + \item \label{ID_null}nagaan of ze eten\par \end{itemize} - \end{itemize} - - \subsubsection{MS}\label{ID_null}bevorderen van communicatie tijdens de aftakeling\par + \subsubsection{astma}\label{ID_null}detectie van luchtkwaliteit\par + in kaart brengen van\par \begin{itemize} - \item \label{ID_null}naar de dokters toe\par - \item \label{ID_null}naar familie en vrienden toe\par - - \end{itemize} - - \subsubsection{mucoviscidose}\label{ID_null}\begin{itemize} - \item \label{ID_null}longcapaciteit meten\par - \item \label{ID_null}alert voor donor\par - - \end{itemize} - - \subsubsection{aids}\label{ID_null}vergroten van de database aan info\par - - \subsubsection{diabetes}\label{ID_null}suikerspiegel meten\par - \begin{itemize} - \item \label{ID_null}alert indien te laag\par - \item \label{ID_null}automatische inspuiting\par + \item \label{ID_null}allergie veroorzakende deeltjes\par + \item \label{ID_null}pollen\par + \item \label{ID_null}vervuiling\par \end{itemize} \subsubsection{epilepsie}\label{ID_null}aanval voorspellen??\par - \subsubsection{astma}\label{ID_null}detectie van luchtkwaliteit\par - in kaart brengen van\par + \subsubsection{diabetes}\label{ID_null}suikerspiegel meten\par \begin{itemize} - \item \label{ID_null}vervuiling\par - \item \label{ID_null}pollen\par - \item \label{ID_null}allergie veroorzakende deeltjes\par + \item \label{ID_null}automatische inspuiting\par + \item \label{ID_null}alert indien te laag\par \end{itemize} - \subsubsection{anorexia}\label{ID_null}\begin{itemize} - \item \label{ID_null}nagaan of ze eten\par - \item \label{ID_null}eten ze voldoende\par + \subsubsection{aids}\label{ID_null}vergroten van de database aan info\par + + \subsubsection{mucoviscidose}\label{ID_null}\begin{itemize} + \item \label{ID_null}alert voor donor\par + \item \label{ID_null}longcapaciteit meten\par \end{itemize} - \subsection{thuisverzorging}\label{ID_null} - \subsubsection{meting van de symptomen}\label{ID_null}\begin{itemize} - \item \label{ID_null}toevoeging van eigen waarneming\par - \item \label{ID_null}objectieve metingen\par - - \end{itemize} - - \subsubsection{link naar dokter}\label{ID_null} - \subsubsection{link naar ziekenhuis}\label{ID_null} - \subsection{stress}\label{ID_null} - \subsubsection{afreageren}\label{ID_null} - \subsubsection{monitoring}\label{ID_null}in welke afdeling een probleem\par + \subsubsection{MS}\label{ID_null}bevorderen van communicatie tijdens de aftakeling\par \begin{itemize} - \item \label{ID_null}aan welke factoren ligt dat\par - \item \label{ID_null}aanpak\par + \item \label{ID_null}naar familie en vrienden toe\par + \item \label{ID_null}naar de dokters toe\par \end{itemize} - \ No newline at end of file + + \subsubsection{feedback van de lichaamsconditie}\label{ID_null}\begin{itemize} + \item \label{ID_null}aan dokter\par + \begin{itemize} + \item \label{ID_null}op afstand consulatie\par + \item \label{ID_null}volledig overzicht\par + \item \label{ID_null}contacteert patient indien nodig\par + + \end{itemize} + \item \label{ID_null}link\par + \begin{itemize} + \item \label{ID_null}naar behandelend arts\par + \item \label{ID_null}naar hulpdiensten\par + \item \label{ID_null}naar ziekenhuis\par + + \end{itemize} + \item \label{ID_null}aan de patiënt\par + waarschuwingen\par + + \end{itemize} + + \section{milieu}\label{ID_null} + \subsection{alternatieve energie}\label{ID_null} + \subsubsection{kernenergie}\label{ID_null} + \subsubsection{zon}\label{ID_null} + \subsubsection{wind}\label{ID_null} + \subsection{waterreserves}\label{ID_null} + \subsubsection{vervuiling}\label{ID_null} + \subsubsection{reserves}\label{ID_null} + \subsection{eco systemen}\label{ID_null} + \subsubsection{diversiteit}\label{ID_null} + \subsection{dioxines}\label{ID_null} + \subsection{afval}\label{ID_null} + \subsubsection{}\label{ID_null} + \subsubsection{cradle 2 cradle}\label{ID_null} + \subsubsection{riolen}\label{ID_null} + \subsubsection{verwerking}\label{ID_null} + \subsection{pollutie}\label{ID_null} + \subsection{mag ik dit door mijn gootsteen kappen}\label{ID_null} + \subsection{bosbouw}\label{ID_null} + \subsubsection{bodemvervuiling}\label{ID_null}onderzoek\par + + \subsubsection{parasieten}\label{ID_null} + \subsubsection{ziektes bij bomen}\label{ID_null} \ No newline at end of file diff --git a/wise-webapp/src/test/resources/data/export/huge.mm b/wise-webapp/src/test/resources/data/export/huge.mm index 03f38bb9..3cae7313 100644 --- a/wise-webapp/src/test/resources/data/export/huge.mm +++ b/wise-webapp/src/test/resources/data/export/huge.mm @@ -1,81 +1,6 @@ - + - - - - - - -

    - - - - - - - - - -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    - - - - - - - - - - - - - - - - - - - - - - @@ -85,13 +10,54 @@ - - - + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -103,78 +69,98 @@ - - + + + + + + - - - - - - - - + + + + + + + +

    + + + + + + + - - - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - + + + + + +

    + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + +

    + + + + - - - - - - - - - - - - - - - - - - - - - + + + - - @@ -185,44 +171,71 @@ - - - + + + + + + + + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + +

    + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + +

    + + + + + + + + + + + + + + + + - @@ -236,57 +249,31 @@ + + - - - - - - - - - - - - - - - -

    - - - - - - - - - - -

    - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + @@ -296,74 +283,87 @@ - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - + + + + + + + - - - - - - - + + + + - - - + + - - - - - + + + - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/wise-webapp/src/test/resources/data/export/huge.mmap b/wise-webapp/src/test/resources/data/export/huge.mmap index d93435d7..c7331eb8 100644 --- a/wise-webapp/src/test/resources/data/export/huge.mmap +++ b/wise-webapp/src/test/resources/data/export/huge.mmap @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/wise-webapp/src/test/resources/data/export/huge.odt b/wise-webapp/src/test/resources/data/export/huge.odt index 23b9affb..0aa3d597 100644 --- a/wise-webapp/src/test/resources/data/export/huge.odt +++ b/wise-webapp/src/test/resources/data/export/huge.odt @@ -79,215 +79,215 @@ I Care -veiligheid -verkeer - -filevorming -preventie - -Omleiding zoeken -Openbaar vervoer -Openbare fietsen -Trackingsysteem, # fietsen op 1 plaats -Fiets bestellen in grote steden -ongevallen -preventie -roekeloos rijgedrag opsporen -via sensoren aan boord versnelling, manouvres, snelheid,... registreren -bestraffen van chauffeurs? -oorzaak -nagaan van de oorzaak -Automatisch opbellen van hulpdiensten -opsporen van vluchtmisdrijf -info over de staat van het wegdek -wegenwerken -waarschuwingen -aanpassing van max. snelheid -criminaliteit - -drugs -opsporen -individuele tests -testen per woonregio (via afvoerstelsels) -wapenhandel -opsporen -diefstal -tracking via gps -Aantal ongevallen/criminele feiten registreren -Mapping van probleemsituaties -Meer controle -Terugkoppeling naar politie/verkeersdienst De markt -kleding -informatiebronnen per merk -slimme kledij -kwaliteitsinfo bij aankoop -info uit cloud -reviews -monitoring - -stijlen -begeleiding bij het winkelen naar gelijkaardige kleding -voeding -zie bij handelingen -->winkelen -electronica -eigendomsverificatie -GPS tracking -koop-verkoop -afdanking (sluikstorten) -monitoring -kwaliteit -rechtstreekse link naar producent bij falen -reparatieservice -levensloop -gebruikscycli -productie verloop -door wie -wat/wanneer -testfasen -medicijnen -kwaliteit -werking -neveneffecten -alternatieven +hygiëne +diensten +energie +kamer herkent gebruiker +automatische lichten inrichting (woning) -monitoring -kwaliteit -eigendomsverificatie advies kleuren en stijlen -energie -automatische lichten -kamer herkent gebruiker -diensten -hygiëne +monitoring +eigendomsverificatie +kwaliteit +medicijnen +alternatieven +neveneffecten +werking +kwaliteit +electronica +monitoring +productie verloop +testfasen +wat/wanneer +door wie +levensloop +gebruikscycli +kwaliteit +reparatieservice +rechtstreekse link naar producent bij falen +eigendomsverificatie +afdanking (sluikstorten) +koop-verkoop +GPS tracking +voeding +zie bij handelingen -->winkelen +kleding +stijlen +begeleiding bij het winkelen naar gelijkaardige kleding +monitoring + +kwaliteitsinfo bij aankoop +reviews +info uit cloud +informatiebronnen per merk +slimme kledij +veiligheid +criminaliteit + +Aantal ongevallen/criminele feiten registreren +Terugkoppeling naar politie/verkeersdienst +Meer controle +Mapping van probleemsituaties +diefstal +tracking via gps +wapenhandel +opsporen +drugs +opsporen +testen per woonregio (via afvoerstelsels) +individuele tests +verkeer + +ongevallen +info over de staat van het wegdek +aanpassing van max. snelheid +waarschuwingen +wegenwerken +oorzaak +opsporen van vluchtmisdrijf +Automatisch opbellen van hulpdiensten +nagaan van de oorzaak +preventie +bestraffen van chauffeurs? +roekeloos rijgedrag opsporen +via sensoren aan boord versnelling, manouvres, snelheid,... registreren +Openbare fietsen +Fiets bestellen in grote steden +Trackingsysteem, # fietsen op 1 plaats +Openbaar vervoer +filevorming +Omleiding zoeken +preventie + handelingen winkelen winkelhulp -productinfo -allergie -Gezondheidscontrole -Sensor voor vers fruit en vlees -Salmonella sensor -prijs -kwaliteit -via cloud -databases v. reviews -bio -voedingstoffen -diëet checker -alternatieve producten -digitale portemonnee -bestellingen op afstand +boodschappenlijst +alternatieven indien uitverkocht +dichtste bij bovenaan recepten generator -boodschappenlijst -dichtste bij bovenaan -alternatieven indien uitverkocht -milieu -bosbouw -ziektes bij bomen -parasieten -bodemvervuiling -onderzoek -mag ik dit door mijn gootsteen kappen -pollutie -afval -verwerking -riolen -cradle 2 cradle - -dioxines -eco systemen -diversiteit -waterreserves -reserves -vervuiling -alternatieve energie -wind -zon -kernenergie +bestellingen op afstand +digitale portemonnee +productinfo +alternatieve producten +diëet checker +kwaliteit +voedingstoffen +bio +databases v. reviews +via cloud +prijs +allergie +Salmonella sensor +Sensor voor vers fruit en vlees +Gezondheidscontrole industrie +aandoeningen en situaties +dementen +eten +wassen +wegloopdetectie +zwangerschap +geboortetimer + +info over voeding +via cloud info over voeding + +wat is gezond +baby monitoren +sport +opvolging van de sporter +gps +cadans +energieverbruik +bloeddruk +hartslag cultuur festival bouw opvolging zoals plannen zijn getekend +nameten +juistheid van materialen isolatie warmtemetingen -juistheid van materialen -nameten -aandoeningen en situaties -zwangerschap -baby monitoren -info over voeding -wat is gezond -via cloud info over voeding - -geboortetimer - -dementen -wegloopdetectie -wassen -eten -sport -opvolging van de sporter -hartslag -bloeddruk -energieverbruik -cadans -gps ziektes +stress +monitoring +in welke afdeling een probleem +aanpak +aan welke factoren ligt dat +afreageren +thuisverzorging +link naar ziekenhuis +link naar dokter +meting van de symptomen +objectieve metingen +toevoeging van eigen waarneming verschillende ziektes -feedback van de lichaamsconditie -aan de patiënt -waarschuwingen -link -naar ziekenhuis -naar hulpdiensten -naar behandelend arts -aan dokter -contacteert patient indien nodig -volledig overzicht -op afstand consulatie -MS -bevorderen van communicatie tijdens de aftakeling -naar de dokters toe -naar familie en vrienden toe -mucoviscidose -longcapaciteit meten -alert voor donor -aids -vergroten van de database aan info -diabetes -suikerspiegel meten -alert indien te laag -automatische inspuiting -epilepsie -aanval voorspellen?? +anorexia +eten ze voldoende +nagaan of ze eten astma detectie van luchtkwaliteit in kaart brengen van -vervuiling -pollen allergie veroorzakende deeltjes -anorexia -nagaan of ze eten -eten ze voldoende -thuisverzorging -meting van de symptomen -toevoeging van eigen waarneming -objectieve metingen -link naar dokter -link naar ziekenhuis -stress -afreageren -monitoring -in welke afdeling een probleem -aan welke factoren ligt dat -aanpak +pollen +vervuiling +epilepsie +aanval voorspellen?? +diabetes +suikerspiegel meten +automatische inspuiting +alert indien te laag +aids +vergroten van de database aan info +mucoviscidose +alert voor donor +longcapaciteit meten +MS +bevorderen van communicatie tijdens de aftakeling +naar familie en vrienden toe +naar de dokters toe +feedback van de lichaamsconditie +aan dokter +op afstand consulatie +volledig overzicht +contacteert patient indien nodig +link +naar behandelend arts +naar hulpdiensten +naar ziekenhuis +aan de patiënt +waarschuwingen +milieu +alternatieve energie +kernenergie +zon +wind +waterreserves +vervuiling +reserves +eco systemen +diversiteit +dioxines +afval + +cradle 2 cradle +riolen +verwerking +pollutie +mag ik dit door mijn gootsteen kappen +bosbouw +bodemvervuiling +onderzoek +parasieten +ziektes bij bomen diff --git a/wise-webapp/src/test/resources/data/export/huge.txt b/wise-webapp/src/test/resources/data/export/huge.txt index 9869ca93..ba19465e 100644 --- a/wise-webapp/src/test/resources/data/export/huge.txt +++ b/wise-webapp/src/test/resources/data/export/huge.txt @@ -1,210 +1,210 @@ 1 I Care - 1.1 veiligheid - 1.1.1 verkeer - * Note: - 1.1.1.1 filevorming - 1.1.1.1.1 preventie - * Note: - 1.1.1.1.2 Omleiding zoeken - 1.1.1.2 Openbaar vervoer - 1.1.1.3 Openbare fietsen - 1.1.1.3.1 Trackingsysteem, # fietsen op 1 plaats - 1.1.1.3.2 Fiets bestellen in grote steden - 1.1.1.4 ongevallen - 1.1.1.4.1 preventie - 1.1.1.4.1.1 roekeloos rijgedrag opsporen - 1.1.1.4.1.1.1 via sensoren aan boord versnelling, manouvres, snelheid,... registreren - 1.1.1.4.1.2 bestraffen van chauffeurs? - 1.1.1.4.2 oorzaak - 1.1.1.4.2.1 nagaan van de oorzaak - 1.1.1.4.2.2 Automatisch opbellen van hulpdiensten - 1.1.1.4.2.3 opsporen van vluchtmisdrijf - 1.1.1.4.3 info over de staat van het wegdek - 1.1.1.4.3.1 wegenwerken - 1.1.1.4.3.2 waarschuwingen - 1.1.1.4.3.3 aanpassing van max. snelheid - 1.1.2 criminaliteit - * Note: - 1.1.2.1 drugs - 1.1.2.1.1 opsporen - 1.1.2.1.1.1 individuele tests - 1.1.2.1.1.2 testen per woonregio (via afvoerstelsels) - 1.1.2.2 wapenhandel - 1.1.2.2.1 opsporen - 1.1.2.3 diefstal - 1.1.2.3.1 tracking via gps - 1.1.2.4 Aantal ongevallen/criminele feiten registreren - 1.1.2.4.1 Mapping van probleemsituaties - 1.1.2.4.2 Meer controle - 1.1.2.4.3 Terugkoppeling naar politie/verkeersdienst - 1.2 De markt + 1.1 De markt * Note: - 1.2.1 kleding - 1.2.1.1 informatiebronnen per merk - 1.2.1.1.1 slimme kledij - 1.2.1.2 kwaliteitsinfo bij aankoop - 1.2.1.2.1 info uit cloud - 1.2.1.2.2 reviews - 1.2.1.3 monitoring + 1.1.1 hygiëne + 1.1.2 diensten + 1.1.3 energie + 1.1.3.1 kamer herkent gebruiker + 1.1.3.2 automatische lichten + 1.1.4 inrichting (woning) + 1.1.4.1 advies + 1.1.4.1.1 kleuren en stijlen + 1.1.4.2 monitoring + 1.1.4.2.1 eigendomsverificatie + 1.1.4.2.2 kwaliteit + 1.1.5 medicijnen + 1.1.5.1 alternatieven + 1.1.5.2 neveneffecten + 1.1.5.3 werking + 1.1.5.4 kwaliteit + 1.1.6 electronica + 1.1.6.1 monitoring + 1.1.6.1.1 productie verloop + 1.1.6.1.1.1 testfasen + 1.1.6.1.1.2 wat/wanneer + 1.1.6.1.1.3 door wie + 1.1.6.1.2 levensloop + 1.1.6.1.2.1 gebruikscycli + 1.1.6.1.3 kwaliteit + 1.1.6.1.3.1 reparatieservice + 1.1.6.1.3.2 rechtstreekse link naar producent bij falen + 1.1.6.2 eigendomsverificatie + 1.1.6.2.1 afdanking (sluikstorten) + 1.1.6.2.2 koop-verkoop + 1.1.6.2.3 GPS tracking + 1.1.7 voeding + 1.1.7.1 zie bij handelingen -->winkelen + 1.1.8 kleding + 1.1.8.1 stijlen + 1.1.8.1.1 begeleiding bij het winkelen naar gelijkaardige kleding + 1.1.8.2 monitoring * Note: - 1.2.1.4 stijlen - 1.2.1.4.1 begeleiding bij het winkelen naar gelijkaardige kleding - 1.2.2 voeding - 1.2.2.1 zie bij handelingen -->winkelen - 1.2.3 electronica - 1.2.3.1 eigendomsverificatie - 1.2.3.1.1 GPS tracking - 1.2.3.1.2 koop-verkoop - 1.2.3.1.3 afdanking (sluikstorten) - 1.2.3.2 monitoring - 1.2.3.2.1 kwaliteit - 1.2.3.2.1.1 rechtstreekse link naar producent bij falen - 1.2.3.2.1.2 reparatieservice - 1.2.3.2.2 levensloop - 1.2.3.2.2.1 gebruikscycli - 1.2.3.2.3 productie verloop - 1.2.3.2.3.1 door wie - 1.2.3.2.3.2 wat/wanneer - 1.2.3.2.3.3 testfasen - 1.2.4 medicijnen - 1.2.4.1 kwaliteit - 1.2.4.2 werking - 1.2.4.3 neveneffecten - 1.2.4.4 alternatieven - 1.2.5 inrichting (woning) - 1.2.5.1 monitoring - 1.2.5.1.1 kwaliteit - 1.2.5.1.2 eigendomsverificatie - 1.2.5.2 advies - 1.2.5.2.1 kleuren en stijlen - 1.2.6 energie - 1.2.6.1 automatische lichten - 1.2.6.2 kamer herkent gebruiker - 1.2.7 diensten - 1.2.8 hygiëne + 1.1.8.3 kwaliteitsinfo bij aankoop + 1.1.8.3.1 reviews + 1.1.8.3.2 info uit cloud + 1.1.8.4 informatiebronnen per merk + 1.1.8.4.1 slimme kledij + 1.2 veiligheid + 1.2.1 criminaliteit + * Note: + 1.2.1.1 Aantal ongevallen/criminele feiten registreren + 1.2.1.1.1 Terugkoppeling naar politie/verkeersdienst + 1.2.1.1.2 Meer controle + 1.2.1.1.3 Mapping van probleemsituaties + 1.2.1.2 diefstal + 1.2.1.2.1 tracking via gps + 1.2.1.3 wapenhandel + 1.2.1.3.1 opsporen + 1.2.1.4 drugs + 1.2.1.4.1 opsporen + 1.2.1.4.1.1 testen per woonregio (via afvoerstelsels) + 1.2.1.4.1.2 individuele tests + 1.2.2 verkeer + * Note: + 1.2.2.1 ongevallen + 1.2.2.1.1 info over de staat van het wegdek + 1.2.2.1.1.1 aanpassing van max. snelheid + 1.2.2.1.1.2 waarschuwingen + 1.2.2.1.1.3 wegenwerken + 1.2.2.1.2 oorzaak + 1.2.2.1.2.1 opsporen van vluchtmisdrijf + 1.2.2.1.2.2 Automatisch opbellen van hulpdiensten + 1.2.2.1.2.3 nagaan van de oorzaak + 1.2.2.1.3 preventie + 1.2.2.1.3.1 bestraffen van chauffeurs? + 1.2.2.1.3.2 roekeloos rijgedrag opsporen + 1.2.2.1.3.2.1 via sensoren aan boord versnelling, manouvres, snelheid,... registreren + 1.2.2.2 Openbare fietsen + 1.2.2.2.1 Fiets bestellen in grote steden + 1.2.2.2.2 Trackingsysteem, # fietsen op 1 plaats + 1.2.2.3 Openbaar vervoer + 1.2.2.4 filevorming + 1.2.2.4.1 Omleiding zoeken + 1.2.2.4.2 preventie + * Note: 1.3 handelingen 1.3.1 winkelen 1.3.1.1 winkelhulp - 1.3.1.1.1 productinfo - 1.3.1.1.1.1 allergie - 1.3.1.1.1.1.1 Gezondheidscontrole - 1.3.1.1.1.1.2 Sensor voor vers fruit en vlees - 1.3.1.1.1.1.3 Salmonella sensor - 1.3.1.1.1.2 prijs - 1.3.1.1.1.3 kwaliteit - 1.3.1.1.1.3.1 via cloud - 1.3.1.1.1.3.2 databases v. reviews - 1.3.1.1.1.3.3 bio - 1.3.1.1.1.3.4 voedingstoffen - 1.3.1.1.1.4 diëet checker - 1.3.1.1.1.5 alternatieve producten - 1.3.1.1.2 digitale portemonnee + 1.3.1.1.1 boodschappenlijst + 1.3.1.1.1.1 alternatieven indien uitverkocht + 1.3.1.1.1.2 dichtste bij bovenaan + 1.3.1.1.2 recepten generator + * Note: 1.3.1.1.3 bestellingen op afstand - 1.3.1.1.4 recepten generator - * Note: - 1.3.1.1.5 boodschappenlijst - 1.3.1.1.5.1 dichtste bij bovenaan - 1.3.1.1.5.2 alternatieven indien uitverkocht - 1.4 milieu - 1.4.1 bosbouw - 1.4.1.1 ziektes bij bomen - 1.4.1.2 parasieten - 1.4.1.3 bodemvervuiling - 1.4.1.3.1 onderzoek - 1.4.2 mag ik dit door mijn gootsteen kappen - 1.4.3 pollutie - 1.4.4 afval - 1.4.4.1 verwerking - 1.4.4.2 riolen - 1.4.4.3 cradle 2 cradle - 1.4.4.4 - 1.4.5 dioxines - 1.4.6 eco systemen - 1.4.6.1 diversiteit - 1.4.7 waterreserves - 1.4.7.1 reserves - 1.4.7.2 vervuiling - 1.4.8 alternatieve energie - 1.4.8.1 wind - 1.4.8.2 zon - 1.4.8.3 kernenergie - 1.5 industrie - 1.6 cultuur - 1.6.1 festival - 1.7 bouw - * Note: - 1.7.1 opvolging zoals plannen zijn getekend - 1.7.1.1 isolatie - 1.7.1.1.1 warmtemetingen - 1.7.1.2 juistheid van materialen - 1.7.1.3 nameten - 1.8 aandoeningen en situaties - 1.8.1 zwangerschap - 1.8.1.1 baby monitoren - 1.8.1.2 info over voeding - 1.8.1.2.1 wat is gezond - 1.8.1.2.2 via cloud info over voeding - * Note: - 1.8.1.3 geboortetimer + 1.3.1.1.4 digitale portemonnee + 1.3.1.1.5 productinfo + 1.3.1.1.5.1 alternatieve producten + 1.3.1.1.5.2 diëet checker + 1.3.1.1.5.3 kwaliteit + 1.3.1.1.5.3.1 voedingstoffen + 1.3.1.1.5.3.2 bio + 1.3.1.1.5.3.3 databases v. reviews + 1.3.1.1.5.3.4 via cloud + 1.3.1.1.5.4 prijs + 1.3.1.1.5.5 allergie + 1.3.1.1.5.5.1 Salmonella sensor + 1.3.1.1.5.5.2 Sensor voor vers fruit en vlees + 1.3.1.1.5.5.3 Gezondheidscontrole + 1.4 industrie + 1.5 aandoeningen en situaties + 1.5.1 dementen + 1.5.1.1 eten + 1.5.1.2 wassen + 1.5.1.3 wegloopdetectie + 1.5.2 zwangerschap + 1.5.2.1 geboortetimer * Note: - 1.8.2 dementen - 1.8.2.1 wegloopdetectie - 1.8.2.2 wassen - 1.8.2.3 eten - 1.9 sport - 1.9.1 opvolging van de sporter - 1.9.1.1 hartslag - 1.9.1.2 bloeddruk - 1.9.1.3 energieverbruik - 1.9.1.4 cadans - 1.9.1.5 gps - 1.10 ziektes - 1.10.1 verschillende ziektes + 1.5.2.2 info over voeding + 1.5.2.2.1 via cloud info over voeding + * Note: + 1.5.2.2.2 wat is gezond + 1.5.2.3 baby monitoren + 1.6 sport + 1.6.1 opvolging van de sporter + 1.6.1.1 gps + 1.6.1.2 cadans + 1.6.1.3 energieverbruik + 1.6.1.4 bloeddruk + 1.6.1.5 hartslag + 1.7 cultuur + 1.7.1 festival + 1.8 bouw + * Note: + 1.8.1 opvolging zoals plannen zijn getekend + 1.8.1.1 nameten + 1.8.1.2 juistheid van materialen + 1.8.1.3 isolatie + 1.8.1.3.1 warmtemetingen + 1.9 ziektes + 1.9.1 stress + 1.9.1.1 monitoring + 1.9.1.1.1 in welke afdeling een probleem + 1.9.1.1.1.1 aanpak + 1.9.1.1.1.2 aan welke factoren ligt dat + 1.9.1.2 afreageren + 1.9.2 thuisverzorging + 1.9.2.1 link naar ziekenhuis + 1.9.2.2 link naar dokter + 1.9.2.3 meting van de symptomen + 1.9.2.3.1 objectieve metingen + 1.9.2.3.2 toevoeging van eigen waarneming + 1.9.3 verschillende ziektes * Note: - 1.10.1.1 feedback van de lichaamsconditie - 1.10.1.1.1 aan de patiënt - 1.10.1.1.1.1 waarschuwingen - 1.10.1.1.2 link - 1.10.1.1.2.1 naar ziekenhuis - 1.10.1.1.2.2 naar hulpdiensten - 1.10.1.1.2.3 naar behandelend arts - 1.10.1.1.3 aan dokter - 1.10.1.1.3.1 contacteert patient indien nodig - 1.10.1.1.3.2 volledig overzicht - 1.10.1.1.3.3 op afstand consulatie - 1.10.1.2 MS - 1.10.1.2.1 bevorderen van communicatie tijdens de aftakeling - 1.10.1.2.1.1 naar de dokters toe - 1.10.1.2.1.2 naar familie en vrienden toe - 1.10.1.3 mucoviscidose - 1.10.1.3.1 longcapaciteit meten - 1.10.1.3.2 alert voor donor - 1.10.1.4 aids - 1.10.1.4.1 vergroten van de database aan info - 1.10.1.5 diabetes - 1.10.1.5.1 suikerspiegel meten - 1.10.1.5.1.1 alert indien te laag - 1.10.1.5.1.2 automatische inspuiting - 1.10.1.6 epilepsie - 1.10.1.6.1 aanval voorspellen?? - 1.10.1.7 astma - 1.10.1.7.1 detectie van luchtkwaliteit - 1.10.1.7.1.1 in kaart brengen van - 1.10.1.7.1.1.1 vervuiling - 1.10.1.7.1.1.2 pollen - 1.10.1.7.1.1.3 allergie veroorzakende deeltjes - 1.10.1.8 anorexia - 1.10.1.8.1 nagaan of ze eten - 1.10.1.8.2 eten ze voldoende - 1.10.2 thuisverzorging - 1.10.2.1 meting van de symptomen - 1.10.2.1.1 toevoeging van eigen waarneming - 1.10.2.1.2 objectieve metingen - 1.10.2.2 link naar dokter - 1.10.2.3 link naar ziekenhuis - 1.10.3 stress - 1.10.3.1 afreageren - 1.10.3.2 monitoring - 1.10.3.2.1 in welke afdeling een probleem - 1.10.3.2.1.1 aan welke factoren ligt dat - 1.10.3.2.1.2 aanpak + 1.9.3.1 anorexia + 1.9.3.1.1 eten ze voldoende + 1.9.3.1.2 nagaan of ze eten + 1.9.3.2 astma + 1.9.3.2.1 detectie van luchtkwaliteit + 1.9.3.2.1.1 in kaart brengen van + 1.9.3.2.1.1.1 allergie veroorzakende deeltjes + 1.9.3.2.1.1.2 pollen + 1.9.3.2.1.1.3 vervuiling + 1.9.3.3 epilepsie + 1.9.3.3.1 aanval voorspellen?? + 1.9.3.4 diabetes + 1.9.3.4.1 suikerspiegel meten + 1.9.3.4.1.1 automatische inspuiting + 1.9.3.4.1.2 alert indien te laag + 1.9.3.5 aids + 1.9.3.5.1 vergroten van de database aan info + 1.9.3.6 mucoviscidose + 1.9.3.6.1 alert voor donor + 1.9.3.6.2 longcapaciteit meten + 1.9.3.7 MS + 1.9.3.7.1 bevorderen van communicatie tijdens de aftakeling + 1.9.3.7.1.1 naar familie en vrienden toe + 1.9.3.7.1.2 naar de dokters toe + 1.9.3.8 feedback van de lichaamsconditie + 1.9.3.8.1 aan dokter + 1.9.3.8.1.1 op afstand consulatie + 1.9.3.8.1.2 volledig overzicht + 1.9.3.8.1.3 contacteert patient indien nodig + 1.9.3.8.2 link + 1.9.3.8.2.1 naar behandelend arts + 1.9.3.8.2.2 naar hulpdiensten + 1.9.3.8.2.3 naar ziekenhuis + 1.9.3.8.3 aan de patiënt + 1.9.3.8.3.1 waarschuwingen + 1.10 milieu + 1.10.1 alternatieve energie + 1.10.1.1 kernenergie + 1.10.1.2 zon + 1.10.1.3 wind + 1.10.2 waterreserves + 1.10.2.1 vervuiling + 1.10.2.2 reserves + 1.10.3 eco systemen + 1.10.3.1 diversiteit + 1.10.4 dioxines + 1.10.5 afval + 1.10.5.1 + 1.10.5.2 cradle 2 cradle + 1.10.5.3 riolen + 1.10.5.4 verwerking + 1.10.6 pollutie + 1.10.7 mag ik dit door mijn gootsteen kappen + 1.10.8 bosbouw + 1.10.8.1 bodemvervuiling + 1.10.8.1.1 onderzoek + 1.10.8.2 parasieten + 1.10.8.3 ziektes bij bomen diff --git a/wise-webapp/src/test/resources/data/export/huge.xls b/wise-webapp/src/test/resources/data/export/huge.xls index afe1fa83..2de6dfbd 100644 --- a/wise-webapp/src/test/resources/data/export/huge.xls +++ b/wise-webapp/src/test/resources/data/export/huge.xls @@ -28,196 +28,6 @@ -veiligheid - - - - -verkeer - - -

    - - - - - - -filevorming - - - - -preventie - - -

    - - - - - - -Omleiding zoeken - - - - -Openbaar vervoer - - - - -Openbare fietsen - - - - -Trackingsysteem, # fietsen op 1 plaats - - - - -Fiets bestellen in grote steden - - - - -ongevallen - - - - -preventie - - - - -roekeloos rijgedrag opsporen - - - - -via sensoren aan boord versnelling, manouvres, snelheid,... registreren - - - - -bestraffen van chauffeurs? - - - - -oorzaak - - - - -nagaan van de oorzaak - - - - -Automatisch opbellen van hulpdiensten - - - - -opsporen van vluchtmisdrijf - - - - -info over de staat van het wegdek - - - - -wegenwerken - - - - -waarschuwingen - - - - -aanpassing van max. snelheid - - - - -criminaliteit - - -

    - - - - - - -drugs - - - - -opsporen - - - - -individuele tests - - - - -testen per woonregio (via afvoerstelsels) - - - - -wapenhandel - - - - -opsporen - - - - -diefstal - - - - -tracking via gps - - - - -Aantal ongevallen/criminele feiten registreren - - - - -Mapping van probleemsituaties - - - - -Meer controle - - - - -Terugkoppeling naar politie/verkeersdienst - - - - De markt @@ -228,62 +38,82 @@ -kleding +hygiëne + + + + +diensten + + + + +energie -informatiebronnen per merk - - - - -slimme kledij +kamer herkent gebruiker -kwaliteitsinfo bij aankoop +automatische lichten + + + + +inrichting (woning) + + + + +advies -info uit cloud - - - - -reviews +kleuren en stijlen monitoring - - -

    - - - - - - -stijlen -begeleiding bij het winkelen naar gelijkaardige kleding +eigendomsverificatie + + + + +kwaliteit -voeding +medicijnen -zie bij handelingen -->winkelen +alternatieven + + + + +neveneffecten + + + + +werking + + + + +kwaliteit @@ -293,42 +123,27 @@ -eigendomsverificatie - - - - -GPS tracking - - - - -koop-verkoop - - - - -afdanking (sluikstorten) - - - - monitoring -kwaliteit +productie verloop -rechtstreekse link naar producent bij falen +testfasen -reparatieservice +wat/wanneer + + + + +door wie @@ -343,102 +158,287 @@ -productie verloop - - - - -door wie - - - - -wat/wanneer - - - - -testfasen - - - - -medicijnen - - - - kwaliteit - -werking + +reparatieservice + + + + +rechtstreekse link naar producent bij falen -neveneffecten +eigendomsverificatie - -alternatieven + +afdanking (sluikstorten) + + + + +koop-verkoop + + + + +GPS tracking -inrichting (woning) +voeding + + + + +zie bij handelingen -->winkelen + + + + +kleding + + + + +stijlen + + + + +begeleiding bij het winkelen naar gelijkaardige kleding monitoring - - - - -kwaliteit - - - - -eigendomsverificatie + + +

    + + -advies +kwaliteitsinfo bij aankoop -kleuren en stijlen +reviews - -energie + +info uit cloud -automatische lichten +informatiebronnen per merk + + + + +slimme kledij + + + + +veiligheid + + + + +criminaliteit + + +

    + + -kamer herkent gebruiker +Aantal ongevallen/criminele feiten registreren + + + + +Terugkoppeling naar politie/verkeersdienst + + + + +Meer controle + + + + +Mapping van probleemsituaties + + + + +diefstal + + + + +tracking via gps + + + + +wapenhandel + + + + +opsporen + + + + +drugs + + + + +opsporen + + + + +testen per woonregio (via afvoerstelsels) + + + + +individuele tests -diensten +verkeer + + +

    + + - -hygiëne + +ongevallen + + + + +info over de staat van het wegdek + + + + +aanpassing van max. snelheid + + + + +waarschuwingen + + + + +wegenwerken + + + + +oorzaak + + + + +opsporen van vluchtmisdrijf + + + + +Automatisch opbellen van hulpdiensten + + + + +nagaan van de oorzaak + + + + +preventie + + + + +bestraffen van chauffeurs? + + + + +roekeloos rijgedrag opsporen + + + + +via sensoren aan boord versnelling, manouvres, snelheid,... registreren + + + + +Openbare fietsen + + + + +Fiets bestellen in grote steden + + + + +Trackingsysteem, # fietsen op 1 plaats + + + + +Openbaar vervoer + + + + +filevorming + + + + +Omleiding zoeken + + + + +preventie + + +

    + + @@ -458,77 +458,17 @@ -productinfo +boodschappenlijst -allergie - - - - -Gezondheidscontrole - - - - -Sensor voor vers fruit en vlees - - - - -Salmonella sensor +alternatieven indien uitverkocht -prijs - - - - -kwaliteit - - - - -via cloud - - - - -databases v. reviews - - - - -bio - - - - -voedingstoffen - - - - -diëet checker - - - - -alternatieve producten - - - - -digitale portemonnee - - - - -bestellingen op afstand +dichtste bij bovenaan @@ -543,132 +483,77 @@ -boodschappenlijst - - - - -dichtste bij bovenaan - - - - -alternatieven indien uitverkocht - - - - -milieu - - - - -bosbouw - - - - -ziektes bij bomen - - - - -parasieten - - - - -bodemvervuiling +bestellingen op afstand -onderzoek +digitale portemonnee - -mag ik dit door mijn gootsteen kappen + +productinfo - -pollutie + +alternatieve producten - -afval + +diëet checker - -verwerking + +kwaliteit - -riolen + +voedingstoffen - -cradle 2 cradle + +bio - - + +databases v. reviews - -dioxines + +via cloud - -eco systemen + +prijs - -diversiteit + +allergie - -waterreserves + +Salmonella sensor - -reserves + +Sensor voor vers fruit en vlees - -vervuiling - - - - -alternatieve energie - - - - -wind - - - - -zon - - - - -kernenergie + +Gezondheidscontrole @@ -678,6 +563,106 @@ +aandoeningen en situaties + + + + +dementen + + + + +eten + + + + +wassen + + + + +wegloopdetectie + + + + +zwangerschap + + + + +geboortetimer + + +

    + + + + + + +info over voeding + + + + +via cloud info over voeding + + +

    + + + + + + +wat is gezond + + + + +baby monitoren + + + + +sport + + + + +opvolging van de sporter + + + + +gps + + + + +cadans + + + + +energieverbruik + + + + +bloeddruk + + + + +hartslag + + + + cultuur @@ -703,12 +688,7 @@ -isolatie - - - - -warmtemetingen +nameten @@ -718,107 +698,12 @@ -nameten - - - - -aandoeningen en situaties - - - - -zwangerschap - - - - -baby monitoren - - - - -info over voeding +isolatie -wat is gezond - - - - -via cloud info over voeding - - -

    - - - - - - -geboortetimer - - -

    - - - - - - -dementen - - - - -wegloopdetectie - - - - -wassen - - - - -eten - - - - -sport - - - - -opvolging van de sporter - - - - -hartslag - - - - -bloeddruk - - - - -energieverbruik - - - - -cadans - - - - -gps +warmtemetingen @@ -828,6 +713,66 @@ +stress + + + + +monitoring + + + + +in welke afdeling een probleem + + + + +aanpak + + + + +aan welke factoren ligt dat + + + + +afreageren + + + + +thuisverzorging + + + + +link naar ziekenhuis + + + + +link naar dokter + + + + +meting van de symptomen + + + + +objectieve metingen + + + + +toevoeging van eigen waarneming + + + + verschillende ziektes @@ -838,132 +783,17 @@ -feedback van de lichaamsconditie +anorexia -aan de patiënt - - - - -waarschuwingen +eten ze voldoende -link - - - - -naar ziekenhuis - - - - -naar hulpdiensten - - - - -naar behandelend arts - - - - -aan dokter - - - - -contacteert patient indien nodig - - - - -volledig overzicht - - - - -op afstand consulatie - - - - -MS - - - - -bevorderen van communicatie tijdens de aftakeling - - - - -naar de dokters toe - - - - -naar familie en vrienden toe - - - - -mucoviscidose - - - - -longcapaciteit meten - - - - -alert voor donor - - - - -aids - - - - -vergroten van de database aan info - - - - -diabetes - - - - -suikerspiegel meten - - - - -alert indien te laag - - - - -automatische inspuiting - - - - -epilepsie - - - - -aanval voorspellen?? +nagaan of ze eten @@ -983,7 +813,7 @@ -vervuiling +allergie veroorzakende deeltjes @@ -993,82 +823,252 @@ -allergie veroorzakende deeltjes +vervuiling -anorexia +epilepsie -nagaan of ze eten +aanval voorspellen?? + + + + +diabetes -eten ze voldoende - - - - -thuisverzorging - - - - -meting van de symptomen - - - - -toevoeging van eigen waarneming - - - - -objectieve metingen - - - - -link naar dokter - - - - -link naar ziekenhuis - - - - -stress - - - - -afreageren - - - - -monitoring - - - - -in welke afdeling een probleem +suikerspiegel meten -aan welke factoren ligt dat +automatische inspuiting -aanpak +alert indien te laag + + + + +aids + + + + +vergroten van de database aan info + + + + +mucoviscidose + + + + +alert voor donor + + + + +longcapaciteit meten + + + + +MS + + + + +bevorderen van communicatie tijdens de aftakeling + + + + +naar familie en vrienden toe + + + + +naar de dokters toe + + + + +feedback van de lichaamsconditie + + + + +aan dokter + + + + +op afstand consulatie + + + + +volledig overzicht + + + + +contacteert patient indien nodig + + + + +link + + + + +naar behandelend arts + + + + +naar hulpdiensten + + + + +naar ziekenhuis + + + + +aan de patiënt + + + + +waarschuwingen + + + + +milieu + + + + +alternatieve energie + + + + +kernenergie + + + + +zon + + + + +wind + + + + +waterreserves + + + + +vervuiling + + + + +reserves + + + + +eco systemen + + + + +diversiteit + + + + +dioxines + + + + +afval + + + + + + + + + +cradle 2 cradle + + + + +riolen + + + + +verwerking + + + + +pollutie + + + + +mag ik dit door mijn gootsteen kappen + + + + +bosbouw + + + + +bodemvervuiling + + + + +onderzoek + + + + +parasieten + + + + +ziektes bij bomen diff --git a/wise-webapp/src/test/resources/data/export/i18n.mm b/wise-webapp/src/test/resources/data/export/i18n.mm index b2554408..e7568786 100644 --- a/wise-webapp/src/test/resources/data/export/i18n.mm +++ b/wise-webapp/src/test/resources/data/export/i18n.mm @@ -1,4 +1,4 @@ - + diff --git a/wise-webapp/src/test/resources/data/export/i18n2.mm b/wise-webapp/src/test/resources/data/export/i18n2.mm index b117ad96..ee6c0c6a 100644 --- a/wise-webapp/src/test/resources/data/export/i18n2.mm +++ b/wise-webapp/src/test/resources/data/export/i18n2.mm @@ -1,4 +1,4 @@ - + diff --git a/wise-webapp/src/test/resources/data/export/issue.csv b/wise-webapp/src/test/resources/data/export/issue.csv index 330fdba7..86c72e22 100644 --- a/wise-webapp/src/test/resources/data/export/issue.csv +++ b/wise-webapp/src/test/resources/data/export/issue.csv @@ -1,29 +1,6 @@ La computadora , -, - , - -, - , - , - -, - , - Salida de datos -, - , - , - -, - , - Almacenamiento -, - , - , - -, - , , @@ -61,6 +38,29 @@ La computadora , , +, + +, + , + +, + , + , + +, + , + Salida de datos +, + , + , + +, + , + Almacenamiento +, + , + , + , Tipos de computadora , diff --git a/wise-webapp/src/test/resources/data/export/issue.doc b/wise-webapp/src/test/resources/data/export/issue.doc index e0211c63..f5facc32 100644 --- a/wise-webapp/src/test/resources/data/export/issue.doc +++ b/wise-webapp/src/test/resources/data/export/issue.doc @@ -267,76 +267,6 @@ -Hardware (componentes físicos) - - - - - - - - -Entrada de datos - - - - - - - - -Ratón, Teclado, Joystick, Cámara digital, Micrófono, Escáner. - - - - - - - - - - -Salida de datos - - - - - - - - -Monitor, Impresora, Bocinas, Plóter. - - - - - - - - - - -Almacenamiento - - - - - - - - -Disquete, Disco compacto, DVD, BD, Disco duro, Memoria flash. - - - - - - - - - - - Software (Programas y datos con los que funciona la computadora) @@ -447,6 +377,76 @@ +Hardware (componentes físicos) + + + + + + + + +Entrada de datos + + + + + + + + +Ratón, Teclado, Joystick, Cámara digital, Micrófono, Escáner. + + + + + + + + + + +Salida de datos + + + + + + + + +Monitor, Impresora, Bocinas, Plóter. + + + + + + + + + + +Almacenamiento + + + + + + + + +Disquete, Disco compacto, DVD, BD, Disco duro, Memoria flash. + + + + + + + + + + + Tipos de computadora diff --git a/wise-webapp/src/test/resources/data/export/issue.latex b/wise-webapp/src/test/resources/data/export/issue.latex index 230c26f3..aeb1d825 100644 --- a/wise-webapp/src/test/resources/data/export/issue.latex +++ b/wise-webapp/src/test/resources/data/export/issue.latex @@ -1,12 +1,5 @@ \chapter{La computadora}\label{ID_1} - \section{}\label{ID_21} - \subsection{}\label{ID_25} - \subsubsection{}\label{ID_28} - \subsection{Salida de datos}\label{ID_29} - \subsubsection{}\label{ID_30} - \subsection{Almacenamiento}\label{ID_31} - \subsubsection{}\label{ID_32} \section{}\label{ID_59} \subsection{}\label{ID_92} \subsubsection{Microsoft Windows}\label{ID_101} @@ -18,6 +11,13 @@ \subsubsection{Navegadores}\label{ID_110} \subsubsection{Msn}\label{ID_111} \subsection{}\label{ID_94} + \section{}\label{ID_21} + \subsection{}\label{ID_25} + \subsubsection{}\label{ID_28} + \subsection{Salida de datos}\label{ID_29} + \subsubsection{}\label{ID_30} + \subsection{Almacenamiento}\label{ID_31} + \subsubsection{}\label{ID_32} \section{Tipos de computadora}\label{ID_3} \subsection{Computadora personal de escritorio o Desktop}\label{ID_8} \subsection{}\label{ID_10} diff --git a/wise-webapp/src/test/resources/data/export/issue.mm b/wise-webapp/src/test/resources/data/export/issue.mm index bc0b980f..82100f5f 100644 --- a/wise-webapp/src/test/resources/data/export/issue.mm +++ b/wise-webapp/src/test/resources/data/export/issue.mm @@ -1,78 +1,7 @@ - + - - - - - -

    Hardware

    -

    (componentes físicos)

    - - -
    - - - - - - - -

    Entrada de datos

    - - -
    - - - - - - - -

    Ratón, Teclado, Joystick,

    -

    Cámara digital, Micrófono, Escáner.

    - - -
    - - -
    -
    - - - - - - - - -

    Monitor, Impresora, Bocinas, Plóter.

    - - -
    - - -
    -
    - - - - - - - - -

    Disquete, Disco compacto, DVD,

    -

    BD, Disco duro, Memoria flash.

    - - -
    - - -
    -
    -
    @@ -152,6 +81,77 @@
    + + + + + +

    Hardware

    +

    (componentes físicos)

    + + +
    + + + + + + + +

    Entrada de datos

    + + +
    + + + + + + + +

    Ratón, Teclado, Joystick,

    +

    Cámara digital, Micrófono, Escáner.

    + + +
    + + +
    +
    + + + + + + + + +

    Monitor, Impresora, Bocinas, Plóter.

    + + +
    + + +
    +
    + + + + + + + + +

    Disquete, Disco compacto, DVD,

    +

    BD, Disco duro, Memoria flash.

    + + +
    + + +
    +
    +
    diff --git a/wise-webapp/src/test/resources/data/export/issue.mmap b/wise-webapp/src/test/resources/data/export/issue.mmap index 7478581c..04b5e7a0 100644 --- a/wise-webapp/src/test/resources/data/export/issue.mmap +++ b/wise-webapp/src/test/resources/data/export/issue.mmap @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/wise-webapp/src/test/resources/data/export/issue.odt b/wise-webapp/src/test/resources/data/export/issue.odt index 393cb935..3d60e4ff 100644 --- a/wise-webapp/src/test/resources/data/export/issue.odt +++ b/wise-webapp/src/test/resources/data/export/issue.odt @@ -79,13 +79,6 @@ La computadora -Hardware(componentes físicos) -Entrada de datos -Ratón, Teclado, Joystick,Cámara digital, Micrófono, Escáner. -Salida de datos -Monitor, Impresora, Bocinas, Plóter. -Almacenamiento -Disquete, Disco compacto, DVD,BD, Disco duro, Memoria flash. Software(Programas y datos con los que funciona la computadora) Software de Sistema:Permite el entendimientoentre el usuario y la maquina. Microsoft Windows @@ -97,6 +90,13 @@ Navegadores Msn Software de Desarrollo +Hardware(componentes físicos) +Entrada de datos +Ratón, Teclado, Joystick,Cámara digital, Micrófono, Escáner. +Salida de datos +Monitor, Impresora, Bocinas, Plóter. +Almacenamiento +Disquete, Disco compacto, DVD,BD, Disco duro, Memoria flash. Tipos de computadora Computadora personal de escritorio o Desktop PDA diff --git a/wise-webapp/src/test/resources/data/export/issue.txt b/wise-webapp/src/test/resources/data/export/issue.txt index 73277055..27ee94df 100644 --- a/wise-webapp/src/test/resources/data/export/issue.txt +++ b/wise-webapp/src/test/resources/data/export/issue.txt @@ -1,22 +1,22 @@ 1 La computadora 1.1 1.1.1 - 1.1.1.1 - 1.1.2 Salida de datos - 1.1.2.1 - 1.1.3 Almacenamiento - 1.1.3.1 + 1.1.1.1 Microsoft Windows + 1.1.1.2 GNU/LINUX + 1.1.1.3 MAC + 1.1.2 + 1.1.2.1 Office + 1.1.2.2 Libre Office + 1.1.2.3 Navegadores + 1.1.2.4 Msn + 1.1.3 1.2 1.2.1 - 1.2.1.1 Microsoft Windows - 1.2.1.2 GNU/LINUX - 1.2.1.3 MAC - 1.2.2 - 1.2.2.1 Office - 1.2.2.2 Libre Office - 1.2.2.3 Navegadores - 1.2.2.4 Msn - 1.2.3 + 1.2.1.1 + 1.2.2 Salida de datos + 1.2.2.1 + 1.2.3 Almacenamiento + 1.2.3.1 1.3 Tipos de computadora 1.3.1 Computadora personal de escritorio o Desktop 1.3.2 diff --git a/wise-webapp/src/test/resources/data/export/issue.xls b/wise-webapp/src/test/resources/data/export/issue.xls index 60bcd5c1..6f392233 100644 --- a/wise-webapp/src/test/resources/data/export/issue.xls +++ b/wise-webapp/src/test/resources/data/export/issue.xls @@ -29,54 +29,6 @@ -

    Hardware

    -

    (componentes físicos)

    -
    -
    -
    - - - -

    Entrada de datos

    -
    -
    -
    - - - -

    Ratón, Teclado, Joystick,

    -

    Cámara digital, Micrófono, Escáner.

    -
    -
    -
    - - -Salida de datos - - - - - -

    Monitor, Impresora, Bocinas, Plóter.

    -
    -
    -
    - - -Almacenamiento - - - - - -

    Disquete, Disco compacto, DVD,

    -

    BD, Disco duro, Memoria flash.

    -
    -
    -
    - - -

    Software

    (Programas y datos con los que funciona la computadora)

    @@ -142,6 +94,54 @@
    + +

    Hardware

    +

    (componentes físicos)

    +
    +
    +
    + + + +

    Entrada de datos

    +
    +
    +
    + + + +

    Ratón, Teclado, Joystick,

    +

    Cámara digital, Micrófono, Escáner.

    +
    +
    +
    + + +Salida de datos + + + + + +

    Monitor, Impresora, Bocinas, Plóter.

    +
    +
    +
    + + +Almacenamiento + + + + + +

    Disquete, Disco compacto, DVD,

    +

    BD, Disco duro, Memoria flash.

    +
    +
    +
    + + Tipos de computadora diff --git a/wise-webapp/src/test/resources/data/export/longnodes.mm b/wise-webapp/src/test/resources/data/export/longnodes.mm index 35d1bc02..27479942 100644 --- a/wise-webapp/src/test/resources/data/export/longnodes.mm +++ b/wise-webapp/src/test/resources/data/export/longnodes.mm @@ -1,4 +1,4 @@ - + diff --git a/wise-webapp/src/test/resources/data/export/npe.mm b/wise-webapp/src/test/resources/data/export/npe.mm index c7043fac..a353dabb 100644 --- a/wise-webapp/src/test/resources/data/export/npe.mm +++ b/wise-webapp/src/test/resources/data/export/npe.mm @@ -1,3 +1,3 @@ - + \ No newline at end of file diff --git a/wise-webapp/src/test/resources/data/export/process.csv b/wise-webapp/src/test/resources/data/export/process.csv index eed31057..5d6b63f5 100644 --- a/wise-webapp/src/test/resources/data/export/process.csv +++ b/wise-webapp/src/test/resources/data/export/process.csv @@ -21,60 +21,6 @@ California Marin/Napa/Solano , Hawaii -, - Southern California -, - , - Los Angeles -, - , - Anaheim/Santa Ana -, - , - Ventura -, - , - Other South -, - Policy Bodies -, - , - Advocacy -, - , - , - AAO -, - , - , - ASCRS -, - , - , - EBAA -, - , - Military -, - , - United Network for Organ Sharing -, - , - Kaiser Hospital System -, - , - University of California System -, - , - CMS -, - , - , - Medicare Part A -, - , - , - Medicare Part B , Corneal Tissue OPS , @@ -139,6 +85,64 @@ California , , SightLife +, + Southern California +, + , + Los Angeles +, + , + Anaheim/Santa Ana +, + , + Ventura +, + , + Other South +, + QE Medicare +, + Policy Bodies +, + , + Advocacy +, + , + , + AAO +, + , + , + ASCRS +, + , + , + EBAA +, + , + Military +, + , + United Network for Organ Sharing +, + , + Kaiser Hospital System +, + , + University of California System +, + , + CMS +, + , + , + Medicare Part A +, + , + , + Medicare Part B +, + CMS Data , Tools , @@ -147,10 +151,6 @@ California , , HealthLandscape -, - QE Medicare -, - CMS Data , Ambulatory Payment Classification , diff --git a/wise-webapp/src/test/resources/data/export/process.doc b/wise-webapp/src/test/resources/data/export/process.doc index bef25f98..ff0d04a4 100644 --- a/wise-webapp/src/test/resources/data/export/process.doc +++ b/wise-webapp/src/test/resources/data/export/process.doc @@ -347,176 +347,6 @@ -Southern California - - - - - - - - -Los Angeles - - - - - - - - - -Anaheim/Santa Ana - - - - - - - - - -Ventura - - - - - - - - - -Other South - - - - - - - - - - -Policy Bodies - - - - - - - - -Advocacy - - - - - - - - -AAO - - - - - - - - - -ASCRS - - - - - - - - - -EBAA - - - - - - - - - - -Military - - - - - - - - - -United Network for Organ Sharing - - - - - - - - - -Kaiser Hospital System - - - - - - - - - -University of California System - - - - - - - - - -CMS - - - - - - - - -Medicare Part A - - - - - - - - - -Medicare Part B - - - - - - - - - - - Corneal Tissue OPS @@ -697,6 +527,196 @@ +Southern California + + + + + + + + +Los Angeles + + + + + + + + + +Anaheim/Santa Ana + + + + + + + + + +Ventura + + + + + + + + + +Other South + + + + + + + + + + +QE Medicare + + + + + + + + + +Policy Bodies + + + + + + + + +Advocacy + + + + + + + + +AAO + + + + + + + + + +ASCRS + + + + + + + + + +EBAA + + + + + + + + + + +Military + + + + + + + + + +United Network for Organ Sharing + + + + + + + + + +Kaiser Hospital System + + + + + + + + + +University of California System + + + + + + + + + +CMS + + + + + + + + +Medicare Part A + + + + + + + + + +Medicare Part B + + + + + + + + + + + +CMS Data + + + + + + + + + Tools @@ -727,26 +747,6 @@ -QE Medicare - - - - - - - - - -CMS Data - - - - - - - - - Ambulatory Payment Classification diff --git a/wise-webapp/src/test/resources/data/export/process.latex b/wise-webapp/src/test/resources/data/export/process.latex index 4d0a311f..5be74d04 100644 --- a/wise-webapp/src/test/resources/data/export/process.latex +++ b/wise-webapp/src/test/resources/data/export/process.latex @@ -8,23 +8,6 @@ \subsection{Santa Clara}\label{ID_6} \subsection{Marin/Napa/Solano}\label{ID_7} \section{Hawaii}\label{ID_8} - \section{Southern California}\label{ID_9} - \subsection{Los Angeles}\label{ID_10} - \subsection{Anaheim/Santa Ana}\label{ID_11} - \subsection{Ventura}\label{ID_12} - \subsection{Other South}\label{ID_13} - \section{Policy Bodies}\label{ID_14} - \subsection{Advocacy}\label{ID_15} - \subsubsection{AAO}\label{ID_16} - \subsubsection{ASCRS}\label{ID_17} - \subsubsection{EBAA}\label{ID_18} - \subsection{Military}\label{ID_19} - \subsection{United Network for Organ Sharing}\label{ID_20} - \subsection{Kaiser Hospital System}\label{ID_21} - \subsection{University of California System}\label{ID_22} - \subsection{CMS}\label{ID_23} - \subsubsection{Medicare Part A}\label{ID_24} - \subsubsection{Medicare Part B}\label{ID_25} \section{Corneal Tissue OPS}\label{ID_26} \subsection{Transplant Bank International}\label{ID_27} \subsubsection{Orange County Eye and Transplant Bank}\label{ID_28} @@ -43,11 +26,28 @@ \subsubsection{Sierra Eye and Tissue Donor Services}\label{ID_41}In 2010, 2.023 referrals\par \subsection{SightLife}\label{ID_43} + \section{Southern California}\label{ID_9} + \subsection{Los Angeles}\label{ID_10} + \subsection{Anaheim/Santa Ana}\label{ID_11} + \subsection{Ventura}\label{ID_12} + \subsection{Other South}\label{ID_13} + \section{QE Medicare}\label{ID_47} + \section{Policy Bodies}\label{ID_14} + \subsection{Advocacy}\label{ID_15} + \subsubsection{AAO}\label{ID_16} + \subsubsection{ASCRS}\label{ID_17} + \subsubsection{EBAA}\label{ID_18} + \subsection{Military}\label{ID_19} + \subsection{United Network for Organ Sharing}\label{ID_20} + \subsection{Kaiser Hospital System}\label{ID_21} + \subsection{University of California System}\label{ID_22} + \subsection{CMS}\label{ID_23} + \subsubsection{Medicare Part A}\label{ID_24} + \subsubsection{Medicare Part B}\label{ID_25} + \section{CMS Data}\label{ID_48} \section{Tools}\label{ID_44} \subsection{Darthmouth Atlas of Health}\label{ID_45} \subsection{HealthLandscape}\label{ID_46} - \section{QE Medicare}\label{ID_47} - \section{CMS Data}\label{ID_48} \section{Ambulatory Payment Classification}\label{ID_49} \subsection{CPT's which don't allow V2785}\label{ID_50} \subsubsection{Ocular Reconstruction Transplant}\label{ID_51}\begin{itemize} diff --git a/wise-webapp/src/test/resources/data/export/process.mm b/wise-webapp/src/test/resources/data/export/process.mm index df1532ed..ceeb9cea 100644 --- a/wise-webapp/src/test/resources/data/export/process.mm +++ b/wise-webapp/src/test/resources/data/export/process.mm @@ -1,4 +1,4 @@ - + @@ -9,12 +9,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -30,40 +60,11 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - diff --git a/wise-webapp/src/test/resources/data/export/process.mmap b/wise-webapp/src/test/resources/data/export/process.mmap index 379f7a0d..9592d6d0 100644 --- a/wise-webapp/src/test/resources/data/export/process.mmap +++ b/wise-webapp/src/test/resources/data/export/process.mmap @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/wise-webapp/src/test/resources/data/export/process.odt b/wise-webapp/src/test/resources/data/export/process.odt index 5a1587d6..4e678b46 100644 --- a/wise-webapp/src/test/resources/data/export/process.odt +++ b/wise-webapp/src/test/resources/data/export/process.odt @@ -87,23 +87,6 @@ Santa Clara Marin/Napa/Solano Hawaii -Southern California -Los Angeles -Anaheim/Santa Ana -Ventura -Other South -Policy Bodies -Advocacy -AAO -ASCRS -EBAA -Military -United Network for Organ Sharing -Kaiser Hospital System -University of California System -CMS -Medicare Part A -Medicare Part B Corneal Tissue OPS Transplant Bank International Orange County Eye and Transplant Bank @@ -125,11 +108,28 @@ Sierra Eye and Tissue Donor Services In 2010, 2.023 referrals SightLife +Southern California +Los Angeles +Anaheim/Santa Ana +Ventura +Other South +QE Medicare +Policy Bodies +Advocacy +AAO +ASCRS +EBAA +Military +United Network for Organ Sharing +Kaiser Hospital System +University of California System +CMS +Medicare Part A +Medicare Part B +CMS Data Tools Darthmouth Atlas of Health HealthLandscape -QE Medicare -CMS Data Ambulatory Payment Classification CPT's which don't allow V2785 Ocular Reconstruction Transplant diff --git a/wise-webapp/src/test/resources/data/export/process.txt b/wise-webapp/src/test/resources/data/export/process.txt index 1f67e7b2..aeb1b7a1 100644 --- a/wise-webapp/src/test/resources/data/export/process.txt +++ b/wise-webapp/src/test/resources/data/export/process.txt @@ -7,47 +7,47 @@ 1.1.5 Santa Clara 1.1.6 Marin/Napa/Solano 1.2 Hawaii - 1.3 Southern California - 1.3.1 Los Angeles - 1.3.2 Anaheim/Santa Ana - 1.3.3 Ventura - 1.3.4 Other South - 1.4 Policy Bodies - 1.4.1 Advocacy - 1.4.1.1 AAO - 1.4.1.2 ASCRS - 1.4.1.3 EBAA - 1.4.2 Military - 1.4.3 United Network for Organ Sharing - 1.4.4 Kaiser Hospital System - 1.4.5 University of California System - 1.4.6 CMS - 1.4.6.1 Medicare Part A - 1.4.6.2 Medicare Part B - 1.5 Corneal Tissue OPS - 1.5.1 Transplant Bank International - (see:OneLegacyCalifornia Transplant Donor Network) 1.5.1.1 Orange County Eye and Transplant Bank - 1.5.1.2 Northern California Transplant Bank - 1.5.1.2.1 In 2010, 2,500 referrals forwarded to OneLegacy - 1.5.1.3 Doheny Eye and Tissue Transplant Bank + 1.3 Corneal Tissue OPS + 1.3.1 Transplant Bank International + 1.3.1.1 Orange County Eye and Transplant Bank + 1.3.1.2 Northern California Transplant Bank + 1.3.1.2.1 In 2010, 2,500 referrals forwarded to OneLegacy + 1.3.1.3 Doheny Eye and Tissue Transplant Bank * Link: http://www.dohenyeyebank.org/ - 1.5.2 OneLegacy - 1.5.2.1 In 2010, 11,828 referrals - 1.5.3 San Diego Eye Bank - 1.5.3.1 In 2010, 2,555 referrals - 1.5.4 California Transplant Donor Network - 1.5.5 California Transplant Services - 1.5.5.1 In 2010, 0 referrals - 1.5.6 Lifesharing - 1.5.7 DCI Donor Services - 1.5.7.1 Sierra Eye and Tissue Donor Services - 1.5.7.1.1 In 2010, 2.023 referrals - 1.5.8 SightLife - 1.6 Tools - 1.6.1 Darthmouth Atlas of Health - 1.6.2 HealthLandscape - 1.7 QE Medicare - 1.8 CMS Data + 1.3.2 OneLegacy + (see:Transplant Bank International) 1.3.2.1 In 2010, 11,828 referrals + 1.3.3 San Diego Eye Bank + 1.3.3.1 In 2010, 2,555 referrals + 1.3.4 California Transplant Donor Network + (see:Transplant Bank International) 1.3.5 California Transplant Services + 1.3.5.1 In 2010, 0 referrals + 1.3.6 Lifesharing + 1.3.7 DCI Donor Services + 1.3.7.1 Sierra Eye and Tissue Donor Services + 1.3.7.1.1 In 2010, 2.023 referrals + 1.3.8 SightLife + 1.4 Southern California + 1.4.1 Los Angeles + 1.4.2 Anaheim/Santa Ana + 1.4.3 Ventura + 1.4.4 Other South + 1.5 QE Medicare + 1.6 Policy Bodies + 1.6.1 Advocacy + 1.6.1.1 AAO + 1.6.1.2 ASCRS + 1.6.1.3 EBAA + 1.6.2 Military + 1.6.3 United Network for Organ Sharing + 1.6.4 Kaiser Hospital System + 1.6.5 University of California System + 1.6.6 CMS + 1.6.6.1 Medicare Part A + 1.6.6.2 Medicare Part B + 1.7 CMS Data + 1.8 Tools + 1.8.1 Darthmouth Atlas of Health + 1.8.2 HealthLandscape 1.9 Ambulatory Payment Classification 1.9.1 CPT's which don't allow V2785 1.9.1.1 Ocular Reconstruction Transplant diff --git a/wise-webapp/src/test/resources/data/export/process.xls b/wise-webapp/src/test/resources/data/export/process.xls index 8358ab5c..aaaedd4c 100644 --- a/wise-webapp/src/test/resources/data/export/process.xls +++ b/wise-webapp/src/test/resources/data/export/process.xls @@ -68,91 +68,6 @@ -Southern California - - - - -Los Angeles - - - - -Anaheim/Santa Ana - - - - -Ventura - - - - -Other South - - - - -Policy Bodies - - - - -Advocacy - - - - -AAO - - - - -ASCRS - - - - -EBAA - - - - -Military - - - - -United Network for Organ Sharing - - - - -Kaiser Hospital System - - - - -University of California System - - - - -CMS - - - - -Medicare Part A - - - - -Medicare Part B - - - - Corneal Tissue OPS @@ -243,6 +158,101 @@ +Southern California + + + + +Los Angeles + + + + +Anaheim/Santa Ana + + + + +Ventura + + + + +Other South + + + + +QE Medicare + + + + +Policy Bodies + + + + +Advocacy + + + + +AAO + + + + +ASCRS + + + + +EBAA + + + + +Military + + + + +United Network for Organ Sharing + + + + +Kaiser Hospital System + + + + +University of California System + + + + +CMS + + + + +Medicare Part A + + + + +Medicare Part B + + + + +CMS Data + + + + Tools @@ -258,16 +268,6 @@ -QE Medicare - - - - -CMS Data - - - - Ambulatory Payment Classification diff --git a/wise-webapp/src/test/resources/data/export/sample2.csv b/wise-webapp/src/test/resources/data/export/sample2.csv index 6b80b59e..3b3fac60 100644 --- a/wise-webapp/src/test/resources/data/export/sample2.csv +++ b/wise-webapp/src/test/resources/data/export/sample2.csv @@ -1,14 +1,14 @@ Prospace -, - Newspapers -, - , - College Newspapers , Third Party , , Thumbshot +, + Newspapers +, + , + College Newspapers , Partnerships , @@ -22,20 +22,20 @@ Prospace , , , - Xing + konnects.com , , , , - konnects.com + Xing , Career Counseling , , - Fraternity + Professional Associations , , - Professional Associations + Fraternity , White-Label , diff --git a/wise-webapp/src/test/resources/data/export/sample2.doc b/wise-webapp/src/test/resources/data/export/sample2.doc index 6a8b2cd6..23f8e3c6 100644 --- a/wise-webapp/src/test/resources/data/export/sample2.doc +++ b/wise-webapp/src/test/resources/data/export/sample2.doc @@ -277,26 +277,6 @@ -Newspapers - - - - - - - - -College Newspapers - - - - - - - - - - Third Party @@ -317,6 +297,26 @@ +Newspapers + + + + + + + + +College Newspapers + + + + + + + + + + Partnerships @@ -344,7 +344,7 @@ -Xing +konnects.com @@ -354,7 +354,7 @@ -konnects.com +Xing @@ -376,7 +376,7 @@ -Fraternity +Professional Associations @@ -386,7 +386,7 @@ -Professional Associations +Fraternity diff --git a/wise-webapp/src/test/resources/data/export/sample2.latex b/wise-webapp/src/test/resources/data/export/sample2.latex index 280bf21a..dc00c570 100644 --- a/wise-webapp/src/test/resources/data/export/sample2.latex +++ b/wise-webapp/src/test/resources/data/export/sample2.latex @@ -1,19 +1,19 @@ \chapter{Prospace}\label{ID_null}Siehe auch \url{prospace.com} - \section{Newspapers}\label{ID_null} - \subsection{College Newspapers}\label{ID_null} \section{Third Party }\label{ID_null} \subsection{Thumbshot}\label{ID_null}Siehe auch \url{thumbshots.org} + \section{Newspapers}\label{ID_null} + \subsection{College Newspapers}\label{ID_null} \section{Partnerships}\label{ID_null} \subsection{Websites}\label{ID_null} \subsubsection{Business Networks}\label{ID_null}\begin{itemize} - \item \label{ID_null}Xing\par - \item \label{ID_null}konnects.com\par + \item \label{ID_null}konnects.com\par + \item \label{ID_null}Xing\par \end{itemize} \section{Career Counseling}\label{ID_null} - \subsection{Fraternity}\label{ID_null} \subsection{Professional Associations}\label{ID_null} + \subsection{Fraternity}\label{ID_null} \section{White-Label}\label{ID_null} \subsection{http://www.harrisconnect.com/}\label{ID_null} \ No newline at end of file diff --git a/wise-webapp/src/test/resources/data/export/sample2.mm b/wise-webapp/src/test/resources/data/export/sample2.mm index 06531304..25f7f19a 100644 --- a/wise-webapp/src/test/resources/data/export/sample2.mm +++ b/wise-webapp/src/test/resources/data/export/sample2.mm @@ -1,4 +1,4 @@ - + @@ -9,23 +9,23 @@ - - - + + + - + - + diff --git a/wise-webapp/src/test/resources/data/export/sample2.mmap b/wise-webapp/src/test/resources/data/export/sample2.mmap index 3051e105..1581c31b 100644 --- a/wise-webapp/src/test/resources/data/export/sample2.mmap +++ b/wise-webapp/src/test/resources/data/export/sample2.mmap @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/wise-webapp/src/test/resources/data/export/sample2.odt b/wise-webapp/src/test/resources/data/export/sample2.odt index 7b11b2aa..194834ab 100644 --- a/wise-webapp/src/test/resources/data/export/sample2.odt +++ b/wise-webapp/src/test/resources/data/export/sample2.odt @@ -83,21 +83,21 @@ prospace.com
    -Newspapers -College Newspapers Third Party Thumbshot thumbshots.org +Newspapers +College Newspapers Partnerships Websites Business Networks -Xing konnects.com +Xing Career Counseling -Fraternity Professional Associations +Fraternity White-Label http://www.harrisconnect.com/ diff --git a/wise-webapp/src/test/resources/data/export/sample2.txt b/wise-webapp/src/test/resources/data/export/sample2.txt index 8421370a..799e9edf 100644 --- a/wise-webapp/src/test/resources/data/export/sample2.txt +++ b/wise-webapp/src/test/resources/data/export/sample2.txt @@ -1,18 +1,18 @@ 1 Prospace * Link: prospace.com * Note: - 1.1 Newspapers - 1.1.1 College Newspapers - 1.2 Third Party - 1.2.1 Thumbshot + 1.1 Third Party + 1.1.1 Thumbshot * Link: thumbshots.org + 1.2 Newspapers + 1.2.1 College Newspapers 1.3 Partnerships 1.3.1 Websites 1.3.1.1 Business Networks - 1.3.1.1.1 Xing - 1.3.1.1.2 konnects.com + 1.3.1.1.1 konnects.com + 1.3.1.1.2 Xing 1.4 Career Counseling - 1.4.1 Fraternity - 1.4.2 Professional Associations + 1.4.1 Professional Associations + 1.4.2 Fraternity 1.5 White-Label 1.5.1 http://www.harrisconnect.com/ diff --git a/wise-webapp/src/test/resources/data/export/sample2.xls b/wise-webapp/src/test/resources/data/export/sample2.xls index 7e36ad56..22a40515 100644 --- a/wise-webapp/src/test/resources/data/export/sample2.xls +++ b/wise-webapp/src/test/resources/data/export/sample2.xls @@ -33,16 +33,6 @@ -Newspapers - - - - -College Newspapers - - - - Third Party @@ -53,6 +43,16 @@ +Newspapers + + + + +College Newspapers + + + + Partnerships @@ -68,12 +68,12 @@ -Xing +konnects.com -konnects.com +Xing @@ -83,12 +83,12 @@ -Fraternity +Professional Associations -Professional Associations +Fraternity diff --git a/wise-webapp/src/test/resources/data/export/sample3.mm b/wise-webapp/src/test/resources/data/export/sample3.mm index 55823996..0c9b63e8 100644 --- a/wise-webapp/src/test/resources/data/export/sample3.mm +++ b/wise-webapp/src/test/resources/data/export/sample3.mm @@ -1,3 +1,3 @@ - + \ No newline at end of file diff --git a/wise-webapp/src/test/resources/data/export/sample4.mm b/wise-webapp/src/test/resources/data/export/sample4.mm index 55823996..0c9b63e8 100644 --- a/wise-webapp/src/test/resources/data/export/sample4.mm +++ b/wise-webapp/src/test/resources/data/export/sample4.mm @@ -1,3 +1,3 @@ - + \ No newline at end of file diff --git a/wise-webapp/src/test/resources/data/export/simple-maps.latex b/wise-webapp/src/test/resources/data/export/simple-maps.latex index 34f0ea93..eb9cc4a6 100644 --- a/wise-webapp/src/test/resources/data/export/simple-maps.latex +++ b/wise-webapp/src/test/resources/data/export/simple-maps.latex @@ -266,7 +266,7 @@ \item \label{ID_63}Tampoco\par \end{itemize} - siehe auch \ref{} + \end{itemize} \end{itemize} @@ -324,7 +324,7 @@ \end{itemize} \end{itemize} - + siehe auch \ref{} \subsection{Otra información}\label{ID_8} \subsubsection{¿Una emergencia?}\label{ID_102}\begin{itemize} \item \label{ID_105}Sí\par diff --git a/wise-webapp/src/test/resources/data/export/simple-maps.mm b/wise-webapp/src/test/resources/data/export/simple-maps.mm index d362006e..afe8b82a 100644 --- a/wise-webapp/src/test/resources/data/export/simple-maps.mm +++ b/wise-webapp/src/test/resources/data/export/simple-maps.mm @@ -1,4 +1,4 @@ - + @@ -538,7 +538,6 @@ - @@ -670,6 +669,7 @@ +
    diff --git a/wise-webapp/src/test/resources/data/export/simple-maps.mmap b/wise-webapp/src/test/resources/data/export/simple-maps.mmap index ba03e526..8df87322 100644 --- a/wise-webapp/src/test/resources/data/export/simple-maps.mmap +++ b/wise-webapp/src/test/resources/data/export/simple-maps.mmap @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/wise-webapp/src/test/resources/data/export/simple-maps.txt b/wise-webapp/src/test/resources/data/export/simple-maps.txt index 7a2c13e7..1da2ab5f 100644 --- a/wise-webapp/src/test/resources/data/export/simple-maps.txt +++ b/wise-webapp/src/test/resources/data/export/simple-maps.txt @@ -148,7 +148,7 @@ 1.2.2.1.2.1.2.1.2 No 1.2.2.1.2.1.2.1.2.1 ¿Mejor a un parque? 1.2.2.1.2.1.2.1.2.1.1 Sí - (see:¿De los tradicionales?) 1.2.2.1.2.1.2.1.2.1.2 Tampoco + 1.2.2.1.2.1.2.1.2.1.2 Tampoco 1.2.2.2 De la geografía 1.2.2.2.1 Parques naturales 1.2.2.2.1.1 Parque ecológico Piedras Blancas @@ -157,7 +157,7 @@ 1.2.2.2.1.4 Parque Ecoturístico Arví 1.2.2.2.2 Parques urbanos 1.2.2.2.2.1 ¿De los tradicionales? - 1.2.2.2.2.1.1 Sí + (see:Sí) 1.2.2.2.2.1.1 Sí 1.2.2.2.2.1.1.1 Plazas 1.2.2.2.2.1.1.1.1 Plaza de San Antonio 1.2.2.2.2.1.1.1.2 Plaza Botero diff --git a/wise-webapp/src/test/resources/data/export/welcome-reloaded.csv b/wise-webapp/src/test/resources/data/export/welcome-reloaded.csv index 31e88898..5db1832e 100644 --- a/wise-webapp/src/test/resources/data/export/welcome-reloaded.csv +++ b/wise-webapp/src/test/resources/data/export/welcome-reloaded.csv @@ -15,15 +15,15 @@ Welcome To WiseMapping , , Share your ideas +, + , + , , Brainstorming , , Visual -, - , - , Mind Mapping , diff --git a/wise-webapp/src/test/resources/data/export/welcome-reloaded.doc b/wise-webapp/src/test/resources/data/export/welcome-reloaded.doc index 75e8a5b9..35eaab6b 100644 --- a/wise-webapp/src/test/resources/data/export/welcome-reloaded.doc +++ b/wise-webapp/src/test/resources/data/export/welcome-reloaded.doc @@ -326,6 +326,16 @@ + + + + + + + + + + Brainstorming @@ -340,16 +350,6 @@ - - - - - - - - - - diff --git a/wise-webapp/src/test/resources/data/export/welcome-reloaded.latex b/wise-webapp/src/test/resources/data/export/welcome-reloaded.latex index bd94f2bf..74aa9c96 100644 --- a/wise-webapp/src/test/resources/data/export/welcome-reloaded.latex +++ b/wise-webapp/src/test/resources/data/export/welcome-reloaded.latex @@ -6,9 +6,9 @@ \subsection{Drag map to move}\label{ID_14} \section{Productivity}\label{ID_2} \subsection{Share your ideas}\label{ID_3} + \subsection{}\label{ID_27} \subsection{Brainstorming}\label{ID_4} \subsection{Visual }\label{ID_5} - \subsection{}\label{ID_27} \section{Mind Mapping}\label{ID_6} \subsection{Share with Collegues}\label{ID_7} \subsection{Online}\label{ID_8} diff --git a/wise-webapp/src/test/resources/data/export/welcome-reloaded.mm b/wise-webapp/src/test/resources/data/export/welcome-reloaded.mm index 06727f96..a61d61ef 100644 --- a/wise-webapp/src/test/resources/data/export/welcome-reloaded.mm +++ b/wise-webapp/src/test/resources/data/export/welcome-reloaded.mm @@ -1,4 +1,4 @@ - + @@ -20,9 +20,9 @@ + - diff --git a/wise-webapp/src/test/resources/data/export/welcome-reloaded.mmap b/wise-webapp/src/test/resources/data/export/welcome-reloaded.mmap index 1e5bec8d..1c1f8dae 100644 --- a/wise-webapp/src/test/resources/data/export/welcome-reloaded.mmap +++ b/wise-webapp/src/test/resources/data/export/welcome-reloaded.mmap @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/wise-webapp/src/test/resources/data/export/welcome-reloaded.odt b/wise-webapp/src/test/resources/data/export/welcome-reloaded.odt index 2a9dbc8b..73a0f1c2 100644 --- a/wise-webapp/src/test/resources/data/export/welcome-reloaded.odt +++ b/wise-webapp/src/test/resources/data/export/welcome-reloaded.odt @@ -85,9 +85,9 @@ Drag map to move Productivity Share your ideas + Brainstorming Visual - Mind Mapping Share with Collegues Online diff --git a/wise-webapp/src/test/resources/data/export/welcome-reloaded.txt b/wise-webapp/src/test/resources/data/export/welcome-reloaded.txt index f936e2c9..6f89e8d4 100644 --- a/wise-webapp/src/test/resources/data/export/welcome-reloaded.txt +++ b/wise-webapp/src/test/resources/data/export/welcome-reloaded.txt @@ -5,9 +5,9 @@ 1.1.3 Drag map to move 1.2 Productivity 1.2.1 Share your ideas - 1.2.2 Brainstorming - 1.2.3 Visual - 1.2.4 + 1.2.2 + 1.2.3 Brainstorming + 1.2.4 Visual 1.3 Mind Mapping 1.3.1 Share with Collegues 1.3.2 Online diff --git a/wise-webapp/src/test/resources/data/export/welcome-reloaded.xls b/wise-webapp/src/test/resources/data/export/welcome-reloaded.xls index a6b65b5e..abc7c3e2 100644 --- a/wise-webapp/src/test/resources/data/export/welcome-reloaded.xls +++ b/wise-webapp/src/test/resources/data/export/welcome-reloaded.xls @@ -58,6 +58,11 @@ + + + + + Brainstorming @@ -67,11 +72,6 @@ - - - - - Mind Mapping diff --git a/wise-webapp/src/test/resources/data/export/welcome.mm b/wise-webapp/src/test/resources/data/export/welcome.mm index c7dd5e0f..f6db0f12 100644 --- a/wise-webapp/src/test/resources/data/export/welcome.mm +++ b/wise-webapp/src/test/resources/data/export/welcome.mm @@ -1,4 +1,4 @@ - + diff --git a/wise-webapp/src/test/resources/data/freemind/basic.mmr b/wise-webapp/src/test/resources/data/freemind/basic.mmr index 7421e72c..a5595dfd 100644 --- a/wise-webapp/src/test/resources/data/freemind/basic.mmr +++ b/wise-webapp/src/test/resources/data/freemind/basic.mmr @@ -1,4 +1,4 @@ - + diff --git a/wise-webapp/src/test/resources/data/freemind/bug.mmr b/wise-webapp/src/test/resources/data/freemind/bug.mmr index 5db609c0..8205c1b2 100644 --- a/wise-webapp/src/test/resources/data/freemind/bug.mmr +++ b/wise-webapp/src/test/resources/data/freemind/bug.mmr @@ -1,4 +1,4 @@ - + diff --git a/wise-webapp/src/test/resources/data/freemind/fonts.mmr b/wise-webapp/src/test/resources/data/freemind/fonts.mmr index 4cf95c17..322cf14c 100644 --- a/wise-webapp/src/test/resources/data/freemind/fonts.mmr +++ b/wise-webapp/src/test/resources/data/freemind/fonts.mmr @@ -1,4 +1,4 @@ - + diff --git a/wise-webapp/src/test/resources/data/freemind/i18n.mmr b/wise-webapp/src/test/resources/data/freemind/i18n.mmr index b2554408..e7568786 100644 --- a/wise-webapp/src/test/resources/data/freemind/i18n.mmr +++ b/wise-webapp/src/test/resources/data/freemind/i18n.mmr @@ -1,4 +1,4 @@ - + diff --git a/wise-webapp/src/test/resources/data/freemind/i18n2.mmr b/wise-webapp/src/test/resources/data/freemind/i18n2.mmr index b117ad96..ee6c0c6a 100644 --- a/wise-webapp/src/test/resources/data/freemind/i18n2.mmr +++ b/wise-webapp/src/test/resources/data/freemind/i18n2.mmr @@ -1,4 +1,4 @@ - + diff --git a/wise-webapp/src/test/resources/data/freemind/icons.mmr b/wise-webapp/src/test/resources/data/freemind/icons.mmr index b54fecca..affabc89 100644 --- a/wise-webapp/src/test/resources/data/freemind/icons.mmr +++ b/wise-webapp/src/test/resources/data/freemind/icons.mmr @@ -1,4 +1,4 @@ - + diff --git a/wise-webapp/src/test/resources/data/freemind/links.mmr b/wise-webapp/src/test/resources/data/freemind/links.mmr index 802893f3..1bda1d78 100644 --- a/wise-webapp/src/test/resources/data/freemind/links.mmr +++ b/wise-webapp/src/test/resources/data/freemind/links.mmr @@ -1,4 +1,4 @@ - + diff --git a/wise-webapp/src/test/resources/data/freemind/longnodes.mmr b/wise-webapp/src/test/resources/data/freemind/longnodes.mmr index 35d1bc02..27479942 100644 --- a/wise-webapp/src/test/resources/data/freemind/longnodes.mmr +++ b/wise-webapp/src/test/resources/data/freemind/longnodes.mmr @@ -1,4 +1,4 @@ - + diff --git a/wise-webapp/src/test/resources/data/freemind/node-styles.mmr b/wise-webapp/src/test/resources/data/freemind/node-styles.mmr index 4d3443e8..2b4b05b5 100644 --- a/wise-webapp/src/test/resources/data/freemind/node-styles.mmr +++ b/wise-webapp/src/test/resources/data/freemind/node-styles.mmr @@ -1,19 +1,5 @@ - + - - - - - - - - - - - - - - @@ -28,6 +14,20 @@ + + + + + + + + + + + + + + diff --git a/wise-webapp/src/test/resources/data/freemind/note.mmr b/wise-webapp/src/test/resources/data/freemind/note.mmr index c454b12b..f64a7462 100644 --- a/wise-webapp/src/test/resources/data/freemind/note.mmr +++ b/wise-webapp/src/test/resources/data/freemind/note.mmr @@ -1,4 +1,4 @@ - + diff --git a/wise-webapp/src/test/resources/data/freemind/numerosity.mmr b/wise-webapp/src/test/resources/data/freemind/numerosity.mmr index ebb3ef18..c9a8053f 100644 --- a/wise-webapp/src/test/resources/data/freemind/numerosity.mmr +++ b/wise-webapp/src/test/resources/data/freemind/numerosity.mmr @@ -1,5 +1,14 @@ - + + + + + + + + + + @@ -54,15 +63,6 @@ - - - - - - - - - diff --git a/wise-webapp/src/test/resources/data/freemind/numerosity.wxml b/wise-webapp/src/test/resources/data/freemind/numerosity.wxml index 1a3cec59..89575035 100644 --- a/wise-webapp/src/test/resources/data/freemind/numerosity.wxml +++ b/wise-webapp/src/test/resources/data/freemind/numerosity.wxml @@ -189,5 +189,5 @@ - + diff --git a/wise-webapp/src/test/resources/data/freemind/process.mmr b/wise-webapp/src/test/resources/data/freemind/process.mmr index df1532ed..b474b57a 100644 --- a/wise-webapp/src/test/resources/data/freemind/process.mmr +++ b/wise-webapp/src/test/resources/data/freemind/process.mmr @@ -1,4 +1,4 @@ - + @@ -8,28 +8,6 @@ - - - - - - - - - - - - - - - - - - - - - - @@ -58,12 +36,30 @@ - - - - + + + + + + + + + + + + + + + + + + + + + + @@ -96,5 +92,9 @@ + + + + \ No newline at end of file diff --git a/wise-webapp/src/test/resources/data/freemind/process.wxml b/wise-webapp/src/test/resources/data/freemind/process.wxml index 65e426bd..c144d009 100644 --- a/wise-webapp/src/test/resources/data/freemind/process.wxml +++ b/wise-webapp/src/test/resources/data/freemind/process.wxml @@ -220,6 +220,6 @@ - - + + diff --git a/wise-webapp/src/test/resources/data/freemind/richtextnode.mmr b/wise-webapp/src/test/resources/data/freemind/richtextnode.mmr index 1d3704cb..52a48183 100644 --- a/wise-webapp/src/test/resources/data/freemind/richtextnode.mmr +++ b/wise-webapp/src/test/resources/data/freemind/richtextnode.mmr @@ -1,4 +1,4 @@ - + From cb80d5e976c87053638bd65f96d282c7b1e136e9 Mon Sep 17 00:00:00 2001 From: Claudio Barril Date: Sun, 7 Sep 2014 21:02:04 -0300 Subject: [PATCH 50/57] add test for version comparison --- .../test/importer/VersionComparisonTest.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 wise-webapp/src/test/java/com/wisemapping/test/importer/VersionComparisonTest.java diff --git a/wise-webapp/src/test/java/com/wisemapping/test/importer/VersionComparisonTest.java b/wise-webapp/src/test/java/com/wisemapping/test/importer/VersionComparisonTest.java new file mode 100644 index 00000000..0b6ce88d --- /dev/null +++ b/wise-webapp/src/test/java/com/wisemapping/test/importer/VersionComparisonTest.java @@ -0,0 +1,27 @@ +package com.wisemapping.test.importer; + +import com.wisemapping.importer.ImporterException; +import com.wisemapping.importer.VersionNumber; +import org.testng.Assert; +import org.testng.annotations.Test; + +@Test +public class VersionComparisonTest { + + @Test + public void testVersionComparison() throws ImporterException { + + final VersionNumber greatest = new VersionNumber("1.0.1"); + final VersionNumber smaller = new VersionNumber("0.9.0"); + final VersionNumber intermediate = new VersionNumber("1.0.0"); + + Assert.assertTrue(smaller.isSmallerThan(intermediate)); + Assert.assertFalse(greatest.isSmallerThan(intermediate)); + Assert.assertTrue(greatest.isGreaterThan(smaller)); + Assert.assertFalse(intermediate.isGreaterThan(greatest)); + Assert.assertTrue(intermediate.equals(intermediate)); + Assert.assertFalse(greatest.equals(smaller)); + + } + +} From eadea5e442ef6a21979b761be4007f99606660c5 Mon Sep 17 00:00:00 2001 From: Claudio Barril Date: Sun, 7 Sep 2014 23:15:27 -0300 Subject: [PATCH 51/57] freemind constant --- .../wisemapping/exporter/ExporterFactory.java | 3 +- .../exporter/FreemindExporter.java | 24 ++++--- .../importer/freemind/FreemindConstant.java | 34 ++++++++++ .../importer/freemind/FreemindImporter.java | 65 +++++++------------ 4 files changed, 72 insertions(+), 54 deletions(-) create mode 100644 wise-webapp/src/main/java/com/wisemapping/importer/freemind/FreemindConstant.java diff --git a/wise-webapp/src/main/java/com/wisemapping/exporter/ExporterFactory.java b/wise-webapp/src/main/java/com/wisemapping/exporter/ExporterFactory.java index bcbb5880..716dc2bf 100644 --- a/wise-webapp/src/main/java/com/wisemapping/exporter/ExporterFactory.java +++ b/wise-webapp/src/main/java/com/wisemapping/exporter/ExporterFactory.java @@ -18,6 +18,7 @@ package com.wisemapping.exporter; +import com.wisemapping.importer.VersionNumber; import org.apache.batik.parser.AWTTransformProducer; import org.apache.batik.parser.ParseException; import org.apache.batik.parser.TransformListParser; @@ -142,7 +143,7 @@ public class ExporterFactory { } case FREEMIND: { final FreemindExporter exporter = new FreemindExporter(); - exporter.setVersion(properties.getVersion()); + exporter.setVersion(new VersionNumber(properties.getVersion())); exporter.export(xml.getBytes(UTF_8_CHARSET_NAME), output); break; } diff --git a/wise-webapp/src/main/java/com/wisemapping/exporter/FreemindExporter.java b/wise-webapp/src/main/java/com/wisemapping/exporter/FreemindExporter.java index 30850b4c..47003c98 100755 --- a/wise-webapp/src/main/java/com/wisemapping/exporter/FreemindExporter.java +++ b/wise-webapp/src/main/java/com/wisemapping/exporter/FreemindExporter.java @@ -19,6 +19,8 @@ package com.wisemapping.exporter; +import com.wisemapping.importer.VersionNumber; +import com.wisemapping.importer.freemind.FreemindConstant; import com.wisemapping.importer.freemind.FreemindIconConverter; import com.wisemapping.jaxb.wisemap.Note; import com.wisemapping.model.Mindmap; @@ -50,12 +52,10 @@ import java.util.Map; public class FreemindExporter implements Exporter { - private static final String POSITION_LEFT = "left"; - private static final String POSITION_RIGHT = "right"; + private com.wisemapping.jaxb.freemind.ObjectFactory objectFactory; - private static final String EMPTY_FONT_STYLE = ";;;;;"; private Map nodesMap = null; - private String version = "1.0.1"; + private VersionNumber version = FreemindConstant.SUPPORTED_FREEMIND_VERSION; public void export(Mindmap map, OutputStream outputStream) throws ExportException { export(map.getUnzipXml(), outputStream); @@ -72,7 +72,7 @@ public class FreemindExporter mindmapMap = (com.wisemapping.jaxb.wisemap.Map) JAXBUtils.getMapObject(stream, "com.wisemapping.jaxb.wisemap"); final com.wisemapping.jaxb.freemind.Map freemindMap = objectFactory.createMap(); - freemindMap.setVersion(this.getVersion()); + freemindMap.setVersion(this.getVersionNumber()); final List topics = mindmapMap.getTopic(); @@ -152,9 +152,9 @@ public class FreemindExporter if (position != null) { String xPos = position.split(",")[0]; int x = Integer.valueOf(xPos); - newNode.setPOSITION((x < 0 ? POSITION_LEFT : POSITION_RIGHT)); + newNode.setPOSITION((x < 0 ? FreemindConstant.POSITION_LEFT : FreemindConstant.POSITION_RIGHT)); } else { - newNode.setPOSITION(POSITION_LEFT); + newNode.setPOSITION(FreemindConstant.POSITION_LEFT); } } } @@ -279,7 +279,7 @@ public class FreemindExporter int countParts = part.length; boolean updated = false; - if (!fontStyle.endsWith(EMPTY_FONT_STYLE)) { + if (!fontStyle.endsWith(FreemindConstant.EMPTY_FONT_STYLE)) { int idx = 0; // Font name @@ -345,11 +345,15 @@ public class FreemindExporter } - public String getVersion() { + public VersionNumber getVersion() { return version; } - public void setVersion(String version) { + public void setVersion(VersionNumber version) { this.version = version; } + + public String getVersionNumber() { + return this.getVersion().getVersion(); + } } diff --git a/wise-webapp/src/main/java/com/wisemapping/importer/freemind/FreemindConstant.java b/wise-webapp/src/main/java/com/wisemapping/importer/freemind/FreemindConstant.java new file mode 100644 index 00000000..7c8f7d35 --- /dev/null +++ b/wise-webapp/src/main/java/com/wisemapping/importer/freemind/FreemindConstant.java @@ -0,0 +1,34 @@ +package com.wisemapping.importer.freemind; + +import com.wisemapping.importer.VersionNumber; + +import java.nio.charset.Charset; + +public interface FreemindConstant { + + public static final String LAST_SUPPORTED_FREEMIND_VERSION = "1.0.1"; + public static final VersionNumber SUPPORTED_FREEMIND_VERSION = new VersionNumber(LAST_SUPPORTED_FREEMIND_VERSION); + public static final String CODE_VERSION = "tango"; + + public static final int SECOND_LEVEL_TOPIC_HEIGHT = 25; + public static final int ROOT_LEVEL_TOPIC_HEIGHT = SECOND_LEVEL_TOPIC_HEIGHT; + public static final int CENTRAL_TO_TOPIC_DISTANCE = 200; + public static final int TOPIC_TO_TOPIC_DISTANCE = 90; + + public static final int FONT_SIZE_HUGE = 15; + public static final int FONT_SIZE_LARGE = 10; + public static final int FONT_SIZE_NORMAL = 8; + public static final int FONT_SIZE_SMALL = 6; + + public static final String NODE_TYPE = "NODE"; + public static final String BOLD = "bold"; + public static final String ITALIC = "italic"; + public static final String EMPTY_FONT_STYLE = ";;;;;"; + public static final String EMPTY_NOTE = ""; + + public static final String POSITION_LEFT = "left"; + public static final String POSITION_RIGHT = "right"; + + public final static Charset UTF_8_CHARSET = Charset.forName("UTF-8"); + +} diff --git a/wise-webapp/src/main/java/com/wisemapping/importer/freemind/FreemindImporter.java b/wise-webapp/src/main/java/com/wisemapping/importer/freemind/FreemindImporter.java index ce8a24cd..52af8997 100755 --- a/wise-webapp/src/main/java/com/wisemapping/importer/freemind/FreemindImporter.java +++ b/wise-webapp/src/main/java/com/wisemapping/importer/freemind/FreemindImporter.java @@ -44,38 +44,17 @@ import java.io.InputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.StringWriter; -import java.nio.charset.Charset; import java.util.*; import java.math.BigInteger; public class FreemindImporter implements Importer { - public static final String CODE_VERSION = "tango"; - public static final int SECOND_LEVEL_TOPIC_HEIGHT = 25; - public static final int ROOT_LEVEL_TOPIC_HEIGHT = SECOND_LEVEL_TOPIC_HEIGHT; - public static final int CENTRAL_TO_TOPIC_DISTANCE = 200; - public static final int TOPIC_TO_TOPIC_DISTANCE = 90; - public static final String NODE_TYPE = "NODE"; private com.wisemapping.jaxb.wisemap.ObjectFactory mindmapObjectFactory; - private static final String POSITION_LEFT = "left"; - private static final String POSITION_RIGHT = "right"; - private static final String BOLD = "bold"; - private static final String ITALIC = "italic"; - private static final String EMPTY_NOTE = ""; private java.util.Map nodesMap = null; private List relationships = null; - private static final String EMPTY_FONT_STYLE = ";;;;;"; - private final static Charset UTF_8_CHARSET = Charset.forName("UTF-8"); - private final static int ORDER_SEPARATION_FACTOR = 2; - private static final VersionNumber SUPPORTED_FREEMIND_VERSION = new VersionNumber("1.0.1"); - private int currentId; - private static final int FONT_SIZE_HUGE = 15; - private static final int FONT_SIZE_LARGE = 10; - public static final int FONT_SIZE_NORMAL = 8; - private static final int FONT_SIZE_SMALL = 6; public static void main(String argv[]) { @@ -120,7 +99,7 @@ public class FreemindImporter if (version != null) { final VersionNumber mapVersion = new VersionNumber(version); - if (mapVersion.isGreaterThan(SUPPORTED_FREEMIND_VERSION)) { + if (mapVersion.isGreaterThan(FreemindConstant.SUPPORTED_FREEMIND_VERSION)) { throw new ImporterException("FreeMind version " + mapVersion.getVersion() + " is not supported."); } } @@ -129,7 +108,7 @@ public class FreemindImporter final ByteArrayOutputStream baos = new ByteArrayOutputStream(); final com.wisemapping.jaxb.wisemap.Map mindmapMap = mindmapObjectFactory.createMap(); - mindmapMap.setVersion(CODE_VERSION); + mindmapMap.setVersion(FreemindConstant.CODE_VERSION); currentId = 0; final Node freeNode = freemindMap.getNode(); @@ -150,7 +129,7 @@ public class FreemindImporter addRelationships(mindmapMap); JAXBUtils.saveMap(mindmapMap, baos); - wiseXml = new String(baos.toByteArray(), UTF_8_CHARSET); + wiseXml = new String(baos.toByteArray(), FreemindConstant.UTF_8_CHARSET); result.setXmlStr(wiseXml); result.setTitle(mapName); result.setDescription(description); @@ -248,7 +227,7 @@ public class FreemindImporter if (depth != 1) { norder = order++; } else { - if (freeChild.getPOSITION() != null && freeChild.getPOSITION().equals(POSITION_LEFT)) { + if (freeChild.getPOSITION() != null && freeChild.getPOSITION().equals(FreemindConstant.POSITION_LEFT)) { norder = firstLevelLeftOrder; firstLevelLeftOrder = firstLevelLeftOrder + 2; } else { @@ -299,7 +278,7 @@ public class FreemindImporter String textNote = hook.getText(); if (textNote == null) // It is not a note is a BlinkingNodeHook or AutomaticLayout Hook { - textNote = EMPTY_NOTE; + textNote = FreemindConstant.EMPTY_NOTE; mindmapNote.setValue(textNote); currentWiseTopic.setNote(mindmapNote); } @@ -307,13 +286,13 @@ public class FreemindImporter final Richcontent content = (Richcontent) element; final String type = content.getTYPE(); - if (type.equals(NODE_TYPE)) { + if (type.equals(FreemindConstant.NODE_TYPE)) { String text = html2text(content); currentWiseTopic.setText(text); } else { String text = html2text(content); final com.wisemapping.jaxb.wisemap.Note mindmapNote = new com.wisemapping.jaxb.wisemap.Note(); - text = text != null ? text : EMPTY_NOTE; + text = text != null ? text : FreemindConstant.EMPTY_NOTE; mindmapNote.setValue(text); currentWiseTopic.setNote(mindmapNote); @@ -355,7 +334,7 @@ public class FreemindImporter int result = 0; String childSide = freeChild.getPOSITION(); if (childSide == null) { - childSide = POSITION_RIGHT; + childSide = FreemindConstant.POSITION_RIGHT; } // Count all the nodes of the same side ... @@ -365,7 +344,7 @@ public class FreemindImporter String side = node.getPOSITION(); if (side == null) { - side = POSITION_RIGHT; + side = FreemindConstant.POSITION_RIGHT; } if (childSide.equals(side)) { result++; @@ -390,11 +369,11 @@ public class FreemindImporter // Problem on setting X position: // Text Size is not taken into account ... - int x = CENTRAL_TO_TOPIC_DISTANCE + ((depth - 1) * TOPIC_TO_TOPIC_DISTANCE); + int x = FreemindConstant.CENTRAL_TO_TOPIC_DISTANCE + ((depth - 1) * FreemindConstant.TOPIC_TO_TOPIC_DISTANCE); if (depth == 1) { final String side = freeChild.getPOSITION(); - x = x * (side != null && POSITION_LEFT.equals(side) ? -1 : 1); + x = x * (side != null && FreemindConstant.POSITION_LEFT.equals(side) ? -1 : 1); } else { final Coord coord = Coord.parse(wiseParent.getPosition()); x = x * (coord.isOnLeftSide() ? -1 : 1); @@ -409,17 +388,17 @@ public class FreemindImporter // odd order numbers represent nodes at the left if (order % 2 == 0) { int multiplier = ((order + 1) - childrenCount) * 2; - y = multiplier * ROOT_LEVEL_TOPIC_HEIGHT; + y = multiplier * FreemindConstant.ROOT_LEVEL_TOPIC_HEIGHT; } else { int multiplier = (order - childrenCount) * 2; - y = multiplier * ROOT_LEVEL_TOPIC_HEIGHT; + y = multiplier * FreemindConstant.ROOT_LEVEL_TOPIC_HEIGHT; } } else { // Problem: What happen if the node is more tall than what is defined here. Coord coord = Coord.parse(wiseParent.getPosition()); int parentY = coord.y; - y = parentY - ((childrenCount / 2) * SECOND_LEVEL_TOPIC_HEIGHT - (order * SECOND_LEVEL_TOPIC_HEIGHT)); + y = parentY - ((childrenCount / 2) * FreemindConstant.SECOND_LEVEL_TOPIC_HEIGHT - (order * FreemindConstant.SECOND_LEVEL_TOPIC_HEIGHT)); } @@ -551,14 +530,14 @@ public class FreemindImporter // 10 Large // 15 Huge if (font != null) { - final int fontSize = ((font.getSIZE() == null || font.getSIZE().intValue() < 8) ? BigInteger.valueOf(FONT_SIZE_NORMAL) : font.getSIZE()).intValue(); - int wiseFontSize = FONT_SIZE_SMALL; + final int fontSize = ((font.getSIZE() == null || font.getSIZE().intValue() < 8) ? BigInteger.valueOf(FreemindConstant.FONT_SIZE_NORMAL) : font.getSIZE()).intValue(); + int wiseFontSize = FreemindConstant.FONT_SIZE_SMALL; if (fontSize >= 24) { - wiseFontSize = FONT_SIZE_HUGE; + wiseFontSize = FreemindConstant.FONT_SIZE_HUGE; } else if (fontSize >= 16) { - wiseFontSize = FONT_SIZE_LARGE; + wiseFontSize = FreemindConstant.FONT_SIZE_LARGE; } else if (fontSize >= 12) { - wiseFontSize = FONT_SIZE_NORMAL; + wiseFontSize = FreemindConstant.FONT_SIZE_NORMAL; } fontStyle.append(wiseFontSize); @@ -575,19 +554,19 @@ public class FreemindImporter // Bold ... if (font != null) { boolean hasBold = Boolean.parseBoolean(font.getBOLD()); - fontStyle.append(hasBold ? BOLD : ""); + fontStyle.append(hasBold ? FreemindConstant.BOLD : ""); } fontStyle.append(";"); // Italic ... if (font != null) { boolean hasItalic = Boolean.parseBoolean(font.getITALIC()); - fontStyle.append(hasItalic ? ITALIC : ""); + fontStyle.append(hasItalic ? FreemindConstant.ITALIC : ""); } fontStyle.append(";"); final String result = fontStyle.toString(); - return result.equals(EMPTY_FONT_STYLE) ? null : result; + return result.equals(FreemindConstant.EMPTY_FONT_STYLE) ? null : result; } private From 0447cb995f65172c35bfb200104e4b09f4e5d3b8 Mon Sep 17 00:00:00 2001 From: Claudio Barril Date: Sun, 7 Sep 2014 23:15:48 -0300 Subject: [PATCH 52/57] fix nomenclature test name --- .../com/wisemapping/test/importer/VersionComparisonTest.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/wise-webapp/src/test/java/com/wisemapping/test/importer/VersionComparisonTest.java b/wise-webapp/src/test/java/com/wisemapping/test/importer/VersionComparisonTest.java index 0b6ce88d..8a9b89d8 100644 --- a/wise-webapp/src/test/java/com/wisemapping/test/importer/VersionComparisonTest.java +++ b/wise-webapp/src/test/java/com/wisemapping/test/importer/VersionComparisonTest.java @@ -9,7 +9,7 @@ import org.testng.annotations.Test; public class VersionComparisonTest { @Test - public void testVersionComparison() throws ImporterException { + public void compareVersionTest() throws ImporterException { final VersionNumber greatest = new VersionNumber("1.0.1"); final VersionNumber smaller = new VersionNumber("0.9.0"); @@ -17,8 +17,10 @@ public class VersionComparisonTest { Assert.assertTrue(smaller.isSmallerThan(intermediate)); Assert.assertFalse(greatest.isSmallerThan(intermediate)); + Assert.assertTrue(greatest.isGreaterThan(smaller)); Assert.assertFalse(intermediate.isGreaterThan(greatest)); + Assert.assertTrue(intermediate.equals(intermediate)); Assert.assertFalse(greatest.equals(smaller)); From b66d15e51f87071665165674c87bee522b525249 Mon Sep 17 00:00:00 2001 From: Claudio Barril Date: Sun, 7 Sep 2014 23:16:00 -0300 Subject: [PATCH 53/57] add default to import error manager --- wise-webapp/src/main/webapp/jsp/mindmapImport.jsp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/wise-webapp/src/main/webapp/jsp/mindmapImport.jsp b/wise-webapp/src/main/webapp/jsp/mindmapImport.jsp index 1802eee9..ff0d6846 100644 --- a/wise-webapp/src/main/webapp/jsp/mindmapImport.jsp +++ b/wise-webapp/src/main/webapp/jsp/mindmapImport.jsp @@ -96,7 +96,8 @@ contentType:contentType, statusCode: { 201: onSuccess, - 400: onError + 400: onError, + default: onError } }); event.preventDefault(); From 77a087277ae767091c34119ae33369af65e33b2f Mon Sep 17 00:00:00 2001 From: Claudio Barril Date: Mon, 8 Sep 2014 14:36:49 -0300 Subject: [PATCH 54/57] fix exporter to freemind issues (shape, font styles and font sizes) --- .../exporter/FreemindExporter.java | 35 +- .../com/wisemapping/model/ShapeStyle.java | 14 +- .../src/test/resources/data/export/bigmap.mm | 384 ++++++------- .../src/test/resources/data/export/bug2.mm | 56 +- .../src/test/resources/data/export/bug2.mmap | 2 +- .../src/test/resources/data/export/bug3.mm | 514 +++++++++--------- .../src/test/resources/data/export/bug3.mmap | 2 +- .../src/test/resources/data/export/complex.mm | 52 +- .../test/resources/data/export/complex.mmap | 2 +- .../test/resources/data/export/emptyNodes.mm | 16 +- .../resources/data/export/emptyNodes.mmap | 2 +- .../src/test/resources/data/export/enc.mm | 42 +- .../src/test/resources/data/export/huge.mm | 398 +++++++------- .../src/test/resources/data/export/huge.mmap | 2 +- .../src/test/resources/data/export/issue.mm | 12 +- .../src/test/resources/data/export/issue.mmap | 2 +- .../src/test/resources/data/export/sample2.mm | 28 +- .../test/resources/data/export/sample2.mmap | 2 +- .../src/test/resources/data/export/sample3.mm | 2 +- .../test/resources/data/export/sample3.mmap | 2 +- .../src/test/resources/data/export/sample4.mm | 2 +- .../test/resources/data/export/sample4.mmap | 2 +- .../test/resources/data/export/simple-maps.mm | 251 ++------- .../resources/data/export/simple-maps.mmap | 2 +- .../resources/data/export/welcome-reloaded.mm | 61 +-- .../data/export/welcome-reloaded.mmap | 2 +- .../src/test/resources/data/export/welcome.mm | 61 +-- .../test/resources/data/export/welcome.mmap | 2 +- .../resources/data/freemind/node-styles.mmr | 4 - 29 files changed, 890 insertions(+), 1066 deletions(-) diff --git a/wise-webapp/src/main/java/com/wisemapping/exporter/FreemindExporter.java b/wise-webapp/src/main/java/com/wisemapping/exporter/FreemindExporter.java index 47003c98..fdb8cfcc 100755 --- a/wise-webapp/src/main/java/com/wisemapping/exporter/FreemindExporter.java +++ b/wise-webapp/src/main/java/com/wisemapping/exporter/FreemindExporter.java @@ -177,17 +177,23 @@ public class FreemindExporter } } - freemindNode.setBACKGROUNDCOLOR(mindmapTopic.getBgColor()); + String wiseShape = mindmapTopic.getShape(); + if (wiseShape != null && !ShapeStyle.LINE.equals(ShapeStyle.fromValue(wiseShape))) { + freemindNode.setBACKGROUNDCOLOR(mindmapTopic.getBgColor()); + } final String shape = mindmapTopic.getShape(); if (shape != null && !shape.isEmpty()) { if (isRoot && !ShapeStyle.ROUNDED_RECTANGLE.getStyle().endsWith(shape) || !isRoot && !ShapeStyle.LINE.getStyle().endsWith(shape)) { String style = shape; - if (ShapeStyle.ROUNDED_RECTANGLE.getStyle().equals(shape)) { + if (ShapeStyle.ROUNDED_RECTANGLE.getStyle().equals(shape) || ShapeStyle.ELLIPSE.getStyle().equals(shape)) { style = "bubble"; } freemindNode.setSTYLE(style); } + } else if (!isRoot) { + String style = "fork"; + freemindNode.setSTYLE(style); } addIconNode(freemindNode, mindmapTopic); @@ -277,7 +283,7 @@ public class FreemindExporter final Font font = objectFactory.createFont(); final String[] part = fontStyle.split(";", 6); int countParts = part.length; - boolean updated = false; + boolean fontNodeNeeded = false; if (!fontStyle.endsWith(FreemindConstant.EMPTY_FONT_STYLE)) { int idx = 0; @@ -285,7 +291,7 @@ public class FreemindExporter // Font name if (idx < countParts && part[idx].length() != 0) { font.setNAME(part[idx]); - updated = true; + fontNodeNeeded = true; } idx++; @@ -293,11 +299,11 @@ public class FreemindExporter if (idx < countParts && part[idx].length() != 0) { final String size = part[idx]; if (size != null && !size.isEmpty()) { - int freeSize = Integer.parseInt(size); - Integer fsize = wiseToFreeFontSize.get(freeSize); - if(fsize!=null){ - font.setSIZE(BigInteger.valueOf(fsize)); - updated = true; + int wiseSize = Integer.parseInt(size); + Integer freeSize = wiseToFreeFontSize.get(wiseSize); + if(freeSize!=null){ + font.setSIZE(BigInteger.valueOf(freeSize)); + fontNodeNeeded = true; } } } @@ -306,23 +312,26 @@ public class FreemindExporter // Font Color if (idx < countParts && part[idx].length() != 0) { freemindNode.setCOLOR(part[idx]); - updated = true; } idx++; // Font Styles if (idx < countParts && part[idx].length() != 0) { font.setBOLD(Boolean.TRUE.toString()); - updated = true; + fontNodeNeeded = true; } idx++; if (idx < countParts && part[idx].length() != 0) { font.setITALIC(Boolean.TRUE.toString()); - updated = true; + fontNodeNeeded = true; } - if (updated) { + if (fontNodeNeeded) { + // font size should be set if freemind node has font properties note + if (font.getSIZE() == null) { + font.setSIZE(BigInteger.valueOf(wiseToFreeFontSize.get(8))); + } freemindNode.getArrowlinkOrCloudOrEdge().add(font); } } diff --git a/wise-webapp/src/main/java/com/wisemapping/model/ShapeStyle.java b/wise-webapp/src/main/java/com/wisemapping/model/ShapeStyle.java index 0681807d..21afdaf2 100755 --- a/wise-webapp/src/main/java/com/wisemapping/model/ShapeStyle.java +++ b/wise-webapp/src/main/java/com/wisemapping/model/ShapeStyle.java @@ -23,7 +23,8 @@ public enum ShapeStyle LINE("line"), ROUNDED_RECTANGLE("rounded rectagle"), RECTANGLE("rectagle"), - ELLIPSE("elipse"); + ELLIPSE("elipse"), + IMAGE("image"); private String style; @@ -35,5 +36,14 @@ public enum ShapeStyle public String getStyle() { return style; - } + } + + public static ShapeStyle fromValue(String value) { + for (ShapeStyle shapeStyle : ShapeStyle.values()) { + if (shapeStyle.getStyle().equals(value)) { + return shapeStyle; + } + } + throw new IllegalArgumentException("Shape value \"" + value + "\" doesn't match with a value shape style."); + } } diff --git a/wise-webapp/src/test/resources/data/export/bigmap.mm b/wise-webapp/src/test/resources/data/export/bigmap.mm index e71a3747..4ff96662 100644 --- a/wise-webapp/src/test/resources/data/export/bigmap.mm +++ b/wise-webapp/src/test/resources/data/export/bigmap.mm @@ -1,262 +1,262 @@ - - - - - + + + + + - - + + - - + + - - - + + + - - - - - - + + + + + + - - - - + + + + - - - - - + + + + + - + - - + + - - - + + + - - + + - - - - - - + + + + + + - - + + - - - - - - + + + + + + - - - - + + + + - - - - - + + + + + - - + + - - - - + + + + - + - - - - + + + + - - - + + + - - - - - + + + + + - + - - - - - + + + + + - - - + + + - - - + + + - - - - + + + + - - + + - - - + + + - - + + - - + + - - - + + + - - - + + + - + - - - - + + + + - - - + + + - + - - + + - - - - - - - + + + + + + + - - - - - - - - + + + + + + + + - - - + + + - - - - - + + + + + - - + + - - - - - - - + + + + + + + - - - - - - - - - + + + + + + + + + - - - - - + + + + + - - - - + + + + - - - - - - + + + + + + - - - - + + + + - + - - - - - - + + + + + + - - + + - - - + + + - + diff --git a/wise-webapp/src/test/resources/data/export/bug2.mm b/wise-webapp/src/test/resources/data/export/bug2.mm index 71f38497..84123d89 100644 --- a/wise-webapp/src/test/resources/data/export/bug2.mm +++ b/wise-webapp/src/test/resources/data/export/bug2.mm @@ -15,37 +15,37 @@ - - - - + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - + + + - - - - - - + + + + + + \ No newline at end of file diff --git a/wise-webapp/src/test/resources/data/export/bug2.mmap b/wise-webapp/src/test/resources/data/export/bug2.mmap index da9894a1..dbcc59f6 100644 --- a/wise-webapp/src/test/resources/data/export/bug2.mmap +++ b/wise-webapp/src/test/resources/data/export/bug2.mmap @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/wise-webapp/src/test/resources/data/export/bug3.mm b/wise-webapp/src/test/resources/data/export/bug3.mm index a8772d63..dea90ba9 100644 --- a/wise-webapp/src/test/resources/data/export/bug3.mm +++ b/wise-webapp/src/test/resources/data/export/bug3.mm @@ -12,7 +12,7 @@ - + @@ -22,12 +22,12 @@ - + - - - + + + @@ -42,9 +42,9 @@ - - - + + + @@ -56,7 +56,7 @@ - + @@ -67,7 +67,7 @@ - + @@ -79,7 +79,7 @@ - + @@ -91,13 +91,13 @@ - + - + - + @@ -109,7 +109,7 @@ - + @@ -121,7 +121,7 @@ - + @@ -133,17 +133,17 @@ - + - - + + - + - + @@ -168,37 +168,37 @@ - - - + + + - - + + - + - - + + - - + + - - + + - - - - + + + + - - + + @@ -207,11 +207,11 @@ - + - + @@ -221,8 +221,8 @@ - - + + @@ -231,12 +231,12 @@ - + - - + + @@ -247,10 +247,10 @@ - + - + @@ -261,7 +261,7 @@ - + @@ -272,16 +272,16 @@ - + - - + + - - + + @@ -291,34 +291,34 @@ - + - - + + - - - + + + - - - - - - - + + + + + + + - - - + + + - - + + @@ -328,17 +328,17 @@ - - - + + + - - - - - - + + + + + + @@ -348,12 +348,12 @@ - - - + + + - - + + @@ -364,7 +364,7 @@ - + @@ -376,7 +376,7 @@ - + @@ -389,10 +389,10 @@ - + - - + + @@ -402,7 +402,7 @@ - + @@ -412,7 +412,7 @@ - + @@ -423,9 +423,9 @@ - - - + + + @@ -435,7 +435,7 @@ - + @@ -445,7 +445,7 @@ - + @@ -456,7 +456,7 @@ - + @@ -467,10 +467,10 @@ - + - - + + @@ -480,7 +480,7 @@ - + @@ -491,10 +491,10 @@ - + - + @@ -505,9 +505,9 @@ - - - + + + @@ -519,14 +519,14 @@ - + - - - - + + + + @@ -536,22 +536,22 @@ - - - - - - + + + + + + - - + + - - + + @@ -561,7 +561,7 @@ - + @@ -571,11 +571,11 @@ - + - - - + + + @@ -586,9 +586,9 @@ - - - + + + @@ -600,15 +600,15 @@ - + - - - + + + - - + + @@ -619,8 +619,8 @@ - - + + @@ -633,10 +633,10 @@ - - - - + + + + @@ -649,16 +649,16 @@ - - - - + + + + - - - - - + + + + + @@ -670,10 +670,10 @@ - + - - + + @@ -684,9 +684,9 @@ - - - + + + @@ -698,8 +698,8 @@ - - + + @@ -711,9 +711,9 @@ - - - + + + @@ -725,8 +725,8 @@ - - + + @@ -737,12 +737,12 @@ - + - - + + @@ -752,7 +752,7 @@ - + @@ -762,18 +762,18 @@ - - + + - - - - - - - + + + + + + + - + @@ -790,10 +790,10 @@
    - - - - + + + + @@ -804,8 +804,8 @@ - - + + @@ -817,7 +817,7 @@ - + @@ -829,15 +829,15 @@ - - - - - + + + + + - - - + + + @@ -849,8 +849,8 @@ - - + + @@ -863,7 +863,7 @@ - + @@ -876,15 +876,15 @@ - - - - - + + + + + - + @@ -894,44 +894,44 @@ - + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - - + + - - + + @@ -943,7 +943,7 @@ - + @@ -960,8 +960,8 @@ - - + + @@ -978,15 +978,15 @@ - - - - + + + + - - - + + + @@ -997,31 +997,31 @@ - - - - - - + + + + + + - - - + + + - - - - - - + + + + + + - - - - - - + + + + + + @@ -1036,7 +1036,7 @@ - + diff --git a/wise-webapp/src/test/resources/data/export/bug3.mmap b/wise-webapp/src/test/resources/data/export/bug3.mmap index ad8f1e32..eb77f270 100644 --- a/wise-webapp/src/test/resources/data/export/bug3.mmap +++ b/wise-webapp/src/test/resources/data/export/bug3.mmap @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/wise-webapp/src/test/resources/data/export/complex.mm b/wise-webapp/src/test/resources/data/export/complex.mm index 4596ea5b..590d1a4d 100644 --- a/wise-webapp/src/test/resources/data/export/complex.mm +++ b/wise-webapp/src/test/resources/data/export/complex.mm @@ -1,31 +1,31 @@ - - - + + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + @@ -35,16 +35,16 @@ - - + + - - + + - - - - + + + + \ No newline at end of file diff --git a/wise-webapp/src/test/resources/data/export/complex.mmap b/wise-webapp/src/test/resources/data/export/complex.mmap index f10f67d4..b4a150bb 100644 --- a/wise-webapp/src/test/resources/data/export/complex.mmap +++ b/wise-webapp/src/test/resources/data/export/complex.mmap @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/wise-webapp/src/test/resources/data/export/emptyNodes.mm b/wise-webapp/src/test/resources/data/export/emptyNodes.mm index 360319b8..e4555e96 100644 --- a/wise-webapp/src/test/resources/data/export/emptyNodes.mm +++ b/wise-webapp/src/test/resources/data/export/emptyNodes.mm @@ -1,6 +1,6 @@ - + @@ -12,26 +12,26 @@ - + - + - + - + - + - + @@ -77,7 +77,7 @@ - + diff --git a/wise-webapp/src/test/resources/data/export/emptyNodes.mmap b/wise-webapp/src/test/resources/data/export/emptyNodes.mmap index 7c036bc8..bc726d3f 100644 --- a/wise-webapp/src/test/resources/data/export/emptyNodes.mmap +++ b/wise-webapp/src/test/resources/data/export/emptyNodes.mmap @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/wise-webapp/src/test/resources/data/export/enc.mm b/wise-webapp/src/test/resources/data/export/enc.mm index f9905de3..093ba773 100644 --- a/wise-webapp/src/test/resources/data/export/enc.mm +++ b/wise-webapp/src/test/resources/data/export/enc.mm @@ -1,17 +1,15 @@ - - - + + - - - + + @@ -28,7 +26,7 @@ - + @@ -42,7 +40,7 @@ - + @@ -60,7 +58,7 @@ - + @@ -73,7 +71,7 @@ - + @@ -87,7 +85,7 @@ - + @@ -106,7 +104,7 @@ - + @@ -141,7 +139,7 @@ - + @@ -154,7 +152,7 @@ - + @@ -184,7 +182,7 @@ - + @@ -202,7 +200,7 @@ - + @@ -215,7 +213,7 @@ - + @@ -237,10 +235,10 @@ - - - - + + + + @@ -264,7 +262,7 @@ - + diff --git a/wise-webapp/src/test/resources/data/export/huge.mm b/wise-webapp/src/test/resources/data/export/huge.mm index 3cae7313..b926d2c9 100644 --- a/wise-webapp/src/test/resources/data/export/huge.mm +++ b/wise-webapp/src/test/resources/data/export/huge.mm @@ -10,56 +10,56 @@ - - - - - + + + + + - - - + + + - - - + + + - - - - - + + + + + - - - - - - + + + + + + - - + + - - - + + + - - - - + + + + - - + + - - + + - + @@ -69,17 +69,17 @@ - - - + + + - - + + - - + + @@ -88,25 +88,25 @@ - - - - + + + + - - + + - - + + - - - - + + + + - + @@ -115,32 +115,32 @@ - - - - - + + + + + - - - - + + + + - - - - + + + + - - - + + + - - - - + + + + @@ -153,15 +153,15 @@ - - - - - - - + + + + + + + - + @@ -171,37 +171,37 @@ - - - - - - - - - - + + + + + + + + + + - - - - - + + + + + - - - - - - + + + + + + - - - + + + @@ -211,8 +211,8 @@ - - + + @@ -222,24 +222,24 @@ - + - + - - - - - - - + + + + + + + - - + + - + @@ -248,33 +248,33 @@ - - - - - + + + + + - - - - - - + + + + + + - + - - - - - - + + + + + + - + @@ -283,86 +283,86 @@ - - - + + + - - - - - - + + + + + + - - + + - - - - + + + + - - + + - - - + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - + + - - - - - + + + + + - - - + + + - - + + - - - - - - + + + + + + - - - - - + + + + + - - + + diff --git a/wise-webapp/src/test/resources/data/export/huge.mmap b/wise-webapp/src/test/resources/data/export/huge.mmap index c7331eb8..8dee81ea 100644 --- a/wise-webapp/src/test/resources/data/export/huge.mmap +++ b/wise-webapp/src/test/resources/data/export/huge.mmap @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/wise-webapp/src/test/resources/data/export/issue.mm b/wise-webapp/src/test/resources/data/export/issue.mm index 82100f5f..93dfc107 100644 --- a/wise-webapp/src/test/resources/data/export/issue.mm +++ b/wise-webapp/src/test/resources/data/export/issue.mm @@ -152,12 +152,12 @@ - + - + - + @@ -168,13 +168,13 @@ - + - + - + diff --git a/wise-webapp/src/test/resources/data/export/issue.mmap b/wise-webapp/src/test/resources/data/export/issue.mmap index 04b5e7a0..2cc883cb 100644 --- a/wise-webapp/src/test/resources/data/export/issue.mmap +++ b/wise-webapp/src/test/resources/data/export/issue.mmap @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/wise-webapp/src/test/resources/data/export/sample2.mm b/wise-webapp/src/test/resources/data/export/sample2.mm index 25f7f19a..39cb44d5 100644 --- a/wise-webapp/src/test/resources/data/export/sample2.mm +++ b/wise-webapp/src/test/resources/data/export/sample2.mm @@ -1,5 +1,5 @@ - + @@ -9,26 +9,26 @@ - + - - + + - - - - - + + + + + - - - + + + - - + + \ No newline at end of file diff --git a/wise-webapp/src/test/resources/data/export/sample2.mmap b/wise-webapp/src/test/resources/data/export/sample2.mmap index 1581c31b..aff92ba2 100644 --- a/wise-webapp/src/test/resources/data/export/sample2.mmap +++ b/wise-webapp/src/test/resources/data/export/sample2.mmap @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/wise-webapp/src/test/resources/data/export/sample3.mm b/wise-webapp/src/test/resources/data/export/sample3.mm index 0c9b63e8..a91075fc 100644 --- a/wise-webapp/src/test/resources/data/export/sample3.mm +++ b/wise-webapp/src/test/resources/data/export/sample3.mm @@ -1,3 +1,3 @@ - + \ No newline at end of file diff --git a/wise-webapp/src/test/resources/data/export/sample3.mmap b/wise-webapp/src/test/resources/data/export/sample3.mmap index 20ca80b6..f54f1c3f 100644 --- a/wise-webapp/src/test/resources/data/export/sample3.mmap +++ b/wise-webapp/src/test/resources/data/export/sample3.mmap @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/wise-webapp/src/test/resources/data/export/sample4.mm b/wise-webapp/src/test/resources/data/export/sample4.mm index 0c9b63e8..a91075fc 100644 --- a/wise-webapp/src/test/resources/data/export/sample4.mm +++ b/wise-webapp/src/test/resources/data/export/sample4.mm @@ -1,3 +1,3 @@ - + \ No newline at end of file diff --git a/wise-webapp/src/test/resources/data/export/sample4.mmap b/wise-webapp/src/test/resources/data/export/sample4.mmap index 20ca80b6..f54f1c3f 100644 --- a/wise-webapp/src/test/resources/data/export/sample4.mmap +++ b/wise-webapp/src/test/resources/data/export/sample4.mmap @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/wise-webapp/src/test/resources/data/export/simple-maps.mm b/wise-webapp/src/test/resources/data/export/simple-maps.mm index afe8b82a..85d50baf 100644 --- a/wise-webapp/src/test/resources/data/export/simple-maps.mm +++ b/wise-webapp/src/test/resources/data/export/simple-maps.mm @@ -3,211 +3,164 @@ - + - + - - + - - + - - - - - - + - - - - + - - - - + - - - + - - - - - - + - - + - - + - - - - - - - - - - - - - + - - - - - - + - - - - - - - - @@ -215,128 +168,99 @@ - - + - - - - - - - - - - - + + - - - - + - - - - - - - - - - - - - + - - - - @@ -346,71 +270,55 @@ - - - - + - - + - - + - - - + - - - + - - - - - - - @@ -418,53 +326,41 @@ - - + - - + - - - - - - - - - - @@ -472,75 +368,57 @@ - - + - - - - - - - - - - - - + - - - - - + - - @@ -551,121 +429,91 @@ - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - @@ -675,88 +523,67 @@ - - - - + + + - - - - - - - + - - - - - - - - - - - - - - @@ -764,32 +591,26 @@ - - + + - - + - - - - - diff --git a/wise-webapp/src/test/resources/data/export/simple-maps.mmap b/wise-webapp/src/test/resources/data/export/simple-maps.mmap index 8df87322..f3c98ad2 100644 --- a/wise-webapp/src/test/resources/data/export/simple-maps.mmap +++ b/wise-webapp/src/test/resources/data/export/simple-maps.mmap @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/wise-webapp/src/test/resources/data/export/welcome-reloaded.mm b/wise-webapp/src/test/resources/data/export/welcome-reloaded.mm index a61d61ef..c7e9b4b7 100644 --- a/wise-webapp/src/test/resources/data/export/welcome-reloaded.mm +++ b/wise-webapp/src/test/resources/data/export/welcome-reloaded.mm @@ -1,56 +1,51 @@ - - - - + + - - + + - - + + - - + + - + - - + - - + + - - - - - - + + + + + - - - - + + + - - + + - - + + - - + + - + - + diff --git a/wise-webapp/src/test/resources/data/export/welcome-reloaded.mmap b/wise-webapp/src/test/resources/data/export/welcome-reloaded.mmap index 1c1f8dae..29e68c32 100644 --- a/wise-webapp/src/test/resources/data/export/welcome-reloaded.mmap +++ b/wise-webapp/src/test/resources/data/export/welcome-reloaded.mmap @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/wise-webapp/src/test/resources/data/export/welcome.mm b/wise-webapp/src/test/resources/data/export/welcome.mm index f6db0f12..b74a8fe1 100644 --- a/wise-webapp/src/test/resources/data/export/welcome.mm +++ b/wise-webapp/src/test/resources/data/export/welcome.mm @@ -1,26 +1,23 @@ - - - - + + - - + + - - + + - - + + - + - - + - + @@ -33,18 +30,16 @@ - + - - - - - - + + + + + - - - + + @@ -54,23 +49,23 @@ - + - - + + - - + + - - + + - + - + diff --git a/wise-webapp/src/test/resources/data/export/welcome.mmap b/wise-webapp/src/test/resources/data/export/welcome.mmap index be0a721e..b46bc9a7 100644 --- a/wise-webapp/src/test/resources/data/export/welcome.mmap +++ b/wise-webapp/src/test/resources/data/export/welcome.mmap @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/wise-webapp/src/test/resources/data/freemind/node-styles.mmr b/wise-webapp/src/test/resources/data/freemind/node-styles.mmr index 2b4b05b5..c0a306de 100644 --- a/wise-webapp/src/test/resources/data/freemind/node-styles.mmr +++ b/wise-webapp/src/test/resources/data/freemind/node-styles.mmr @@ -30,19 +30,15 @@ - - - - From f30f8fb0f23c55c039840f899b5bcb3134e7d565 Mon Sep 17 00:00:00 2001 From: Ezequiel Bergamaschi Date: Fri, 12 Sep 2014 02:01:19 -0300 Subject: [PATCH 55/57] change thumbnails service due to service is down --- mindplot/src/main/javascript/widget/LinkIconTooltip.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mindplot/src/main/javascript/widget/LinkIconTooltip.js b/mindplot/src/main/javascript/widget/LinkIconTooltip.js index a96299da..5202100f 100644 --- a/mindplot/src/main/javascript/widget/LinkIconTooltip.js +++ b/mindplot/src/main/javascript/widget/LinkIconTooltip.js @@ -67,7 +67,7 @@ mindplot.widget.LinkIconTooltip = new Class({ }); var img = new Element('img', { - src:'http://immediatenet.com/t/m?Size=1024x768&URL=' + linkIcon.getModel().getUrl(), + src:'http://api.webthumbnail.org?width=250&height=250&screen=1024&url=' + linkIcon.getModel().getUrl(), img:linkIcon.getModel().getUrl(), alt:linkIcon.getModel().getUrl() } From 4d89851d1ae6783c87c41a1f88aa708b5105c7d9 Mon Sep 17 00:00:00 2001 From: Paulo Gustavo Veiga Date: Sun, 21 Sep 2014 22:19:21 -0300 Subject: [PATCH 56/57] Update release version to 3.0.4 snapshot --- core-js/pom.xml | 11 ++++++++++- mindplot/pom.xml | 2 +- pom.xml | 4 ++-- web2d/pom.xml | 2 +- wise-editor/pom.xml | 2 +- wise-webapp/pom.xml | 2 +- 6 files changed, 16 insertions(+), 7 deletions(-) diff --git a/core-js/pom.xml b/core-js/pom.xml index 826c747c..b1c70bec 100644 --- a/core-js/pom.xml +++ b/core-js/pom.xml @@ -9,8 +9,11 @@ org.wisemapping wisemapping ../pom.xml - 3.1-SNAPSHOT + 3.0.5-SNAPSHOT + + scm:git:git@bitbucket.org:wisemapping/wisemapping-open-source.git + @@ -32,6 +35,12 @@ + + org.apache.maven.plugins + maven-release-plugin + 2.5 + + net.alchim31.maven yuicompressor-maven-plugin diff --git a/mindplot/pom.xml b/mindplot/pom.xml index db8536b4..8e123711 100644 --- a/mindplot/pom.xml +++ b/mindplot/pom.xml @@ -9,7 +9,7 @@ org.wisemapping wisemapping ../pom.xml - 3.1-SNAPSHOT + 3.0.5-SNAPSHOT diff --git a/pom.xml b/pom.xml index bce1d823..1c365129 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ http://maven.apache.org/xsd/maven-4.0.0.xsd"> - 3.1-SNAPSHOT + 3.0.5-SNAPSHOT ${project.basedir}/wise-webapps @@ -12,7 +12,7 @@ org.wisemapping wisemapping WiseMapping Project - 3.1-SNAPSHOT + 3.0.5-SNAPSHOT pom diff --git a/web2d/pom.xml b/web2d/pom.xml index 8fe54faf..4cec1193 100644 --- a/web2d/pom.xml +++ b/web2d/pom.xml @@ -9,7 +9,7 @@ org.wisemapping wisemapping ../pom.xml - 3.1-SNAPSHOT + 3.0.5-SNAPSHOT diff --git a/wise-editor/pom.xml b/wise-editor/pom.xml index 9f6efa4f..de7a9128 100644 --- a/wise-editor/pom.xml +++ b/wise-editor/pom.xml @@ -9,7 +9,7 @@ org.wisemapping wisemapping ../pom.xml - 3.1-SNAPSHOT + 3.0.5-SNAPSHOT diff --git a/wise-webapp/pom.xml b/wise-webapp/pom.xml index a1f82b27..4da731e5 100644 --- a/wise-webapp/pom.xml +++ b/wise-webapp/pom.xml @@ -9,7 +9,7 @@ org.wisemapping wisemapping ../pom.xml - 3.1-SNAPSHOT + 3.0.5-SNAPSHOT From 09606bf820408a7780ea008420be6de011b6dade Mon Sep 17 00:00:00 2001 From: Ezequiel Bergamaschi Date: Thu, 25 Sep 2014 00:14:49 -0300 Subject: [PATCH 57/57] fix thumbnail service is down --- mindplot/src/main/javascript/widget/LinkIconTooltip.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mindplot/src/main/javascript/widget/LinkIconTooltip.js b/mindplot/src/main/javascript/widget/LinkIconTooltip.js index 5202100f..d1a01fca 100644 --- a/mindplot/src/main/javascript/widget/LinkIconTooltip.js +++ b/mindplot/src/main/javascript/widget/LinkIconTooltip.js @@ -67,7 +67,7 @@ mindplot.widget.LinkIconTooltip = new Class({ }); var img = new Element('img', { - src:'http://api.webthumbnail.org?width=250&height=250&screen=1024&url=' + linkIcon.getModel().getUrl(), + src:'https://api.thumbalizr.com/?url=' + linkIcon.getModel().getUrl() + '&width=250', img:linkIcon.getModel().getUrl(), alt:linkIcon.getModel().getUrl() }