diff --git a/manifest.webmanifest b/manifest.webmanifest
new file mode 100644
index 00000000..7e36c4ec
--- /dev/null
+++ b/manifest.webmanifest
@@ -0,0 +1,29 @@
+{
+ "lang": "en",
+ "name": "Examples of Syncfusion JavaScript (ES5) UI Controls",
+ "description": "Explore and learn JavaScript (ES5) UI controls library using large collection of feature-wise examples for each components.",
+ "short_name": "EJ2 Angular",
+ "icons": [{
+ "src": "favicon.ico",
+ "sizes": "64x64"
+ }, {
+ "src": "favicon.ico",
+ "sizes": "128x128"
+ }],
+ "scope": "/racer/",
+ "start_url": "index.html",
+ "display": "fullscreen",
+ "orientation": "portrait-primary",
+ "theme_color": "#FFFFFF",
+ "background_color": "#F8F8F8",
+ "serviceworker": {
+ "src": "sw.js",
+ "scope": "/racer/",
+ "update_via_cache": "none"
+ },
+ "related_applications": [{
+ "platform": "play",
+ "url": "https://play.google.com/store/apps/details?id=com.Syncfusion.ej2",
+ "id": "com.Syncfusion.ej2"
+ }]
+}
diff --git a/package-lock.json b/package-lock.json
deleted file mode 100644
index 03ac70cc..00000000
--- a/package-lock.json
+++ /dev/null
@@ -1,6582 +0,0 @@
-{
- "name": "@syncfusion/ej2-javascript-samples",
- "version": "16.4.52",
- "lockfileVersion": 1,
- "requires": true,
- "dependencies": {
- "@syncfusion/ej2": {
- "version": "16.1.25",
- "resolved": "https://registry.npmjs.org/@syncfusion/ej2/-/ej2-16.1.25.tgz",
- "integrity": "sha1-PD6W4TMNo/d0eAbx0wtgKOq2ztc=",
- "requires": {
- "@syncfusion/ej2-base": "^16.1.24",
- "@syncfusion/ej2-buttons": "^16.1.24",
- "@syncfusion/ej2-calendars": "^16.1.24",
- "@syncfusion/ej2-cards": "^16.1.24",
- "@syncfusion/ej2-charts": "^16.1.24",
- "@syncfusion/ej2-circulargauge": "^16.1.24",
- "@syncfusion/ej2-compression": "^16.1.24",
- "@syncfusion/ej2-data": "^16.1.24",
- "@syncfusion/ej2-dropdowns": "^16.1.24",
- "@syncfusion/ej2-excel-export": "^16.1.24",
- "@syncfusion/ej2-file-utils": "^16.1.24",
- "@syncfusion/ej2-grids": "^16.1.24",
- "@syncfusion/ej2-inputs": "^16.1.24",
- "@syncfusion/ej2-lineargauge": "^16.1.24",
- "@syncfusion/ej2-lists": "^16.1.24",
- "@syncfusion/ej2-maps": "^16.1.24",
- "@syncfusion/ej2-navigations": "^16.1.24",
- "@syncfusion/ej2-pdf-export": "^16.1.24",
- "@syncfusion/ej2-popups": "^16.1.24",
- "@syncfusion/ej2-schedule": "^16.1.24",
- "@syncfusion/ej2-splitbuttons": "^16.1.24",
- "tslib": "^1.8.0"
- }
- },
- "@syncfusion/ej2-base": {
- "version": "16.4.52",
- "resolved": "https://registry.npmjs.org/@syncfusion/ej2-base/-/ej2-base-16.4.52.tgz",
- "integrity": "sha512-Gd1IrXkuqGccKckpFgURam8tzDeo2ruMCz/iQcBx5aMnLmrnZo6UmwCH5xHFsiGrqb6BTNuVSG1MLj2If0w1/g=="
- },
- "@syncfusion/ej2-buttons": {
- "version": "16.4.52",
- "resolved": "https://registry.npmjs.org/@syncfusion/ej2-buttons/-/ej2-buttons-16.4.52.tgz",
- "integrity": "sha512-c9nUm0OM/HNrnJg5rIcs1wdgSVwDPZFDC7tijRc5N06kIaKhDAeZj8PP+uM2Q7a5d9Guw34W7txm3HayalbcVg==",
- "requires": {
- "@syncfusion/ej2-base": "~16.4.52"
- }
- },
- "@syncfusion/ej2-calendars": {
- "version": "16.4.52",
- "resolved": "https://registry.npmjs.org/@syncfusion/ej2-calendars/-/ej2-calendars-16.4.52.tgz",
- "integrity": "sha512-InCyTiLekNYNqu2MSqRXAzj3b3DH36Y8OnOP4RpbmN9KzalorIVpo/Ow9Ejfi9w+bQqIOzwgeryrLYHKdzXAFA==",
- "requires": {
- "@syncfusion/ej2-base": "~16.4.52",
- "@syncfusion/ej2-buttons": "~16.4.52",
- "@syncfusion/ej2-inputs": "~16.4.52",
- "@syncfusion/ej2-lists": "~16.4.52",
- "@syncfusion/ej2-popups": "~16.4.52"
- }
- },
- "@syncfusion/ej2-cards": {
- "version": "16.2.45",
- "resolved": "https://registry.npmjs.org/@syncfusion/ej2-cards/-/ej2-cards-16.2.45.tgz",
- "integrity": "sha512-EnCQot+Bj+g5tnJttDsxrTDXJpZhEW46YIQ9F8nIcf4wp5YritdDWF4mWZRdaI8QzmRDxmZDBWkNK4PFvmCFdA==",
- "requires": {
- "@syncfusion/ej2-base": "~16.2.45"
- },
- "dependencies": {
- "@syncfusion/ej2-base": {
- "version": "16.2.50",
- "resolved": "https://registry.npmjs.org/@syncfusion/ej2-base/-/ej2-base-16.2.50.tgz",
- "integrity": "sha512-QBUTiiRVkSexwlMLUrPX4T7ihnHGK800mTQUYo7EqbIC+jKRNf/qpw7HD8mDsb93uBA4VWB1k26IoDLN+TqBWA=="
- }
- }
- },
- "@syncfusion/ej2-charts": {
- "version": "16.4.52",
- "resolved": "https://registry.npmjs.org/@syncfusion/ej2-charts/-/ej2-charts-16.4.52.tgz",
- "integrity": "sha512-IKhM3GFAJhojzWm7FN8QM8DwjR6IhwsX9Ip2RtI5MQU3P2fDefgwVLWLOzjLltd6GHOEzIMqrb4DUnyqLKB4Sg==",
- "requires": {
- "@syncfusion/ej2-base": "~16.4.52",
- "@syncfusion/ej2-calendars": "~16.4.52",
- "@syncfusion/ej2-compression": "~16.4.52",
- "@syncfusion/ej2-data": "~16.4.52",
- "@syncfusion/ej2-file-utils": "~16.4.52",
- "@syncfusion/ej2-navigations": "~16.4.52",
- "@syncfusion/ej2-pdf-export": "~16.4.52",
- "@syncfusion/ej2-svg-base": "~16.4.52"
- }
- },
- "@syncfusion/ej2-circulargauge": {
- "version": "16.4.52",
- "resolved": "https://registry.npmjs.org/@syncfusion/ej2-circulargauge/-/ej2-circulargauge-16.4.52.tgz",
- "integrity": "sha512-8TIuAodZGeyS8vSq6sblZLZOPz/8oOzbVvXkbLR7z+ApM/RIcVaCLjPSdz7cbv+GmRouStN1QqgR9SXjSu6C4A==",
- "requires": {
- "@syncfusion/ej2-base": "~16.4.52",
- "@syncfusion/ej2-popups": "~16.4.52",
- "@syncfusion/ej2-svg-base": "~16.4.52"
- }
- },
- "@syncfusion/ej2-compression": {
- "version": "16.4.52",
- "resolved": "https://registry.npmjs.org/@syncfusion/ej2-compression/-/ej2-compression-16.4.52.tgz",
- "integrity": "sha512-oldBg182sgcwVtIFVRL+CfmBOz7rxdGwKcwzSWEY2QYjjqTRtLIdrEVNWyqsl3Q8XWZc5cgZ7blN+YJ/g5T7Xw==",
- "requires": {
- "@syncfusion/ej2-file-utils": "~16.4.52"
- }
- },
- "@syncfusion/ej2-data": {
- "version": "16.4.52",
- "resolved": "https://registry.npmjs.org/@syncfusion/ej2-data/-/ej2-data-16.4.52.tgz",
- "integrity": "sha512-HfDuE6ThEIO+4E0d+lkue9/lN+5shGuH+kpA+3k6mu+6v2xCXnNbR0KDrldCF6kYP8C3ndjrBhWrk4X+WVuIoA==",
- "requires": {
- "@syncfusion/ej2-base": "~16.4.52"
- }
- },
- "@syncfusion/ej2-dropdowns": {
- "version": "16.4.52",
- "resolved": "https://registry.npmjs.org/@syncfusion/ej2-dropdowns/-/ej2-dropdowns-16.4.52.tgz",
- "integrity": "sha512-nnS6s0l+uA2+oQAl38KMpOYxlWdKvKkeOPx1cpz5/2GcYFelnzVvnTOor9XzcQE2tkRfACGuXN5eMJrKP2oMZw==",
- "requires": {
- "@syncfusion/ej2-base": "~16.4.52",
- "@syncfusion/ej2-data": "~16.4.52",
- "@syncfusion/ej2-inputs": "~16.4.52",
- "@syncfusion/ej2-lists": "~16.4.52",
- "@syncfusion/ej2-popups": "~16.4.52"
- }
- },
- "@syncfusion/ej2-excel-export": {
- "version": "16.4.52",
- "resolved": "https://registry.npmjs.org/@syncfusion/ej2-excel-export/-/ej2-excel-export-16.4.52.tgz",
- "integrity": "sha512-9vNe0PtA3Tx6EmIvdFP0AbLg/pJqSZj0sQCEpnlyKW474+FSfeKX8B8Rq9jHiIYSxEa2IwwKhZ9v+QpmlDvGEA==",
- "requires": {
- "@syncfusion/ej2-base": "~16.4.52",
- "@syncfusion/ej2-compression": "~16.4.52"
- }
- },
- "@syncfusion/ej2-file-utils": {
- "version": "16.4.52",
- "resolved": "https://registry.npmjs.org/@syncfusion/ej2-file-utils/-/ej2-file-utils-16.4.52.tgz",
- "integrity": "sha512-CKh+KkYUGX8b8RmEoU/IJmEnljX245fIA5vv5X9wFeHAVwIWWtUAQyluD0hL9B/sboZ8Aq2hnfsxkPtVZLb1mg=="
- },
- "@syncfusion/ej2-grids": {
- "version": "16.4.52",
- "resolved": "https://registry.npmjs.org/@syncfusion/ej2-grids/-/ej2-grids-16.4.52.tgz",
- "integrity": "sha512-hlOo6UFQTV4SpcOAbPjmIwr28alcGgviHjYLN4jdkbZyX6NOBUAcZlARpKw7KxDMu+WuC6OJLvKkPrV6TYKdpQ==",
- "requires": {
- "@syncfusion/ej2-base": "~16.4.52",
- "@syncfusion/ej2-buttons": "~16.4.52",
- "@syncfusion/ej2-calendars": "~16.4.52",
- "@syncfusion/ej2-compression": "~16.4.52",
- "@syncfusion/ej2-data": "~16.4.52",
- "@syncfusion/ej2-dropdowns": "~16.4.52",
- "@syncfusion/ej2-excel-export": "~16.4.52",
- "@syncfusion/ej2-file-utils": "~16.4.52",
- "@syncfusion/ej2-inputs": "~16.4.52",
- "@syncfusion/ej2-lists": "~16.4.52",
- "@syncfusion/ej2-navigations": "~16.4.52",
- "@syncfusion/ej2-pdf-export": "~16.4.52",
- "@syncfusion/ej2-popups": "~16.4.52",
- "@syncfusion/ej2-splitbuttons": "~16.4.52"
- }
- },
- "@syncfusion/ej2-inplace-editor": {
- "version": "16.4.52",
- "resolved": "https://registry.npmjs.org/@syncfusion/ej2-inplace-editor/-/ej2-inplace-editor-16.4.52.tgz",
- "integrity": "sha512-kxQbp6TP9hc/h5cKfPgGIkksL88zgae2jHk0jfn5NhW5WVaoq5Do8Z95UrvdSo0MeTeovZ2D25m0iHBzlkk6Gg==",
- "requires": {
- "@syncfusion/ej2-base": "~16.4.52",
- "@syncfusion/ej2-buttons": "~16.4.52",
- "@syncfusion/ej2-calendars": "~16.4.52",
- "@syncfusion/ej2-data": "~16.4.52",
- "@syncfusion/ej2-dropdowns": "~16.4.52",
- "@syncfusion/ej2-inputs": "~16.4.52",
- "@syncfusion/ej2-lists": "~16.4.52",
- "@syncfusion/ej2-navigations": "~16.4.52",
- "@syncfusion/ej2-popups": "~16.4.52",
- "@syncfusion/ej2-richtexteditor": "~16.4.52",
- "@syncfusion/ej2-splitbuttons": "~16.4.52"
- }
- },
- "@syncfusion/ej2-inputs": {
- "version": "16.4.52",
- "resolved": "https://registry.npmjs.org/@syncfusion/ej2-inputs/-/ej2-inputs-16.4.52.tgz",
- "integrity": "sha512-ZzyS30W4cRWB8+7AN5tODw8BzI1v8tkuj+WjUDFG+++HxY+kikgGW4jgjqZCxpKmewUqQz/TSux3XMyl9C5HlQ==",
- "requires": {
- "@syncfusion/ej2-base": "~16.4.52",
- "@syncfusion/ej2-buttons": "~16.4.52",
- "@syncfusion/ej2-popups": "~16.4.52",
- "@syncfusion/ej2-splitbuttons": "~16.4.52"
- }
- },
- "@syncfusion/ej2-lineargauge": {
- "version": "16.4.52",
- "resolved": "https://registry.npmjs.org/@syncfusion/ej2-lineargauge/-/ej2-lineargauge-16.4.52.tgz",
- "integrity": "sha512-t/vs9bpuxUzue33CMU/edONEXFmD9PzX2qBUBSO9Qn/OO466KYbLirCBA+lf85+/FGrYvwy8O/mwUAAEweEEQA==",
- "requires": {
- "@syncfusion/ej2-base": "~16.4.52",
- "@syncfusion/ej2-popups": "~16.4.52",
- "@syncfusion/ej2-svg-base": "~16.4.52"
- }
- },
- "@syncfusion/ej2-lists": {
- "version": "16.4.52",
- "resolved": "https://registry.npmjs.org/@syncfusion/ej2-lists/-/ej2-lists-16.4.52.tgz",
- "integrity": "sha512-YE9btgfX5CU/MFDmfOVGwTd6qViqxxCLDUkpHXSDaUZZmWQgQbUg64GXHVXKtJutqrgLfcvqgcU+lJTt3asW1Q==",
- "requires": {
- "@syncfusion/ej2-base": "~16.4.52",
- "@syncfusion/ej2-buttons": "~16.4.52",
- "@syncfusion/ej2-data": "~16.4.52"
- }
- },
- "@syncfusion/ej2-maps": {
- "version": "16.4.52",
- "resolved": "https://registry.npmjs.org/@syncfusion/ej2-maps/-/ej2-maps-16.4.52.tgz",
- "integrity": "sha512-44fl2eHLHpiDpDeksIJF1uG/nhcCkrwuye/xdUMaf2G6BUmVrLf1pqzuRqidg38zlliJJqtZVrpdY3h4BighvA==",
- "requires": {
- "@syncfusion/ej2-base": "~16.4.52",
- "@syncfusion/ej2-compression": "~16.4.52",
- "@syncfusion/ej2-data": "~16.4.52",
- "@syncfusion/ej2-file-utils": "~16.4.52",
- "@syncfusion/ej2-pdf-export": "~16.4.52",
- "@syncfusion/ej2-popups": "~16.4.52",
- "@syncfusion/ej2-svg-base": "~16.4.52"
- }
- },
- "@syncfusion/ej2-navigations": {
- "version": "16.4.52",
- "resolved": "https://registry.npmjs.org/@syncfusion/ej2-navigations/-/ej2-navigations-16.4.52.tgz",
- "integrity": "sha512-27K/gIGYtAqqx7tr+EFXUQ8+yaIevE/4LPo+wJYEM0YA+8TgFjmLAaNBP+xU4zQvUQQ0E7/vRofVo+1fP1XR/w==",
- "requires": {
- "@syncfusion/ej2-base": "~16.4.52",
- "@syncfusion/ej2-buttons": "~16.4.52",
- "@syncfusion/ej2-data": "~16.4.52",
- "@syncfusion/ej2-inputs": "~16.4.52",
- "@syncfusion/ej2-lists": "~16.4.52",
- "@syncfusion/ej2-popups": "~16.4.52"
- }
- },
- "@syncfusion/ej2-pdf-export": {
- "version": "16.4.52",
- "resolved": "https://registry.npmjs.org/@syncfusion/ej2-pdf-export/-/ej2-pdf-export-16.4.52.tgz",
- "integrity": "sha512-zvacSRtifFXejGCwXpT8O743Gx+CQOKKPPF+U20zUbqKw2r3Qe++IHbI0jSkqat9bc6EcZSwli5kMCV4uMuoGQ==",
- "requires": {
- "@syncfusion/ej2-compression": "~16.4.52"
- }
- },
- "@syncfusion/ej2-popups": {
- "version": "16.4.52",
- "resolved": "https://registry.npmjs.org/@syncfusion/ej2-popups/-/ej2-popups-16.4.52.tgz",
- "integrity": "sha512-D6DkExvWT2aMsYXicGHcen/Z/rLY2c5VhQWYfx1xsbCjAthKi6d/4JiZGzzsHEptNvqLfS3jF2HSWvDif5Y3jQ==",
- "requires": {
- "@syncfusion/ej2-base": "~16.4.52",
- "@syncfusion/ej2-buttons": "~16.4.52"
- }
- },
- "@syncfusion/ej2-richtexteditor": {
- "version": "16.4.52",
- "resolved": "https://registry.npmjs.org/@syncfusion/ej2-richtexteditor/-/ej2-richtexteditor-16.4.52.tgz",
- "integrity": "sha512-5VEu6cRSdp87cnfkMAAzAk0PhYONg0gn1MplPk9oXHBC+M8GHvTiZGr1oCNSiO8vCqrtAzO9s958Nb4NIZ+2VA==",
- "requires": {
- "@syncfusion/ej2-base": "~16.4.52",
- "@syncfusion/ej2-navigations": "~16.4.52",
- "@syncfusion/ej2-popups": "~16.4.52",
- "@syncfusion/ej2-splitbuttons": "~16.4.52"
- }
- },
- "@syncfusion/ej2-schedule": {
- "version": "16.4.52",
- "resolved": "https://registry.npmjs.org/@syncfusion/ej2-schedule/-/ej2-schedule-16.4.52.tgz",
- "integrity": "sha512-ueaa9Q/4g45XGBnGqbfJDyWjvWOe67yN37rVIibRxEcDP5Yh7V/axEtswrcsrT7/FPpsthREEKseUOFpylpRQA==",
- "requires": {
- "@syncfusion/ej2-base": "~16.4.52",
- "@syncfusion/ej2-buttons": "~16.4.52",
- "@syncfusion/ej2-calendars": "~16.4.52",
- "@syncfusion/ej2-data": "~16.4.52",
- "@syncfusion/ej2-dropdowns": "~16.4.52",
- "@syncfusion/ej2-inputs": "~16.4.52",
- "@syncfusion/ej2-lists": "~16.4.52",
- "@syncfusion/ej2-navigations": "~16.4.52",
- "@syncfusion/ej2-popups": "~16.4.52"
- }
- },
- "@syncfusion/ej2-splitbuttons": {
- "version": "16.4.52",
- "resolved": "https://registry.npmjs.org/@syncfusion/ej2-splitbuttons/-/ej2-splitbuttons-16.4.52.tgz",
- "integrity": "sha512-xDzue77vJlF/96gXBiOalHVOjZIYRzB9h7vtp9gPlDLz1FHDhjFpWSgHzEBUsHQwYNPFIU43I1m/cdqK5fHrpw==",
- "requires": {
- "@syncfusion/ej2-base": "~16.4.52",
- "@syncfusion/ej2-popups": "~16.4.52"
- }
- },
- "@syncfusion/ej2-svg-base": {
- "version": "16.4.52",
- "resolved": "https://registry.npmjs.org/@syncfusion/ej2-svg-base/-/ej2-svg-base-16.4.52.tgz",
- "integrity": "sha512-duLrSHPLunC0+SrAi0i2MHwEWHtm0km6hkPZ+u8PIbqFs416c9iQS93nCGYwcdSBclbzM4ekgTRvu+3+SSDcSQ==",
- "requires": {
- "@syncfusion/ej2-base": "~16.4.52"
- }
- },
- "@types/node": {
- "version": "10.12.21",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.21.tgz",
- "integrity": "sha512-CBgLNk4o3XMnqMc0rhb6lc77IwShMEglz05deDcn2lQxyXEZivfwgYJu7SMha9V5XcrP6qZuevTHV/QrN2vjKQ=="
- },
- "accepts": {
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz",
- "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=",
- "requires": {
- "mime-types": "~2.1.18",
- "negotiator": "0.6.1"
- }
- },
- "acorn": {
- "version": "5.7.3",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz",
- "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw=="
- },
- "acorn-dynamic-import": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz",
- "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=",
- "requires": {
- "acorn": "^4.0.3"
- },
- "dependencies": {
- "acorn": {
- "version": "4.0.13",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
- "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c="
- }
- }
- },
- "after": {
- "version": "0.8.2",
- "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz",
- "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8="
- },
- "ajv": {
- "version": "4.11.8",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz",
- "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=",
- "requires": {
- "co": "^4.6.0",
- "json-stable-stringify": "^1.0.1"
- }
- },
- "ajv-keywords": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz",
- "integrity": "sha1-MU3QpLM2j609/NxU7eYXG4htrzw="
- },
- "align-text": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
- "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
- "requires": {
- "kind-of": "^3.0.2",
- "longest": "^1.0.1",
- "repeat-string": "^1.5.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
- "ansi-colors": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz",
- "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==",
- "requires": {
- "ansi-wrap": "^0.1.0"
- }
- },
- "ansi-cyan": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/ansi-cyan/-/ansi-cyan-0.1.1.tgz",
- "integrity": "sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM=",
- "requires": {
- "ansi-wrap": "0.1.0"
- }
- },
- "ansi-gray": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz",
- "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=",
- "requires": {
- "ansi-wrap": "0.1.0"
- }
- },
- "ansi-red": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz",
- "integrity": "sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw=",
- "requires": {
- "ansi-wrap": "0.1.0"
- }
- },
- "ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
- },
- "ansi-styles": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
- "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
- },
- "ansi-wrap": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz",
- "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768="
- },
- "anymatch": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
- "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
- "requires": {
- "micromatch": "^3.1.4",
- "normalize-path": "^2.1.1"
- },
- "dependencies": {
- "micromatch": {
- "version": "3.1.10",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
- "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
- "requires": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "braces": "^2.3.1",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "extglob": "^2.0.4",
- "fragment-cache": "^0.2.1",
- "kind-of": "^6.0.2",
- "nanomatch": "^1.2.9",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.2"
- }
- },
- "normalize-path": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
- "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
- "requires": {
- "remove-trailing-separator": "^1.0.1"
- }
- }
- }
- },
- "archy": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz",
- "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA="
- },
- "argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "requires": {
- "sprintf-js": "~1.0.2"
- }
- },
- "arr-diff": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
- "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA="
- },
- "arr-flatten": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
- "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg=="
- },
- "arr-union": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
- "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ="
- },
- "array-differ": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz",
- "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE="
- },
- "array-each": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz",
- "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8="
- },
- "array-slice": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz",
- "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w=="
- },
- "array-uniq": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
- "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY="
- },
- "array-unique": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
- "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="
- },
- "arraybuffer.slice": {
- "version": "0.0.7",
- "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz",
- "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog=="
- },
- "asn1.js": {
- "version": "4.10.1",
- "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz",
- "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==",
- "requires": {
- "bn.js": "^4.0.0",
- "inherits": "^2.0.1",
- "minimalistic-assert": "^1.0.0"
- }
- },
- "assert": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz",
- "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=",
- "requires": {
- "util": "0.10.3"
- },
- "dependencies": {
- "inherits": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
- "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE="
- },
- "util": {
- "version": "0.10.3",
- "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
- "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
- "requires": {
- "inherits": "2.0.1"
- }
- }
- }
- },
- "assign-symbols": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
- "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c="
- },
- "async": {
- "version": "1.5.2",
- "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
- "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo="
- },
- "async-each": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz",
- "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0="
- },
- "async-each-series": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-0.1.1.tgz",
- "integrity": "sha1-dhfBkXQB/Yykooqtzj266Yr+tDI="
- },
- "async-limiter": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz",
- "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg=="
- },
- "atob": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
- "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="
- },
- "axios": {
- "version": "0.17.1",
- "resolved": "https://registry.npmjs.org/axios/-/axios-0.17.1.tgz",
- "integrity": "sha1-LY4+XQvb1zJ/kbyBT1xXZg+Bgk0=",
- "requires": {
- "follow-redirects": "^1.2.5",
- "is-buffer": "^1.1.5"
- }
- },
- "backo2": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
- "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc="
- },
- "balanced-match": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
- "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
- },
- "base": {
- "version": "0.11.2",
- "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
- "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
- "requires": {
- "cache-base": "^1.0.1",
- "class-utils": "^0.3.5",
- "component-emitter": "^1.2.1",
- "define-property": "^1.0.0",
- "isobject": "^3.0.1",
- "mixin-deep": "^1.2.0",
- "pascalcase": "^0.1.1"
- },
- "dependencies": {
- "define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
- "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
- "requires": {
- "is-descriptor": "^1.0.0"
- }
- },
- "is-accessor-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-data-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-descriptor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
- "requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- }
- }
- }
- },
- "base64-arraybuffer": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz",
- "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg="
- },
- "base64-js": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz",
- "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw=="
- },
- "base64id": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz",
- "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY="
- },
- "batch": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
- "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY="
- },
- "beeper": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz",
- "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak="
- },
- "better-assert": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz",
- "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=",
- "requires": {
- "callsite": "1.0.0"
- }
- },
- "big.js": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz",
- "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q=="
- },
- "binary-extensions": {
- "version": "1.13.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.0.tgz",
- "integrity": "sha512-EgmjVLMn22z7eGGv3kcnHwSnJXmFHjISTY9E/S5lIcTD3Oxw05QTcBLNkJFzcb3cNueUdF/IN4U+d78V0zO8Hw=="
- },
- "blob": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz",
- "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig=="
- },
- "bn.js": {
- "version": "4.11.8",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
- "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA=="
- },
- "boolbase": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
- "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24="
- },
- "brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "braces": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
- "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
- "requires": {
- "arr-flatten": "^1.1.0",
- "array-unique": "^0.3.2",
- "extend-shallow": "^2.0.1",
- "fill-range": "^4.0.0",
- "isobject": "^3.0.1",
- "repeat-element": "^1.1.2",
- "snapdragon": "^0.8.1",
- "snapdragon-node": "^2.0.1",
- "split-string": "^3.0.2",
- "to-regex": "^3.0.1"
- },
- "dependencies": {
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "requires": {
- "is-extendable": "^0.1.0"
- }
- }
- }
- },
- "brorand": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
- "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8="
- },
- "browser-sync": {
- "version": "2.26.3",
- "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.26.3.tgz",
- "integrity": "sha512-VLzpjCA4uXqfzkwqWtMM6hvPm2PNHp2RcmzBXcbi6C9WpkUhhFb8SVAr4CFrCsFxDg+oY6HalOjn8F+egyvhag==",
- "requires": {
- "browser-sync-client": "^2.26.2",
- "browser-sync-ui": "^2.26.2",
- "bs-recipes": "1.3.4",
- "bs-snippet-injector": "^2.0.1",
- "chokidar": "^2.0.4",
- "connect": "3.6.6",
- "connect-history-api-fallback": "^1",
- "dev-ip": "^1.0.1",
- "easy-extender": "^2.3.4",
- "eazy-logger": "^3",
- "etag": "^1.8.1",
- "fresh": "^0.5.2",
- "fs-extra": "3.0.1",
- "http-proxy": "1.15.2",
- "immutable": "^3",
- "localtunnel": "1.9.1",
- "micromatch": "2.3.11",
- "opn": "5.3.0",
- "portscanner": "2.1.1",
- "qs": "6.2.3",
- "raw-body": "^2.3.2",
- "resp-modifier": "6.0.2",
- "rx": "4.1.0",
- "send": "0.16.2",
- "serve-index": "1.9.1",
- "serve-static": "1.13.2",
- "server-destroy": "1.0.1",
- "socket.io": "2.1.1",
- "ua-parser-js": "0.7.17",
- "yargs": "6.4.0"
- }
- },
- "browser-sync-client": {
- "version": "2.26.2",
- "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.26.2.tgz",
- "integrity": "sha512-FEuVJD41fI24HJ30XOT2RyF5WcnEtdJhhTqeyDlnMk/8Ox9MZw109rvk9pdfRWye4soZLe+xcAo9tHSMxvgAdw==",
- "requires": {
- "etag": "1.8.1",
- "fresh": "0.5.2",
- "mitt": "^1.1.3",
- "rxjs": "^5.5.6"
- }
- },
- "browser-sync-ui": {
- "version": "2.26.2",
- "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.26.2.tgz",
- "integrity": "sha512-LF7GMWo8ELOE0eAlxuRCfnGQT1ZxKP9flCfGgZdXFc6BwmoqaJHlYe7MmVvykKkXjolRXTz8ztXAKGVqNwJ3EQ==",
- "requires": {
- "async-each-series": "0.1.1",
- "connect-history-api-fallback": "^1",
- "immutable": "^3",
- "server-destroy": "1.0.1",
- "socket.io-client": "^2.0.4",
- "stream-throttle": "^0.1.3"
- }
- },
- "browserify-aes": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
- "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
- "requires": {
- "buffer-xor": "^1.0.3",
- "cipher-base": "^1.0.0",
- "create-hash": "^1.1.0",
- "evp_bytestokey": "^1.0.3",
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
- }
- },
- "browserify-cipher": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
- "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
- "requires": {
- "browserify-aes": "^1.0.4",
- "browserify-des": "^1.0.0",
- "evp_bytestokey": "^1.0.0"
- }
- },
- "browserify-des": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",
- "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
- "requires": {
- "cipher-base": "^1.0.1",
- "des.js": "^1.0.0",
- "inherits": "^2.0.1",
- "safe-buffer": "^5.1.2"
- }
- },
- "browserify-rsa": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
- "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=",
- "requires": {
- "bn.js": "^4.1.0",
- "randombytes": "^2.0.1"
- }
- },
- "browserify-sign": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz",
- "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=",
- "requires": {
- "bn.js": "^4.1.1",
- "browserify-rsa": "^4.0.0",
- "create-hash": "^1.1.0",
- "create-hmac": "^1.1.2",
- "elliptic": "^6.0.0",
- "inherits": "^2.0.1",
- "parse-asn1": "^5.0.0"
- }
- },
- "browserify-zlib": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
- "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
- "requires": {
- "pako": "~1.0.5"
- }
- },
- "bs-recipes": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.3.4.tgz",
- "integrity": "sha1-DS1NSKcYyMBEdp/cT4lZLci2lYU="
- },
- "bs-snippet-injector": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/bs-snippet-injector/-/bs-snippet-injector-2.0.1.tgz",
- "integrity": "sha1-YbU5PxH1JVntEgaTEANDtu2wTdU="
- },
- "buffer": {
- "version": "4.9.1",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
- "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=",
- "requires": {
- "base64-js": "^1.0.2",
- "ieee754": "^1.1.4",
- "isarray": "^1.0.0"
- },
- "dependencies": {
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
- }
- }
- },
- "buffer-xor": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
- "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk="
- },
- "builtin-status-codes": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
- "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug="
- },
- "bytes": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
- "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="
- },
- "cache-base": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
- "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
- "requires": {
- "collection-visit": "^1.0.0",
- "component-emitter": "^1.2.1",
- "get-value": "^2.0.6",
- "has-value": "^1.0.0",
- "isobject": "^3.0.1",
- "set-value": "^2.0.0",
- "to-object-path": "^0.3.0",
- "union-value": "^1.0.0",
- "unset-value": "^1.0.0"
- }
- },
- "callsite": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz",
- "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA="
- },
- "camelcase": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
- "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo="
- },
- "center-align": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
- "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
- "requires": {
- "align-text": "^0.1.3",
- "lazy-cache": "^1.0.3"
- }
- },
- "chalk": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
- "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
- "requires": {
- "ansi-styles": "^2.2.1",
- "escape-string-regexp": "^1.0.2",
- "has-ansi": "^2.0.0",
- "strip-ansi": "^3.0.0",
- "supports-color": "^2.0.0"
- }
- },
- "cheerio": {
- "version": "1.0.0-rc.2",
- "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.2.tgz",
- "integrity": "sha1-S59TqBsn5NXawxwP/Qz6A8xoMNs=",
- "requires": {
- "css-select": "~1.2.0",
- "dom-serializer": "~0.1.0",
- "entities": "~1.1.1",
- "htmlparser2": "^3.9.1",
- "lodash": "^4.15.0",
- "parse5": "^3.0.1"
- }
- },
- "chokidar": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.0.tgz",
- "integrity": "sha512-5t6G2SH8eO6lCvYOoUpaRnF5Qfd//gd7qJAkwRUw9qlGVkiQ13uwQngqbWWaurOsaAm9+kUGbITADxt6H0XFNQ==",
- "requires": {
- "anymatch": "^2.0.0",
- "async-each": "^1.0.1",
- "braces": "^2.3.2",
- "fsevents": "^1.2.7",
- "glob-parent": "^3.1.0",
- "inherits": "^2.0.3",
- "is-binary-path": "^1.0.0",
- "is-glob": "^4.0.0",
- "normalize-path": "^3.0.0",
- "path-is-absolute": "^1.0.0",
- "readdirp": "^2.2.1",
- "upath": "^1.1.0"
- }
- },
- "cipher-base": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
- "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
- "requires": {
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
- }
- },
- "class-utils": {
- "version": "0.3.6",
- "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
- "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
- "requires": {
- "arr-union": "^3.1.0",
- "define-property": "^0.2.5",
- "isobject": "^3.0.0",
- "static-extend": "^0.1.1"
- },
- "dependencies": {
- "define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
- "requires": {
- "is-descriptor": "^0.1.0"
- }
- }
- }
- },
- "cli": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz",
- "integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=",
- "dev": true,
- "requires": {
- "exit": "0.1.2",
- "glob": "^7.1.1"
- },
- "dependencies": {
- "glob": {
- "version": "7.1.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
- "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- }
- }
- },
- "cliui": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
- "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
- "requires": {
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1",
- "wrap-ansi": "^2.0.0"
- }
- },
- "clone": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
- "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4="
- },
- "clone-buffer": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz",
- "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg="
- },
- "clone-stats": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz",
- "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE="
- },
- "cloneable-readable": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.2.tgz",
- "integrity": "sha512-Bq6+4t+lbM8vhTs/Bef5c5AdEMtapp/iFb6+s4/Hh9MVTt8OLKH7ZOOZSCT+Ys7hsHvqv0GuMPJ1lnQJVHvxpg==",
- "requires": {
- "inherits": "^2.0.1",
- "process-nextick-args": "^2.0.0",
- "readable-stream": "^2.3.5"
- }
- },
- "co": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
- "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ="
- },
- "code-point-at": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
- "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
- },
- "collection-visit": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
- "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
- "requires": {
- "map-visit": "^1.0.0",
- "object-visit": "^1.0.0"
- }
- },
- "color-support": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
- "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg=="
- },
- "commander": {
- "version": "2.19.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz",
- "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg=="
- },
- "component-bind": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz",
- "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E="
- },
- "component-emitter": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
- "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY="
- },
- "component-inherit": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz",
- "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM="
- },
- "concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
- },
- "connect": {
- "version": "3.6.6",
- "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz",
- "integrity": "sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=",
- "requires": {
- "debug": "2.6.9",
- "finalhandler": "1.1.0",
- "parseurl": "~1.3.2",
- "utils-merge": "1.0.1"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "requires": {
- "ms": "2.0.0"
- }
- }
- }
- },
- "connect-history-api-fallback": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz",
- "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg=="
- },
- "console-browserify": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
- "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=",
- "requires": {
- "date-now": "^0.1.4"
- }
- },
- "constants-browserify": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
- "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U="
- },
- "cookie": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
- "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s="
- },
- "copy-descriptor": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
- "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40="
- },
- "core-util-is": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
- },
- "create-ecdh": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz",
- "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==",
- "requires": {
- "bn.js": "^4.1.0",
- "elliptic": "^6.0.0"
- }
- },
- "create-hash": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
- "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
- "requires": {
- "cipher-base": "^1.0.1",
- "inherits": "^2.0.1",
- "md5.js": "^1.3.4",
- "ripemd160": "^2.0.1",
- "sha.js": "^2.4.0"
- }
- },
- "create-hmac": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
- "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
- "requires": {
- "cipher-base": "^1.0.3",
- "create-hash": "^1.1.0",
- "inherits": "^2.0.1",
- "ripemd160": "^2.0.0",
- "safe-buffer": "^5.0.1",
- "sha.js": "^2.4.8"
- }
- },
- "cross-spawn": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
- "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
- "requires": {
- "lru-cache": "^4.0.1",
- "shebang-command": "^1.2.0",
- "which": "^1.2.9"
- },
- "dependencies": {
- "lru-cache": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
- "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
- "requires": {
- "pseudomap": "^1.0.2",
- "yallist": "^2.1.2"
- }
- }
- }
- },
- "crossroads": {
- "version": "0.12.2",
- "resolved": "https://registry.npmjs.org/crossroads/-/crossroads-0.12.2.tgz",
- "integrity": "sha1-sdX5wdmK873WHxvaaobdGu5P+PI=",
- "requires": {
- "signals": "<2.0"
- }
- },
- "crypto-browserify": {
- "version": "3.12.0",
- "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
- "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
- "requires": {
- "browserify-cipher": "^1.0.0",
- "browserify-sign": "^4.0.0",
- "create-ecdh": "^4.0.0",
- "create-hash": "^1.1.0",
- "create-hmac": "^1.1.0",
- "diffie-hellman": "^5.0.0",
- "inherits": "^2.0.1",
- "pbkdf2": "^3.0.3",
- "public-encrypt": "^4.0.0",
- "randombytes": "^2.0.0",
- "randomfill": "^1.0.3"
- }
- },
- "css-select": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
- "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
- "requires": {
- "boolbase": "~1.0.0",
- "css-what": "2.1",
- "domutils": "1.5.1",
- "nth-check": "~1.0.1"
- }
- },
- "css-what": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.2.tgz",
- "integrity": "sha512-wan8dMWQ0GUeF7DGEPVjhHemVW/vy6xUYmFzRY8RYqgA0JtXC9rJmbScBjqSu6dg9q0lwPQy6ZAmJVr3PPTvqQ=="
- },
- "d": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
- "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
- "requires": {
- "es5-ext": "^0.10.9"
- }
- },
- "date-now": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
- "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs="
- },
- "dateformat": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz",
- "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI="
- },
- "debug": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
- "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
- "requires": {
- "ms": "2.0.0"
- }
- },
- "decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
- },
- "decode-uri-component": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
- "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU="
- },
- "defaults": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
- "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
- "requires": {
- "clone": "^1.0.2"
- }
- },
- "define-property": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
- "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
- "requires": {
- "is-descriptor": "^1.0.2",
- "isobject": "^3.0.1"
- },
- "dependencies": {
- "is-accessor-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-data-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-descriptor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
- "requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- }
- }
- }
- },
- "depd": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
- "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
- },
- "deprecated": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/deprecated/-/deprecated-0.0.1.tgz",
- "integrity": "sha1-+cmvVGSvoeepcUWKi97yqpTVuxk="
- },
- "des.js": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz",
- "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=",
- "requires": {
- "inherits": "^2.0.1",
- "minimalistic-assert": "^1.0.0"
- }
- },
- "destroy": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
- "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
- },
- "detect-file": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz",
- "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc="
- },
- "dev-ip": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz",
- "integrity": "sha1-p2o+0YVb56ASu4rBbLgPPADcKPA="
- },
- "diffie-hellman": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
- "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
- "requires": {
- "bn.js": "^4.1.0",
- "miller-rabin": "^4.0.0",
- "randombytes": "^2.0.0"
- }
- },
- "dom-serializer": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
- "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=",
- "requires": {
- "domelementtype": "~1.1.1",
- "entities": "~1.1.1"
- },
- "dependencies": {
- "domelementtype": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz",
- "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs="
- }
- }
- },
- "domain-browser": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
- "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA=="
- },
- "domelementtype": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
- "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w=="
- },
- "domhandler": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz",
- "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
- "requires": {
- "domelementtype": "1"
- }
- },
- "domutils": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
- "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
- "requires": {
- "dom-serializer": "0",
- "domelementtype": "1"
- }
- },
- "duplexer2": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz",
- "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=",
- "requires": {
- "readable-stream": "~1.1.9"
- },
- "dependencies": {
- "isarray": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
- },
- "readable-stream": {
- "version": "1.1.14",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
- "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
- "requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.1",
- "isarray": "0.0.1",
- "string_decoder": "~0.10.x"
- }
- },
- "string_decoder": {
- "version": "0.10.31",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
- }
- }
- },
- "easy-extender": {
- "version": "2.3.4",
- "resolved": "https://registry.npmjs.org/easy-extender/-/easy-extender-2.3.4.tgz",
- "integrity": "sha512-8cAwm6md1YTiPpOvDULYJL4ZS6WfM5/cTeVVh4JsvyYZAoqlRVUpHL9Gr5Fy7HA6xcSZicUia3DeAgO3Us8E+Q==",
- "requires": {
- "lodash": "^4.17.10"
- }
- },
- "eazy-logger": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-3.0.2.tgz",
- "integrity": "sha1-oyWqXlPROiIliJsqxBE7K5Y29Pw=",
- "requires": {
- "tfunk": "^3.0.1"
- }
- },
- "ee-first": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
- "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
- },
- "elasticlunr": {
- "version": "0.9.5",
- "resolved": "https://registry.npmjs.org/elasticlunr/-/elasticlunr-0.9.5.tgz",
- "integrity": "sha1-ZVQbswnd3Qz5Ty0ciGGyvmUbsNU=",
- "dev": true
- },
- "elliptic": {
- "version": "6.4.1",
- "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz",
- "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==",
- "requires": {
- "bn.js": "^4.4.0",
- "brorand": "^1.0.1",
- "hash.js": "^1.0.0",
- "hmac-drbg": "^1.0.0",
- "inherits": "^2.0.1",
- "minimalistic-assert": "^1.0.0",
- "minimalistic-crypto-utils": "^1.0.0"
- }
- },
- "emojis-list": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
- "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k="
- },
- "encodeurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
- },
- "end-of-stream": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz",
- "integrity": "sha1-jhdyBsPICDfYVjLouTWd/osvbq8=",
- "requires": {
- "once": "~1.3.0"
- }
- },
- "engine.io": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.1.tgz",
- "integrity": "sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w==",
- "requires": {
- "accepts": "~1.3.4",
- "base64id": "1.0.0",
- "cookie": "0.3.1",
- "debug": "~3.1.0",
- "engine.io-parser": "~2.1.0",
- "ws": "~3.3.1"
- },
- "dependencies": {
- "ws": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
- "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==",
- "requires": {
- "async-limiter": "~1.0.0",
- "safe-buffer": "~5.1.0",
- "ultron": "~1.1.0"
- }
- }
- }
- },
- "engine.io-client": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.3.2.tgz",
- "integrity": "sha512-y0CPINnhMvPuwtqXfsGuWE8BB66+B6wTtCofQDRecMQPYX3MYUZXFNKDhdrSe3EVjgOu4V3rxdeqN/Tr91IgbQ==",
- "requires": {
- "component-emitter": "1.2.1",
- "component-inherit": "0.0.3",
- "debug": "~3.1.0",
- "engine.io-parser": "~2.1.1",
- "has-cors": "1.1.0",
- "indexof": "0.0.1",
- "parseqs": "0.0.5",
- "parseuri": "0.0.5",
- "ws": "~6.1.0",
- "xmlhttprequest-ssl": "~1.5.4",
- "yeast": "0.1.2"
- }
- },
- "engine.io-parser": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz",
- "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==",
- "requires": {
- "after": "0.8.2",
- "arraybuffer.slice": "~0.0.7",
- "base64-arraybuffer": "0.1.5",
- "blob": "0.0.5",
- "has-binary2": "~1.0.2"
- }
- },
- "enhanced-resolve": {
- "version": "3.4.1",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz",
- "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=",
- "requires": {
- "graceful-fs": "^4.1.2",
- "memory-fs": "^0.4.0",
- "object-assign": "^4.0.1",
- "tapable": "^0.2.7"
- },
- "dependencies": {
- "object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
- }
- }
- },
- "entities": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
- "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w=="
- },
- "errno": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz",
- "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==",
- "requires": {
- "prr": "~1.0.1"
- }
- },
- "error-ex": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
- "requires": {
- "is-arrayish": "^0.2.1"
- }
- },
- "es5-ext": {
- "version": "0.10.47",
- "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.47.tgz",
- "integrity": "sha512-/1TItLfj+TTfWoeRcDn/0FbGV6SNo4R+On2GGVucPU/j3BWnXE2Co8h8CTo4Tu34gFJtnmwS9xiScKs4EjZhdw==",
- "requires": {
- "es6-iterator": "~2.0.3",
- "es6-symbol": "~3.1.1",
- "next-tick": "1"
- }
- },
- "es6-iterator": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
- "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
- "requires": {
- "d": "1",
- "es5-ext": "^0.10.35",
- "es6-symbol": "^3.1.1"
- }
- },
- "es6-map": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz",
- "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=",
- "requires": {
- "d": "1",
- "es5-ext": "~0.10.14",
- "es6-iterator": "~2.0.1",
- "es6-set": "~0.1.5",
- "es6-symbol": "~3.1.1",
- "event-emitter": "~0.3.5"
- }
- },
- "es6-set": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz",
- "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=",
- "requires": {
- "d": "1",
- "es5-ext": "~0.10.14",
- "es6-iterator": "~2.0.1",
- "es6-symbol": "3.1.1",
- "event-emitter": "~0.3.5"
- }
- },
- "es6-symbol": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
- "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
- "requires": {
- "d": "1",
- "es5-ext": "~0.10.14"
- }
- },
- "es6-weak-map": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz",
- "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=",
- "requires": {
- "d": "1",
- "es5-ext": "^0.10.14",
- "es6-iterator": "^2.0.1",
- "es6-symbol": "^3.1.1"
- }
- },
- "escape-html": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
- },
- "escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
- },
- "escope": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz",
- "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=",
- "requires": {
- "es6-map": "^0.1.3",
- "es6-weak-map": "^2.0.1",
- "esrecurse": "^4.1.0",
- "estraverse": "^4.1.1"
- }
- },
- "esrecurse": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
- "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
- "requires": {
- "estraverse": "^4.1.0"
- }
- },
- "estraverse": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
- "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM="
- },
- "etag": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
- "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
- },
- "event-emitter": {
- "version": "0.3.5",
- "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
- "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
- "requires": {
- "d": "1",
- "es5-ext": "~0.10.14"
- }
- },
- "eventemitter3": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz",
- "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg="
- },
- "events": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz",
- "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA=="
- },
- "evp_bytestokey": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
- "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
- "requires": {
- "md5.js": "^1.3.4",
- "safe-buffer": "^5.1.1"
- }
- },
- "execa": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
- "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
- "requires": {
- "cross-spawn": "^5.0.1",
- "get-stream": "^3.0.0",
- "is-stream": "^1.1.0",
- "npm-run-path": "^2.0.0",
- "p-finally": "^1.0.0",
- "signal-exit": "^3.0.0",
- "strip-eof": "^1.0.0"
- }
- },
- "exit": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
- "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
- "dev": true
- },
- "expand-brackets": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
- "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
- "requires": {
- "debug": "^2.3.3",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "posix-character-classes": "^0.1.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "requires": {
- "ms": "2.0.0"
- }
- },
- "define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
- "requires": {
- "is-descriptor": "^0.1.0"
- }
- },
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "requires": {
- "is-extendable": "^0.1.0"
- }
- }
- }
- },
- "expand-range": {
- "version": "1.8.2",
- "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
- "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
- "requires": {
- "fill-range": "^2.1.0"
- },
- "dependencies": {
- "fill-range": {
- "version": "2.2.4",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz",
- "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==",
- "requires": {
- "is-number": "^2.1.0",
- "isobject": "^2.0.0",
- "randomatic": "^3.0.0",
- "repeat-element": "^1.1.2",
- "repeat-string": "^1.5.2"
- }
- },
- "is-number": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
- "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
- "requires": {
- "kind-of": "^3.0.2"
- }
- },
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
- },
- "isobject": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
- "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
- "requires": {
- "isarray": "1.0.0"
- }
- },
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
- "expand-tilde": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz",
- "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=",
- "requires": {
- "homedir-polyfill": "^1.0.1"
- }
- },
- "extend": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
- "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
- },
- "extend-shallow": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
- "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
- "requires": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
- },
- "dependencies": {
- "is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "requires": {
- "is-plain-object": "^2.0.4"
- }
- }
- }
- },
- "extglob": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
- "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
- "requires": {
- "array-unique": "^0.3.2",
- "define-property": "^1.0.0",
- "expand-brackets": "^2.1.4",
- "extend-shallow": "^2.0.1",
- "fragment-cache": "^0.2.1",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "dependencies": {
- "define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
- "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
- "requires": {
- "is-descriptor": "^1.0.0"
- }
- },
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "requires": {
- "is-extendable": "^0.1.0"
- }
- },
- "is-accessor-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-data-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-descriptor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
- "requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- }
- }
- }
- },
- "fancy-log": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz",
- "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==",
- "requires": {
- "ansi-gray": "^0.1.1",
- "color-support": "^1.1.3",
- "parse-node-version": "^1.0.0",
- "time-stamp": "^1.0.0"
- }
- },
- "fast-deep-equal": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
- "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk="
- },
- "fast-json-stable-stringify": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
- "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
- },
- "filename-regex": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
- "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY="
- },
- "fill-range": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
- "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
- "requires": {
- "extend-shallow": "^2.0.1",
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1",
- "to-regex-range": "^2.1.0"
- },
- "dependencies": {
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "requires": {
- "is-extendable": "^0.1.0"
- }
- }
- }
- },
- "finalhandler": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz",
- "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=",
- "requires": {
- "debug": "2.6.9",
- "encodeurl": "~1.0.1",
- "escape-html": "~1.0.3",
- "on-finished": "~2.3.0",
- "parseurl": "~1.3.2",
- "statuses": "~1.3.1",
- "unpipe": "~1.0.0"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "requires": {
- "ms": "2.0.0"
- }
- }
- }
- },
- "find-index": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz",
- "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ="
- },
- "find-up": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
- "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
- "requires": {
- "path-exists": "^2.0.0",
- "pinkie-promise": "^2.0.0"
- }
- },
- "findup-sync": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz",
- "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=",
- "requires": {
- "detect-file": "^1.0.0",
- "is-glob": "^3.1.0",
- "micromatch": "^3.0.4",
- "resolve-dir": "^1.0.1"
- },
- "dependencies": {
- "is-glob": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
- "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
- "requires": {
- "is-extglob": "^2.1.0"
- }
- },
- "micromatch": {
- "version": "3.1.10",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
- "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
- "requires": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "braces": "^2.3.1",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "extglob": "^2.0.4",
- "fragment-cache": "^0.2.1",
- "kind-of": "^6.0.2",
- "nanomatch": "^1.2.9",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.2"
- }
- }
- }
- },
- "fined": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/fined/-/fined-1.1.1.tgz",
- "integrity": "sha512-jQp949ZmEbiYHk3gkbdtpJ0G1+kgtLQBNdP5edFP7Fh+WAYceLQz6yO1SBj72Xkg8GVyTB3bBzAYrHJVh5Xd5g==",
- "requires": {
- "expand-tilde": "^2.0.2",
- "is-plain-object": "^2.0.3",
- "object.defaults": "^1.1.0",
- "object.pick": "^1.2.0",
- "parse-filepath": "^1.0.1"
- }
- },
- "first-chunk-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz",
- "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04="
- },
- "flagged-respawn": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz",
- "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q=="
- },
- "follow-redirects": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.6.1.tgz",
- "integrity": "sha512-t2JCjbzxQpWvbhts3l6SH1DKzSrx8a+SsaVf4h6bG4kOXUuPYS/kg2Lr4gQSb7eemaHqJkOThF1BGyjlUkO1GQ==",
- "requires": {
- "debug": "=3.1.0"
- }
- },
- "for-in": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
- "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA="
- },
- "for-own": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
- "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
- "requires": {
- "for-in": "^1.0.1"
- }
- },
- "fragment-cache": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
- "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
- "requires": {
- "map-cache": "^0.2.2"
- }
- },
- "fresh": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
- "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
- },
- "fs-extra": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz",
- "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=",
- "requires": {
- "graceful-fs": "^4.1.2",
- "jsonfile": "^3.0.0",
- "universalify": "^0.1.0"
- }
- },
- "fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
- "dev": true
- },
- "fsevents": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.7.tgz",
- "integrity": "sha512-Pxm6sI2MeBD7RdD12RYsqaP0nMiwx8eZBXCa6z2L+mRHm2DYrOYwihmhjpkdjUHwQhslWQjRpEgNq4XvBmaAuw==",
- "optional": true,
- "requires": {
- "nan": "^2.9.2",
- "node-pre-gyp": "^0.10.0"
- },
- "dependencies": {
- "abbrev": {
- "version": "1.1.1",
- "bundled": true,
- "optional": true
- },
- "ansi-regex": {
- "version": "2.1.1",
- "bundled": true,
- "optional": true
- },
- "aproba": {
- "version": "1.2.0",
- "bundled": true,
- "optional": true
- },
- "are-we-there-yet": {
- "version": "1.1.5",
- "bundled": true,
- "optional": true,
- "requires": {
- "delegates": "^1.0.0",
- "readable-stream": "^2.0.6"
- }
- },
- "balanced-match": {
- "version": "1.0.0",
- "bundled": true,
- "optional": true
- },
- "brace-expansion": {
- "version": "1.1.11",
- "bundled": true,
- "optional": true,
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "chownr": {
- "version": "1.1.1",
- "bundled": true,
- "optional": true
- },
- "code-point-at": {
- "version": "1.1.0",
- "bundled": true,
- "optional": true
- },
- "concat-map": {
- "version": "0.0.1",
- "bundled": true,
- "optional": true
- },
- "console-control-strings": {
- "version": "1.1.0",
- "bundled": true,
- "optional": true
- },
- "core-util-is": {
- "version": "1.0.2",
- "bundled": true,
- "optional": true
- },
- "debug": {
- "version": "2.6.9",
- "bundled": true,
- "optional": true,
- "requires": {
- "ms": "2.0.0"
- }
- },
- "deep-extend": {
- "version": "0.6.0",
- "bundled": true,
- "optional": true
- },
- "delegates": {
- "version": "1.0.0",
- "bundled": true,
- "optional": true
- },
- "detect-libc": {
- "version": "1.0.3",
- "bundled": true,
- "optional": true
- },
- "fs-minipass": {
- "version": "1.2.5",
- "bundled": true,
- "optional": true,
- "requires": {
- "minipass": "^2.2.1"
- }
- },
- "fs.realpath": {
- "version": "1.0.0",
- "bundled": true,
- "optional": true
- },
- "gauge": {
- "version": "2.7.4",
- "bundled": true,
- "optional": true,
- "requires": {
- "aproba": "^1.0.3",
- "console-control-strings": "^1.0.0",
- "has-unicode": "^2.0.0",
- "object-assign": "^4.1.0",
- "signal-exit": "^3.0.0",
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1",
- "wide-align": "^1.1.0"
- }
- },
- "glob": {
- "version": "7.1.3",
- "bundled": true,
- "optional": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "has-unicode": {
- "version": "2.0.1",
- "bundled": true,
- "optional": true
- },
- "iconv-lite": {
- "version": "0.4.24",
- "bundled": true,
- "optional": true,
- "requires": {
- "safer-buffer": ">= 2.1.2 < 3"
- }
- },
- "ignore-walk": {
- "version": "3.0.1",
- "bundled": true,
- "optional": true,
- "requires": {
- "minimatch": "^3.0.4"
- }
- },
- "inflight": {
- "version": "1.0.6",
- "bundled": true,
- "optional": true,
- "requires": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "inherits": {
- "version": "2.0.3",
- "bundled": true,
- "optional": true
- },
- "ini": {
- "version": "1.3.5",
- "bundled": true,
- "optional": true
- },
- "is-fullwidth-code-point": {
- "version": "1.0.0",
- "bundled": true,
- "optional": true,
- "requires": {
- "number-is-nan": "^1.0.0"
- }
- },
- "isarray": {
- "version": "1.0.0",
- "bundled": true,
- "optional": true
- },
- "minimatch": {
- "version": "3.0.4",
- "bundled": true,
- "optional": true,
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- },
- "minimist": {
- "version": "0.0.8",
- "bundled": true,
- "optional": true
- },
- "minipass": {
- "version": "2.3.5",
- "bundled": true,
- "optional": true,
- "requires": {
- "safe-buffer": "^5.1.2",
- "yallist": "^3.0.0"
- }
- },
- "minizlib": {
- "version": "1.2.1",
- "bundled": true,
- "optional": true,
- "requires": {
- "minipass": "^2.2.1"
- }
- },
- "mkdirp": {
- "version": "0.5.1",
- "bundled": true,
- "optional": true,
- "requires": {
- "minimist": "0.0.8"
- }
- },
- "ms": {
- "version": "2.0.0",
- "bundled": true,
- "optional": true
- },
- "needle": {
- "version": "2.2.4",
- "bundled": true,
- "optional": true,
- "requires": {
- "debug": "^2.1.2",
- "iconv-lite": "^0.4.4",
- "sax": "^1.2.4"
- }
- },
- "node-pre-gyp": {
- "version": "0.10.3",
- "bundled": true,
- "optional": true,
- "requires": {
- "detect-libc": "^1.0.2",
- "mkdirp": "^0.5.1",
- "needle": "^2.2.1",
- "nopt": "^4.0.1",
- "npm-packlist": "^1.1.6",
- "npmlog": "^4.0.2",
- "rc": "^1.2.7",
- "rimraf": "^2.6.1",
- "semver": "^5.3.0",
- "tar": "^4"
- }
- },
- "nopt": {
- "version": "4.0.1",
- "bundled": true,
- "optional": true,
- "requires": {
- "abbrev": "1",
- "osenv": "^0.1.4"
- }
- },
- "npm-bundled": {
- "version": "1.0.5",
- "bundled": true,
- "optional": true
- },
- "npm-packlist": {
- "version": "1.2.0",
- "bundled": true,
- "optional": true,
- "requires": {
- "ignore-walk": "^3.0.1",
- "npm-bundled": "^1.0.1"
- }
- },
- "npmlog": {
- "version": "4.1.2",
- "bundled": true,
- "optional": true,
- "requires": {
- "are-we-there-yet": "~1.1.2",
- "console-control-strings": "~1.1.0",
- "gauge": "~2.7.3",
- "set-blocking": "~2.0.0"
- }
- },
- "number-is-nan": {
- "version": "1.0.1",
- "bundled": true,
- "optional": true
- },
- "object-assign": {
- "version": "4.1.1",
- "bundled": true,
- "optional": true
- },
- "once": {
- "version": "1.4.0",
- "bundled": true,
- "optional": true,
- "requires": {
- "wrappy": "1"
- }
- },
- "os-homedir": {
- "version": "1.0.2",
- "bundled": true,
- "optional": true
- },
- "os-tmpdir": {
- "version": "1.0.2",
- "bundled": true,
- "optional": true
- },
- "osenv": {
- "version": "0.1.5",
- "bundled": true,
- "optional": true,
- "requires": {
- "os-homedir": "^1.0.0",
- "os-tmpdir": "^1.0.0"
- }
- },
- "path-is-absolute": {
- "version": "1.0.1",
- "bundled": true,
- "optional": true
- },
- "process-nextick-args": {
- "version": "2.0.0",
- "bundled": true,
- "optional": true
- },
- "rc": {
- "version": "1.2.8",
- "bundled": true,
- "optional": true,
- "requires": {
- "deep-extend": "^0.6.0",
- "ini": "~1.3.0",
- "minimist": "^1.2.0",
- "strip-json-comments": "~2.0.1"
- },
- "dependencies": {
- "minimist": {
- "version": "1.2.0",
- "bundled": true,
- "optional": true
- }
- }
- },
- "readable-stream": {
- "version": "2.3.6",
- "bundled": true,
- "optional": true,
- "requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- }
- },
- "rimraf": {
- "version": "2.6.3",
- "bundled": true,
- "optional": true,
- "requires": {
- "glob": "^7.1.3"
- }
- },
- "safe-buffer": {
- "version": "5.1.2",
- "bundled": true,
- "optional": true
- },
- "safer-buffer": {
- "version": "2.1.2",
- "bundled": true,
- "optional": true
- },
- "sax": {
- "version": "1.2.4",
- "bundled": true,
- "optional": true
- },
- "semver": {
- "version": "5.6.0",
- "bundled": true,
- "optional": true
- },
- "set-blocking": {
- "version": "2.0.0",
- "bundled": true,
- "optional": true
- },
- "signal-exit": {
- "version": "3.0.2",
- "bundled": true,
- "optional": true
- },
- "string-width": {
- "version": "1.0.2",
- "bundled": true,
- "optional": true,
- "requires": {
- "code-point-at": "^1.0.0",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
- }
- },
- "string_decoder": {
- "version": "1.1.1",
- "bundled": true,
- "optional": true,
- "requires": {
- "safe-buffer": "~5.1.0"
- }
- },
- "strip-ansi": {
- "version": "3.0.1",
- "bundled": true,
- "optional": true,
- "requires": {
- "ansi-regex": "^2.0.0"
- }
- },
- "strip-json-comments": {
- "version": "2.0.1",
- "bundled": true,
- "optional": true
- },
- "tar": {
- "version": "4.4.8",
- "bundled": true,
- "optional": true,
- "requires": {
- "chownr": "^1.1.1",
- "fs-minipass": "^1.2.5",
- "minipass": "^2.3.4",
- "minizlib": "^1.1.1",
- "mkdirp": "^0.5.0",
- "safe-buffer": "^5.1.2",
- "yallist": "^3.0.2"
- }
- },
- "util-deprecate": {
- "version": "1.0.2",
- "bundled": true,
- "optional": true
- },
- "wide-align": {
- "version": "1.1.3",
- "bundled": true,
- "optional": true,
- "requires": {
- "string-width": "^1.0.2 || 2"
- }
- },
- "wrappy": {
- "version": "1.0.2",
- "bundled": true,
- "optional": true
- },
- "yallist": {
- "version": "3.0.3",
- "bundled": true,
- "optional": true
- }
- }
- },
- "fuse.js": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-3.3.1.tgz",
- "integrity": "sha512-Ranlb3nqh4Scw1ev5HvMoBUNHnhLceTGImSVf7ug87exLI75CfjhpCV5lFr1vHrAEn7fS80KZFaHCOznlGAG4A==",
- "dev": true
- },
- "gaze": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz",
- "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=",
- "requires": {
- "globule": "~0.1.0"
- }
- },
- "get-caller-file": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
- "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w=="
- },
- "get-stream": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
- "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ="
- },
- "get-value": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
- "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg="
- },
- "glob": {
- "version": "4.5.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz",
- "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=",
- "requires": {
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^2.0.1",
- "once": "^1.3.0"
- },
- "dependencies": {
- "minimatch": {
- "version": "2.0.10",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz",
- "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=",
- "requires": {
- "brace-expansion": "^1.0.0"
- }
- }
- }
- },
- "glob-base": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
- "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
- "requires": {
- "glob-parent": "^2.0.0",
- "is-glob": "^2.0.0"
- },
- "dependencies": {
- "glob-parent": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
- "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
- "requires": {
- "is-glob": "^2.0.0"
- }
- },
- "is-extglob": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
- "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
- },
- "is-glob": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
- "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
- "requires": {
- "is-extglob": "^1.0.0"
- }
- }
- }
- },
- "glob-parent": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
- "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
- "requires": {
- "is-glob": "^3.1.0",
- "path-dirname": "^1.0.0"
- },
- "dependencies": {
- "is-glob": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
- "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
- "requires": {
- "is-extglob": "^2.1.0"
- }
- }
- }
- },
- "glob-stream": {
- "version": "3.1.18",
- "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz",
- "integrity": "sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs=",
- "requires": {
- "glob": "^4.3.1",
- "glob2base": "^0.0.12",
- "minimatch": "^2.0.1",
- "ordered-read-streams": "^0.1.0",
- "through2": "^0.6.1",
- "unique-stream": "^1.0.0"
- },
- "dependencies": {
- "isarray": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
- },
- "minimatch": {
- "version": "2.0.10",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz",
- "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=",
- "requires": {
- "brace-expansion": "^1.0.0"
- }
- },
- "readable-stream": {
- "version": "1.0.34",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
- "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
- "requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.1",
- "isarray": "0.0.1",
- "string_decoder": "~0.10.x"
- }
- },
- "string_decoder": {
- "version": "0.10.31",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
- },
- "through2": {
- "version": "0.6.5",
- "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
- "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
- "requires": {
- "readable-stream": ">=1.0.33-1 <1.1.0-0",
- "xtend": ">=4.0.0 <4.1.0-0"
- }
- }
- }
- },
- "glob-watcher": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz",
- "integrity": "sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs=",
- "requires": {
- "gaze": "^0.5.1"
- }
- },
- "glob2base": {
- "version": "0.0.12",
- "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz",
- "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=",
- "requires": {
- "find-index": "^0.1.1"
- }
- },
- "global-modules": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz",
- "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==",
- "requires": {
- "global-prefix": "^1.0.1",
- "is-windows": "^1.0.1",
- "resolve-dir": "^1.0.0"
- }
- },
- "global-prefix": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz",
- "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=",
- "requires": {
- "expand-tilde": "^2.0.2",
- "homedir-polyfill": "^1.0.1",
- "ini": "^1.3.4",
- "is-windows": "^1.0.1",
- "which": "^1.2.14"
- }
- },
- "globule": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz",
- "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=",
- "requires": {
- "glob": "~3.1.21",
- "lodash": "~1.0.1",
- "minimatch": "~0.2.11"
- },
- "dependencies": {
- "glob": {
- "version": "3.1.21",
- "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz",
- "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=",
- "requires": {
- "graceful-fs": "~1.2.0",
- "inherits": "1",
- "minimatch": "~0.2.11"
- }
- },
- "graceful-fs": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz",
- "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q="
- },
- "inherits": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz",
- "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js="
- },
- "lodash": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz",
- "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE="
- },
- "minimatch": {
- "version": "0.2.14",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz",
- "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=",
- "requires": {
- "lru-cache": "2",
- "sigmund": "~1.0.0"
- }
- }
- }
- },
- "glogg": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz",
- "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==",
- "requires": {
- "sparkles": "^1.0.0"
- }
- },
- "graceful-fs": {
- "version": "4.1.15",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
- "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA=="
- },
- "gulp": {
- "version": "3.9.1",
- "resolved": "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz",
- "integrity": "sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ=",
- "requires": {
- "archy": "^1.0.0",
- "chalk": "^1.0.0",
- "deprecated": "^0.0.1",
- "gulp-util": "^3.0.0",
- "interpret": "^1.0.0",
- "liftoff": "^2.1.0",
- "minimist": "^1.1.0",
- "orchestrator": "^0.3.0",
- "pretty-hrtime": "^1.0.0",
- "semver": "^4.1.0",
- "tildify": "^1.0.0",
- "v8flags": "^2.0.2",
- "vinyl-fs": "^0.3.0"
- },
- "dependencies": {
- "semver": {
- "version": "4.3.6",
- "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz",
- "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto="
- }
- }
- },
- "gulp-jshint": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/gulp-jshint/-/gulp-jshint-2.1.0.tgz",
- "integrity": "sha512-sP3NK8Y/1e58O0PH9t6s7DAr/lKDSUbIY207oWSeufM6/VclB7jJrIBcPCsyhrFTCDUl9DauePbt6VqP2vPM5w==",
- "dev": true,
- "requires": {
- "lodash": "^4.12.0",
- "minimatch": "^3.0.3",
- "plugin-error": "^0.1.2",
- "rcloader": "^0.2.2",
- "through2": "^2.0.0"
- }
- },
- "gulp-jsoncombine": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/gulp-jsoncombine/-/gulp-jsoncombine-1.0.4.tgz",
- "integrity": "sha1-5RAomwKoHUBR/JOUnGufFWT7V6c=",
- "requires": {
- "plugin-error": "^0.1.2",
- "through": "*",
- "vinyl": "^2.1.0"
- },
- "dependencies": {
- "clone": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
- "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18="
- },
- "clone-stats": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz",
- "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA="
- },
- "replace-ext": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz",
- "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs="
- },
- "vinyl": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz",
- "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==",
- "requires": {
- "clone": "^2.1.1",
- "clone-buffer": "^1.0.0",
- "clone-stats": "^1.0.0",
- "cloneable-readable": "^1.0.0",
- "remove-trailing-separator": "^1.0.1",
- "replace-ext": "^1.0.0"
- }
- }
- }
- },
- "gulp-print": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/gulp-print/-/gulp-print-2.0.1.tgz",
- "integrity": "sha1-Gs7ljqyK8tPErTMp2+RldYOTxBQ=",
- "requires": {
- "gulp-util": "^3.0.6",
- "map-stream": "~0.0.6"
- }
- },
- "gulp-util": {
- "version": "3.0.8",
- "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz",
- "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=",
- "requires": {
- "array-differ": "^1.0.0",
- "array-uniq": "^1.0.2",
- "beeper": "^1.0.0",
- "chalk": "^1.0.0",
- "dateformat": "^2.0.0",
- "fancy-log": "^1.1.0",
- "gulplog": "^1.0.0",
- "has-gulplog": "^0.1.0",
- "lodash._reescape": "^3.0.0",
- "lodash._reevaluate": "^3.0.0",
- "lodash._reinterpolate": "^3.0.0",
- "lodash.template": "^3.0.0",
- "minimist": "^1.1.0",
- "multipipe": "^0.1.2",
- "object-assign": "^3.0.0",
- "replace-ext": "0.0.1",
- "through2": "^2.0.0",
- "vinyl": "^0.5.0"
- }
- },
- "gulplog": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz",
- "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=",
- "requires": {
- "glogg": "^1.0.0"
- }
- },
- "has-ansi": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
- "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
- "requires": {
- "ansi-regex": "^2.0.0"
- }
- },
- "has-binary2": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz",
- "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==",
- "requires": {
- "isarray": "2.0.1"
- }
- },
- "has-cors": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz",
- "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk="
- },
- "has-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
- "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo="
- },
- "has-gulplog": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz",
- "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=",
- "requires": {
- "sparkles": "^1.0.0"
- }
- },
- "has-value": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
- "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
- "requires": {
- "get-value": "^2.0.6",
- "has-values": "^1.0.0",
- "isobject": "^3.0.0"
- }
- },
- "has-values": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
- "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
- "requires": {
- "is-number": "^3.0.0",
- "kind-of": "^4.0.0"
- },
- "dependencies": {
- "kind-of": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
- "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
- "hash-base": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz",
- "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=",
- "requires": {
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
- }
- },
- "hash.js": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
- "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
- "requires": {
- "inherits": "^2.0.3",
- "minimalistic-assert": "^1.0.1"
- }
- },
- "hasher": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/hasher/-/hasher-1.2.0.tgz",
- "integrity": "sha1-i1NBw0lhJLBySshVX7uMo2Pru3M=",
- "requires": {
- "signals": ">0.7 <2.0"
- }
- },
- "hmac-drbg": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
- "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
- "requires": {
- "hash.js": "^1.0.3",
- "minimalistic-assert": "^1.0.0",
- "minimalistic-crypto-utils": "^1.0.1"
- }
- },
- "homedir-polyfill": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz",
- "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=",
- "requires": {
- "parse-passwd": "^1.0.0"
- }
- },
- "hosted-git-info": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz",
- "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w=="
- },
- "htmlparser2": {
- "version": "3.10.0",
- "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.0.tgz",
- "integrity": "sha512-J1nEUGv+MkXS0weHNWVKJJ+UrLfePxRWpN3C9bEi9fLxL2+ggW94DQvgYVXsaT30PGwYRIZKNZXuyMhp3Di4bQ==",
- "requires": {
- "domelementtype": "^1.3.0",
- "domhandler": "^2.3.0",
- "domutils": "^1.5.1",
- "entities": "^1.1.1",
- "inherits": "^2.0.1",
- "readable-stream": "^3.0.6"
- },
- "dependencies": {
- "readable-stream": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.1.1.tgz",
- "integrity": "sha512-DkN66hPyqDhnIQ6Jcsvx9bFjhw214O4poMBcIMgPVpQvNy9a0e0Uhg5SqySyDKAmUlwt8LonTBz1ezOnM8pUdA==",
- "requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- }
- }
- }
- },
- "http-errors": {
- "version": "1.6.3",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
- "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
- "requires": {
- "depd": "~1.1.2",
- "inherits": "2.0.3",
- "setprototypeof": "1.1.0",
- "statuses": ">= 1.4.0 < 2"
- },
- "dependencies": {
- "statuses": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
- "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
- }
- }
- },
- "http-proxy": {
- "version": "1.15.2",
- "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.15.2.tgz",
- "integrity": "sha1-ZC/cr/5S00SNK9o7AHnpQJBk2jE=",
- "requires": {
- "eventemitter3": "1.x.x",
- "requires-port": "1.x.x"
- }
- },
- "https-browserify": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
- "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM="
- },
- "iconv-lite": {
- "version": "0.4.23",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz",
- "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==",
- "requires": {
- "safer-buffer": ">= 2.1.2 < 3"
- }
- },
- "ieee754": {
- "version": "1.1.12",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz",
- "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA=="
- },
- "immutable": {
- "version": "3.8.2",
- "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz",
- "integrity": "sha1-wkOZUUVbs5kT2vKBN28VMOEErfM="
- },
- "indexof": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
- "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10="
- },
- "inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
- "requires": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
- },
- "ini": {
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
- "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw=="
- },
- "interpret": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz",
- "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw=="
- },
- "invert-kv": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
- "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY="
- },
- "is-absolute": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz",
- "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==",
- "requires": {
- "is-relative": "^1.0.0",
- "is-windows": "^1.0.1"
- }
- },
- "is-accessor-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
- "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
- "requires": {
- "kind-of": "^3.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
- "is-arrayish": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
- },
- "is-binary-path": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
- "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
- "requires": {
- "binary-extensions": "^1.0.0"
- }
- },
- "is-buffer": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
- "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
- },
- "is-data-descriptor": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
- "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
- "requires": {
- "kind-of": "^3.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
- "is-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
- "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
- "requires": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
- },
- "dependencies": {
- "kind-of": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
- "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
- }
- }
- },
- "is-dotfile": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
- "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE="
- },
- "is-equal-shallow": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
- "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
- "requires": {
- "is-primitive": "^2.0.0"
- }
- },
- "is-extendable": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
- "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik="
- },
- "is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
- },
- "is-fullwidth-code-point": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
- "requires": {
- "number-is-nan": "^1.0.0"
- }
- },
- "is-glob": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz",
- "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=",
- "requires": {
- "is-extglob": "^2.1.1"
- }
- },
- "is-number": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
- "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
- "requires": {
- "kind-of": "^3.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
- "is-number-like": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/is-number-like/-/is-number-like-1.0.8.tgz",
- "integrity": "sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA==",
- "requires": {
- "lodash.isfinite": "^3.3.2"
- }
- },
- "is-plain-object": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
- "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
- "requires": {
- "isobject": "^3.0.1"
- }
- },
- "is-posix-bracket": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
- "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q="
- },
- "is-primitive": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
- "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU="
- },
- "is-relative": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz",
- "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==",
- "requires": {
- "is-unc-path": "^1.0.0"
- }
- },
- "is-stream": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
- },
- "is-unc-path": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz",
- "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==",
- "requires": {
- "unc-path-regex": "^0.1.2"
- }
- },
- "is-utf8": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
- "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI="
- },
- "is-windows": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
- "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA=="
- },
- "is-wsl": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
- "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0="
- },
- "isarray": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
- "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4="
- },
- "isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
- },
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
- },
- "jshint": {
- "version": "2.10.1",
- "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.10.1.tgz",
- "integrity": "sha512-9GpPfKeffYBl7oBDX2lHPG16j0AM7D2bn3aLy9DaWTr6CWa0i/7UGhX8WLZ7V14QQnnr4hXbjauTLYg06F+HYw==",
- "dev": true,
- "requires": {
- "cli": "~1.0.0",
- "console-browserify": "1.1.x",
- "exit": "0.1.x",
- "htmlparser2": "3.8.x",
- "lodash": "~4.17.10",
- "minimatch": "~3.0.2",
- "shelljs": "0.3.x",
- "strip-json-comments": "1.0.x"
- },
- "dependencies": {
- "domhandler": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz",
- "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=",
- "dev": true,
- "requires": {
- "domelementtype": "1"
- }
- },
- "entities": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz",
- "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=",
- "dev": true
- },
- "htmlparser2": {
- "version": "3.8.3",
- "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz",
- "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=",
- "dev": true,
- "requires": {
- "domelementtype": "1",
- "domhandler": "2.3",
- "domutils": "1.5",
- "entities": "1.0",
- "readable-stream": "1.1"
- }
- },
- "isarray": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
- "dev": true
- },
- "readable-stream": {
- "version": "1.1.14",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
- "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
- "dev": true,
- "requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.1",
- "isarray": "0.0.1",
- "string_decoder": "~0.10.x"
- }
- },
- "string_decoder": {
- "version": "0.10.31",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
- "dev": true
- }
- }
- },
- "json-loader": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz",
- "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w=="
- },
- "json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
- },
- "json-stable-stringify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
- "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
- "requires": {
- "jsonify": "~0.0.0"
- }
- },
- "json5": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
- "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE="
- },
- "jsonfile": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz",
- "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=",
- "requires": {
- "graceful-fs": "^4.1.6"
- }
- },
- "jsonify": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
- "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM="
- },
- "kind-of": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
- "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
- },
- "lazy-cache": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
- "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4="
- },
- "lcid": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
- "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
- "requires": {
- "invert-kv": "^1.0.0"
- }
- },
- "liftoff": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz",
- "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=",
- "requires": {
- "extend": "^3.0.0",
- "findup-sync": "^2.0.0",
- "fined": "^1.0.1",
- "flagged-respawn": "^1.0.0",
- "is-plain-object": "^2.0.4",
- "object.map": "^1.0.0",
- "rechoir": "^0.6.2",
- "resolve": "^1.1.7"
- }
- },
- "limiter": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.4.tgz",
- "integrity": "sha512-XCpr5bElgDI65vVgstP8TWjv6/QKWm9GU5UG0Pr5sLQ3QLo8NVKsioe+Jed5/3vFOe3IQuqE7DKwTvKQkjTHvg=="
- },
- "linkify-it": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.1.0.tgz",
- "integrity": "sha512-4REs8/062kV2DSHxNfq5183zrqXMl7WP0WzABH9IeJI+NLm429FgE1PDecltYfnOoFDFlZGh2T8PfZn0r+GTRg==",
- "requires": {
- "uc.micro": "^1.0.1"
- }
- },
- "load-json-file": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
- "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
- "requires": {
- "graceful-fs": "^4.1.2",
- "parse-json": "^2.2.0",
- "pify": "^2.0.0",
- "pinkie-promise": "^2.0.0",
- "strip-bom": "^2.0.0"
- }
- },
- "loader-runner": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz",
- "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw=="
- },
- "loader-utils": {
- "version": "0.2.17",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz",
- "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=",
- "requires": {
- "big.js": "^3.1.3",
- "emojis-list": "^2.0.0",
- "json5": "^0.5.0",
- "object-assign": "^4.0.1"
- },
- "dependencies": {
- "object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
- }
- }
- },
- "localtunnel": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-1.9.1.tgz",
- "integrity": "sha512-HWrhOslklDvxgOGFLxi6fQVnvpl6XdX4sPscfqMZkzi3gtt9V7LKBWYvNUcpHSVvjwCQ6xzXacVvICNbNcyPnQ==",
- "requires": {
- "axios": "0.17.1",
- "debug": "2.6.9",
- "openurl": "1.1.1",
- "yargs": "6.6.0"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "requires": {
- "ms": "2.0.0"
- }
- },
- "yargs": {
- "version": "6.6.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz",
- "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=",
- "requires": {
- "camelcase": "^3.0.0",
- "cliui": "^3.2.0",
- "decamelize": "^1.1.1",
- "get-caller-file": "^1.0.1",
- "os-locale": "^1.4.0",
- "read-pkg-up": "^1.0.1",
- "require-directory": "^2.1.1",
- "require-main-filename": "^1.0.1",
- "set-blocking": "^2.0.0",
- "string-width": "^1.0.2",
- "which-module": "^1.0.0",
- "y18n": "^3.2.1",
- "yargs-parser": "^4.2.0"
- }
- }
- }
- },
- "locate-path": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
- "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
- "requires": {
- "p-locate": "^2.0.0",
- "path-exists": "^3.0.0"
- },
- "dependencies": {
- "path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
- }
- }
- },
- "lodash": {
- "version": "4.17.11",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
- "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg=="
- },
- "lodash._basecopy": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz",
- "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY="
- },
- "lodash._basetostring": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz",
- "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U="
- },
- "lodash._basevalues": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz",
- "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc="
- },
- "lodash._getnative": {
- "version": "3.9.1",
- "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz",
- "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U="
- },
- "lodash._isiterateecall": {
- "version": "3.0.9",
- "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz",
- "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw="
- },
- "lodash._reescape": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz",
- "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo="
- },
- "lodash._reevaluate": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz",
- "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0="
- },
- "lodash._reinterpolate": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
- "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0="
- },
- "lodash._root": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz",
- "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI="
- },
- "lodash.assign": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz",
- "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=",
- "dev": true
- },
- "lodash.clone": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.clone/-/lodash.clone-4.5.0.tgz",
- "integrity": "sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y="
- },
- "lodash.clonedeep": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
- "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=",
- "dev": true
- },
- "lodash.escape": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz",
- "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=",
- "requires": {
- "lodash._root": "^3.0.0"
- }
- },
- "lodash.isarguments": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
- "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo="
- },
- "lodash.isarray": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz",
- "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U="
- },
- "lodash.isfinite": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz",
- "integrity": "sha1-+4m2WpqAKBgz8LdHizpRBPiY67M="
- },
- "lodash.isobject": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz",
- "integrity": "sha1-PI+41bW/S/kK4G4U8qUwpO2TXh0=",
- "dev": true
- },
- "lodash.keys": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz",
- "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=",
- "requires": {
- "lodash._getnative": "^3.0.0",
- "lodash.isarguments": "^3.0.0",
- "lodash.isarray": "^3.0.0"
- }
- },
- "lodash.merge": {
- "version": "4.6.1",
- "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.1.tgz",
- "integrity": "sha512-AOYza4+Hf5z1/0Hztxpm2/xiPZgi/cjMqdnKTUWTBSKchJlxXXuUSxCCl8rJlf4g6yww/j6mA8nC8Hw/EZWxKQ==",
- "dev": true
- },
- "lodash.restparam": {
- "version": "3.6.1",
- "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz",
- "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU="
- },
- "lodash.some": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz",
- "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0="
- },
- "lodash.template": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz",
- "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=",
- "requires": {
- "lodash._basecopy": "^3.0.0",
- "lodash._basetostring": "^3.0.0",
- "lodash._basevalues": "^3.0.0",
- "lodash._isiterateecall": "^3.0.0",
- "lodash._reinterpolate": "^3.0.0",
- "lodash.escape": "^3.0.0",
- "lodash.keys": "^3.0.0",
- "lodash.restparam": "^3.0.0",
- "lodash.templatesettings": "^3.0.0"
- }
- },
- "lodash.templatesettings": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz",
- "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=",
- "requires": {
- "lodash._reinterpolate": "^3.0.0",
- "lodash.escape": "^3.0.0"
- }
- },
- "longest": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
- "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc="
- },
- "lru-cache": {
- "version": "2.7.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
- "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI="
- },
- "make-iterator": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz",
- "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==",
- "requires": {
- "kind-of": "^6.0.2"
- }
- },
- "map-cache": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
- "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8="
- },
- "map-stream": {
- "version": "0.0.7",
- "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz",
- "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg="
- },
- "map-visit": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
- "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
- "requires": {
- "object-visit": "^1.0.0"
- }
- },
- "markdown-it": {
- "version": "8.4.2",
- "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz",
- "integrity": "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==",
- "requires": {
- "argparse": "^1.0.7",
- "entities": "~1.1.1",
- "linkify-it": "^2.0.0",
- "mdurl": "^1.0.1",
- "uc.micro": "^1.0.5"
- }
- },
- "math-random": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz",
- "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A=="
- },
- "md5.js": {
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
- "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
- "requires": {
- "hash-base": "^3.0.0",
- "inherits": "^2.0.1",
- "safe-buffer": "^5.1.2"
- }
- },
- "mdurl": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
- "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4="
- },
- "mem": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz",
- "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=",
- "requires": {
- "mimic-fn": "^1.0.0"
- }
- },
- "memory-fs": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
- "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
- "requires": {
- "errno": "^0.1.3",
- "readable-stream": "^2.0.1"
- }
- },
- "micromatch": {
- "version": "2.3.11",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
- "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
- "requires": {
- "arr-diff": "^2.0.0",
- "array-unique": "^0.2.1",
- "braces": "^1.8.2",
- "expand-brackets": "^0.1.4",
- "extglob": "^0.3.1",
- "filename-regex": "^2.0.0",
- "is-extglob": "^1.0.0",
- "is-glob": "^2.0.1",
- "kind-of": "^3.0.2",
- "normalize-path": "^2.0.1",
- "object.omit": "^2.0.0",
- "parse-glob": "^3.0.4",
- "regex-cache": "^0.4.2"
- },
- "dependencies": {
- "arr-diff": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
- "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
- "requires": {
- "arr-flatten": "^1.0.1"
- }
- },
- "array-unique": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
- "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM="
- },
- "braces": {
- "version": "1.8.5",
- "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
- "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
- "requires": {
- "expand-range": "^1.8.1",
- "preserve": "^0.2.0",
- "repeat-element": "^1.1.2"
- }
- },
- "expand-brackets": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
- "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
- "requires": {
- "is-posix-bracket": "^0.1.0"
- }
- },
- "extglob": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
- "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
- "requires": {
- "is-extglob": "^1.0.0"
- }
- },
- "is-extglob": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
- "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
- },
- "is-glob": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
- "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
- "requires": {
- "is-extglob": "^1.0.0"
- }
- },
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "requires": {
- "is-buffer": "^1.1.5"
- }
- },
- "normalize-path": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
- "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
- "requires": {
- "remove-trailing-separator": "^1.0.1"
- }
- }
- }
- },
- "miller-rabin": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
- "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
- "requires": {
- "bn.js": "^4.0.0",
- "brorand": "^1.0.1"
- }
- },
- "mime": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
- "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ=="
- },
- "mime-db": {
- "version": "1.37.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz",
- "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg=="
- },
- "mime-types": {
- "version": "2.1.21",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz",
- "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==",
- "requires": {
- "mime-db": "~1.37.0"
- }
- },
- "mimic-fn": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
- "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ=="
- },
- "minimalistic-assert": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
- "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="
- },
- "minimalistic-crypto-utils": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
- "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo="
- },
- "minimatch": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- },
- "minimist": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
- "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
- },
- "mitt": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/mitt/-/mitt-1.1.3.tgz",
- "integrity": "sha512-mUDCnVNsAi+eD6qA0HkRkwYczbLHJ49z17BGe2PYRhZL4wpZUFZGJHU7/5tmvohoma+Hdn0Vh/oJTiPEmgSruA=="
- },
- "mixin-deep": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz",
- "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==",
- "requires": {
- "for-in": "^1.0.2",
- "is-extendable": "^1.0.1"
- },
- "dependencies": {
- "is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "requires": {
- "is-plain-object": "^2.0.4"
- }
- }
- }
- },
- "mkdirp": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
- "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
- "requires": {
- "minimist": "0.0.8"
- },
- "dependencies": {
- "minimist": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
- "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
- }
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
- },
- "multipipe": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz",
- "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=",
- "requires": {
- "duplexer2": "0.0.2"
- }
- },
- "nan": {
- "version": "2.12.1",
- "resolved": "https://registry.npmjs.org/nan/-/nan-2.12.1.tgz",
- "integrity": "sha512-JY7V6lRkStKcKTvHO5NVSQRv+RV+FIL5pvDoLiAtSL9pKlC5x9PKQcZDsq7m4FO4d57mkhC6Z+QhAh3Jdk5JFw==",
- "optional": true
- },
- "nanomatch": {
- "version": "1.2.13",
- "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
- "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
- "requires": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "fragment-cache": "^0.2.1",
- "is-windows": "^1.0.2",
- "kind-of": "^6.0.2",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- }
- },
- "natives": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.6.tgz",
- "integrity": "sha512-6+TDFewD4yxY14ptjKaS63GVdtKiES1pTPyxn9Jb0rBqPMZ7VcCiooEhPNsr+mqHtMGxa/5c/HhcC4uPEUw/nA=="
- },
- "negotiator": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
- "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk="
- },
- "neo-async": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.0.tgz",
- "integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA=="
- },
- "next-tick": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
- "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw="
- },
- "node-libs-browser": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.0.tgz",
- "integrity": "sha512-5MQunG/oyOaBdttrL40dA7bUfPORLRWMUJLQtMg7nluxUvk5XwnLdL9twQHFAjRx/y7mIMkLKT9++qPbbk6BZA==",
- "requires": {
- "assert": "^1.1.1",
- "browserify-zlib": "^0.2.0",
- "buffer": "^4.3.0",
- "console-browserify": "^1.1.0",
- "constants-browserify": "^1.0.0",
- "crypto-browserify": "^3.11.0",
- "domain-browser": "^1.1.1",
- "events": "^3.0.0",
- "https-browserify": "^1.0.0",
- "os-browserify": "^0.3.0",
- "path-browserify": "0.0.0",
- "process": "^0.11.10",
- "punycode": "^1.2.4",
- "querystring-es3": "^0.2.0",
- "readable-stream": "^2.3.3",
- "stream-browserify": "^2.0.1",
- "stream-http": "^2.7.2",
- "string_decoder": "^1.0.0",
- "timers-browserify": "^2.0.4",
- "tty-browserify": "0.0.0",
- "url": "^0.11.0",
- "util": "^0.11.0",
- "vm-browserify": "0.0.4"
- }
- },
- "normalize-package-data": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
- "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
- "requires": {
- "hosted-git-info": "^2.1.4",
- "resolve": "^1.10.0",
- "semver": "2 || 3 || 4 || 5",
- "validate-npm-package-license": "^3.0.1"
- }
- },
- "normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
- },
- "npm-run-path": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
- "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
- "requires": {
- "path-key": "^2.0.0"
- }
- },
- "nth-check": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
- "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==",
- "requires": {
- "boolbase": "~1.0.0"
- }
- },
- "number-is-nan": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
- "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
- },
- "object-assign": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
- "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I="
- },
- "object-component": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz",
- "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE="
- },
- "object-copy": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
- "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
- "requires": {
- "copy-descriptor": "^0.1.0",
- "define-property": "^0.2.5",
- "kind-of": "^3.0.3"
- },
- "dependencies": {
- "define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
- "requires": {
- "is-descriptor": "^0.1.0"
- }
- },
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
- "object-path": {
- "version": "0.9.2",
- "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.9.2.tgz",
- "integrity": "sha1-D9mnT8X60a45aLWGvaXGMr1sBaU="
- },
- "object-visit": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
- "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
- "requires": {
- "isobject": "^3.0.0"
- }
- },
- "object.defaults": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz",
- "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=",
- "requires": {
- "array-each": "^1.0.1",
- "array-slice": "^1.0.0",
- "for-own": "^1.0.0",
- "isobject": "^3.0.0"
- },
- "dependencies": {
- "for-own": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
- "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=",
- "requires": {
- "for-in": "^1.0.1"
- }
- }
- }
- },
- "object.map": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz",
- "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=",
- "requires": {
- "for-own": "^1.0.0",
- "make-iterator": "^1.0.0"
- },
- "dependencies": {
- "for-own": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
- "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=",
- "requires": {
- "for-in": "^1.0.1"
- }
- }
- }
- },
- "object.omit": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
- "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
- "requires": {
- "for-own": "^0.1.4",
- "is-extendable": "^0.1.1"
- }
- },
- "object.pick": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
- "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
- "requires": {
- "isobject": "^3.0.1"
- }
- },
- "on-finished": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
- "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
- "requires": {
- "ee-first": "1.1.1"
- }
- },
- "once": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz",
- "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=",
- "requires": {
- "wrappy": "1"
- }
- },
- "openurl": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz",
- "integrity": "sha1-OHW0sO96UsFW8NtB1GCduw+Us4c="
- },
- "opn": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz",
- "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==",
- "requires": {
- "is-wsl": "^1.1.0"
- }
- },
- "orchestrator": {
- "version": "0.3.8",
- "resolved": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz",
- "integrity": "sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4=",
- "requires": {
- "end-of-stream": "~0.1.5",
- "sequencify": "~0.0.7",
- "stream-consume": "~0.1.0"
- }
- },
- "ordered-read-streams": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz",
- "integrity": "sha1-/VZamvjrRHO6abbtijQ1LLVS8SY="
- },
- "os-browserify": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
- "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc="
- },
- "os-homedir": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
- "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
- },
- "os-locale": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
- "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
- "requires": {
- "lcid": "^1.0.0"
- }
- },
- "p-finally": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
- "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4="
- },
- "p-limit": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
- "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
- "requires": {
- "p-try": "^1.0.0"
- }
- },
- "p-locate": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
- "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
- "requires": {
- "p-limit": "^1.1.0"
- }
- },
- "p-try": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
- "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M="
- },
- "pako": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.8.tgz",
- "integrity": "sha512-6i0HVbUfcKaTv+EG8ZTr75az7GFXcLYk9UyLEg7Notv/Ma+z/UG3TCoz6GiNeOrn1E/e63I0X/Hpw18jHOTUnA=="
- },
- "parse-asn1": {
- "version": "5.1.3",
- "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.3.tgz",
- "integrity": "sha512-VrPoetlz7B/FqjBLD2f5wBVZvsZVLnRUrxVLfRYhGXCODa/NWE4p3Wp+6+aV3ZPL3KM7/OZmxDIwwijD7yuucg==",
- "requires": {
- "asn1.js": "^4.0.0",
- "browserify-aes": "^1.0.0",
- "create-hash": "^1.1.0",
- "evp_bytestokey": "^1.0.0",
- "pbkdf2": "^3.0.3",
- "safe-buffer": "^5.1.1"
- }
- },
- "parse-filepath": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz",
- "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=",
- "requires": {
- "is-absolute": "^1.0.0",
- "map-cache": "^0.2.0",
- "path-root": "^0.1.1"
- }
- },
- "parse-glob": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
- "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
- "requires": {
- "glob-base": "^0.3.0",
- "is-dotfile": "^1.0.0",
- "is-extglob": "^1.0.0",
- "is-glob": "^2.0.0"
- },
- "dependencies": {
- "is-extglob": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
- "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
- },
- "is-glob": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
- "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
- "requires": {
- "is-extglob": "^1.0.0"
- }
- }
- }
- },
- "parse-json": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
- "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
- "requires": {
- "error-ex": "^1.2.0"
- }
- },
- "parse-node-version": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz",
- "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA=="
- },
- "parse-passwd": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
- "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY="
- },
- "parse5": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz",
- "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==",
- "requires": {
- "@types/node": "*"
- }
- },
- "parseqs": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz",
- "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=",
- "requires": {
- "better-assert": "~1.0.0"
- }
- },
- "parseuri": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz",
- "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=",
- "requires": {
- "better-assert": "~1.0.0"
- }
- },
- "parseurl": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
- "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M="
- },
- "pascalcase": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
- "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ="
- },
- "path-browserify": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz",
- "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo="
- },
- "path-dirname": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
- "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA="
- },
- "path-exists": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
- "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
- "requires": {
- "pinkie-promise": "^2.0.0"
- }
- },
- "path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
- },
- "path-key": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
- "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A="
- },
- "path-parse": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
- "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="
- },
- "path-root": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz",
- "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=",
- "requires": {
- "path-root-regex": "^0.1.0"
- }
- },
- "path-root-regex": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz",
- "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0="
- },
- "path-type": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
- "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
- "requires": {
- "graceful-fs": "^4.1.2",
- "pify": "^2.0.0",
- "pinkie-promise": "^2.0.0"
- }
- },
- "pbkdf2": {
- "version": "3.0.17",
- "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz",
- "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==",
- "requires": {
- "create-hash": "^1.1.2",
- "create-hmac": "^1.1.4",
- "ripemd160": "^2.0.1",
- "safe-buffer": "^5.0.1",
- "sha.js": "^2.4.8"
- }
- },
- "pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
- },
- "pinkie": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
- "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA="
- },
- "pinkie-promise": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
- "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
- "requires": {
- "pinkie": "^2.0.0"
- }
- },
- "plugin-error": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz",
- "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=",
- "requires": {
- "ansi-cyan": "^0.1.1",
- "ansi-red": "^0.1.1",
- "arr-diff": "^1.0.1",
- "arr-union": "^2.0.1",
- "extend-shallow": "^1.1.2"
- },
- "dependencies": {
- "arr-diff": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz",
- "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=",
- "requires": {
- "arr-flatten": "^1.0.1",
- "array-slice": "^0.2.3"
- }
- },
- "arr-union": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz",
- "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0="
- },
- "array-slice": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz",
- "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU="
- },
- "extend-shallow": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz",
- "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=",
- "requires": {
- "kind-of": "^1.1.0"
- }
- },
- "kind-of": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz",
- "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ="
- }
- }
- },
- "portscanner": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.1.1.tgz",
- "integrity": "sha1-6rtAnk3iSVD1oqUW01rnaTQ/u5Y=",
- "requires": {
- "async": "1.5.2",
- "is-number-like": "^1.0.3"
- }
- },
- "posix-character-classes": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
- "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs="
- },
- "preserve": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
- "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks="
- },
- "pretty-hrtime": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz",
- "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE="
- },
- "process": {
- "version": "0.11.10",
- "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
- "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI="
- },
- "process-nextick-args": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
- "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
- },
- "prr": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
- "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY="
- },
- "pseudomap": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
- "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
- },
- "public-encrypt": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz",
- "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==",
- "requires": {
- "bn.js": "^4.1.0",
- "browserify-rsa": "^4.0.0",
- "create-hash": "^1.1.0",
- "parse-asn1": "^5.0.0",
- "randombytes": "^2.0.1",
- "safe-buffer": "^5.1.2"
- }
- },
- "punycode": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
- "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
- },
- "qs": {
- "version": "6.2.3",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.3.tgz",
- "integrity": "sha1-HPyyXBCpsrSDBT/zn138kjOQjP4="
- },
- "querystring": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
- "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA="
- },
- "querystring-es3": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
- "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM="
- },
- "randomatic": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz",
- "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==",
- "requires": {
- "is-number": "^4.0.0",
- "kind-of": "^6.0.0",
- "math-random": "^1.0.1"
- },
- "dependencies": {
- "is-number": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
- "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ=="
- }
- }
- },
- "randombytes": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz",
- "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==",
- "requires": {
- "safe-buffer": "^5.1.0"
- }
- },
- "randomfill": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
- "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
- "requires": {
- "randombytes": "^2.0.5",
- "safe-buffer": "^5.1.0"
- }
- },
- "range-parser": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
- "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4="
- },
- "raw-body": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz",
- "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==",
- "requires": {
- "bytes": "3.0.0",
- "http-errors": "1.6.3",
- "iconv-lite": "0.4.23",
- "unpipe": "1.0.0"
- }
- },
- "rcfinder": {
- "version": "0.1.9",
- "resolved": "https://registry.npmjs.org/rcfinder/-/rcfinder-0.1.9.tgz",
- "integrity": "sha1-8+gPOH3fmugK4wpBADKWQuroERU=",
- "dev": true,
- "requires": {
- "lodash.clonedeep": "^4.3.2"
- }
- },
- "rcloader": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/rcloader/-/rcloader-0.2.2.tgz",
- "integrity": "sha1-WNIpi0YtC5v9ITPSoex0+9cFxxc=",
- "dev": true,
- "requires": {
- "lodash.assign": "^4.2.0",
- "lodash.isobject": "^3.0.2",
- "lodash.merge": "^4.6.0",
- "rcfinder": "^0.1.6"
- }
- },
- "read-pkg": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
- "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
- "requires": {
- "load-json-file": "^1.0.0",
- "normalize-package-data": "^2.3.2",
- "path-type": "^1.0.0"
- }
- },
- "read-pkg-up": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
- "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
- "requires": {
- "find-up": "^1.0.0",
- "read-pkg": "^1.0.0"
- }
- },
- "readable-stream": {
- "version": "2.3.6",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
- "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
- "requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- },
- "dependencies": {
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
- }
- }
- },
- "readdirp": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
- "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
- "requires": {
- "graceful-fs": "^4.1.11",
- "micromatch": "^3.1.10",
- "readable-stream": "^2.0.2"
- },
- "dependencies": {
- "micromatch": {
- "version": "3.1.10",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
- "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
- "requires": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "braces": "^2.3.1",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "extglob": "^2.0.4",
- "fragment-cache": "^0.2.1",
- "kind-of": "^6.0.2",
- "nanomatch": "^1.2.9",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.2"
- }
- }
- }
- },
- "rechoir": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
- "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
- "requires": {
- "resolve": "^1.1.6"
- }
- },
- "regex-cache": {
- "version": "0.4.4",
- "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",
- "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
- "requires": {
- "is-equal-shallow": "^0.1.3"
- }
- },
- "regex-not": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
- "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
- "requires": {
- "extend-shallow": "^3.0.2",
- "safe-regex": "^1.1.0"
- }
- },
- "remove-trailing-separator": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
- "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8="
- },
- "repeat-element": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
- "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g=="
- },
- "repeat-string": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
- "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
- },
- "replace-ext": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz",
- "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ="
- },
- "require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
- },
- "require-main-filename": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
- "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE="
- },
- "requires-port": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
- "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8="
- },
- "resolve": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz",
- "integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==",
- "requires": {
- "path-parse": "^1.0.6"
- }
- },
- "resolve-dir": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz",
- "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=",
- "requires": {
- "expand-tilde": "^2.0.0",
- "global-modules": "^1.0.0"
- }
- },
- "resolve-url": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
- "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo="
- },
- "resp-modifier": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/resp-modifier/-/resp-modifier-6.0.2.tgz",
- "integrity": "sha1-sSTeXE+6/LpUH0j/pzlw9KpFa08=",
- "requires": {
- "debug": "^2.2.0",
- "minimatch": "^3.0.2"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "requires": {
- "ms": "2.0.0"
- }
- }
- }
- },
- "ret": {
- "version": "0.1.15",
- "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
- "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg=="
- },
- "right-align": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
- "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
- "requires": {
- "align-text": "^0.1.1"
- }
- },
- "ripemd160": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
- "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
- "requires": {
- "hash-base": "^3.0.0",
- "inherits": "^2.0.1"
- }
- },
- "run-sequence": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/run-sequence/-/run-sequence-2.2.1.tgz",
- "integrity": "sha512-qkzZnQWMZjcKbh3CNly2srtrkaO/2H/SI5f2eliMCapdRD3UhMrwjfOAZJAnZ2H8Ju4aBzFZkBGXUqFs9V0yxw==",
- "requires": {
- "chalk": "^1.1.3",
- "fancy-log": "^1.3.2",
- "plugin-error": "^0.1.2"
- }
- },
- "rx": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz",
- "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I="
- },
- "rxjs": {
- "version": "5.5.12",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz",
- "integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==",
- "requires": {
- "symbol-observable": "1.0.1"
- }
- },
- "safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
- },
- "safe-regex": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
- "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
- "requires": {
- "ret": "~0.1.10"
- }
- },
- "safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
- },
- "semver": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
- "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg=="
- },
- "send": {
- "version": "0.16.2",
- "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz",
- "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==",
- "requires": {
- "debug": "2.6.9",
- "depd": "~1.1.2",
- "destroy": "~1.0.4",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "fresh": "0.5.2",
- "http-errors": "~1.6.2",
- "mime": "1.4.1",
- "ms": "2.0.0",
- "on-finished": "~2.3.0",
- "range-parser": "~1.2.0",
- "statuses": "~1.4.0"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "requires": {
- "ms": "2.0.0"
- }
- },
- "statuses": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
- "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew=="
- }
- }
- },
- "sequencify": {
- "version": "0.0.7",
- "resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz",
- "integrity": "sha1-kM/xnQLgcCf9dn9erT57ldHnOAw="
- },
- "serve-index": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz",
- "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=",
- "requires": {
- "accepts": "~1.3.4",
- "batch": "0.6.1",
- "debug": "2.6.9",
- "escape-html": "~1.0.3",
- "http-errors": "~1.6.2",
- "mime-types": "~2.1.17",
- "parseurl": "~1.3.2"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "requires": {
- "ms": "2.0.0"
- }
- }
- }
- },
- "serve-static": {
- "version": "1.13.2",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz",
- "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==",
- "requires": {
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "parseurl": "~1.3.2",
- "send": "0.16.2"
- }
- },
- "server-destroy": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz",
- "integrity": "sha1-8Tv5KOQrnD55OD5hzDmYtdFObN0="
- },
- "set-blocking": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
- "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
- },
- "set-value": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz",
- "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==",
- "requires": {
- "extend-shallow": "^2.0.1",
- "is-extendable": "^0.1.1",
- "is-plain-object": "^2.0.3",
- "split-string": "^3.0.1"
- },
- "dependencies": {
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "requires": {
- "is-extendable": "^0.1.0"
- }
- }
- }
- },
- "setimmediate": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
- "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU="
- },
- "setprototypeof": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
- "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ=="
- },
- "sha.js": {
- "version": "2.4.11",
- "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
- "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
- "requires": {
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
- }
- },
- "shebang-command": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
- "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
- "requires": {
- "shebang-regex": "^1.0.0"
- }
- },
- "shebang-regex": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
- "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM="
- },
- "shelljs": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz",
- "integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=",
- "dev": true
- },
- "sigmund": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
- "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA="
- },
- "signal-exit": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
- "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
- },
- "signals": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/signals/-/signals-1.0.0.tgz",
- "integrity": "sha1-ZfDBWZNSs1Ny7KrlolDmEHN27Wk="
- },
- "snapdragon": {
- "version": "0.8.2",
- "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
- "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
- "requires": {
- "base": "^0.11.1",
- "debug": "^2.2.0",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "map-cache": "^0.2.2",
- "source-map": "^0.5.6",
- "source-map-resolve": "^0.5.0",
- "use": "^3.1.0"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "requires": {
- "ms": "2.0.0"
- }
- },
- "define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
- "requires": {
- "is-descriptor": "^0.1.0"
- }
- },
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "requires": {
- "is-extendable": "^0.1.0"
- }
- }
- }
- },
- "snapdragon-node": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
- "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
- "requires": {
- "define-property": "^1.0.0",
- "isobject": "^3.0.0",
- "snapdragon-util": "^3.0.1"
- },
- "dependencies": {
- "define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
- "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
- "requires": {
- "is-descriptor": "^1.0.0"
- }
- },
- "is-accessor-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-data-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-descriptor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
- "requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- }
- }
- }
- },
- "snapdragon-util": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
- "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
- "requires": {
- "kind-of": "^3.2.0"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
- "socket.io": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz",
- "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==",
- "requires": {
- "debug": "~3.1.0",
- "engine.io": "~3.2.0",
- "has-binary2": "~1.0.2",
- "socket.io-adapter": "~1.1.0",
- "socket.io-client": "2.1.1",
- "socket.io-parser": "~3.2.0"
- },
- "dependencies": {
- "engine.io-client": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz",
- "integrity": "sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==",
- "requires": {
- "component-emitter": "1.2.1",
- "component-inherit": "0.0.3",
- "debug": "~3.1.0",
- "engine.io-parser": "~2.1.1",
- "has-cors": "1.1.0",
- "indexof": "0.0.1",
- "parseqs": "0.0.5",
- "parseuri": "0.0.5",
- "ws": "~3.3.1",
- "xmlhttprequest-ssl": "~1.5.4",
- "yeast": "0.1.2"
- }
- },
- "socket.io-client": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz",
- "integrity": "sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==",
- "requires": {
- "backo2": "1.0.2",
- "base64-arraybuffer": "0.1.5",
- "component-bind": "1.0.0",
- "component-emitter": "1.2.1",
- "debug": "~3.1.0",
- "engine.io-client": "~3.2.0",
- "has-binary2": "~1.0.2",
- "has-cors": "1.1.0",
- "indexof": "0.0.1",
- "object-component": "0.0.3",
- "parseqs": "0.0.5",
- "parseuri": "0.0.5",
- "socket.io-parser": "~3.2.0",
- "to-array": "0.1.4"
- }
- },
- "socket.io-parser": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz",
- "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==",
- "requires": {
- "component-emitter": "1.2.1",
- "debug": "~3.1.0",
- "isarray": "2.0.1"
- }
- },
- "ws": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
- "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==",
- "requires": {
- "async-limiter": "~1.0.0",
- "safe-buffer": "~5.1.0",
- "ultron": "~1.1.0"
- }
- }
- }
- },
- "socket.io-adapter": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz",
- "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs="
- },
- "socket.io-client": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.2.0.tgz",
- "integrity": "sha512-56ZrkTDbdTLmBIyfFYesgOxsjcLnwAKoN4CiPyTVkMQj3zTUh0QAx3GbvIvLpFEOvQWu92yyWICxB0u7wkVbYA==",
- "requires": {
- "backo2": "1.0.2",
- "base64-arraybuffer": "0.1.5",
- "component-bind": "1.0.0",
- "component-emitter": "1.2.1",
- "debug": "~3.1.0",
- "engine.io-client": "~3.3.1",
- "has-binary2": "~1.0.2",
- "has-cors": "1.1.0",
- "indexof": "0.0.1",
- "object-component": "0.0.3",
- "parseqs": "0.0.5",
- "parseuri": "0.0.5",
- "socket.io-parser": "~3.3.0",
- "to-array": "0.1.4"
- }
- },
- "socket.io-parser": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz",
- "integrity": "sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==",
- "requires": {
- "component-emitter": "1.2.1",
- "debug": "~3.1.0",
- "isarray": "2.0.1"
- }
- },
- "source-list-map": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-1.1.2.tgz",
- "integrity": "sha1-mIkBnRAkzOVc3AaUmDN+9hhqEaE="
- },
- "source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
- },
- "source-map-resolve": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz",
- "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==",
- "requires": {
- "atob": "^2.1.1",
- "decode-uri-component": "^0.2.0",
- "resolve-url": "^0.2.1",
- "source-map-url": "^0.4.0",
- "urix": "^0.1.0"
- }
- },
- "source-map-url": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
- "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM="
- },
- "sparkles": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz",
- "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw=="
- },
- "spdx-correct": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz",
- "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==",
- "requires": {
- "spdx-expression-parse": "^3.0.0",
- "spdx-license-ids": "^3.0.0"
- }
- },
- "spdx-exceptions": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
- "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA=="
- },
- "spdx-expression-parse": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
- "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
- "requires": {
- "spdx-exceptions": "^2.1.0",
- "spdx-license-ids": "^3.0.0"
- }
- },
- "spdx-license-ids": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.3.tgz",
- "integrity": "sha512-uBIcIl3Ih6Phe3XHK1NqboJLdGfwr1UN3k6wSD1dZpmPsIkb8AGNbZYJ1fOBk834+Gxy8rpfDxrS6XLEMZMY2g=="
- },
- "split-string": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
- "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
- "requires": {
- "extend-shallow": "^3.0.0"
- }
- },
- "sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
- },
- "static-extend": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
- "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
- "requires": {
- "define-property": "^0.2.5",
- "object-copy": "^0.1.0"
- },
- "dependencies": {
- "define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
- "requires": {
- "is-descriptor": "^0.1.0"
- }
- }
- }
- },
- "statuses": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz",
- "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4="
- },
- "stream-browserify": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz",
- "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==",
- "requires": {
- "inherits": "~2.0.1",
- "readable-stream": "^2.0.2"
- }
- },
- "stream-consume": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.1.tgz",
- "integrity": "sha512-tNa3hzgkjEP7XbCkbRXe1jpg+ievoa0O4SCFlMOYEscGSS4JJsckGL8swUyAa/ApGU3Ae4t6Honor4HhL+tRyg=="
- },
- "stream-http": {
- "version": "2.8.3",
- "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz",
- "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==",
- "requires": {
- "builtin-status-codes": "^3.0.0",
- "inherits": "^2.0.1",
- "readable-stream": "^2.3.6",
- "to-arraybuffer": "^1.0.0",
- "xtend": "^4.0.0"
- }
- },
- "stream-throttle": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz",
- "integrity": "sha1-rdV8jXzHOoFjDTHNVdOWHPr7qcM=",
- "requires": {
- "commander": "^2.2.0",
- "limiter": "^1.0.5"
- }
- },
- "string-width": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
- "requires": {
- "code-point-at": "^1.0.0",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
- }
- },
- "string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "requires": {
- "safe-buffer": "~5.1.0"
- }
- },
- "strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
- "requires": {
- "ansi-regex": "^2.0.0"
- }
- },
- "strip-bom": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
- "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
- "requires": {
- "is-utf8": "^0.2.0"
- }
- },
- "strip-eof": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
- "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8="
- },
- "strip-json-comments": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz",
- "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=",
- "dev": true
- },
- "supports-color": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
- "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
- },
- "symbol-observable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz",
- "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ="
- },
- "tapable": {
- "version": "0.2.9",
- "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.9.tgz",
- "integrity": "sha512-2wsvQ+4GwBvLPLWsNfLCDYGsW6xb7aeC6utq2Qh0PFwgEy7K7dsma9Jsmb2zSQj7GvYAyUGSntLtsv++GmgL1A=="
- },
- "tfunk": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/tfunk/-/tfunk-3.1.0.tgz",
- "integrity": "sha1-OORBT8ZJd9h6/apy+sttKfgve1s=",
- "requires": {
- "chalk": "^1.1.1",
- "object-path": "^0.9.0"
- }
- },
- "through": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
- "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
- },
- "through2": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
- "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
- "requires": {
- "readable-stream": "~2.3.6",
- "xtend": "~4.0.1"
- }
- },
- "tildify": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz",
- "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=",
- "requires": {
- "os-homedir": "^1.0.0"
- }
- },
- "time-stamp": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz",
- "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM="
- },
- "timers-browserify": {
- "version": "2.0.10",
- "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz",
- "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==",
- "requires": {
- "setimmediate": "^1.0.4"
- }
- },
- "to-array": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz",
- "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA="
- },
- "to-arraybuffer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
- "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M="
- },
- "to-object-path": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
- "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
- "requires": {
- "kind-of": "^3.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
- "to-regex": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
- "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
- "requires": {
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "regex-not": "^1.0.2",
- "safe-regex": "^1.1.0"
- }
- },
- "to-regex-range": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
- "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
- "requires": {
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1"
- }
- },
- "tslib": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
- "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ=="
- },
- "tty-browserify": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
- "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY="
- },
- "ua-parser-js": {
- "version": "0.7.17",
- "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.17.tgz",
- "integrity": "sha512-uRdSdu1oA1rncCQL7sCj8vSyZkgtL7faaw9Tc9rZ3mGgraQ7+Pdx7w5mnOSF3gw9ZNG6oc+KXfkon3bKuROm0g=="
- },
- "uc.micro": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz",
- "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA=="
- },
- "uglify-js": {
- "version": "2.8.29",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
- "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
- "requires": {
- "source-map": "~0.5.1",
- "uglify-to-browserify": "~1.0.0",
- "yargs": "~3.10.0"
- },
- "dependencies": {
- "camelcase": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
- "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk="
- },
- "cliui": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
- "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
- "requires": {
- "center-align": "^0.1.1",
- "right-align": "^0.1.1",
- "wordwrap": "0.0.2"
- }
- },
- "window-size": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
- "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0="
- },
- "yargs": {
- "version": "3.10.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
- "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
- "requires": {
- "camelcase": "^1.0.2",
- "cliui": "^2.1.0",
- "decamelize": "^1.0.0",
- "window-size": "0.1.0"
- }
- }
- }
- },
- "uglify-to-browserify": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
- "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
- "optional": true
- },
- "uglifyjs-webpack-plugin": {
- "version": "0.4.6",
- "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz",
- "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=",
- "requires": {
- "source-map": "^0.5.6",
- "uglify-js": "^2.8.29",
- "webpack-sources": "^1.0.1"
- },
- "dependencies": {
- "source-list-map": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz",
- "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw=="
- },
- "webpack-sources": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz",
- "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==",
- "requires": {
- "source-list-map": "^2.0.0",
- "source-map": "~0.6.1"
- },
- "dependencies": {
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
- }
- }
- }
- }
- },
- "ultron": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz",
- "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og=="
- },
- "unc-path-regex": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
- "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo="
- },
- "union-value": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz",
- "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=",
- "requires": {
- "arr-union": "^3.1.0",
- "get-value": "^2.0.6",
- "is-extendable": "^0.1.1",
- "set-value": "^0.4.3"
- },
- "dependencies": {
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "requires": {
- "is-extendable": "^0.1.0"
- }
- },
- "set-value": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz",
- "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=",
- "requires": {
- "extend-shallow": "^2.0.1",
- "is-extendable": "^0.1.1",
- "is-plain-object": "^2.0.1",
- "to-object-path": "^0.3.0"
- }
- }
- }
- },
- "unique-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz",
- "integrity": "sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs="
- },
- "universalify": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
- "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
- },
- "unpipe": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
- "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
- },
- "unset-value": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
- "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
- "requires": {
- "has-value": "^0.3.1",
- "isobject": "^3.0.0"
- },
- "dependencies": {
- "has-value": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
- "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
- "requires": {
- "get-value": "^2.0.3",
- "has-values": "^0.1.4",
- "isobject": "^2.0.0"
- },
- "dependencies": {
- "isobject": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
- "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
- "requires": {
- "isarray": "1.0.0"
- }
- }
- }
- },
- "has-values": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
- "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E="
- },
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
- }
- }
- },
- "upath": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz",
- "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw=="
- },
- "uri-js": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
- "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
- "requires": {
- "punycode": "^2.1.0"
- },
- "dependencies": {
- "punycode": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
- "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
- }
- }
- },
- "urix": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
- "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI="
- },
- "url": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
- "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
- "requires": {
- "punycode": "1.3.2",
- "querystring": "0.2.0"
- },
- "dependencies": {
- "punycode": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
- "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0="
- }
- }
- },
- "use": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
- "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ=="
- },
- "user-home": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz",
- "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA="
- },
- "util": {
- "version": "0.11.1",
- "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz",
- "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==",
- "requires": {
- "inherits": "2.0.3"
- }
- },
- "util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
- },
- "utils-merge": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
- "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
- },
- "v8flags": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz",
- "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=",
- "requires": {
- "user-home": "^1.1.1"
- }
- },
- "validate-npm-package-license": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
- "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
- "requires": {
- "spdx-correct": "^3.0.0",
- "spdx-expression-parse": "^3.0.0"
- }
- },
- "vinyl": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz",
- "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=",
- "requires": {
- "clone": "^1.0.0",
- "clone-stats": "^0.0.1",
- "replace-ext": "0.0.1"
- }
- },
- "vinyl-fs": {
- "version": "0.3.14",
- "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz",
- "integrity": "sha1-mmhRzhysHBzqX+hsCTHWIMLPqeY=",
- "requires": {
- "defaults": "^1.0.0",
- "glob-stream": "^3.1.5",
- "glob-watcher": "^0.0.6",
- "graceful-fs": "^3.0.0",
- "mkdirp": "^0.5.0",
- "strip-bom": "^1.0.0",
- "through2": "^0.6.1",
- "vinyl": "^0.4.0"
- },
- "dependencies": {
- "clone": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz",
- "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8="
- },
- "graceful-fs": {
- "version": "3.0.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz",
- "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=",
- "requires": {
- "natives": "^1.1.0"
- }
- },
- "isarray": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
- },
- "readable-stream": {
- "version": "1.0.34",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
- "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
- "requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.1",
- "isarray": "0.0.1",
- "string_decoder": "~0.10.x"
- }
- },
- "string_decoder": {
- "version": "0.10.31",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
- },
- "strip-bom": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz",
- "integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=",
- "requires": {
- "first-chunk-stream": "^1.0.0",
- "is-utf8": "^0.2.0"
- }
- },
- "through2": {
- "version": "0.6.5",
- "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
- "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
- "requires": {
- "readable-stream": ">=1.0.33-1 <1.1.0-0",
- "xtend": ">=4.0.0 <4.1.0-0"
- }
- },
- "vinyl": {
- "version": "0.4.6",
- "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz",
- "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=",
- "requires": {
- "clone": "^0.2.0",
- "clone-stats": "^0.0.1"
- }
- }
- }
- },
- "vm-browserify": {
- "version": "0.0.4",
- "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz",
- "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=",
- "requires": {
- "indexof": "0.0.1"
- }
- },
- "watchpack": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz",
- "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==",
- "requires": {
- "chokidar": "^2.0.2",
- "graceful-fs": "^4.1.2",
- "neo-async": "^2.5.0"
- }
- },
- "webpack": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-2.5.1.tgz",
- "integrity": "sha1-YXQvDPivVVuHRgqc2Lui8ePuL84=",
- "requires": {
- "acorn": "^5.0.0",
- "acorn-dynamic-import": "^2.0.0",
- "ajv": "^4.7.0",
- "ajv-keywords": "^1.1.1",
- "async": "^2.1.2",
- "enhanced-resolve": "^3.0.0",
- "interpret": "^1.0.0",
- "json-loader": "^0.5.4",
- "json5": "^0.5.1",
- "loader-runner": "^2.3.0",
- "loader-utils": "^0.2.16",
- "memory-fs": "~0.4.1",
- "mkdirp": "~0.5.0",
- "node-libs-browser": "^2.0.0",
- "source-map": "^0.5.3",
- "supports-color": "^3.1.0",
- "tapable": "~0.2.5",
- "uglify-js": "^2.8.5",
- "watchpack": "^1.3.1",
- "webpack-sources": "^0.2.3",
- "yargs": "^6.0.0"
- },
- "dependencies": {
- "async": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz",
- "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==",
- "requires": {
- "lodash": "^4.17.10"
- }
- },
- "supports-color": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
- "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
- "requires": {
- "has-flag": "^1.0.0"
- }
- }
- }
- },
- "webpack-sources": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-0.2.3.tgz",
- "integrity": "sha1-F8Yr+vE8cH+dAsR54Nzd6DgGl/s=",
- "requires": {
- "source-list-map": "^1.1.1",
- "source-map": "~0.5.3"
- }
- },
- "webpack-stream": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/webpack-stream/-/webpack-stream-4.0.3.tgz",
- "integrity": "sha512-Tx7ks7Of/JiPz7/tUM4WqSg4OcXF4m4OzNSaEzNA1TNXQaiTHIjiKqUoL79wGXbFt2q1IP8VG5DcEdaxifY5Ew==",
- "requires": {
- "fancy-log": "^1.3.2",
- "lodash.clone": "^4.3.2",
- "lodash.some": "^4.2.2",
- "memory-fs": "^0.4.1",
- "plugin-error": "^1.0.1",
- "supports-color": "^5.3.0",
- "through": "^2.3.8",
- "vinyl": "^2.1.0",
- "webpack": "^3.4.1"
- },
- "dependencies": {
- "ajv": {
- "version": "6.8.1",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.8.1.tgz",
- "integrity": "sha512-eqxCp82P+JfqL683wwsL73XmFs1eG6qjw+RD3YHx+Jll1r0jNd4dh8QG9NYAeNGA/hnZjeEDgtTskgJULbxpWQ==",
- "requires": {
- "fast-deep-equal": "^2.0.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- }
- },
- "ajv-keywords": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.3.0.tgz",
- "integrity": "sha512-CMzN9S62ZOO4sA/mJZIO4S++ZM7KFWzH3PPWkveLhy4OZ9i1/VatgwWMD46w/XbGCBy7Ye0gCk+Za6mmyfKK7g=="
- },
- "ansi-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
- },
- "async": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz",
- "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==",
- "requires": {
- "lodash": "^4.17.10"
- }
- },
- "big.js": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
- "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ=="
- },
- "camelcase": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
- "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0="
- },
- "clone": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
- "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18="
- },
- "clone-stats": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz",
- "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA="
- },
- "find-up": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
- "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
- "requires": {
- "locate-path": "^2.0.0"
- }
- },
- "has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
- },
- "is-fullwidth-code-point": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
- },
- "load-json-file": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
- "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
- "requires": {
- "graceful-fs": "^4.1.2",
- "parse-json": "^2.2.0",
- "pify": "^2.0.0",
- "strip-bom": "^3.0.0"
- }
- },
- "loader-utils": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz",
- "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==",
- "requires": {
- "big.js": "^5.2.2",
- "emojis-list": "^2.0.0",
- "json5": "^1.0.1"
- },
- "dependencies": {
- "json5": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
- "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
- "requires": {
- "minimist": "^1.2.0"
- }
- }
- }
- },
- "os-locale": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
- "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
- "requires": {
- "execa": "^0.7.0",
- "lcid": "^1.0.0",
- "mem": "^1.1.0"
- }
- },
- "path-type": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
- "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
- "requires": {
- "pify": "^2.0.0"
- }
- },
- "plugin-error": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz",
- "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==",
- "requires": {
- "ansi-colors": "^1.0.1",
- "arr-diff": "^4.0.0",
- "arr-union": "^3.1.0",
- "extend-shallow": "^3.0.2"
- }
- },
- "read-pkg": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
- "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
- "requires": {
- "load-json-file": "^2.0.0",
- "normalize-package-data": "^2.3.2",
- "path-type": "^2.0.0"
- }
- },
- "read-pkg-up": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
- "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
- "requires": {
- "find-up": "^2.0.0",
- "read-pkg": "^2.0.0"
- }
- },
- "replace-ext": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz",
- "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs="
- },
- "source-list-map": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz",
- "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw=="
- },
- "string-width": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
- "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
- "requires": {
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^4.0.0"
- }
- },
- "strip-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
- "requires": {
- "ansi-regex": "^3.0.0"
- }
- },
- "strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM="
- },
- "supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "requires": {
- "has-flag": "^3.0.0"
- }
- },
- "vinyl": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz",
- "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==",
- "requires": {
- "clone": "^2.1.1",
- "clone-buffer": "^1.0.0",
- "clone-stats": "^1.0.0",
- "cloneable-readable": "^1.0.0",
- "remove-trailing-separator": "^1.0.1",
- "replace-ext": "^1.0.0"
- }
- },
- "webpack": {
- "version": "3.12.0",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.12.0.tgz",
- "integrity": "sha512-Sw7MdIIOv/nkzPzee4o0EdvCuPmxT98+vVpIvwtcwcF1Q4SDSNp92vwcKc4REe7NItH9f1S4ra9FuQ7yuYZ8bQ==",
- "requires": {
- "acorn": "^5.0.0",
- "acorn-dynamic-import": "^2.0.0",
- "ajv": "^6.1.0",
- "ajv-keywords": "^3.1.0",
- "async": "^2.1.2",
- "enhanced-resolve": "^3.4.0",
- "escope": "^3.6.0",
- "interpret": "^1.0.0",
- "json-loader": "^0.5.4",
- "json5": "^0.5.1",
- "loader-runner": "^2.3.0",
- "loader-utils": "^1.1.0",
- "memory-fs": "~0.4.1",
- "mkdirp": "~0.5.0",
- "node-libs-browser": "^2.0.0",
- "source-map": "^0.5.3",
- "supports-color": "^4.2.1",
- "tapable": "^0.2.7",
- "uglifyjs-webpack-plugin": "^0.4.6",
- "watchpack": "^1.4.0",
- "webpack-sources": "^1.0.1",
- "yargs": "^8.0.2"
- },
- "dependencies": {
- "has-flag": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
- "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE="
- },
- "supports-color": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
- "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
- "requires": {
- "has-flag": "^2.0.0"
- }
- }
- }
- },
- "webpack-sources": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz",
- "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==",
- "requires": {
- "source-list-map": "^2.0.0",
- "source-map": "~0.6.1"
- },
- "dependencies": {
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
- }
- }
- },
- "which-module": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
- "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
- },
- "yargs": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz",
- "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=",
- "requires": {
- "camelcase": "^4.1.0",
- "cliui": "^3.2.0",
- "decamelize": "^1.1.1",
- "get-caller-file": "^1.0.1",
- "os-locale": "^2.0.0",
- "read-pkg-up": "^2.0.0",
- "require-directory": "^2.1.1",
- "require-main-filename": "^1.0.1",
- "set-blocking": "^2.0.0",
- "string-width": "^2.0.0",
- "which-module": "^2.0.0",
- "y18n": "^3.2.1",
- "yargs-parser": "^7.0.0"
- }
- },
- "yargs-parser": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz",
- "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=",
- "requires": {
- "camelcase": "^4.1.0"
- }
- }
- }
- },
- "which": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
- "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
- "requires": {
- "isexe": "^2.0.0"
- }
- },
- "which-module": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
- "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8="
- },
- "window-size": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz",
- "integrity": "sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU="
- },
- "wordwrap": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
- "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8="
- },
- "wrap-ansi": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
- "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
- "requires": {
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1"
- }
- },
- "wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
- },
- "ws": {
- "version": "6.1.3",
- "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.3.tgz",
- "integrity": "sha512-tbSxiT+qJI223AP4iLfQbkbxkwdFcneYinM2+x46Gx2wgvbaOMO36czfdfVUBRTHvzAMRhDd98sA5d/BuWbQdg==",
- "requires": {
- "async-limiter": "~1.0.0"
- }
- },
- "xmlhttprequest-ssl": {
- "version": "1.5.5",
- "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz",
- "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4="
- },
- "xtend": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
- "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
- },
- "y18n": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
- "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE="
- },
- "yallist": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
- "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
- },
- "yargs": {
- "version": "6.4.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.4.0.tgz",
- "integrity": "sha1-gW4ahm1VmMzzTlWW3c4i2S2kkNQ=",
- "requires": {
- "camelcase": "^3.0.0",
- "cliui": "^3.2.0",
- "decamelize": "^1.1.1",
- "get-caller-file": "^1.0.1",
- "os-locale": "^1.4.0",
- "read-pkg-up": "^1.0.1",
- "require-directory": "^2.1.1",
- "require-main-filename": "^1.0.1",
- "set-blocking": "^2.0.0",
- "string-width": "^1.0.2",
- "which-module": "^1.0.0",
- "window-size": "^0.2.0",
- "y18n": "^3.2.1",
- "yargs-parser": "^4.1.0"
- }
- },
- "yargs-parser": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz",
- "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=",
- "requires": {
- "camelcase": "^3.0.0"
- }
- },
- "yeast": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz",
- "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk="
- }
- }
-}
diff --git a/package.json b/package.json
index fa671c35..9b1f5ced 100644
--- a/package.json
+++ b/package.json
@@ -6,7 +6,6 @@
"license": "SEE LICENSE IN license",
"dependencies": {
"@syncfusion/ej2": "*",
- "@syncfusion/ej2-inplace-editor": "*",
"browser-sync": "^2.18.13",
"cheerio": "^1.0.0-rc.1",
"crossroads": "^0.12.2",
diff --git a/src/dashboard-layout/analytics-dashboard-stack.json b/src/dashboard-layout/analytics-dashboard-stack.json
index 80cae341..890b4fbd 100644
--- a/src/dashboard-layout/analytics-dashboard-stack.json
+++ b/src/dashboard-layout/analytics-dashboard-stack.json
@@ -1 +1 @@
-{"index.html":"
\n\n \n\n \n\n \n \n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n
","index.js":"{{ripple}}/**\n * Sample\n */\n\n var dashboard = new ej.layouts.DashboardLayout({\n columns: 6,\n cellSpacing: [5, 5],\n cellAspectRatio: 100 / 85,\n panels: [\n {\n 'sizeX': 2, 'sizeY': 1, 'row': 0, 'col': 0,\n content: '#card1'\n },\n {\n 'sizeX': 2, 'sizeY': 1, 'row': 0, 'col': 2,\n content: '#card2'\n },\n {\n 'sizeX': 2, 'sizeY': 1, 'row': 0, 'col': 4,\n content: '#card3'\n },\n {\n 'sizeX': 2, 'sizeY': 2, 'row': 1, 'col': 0,\n header: 'Active Visitors
', content: '
'\n },\n {\n 'sizeX': 2, 'sizeY': 2, 'row': 1, 'col': 2,\n header: 'Regional Map
', content: '
'\n },\n {\n 'sizeX': 2, 'sizeY': 2, 'row': 1, 'col': 4,\n header: 'Visitors by Type
', content: '
'\n },\n {\n 'sizeX': 4, 'sizeY': 2, 'row': 3, 'col': 2,\n header: 'Traffic History
', content: '
'\n },\n {\n 'sizeX': 2, 'sizeY': 2, 'row': 3, 'col': 0,\n header: 'Usage Statistics
', content: '
'\n },\n ]\n });\n dashboard.appendTo('#editLayout');\n var sidebarInstance = new ej.navigations.Sidebar({\n type: 'Over',\n dockSize: '60px',\n enableDock: true,\n target: '#target',\n closeOnDocumentClick: true\n });\n sidebarInstance.appendTo('#dockSidebar');\n\n var atcObj = new ej.dropdowns.AutoComplete({\n placeholder: 'Search Here',\n width: '215px'\n });\n atcObj.appendTo('#search');\n var centerTitle = document.createElement('div');\n centerTitle.innerHTML = 'Active users  ';\n centerTitle.style.position = 'absolute';\n centerTitle.style.visibility = 'hidden';\n var pie = new ej.charts.AccumulationChart({\n enableSmartLabels: true,\n selectionMode: 'Point',\n series: [\n {\n dataSource: window.expenseData,\n xName: 'Device', yName: 'Amount', startAngle: 0,\n endAngle: 360, innerRadius: '35%',\n radius:'100%',\n dataLabel: {\n visible: true, position: 'Inside',\n name: 'text',\n font: { color: 'white', fontWeight: '600', size: '14px' }\n }, name: 'Revenue',\n palettes: ['#357cd2', '#00bdae', '#e36593'],\n }\n ],\n legendSettings: {\n visible: false, toggleVisibility: false,\n position: 'Right', height: '28%', width: '44%'\n },\n animationComplete: function (args) {\n centerTitle.style.fontSize = getFontSize(args.accumulation.initialClipRect.width);\n var rect = centerTitle.getBoundingClientRect();\n centerTitle.style.top = (args.accumulation.origin.y - rect.height / 2) + 'px';\n centerTitle.style.left = (args.accumulation.origin.x - rect.width / 2) + 'px';\n centerTitle.style.visibility = 'visible';\n var points = args.accumulation.visibleSeries[0].points;\n for (var _i = 0, points_1 = points; _i < points_1.length; _i++) {\n var point = points_1[_i];\n if (point.labelPosition === 'Outside' && point.labelVisible) {\n var label = document.getElementById('pie_datalabel_Series_0_text_' + point.index);\n label.setAttribute('fill', 'black');\n }\n }\n },\n textRender: function (args) {\n args.series.dataLabel.font.size = getFontSize(pie.initialClipRect.width);\n pie.animateSeries = true;\n },\n tooltip: {\n enable: true,\n header: '${point.x} ',\n format: 'Composition : ${point.y}% '\n },\n width: '100%',\n height: '100%',\n load: themeAccumulation\n });\n pie.appendTo('#pie');\n document.getElementById('pie').appendChild(centerTitle);\n pie.refresh();\n function getFontSize(width) {\n if (width > 300) {\n return '13px';\n }\n else if (width > 250) {\n return '13px';\n }\n else {\n return '13px';\n }\n }\n var linechartObj = new ej.charts.Chart({\n //Initializing Primary Y Axis\n primaryYAxis: {\n maximum: 4, interval: 1,\n labelFormat: '{value}',\n lineStyle: { width: 0 },\n majorTickLines: { width: 0 },\n minorTickLines: { width: 0 }\n },\n //Initializing Primary X Axis\n primaryXAxis: {\n valueType: 'DateTime',\n labelFormat: 'MMM',\n majorGridLines: { width: 0 },\n intervalType: 'Months',\n edgeLabelPlacement: 'Shift'\n },\n chartArea: {\n border: {\n width: 0\n }\n },\n //Initializing Chart Series\n series: [\n {\n name: 'Jan', xName: 'x', yName: 'y', type: 'SplineArea',\n dataSource: [\n { x: new Date(2002, 0, 1), y: 2.2 }, { x: new Date(2003, 0, 1), y: 3.5 },\n { x: new Date(2004, 0, 1), y: 2.8 }, { x: new Date(2005, 0, 1), y: 1.5 },\n { x: new Date(2006, 0, 1), y: 2.3 }, { x: new Date(2007, 0, 1), y: 2.6 },\n { x: new Date(2008, 0, 1), y: 2.9 }, { x: new Date(2009, 0, 1), y: 3.7 },\n { x: new Date(2010, 0, 1), y: 1.4 }, { x: new Date(2011, 0, 1), y: 3.2 }\n ],\n border: { color: 'transparent' },\n fill: 'rgb(239, 183, 202)',\n opacity: 0.5\n },\n {\n name: 'Feb', xName: 'x', yName: 'y', type: 'SplineArea',\n fill: 'rgb(14, 64, 152, .6)',\n dataSource: [\n { x: new Date(2002, 0, 1), y: 2 }, { x: new Date(2003, 0, 1), y: 1.8 },\n { x: new Date(2004, 0, 1), y: 1.8 }, { x: new Date(2005, 0, 1), y: 2.2 },\n { x: new Date(2006, 0, 1), y: 2.3 }, { x: new Date(2007, 0, 1), y: 1.6 },\n { x: new Date(2008, 0, 1), y: 1.5 }, { x: new Date(2009, 0, 1), y: 2.7 },\n { x: new Date(2010, 0, 1), y: 1.5 }, { x: new Date(2011, 0, 1), y: 2.4 }\n ],\n border: { color: 'transparent' },\n opacity: 0.5\n }\n ],\n legendSettings: { visible: false },\n height: '100%',\n width: '100%',\n load: themeChart\n });\n linechartObj.appendTo('#visitorsChart');\n linechartObj.refresh();\n var columnChartObj = new ej.charts.Chart({\n //Initializing Primary X Axis\n primaryXAxis: {\n valueType: 'Category', interval: 1, majorGridLines: { width: 0 }\n },\n chartArea: { border: { width: 0 } },\n width: '100%',\n height: '100%',\n margin: { top: 30},\n //Initializing Primary X Axis\n primaryYAxis: {\n majorGridLines: { width: 0 },\n majorTickLines: { width: 0 }, lineStyle: { width: 0 }, labelStyle: { color: 'transparent' }\n },\n //Initializing Chart Series\n series: [\n {\n type: 'Column', xName: 'x', width: 2, yName: 'y', name: 'Desktop',\n dataSource: [{ x: 'Jan', y: 46 }, { x: 'Feb', y: 27 }, { x: 'Mar', y: 26 }],\n marker: { dataLabel: { visible: false, position: 'Top', font: { fontWeight: '600', color: '#ffffff' } } },\n },\n {\n fill: '#e36593',\n dataSource: [{ x: 'Jan', y: 37 }, { x: 'Feb', y: 23 }, { x: 'Mar', y: 18 }],\n type: 'Column', xName: 'x', width: 2, yName: 'y', name: 'Mobile',\n marker: { dataLabel: { visible: false, position: 'Top', font: { fontWeight: '600', color: '#ffffff' } } },\n \n },\n {\n dataSource: [{ x: 'Jan', y: 38 }, { x: 'Feb', y: 17 }, { x: 'Mar', y: 26 }],\n type: 'Column', xName: 'x', width: 2, yName: 'y', name: 'Tablet',\n marker: { dataLabel: { visible: false, position: 'Top', font: { fontWeight: '600', color: '#ffffff' } } }\n }\n ],\n load: themeChart,\n legendSettings: { visible: false }\n });\n columnChartObj.appendTo('#colChart');\n columnChartObj.refresh();\n var maps = new ej.maps.Maps({\n height: '100%',\n width: '100%',\n zoomSettings: {\n enable: false\n },\n legendSettings: {\n visible: false\n },\n layers: [\n {\n shapeData: new ej.maps.MapAjax('//ej2.syncfusion.com/javascript/demos/src/dashboard-layout/worldmap.json'),\n shapePropertyPath: 'continent',\n shapeDataPath: 'continent',\n dataSource: new ej.maps.MapAjax('//ej2.syncfusion.com/javascript/demos/src/dashboard-layout/datasource.json'),\n shapeSettings: {\n colorValuePath: 'color',\n },\n markerSettings: [\n {\n visible: true,\n dataSource: [\n { latitude: 37.6276571, longitude: -122.4276688, name: 'San Bruno' },\n { latitude: 33.5302186, longitude: -117.7418381, name: 'Laguna Niguel' },\n { latitude: 40.7424509, longitude: -74.0081468, name: 'New York' },\n { latitude: -23.5268201, longitude: -46.6489927, name: 'Bom Retiro' },\n { latitude: 43.6533855, longitude: -79.3729994, name: 'Toronto' },\n { latitude: 48.8773406, longitude: 2.3299627, name: 'Paris' },\n { latitude: 52.4643089, longitude: 13.4107368, name: 'Berlin' },\n { latitude: 19.1555762, longitude: 72.8849595, name: 'Mumbai' },\n { latitude: 35.6628744, longitude: 139.7345469, name: 'Minato' },\n { latitude: 51.5326602, longitude: -0.1262422, name: 'London' }\n ],\n shape: 'Image',\n imageUrl: 'https://ej2.syncfusion.com/demos///ej2.syncfusion.com/javascript/demos/src/maps/images/ballon.png',\n height: 20,\n width: 20,\n offset: {\n y: -10,\n x: 0\n },\n tooltipSettings: {\n visible: true,\n valuePath: 'name'\n },\n animationDuration: 0\n },\n ]\n },\n ],\n load: themeMaps\n });\n maps.appendTo('#map');\n var pieChart = new ej.charts.AccumulationChart({\n series: [\n {\n dataSource: [\n { 'x': 'Desktop', y: 37, text: '60%' }, { 'x': 'Mobile', y: 17, text: '10%' },\n { 'x': 'Tablet', y: 19, text: '20%' }\n ],\n dataLabel: {\n visible: true, position: 'Inside', name: 'text', font: { fontWeight: '600' }\n },\n radius: '100%', xName: 'x', yName: 'y', startAngle: 0, endAngle: 360, innerRadius: '0%',\n explode: true, name: 'Usage', explodeOffset: '10%', explodeIndex: 2\n }\n ],\n center: { x: '50%', y: '50%' },\n enableSmartLabels: true,\n legendSettings: { visible: false },\n width: '100%',\n height: '100%',\n load: themeAccumulation\n });\n pieChart.appendTo('#pieChart');\n pieChart.refresh();\n function themeChart(args) {\n var lineTheme = location.hash.split('/')[1];\n lineTheme = lineTheme ? lineTheme: 'Material';\n args.chart.theme = (lineTheme.charAt(0).toUpperCase() + lineTheme.slice(1)).replace(/-dark/i, 'Dark');\n }\n function themeAccumulation(args) {\n var selectedTheme = location.hash.split('/')[1];\n selectedTheme = selectedTheme ? selectedTheme : 'Material';\n args.accumulation.theme = (selectedTheme.charAt(0).toUpperCase() + selectedTheme.slice(1)).replace(/-dark/i, 'Dark');\n }\n function themeMaps(args) {\n var mapTheme = location.hash.split('/')[1];\n mapTheme = mapTheme ? mapTheme : 'Material';\n args.maps.theme = (mapTheme.charAt(0).toUpperCase() + mapTheme.slice(1));\n }\n\n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n \n \n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n
","index.js":"{{ripple}}/**\n * Sample\n */\n\n var dashboard = new ej.layouts.DashboardLayout({\n columns: 6,\n cellSpacing: [5, 5],\n cellAspectRatio: 100 / 85,\n panels: [\n {\n 'sizeX': 2, 'sizeY': 1, 'row': 0, 'col': 0,\n content: '#card1'\n },\n {\n 'sizeX': 2, 'sizeY': 1, 'row': 0, 'col': 2,\n content: '#card2'\n },\n {\n 'sizeX': 2, 'sizeY': 1, 'row': 0, 'col': 4,\n content: '#card3'\n },\n {\n 'sizeX': 2, 'sizeY': 2, 'row': 1, 'col': 0,\n header: 'Active Visitors
', content: '
'\n },\n {\n 'sizeX': 2, 'sizeY': 2, 'row': 1, 'col': 2,\n header: 'Regional Map
', content: '
'\n },\n {\n 'sizeX': 2, 'sizeY': 2, 'row': 1, 'col': 4,\n header: 'Visitors by Type
', content: '
'\n },\n {\n 'sizeX': 4, 'sizeY': 2, 'row': 3, 'col': 2,\n header: 'Traffic History
', content: '
'\n },\n {\n 'sizeX': 2, 'sizeY': 2, 'row': 3, 'col': 0,\n header: 'Usage Statistics
', content: '
'\n },\n ]\n });\n dashboard.appendTo('#editLayout');\n var sidebarInstance = new ej.navigations.Sidebar({\n type: 'Over',\n dockSize: '60px',\n enableDock: true,\n target: '#target',\n closeOnDocumentClick: true\n });\n sidebarInstance.appendTo('#dockSidebar');\n\n var atcObj = new ej.dropdowns.AutoComplete({\n placeholder: 'Search Here',\n width: '215px'\n });\n atcObj.appendTo('#search');\n var centerTitle = document.createElement('div');\n centerTitle.innerHTML = 'Active users  ';\n centerTitle.style.position = 'absolute';\n centerTitle.style.visibility = 'hidden';\n var pie = new ej.charts.AccumulationChart({\n enableSmartLabels: true,\n selectionMode: 'Point',\n series: [\n {\n dataSource: window.expenseData,\n xName: 'Device', yName: 'Amount', startAngle: 0,\n endAngle: 360, innerRadius: '35%',\n radius:'100%',\n dataLabel: {\n visible: true, position: 'Inside',\n name: 'text',\n font: { color: 'white', fontWeight: '600', size: '14px' }\n }, name: 'Revenue',\n palettes: ['#357cd2', '#00bdae', '#e36593'],\n }\n ],\n legendSettings: {\n visible: false, toggleVisibility: false,\n position: 'Right', height: '28%', width: '44%'\n },\n animationComplete: function (args) {\n centerTitle.style.fontSize = getFontSize(args.accumulation.initialClipRect.width);\n var rect = centerTitle.getBoundingClientRect();\n centerTitle.style.top = (args.accumulation.origin.y - rect.height / 2) + 'px';\n centerTitle.style.left = (args.accumulation.origin.x - rect.width / 2) + 'px';\n centerTitle.style.visibility = 'visible';\n var points = args.accumulation.visibleSeries[0].points;\n for (var _i = 0, points_1 = points; _i < points_1.length; _i++) {\n var point = points_1[_i];\n if (point.labelPosition === 'Outside' && point.labelVisible) {\n var label = document.getElementById('pie_datalabel_Series_0_text_' + point.index);\n label.setAttribute('fill', 'black');\n }\n }\n },\n textRender: function (args) {\n args.series.dataLabel.font.size = getFontSize(pie.initialClipRect.width);\n pie.animateSeries = true;\n },\n tooltip: {\n enable: true,\n header: '${point.x} ',\n format: 'Composition : ${point.y}% '\n },\n width: '100%',\n height: '100%',\n load: themeAccumulation\n });\n pie.appendTo('#pie');\n document.getElementById('pie').appendChild(centerTitle);\n pie.refresh();\n function getFontSize(width) {\n if (width > 300) {\n return '13px';\n }\n else if (width > 250) {\n return '13px';\n }\n else {\n return '13px';\n }\n }\n var linechartObj = new ej.charts.Chart({\n //Initializing Primary Y Axis\n primaryYAxis: {\n maximum: 4, interval: 1,\n labelFormat: '{value}',\n lineStyle: { width: 0 },\n majorTickLines: { width: 0 },\n minorTickLines: { width: 0 }\n },\n //Initializing Primary X Axis\n primaryXAxis: {\n valueType: 'DateTime',\n labelFormat: 'MMM',\n majorGridLines: { width: 0 },\n intervalType: 'Months',\n edgeLabelPlacement: 'Shift'\n },\n chartArea: {\n border: {\n width: 0\n }\n },\n //Initializing Chart Series\n series: [\n {\n name: 'Jan', xName: 'x', yName: 'y', type: 'SplineArea',\n dataSource: [\n { x: new Date(2002, 0, 1), y: 2.2 }, { x: new Date(2003, 0, 1), y: 3.5 },\n { x: new Date(2004, 0, 1), y: 2.8 }, { x: new Date(2005, 0, 1), y: 1.5 },\n { x: new Date(2006, 0, 1), y: 2.3 }, { x: new Date(2007, 0, 1), y: 2.6 },\n { x: new Date(2008, 0, 1), y: 2.9 }, { x: new Date(2009, 0, 1), y: 3.7 },\n { x: new Date(2010, 0, 1), y: 1.4 }, { x: new Date(2011, 0, 1), y: 3.2 }\n ],\n border: { color: 'transparent' },\n fill: 'rgb(239, 183, 202)',\n opacity: 0.5\n },\n {\n name: 'Feb', xName: 'x', yName: 'y', type: 'SplineArea',\n fill: 'rgb(14, 64, 152, .6)',\n dataSource: [\n { x: new Date(2002, 0, 1), y: 2 }, { x: new Date(2003, 0, 1), y: 1.8 },\n { x: new Date(2004, 0, 1), y: 1.8 }, { x: new Date(2005, 0, 1), y: 2.2 },\n { x: new Date(2006, 0, 1), y: 2.3 }, { x: new Date(2007, 0, 1), y: 1.6 },\n { x: new Date(2008, 0, 1), y: 1.5 }, { x: new Date(2009, 0, 1), y: 2.7 },\n { x: new Date(2010, 0, 1), y: 1.5 }, { x: new Date(2011, 0, 1), y: 2.4 }\n ],\n border: { color: 'transparent' },\n opacity: 0.5\n }\n ],\n legendSettings: { visible: false },\n height: '100%',\n width: '100%',\n load: themeChart\n });\n linechartObj.appendTo('#visitorsChart');\n linechartObj.refresh();\n var columnChartObj = new ej.charts.Chart({\n //Initializing Primary X Axis\n primaryXAxis: {\n valueType: 'Category', interval: 1, majorGridLines: { width: 0 }\n },\n chartArea: { border: { width: 0 } },\n width: '100%',\n height: '100%',\n margin: { top: 30},\n //Initializing Primary X Axis\n primaryYAxis: {\n majorGridLines: { width: 0 },\n majorTickLines: { width: 0 }, lineStyle: { width: 0 }, labelStyle: { color: 'transparent' }\n },\n //Initializing Chart Series\n series: [\n {\n type: 'Column', xName: 'x', width: 2, yName: 'y', name: 'Desktop',\n dataSource: [{ x: 'Jan', y: 46 }, { x: 'Feb', y: 27 }, { x: 'Mar', y: 26 }],\n marker: { dataLabel: { visible: false, position: 'Top', font: { fontWeight: '600', color: '#ffffff' } } },\n },\n {\n fill: '#e36593',\n dataSource: [{ x: 'Jan', y: 37 }, { x: 'Feb', y: 23 }, { x: 'Mar', y: 18 }],\n type: 'Column', xName: 'x', width: 2, yName: 'y', name: 'Mobile',\n marker: { dataLabel: { visible: false, position: 'Top', font: { fontWeight: '600', color: '#ffffff' } } },\n \n },\n {\n dataSource: [{ x: 'Jan', y: 38 }, { x: 'Feb', y: 17 }, { x: 'Mar', y: 26 }],\n type: 'Column', xName: 'x', width: 2, yName: 'y', name: 'Tablet',\n marker: { dataLabel: { visible: false, position: 'Top', font: { fontWeight: '600', color: '#ffffff' } } }\n }\n ],\n load: themeChart,\n legendSettings: { visible: false }\n });\n columnChartObj.appendTo('#colChart');\n columnChartObj.refresh();\n var maps = new ej.maps.Maps({\n height: '100%',\n width: '100%',\n zoomSettings: {\n enable: false\n },\n legendSettings: {\n visible: false\n },\n layers: [\n {\n shapeData: new ej.maps.MapAjax('//ej2.syncfusion.com/javascript/demos/src/dashboard-layout/worldmap.json'),\n shapePropertyPath: 'continent',\n shapeDataPath: 'continent',\n dataSource: new ej.maps.MapAjax('//ej2.syncfusion.com/javascript/demos/src/dashboard-layout/datasource.json'),\n shapeSettings: {\n colorValuePath: 'color',\n },\n markerSettings: [\n {\n visible: true,\n dataSource: [\n { latitude: 37.6276571, longitude: -122.4276688, name: 'San Bruno' },\n { latitude: 33.5302186, longitude: -117.7418381, name: 'Laguna Niguel' },\n { latitude: 40.7424509, longitude: -74.0081468, name: 'New York' },\n { latitude: -23.5268201, longitude: -46.6489927, name: 'Bom Retiro' },\n { latitude: 43.6533855, longitude: -79.3729994, name: 'Toronto' },\n { latitude: 48.8773406, longitude: 2.3299627, name: 'Paris' },\n { latitude: 52.4643089, longitude: 13.4107368, name: 'Berlin' },\n { latitude: 19.1555762, longitude: 72.8849595, name: 'Mumbai' },\n { latitude: 35.6628744, longitude: 139.7345469, name: 'Minato' },\n { latitude: 51.5326602, longitude: -0.1262422, name: 'London' }\n ],\n shape: 'Image',\n imageUrl: 'https://ej2.syncfusion.com/demos///ej2.syncfusion.com/javascript/demos/src/maps/images/ballon.png',\n height: 20,\n width: 20,\n offset: {\n y: -10,\n x: 0\n },\n tooltipSettings: {\n visible: true,\n valuePath: 'name'\n },\n animationDuration: 0\n },\n ]\n },\n ],\n load: themeMaps\n });\n maps.appendTo('#map');\n var pieChart = new ej.charts.AccumulationChart({\n series: [\n {\n dataSource: [\n { 'x': 'Desktop', y: 37, text: '60%' }, { 'x': 'Mobile', y: 17, text: '10%' },\n { 'x': 'Tablet', y: 19, text: '20%' }\n ],\n dataLabel: {\n visible: true, position: 'Inside', name: 'text', font: { fontWeight: '600' }\n },\n radius: '100%', xName: 'x', yName: 'y', startAngle: 0, endAngle: 360, innerRadius: '0%',\n explode: true, name: 'Usage', explodeOffset: '10%', explodeIndex: 2\n }\n ],\n center: { x: '50%', y: '50%' },\n enableSmartLabels: true,\n legendSettings: { visible: false },\n width: '100%',\n height: '100%',\n load: themeAccumulation\n });\n pieChart.appendTo('#pieChart');\n pieChart.refresh();\n function themeChart(args) {\n var lineTheme = location.hash.split('/')[1];\n lineTheme = lineTheme ? lineTheme: 'Material';\n args.chart.theme = (lineTheme.charAt(0).toUpperCase() + lineTheme.slice(1)).replace(/-dark/i, 'Dark');\n }\n function themeAccumulation(args) {\n var selectedTheme = location.hash.split('/')[1];\n selectedTheme = selectedTheme ? selectedTheme : 'Material';\n args.accumulation.theme = (selectedTheme.charAt(0).toUpperCase() + selectedTheme.slice(1)).replace(/-dark/i, 'Dark');\n }\n function themeMaps(args) {\n var mapTheme = location.hash.split('/')[1];\n mapTheme = mapTheme ? mapTheme : 'Material';\n args.maps.theme = (mapTheme.charAt(0).toUpperCase() + mapTheme.slice(1));\n }\n\n"}
\ No newline at end of file
diff --git a/src/dashboard-layout/predefined-layouts-stack.json b/src/dashboard-layout/predefined-layouts-stack.json
index 73fbe8a8..fe66a4fb 100644
--- a/src/dashboard-layout/predefined-layouts-stack.json
+++ b/src/dashboard-layout/predefined-layouts-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n \n
\n \n
\n
\n Choose dashboard layout\n
\n
\n
\n
\n
\n Reset \n
\n
\n\n\n\n
","index.js":"{{ripple}}/**\n * Sample for predefined layout functionalities\n */\n\n var panels = window.panelData;\n var headerCount = 1;\n var dashboard = new ej.layouts.DashboardLayout({ \n cellSpacing: [10, 10],\n columns:6,\n panels: [{\n 'sizeX': 4, 'sizeY': 3, 'row': 0, 'col': 0,\n header: '',\n content: 'Content Area
'\n },\n {\n 'sizeX': 2, 'sizeY': 3, 'row': 0, 'col': 4,\n header: '',\n content: 'Content Area
'\n },\n {\n 'sizeX': 6, 'sizeY': 1, 'row': 3, 'col': 0,\n header: '',\n content: 'Content Area
'\n }]\n });\n dashboard.appendTo('#dynamicLayout');\n var dashboardObject = document.getElementById('dynamicLayout').ej2_instances[0];\n var btnInstance = new ej.buttons.Button();\n btnInstance.appendTo('#reset');\n btnInstance.element.onclick = function () {\n var selectedElement = document.getElementsByClassName('e-selected-style');\n initializeTemplate(selectedElement[0]);\n };\n document.getElementById('template').onclick = function (args) {\n var target = args.target;\n var selectedElement = document.getElementsByClassName('e-selected-style');\n if (selectedElement.length) {\n selectedElement[0].classList.remove('e-selected-style');\n }\n if (target.className === 'image-pattern-style') {\n initializeTemplate(args.target);\n }\n target.classList.add('e-selected-style');\n };\n function initializeTemplate(element) {\n var updatedpanels = [];\n var index = parseInt(element.getAttribute('data-id'), 10) - 1;\n var panel = Object.keys(panels[index]).map(function (panelIndex) {\n return panels[index][panelIndex];\n });\n for (var i = 0; i < panel.length; i++) {\n var panelModelValue = {\n row: panel[i].row,\n col: panel[i].col,\n sizeX: panel[i].sizeX,\n sizeY: panel[i].sizeY,\n header: '',\n content: 'Content Area
'\n };\n updatedpanels.push(panelModelValue);\n }\n dashboard.panels = updatedpanels;\n }\n\n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n \n
\n \n
\n
\n Choose dashboard layout\n
\n
\n
\n
\n
\n Reset \n
\n
\n\n\n\n
","index.js":"{{ripple}}/**\n * Sample for predefined layout functionalities\n */\n\n var panels = window.panelData;\n var headerCount = 1;\n var dashboard = new ej.layouts.DashboardLayout({ \n cellSpacing: [10, 10],\n columns:6,\n panels: [{\n 'sizeX': 4, 'sizeY': 3, 'row': 0, 'col': 0,\n header: '',\n content: 'Content Area
'\n },\n {\n 'sizeX': 2, 'sizeY': 3, 'row': 0, 'col': 4,\n header: '',\n content: 'Content Area
'\n },\n {\n 'sizeX': 6, 'sizeY': 1, 'row': 3, 'col': 0,\n header: '',\n content: 'Content Area
'\n }]\n });\n dashboard.appendTo('#dynamicLayout');\n var dashboardObject = document.getElementById('dynamicLayout').ej2_instances[0];\n var btnInstance = new ej.buttons.Button();\n btnInstance.appendTo('#reset');\n btnInstance.element.onclick = function () {\n var selectedElement = document.getElementsByClassName('e-selected-style');\n initializeTemplate(selectedElement[0]);\n };\n document.getElementById('template').onclick = function (args) {\n var target = args.target;\n var selectedElement = document.getElementsByClassName('e-selected-style');\n if (selectedElement.length) {\n selectedElement[0].classList.remove('e-selected-style');\n }\n if (target.className === 'image-pattern-style') {\n initializeTemplate(args.target);\n }\n target.classList.add('e-selected-style');\n };\n function initializeTemplate(element) {\n var updatedpanels = [];\n var index = parseInt(element.getAttribute('data-id'), 10) - 1;\n var panel = Object.keys(panels[index]).map(function (panelIndex) {\n return panels[index][panelIndex];\n });\n for (var i = 0; i < panel.length; i++) {\n var panelModelValue = {\n row: panel[i].row,\n col: panel[i].col,\n sizeX: panel[i].sizeX,\n sizeY: panel[i].sizeY,\n header: '',\n content: 'Content Area
'\n };\n updatedpanels.push(panelModelValue);\n }\n dashboard.panels = updatedpanels;\n }\n\n"}
\ No newline at end of file
diff --git a/src/dashboard-layout/predefined-layouts.html b/src/dashboard-layout/predefined-layouts.html
index 5b25bc0e..e2cbc770 100644
--- a/src/dashboard-layout/predefined-layouts.html
+++ b/src/dashboard-layout/predefined-layouts.html
@@ -194,4 +194,10 @@
border-bottom: 1px solid #d7d7d7;
border-right: 1px solid #d7d7d7;
}
+ /* styles for highcontrast theme */
+
+ body.highcontrast .panel-content {
+ color: rgba(255, 255, 255, 0.54);
+ }
+
\ No newline at end of file
diff --git a/src/dashboard-layout/properties-stack.json b/src/dashboard-layout/properties-stack.json
index 3e8ffd30..3663a01a 100644
--- a/src/dashboard-layout/properties-stack.json
+++ b/src/dashboard-layout/properties-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n \n\n\n\n\n\n\n\n\n","index.js":"{{ripple}}/**\n * Sample for properties\n */\n\n var dashboard = new ej.layouts.DashboardLayout({ \n allowResizing: true,\n cellSpacing: [10, 10],\n columns:6,\n panels: [{\n 'sizeX': 2, 'sizeY': 2, 'row': 0, 'col': 0,\n header: 'Panel 1
', content: '
'\n },\n {\n 'sizeX': 2, 'sizeY': 2, 'row': 0, 'col': 2,\n header: 'Panel 2
', content: '
'\n },\n {\n 'sizeX': 2, 'sizeY': 2, 'row': 0, 'col': 4,\n header: 'Panel 3
', content: '
'\n },\n {\n 'sizeX': 4, 'sizeY': 2, 'row': 2, 'col': 0,\n header: 'Panel 4
', content: '
'\n },\n {\n 'sizeX': 2, 'sizeY': 2, 'row': 2, 'col': 4,\n header: 'Panel 5
', content: '
'\n }]\n });\n dashboard.appendTo('#dynamicLayout');\n var cellspacing = new ej.inputs.NumericTextBox({\n placeholder: 'Ex: 10',\n floatLabelType: 'Never',\n change: valueChange,\n type:'number',\n value: 10,\n min: 1,\n max: 20\n });\n cellspacing.appendTo('#cellspacing');\n var floatObj = new ej.buttons.CheckBox({ checked: true, change: onChange });\n floatObj.appendTo('#floating');\n var pushObj = new ej.buttons.CheckBox({ checked: true, change: onChange });\n pushObj.appendTo('#pushing');\n var resizeObj = new ej.buttons.CheckBox({ checked: true, change: onChange });\n resizeObj.appendTo('#resizing');\n var dashboardObject = document.getElementById('dynamicLayout').ej2_instances[0];\n function valueChange(args) {\n dashboard.cellSpacing = [parseInt(args.value, 10), parseInt(args.value, 10)];\n }\n function onChange(args) {\n if (args.event.currentTarget.id === \"floating\") {\n if (args.checked) {\n dashboard.allowFloating = true;\n } else {\n dashboard.allowFloating = false;\n }\n }\n if (args.event.currentTarget.id === \"resizing\") {\n if (args.checked) {\n dashboard.allowResizing = true;\n } else {\n\n dashboard.allowResizing = false;\n }\n }\n }\n\n document.getElementById('remove').onclick = function (e) {\n\t\tif (dashboardObject.panels.length != 0) {\n\t\t\tfor (var i = dashboardObject.panels.length - 1; i < dashboardObject.panels.length; i++) {\n\t\t\t\tdashboardObject.removePanel(dashboardObject.panels[dashboardObject.panels.length - 1 - i].id);\n\t\t\t}\n\t\t}\n };\n var count = 4;\n document.getElementById('add').onclick = function (e) { \n var panel = [{\n 'id': count.toString() + '_layout', 'sizeX': 2, 'sizeY': 2, 'row': 0, 'col': 0,\n header: 'Panel' + count.toString() + '
', content: '
'\n }];\n count = count + 1;\n dashboardObject.addPanel(panel[0]);\n };\n\n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n \n\n\n\n\n\n\n\n\n","index.js":"{{ripple}}/**\n * Sample for properties\n */\n\n var dashboard = new ej.layouts.DashboardLayout({ \n allowResizing: true,\n cellSpacing: [10, 10],\n columns:6,\n panels: [{\n 'sizeX': 2, 'sizeY': 2, 'row': 0, 'col': 0,\n header: 'Panel 1
', content: '
'\n },\n {\n 'sizeX': 2, 'sizeY': 2, 'row': 0, 'col': 2,\n header: 'Panel 2
', content: '
'\n },\n {\n 'sizeX': 2, 'sizeY': 2, 'row': 0, 'col': 4,\n header: 'Panel 3
', content: '
'\n },\n {\n 'sizeX': 4, 'sizeY': 2, 'row': 2, 'col': 0,\n header: 'Panel 4
', content: '
'\n },\n {\n 'sizeX': 2, 'sizeY': 2, 'row': 2, 'col': 4,\n header: 'Panel 5
', content: '
'\n }]\n });\n dashboard.appendTo('#dynamicLayout');\n var cellspacing = new ej.inputs.NumericTextBox({\n placeholder: 'Ex: 10',\n floatLabelType: 'Never',\n change: valueChange,\n type:'number',\n value: 10,\n min: 1,\n max: 20\n });\n cellspacing.appendTo('#cellspacing');\n var floatObj = new ej.buttons.CheckBox({ checked: true, change: onChange });\n floatObj.appendTo('#floating');\n var pushObj = new ej.buttons.CheckBox({ checked: true, change: onChange });\n pushObj.appendTo('#pushing');\n var resizeObj = new ej.buttons.CheckBox({ checked: true, change: onChange });\n resizeObj.appendTo('#resizing');\n var dashboardObject = document.getElementById('dynamicLayout').ej2_instances[0];\n function valueChange(args) {\n dashboard.cellSpacing = [parseInt(args.value, 10), parseInt(args.value, 10)];\n }\n function onChange(args) {\n if (args.event.currentTarget.id === \"floating\") {\n dashboard.allowFloating = args.checked;\n }\n if (args.event.currentTarget.id === \"resizing\") {\n dashboard.allowResizing = args.checked;\n }\n }\n\n document.getElementById('remove').onclick = function (e) {\n\t\tif (dashboardObject.panels.length > 0) {\n\t\t\tfor (var i = dashboardObject.panels.length - 1; i < dashboardObject.panels.length; i++) {\n\t\t\t\tdashboardObject.removePanel(dashboardObject.panels[dashboardObject.panels.length - 1 - i].id);\n\t\t\t}\n\t\t}\n };\n var count = 4;\n document.getElementById('add').onclick = function (e) { \n var panel = [{\n 'id': count.toString() + '_layout', 'sizeX': 2, 'sizeY': 2, 'row': 0, 'col': 0,\n header: 'Panel' + count.toString() + '
', content: '
'\n }];\n count = count + 1;\n dashboardObject.addPanel(panel[0]);\n };\n\n"}
\ No newline at end of file
diff --git a/src/dashboard-layout/properties.js b/src/dashboard-layout/properties.js
index f1bc7dd8..bc0276e0 100644
--- a/src/dashboard-layout/properties.js
+++ b/src/dashboard-layout/properties.js
@@ -50,24 +50,15 @@ this.default = function () {
}
function onChange(args) {
if (args.event.currentTarget.id === "floating") {
- if (args.checked) {
- dashboard.allowFloating = true;
- } else {
- dashboard.allowFloating = false;
- }
+ dashboard.allowFloating = args.checked;
}
if (args.event.currentTarget.id === "resizing") {
- if (args.checked) {
- dashboard.allowResizing = true;
- } else {
-
- dashboard.allowResizing = false;
- }
+ dashboard.allowResizing = args.checked;
}
}
document.getElementById('remove').onclick = function (e) {
- if (dashboardObject.panels.length != 0) {
+ if (dashboardObject.panels.length > 0) {
for (var i = dashboardObject.panels.length - 1; i < dashboardObject.panels.length; i++) {
dashboardObject.removePanel(dashboardObject.panels[dashboardObject.panels.length - 1 - i].id);
}
diff --git a/src/diagram/bpmn-editor-stack.json b/src/diagram/bpmn-editor-stack.json
index 65de5241..f117fe6f 100644
--- a/src/diagram/bpmn-editor-stack.json
+++ b/src/diagram/bpmn-editor-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}ej.diagrams.Diagram.Inject(ej.diagrams.BpmnDiagrams, ej.diagrams.UndoRedo, ej.diagrams.DiagramContextMenu);\nej.diagrams.SymbolPalette.Inject(ej.diagrams.BpmnDiagrams);\nvar diagram;\nvar nodes = [\n {\n id: 'start', width: 40, height: 40, offsetX: 35, offsetY: 180, shape: {\n type: 'Bpmn', shape: 'Event',\n event: { event: 'Start' }\n }\n },\n {\n id: 'subProcess', width: 520, height: 250, offsetX: 355, offsetY: 180,\n constraints: ej.diagrams.NodeConstraints.Default | ej.diagrams.NodeConstraints.AllowDrop,\n shape: {\n shape: 'Activity', type: 'Bpmn',\n activity: {\n activity: 'SubProcess', subProcess: {\n type: 'Transaction', collapsed: false,\n processes: ['processesStart', 'service', 'compensation', 'processesTask',\n 'error', 'processesEnd', 'user', 'subProcessesEnd']\n }\n }\n }\n },\n {\n id: 'hazardEnd', width: 40, height: 40, offsetX: 305, offsetY: 370, shape: {\n type: 'Bpmn', shape: 'Event',\n event: { event: 'End' },\n }, annotations: [{\n id: 'label2', content: 'Hazard',\n style: { fill: 'white', color: 'black' }, verticalAlignment: 'Top', margin: { top: 20 }\n }]\n },\n {\n id: 'cancelledEnd', width: 40, height: 40, offsetX: 545, offsetY: 370, shape: {\n type: 'Bpmn', shape: 'Event',\n event: { event: 'End' },\n }, annotations: [{\n id: 'cancelledEndLabel2', content: 'Cancelled',\n style: { fill: 'white', color: 'black' }, verticalAlignment: 'Top', margin: { top: 20 }\n }]\n },\n {\n id: 'end', width: 40, height: 40, offsetX: 665, offsetY: 180, shape: {\n type: 'Bpmn', shape: 'Event',\n event: { event: 'End' }\n },\n },\n {\n id: 'processesStart', width: 30, height: 30, shape: {\n type: 'Bpmn', shape: 'Event',\n event: { event: 'Start' }\n }, margin: { left: 40, top: 80 }\n },\n {\n id: 'service', style: { fill: '#6FAAB0' }, width: 95, height: 70,\n shape: {\n type: 'Bpmn', shape: 'Activity', activity: {\n activity: 'Task', task: {\n type: 'Service',\n loop: 'parallelmultiinstance',\n },\n },\n }, annotations: [{\n id: 'serviceLabel2', content: 'Book hotel', offset: { x: 0.50, y: 0.50 },\n style: { color: 'white', }\n }], margin: { left: 110, top: 20 },\n },\n {\n id: 'compensation', width: 30, height: 30,\n shape: {\n type: 'Bpmn', shape: 'Event',\n event: { event: 'Intermediate', trigger: 'Compensation' }\n }, margin: { left: 170, top: 100 }\n },\n {\n id: 'processesTask', style: { fill: '#F6B53F' }, width: 95, height: 70,\n shape: {\n type: 'Bpmn', shape: 'Activity', activity: {\n activity: 'Task', task: {\n type: 'Service',\n },\n },\n }, annotations: [{\n id: 'serviceLabel2', content: 'Charge credit card', offset: { x: 0.50, y: 0.60 },\n style: { color: 'white' }\n }], margin: { left: 290, top: 20 },\n },\n {\n id: 'error', width: 30, height: 30,\n shape: {\n type: 'Bpmn', shape: 'Event',\n event: {\n event: 'Intermediate', trigger: 'Error'\n }\n }, margin: { left: 350, top: 100 }\n },\n {\n id: 'processesEnd', width: 30, height: 30, shape: {\n type: 'Bpmn', shape: 'Event',\n event: { event: 'End' }\n }, margin: { left: 440, top: 80 }\n },\n {\n id: 'user', style: { fill: '#E94649' }, width: 90, height: 80,\n shape: {\n type: 'Bpmn', shape: 'Activity', activity: {\n activity: 'Task', task: {\n type: 'User', Compensation: true, offset: { x: 0.50, y: 1 }\n },\n },\n }, annotations: [{\n id: 'serviceLabel2', content: 'Cancel hotel reservation', offset: { x: 0.50, y: 0.60 },\n style: { color: 'white' }\n }], margin: { left: 240, top: 160 },\n },\n {\n id: 'subProcessesEnd', width: 30, height: 30, shape: {\n type: 'Bpmn', shape: 'Event',\n event: { event: 'End' }\n }, margin: { left: 440, top: 210 }\n },\n];\nvar connectors = [\n { id: 'connector1', sourceID: 'start', targetID: 'subProcess' },\n { id: 'connector2', sourceID: 'subProcess', sourcePortID: 'success', targetID: 'end' },\n {\n id: 'connector3', sourceID: 'subProcess', sourcePortID: 'failure', targetID: 'hazardEnd', type: 'Orthogonal',\n segments: [{ type: 'Orthogonal', length: 50, direction: 'Bottom' }],\n annotations: [{\n id: 'connector3Label2', content: 'Booking system failure', offset: 0.50,\n style: { fill: 'white' }\n }]\n },\n {\n id: 'connector4', sourceID: 'subProcess', sourcePortID: 'cancel', targetID: 'cancelledEnd', type: 'Orthogonal',\n segments: [{ type: 'Orthogonal', length: 50, direction: 'Bottom' }],\n },\n { id: 'connector5', sourceID: 'processesStart', targetID: 'service', type: 'Orthogonal', },\n { id: 'connector6', sourceID: 'service', targetID: 'processesTask' },\n { id: 'connector7', sourceID: 'processesTask', targetID: 'processesEnd', type: 'Orthogonal', },\n {\n id: 'connector8', sourceID: 'compensation', targetID: 'user', type: 'Orthogonal',\n shape: {\n type: 'Bpmn',\n flow: 'association',\n association: 'Directional'\n }, style: {\n strokeDashArray: '2,2'\n },\n segments: [{ type: 'Orthogonal', length: 30, direction: 'Bottom' },\n { type: 'Orthogonal', length: 80, direction: 'Right' }]\n },\n {\n id: 'connector9', sourceID: 'error', targetID: 'subProcessesEnd', type: 'Orthogonal',\n annotations: [{\n id: 'connector9Label2', content: 'Cannot charge card', offset: 0.50,\n style: { fill: 'white', color: 'black' }\n }],\n segments: [{ type: 'Orthogonal', length: 50, direction: 'Bottom' }]\n }\n];\nvar bpmnShapes = [\n {\n id: 'Start', width: 35, height: 35, shape: {\n type: 'Bpmn', shape: 'Event',\n event: { event: 'Start' }\n }\n },\n {\n id: 'NonInterruptingIntermediate', width: 35, height: 35, shape: {\n type: 'Bpmn', shape: 'Event',\n event: { event: 'NonInterruptingIntermediate' }\n },\n },\n {\n id: 'End', width: 35, height: 35, offsetX: 665, offsetY: 230, shape: {\n type: 'Bpmn', shape: 'Event',\n event: { event: 'End' }\n },\n },\n {\n id: 'Task', width: 35, height: 35, offsetX: 700, offsetY: 700,\n shape: {\n type: 'Bpmn', shape: 'Activity', activity: {\n activity: 'Task',\n },\n }\n },\n {\n id: 'Transaction', width: 35, height: 35, offsetX: 300, offsetY: 100,\n constraints: ej.diagrams.NodeConstraints.Default | ej.diagrams.NodeConstraints.AllowDrop,\n shape: {\n type: 'Bpmn', shape: 'Activity',\n activity: {\n activity: 'SubProcess', subProcess: {\n type: 'Transaction', transaction: {\n cancel: { visible: false }, failure: { visible: false }, success: { visible: false }\n }\n }\n }\n }\n }, {\n id: 'Task_Service', width: 35, height: 35, offsetX: 700, offsetY: 700,\n shape: {\n type: 'Bpmn', shape: 'Activity', activity: {\n activity: 'Task', task: { type: 'Service' }\n },\n }\n },\n {\n id: 'Gateway', width: 35, height: 35, offsetX: 100, offsetY: 100,\n shape: { type: 'Bpmn', shape: 'Gateway', gateway: { type: 'Exclusive' } },\n },\n {\n id: 'DataObject', width: 35, height: 35, offsetX: 500, offsetY: 100,\n shape: { type: 'Bpmn', shape: 'DataObject', dataObject: { collection: false, type: 'None' } }\n }, {\n id: 'subProcess', width: 520, height: 250, offsetX: 355, offsetY: 230,\n constraints: ej.diagrams.NodeConstraints.Default | ej.diagrams.NodeConstraints.AllowDrop,\n shape: {\n shape: 'Activity', type: 'Bpmn',\n activity: {\n activity: 'SubProcess', subProcess: {\n type: 'Transaction', collapsed: false,\n processes: [], transaction: {\n cancel: { visible: false }, failure: { visible: false }, success: { visible: false }\n }\n }\n }\n }\n },\n];\nvar contextMenu = {\n show: true, items: [\n {\n text: 'Ad-Hoc', id: 'Adhoc',\n items: [{ text: 'None', iconCss: 'e-adhocs e-bpmn-event e-bpmn-icons e-None', id: 'AdhocNone' },\n { iconCss: 'e-adhocs e-bpmn-icons e-adhoc', text: 'Ad-Hoc', id: 'AdhocAdhoc' }]\n }, {\n text: 'Loop', id: 'Loop',\n items: [{ text: 'None', iconCss: 'e-loop e-bpmn-icons e-None', id: 'LoopNone' },\n { text: 'Standard', iconCss: 'e-loop e-bpmn-icons e-Loop', id: 'Standard' },\n { text: 'Parallel Multi-Instance', iconCss: 'e-loop e-bpmn-icons e-ParallelMI', id: 'ParallelMultiInstance' },\n { text: 'Sequence Multi-Instance', iconCss: 'e-loop e-bpmn-icons e-SequentialMI', id: 'SequenceMultiInstance' }]\n }, {\n text: 'Compensation', id: 'taskCompensation',\n items: [{ text: 'None', iconCss: 'e-compensation e-bpmn-icons e-None', id: 'CompensationNone' },\n { iconCss: 'e-compensation e-bpmn-icons e-Compensation', text: 'Compensation', id: 'CompensationCompensation' }]\n }, {\n text: 'Activity-Type', id: 'Activity-Type',\n items: [{ text: 'Collapsed sub-process', iconCss: 'e-bpmn-icons e-SubProcess', id: 'CollapsedSubProcess' },\n { iconCss: 'e-bpmn-icons e-Task', text: 'Expanded sub-process', id: 'ExpandedSubProcess' }]\n }, {\n text: 'Boundry', id: 'Boundry',\n items: [{ text: 'Default', iconCss: 'e-boundry e-bpmn-icons e-Default', id: 'Default' },\n { text: 'Call', iconCss: 'e-boundry e-bpmn-icons e-Call', id: 'BoundryCall' },\n { text: 'Event', iconCss: 'e-boundry e-bpmn-icons e-Event', id: 'BoundryEvent' }]\n }, {\n text: 'Data Object', id: 'DataObject',\n items: [{ text: 'None', iconCss: 'e-data e-bpmn-icons e-None', id: 'DataObjectNone' },\n { text: 'Input', iconCss: 'e-data e-bpmn-icons e-DataInput', id: 'Input' },\n { text: 'Output', iconCss: 'e-data e-bpmn-icons e-DataOutput', id: 'Output' }]\n }, {\n text: 'Collection', id: 'collection',\n items: [{ text: 'None', iconCss: 'e-collection e-bpmn-icons e-None', id: 'collectionNone' },\n { text: 'Collection', iconCss: 'e-collection e-bpmn-icons e-ParallelMI', id: 'Collectioncollection' }]\n }, {\n text: 'Call', id: 'DeftCall',\n items: [{ text: 'None', iconCss: 'e-call e-bpmn-icons e-None', id: 'CallNone' },\n { text: 'Call', iconCss: 'e-call e-bpmn-icons e-CallActivity', id: 'CallCall' }]\n }, {\n text: 'Trigger Result', id: 'TriggerResult',\n items: [{ text: 'None', id: 'TriggerNone', iconCss: 'e-trigger e-bpmn-icons e-None' },\n { text: 'Message', id: 'Message', iconCss: 'e-trigger e-bpmn-icons e-InMessage' },\n { text: 'Multiple', id: 'Multiple', iconCss: 'e-trigger e-bpmn-icons e-InMultiple' },\n { text: 'Parallel', id: 'Parallel', iconCss: 'e-trigger e-bpmn-icons e-InParallelMultiple' },\n { text: 'Signal', id: 'Signal', iconCss: 'e-trigger e-bpmn-icons e-InSignal' },\n { text: 'Timer', id: 'Timer', iconCss: 'e-trigger e-bpmn-icons e-InTimer' },\n { text: 'Cancel', id: 'Cancel', iconCss: 'e-trigger e-bpmn-icons e-CancelEnd' },\n { text: 'Escalation', id: 'Escalation', iconCss: 'e-trigger e-bpmn-icons e-InEscalation' },\n { text: 'Error', id: 'Error', iconCss: 'e-trigger e-bpmn-icons e-InError' },\n { text: 'Compensation', id: 'triggerCompensation', iconCss: 'e-trigger e-bpmn-icons e-InCompensation' },\n { text: 'Terminate', id: 'Terminate', iconCss: 'e-trigger e-bpmn-icons e-TerminateEnd' },\n { text: 'Conditional', id: 'Conditional', iconCss: 'e-trigger e-bpmn-icons e-InConditional' },\n { text: 'Link', id: 'Link', iconCss: 'e-trigger e-bpmn-icons e-ThrowLinkin' }\n ]\n },\n {\n text: 'Event Type', id: 'EventType',\n items: [{ text: 'Start', id: 'Start', iconCss: 'e-event e-bpmn-icons e-NoneStart', },\n { text: 'Intermediate', id: 'Intermediate', iconCss: 'e-event e-bpmn-icons e-InterruptingNone' },\n { text: 'NonInterruptingStart', id: 'NonInterruptingStart', iconCss: 'e-event e-bpmn-icons e-Noninterruptingstart' },\n { text: 'ThrowingIntermediate', id: 'ThrowingIntermediate', iconCss: 'e-event e-bpmn-icons e-InterruptingNone' },\n {\n text: 'NonInterruptingIntermediate', id: 'NonInterruptingIntermediate',\n iconCss: 'e-event e-bpmn-icons e-NoninterruptingIntermediate'\n },\n { text: 'End', id: 'End', iconCss: 'e-event e-bpmn-icons e-NoneEnd' }]\n }, {\n text: 'Task Type', id: 'TaskType',\n items: [\n { text: 'None', id: 'TaskNone', iconCss: 'e-task e-bpmn-icons e-None' },\n { text: 'Service', id: 'Service', iconCss: 'e-task e-bpmn-icons e-ServiceTask' },\n { text: 'BusinessRule', id: 'BusinessRule', iconCss: 'e-task e-bpmn-icons e-BusinessRule' },\n { text: 'InstantiatingReceive', id: 'InstantiatingReceive', iconCss: 'e-task e-bpmn-icons e-InstantiatingReceive' },\n { text: 'Manual', id: 'Manual', iconCss: 'e-task e-bpmn-icons e-ManualCall' },\n { text: 'Receive', id: 'Receive', iconCss: 'e-task e-bpmn-icons e-InMessage' },\n { text: 'Script', id: 'Script', iconCss: 'e-task e-bpmn-icons e-ScriptCall' },\n { text: 'Send', id: 'Send', iconCss: 'e-task e-bpmn-icons e-InMessage' },\n { text: 'User', id: 'User', iconCss: 'e-task e-bpmn-icons e-UserCall' },\n ]\n }, {\n text: 'GateWay', id: 'GateWay',\n iconCss: 'e-bpmn-icons e-Gateway', items: [\n { text: 'None', id: 'GatewayNone', iconCss: 'e-gate e-bpmn-icons e-None' },\n { text: 'Exclusive', iconCss: 'e-gate e-bpmn-icons e-ExclusiveGatewayWithMarker', id: 'Exclusive' },\n { text: 'Inclusive', iconCss: 'e-gate e-bpmn-icons e-InclusiveGateway', id: 'Inclusive' },\n { text: 'Parallel', iconCss: 'e-gate e-bpmn-icons e-ParallelGateway', id: 'GatewayParallel' },\n { text: 'Complex', iconCss: 'e-gate e-bpmn-icons e-ComplexGateway', id: 'Complex' },\n { text: 'EventBased', iconCss: 'e-gate e-bpmn-icons e-EventBasedGateway', id: 'EventBased' },\n { text: 'ExclusiveEventBased', iconCss: 'e-gate e-bpmn-icons e-ExclusiveEventBased', id: 'ExclusiveEventBased' },\n { text: 'ParallelEventBased', iconCss: 'e-gate e-bpmn-icons e-ParallelEventBasedGatewaytostart', id: 'ParallelEventBased' }\n ]\n },\n ],\n showCustomMenuOnly: true,\n};\n\nfunction getConnectors() {\n var connectorSymbols = [\n {\n id: 'Link1', type: 'Orthogonal', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 40, y: 40 },\n targetDecorator: { shape: 'Arrow' }, style: { strokeWidth: 2 }\n },\n {\n id: 'Link2', type: 'Orthogonal', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 40, y: 40 },\n targetDecorator: { shape: 'Arrow' }, style: { strokeWidth: 2, strokeDashArray: '4 4' }\n },\n {\n id: 'Link3', type: 'Straight', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 40, y: 40 },\n targetDecorator: { shape: 'Arrow' }, style: { strokeWidth: 2 }\n },\n {\n id: 'link4', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 40, y: 40 }, type: 'Orthogonal',\n shape: {\n type: 'Bpmn',\n flow: 'Association',\n association: 'Directional'\n }, style: {\n strokeDashArray: '2,2'\n },\n },\n ];\n return connectorSymbols;\n}\n\nfunction dragEnter(args) {\n var obj = args.element;\n if (obj instanceof ej.diagrams.Node) {\n if (!obj.shape.activity.subProcess.collapsed) {\n obj.shape.activity.subProcess.transaction.cancel.visible = true;\n obj.shape.activity.subProcess.transaction.failure.visible = true;\n obj.shape.activity.subProcess.transaction.success.visible = true;\n }\n else {\n var oWidth = obj.width;\n var oHeight = obj.height;\n var ratio = 100 / obj.width;\n obj.width = 100;\n obj.height *= ratio;\n obj.offsetX += (obj.width - oWidth) / 2;\n obj.offsetY += (obj.height - oHeight) / 2;\n }\n }\n}\n\nfunction contextMenuClick(args) {\n if (diagram.selectedItems.nodes.length > 0) {\n var bpmnShape = diagram.selectedItems.nodes[0].shape;\n if (args.item.iconCss.indexOf('e-adhocs') > -1) {\n bpmnShape.activity.subProcess.adhoc = args.item.id === 'AdhocNone' ? false : true;\n }\n if (args.item.iconCss.indexOf(\"e-event\") > -1) {\n bpmnShape.event.event = args.item.id;\n }\n if (args.item.iconCss.indexOf(\"e-trigger\") > -1) {\n bpmnShape.event.trigger = args.item.text;\n }\n if (args.item.iconCss.indexOf(\"e-loop\") > -1) {\n var loop = (args.item.id === 'LoopNone') ? 'None' : args.item.id;\n if (bpmnShape.activity.activity === 'Task') {\n bpmnShape.activity.task.loop = loop;\n }\n if (bpmnShape.activity.activity === 'SubProcess') {\n bpmnShape.activity.subProcess.loop = loop;\n }\n }\n if (args.item.iconCss.indexOf(\"e-compensation\") > -1) {\n var compensation = (args.item.id === 'CompensationNone') ? false : true;\n if (bpmnShape.activity.activity === 'Task') {\n bpmnShape.activity.task.compensation = compensation;\n }\n if (bpmnShape.activity.activity === 'SubProcess') {\n bpmnShape.activity.subProcess.compensation = compensation;\n }\n }\n if (args.item.iconCss.indexOf('e-call') > -1) {\n var compensations = (args.item.id === 'CallNone') ? false : true;\n if (bpmnShape.activity.activity === 'Task') {\n bpmnShape.activity.task.call = compensations;\n }\n }\n if (args.item.id === 'CollapsedSubProcess' || args.item.id === 'ExpandedSubProcess') {\n if (args.item.id === 'ExpandedSubProcess') {\n bpmnShape.activity.activity = 'SubProcess';\n bpmnShape.activity.subProcess.collapsed = false;\n }\n else {\n bpmnShape.activity.activity = 'SubProcess';\n bpmnShape.activity.subProcess.collapsed = true;\n }\n }\n if (args.item.iconCss.indexOf('e-boundry') > -1) {\n call = args.item.id;\n if (args.item.id !== 'Default') {\n call = (args.item.id === 'BoundryEvent') ? 'Event' : 'Call';\n }\n bpmnShape.activity.subProcess.boundary = call;\n }\n if (args.item.iconCss.indexOf('e-data') > -1) {\n var data = args.item.id === 'DataObjectNone' ? 'None' : args.item.id;\n bpmnShape.dataObject.type = data;\n }\n if (args.item.iconCss.indexOf('e-collection') > -1) {\n var collection = (args.item.id === 'Collectioncollection') ? true : false;\n bpmnShape.dataObject.collection = collection;\n }\n if (args.item.iconCss.indexOf(\"e-task\") > -1) {\n var task = task === 'TaskNone' ? 'None' : args.item.id;\n if (bpmnShape.activity.activity === 'Task') {\n bpmnShape.activity.task.type = task;\n }\n }\n if (args.item.iconCss.indexOf(\"e-gate\") > -1) {\n var gate = args.item.id.replace('Gateway', '');\n if (bpmnShape.shape === 'Gateway') {\n bpmnShape.gateway.type = gate;\n }\n }\n diagram.dataBind();\n }\n}\nfunction contextMenuOpen(args) {\n var hiddenId = [];\n if (args.element.className !== 'e-menu-parent e-ul ') {\n hiddenId = ['Adhoc', 'Loop', 'taskCompensation', 'Activity-Type', 'Boundry', 'DataObject',\n 'collection', 'DeftCall', 'TriggerResult', 'EventType', 'TaskType', 'GateWay'];\n }\n if (diagram.selectedItems.nodes.length) {\n for (var i = 0; i < args.items.length; i++) {\n var item = args.items[i];\n var bpmnShape = diagram.selectedItems.nodes[0].shape;\n if (bpmnShape.shape !== 'DataObject' && bpmnShape.shape !== 'Gateway') {\n if (item.text === 'Ad-Hoc') {\n if (bpmnShape.activity.activity === 'SubProcess') {\n hiddenId.splice(hiddenId.indexOf(item.id), 1);\n }\n }\n if (item.text === 'Loop' || item.text === 'Compensation' || item.text === 'Activity-Type') {\n if (bpmnShape.shape === 'Activity') {\n hiddenId.splice(hiddenId.indexOf(item.id), 1);\n }\n }\n if (item.text === 'Boundry') {\n if ((bpmnShape.activity.activity === 'SubProcess')) {\n hiddenId.splice(hiddenId.indexOf(item.id), 1);\n }\n }\n }\n if (item.text === 'Data Object') {\n if ((bpmnShape.shape === 'DataObject')) {\n hiddenId.splice(hiddenId.indexOf(item.id), 1);\n }\n }\n if (item.text === 'Collection') {\n if ((bpmnShape.shape === 'DataObject')) {\n hiddenId.splice(hiddenId.indexOf(item.id), 1);\n }\n }\n if (item.text === 'Call') {\n if ((bpmnShape.shape === 'Activity') &&\n (bpmnShape.activity.activity === 'Task')) {\n hiddenId.splice(hiddenId.indexOf(item.id), 1);\n }\n }\n if (item.text === 'Trigger Result') {\n if ((bpmnShape.shape === 'Event')) {\n hiddenId.splice(hiddenId.indexOf(item.id), 1);\n }\n }\n if (item.text === 'Event Type') {\n if ((bpmnShape.shape === 'Event')) {\n hiddenId.splice(hiddenId.indexOf(item.id), 1);\n }\n }\n if (item.text === 'Task Type') {\n if ((bpmnShape.shape === 'Activity') &&\n (bpmnShape.activity.activity === 'Task')) {\n hiddenId.splice(hiddenId.indexOf(item.id), 1);\n }\n }\n if (item.text === 'GateWay') {\n if ((bpmnShape.shape === 'Gateway')) {\n hiddenId.splice(hiddenId.indexOf(item.id), 1);\n }\n }\n if (diagram.selectedItems.nodes.length > 0 && args.parentItem && args.parentItem.id === 'TriggerResult' &&\n bpmnShape.shape === 'Event') {\n var shape = bpmnShape;\n if (item.text !== 'None' && (item.text === shape.event.event ||\n item.text === shape.event.trigger)) {\n hiddenId.push(item.id);\n }\n if (shape.event.event === 'Start') {\n if (item.text === 'Cancel' || item.text === 'Terminate' || item.text === 'Link') {\n hiddenId.push(item.id);\n }\n }\n if (shape.event.event === 'NonInterruptingStart' || item.text === 'Link') {\n if (item.text === 'Cancel' || item.text === 'Terminate' || item.text === 'Compensation' ||\n item.text === 'Error' || item.text === 'None') {\n hiddenId.push(item.id);\n }\n }\n if (shape.event.event === 'Intermediate') {\n if (item.text === 'Terminate') {\n hiddenId.push(item.id);\n }\n }\n if (shape.event.event === 'NonInterruptingIntermediate') {\n if (item.text === 'Cancel' || item.text === 'Terminate' || item.text === 'Compensation' ||\n item.text === 'Error' || item.text === 'None' || item.text === 'Link') {\n hiddenId.push(item.id);\n }\n }\n if (shape.event.event === 'ThrowingIntermediate') {\n if (item.text === 'Cancel' || item.text === 'Terminate' || item.text === 'Timer' || item.text === 'Error' ||\n item.text === 'None' || item.text === 'Pareller' || item.text === 'Conditional') {\n hiddenId.push(item.id);\n }\n }\n if (shape.event.event === 'End') {\n if (item.text === 'Parallel' || item.text === 'Timer' || item.text === 'Conditional' || item.text === 'Link') {\n hiddenId.push(item.id);\n }\n }\n }\n if (diagram.selectedItems.nodes.length > 0 && args.parentItem && args.parentItem.id === 'EventType' &&\n bpmnShape.shape === 'Event') {\n if ((item.text === bpmnShape.event.event)) {\n hiddenId.push(item.id);\n }\n }\n }\n }\n args.hiddenItems = hiddenId;\n}\n\nfunction paletteIconClick() {\n var isMobile = window.matchMedia('(max-width:550px)').matches;\n if (isMobile) {\n var element = document.getElementById('palette-icon');\n if (element) {\n element.addEventListener('click', showPaletteToolbar, false);\n }\n }\n}\n\n\n diagram = new ej.diagrams.Diagram({\n width: '100%', height: '469px', nodes: nodes, connectors: connectors,\n contextMenuSettings: contextMenu,\n contextMenuOpen: contextMenuOpen,\n contextMenuClick: contextMenuClick,\n snapSettings: { constraints: ej.diagrams.SnapConstraints.None },\n dragEnter: dragEnter\n });\n diagram.appendTo('#diagram');\n diagram.fitToPage();\n \n var palette = new ej.diagrams.SymbolPalette({\n expandMode: 'Multiple', symbolMargin: { left: 15, right: 15, top: 15, bottom: 15 }, symbolHeight: 60, symbolWidth: 60,\n palettes: [\n { id: 'Bpmn', expanded: true, symbols: bpmnShapes, iconCss: 'shapes', title: 'BPMN Shapes' },\n { id: 'Connector', expanded: true, symbols: getConnectors(), iconCss: 'shapes', title: 'Connectors' },\n ],\n width: '100%', height: '471px'\n });\n palette.appendTo('#symbolpalette');\n paletteIconClick();\n\n\n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}ej.diagrams.Diagram.Inject(ej.diagrams.BpmnDiagrams, ej.diagrams.UndoRedo, ej.diagrams.DiagramContextMenu);\nej.diagrams.SymbolPalette.Inject(ej.diagrams.BpmnDiagrams);\nvar diagram;\nvar nodes = [\n {\n id: 'start', width: 40, height: 40, offsetX: 35, offsetY: 180, shape: {\n type: 'Bpmn', shape: 'Event',\n event: { event: 'Start' }\n }\n },\n {\n id: 'subProcess', width: 520, height: 250, offsetX: 355, offsetY: 180,\n constraints: ej.diagrams.NodeConstraints.Default | ej.diagrams.NodeConstraints.AllowDrop,\n shape: {\n shape: 'Activity', type: 'Bpmn',\n activity: {\n activity: 'SubProcess', subProcess: {\n type: 'Transaction', collapsed: false,\n processes: ['processesStart', 'service', 'compensation', 'processesTask',\n 'error', 'processesEnd', 'user', 'subProcessesEnd']\n }\n }\n }\n },\n {\n id: 'hazardEnd', width: 40, height: 40, offsetX: 305, offsetY: 370, shape: {\n type: 'Bpmn', shape: 'Event',\n event: { event: 'End' },\n }, annotations: [{\n id: 'label2', content: 'Hazard',\n style: { fill: 'white', color: 'black' }, verticalAlignment: 'Top', margin: { top: 20 }\n }]\n },\n {\n id: 'cancelledEnd', width: 40, height: 40, offsetX: 545, offsetY: 370, shape: {\n type: 'Bpmn', shape: 'Event',\n event: { event: 'End' },\n }, annotations: [{\n id: 'cancelledEndLabel2', content: 'Cancelled',\n style: { fill: 'white', color: 'black' }, verticalAlignment: 'Top', margin: { top: 20 }\n }]\n },\n {\n id: 'end', width: 40, height: 40, offsetX: 665, offsetY: 180, shape: {\n type: 'Bpmn', shape: 'Event',\n event: { event: 'End' }\n },\n },\n {\n id: 'processesStart', width: 30, height: 30, shape: {\n type: 'Bpmn', shape: 'Event',\n event: { event: 'Start' }\n }, margin: { left: 40, top: 80 }\n },\n {\n id: 'service', style: { fill: '#6FAAB0' }, width: 95, height: 70,\n shape: {\n type: 'Bpmn', shape: 'Activity', activity: {\n activity: 'Task', task: {\n type: 'Service',\n loop: 'parallelmultiinstance',\n },\n },\n }, annotations: [{\n id: 'serviceLabel2', content: 'Book hotel', offset: { x: 0.50, y: 0.50 },\n style: { color: 'white', }\n }], margin: { left: 110, top: 20 },\n },\n {\n id: 'compensation', width: 30, height: 30,\n shape: {\n type: 'Bpmn', shape: 'Event',\n event: { event: 'Intermediate', trigger: 'Compensation' }\n }, margin: { left: 170, top: 100 }\n },\n {\n id: 'processesTask', style: { fill: '#F6B53F' }, width: 95, height: 70,\n shape: {\n type: 'Bpmn', shape: 'Activity', activity: {\n activity: 'Task', task: {\n type: 'Service',\n },\n },\n }, annotations: [{\n id: 'serviceLabel2', content: 'Charge credit card', offset: { x: 0.50, y: 0.60 },\n style: { color: 'white' }\n }], margin: { left: 290, top: 20 },\n },\n {\n id: 'error', width: 30, height: 30,\n shape: {\n type: 'Bpmn', shape: 'Event',\n event: {\n event: 'Intermediate', trigger: 'Error'\n }\n }, margin: { left: 350, top: 100 }\n },\n {\n id: 'processesEnd', width: 30, height: 30, shape: {\n type: 'Bpmn', shape: 'Event',\n event: { event: 'End' }\n }, margin: { left: 440, top: 80 }\n },\n {\n id: 'user', style: { fill: '#E94649' }, width: 90, height: 80,\n shape: {\n type: 'Bpmn', shape: 'Activity', activity: {\n activity: 'Task', task: {\n type: 'User', Compensation: true, offset: { x: 0.50, y: 1 }\n },\n },\n }, annotations: [{\n id: 'serviceLabel2', content: 'Cancel hotel reservation', offset: { x: 0.50, y: 0.60 },\n style: { color: 'white' }\n }], margin: { left: 240, top: 160 },\n },\n {\n id: 'subProcessesEnd', width: 30, height: 30, shape: {\n type: 'Bpmn', shape: 'Event',\n event: { event: 'End' }\n }, margin: { left: 440, top: 210 }\n },\n];\nvar connectors = [\n { id: 'connector1', sourceID: 'start', targetID: 'subProcess' },\n { id: 'connector2', sourceID: 'subProcess', sourcePortID: 'success', targetID: 'end' },\n {\n id: 'connector3', sourceID: 'subProcess', sourcePortID: 'failure', targetID: 'hazardEnd', type: 'Orthogonal',\n segments: [{ type: 'Orthogonal', length: 50, direction: 'Bottom' }],\n annotations: [{\n id: 'connector3Label2', content: 'Booking system failure', offset: 0.50,\n style: { fill: 'white' }\n }]\n },\n {\n id: 'connector4', sourceID: 'subProcess', sourcePortID: 'cancel', targetID: 'cancelledEnd', type: 'Orthogonal',\n segments: [{ type: 'Orthogonal', length: 50, direction: 'Bottom' }],\n },\n { id: 'connector5', sourceID: 'processesStart', targetID: 'service', type: 'Orthogonal', },\n { id: 'connector6', sourceID: 'service', targetID: 'processesTask' },\n { id: 'connector7', sourceID: 'processesTask', targetID: 'processesEnd', type: 'Orthogonal', },\n {\n id: 'connector8', sourceID: 'compensation', targetID: 'user', type: 'Orthogonal',\n shape: {\n type: 'Bpmn',\n flow: 'association',\n association: 'Directional'\n }, style: {\n strokeDashArray: '2,2'\n },\n segments: [{ type: 'Orthogonal', length: 30, direction: 'Bottom' },\n { type: 'Orthogonal', length: 80, direction: 'Right' }]\n },\n {\n id: 'connector9', sourceID: 'error', targetID: 'subProcessesEnd', type: 'Orthogonal',\n annotations: [{\n id: 'connector9Label2', content: 'Cannot charge card', offset: 0.50,\n style: { fill: 'white', color: 'black' }\n }],\n segments: [{ type: 'Orthogonal', length: 50, direction: 'Bottom' }]\n }\n];\nvar bpmnShapes = [\n {\n id: 'Start', width: 35, height: 35, shape: {\n type: 'Bpmn', shape: 'Event',\n event: { event: 'Start' }\n }\n },\n {\n id: 'NonInterruptingIntermediate', width: 35, height: 35, shape: {\n type: 'Bpmn', shape: 'Event',\n event: { event: 'NonInterruptingIntermediate' }\n },\n },\n {\n id: 'End', width: 35, height: 35, offsetX: 665, offsetY: 230, shape: {\n type: 'Bpmn', shape: 'Event',\n event: { event: 'End' }\n },\n },\n {\n id: 'Task', width: 35, height: 35, offsetX: 700, offsetY: 700,\n shape: {\n type: 'Bpmn', shape: 'Activity', activity: {\n activity: 'Task',\n },\n }\n },\n {\n id: 'Transaction', width: 35, height: 35, offsetX: 300, offsetY: 100,\n constraints: ej.diagrams.NodeConstraints.Default | ej.diagrams.NodeConstraints.AllowDrop,\n shape: {\n type: 'Bpmn', shape: 'Activity',\n activity: {\n activity: 'SubProcess', subProcess: {\n type: 'Transaction', transaction: {\n cancel: { visible: false }, failure: { visible: false }, success: { visible: false }\n }\n }\n }\n }\n }, {\n id: 'Task_Service', width: 35, height: 35, offsetX: 700, offsetY: 700,\n shape: {\n type: 'Bpmn', shape: 'Activity', activity: {\n activity: 'Task', task: { type: 'Service' }\n },\n }\n },\n {\n id: 'Gateway', width: 35, height: 35, offsetX: 100, offsetY: 100,\n shape: { type: 'Bpmn', shape: 'Gateway', gateway: { type: 'Exclusive' } },\n },\n {\n id: 'DataObject', width: 35, height: 35, offsetX: 500, offsetY: 100,\n shape: { type: 'Bpmn', shape: 'DataObject', dataObject: { collection: false, type: 'None' } }\n }, {\n id: 'subProcess', width: 520, height: 250, offsetX: 355, offsetY: 230,\n constraints: ej.diagrams.NodeConstraints.Default | ej.diagrams.NodeConstraints.AllowDrop,\n shape: {\n shape: 'Activity', type: 'Bpmn',\n activity: {\n activity: 'SubProcess', subProcess: {\n type: 'Transaction', collapsed: false,\n processes: [], transaction: {\n cancel: { visible: false }, failure: { visible: false }, success: { visible: false }\n }\n }\n }\n }\n },\n];\nvar contextMenu = {\n show: true, items: [\n {\n text: 'Ad-Hoc', id: 'Adhoc',\n items: [{ text: 'None', iconCss: 'e-adhocs e-bpmn-event e-bpmn-icons e-None', id: 'AdhocNone' },\n { iconCss: 'e-adhocs e-bpmn-icons e-adhoc', text: 'Ad-Hoc', id: 'AdhocAdhoc' }]\n }, {\n text: 'Loop', id: 'Loop',\n items: [{ text: 'None', iconCss: 'e-loop e-bpmn-icons e-None', id: 'LoopNone' },\n { text: 'Standard', iconCss: 'e-loop e-bpmn-icons e-Loop', id: 'Standard' },\n { text: 'Parallel Multi-Instance', iconCss: 'e-loop e-bpmn-icons e-ParallelMI', id: 'ParallelMultiInstance' },\n { text: 'Sequence Multi-Instance', iconCss: 'e-loop e-bpmn-icons e-SequentialMI', id: 'SequenceMultiInstance' }]\n }, {\n text: 'Compensation', id: 'taskCompensation',\n items: [{ text: 'None', iconCss: 'e-compensation e-bpmn-icons e-None', id: 'CompensationNone' },\n { iconCss: 'e-compensation e-bpmn-icons e-Compensation', text: 'Compensation', id: 'CompensationCompensation' }]\n }, {\n text: 'Activity-Type', id: 'Activity-Type',\n items: [{ text: 'Collapsed sub-process', iconCss: 'e-bpmn-icons e-SubProcess', id: 'CollapsedSubProcess' },\n { iconCss: 'e-bpmn-icons e-Task', text: 'Expanded sub-process', id: 'ExpandedSubProcess' }]\n }, {\n text: 'Boundry', id: 'Boundry',\n items: [{ text: 'Default', iconCss: 'e-boundry e-bpmn-icons e-Default', id: 'Default' },\n { text: 'Call', iconCss: 'e-boundry e-bpmn-icons e-Call', id: 'BoundryCall' },\n { text: 'Event', iconCss: 'e-boundry e-bpmn-icons e-Event', id: 'BoundryEvent' }]\n }, {\n text: 'Data Object', id: 'DataObject',\n items: [{ text: 'None', iconCss: 'e-data e-bpmn-icons e-None', id: 'DataObjectNone' },\n { text: 'Input', iconCss: 'e-data e-bpmn-icons e-DataInput', id: 'Input' },\n { text: 'Output', iconCss: 'e-data e-bpmn-icons e-DataOutput', id: 'Output' }]\n }, {\n text: 'Collection', id: 'collection',\n items: [{ text: 'None', iconCss: 'e-collection e-bpmn-icons e-None', id: 'collectionNone' },\n { text: 'Collection', iconCss: 'e-collection e-bpmn-icons e-ParallelMI', id: 'Collectioncollection' }]\n }, {\n text: 'Call', id: 'DeftCall',\n items: [{ text: 'None', iconCss: 'e-call e-bpmn-icons e-None', id: 'CallNone' },\n { text: 'Call', iconCss: 'e-call e-bpmn-icons e-CallActivity', id: 'CallCall' }]\n }, {\n text: 'Trigger Result', id: 'TriggerResult',\n items: [{ text: 'None', id: 'TriggerNone', iconCss: 'e-trigger e-bpmn-icons e-None' },\n { text: 'Message', id: 'Message', iconCss: 'e-trigger e-bpmn-icons e-InMessage' },\n { text: 'Multiple', id: 'Multiple', iconCss: 'e-trigger e-bpmn-icons e-InMultiple' },\n { text: 'Parallel', id: 'Parallel', iconCss: 'e-trigger e-bpmn-icons e-InParallelMultiple' },\n { text: 'Signal', id: 'Signal', iconCss: 'e-trigger e-bpmn-icons e-InSignal' },\n { text: 'Timer', id: 'Timer', iconCss: 'e-trigger e-bpmn-icons e-InTimer' },\n { text: 'Cancel', id: 'Cancel', iconCss: 'e-trigger e-bpmn-icons e-CancelEnd' },\n { text: 'Escalation', id: 'Escalation', iconCss: 'e-trigger e-bpmn-icons e-InEscalation' },\n { text: 'Error', id: 'Error', iconCss: 'e-trigger e-bpmn-icons e-InError' },\n { text: 'Compensation', id: 'triggerCompensation', iconCss: 'e-trigger e-bpmn-icons e-InCompensation' },\n { text: 'Terminate', id: 'Terminate', iconCss: 'e-trigger e-bpmn-icons e-TerminateEnd' },\n { text: 'Conditional', id: 'Conditional', iconCss: 'e-trigger e-bpmn-icons e-InConditional' },\n { text: 'Link', id: 'Link', iconCss: 'e-trigger e-bpmn-icons e-ThrowLinkin' }\n ]\n },\n {\n text: 'Event Type', id: 'EventType',\n items: [{ text: 'Start', id: 'Start', iconCss: 'e-event e-bpmn-icons e-NoneStart', },\n { text: 'Intermediate', id: 'Intermediate', iconCss: 'e-event e-bpmn-icons e-InterruptingNone' },\n { text: 'NonInterruptingStart', id: 'NonInterruptingStart', iconCss: 'e-event e-bpmn-icons e-Noninterruptingstart' },\n { text: 'ThrowingIntermediate', id: 'ThrowingIntermediate', iconCss: 'e-event e-bpmn-icons e-InterruptingNone' },\n {\n text: 'NonInterruptingIntermediate', id: 'NonInterruptingIntermediate',\n iconCss: 'e-event e-bpmn-icons e-NoninterruptingIntermediate'\n },\n { text: 'End', id: 'End', iconCss: 'e-event e-bpmn-icons e-NoneEnd' }]\n }, {\n text: 'Task Type', id: 'TaskType',\n items: [\n { text: 'None', id: 'TaskNone', iconCss: 'e-task e-bpmn-icons e-None' },\n { text: 'Service', id: 'Service', iconCss: 'e-task e-bpmn-icons e-ServiceTask' },\n { text: 'BusinessRule', id: 'BusinessRule', iconCss: 'e-task e-bpmn-icons e-BusinessRule' },\n { text: 'InstantiatingReceive', id: 'InstantiatingReceive', iconCss: 'e-task e-bpmn-icons e-InstantiatingReceive' },\n { text: 'Manual', id: 'Manual', iconCss: 'e-task e-bpmn-icons e-ManualCall' },\n { text: 'Receive', id: 'Receive', iconCss: 'e-task e-bpmn-icons e-InMessage' },\n { text: 'Script', id: 'Script', iconCss: 'e-task e-bpmn-icons e-ScriptCall' },\n { text: 'Send', id: 'Send', iconCss: 'e-task e-bpmn-icons e-InMessage' },\n { text: 'User', id: 'User', iconCss: 'e-task e-bpmn-icons e-UserCall' },\n ]\n }, {\n text: 'GateWay', id: 'GateWay',\n iconCss: 'e-bpmn-icons e-Gateway', items: [\n { text: 'None', id: 'GatewayNone', iconCss: 'e-gate e-bpmn-icons e-None' },\n { text: 'Exclusive', iconCss: 'e-gate e-bpmn-icons e-ExclusiveGatewayWithMarker', id: 'Exclusive' },\n { text: 'Inclusive', iconCss: 'e-gate e-bpmn-icons e-InclusiveGateway', id: 'Inclusive' },\n { text: 'Parallel', iconCss: 'e-gate e-bpmn-icons e-ParallelGateway', id: 'GatewayParallel' },\n { text: 'Complex', iconCss: 'e-gate e-bpmn-icons e-ComplexGateway', id: 'Complex' },\n { text: 'EventBased', iconCss: 'e-gate e-bpmn-icons e-EventBasedGateway', id: 'EventBased' },\n { text: 'ExclusiveEventBased', iconCss: 'e-gate e-bpmn-icons e-ExclusiveEventBased', id: 'ExclusiveEventBased' },\n { text: 'ParallelEventBased', iconCss: 'e-gate e-bpmn-icons e-ParallelEventBasedGatewaytostart', id: 'ParallelEventBased' }\n ]\n },\n ],\n showCustomMenuOnly: true,\n};\n\nfunction getConnectors() {\n var connectorSymbols = [\n {\n id: 'Link1', type: 'Orthogonal', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 40, y: 40 },\n targetDecorator: { shape: 'Arrow' }, style: { strokeWidth: 2 }\n },\n {\n id: 'Link2', type: 'Orthogonal', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 40, y: 40 },\n targetDecorator: { shape: 'Arrow' }, style: { strokeWidth: 2, strokeDashArray: '4 4' }\n },\n {\n id: 'Link3', type: 'Straight', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 40, y: 40 },\n targetDecorator: { shape: 'Arrow' }, style: { strokeWidth: 2 }\n },\n {\n id: 'link4', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 40, y: 40 }, type: 'Orthogonal',\n shape: {\n type: 'Bpmn',\n flow: 'Association',\n association: 'Directional'\n }, style: {\n strokeDashArray: '2,2'\n },\n },\n ];\n return connectorSymbols;\n}\n\nfunction dragEnter(args) {\n var obj = args.element;\n if (obj instanceof ej.diagrams.Node) {\n if (!obj.shape.activity.subProcess.collapsed) {\n obj.shape.activity.subProcess.transaction.cancel.visible = true;\n obj.shape.activity.subProcess.transaction.failure.visible = true;\n obj.shape.activity.subProcess.transaction.success.visible = true;\n }\n else {\n var oWidth = obj.width;\n var oHeight = obj.height;\n var ratio = 100 / obj.width;\n obj.width = 100;\n obj.height *= ratio;\n obj.offsetX += (obj.width - oWidth) / 2;\n obj.offsetY += (obj.height - oHeight) / 2;\n }\n }\n}\n\nfunction contextMenuClick(args) {\n if (diagram.selectedItems.nodes.length > 0) {\n var bpmnShape = diagram.selectedItems.nodes[0].shape;\n if (args.item.iconCss.indexOf('e-adhocs') > -1) {\n bpmnShape.activity.subProcess.adhoc = args.item.id === 'AdhocNone' ? false : true;\n }\n if (args.item.iconCss.indexOf(\"e-event\") > -1) {\n bpmnShape.event.event = args.item.id;\n }\n if (args.item.iconCss.indexOf(\"e-trigger\") > -1) {\n bpmnShape.event.trigger = args.item.text;\n }\n if (args.item.iconCss.indexOf(\"e-loop\") > -1) {\n var loop = (args.item.id === 'LoopNone') ? 'None' : args.item.id;\n if (bpmnShape.activity.activity === 'Task') {\n bpmnShape.activity.task.loop = loop;\n }\n if (bpmnShape.activity.activity === 'SubProcess') {\n bpmnShape.activity.subProcess.loop = loop;\n }\n }\n if (args.item.iconCss.indexOf(\"e-compensation\") > -1) {\n var compensation = (args.item.id === 'CompensationNone') ? false : true;\n if (bpmnShape.activity.activity === 'Task') {\n bpmnShape.activity.task.compensation = compensation;\n }\n if (bpmnShape.activity.activity === 'SubProcess') {\n bpmnShape.activity.subProcess.compensation = compensation;\n }\n }\n if (args.item.iconCss.indexOf('e-call') > -1) {\n var compensations = (args.item.id === 'CallNone') ? false : true;\n if (bpmnShape.activity.activity === 'Task') {\n bpmnShape.activity.task.call = compensations;\n }\n }\n if (args.item.id === 'CollapsedSubProcess' || args.item.id === 'ExpandedSubProcess') {\n if (args.item.id === 'ExpandedSubProcess') {\n bpmnShape.activity.activity = 'SubProcess';\n bpmnShape.activity.subProcess.collapsed = false;\n }\n else {\n bpmnShape.activity.activity = 'SubProcess';\n bpmnShape.activity.subProcess.collapsed = true;\n }\n }\n if (args.item.iconCss.indexOf('e-boundry') > -1) {\n call = args.item.id;\n if (args.item.id !== 'Default') {\n call = (args.item.id === 'BoundryEvent') ? 'Event' : 'Call';\n }\n bpmnShape.activity.subProcess.boundary = call;\n }\n if (args.item.iconCss.indexOf('e-data') > -1) {\n var data = args.item.id === 'DataObjectNone' ? 'None' : args.item.id;\n bpmnShape.dataObject.type = data;\n }\n if (args.item.iconCss.indexOf('e-collection') > -1) {\n var collection = (args.item.id === 'Collectioncollection') ? true : false;\n bpmnShape.dataObject.collection = collection;\n }\n if (args.item.iconCss.indexOf(\"e-task\") > -1) {\n var task = task === 'TaskNone' ? 'None' : args.item.id;\n if (bpmnShape.activity.activity === 'Task') {\n bpmnShape.activity.task.type = task;\n }\n }\n if (args.item.iconCss.indexOf(\"e-gate\") > -1) {\n var gate = args.item.id.replace('Gateway', '');\n if (bpmnShape.shape === 'Gateway') {\n bpmnShape.gateway.type = gate;\n }\n }\n diagram.dataBind();\n }\n}\nfunction contextMenuOpen(args) {\n var hiddenId = [];\n if (args.element.className !== 'e-menu-parent e-ul ') {\n hiddenId = ['Adhoc', 'Loop', 'taskCompensation', 'Activity-Type', 'Boundry', 'DataObject',\n 'collection', 'DeftCall', 'TriggerResult', 'EventType', 'TaskType', 'GateWay'];\n }\n if (diagram.selectedItems.nodes.length) {\n for (var i = 0; i < args.items.length; i++) {\n var item = args.items[i];\n var bpmnShape = diagram.selectedItems.nodes[0].shape;\n if (bpmnShape.shape !== 'DataObject' && bpmnShape.shape !== 'Gateway') {\n if (item.text === 'Ad-Hoc') {\n if (bpmnShape.activity.activity === 'SubProcess') {\n hiddenId.splice(hiddenId.indexOf(item.id), 1);\n }\n }\n if (item.text === 'Loop' || item.text === 'Compensation' || item.text === 'Activity-Type') {\n if (bpmnShape.shape === 'Activity') {\n hiddenId.splice(hiddenId.indexOf(item.id), 1);\n }\n }\n if (item.text === 'Boundry') {\n if ((bpmnShape.activity.activity === 'SubProcess')) {\n hiddenId.splice(hiddenId.indexOf(item.id), 1);\n }\n }\n }\n if (item.text === 'Data Object') {\n if ((bpmnShape.shape === 'DataObject')) {\n hiddenId.splice(hiddenId.indexOf(item.id), 1);\n }\n }\n if (item.text === 'Collection') {\n if ((bpmnShape.shape === 'DataObject')) {\n hiddenId.splice(hiddenId.indexOf(item.id), 1);\n }\n }\n if (item.text === 'Call') {\n if ((bpmnShape.shape === 'Activity') &&\n (bpmnShape.activity.activity === 'Task')) {\n hiddenId.splice(hiddenId.indexOf(item.id), 1);\n }\n }\n if (item.text === 'Trigger Result') {\n if ((bpmnShape.shape === 'Event')) {\n hiddenId.splice(hiddenId.indexOf(item.id), 1);\n }\n }\n if (item.text === 'Event Type') {\n if ((bpmnShape.shape === 'Event')) {\n hiddenId.splice(hiddenId.indexOf(item.id), 1);\n }\n }\n if (item.text === 'Task Type') {\n if ((bpmnShape.shape === 'Activity') &&\n (bpmnShape.activity.activity === 'Task')) {\n hiddenId.splice(hiddenId.indexOf(item.id), 1);\n }\n }\n if (item.text === 'GateWay') {\n if ((bpmnShape.shape === 'Gateway')) {\n hiddenId.splice(hiddenId.indexOf(item.id), 1);\n }\n }\n if (diagram.selectedItems.nodes.length > 0 && args.parentItem && args.parentItem.id === 'TriggerResult' &&\n bpmnShape.shape === 'Event') {\n var shape = bpmnShape;\n if (item.text !== 'None' && (item.text === shape.event.event ||\n item.text === shape.event.trigger)) {\n hiddenId.push(item.id);\n }\n if (shape.event.event === 'Start') {\n if (item.text === 'Cancel' || item.text === 'Terminate' || item.text === 'Link') {\n hiddenId.push(item.id);\n }\n }\n if (shape.event.event === 'NonInterruptingStart' || item.text === 'Link') {\n if (item.text === 'Cancel' || item.text === 'Terminate' || item.text === 'Compensation' ||\n item.text === 'Error' || item.text === 'None') {\n hiddenId.push(item.id);\n }\n }\n if (shape.event.event === 'Intermediate') {\n if (item.text === 'Terminate') {\n hiddenId.push(item.id);\n }\n }\n if (shape.event.event === 'NonInterruptingIntermediate') {\n if (item.text === 'Cancel' || item.text === 'Terminate' || item.text === 'Compensation' ||\n item.text === 'Error' || item.text === 'None' || item.text === 'Link') {\n hiddenId.push(item.id);\n }\n }\n if (shape.event.event === 'ThrowingIntermediate') {\n if (item.text === 'Cancel' || item.text === 'Terminate' || item.text === 'Timer' || item.text === 'Error' ||\n item.text === 'None' || item.text === 'Pareller' || item.text === 'Conditional') {\n hiddenId.push(item.id);\n }\n }\n if (shape.event.event === 'End') {\n if (item.text === 'Parallel' || item.text === 'Timer' || item.text === 'Conditional' || item.text === 'Link') {\n hiddenId.push(item.id);\n }\n }\n }\n if (diagram.selectedItems.nodes.length > 0 && args.parentItem && args.parentItem.id === 'EventType' &&\n bpmnShape.shape === 'Event') {\n if ((item.text === bpmnShape.event.event)) {\n hiddenId.push(item.id);\n }\n }\n }\n }\n args.hiddenItems = hiddenId;\n}\n\nfunction paletteIconClick() {\n var isMobile = window.matchMedia('(max-width:550px)').matches;\n if (isMobile) {\n var element = document.getElementById('palette-icon');\n if (element) {\n element.addEventListener('click', showPaletteToolbar, false);\n }\n }\n}\n\n\n diagram = new ej.diagrams.Diagram({\n width: '100%', height: '469px', nodes: nodes, connectors: connectors,\n contextMenuSettings: contextMenu,\n contextMenuOpen: contextMenuOpen,\n contextMenuClick: contextMenuClick,\n snapSettings: { constraints: ej.diagrams.SnapConstraints.None },\n dragEnter: dragEnter\n });\n diagram.appendTo('#diagram');\n diagram.fitToPage();\n \n var palette = new ej.diagrams.SymbolPalette({\n expandMode: 'Multiple', symbolMargin: { left: 15, right: 15, top: 15, bottom: 15 }, symbolHeight: 60, symbolWidth: 60,\n palettes: [\n { id: 'Bpmn', expanded: true, symbols: bpmnShapes, iconCss: 'shapes', title: 'BPMN Shapes' },\n { id: 'Connector', expanded: true, symbols: getConnectors(), iconCss: 'shapes', title: 'Connectors' },\n ],\n width: '100%', height: '471px'\n });\n palette.appendTo('#symbolpalette');\n paletteIconClick();\n\n\n"}
\ No newline at end of file
diff --git a/src/diagram/complex-hierarchical-tree-stack.json b/src/diagram/complex-hierarchical-tree-stack.json
index 23989421..5cbd0454 100644
--- a/src/diagram/complex-hierarchical-tree-stack.json
+++ b/src/diagram/complex-hierarchical-tree-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n \n
\n \n
\n
\n Orientation\n
\n
\n
\n
\n
\n
\n Behavior\n
\n
\n
\n
\n
\n
\n
\n\n\n
","index.js":"{{ripple}}/**\n * Multiple Parent sample\n */\n// tslint:disable-next-line:max-func-body-length\nej.diagrams.Diagram.Inject(ej.diagrams.DataBinding, ej.diagrams.ComplexHierarchicalTree);\nvar horizontalSpacingObj;\nvar verticalSpacingObj;\nvar marginTopObj;\nvar marginLeftObj;\nvar diagram;\n//Apply the Alignment for the layout.\nfunction update(value) {\n if (value === 'left') {\n diagram.layout.margin.left = marginLeftObj.value;\n } else if (value === 'top') {\n diagram.layout.margin.top = marginTopObj.value;\n } else if (value === 'hspacing') {\n diagram.layout.horizontalSpacing = horizontalSpacingObj.value;\n } else if (value === 'vspacing') {\n diagram.layout.verticalSpacing = verticalSpacingObj.value;\n }\n diagram.dataBind();\n}\n\n\n\n\n //Initializes diagram control\n diagram = new ej.diagrams.Diagram({\n width: '100%', height: 580,\n //Configrues hierarchical tree layout\n layout: {\n type: 'ComplexHierarchicalTree',\n horizontalSpacing: 40, verticalSpacing: 40, orientation: 'TopToBottom',\n margin: { left: 10, right: 0, top: 50, bottom: 0 }\n },\n //Sets the default values of nodes\n getNodeDefaults: function (obj) {\n obj.width = 40;\n obj.height = 40;\n obj.shape = { type: 'Basic', shape: 'Rectangle', cornerRadius: 7 };\n },\n //Sets the default values of connectors\n getConnectorDefaults: function (connector) {\n connector.type = 'Orthogonal';\n connector.cornerRadius = 7;\n connector.targetDecorator.height = 7;\n connector.targetDecorator.width = 7;\n connector.style.strokeColor = '#6d6d6d';\n },\n //Configures data source\n dataSourceSettings: {\n id: 'Name', parentId: 'ReportingPerson',\n dataManager: new ej.data.DataManager(window.multiParentData),\n //binds the external data with node\n doBinding: function (nodeModel, data) {\n nodeModel.style = { fill: data.fillColor, strokeWidth: 1, strokeColor: data.border };\n }\n },\n //Disables all interactions except zoom/pan\n tool: ej.diagrams.DiagramTools.ZoomPan,\n snapSettings: { constraints: 0 }\n });\n diagram.appendTo('#diagram');\n\n //used NumericTextBox for left margin of the layout.\n marginLeftObj = new ej.inputs.NumericTextBox({\n value: diagram.layout.margin.left,\n step: 1,\n format: '##.##',\n change: function (args) {\n update('left');\n }\n });\n marginLeftObj.appendTo('#marginLeft');\n //used NumericTextBox for top margin of the layout.\n marginTopObj = new ej.inputs.NumericTextBox({\n value: diagram.layout.margin.top,\n step: 1,\n format: '##.##',\n change: function (args) {\n update('top');\n }\n });\n marginTopObj.appendTo('#marginTop');\n //used NumericTextBox for horizontalspacing of the layout.\n horizontalSpacingObj = new ej.inputs.NumericTextBox({\n value: diagram.layout.horizontalSpacing,\n step: 1,\n format: '##.##',\n change: function (args) {\n update('hspacing');\n }\n });\n horizontalSpacingObj.appendTo('#horiontal');\n //used NumericTextBox for verticalspacing of the layout.\n verticalSpacingObj = new ej.inputs.NumericTextBox({\n value: diagram.layout.verticalSpacing,\n step: 1,\n format: '##.##',\n change: function (args) {\n update('vspacing');\n }\n });\n verticalSpacingObj.appendTo('#vertical');\n //Click Event for Appearance of the layout.\n document.getElementById('appearance').onclick = function (args) {\n var target = args.target;\n\n if (target.className === 'image-pattern-style') {\n var id = target.id;\n var orientation1 = id.substring(0, 1).toUpperCase() + id.substring(1, id.length);\n diagram.layout.orientation = orientation1;\n diagram.dataBind();\n diagram.doLayout();\n\n }\n };\n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n \n
\n \n
\n
\n Orientation\n
\n
\n
\n
\n
\n
\n Behavior\n
\n
\n
\n
\n
\n
\n
\n\n\n
","index.js":"{{ripple}}/**\n * Multiple Parent sample\n */\n// tslint:disable-next-line:max-func-body-length\nej.diagrams.Diagram.Inject(ej.diagrams.DataBinding, ej.diagrams.ComplexHierarchicalTree);\nvar horizontalSpacingObj;\nvar verticalSpacingObj;\nvar marginTopObj;\nvar marginLeftObj;\nvar diagram;\n//Apply the Alignment for the layout.\nfunction update(value) {\n if (value === 'left') {\n diagram.layout.margin.left = marginLeftObj.value;\n } else if (value === 'top') {\n diagram.layout.margin.top = marginTopObj.value;\n } else if (value === 'hspacing') {\n diagram.layout.horizontalSpacing = horizontalSpacingObj.value;\n } else if (value === 'vspacing') {\n diagram.layout.verticalSpacing = verticalSpacingObj.value;\n }\n diagram.dataBind();\n}\n\n\n\n\n //Initializes diagram control\n diagram = new ej.diagrams.Diagram({\n width: '100%', height: 580,\n //Configrues hierarchical tree layout\n layout: {\n type: 'ComplexHierarchicalTree',\n horizontalSpacing: 40, verticalSpacing: 40, orientation: 'TopToBottom',\n margin: { left: 10, right: 0, top: 50, bottom: 0 }\n },\n //Sets the default values of nodes\n getNodeDefaults: function (obj) {\n obj.width = 40;\n obj.height = 40;\n obj.shape = { type: 'Basic', shape: 'Rectangle', cornerRadius: 7 };\n },\n //Sets the default values of connectors\n getConnectorDefaults: function (connector) {\n connector.type = 'Orthogonal';\n connector.cornerRadius = 7;\n connector.targetDecorator.height = 7;\n connector.targetDecorator.width = 7;\n connector.style.strokeColor = '#6d6d6d';\n },\n //Configures data source\n dataSourceSettings: {\n id: 'Name', parentId: 'ReportingPerson',\n dataManager: new ej.data.DataManager(window.multiParentData),\n //binds the external data with node\n doBinding: function (nodeModel, data) {\n nodeModel.style = { fill: data.fillColor, strokeWidth: 1, strokeColor: data.border };\n }\n },\n //Disables all interactions except zoom/pan\n tool: ej.diagrams.DiagramTools.ZoomPan,\n snapSettings: { constraints: 0 }\n });\n diagram.appendTo('#diagram');\n\n //used NumericTextBox for left margin of the layout.\n marginLeftObj = new ej.inputs.NumericTextBox({\n value: diagram.layout.margin.left,\n step: 1,\n format: '##.##',\n change: function (args) {\n update('left');\n }\n });\n marginLeftObj.appendTo('#marginLeft');\n //used NumericTextBox for top margin of the layout.\n marginTopObj = new ej.inputs.NumericTextBox({\n value: diagram.layout.margin.top,\n step: 1,\n format: '##.##',\n change: function (args) {\n update('top');\n }\n });\n marginTopObj.appendTo('#marginTop');\n //used NumericTextBox for horizontalspacing of the layout.\n horizontalSpacingObj = new ej.inputs.NumericTextBox({\n value: diagram.layout.horizontalSpacing,\n step: 1,\n format: '##.##',\n change: function (args) {\n update('hspacing');\n }\n });\n horizontalSpacingObj.appendTo('#horiontal');\n //used NumericTextBox for verticalspacing of the layout.\n verticalSpacingObj = new ej.inputs.NumericTextBox({\n value: diagram.layout.verticalSpacing,\n step: 1,\n format: '##.##',\n change: function (args) {\n update('vspacing');\n }\n });\n verticalSpacingObj.appendTo('#vertical');\n //Click Event for Appearance of the layout.\n document.getElementById('appearance').onclick = function (args) {\n var target = args.target;\n\n if (target.className === 'image-pattern-style') {\n var id = target.id;\n var orientation1 = id.substring(0, 1).toUpperCase() + id.substring(1, id.length);\n diagram.layout.orientation = orientation1;\n diagram.dataBind();\n diagram.doLayout();\n\n }\n };\n"}
\ No newline at end of file
diff --git a/src/diagram/connector-stack.json b/src/diagram/connector-stack.json
index 9319c0c5..97ea450a 100644
--- a/src/diagram/connector-stack.json
+++ b/src/diagram/connector-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n \n
\n \n
\n
\n Appearance\n
\n
\n
\n
\n
\n
\n
\n
\n\n
","index.js":"{{ripple}}/**\n * Connector sample\n */\nej.diagrams.Diagram.Inject(ej.diagrams.DataBinding, ej.diagrams.HierarchicalTree,\n ej.diagrams.ConnectorBridging);\nvar diagram;\n\n\n//creation of the TextElement.\nfunction getTextElement(text) {\n var textElement = new ej.diagrams.TextElement();\n textElement.id = ej.diagrams.randomId(); \n textElement.width = 80;\n textElement.height = 35;\n textElement.content = text;\n textElement.style.fill = '#6f409f';\n textElement.style.color = 'white';\n textElement.style.strokeColor = '#6f409f';\n textElement.cornerRadius = 5;\n textElement.margin = { top: 10, bottom: 10, left: 10, right: 10 };\n textElement.relativeMode = 'Object';\n return textElement;\n}\n\n//creation of Port for Node.\nfunction getPorts(obj) {\n if (obj.id === 'node2') {\n var node2Ports = [\n { id: 'port1', offset: { x: 1, y: 0.25 }, visibility: ej.diagrams.PortVisibility.Hidden },\n { id: 'port2', offset: { x: 1, y: 0.5 }, visibility: ej.diagrams.PortVisibility.Hidden },\n { id: 'port3', offset: { x: 1, y: 0.75 }, visibility: ej.diagrams.PortVisibility.Hidden }\n ];\n return node2Ports;\n }\n else if (obj.id === 'node6') {\n var node6Ports = [\n { id: 'port4', offset: { x: 0, y: 0.46 }, visibility: ej.diagrams.PortVisibility.Hidden },\n { id: 'port5', offset: { x: 0, y: 0.5 }, visibility: ej.diagrams.PortVisibility.Hidden },\n { id: 'port6', offset: { x: 0, y: 0.54 }, visibility: ej.diagrams.PortVisibility.Hidden }\n ];\n return node6Ports;\n }\n else {\n var ports = [\n { id: 'portIn', offset: { x: 0, y: 0.5 }, visibility: ej.diagrams.PortVisibility.Hidden },\n { id: 'portOut', offset: { x: 1, y: 0.5 }, visibility: ej.diagrams.PortVisibility.Hidden },\n ];\n return ports;\n }\n}\n\n//ConnectorStyle customization\nfunction applyConnectorStyle(dashedLine, sourceDec, isRounded, type, target, strokeWidth) {\n for (var i = 0; i < diagram.connectors.length; i++) {\n connector = diagram.connectors[i];\n connector.style.strokeWidth = !strokeWidth ? 2 : strokeWidth;\n connector.type = type;\n connector.cornerRadius = isRounded ? 5 : 0;\n connector.style.strokeDashArray = dashedLine ? '5,5' : '';\n if (sourceDec) {\n diagram.connectors[i].sourceDecorator = {\n style: {\n strokeColor: '#6f409f',\n fill: '#6f409f', strokeWidth: 2\n }, shape: 'Circle'\n };\n }\n else {\n diagram.connectors[i].sourceDecorator = { shape: 'None' };\n }\n diagram.connectors[i].targetDecorator = {\n style: {\n strokeColor: '#6f409f',\n fill: '#6f409f', strokeWidth: 2\n }, shape: 'Arrow'\n };\n diagram.dataBind();\n }\n\n}\n// tslint:disable-next-line:max-func-body-length\n\n var bounds = document.getElementsByClassName('content-wrapper')[0].getBoundingClientRect();\n var marginLeft = (bounds.width - 560) / 2;\n //Initialize Diagram Nodes\n var nodes = [\n { id: 'node1', annotations: [{ content: 'Promotion' }] },\n { id: 'node2', annotations: [{ content: 'Lead' }] },\n { id: 'node3', annotations: [{ content: 'Account' }] },\n { id: 'node4', annotations: [{ content: 'Information' }] },\n { id: 'node5', annotations: [{ content: 'Opportunity' }] },\n { id: 'node6', offsetX: marginLeft + 530, offsetY: 290, excludeFromLayout: true }\n ];\n //Initialize Diagram connectors\n var connectors = [\n { id: 'connectr', sourceID: 'node1', targetID: 'node2' },\n {\n id: 'connectr1', sourceID: 'node2', sourcePortID: 'port1',\n targetID: 'node3', targetPortID: 'portIn'\n },\n {\n id: 'connectr2', sourceID: 'node2', sourcePortID: 'port2',\n targetID: 'node4', targetPortID: 'portIn'\n },\n {\n id: 'connectr3', sourceID: 'node2', sourcePortID: 'port3',\n targetID: 'node5', targetPortID: 'portIn'\n },\n {\n id: 'connectr4', sourceID: 'node6', sourcePortID: 'port4',\n targetID: 'node3', targetPortID: 'portOut'\n },\n {\n id: 'connectr5', sourceID: 'node6', sourcePortID: 'port5',\n targetID: 'node4', targetPortID: 'portOut'\n },\n {\n id: 'connectr7', sourceID: 'node6', sourcePortID: 'port6',\n targetID: 'node5', targetPortID: 'portOut'\n }\n ];\n //Initializes diagram control\n diagram = new ej.diagrams.Diagram({\n width: '100%', height: 580, nodes: nodes,\n connectors: connectors,\n selectedItems: {\n constraints: (ej.diagrams.SelectorConstraints.ConnectorSourceThumb\n | ej.diagrams.SelectorConstraints.ConnectorTargetThumb)\n },\n //Configrues hierarchical tree layout\n layout: {\n type: 'HierarchicalTree', orientation: 'LeftToRight',\n verticalSpacing: 75, margin: { left: marginLeft, right: 0, top: 0, bottom: 0 }\n },\n snapSettings: { constraints: 0 },\n //set default value for Nodes.\n getNodeDefaults: function (obj) {\n if (obj.id !== 'node1') {\n obj.ports = getPorts(obj);\n }\n if (obj.id !== 'node6') {\n obj.shape = { type: 'Basic', shape: 'Rectangle', cornerRadius: 10 };\n obj.width = 80;\n obj.style.strokeWidth = 2;\n obj.style.strokeColor = '#6F409F';\n obj.height = 35;\n }\n },\n //set default value for Connectors.\n getConnectorDefaults: function (obj) {\n obj.type = 'Bezier';\n obj.style.strokeColor = '#6f409f';\n obj.style.strokeWidth = 2;\n obj.targetDecorator = {\n style: {\n strokeColor: '#6f409f',\n fill: '#6f409f',\n }\n };\n },\n //Customize the content of the node\n setNodeTemplate: function (obj) {\n if (obj.id === 'node6') {\n var canvas = new ej.diagrams.StackPanel();\n canvas.id = ej.diagrams.randomId();\n canvas.children = [];\n canvas.style.strokeWidth = 0;\n canvas.style.fill = '#e6e0eb';\n canvas.children.push(getTextElement('Events', '#a6a1e0'));\n canvas.children.push(getTextElement('Emails', '#db8ec9'));\n canvas.children.push(getTextElement('Calls', '#db8ec9'));\n canvas.children.push(getTextElement('Smart Contents', '#db8ec9'));\n return canvas;\n }\n return null;\n },\n });\n diagram.appendTo('#diagram');\n //checkbox is used to enable or disable the connector interaction.\n var checkBoxObj = new ej.buttons.CheckBox({\n checked: false, label: 'Lock',\n change: function (args) {\n for (var j = 0; j < diagram.connectors.length; j++) {\n var connector = diagram.connectors[j];\n if (args.checked) {\n connector.constraints &= ~(ej.diagrams.ConnectorConstraints.DragSourceEnd\n | ej.diagrams.ConnectorConstraints.DragTargetEnd | ej.diagrams.ConnectorConstraints.DragSegmentThumb);\n connector.constraints |= ej.diagrams.ConnectorConstraints.ReadOnly;\n }\n else {\n connector.constraints |= ej.diagrams.ConnectorConstraints.Default & ~(ej.diagrams.ConnectorConstraints.ReadOnly);\n }\n diagram.dataBind();\n }\n }\n });\n checkBoxObj.appendTo('#checked');\n\n //Click Event for Appearance of the layout.\n document.getElementById('appearance').onclick = function (args) {\n var target = args.target;\n\n if (target.className === 'image-pattern-style') {\n switch (target.id) {\n case 'straightConnector':\n applyConnectorStyle(false, false, false, 'Straight', target, 1);\n break;\n case 'orthogonalConnector':\n applyConnectorStyle(false, false, false, 'Orthogonal', target, 1);\n break;\n case 'bezierConnector':\n applyConnectorStyle(false, false, false, 'Bezier', target, 1);\n break;\n case 'straightConnectorWithStroke':\n applyConnectorStyle(false, false, false, 'Straight', target);\n break;\n case 'orthogonalConnectorWithStroke':\n applyConnectorStyle(false, false, false, 'Orthogonal', target);\n break;\n case 'bezierConnectorWithStroke':\n applyConnectorStyle(false, false, false, 'Bezier', target);\n break;\n case 'straightConnectorWithDasharray':\n applyConnectorStyle(true, false, false, 'Straight', target);\n break;\n case 'orthogonalConnectorWithDasharray':\n applyConnectorStyle(true, false, false, 'Orthogonal', target);\n break;\n case 'bezierConnectorWithDasharray':\n applyConnectorStyle(true, false, false, 'Bezier', target);\n break;\n case 'cornerRadious':\n applyConnectorStyle(false, false, true, 'Orthogonal', target);\n break;\n case 'sourceDecorator':\n applyConnectorStyle(false, true, false, 'Straight', target);\n break;\n case 'sourceDecoratorWithDasharray':\n applyConnectorStyle(true, true, false, 'Straight', target);\n break;\n }\n }\n };\n\n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n \n
\n \n
\n
\n Appearance\n
\n
\n
\n
\n
\n
\n
\n
\n\n
","index.js":"{{ripple}}/**\n * Connector sample\n */\nej.diagrams.Diagram.Inject(ej.diagrams.DataBinding, ej.diagrams.HierarchicalTree,\n ej.diagrams.ConnectorBridging);\nvar diagram;\n\n\n//creation of the TextElement.\nfunction getTextElement(text) {\n var textElement = new ej.diagrams.TextElement();\n textElement.id = ej.diagrams.randomId(); \n textElement.width = 80;\n textElement.height = 35;\n textElement.content = text;\n textElement.style.fill = '#6f409f';\n textElement.style.color = 'white';\n textElement.style.strokeColor = '#6f409f';\n textElement.cornerRadius = 5;\n textElement.margin = { top: 10, bottom: 10, left: 10, right: 10 };\n textElement.relativeMode = 'Object';\n return textElement;\n}\n\n//creation of Port for Node.\nfunction getPorts(obj) {\n if (obj.id === 'node2') {\n var node2Ports = [\n { id: 'port1', offset: { x: 1, y: 0.25 }, visibility: ej.diagrams.PortVisibility.Hidden },\n { id: 'port2', offset: { x: 1, y: 0.5 }, visibility: ej.diagrams.PortVisibility.Hidden },\n { id: 'port3', offset: { x: 1, y: 0.75 }, visibility: ej.diagrams.PortVisibility.Hidden }\n ];\n return node2Ports;\n }\n else if (obj.id === 'node6') {\n var node6Ports = [\n { id: 'port4', offset: { x: 0, y: 0.46 }, visibility: ej.diagrams.PortVisibility.Hidden },\n { id: 'port5', offset: { x: 0, y: 0.5 }, visibility: ej.diagrams.PortVisibility.Hidden },\n { id: 'port6', offset: { x: 0, y: 0.54 }, visibility: ej.diagrams.PortVisibility.Hidden }\n ];\n return node6Ports;\n }\n else {\n var ports = [\n { id: 'portIn', offset: { x: 0, y: 0.5 }, visibility: ej.diagrams.PortVisibility.Hidden },\n { id: 'portOut', offset: { x: 1, y: 0.5 }, visibility: ej.diagrams.PortVisibility.Hidden },\n ];\n return ports;\n }\n}\n\n//ConnectorStyle customization\nfunction applyConnectorStyle(dashedLine, sourceDec, isRounded, type, target, strokeWidth) {\n for (var i = 0; i < diagram.connectors.length; i++) {\n connector = diagram.connectors[i];\n connector.style.strokeWidth = !strokeWidth ? 2 : strokeWidth;\n connector.type = type;\n connector.cornerRadius = isRounded ? 5 : 0;\n connector.style.strokeDashArray = dashedLine ? '5,5' : '';\n if (sourceDec) {\n diagram.connectors[i].sourceDecorator = {\n style: {\n strokeColor: '#6f409f',\n fill: '#6f409f', strokeWidth: 2\n }, shape: 'Circle'\n };\n }\n else {\n diagram.connectors[i].sourceDecorator = { shape: 'None' };\n }\n diagram.connectors[i].targetDecorator = {\n style: {\n strokeColor: '#6f409f',\n fill: '#6f409f', strokeWidth: 2\n }, shape: 'Arrow'\n };\n diagram.dataBind();\n }\n\n}\n// tslint:disable-next-line:max-func-body-length\n\n var bounds = document.getElementsByClassName('content-wrapper')[0].getBoundingClientRect();\n var marginLeft = (bounds.width - 560) / 2;\n //Initialize Diagram Nodes\n var nodes = [\n { id: 'node1', annotations: [{ content: 'Promotion' }] },\n { id: 'node2', annotations: [{ content: 'Lead' }] },\n { id: 'node3', annotations: [{ content: 'Account' }] },\n { id: 'node4', annotations: [{ content: 'Information' }] },\n { id: 'node5', annotations: [{ content: 'Opportunity' }] },\n { id: 'node6', offsetX: marginLeft + 530, offsetY: 290, excludeFromLayout: true }\n ];\n //Initialize Diagram connectors\n var connectors = [\n { id: 'connectr', sourceID: 'node1', targetID: 'node2' },\n {\n id: 'connectr1', sourceID: 'node2', sourcePortID: 'port1',\n targetID: 'node3', targetPortID: 'portIn'\n },\n {\n id: 'connectr2', sourceID: 'node2', sourcePortID: 'port2',\n targetID: 'node4', targetPortID: 'portIn'\n },\n {\n id: 'connectr3', sourceID: 'node2', sourcePortID: 'port3',\n targetID: 'node5', targetPortID: 'portIn'\n },\n {\n id: 'connectr4', sourceID: 'node6', sourcePortID: 'port4',\n targetID: 'node3', targetPortID: 'portOut'\n },\n {\n id: 'connectr5', sourceID: 'node6', sourcePortID: 'port5',\n targetID: 'node4', targetPortID: 'portOut'\n },\n {\n id: 'connectr7', sourceID: 'node6', sourcePortID: 'port6',\n targetID: 'node5', targetPortID: 'portOut'\n }\n ];\n //Initializes diagram control\n diagram = new ej.diagrams.Diagram({\n width: '100%', height: 580, nodes: nodes,\n connectors: connectors,\n selectedItems: {\n constraints: (ej.diagrams.SelectorConstraints.ConnectorSourceThumb\n | ej.diagrams.SelectorConstraints.ConnectorTargetThumb)\n },\n //Configrues hierarchical tree layout\n layout: {\n type: 'HierarchicalTree', orientation: 'LeftToRight',\n verticalSpacing: 75, margin: { left: marginLeft, right: 0, top: 0, bottom: 0 }\n },\n snapSettings: { constraints: 0 },\n //set default value for Nodes.\n getNodeDefaults: function (obj) {\n if (obj.id !== 'node1') {\n obj.ports = getPorts(obj);\n }\n if (obj.id !== 'node6') {\n obj.shape = { type: 'Basic', shape: 'Rectangle', cornerRadius: 10 };\n obj.width = 80;\n obj.style.strokeWidth = 2;\n obj.style.strokeColor = '#6F409F';\n obj.height = 35;\n }\n },\n //set default value for Connectors.\n getConnectorDefaults: function (obj) {\n obj.type = 'Bezier';\n obj.style.strokeColor = '#6f409f';\n obj.style.strokeWidth = 2;\n obj.targetDecorator = {\n style: {\n strokeColor: '#6f409f',\n fill: '#6f409f',\n }\n };\n },\n //Customize the content of the node\n setNodeTemplate: function (obj) {\n if (obj.id === 'node6') {\n var canvas = new ej.diagrams.StackPanel();\n canvas.id = ej.diagrams.randomId();\n canvas.children = [];\n canvas.style.strokeWidth = 0;\n canvas.style.fill = '#e6e0eb';\n canvas.children.push(getTextElement('Events', '#a6a1e0'));\n canvas.children.push(getTextElement('Emails', '#db8ec9'));\n canvas.children.push(getTextElement('Calls', '#db8ec9'));\n canvas.children.push(getTextElement('Smart Contents', '#db8ec9'));\n return canvas;\n }\n return null;\n },\n });\n diagram.appendTo('#diagram');\n //checkbox is used to enable or disable the connector interaction.\n var checkBoxObj = new ej.buttons.CheckBox({\n checked: false, label: 'Lock',\n change: function (args) {\n for (var j = 0; j < diagram.connectors.length; j++) {\n var connector = diagram.connectors[j];\n if (args.checked) {\n connector.constraints &= ~(ej.diagrams.ConnectorConstraints.DragSourceEnd\n | ej.diagrams.ConnectorConstraints.DragTargetEnd | ej.diagrams.ConnectorConstraints.DragSegmentThumb);\n connector.constraints |= ej.diagrams.ConnectorConstraints.ReadOnly;\n }\n else {\n connector.constraints |= ej.diagrams.ConnectorConstraints.Default & ~(ej.diagrams.ConnectorConstraints.ReadOnly);\n }\n diagram.dataBind();\n }\n }\n });\n checkBoxObj.appendTo('#checked');\n\n //Click Event for Appearance of the layout.\n document.getElementById('appearance').onclick = function (args) {\n var target = args.target;\n\n if (target.className === 'image-pattern-style') {\n switch (target.id) {\n case 'straightConnector':\n applyConnectorStyle(false, false, false, 'Straight', target, 1);\n break;\n case 'orthogonalConnector':\n applyConnectorStyle(false, false, false, 'Orthogonal', target, 1);\n break;\n case 'bezierConnector':\n applyConnectorStyle(false, false, false, 'Bezier', target, 1);\n break;\n case 'straightConnectorWithStroke':\n applyConnectorStyle(false, false, false, 'Straight', target);\n break;\n case 'orthogonalConnectorWithStroke':\n applyConnectorStyle(false, false, false, 'Orthogonal', target);\n break;\n case 'bezierConnectorWithStroke':\n applyConnectorStyle(false, false, false, 'Bezier', target);\n break;\n case 'straightConnectorWithDasharray':\n applyConnectorStyle(true, false, false, 'Straight', target);\n break;\n case 'orthogonalConnectorWithDasharray':\n applyConnectorStyle(true, false, false, 'Orthogonal', target);\n break;\n case 'bezierConnectorWithDasharray':\n applyConnectorStyle(true, false, false, 'Bezier', target);\n break;\n case 'cornerRadious':\n applyConnectorStyle(false, false, true, 'Orthogonal', target);\n break;\n case 'sourceDecorator':\n applyConnectorStyle(false, true, false, 'Straight', target);\n break;\n case 'sourceDecoratorWithDasharray':\n applyConnectorStyle(true, true, false, 'Straight', target);\n break;\n }\n }\n };\n\n"}
\ No newline at end of file
diff --git a/src/diagram/crud-stack.json b/src/diagram/crud-stack.json
index 3e8e49eb..a96ae1b0 100644
--- a/src/diagram/crud-stack.json
+++ b/src/diagram/crud-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}/**\n * CRUD sample\n */\nej.diagrams.Diagram.Inject(\n ej.diagrams.DataBinding,\n ej.diagrams.HierarchicalTree\n);\nvar diagram;\nvar dialog;\nvar toolbarObj;\nvar sourceDropdown;\nvar targetDropdown;\nvar sourceID;\nvar targetID;\nvar nodeData = [];\n\n//Disable or Enable the toolbar items based on element selection.\nfunction selectionChange(args) {\n if (args.state === \"Changing\") {\n if (args.newValue.length > 0) {\n if (args.newValue[0] instanceof ej.diagrams.Node) {\n enableToolbarItems(true);\n } else {\n toolbarObj.enableItems( document.getElementById(items[0].id).parentElement, false );\n toolbarObj.enableItems( document.getElementById(items[2].id).parentElement, true );\n toolbarObj.enableItems( document.getElementById(items[4].id).parentElement, false );\n }\n } else {\n enableToolbarItems(false);\n }\n }\n}\n\nfunction connectionChange(args) {\n if (args.state === \"Completed\") {\n if (!args.connector.targetID || !args.connector.sourceID) {\n args.cancel = true;\n }\n }\n}\n\n//Set an label for each node.\nfunction setNodeTemplate(obj) {\n obj.annotations = [{ style: { color: \"black\" } }];\n obj.annotations[0].content = obj.Description;\n obj.style = { fill: obj.Color };\n if (obj.Id === 1) {\n //Restrict Delete Constraints for root node.\n obj.constraints = ej.diagrams.NodeConstraints.Default & ~ej.diagrams.NodeConstraints.Delete;\n }\n}\n\n//Returns an node text collection in diagram.\nfunction getDataSource() {\n var i;\n nodeData = [];\n for (i = 0; i < diagram.nodes.length; i++) {\n var node = diagram.nodes[i];\n var element = { Name: node.id, Label: node.Description };\n nodeData.push(element);\n }\n return nodeData;\n}\n\n\n//Add icons in Toolbar.\nvar items = [\n {\n text: \"Add\",\n tooltipText: \"Add\",\n prefixIcon: \"e-ddb-icons e-add\",\n id: \"Add\"\n },\n {\n type: \"Separator\"\n },\n {\n text: \"Edit\",\n tooltipText: \"Edit\",\n prefixIcon: \"e-ddb-icons e-update\",\n id: \"Edit\"\n },\n {\n type: \"Separator\"\n },\n {\n text: \"Delete\",\n tooltipText: \"Delete\",\n prefixIcon: \"e-ddb-icons e-delete\",\n id: \"Delete\"\n }\n];\n\n\n diagram = new ej.diagrams.Diagram({\n width: \"100%\",\n height: 600,\n dataSourceSettings: {\n id: 'Name',\n //Define URL to perform CRUD operations with nodes records in database.\n crudAction: {\n read: 'https://js.syncfusion.com/demos/ejServices/api/Diagram/GetNodes',\n create: 'https://js.syncfusion.com/demos/ejServices/api/Diagram/AddNodes',\n update: 'https://js.syncfusion.com/demos/ejServices/api/Diagram/UpdateNodes',\n destroy: 'https://js.syncfusion.com/demos/ejServices/api/Diagram/DeleteNodes',\n customFields: ['Id', 'Description', 'Color'],\n },\n connectionDataSource: {\n id: 'Name',\n sourceID: 'SourceNode',\n targetID: 'TargetNode',\n //Define URL to perform CRUD operations with connector records in database.\n crudAction: {\n read: 'https://js.syncfusion.com/demos/ejServices/api/Diagram/GetConnectors',\n create: 'https://js.syncfusion.com/demos/ejServices/api/Diagram/AddConnectors',\n update: 'https://js.syncfusion.com/demos/ejServices/api/Diagram/UpdateConnectors',\n destroy: 'https://js.syncfusion.com/demos/ejServices/api/Diagram/DeleteConnectors',\n customFields: ['Id'],\n }\n }\n },\n layout: { type: \"HierarchicalTree\", verticalSpacing: 40 },\n snapSettings: { constraints: 0 },\n //Set node default properties.\n getNodeDefaults: function (obj, diagram) {\n obj.width = 100;\n obj.height = 50;\n obj.shape = { type: 'Basic', shape: 'Rectangle' };\n obj.style = { strokeWidth: 1, strokeColor: '#DDDDDD' };\n return obj;\n },\n //Set connector default properties.\n getConnectorDefaults: function (connector, diagram) {\n connector.type = 'Orthogonal';\n connector.style.fill = '#707070';\n connector.style.strokeColor = '#707070';\n connector.targetDecorator = {\n style: {\n strokeColor: '#707070',\n fill: '#707070'\n },\n };\n return connector;\n },\n selectionChange: selectionChange,\n sourcePointChange: connectionChange,\n targetPointChange: connectionChange,\n setNodeTemplate: setNodeTemplate\n });\n diagram.appendTo(\"#diagram\");\n\n //Initialize ToolBar control.\n toolbarObj = new ej.navigations.Toolbar({\n clicked: toolbarClick,\n items: items\n });\n toolbarObj.appendTo(\"#toolbar\");\n enableToolbarItems(false);\n\n //Initialize dialog control.\n dialog = new ej.popups.Dialog({\n width: \"300px\",\n visible: false,\n isModal: true,\n showCloseIcon: true,\n buttons: [\n {\n click: dlgButtonClick,\n buttonModel: { content: \"Update\", isPrimary: true }\n }\n ]\n });\n dialog.appendTo(\"#editDialog\");\n\n //Initialize textbox control.\n var inputobj1 = new ej.inputs.TextBox({\n floatLabelType: \"Always\",\n placeholder: \"Description\"\n });\n inputobj1.appendTo(\"#Description\");\n\n //Initialize textbox control.\n var inputobj2 = new ej.inputs.TextBox({\n floatLabelType: \"Always\",\n placeholder: \"Color\"\n });\n inputobj2.appendTo(\"#Color\");\n\n //Initialize button control to update the node label and node color.\n var button = new ej.buttons.Button();\n button.appendTo(\"#btnUpdate\");\n\n //Initialize dropdownlist control to display an sourceNodes in diagram.\n sourceDropdown = new ej.dropdowns.DropDownList({\n fields: { text: \"Label\", value: \"Name\" },\n change: sourceDropdownChange,\n created: sourceDropdownCreate\n });\n sourceDropdown.appendTo(\"#SourceId\");\n\n //Initialize dropdownlist control to display an targetNodes in diagram.\n targetDropdown = new ej.dropdowns.DropDownList({\n fields: { text: \"Label\", value: \"Name\" },\n change: targetDropdownChange,\n created: targetDropdownCreate\n });\n targetDropdown.appendTo(\"#TargetId\");\n\n\n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}/**\n * CRUD sample\n */\nej.diagrams.Diagram.Inject(\n ej.diagrams.DataBinding,\n ej.diagrams.HierarchicalTree\n);\nvar diagram;\nvar dialog;\nvar toolbarObj;\nvar sourceDropdown;\nvar targetDropdown;\nvar sourceID;\nvar targetID;\nvar nodeData = [];\n\n//Disable or Enable the toolbar items based on element selection.\nfunction selectionChange(args) {\n if (args.state === \"Changing\") {\n if (args.newValue.length > 0) {\n if (args.newValue[0] instanceof ej.diagrams.Node) {\n enableToolbarItems(true);\n } else {\n toolbarObj.enableItems( document.getElementById(items[0].id).parentElement, false );\n toolbarObj.enableItems( document.getElementById(items[2].id).parentElement, true );\n toolbarObj.enableItems( document.getElementById(items[4].id).parentElement, false );\n }\n } else {\n enableToolbarItems(false);\n }\n }\n}\n\nfunction connectionChange(args) {\n if (args.state === \"Completed\") {\n if (!args.connector.targetID || !args.connector.sourceID) {\n args.cancel = true;\n }\n }\n}\n\n//Set an label for each node.\nfunction setNodeTemplate(obj) {\n obj.annotations = [{ style: { color: \"black\" } }];\n obj.annotations[0].content = obj.Description;\n obj.style = { fill: obj.Color };\n if (obj.Id === 1) {\n //Restrict Delete Constraints for root node.\n obj.constraints = ej.diagrams.NodeConstraints.Default & ~ej.diagrams.NodeConstraints.Delete;\n }\n}\n\n//Returns an node text collection in diagram.\nfunction getDataSource() {\n var i;\n nodeData = [];\n for (i = 0; i < diagram.nodes.length; i++) {\n var node = diagram.nodes[i];\n var element = { Name: node.id, Label: node.Description };\n nodeData.push(element);\n }\n return nodeData;\n}\n\n\n//Add icons in Toolbar.\nvar items = [\n {\n text: \"Add\",\n tooltipText: \"Add\",\n prefixIcon: \"e-ddb-icons e-add\",\n id: \"Add\"\n },\n {\n type: \"Separator\"\n },\n {\n text: \"Edit\",\n tooltipText: \"Edit\",\n prefixIcon: \"e-ddb-icons e-update\",\n id: \"Edit\"\n },\n {\n type: \"Separator\"\n },\n {\n text: \"Delete\",\n tooltipText: \"Delete\",\n prefixIcon: \"e-ddb-icons e-delete\",\n id: \"Delete\"\n }\n];\n\n\n diagram = new ej.diagrams.Diagram({\n width: \"100%\",\n height: 600,\n dataSourceSettings: {\n id: 'Name',\n //Define URL to perform CRUD operations with nodes records in database.\n crudAction: {\n read: 'https://js.syncfusion.com/demos/ejServices/api/Diagram/GetNodes',\n create: 'https://js.syncfusion.com/demos/ejServices/api/Diagram/AddNodes',\n update: 'https://js.syncfusion.com/demos/ejServices/api/Diagram/UpdateNodes',\n destroy: 'https://js.syncfusion.com/demos/ejServices/api/Diagram/DeleteNodes',\n customFields: ['Id', 'Description', 'Color'],\n },\n connectionDataSource: {\n id: 'Name',\n sourceID: 'SourceNode',\n targetID: 'TargetNode',\n //Define URL to perform CRUD operations with connector records in database.\n crudAction: {\n read: 'https://js.syncfusion.com/demos/ejServices/api/Diagram/GetConnectors',\n create: 'https://js.syncfusion.com/demos/ejServices/api/Diagram/AddConnectors',\n update: 'https://js.syncfusion.com/demos/ejServices/api/Diagram/UpdateConnectors',\n destroy: 'https://js.syncfusion.com/demos/ejServices/api/Diagram/DeleteConnectors',\n customFields: ['Id'],\n }\n }\n },\n layout: { type: \"HierarchicalTree\", verticalSpacing: 40 },\n snapSettings: { constraints: 0 },\n //Set node default properties.\n getNodeDefaults: function (obj, diagram) {\n obj.width = 100;\n obj.height = 50;\n obj.shape = { type: 'Basic', shape: 'Rectangle' };\n obj.style = { strokeWidth: 1, strokeColor: '#DDDDDD' };\n return obj;\n },\n //Set connector default properties.\n getConnectorDefaults: function (connector, diagram) {\n connector.type = 'Orthogonal';\n connector.style.fill = '#707070';\n connector.style.strokeColor = '#707070';\n connector.targetDecorator = {\n style: {\n strokeColor: '#707070',\n fill: '#707070'\n },\n };\n return connector;\n },\n selectionChange: selectionChange,\n sourcePointChange: connectionChange,\n targetPointChange: connectionChange,\n setNodeTemplate: setNodeTemplate\n });\n diagram.appendTo(\"#diagram\");\n\n //Initialize ToolBar control.\n toolbarObj = new ej.navigations.Toolbar({\n clicked: toolbarClick,\n items: items\n });\n toolbarObj.appendTo(\"#toolbar\");\n enableToolbarItems(false);\n\n //Initialize dialog control.\n dialog = new ej.popups.Dialog({\n width: \"300px\",\n visible: false,\n isModal: true,\n showCloseIcon: true,\n buttons: [\n {\n click: dlgButtonClick,\n buttonModel: { content: \"Update\", isPrimary: true }\n }\n ]\n });\n dialog.appendTo(\"#editDialog\");\n\n //Initialize textbox control.\n var inputobj1 = new ej.inputs.TextBox({\n floatLabelType: \"Always\",\n placeholder: \"Description\"\n });\n inputobj1.appendTo(\"#Description\");\n\n //Initialize textbox control.\n var inputobj2 = new ej.inputs.TextBox({\n floatLabelType: \"Always\",\n placeholder: \"Color\"\n });\n inputobj2.appendTo(\"#Color\");\n\n //Initialize button control to update the node label and node color.\n var button = new ej.buttons.Button();\n button.appendTo(\"#btnUpdate\");\n\n //Initialize dropdownlist control to display an sourceNodes in diagram.\n sourceDropdown = new ej.dropdowns.DropDownList({\n fields: { text: \"Label\", value: \"Name\" },\n change: sourceDropdownChange,\n created: sourceDropdownCreate\n });\n sourceDropdown.appendTo(\"#SourceId\");\n\n //Initialize dropdownlist control to display an targetNodes in diagram.\n targetDropdown = new ej.dropdowns.DropDownList({\n fields: { text: \"Label\", value: \"Name\" },\n change: targetDropdownChange,\n created: targetDropdownCreate\n });\n targetDropdown.appendTo(\"#TargetId\");\n\n\n"}
\ No newline at end of file
diff --git a/src/diagram/custom-shapes-stack.json b/src/diagram/custom-shapes-stack.json
index c5f6133f..ca9d4dac 100644
--- a/src/diagram/custom-shapes-stack.json
+++ b/src/diagram/custom-shapes-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}/**\n * Getting started - Html Node\n */\n\n//Add Gauge control to Diagram.\nfunction getHtmlContent() {\n var div = document.getElementById('gauge');\n var circularGauge = new ej.circulargauge.CircularGauge({\n load: function (args) {\n var selectedTheme = location.hash.split('/')[1];\n selectedTheme = selectedTheme ? selectedTheme : 'Material';\n args.gauge.theme = (selectedTheme.charAt(0).toUpperCase() + selectedTheme.slice(1));\n },\n axes: [{\n lineStyle: { width: 10, color: 'transparent' },\n labelStyle: {\n position: 'Inside', useRangeColor: false,\n font: { size: '12px', fontFamily: 'Roboto', fontStyle: 'Regular' }\n }, majorTicks: { height: 10, offset: 5, color: '#9E9E9E' }, minorTicks: { height: 0 },\n annotations: [{\n content: 'Speedometer
',\n radius: '30%', angle: 0, zIndex: '1'\n }, {\n content: '65 MPH
',\n radius: '40%', angle: 180, zIndex: '1'\n }],\n startAngle: 210, endAngle: 150, minimum: 0, maximum: 120, radius: '80%',\n ranges: [{ start: 0, end: 40, color: '#30B32D' }, { start: 40, end: 80, color: '#FFDD00' },\n { start: 80, end: 120, color: '#F03E3E' }],\n pointers: [{\n value: 65, radius: '60%', color: '#757575', pointerWidth: 8,\n cap: { radius: 7, color: '#757575' }, needleTail: { length: '18%', color: '#757575' }\n }]\n }]\n });\n circularGauge.appendTo('#gauge');\n return div;\n}\n// tslint:disable-next-line:max-func-body-length\n\n var htmlcontent = '
';\n var shape = { type: 'HTML', content: htmlcontent };\n var node1 = {\n id: 'node', offsetX: 450, offsetY: 200, width: 300, height: 300, shape: shape\n };\n //initialize the diagram control\n var diagram = new ej.diagrams.Diagram({\n width: '100%', height: '640px', nodes: [node1], snapSettings: { constraints: 0 },\n created: function() { diagram.fitToPage(); }\n });\n diagram.appendTo('#diagram');\n getHtmlContent();\n\n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}/**\n * Getting started - Html Node\n */\n\n//Add Gauge control to Diagram.\nfunction getHtmlContent() {\n var div = document.getElementById('gauge');\n var circularGauge = new ej.circulargauge.CircularGauge({\n load: function (args) {\n var selectedTheme = location.hash.split('/')[1];\n selectedTheme = selectedTheme ? selectedTheme : 'Material';\n args.gauge.theme = (selectedTheme.charAt(0).toUpperCase() + selectedTheme.slice(1));\n },\n axes: [{\n lineStyle: { width: 10, color: 'transparent' },\n labelStyle: {\n position: 'Inside', useRangeColor: false,\n font: { size: '12px', fontFamily: 'Roboto', fontStyle: 'Regular' }\n }, majorTicks: { height: 10, offset: 5, color: '#9E9E9E' }, minorTicks: { height: 0 },\n annotations: [{\n content: 'Speedometer
',\n radius: '30%', angle: 0, zIndex: '1'\n }, {\n content: '65 MPH
',\n radius: '40%', angle: 180, zIndex: '1'\n }],\n startAngle: 210, endAngle: 150, minimum: 0, maximum: 120, radius: '80%',\n ranges: [{ start: 0, end: 40, color: '#30B32D' }, { start: 40, end: 80, color: '#FFDD00' },\n { start: 80, end: 120, color: '#F03E3E' }],\n pointers: [{\n value: 65, radius: '60%', color: '#757575', pointerWidth: 8,\n cap: { radius: 7, color: '#757575' }, needleTail: { length: '18%', color: '#757575' }\n }]\n }]\n });\n circularGauge.appendTo('#gauge');\n return div;\n}\n// tslint:disable-next-line:max-func-body-length\n\n var htmlcontent = '
';\n var shape = { type: 'HTML', content: htmlcontent };\n var node1 = {\n id: 'node', offsetX: 450, offsetY: 200, width: 300, height: 300, shape: shape\n };\n //initialize the diagram control\n var diagram = new ej.diagrams.Diagram({\n width: '100%', height: '640px', nodes: [node1], snapSettings: { constraints: 0 },\n created: function() { diagram.fitToPage(); }\n });\n diagram.appendTo('#diagram');\n getHtmlContent();\n\n"}
\ No newline at end of file
diff --git a/src/diagram/default-functionalities-stack.json b/src/diagram/default-functionalities-stack.json
index 42f8d11c..d4d02cb9 100644
--- a/src/diagram/default-functionalities-stack.json
+++ b/src/diagram/default-functionalities-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}/**\n * Default FlowShape sample\n */\nej.diagrams.Diagram.Inject(ej.diagrams.UndoRedo);\n\n//Create and add ports for node.\nfunction getNodePorts(obj) {\n var ports = [\n { id: 'nport1', shape: 'Circle', offset: { x: 0, y: 0.5 } },\n { id: 'nport2', shape: 'Circle', offset: { x: 0.5, y: 1 } },\n { id: 'nport3', shape: 'Circle', offset: { x: 1, y: 0.5 } },\n { id: 'nport4', shape: 'Circle', offset: { x: 0.5, y: 0 } }\n ];\n return ports;\n}\n\nfunction addEvents() {\n var isMobile = window.matchMedia('(max-width:550px)').matches;\n if (isMobile) {\n var pIcon = document.getElementById('palette-icon');\n if (pIcon) {\n pIcon.addEventListener('click', openPalette, false);\n }\n }\n}\n\nfunction openPalette() {\n var pSpace = document.getElementById('palette-space');\n isMobile = window.matchMedia('(max-width:550px)').matches;\n if (isMobile) {\n if (!pSpace.classList.contains('sb-mobile-palette-open')) {\n pSpace.classList.add('sb-mobile-palette-open');\n }\n else {\n pSpace.classList.remove('sb-mobile-palette-open');\n }\n }\n}\n\n\n var bounds = document.getElementById('diagram-space').getBoundingClientRect();\n var centerX = bounds.width / 2;\n //Initializes the nodes for the diagram\n var nodes = [{\n id: 'NewIdea', height: 60, offsetX: centerX - 50, offsetY: 80,\n shape: { type: 'Flow', shape: 'Terminator' },\n annotations: [{\n content: 'Place Order'\n }]\n }, {\n id: 'Meeting', height: 60, offsetX: centerX - 50, offsetY: 160,\n shape: { type: 'Flow', shape: 'Process' },\n annotations: [{\n content: 'Start Transaction'\n }]\n }, {\n id: 'BoardDecision', height: 60, offsetX: centerX - 50, offsetY: 240,\n shape: { type: 'Flow', shape: 'Process' },\n annotations: [{\n content: 'Verification'\n }]\n }, {\n id: 'Project', height: 60, offsetX: centerX - 50, offsetY: 330,\n shape: { type: 'Flow', shape: 'Decision' },\n annotations: [{\n content: 'Credit card valid?'\n }]\n }, {\n id: 'End', height: 60, offsetX: centerX - 50, offsetY: 430,\n shape: { type: 'Flow', shape: 'Decision' },\n annotations: [{\n content: 'Funds available?'\n }]\n }, {\n id: 'node11', height: 60, offsetX: (centerX - 50) + 230, offsetY: 330,\n shape: { type: 'Flow', shape: 'Process' },\n annotations: [{\n content: 'Enter payment method'\n }]\n }, {\n id: 'transaction_entered', height: 60, offsetX: (centerX - 50), offsetY: 630,\n shape: { type: 'Flow', shape: 'Terminator' },\n annotations: [{\n content: 'Log transaction'\n }]\n }, {\n id: 'node12', height: 60, offsetX: (centerX - 50) + 180, offsetY: 630,\n shape: { type: 'Flow', shape: 'Process' },\n annotations: [{\n content: 'Reconcile the entries'\n }]\n }, {\n id: 'transaction_completed', height: 60, offsetX: (centerX - 50), offsetY: 530,\n shape: { type: 'Flow', shape: 'Process' },\n annotations: [{\n content: 'Complete Transaction'\n }]\n }, {\n id: 'data', height: 45, offsetX: (centerX - 50) - 190, offsetY: 530,\n shape: { type: 'Flow', shape: 'Data' },\n annotations: [{\n content: 'Send e-mail', margin: { left: 25, right: 25 }\n }]\n }, {\n id: 'node10', height: 70, offsetX: (centerX - 50) + 175, offsetY: 530,\n shape: { type: 'Flow', shape: 'DirectData' },\n annotations: [{ content: 'Customer Database', margin: { left: 25, right: 25 } }]\n }];\n //Initializes the Connectors for the diagram\n var connectors = [\n {\n id: 'connector1', sourceID: 'NewIdea', targetID: 'Meeting'\n },\n { id: 'connector2', sourceID: 'Meeting', targetID: 'BoardDecision' },\n { id: 'connector3', sourceID: 'BoardDecision', targetID: 'Project' },\n {\n id: 'connector4', sourceID: 'Project',\n annotations: [{ content: 'Yes', style: { fill: 'white' } }], targetID: 'End'\n },\n {\n id: 'connector5', sourceID: 'End',\n annotations: [{ content: 'Yes', style: { fill: 'white' } }], targetID: 'transaction_completed'\n },\n { id: 'connector6', sourceID: 'transaction_completed', targetID: 'transaction_entered' },\n { id: 'connector7', sourceID: 'transaction_completed', targetID: 'data' },\n { id: 'connector8', sourceID: 'transaction_completed', targetID: 'node10' },\n {\n id: 'connector9', sourceID: 'node11', targetID: 'Meeting',\n segments: [{ direction: 'Top', type: 'Orthogonal', length: 120 }]\n },\n {\n id: 'connector10', sourceID: 'End', annotations: [{ content: 'No', style: { fill: 'white' } }],\n targetID: 'node11', segments: [{ direction: 'Right', type: 'Orthogonal', length: 100 }]\n },\n {\n id: 'connector11', sourceID: 'Project', annotations: [{ content: 'No', style: { fill: 'white' } }],\n targetID: 'node11'\n },\n {\n id: 'connector12', style: { strokeDashArray: '2,2' },\n sourceID: 'transaction_entered', targetID: 'node12'\n }\n ];\n var interval = [1, 9, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75];\n var gridlines = { lineColor: '#e0e0e0', lineIntervals: interval };\n //Initializes diagram control\n var diagram = new ej.diagrams.Diagram({\n width: '100%', height: '700px', nodes: nodes, connectors: connectors,\n snapSettings: { horizontalGridlines: gridlines, verticalGridlines: gridlines },\n //Sets the default values of a node\n getNodeDefaults: function (node) {\n var obj = {};\n if (obj.width === undefined) {\n obj.width = 145;\n } else {\n var ratio = 100 / obj.width;\n obj.width = 100;\n obj.height *= ratio;\n }\n obj.style = { fill: '#357BD2', strokeColor: 'white' };\n obj.annotations = [{ style: { color: 'white', fill: 'transparent' } }];\n obj.ports = getNodePorts(node);\n return obj;\n },\n //Sets the default values of a Connector.\n getConnectorDefaults: function (obj) {\n if (obj.id.indexOf('connector') !== -1) {\n obj.type = 'Orthogonal';\n obj.targetDecorator = { shape: 'Arrow', width: 10, height: 10 };\n }\n },\n //Sets the Node style for DragEnter element.\n dragEnter: function (args) {\n var obj = args.element;\n if (obj instanceof ej.diagrams.Node) {\n var oWidth = obj.width;\n var oHeight = obj.height;\n var ratio = 100 / obj.width;\n obj.width = 100;\n obj.height *= ratio;\n obj.offsetX += (obj.width - oWidth) / 2;\n obj.offsetY += (obj.height - oHeight) / 2;\n obj.style = { fill: '#357BD2', strokeColor: 'white' };\n }\n }\n });\n diagram.appendTo('#diagram');\n //Initialize the flowshapes for the symbol palatte\n var shapes = [\n { id: 'terminator', shape: { type: 'Flow', shape: 'Terminator' } },\n { id: 'process', shape: { type: 'Flow', shape: 'Process' } },\n { id: 'decision', shape: { type: 'Flow', shape: 'Decision' } },\n { id: 'document', shape: { type: 'Flow', shape: 'Document' } },\n { id: 'preDefinedProcess', shape: { type: 'Flow', shape: 'PreDefinedProcess' } },\n { id: 'paperTap', shape: { type: 'Flow', shape: 'PaperTap' } },\n { id: 'directData', shape: { type: 'Flow', shape: 'DirectData' } },\n { id: 'sequentialData', shape: { type: 'Flow', shape: 'SequentialData' } },\n { id: 'sort', shape: { type: 'Flow', shape: 'Sort' } },\n { id: 'multiDocument', shape: { type: 'Flow', shape: 'MultiDocument' } },\n { id: 'collate', shape: { type: 'Flow', shape: 'Collate' } },\n { id: 'summingJunction', shape: { type: 'Flow', shape: 'SummingJunction' } },\n { id: 'or', shape: { type: 'Flow', shape: 'Or' } },\n { id: 'internalStorage', shape: { type: 'Flow', shape: 'InternalStorage' } },\n { id: 'extract', shape: { type: 'Flow', shape: 'Extract' } },\n { id: 'manualOperation', shape: { type: 'Flow', shape: 'ManualOperation' } },\n { id: 'merge', shape: { type: 'Flow', shape: 'Merge' } },\n { id: 'offPageReference', shape: { type: 'Flow', shape: 'OffPageReference' } },\n { id: 'sequentialAccessStorage', shape: { type: 'Flow', shape: 'SequentialAccessStorage' } },\n { id: 'annotation', shape: { type: 'Flow', shape: 'Annotation' } },\n { id: 'annotation2', shape: { type: 'Flow', shape: 'Annotation2' } },\n { id: 'data', shape: { type: 'Flow', shape: 'Data' } },\n { id: 'card', shape: { type: 'Flow', shape: 'Card' } },\n { id: 'delay', shape: { type: 'Flow', shape: 'Delay' } },\n ];\n //Initializes connector symbols for the symbol palette\n var connectorSymbols = [\n {\n id: 'Link1', type: 'Orthogonal', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 60, y: 60 },\n targetDecorator: { shape: 'Arrow' }, style: { strokeWidth: 1 }\n },\n {\n id: 'link3', type: 'Orthogonal', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 60, y: 60 },\n style: { strokeWidth: 1 }, targetDecorator: { shape: 'None' }\n },\n {\n id: 'Link21', type: 'Straight', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 60, y: 60 },\n targetDecorator: { shape: 'Arrow' }, style: { strokeWidth: 1 }\n },\n {\n id: 'link23', type: 'Straight', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 60, y: 60 },\n style: { strokeWidth: 1 }, targetDecorator: { shape: 'None' }\n },\n {\n id: 'link33', type: 'Bezier', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 60, y: 60 },\n style: { strokeWidth: 1 }, targetDecorator: { shape: 'None' }\n },\n ];\n //Initializes the symbol palette\n var palette = new ej.diagrams.SymbolPalette({\n expandMode: 'Multiple',\n palettes: [\n { id: 'flow', expanded: true, symbols: shapes, iconCss: 'e-ddb-icons e-flow', title: 'Flow Shapes' },\n { id: 'connectors', expanded: true, symbols: connectorSymbols, iconCss: 'e-ddb-icons e-connector', title: 'Connectors' }\n ],\n width: '100%', height: '700px', symbolHeight: 60, symbolWidth: 60,\n getNodeDefaults: function (symbol) {\n if (symbol.id === 'terminator' || symbol.id === 'process') {\n symbol.width = 80;\n symbol.height = 40;\n }\n else if (symbol.id === 'decision' || symbol.id === 'document' || symbol.id === 'preDefinedProcess' ||\n symbol.id === 'paperTap' || symbol.id === 'directData' || symbol.id === 'multiDocument' || symbol.id === 'data') {\n symbol.width = 50;\n symbol.height = 40;\n }\n else {\n symbol.width = 50;\n symbol.height = 50;\n }\n },\n symbolMargin: { left: 15, right: 15, top: 15, bottom: 15 },\n getSymbolInfo: function (symbol) {\n return { fit: true };\n }\n });\n palette.appendTo('#symbolpalette');\n addEvents();\n\n\n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}/**\n * Default FlowShape sample\n */\nej.diagrams.Diagram.Inject(ej.diagrams.UndoRedo);\n\n//Create and add ports for node.\nfunction getNodePorts(obj) {\n var ports = [\n { id: 'nport1', shape: 'Circle', offset: { x: 0, y: 0.5 } },\n { id: 'nport2', shape: 'Circle', offset: { x: 0.5, y: 1 } },\n { id: 'nport3', shape: 'Circle', offset: { x: 1, y: 0.5 } },\n { id: 'nport4', shape: 'Circle', offset: { x: 0.5, y: 0 } }\n ];\n return ports;\n}\n\nfunction addEvents() {\n var isMobile = window.matchMedia('(max-width:550px)').matches;\n if (isMobile) {\n var pIcon = document.getElementById('palette-icon');\n if (pIcon) {\n pIcon.addEventListener('click', openPalette, false);\n }\n }\n}\n\nfunction openPalette() {\n var pSpace = document.getElementById('palette-space');\n isMobile = window.matchMedia('(max-width:550px)').matches;\n if (isMobile) {\n if (!pSpace.classList.contains('sb-mobile-palette-open')) {\n pSpace.classList.add('sb-mobile-palette-open');\n }\n else {\n pSpace.classList.remove('sb-mobile-palette-open');\n }\n }\n}\n\n\n var bounds = document.getElementById('diagram-space').getBoundingClientRect();\n var centerX = bounds.width / 2;\n //Initializes the nodes for the diagram\n var nodes = [{\n id: 'NewIdea', height: 60, offsetX: centerX - 50, offsetY: 80,\n shape: { type: 'Flow', shape: 'Terminator' },\n annotations: [{\n content: 'Place Order'\n }]\n }, {\n id: 'Meeting', height: 60, offsetX: centerX - 50, offsetY: 160,\n shape: { type: 'Flow', shape: 'Process' },\n annotations: [{\n content: 'Start Transaction'\n }]\n }, {\n id: 'BoardDecision', height: 60, offsetX: centerX - 50, offsetY: 240,\n shape: { type: 'Flow', shape: 'Process' },\n annotations: [{\n content: 'Verification'\n }]\n }, {\n id: 'Project', height: 60, offsetX: centerX - 50, offsetY: 330,\n shape: { type: 'Flow', shape: 'Decision' },\n annotations: [{\n content: 'Credit card valid?'\n }]\n }, {\n id: 'End', height: 60, offsetX: centerX - 50, offsetY: 430,\n shape: { type: 'Flow', shape: 'Decision' },\n annotations: [{\n content: 'Funds available?'\n }]\n }, {\n id: 'node11', height: 60, offsetX: (centerX - 50) + 230, offsetY: 330,\n shape: { type: 'Flow', shape: 'Process' },\n annotations: [{\n content: 'Enter payment method'\n }]\n }, {\n id: 'transaction_entered', height: 60, offsetX: (centerX - 50), offsetY: 630,\n shape: { type: 'Flow', shape: 'Terminator' },\n annotations: [{\n content: 'Log transaction'\n }]\n }, {\n id: 'node12', height: 60, offsetX: (centerX - 50) + 180, offsetY: 630,\n shape: { type: 'Flow', shape: 'Process' },\n annotations: [{\n content: 'Reconcile the entries'\n }]\n }, {\n id: 'transaction_completed', height: 60, offsetX: (centerX - 50), offsetY: 530,\n shape: { type: 'Flow', shape: 'Process' },\n annotations: [{\n content: 'Complete Transaction'\n }]\n }, {\n id: 'data', height: 45, offsetX: (centerX - 50) - 190, offsetY: 530,\n shape: { type: 'Flow', shape: 'Data' },\n annotations: [{\n content: 'Send e-mail', margin: { left: 25, right: 25 }\n }]\n }, {\n id: 'node10', height: 70, offsetX: (centerX - 50) + 175, offsetY: 530,\n shape: { type: 'Flow', shape: 'DirectData' },\n annotations: [{ content: 'Customer Database', margin: { left: 25, right: 25 } }]\n }];\n //Initializes the Connectors for the diagram\n var connectors = [\n {\n id: 'connector1', sourceID: 'NewIdea', targetID: 'Meeting'\n },\n { id: 'connector2', sourceID: 'Meeting', targetID: 'BoardDecision' },\n { id: 'connector3', sourceID: 'BoardDecision', targetID: 'Project' },\n {\n id: 'connector4', sourceID: 'Project',\n annotations: [{ content: 'Yes', style: { fill: 'white' } }], targetID: 'End'\n },\n {\n id: 'connector5', sourceID: 'End',\n annotations: [{ content: 'Yes', style: { fill: 'white' } }], targetID: 'transaction_completed'\n },\n { id: 'connector6', sourceID: 'transaction_completed', targetID: 'transaction_entered' },\n { id: 'connector7', sourceID: 'transaction_completed', targetID: 'data' },\n { id: 'connector8', sourceID: 'transaction_completed', targetID: 'node10' },\n {\n id: 'connector9', sourceID: 'node11', targetID: 'Meeting',\n segments: [{ direction: 'Top', type: 'Orthogonal', length: 120 }]\n },\n {\n id: 'connector10', sourceID: 'End', annotations: [{ content: 'No', style: { fill: 'white' } }],\n targetID: 'node11', segments: [{ direction: 'Right', type: 'Orthogonal', length: 100 }]\n },\n {\n id: 'connector11', sourceID: 'Project', annotations: [{ content: 'No', style: { fill: 'white' } }],\n targetID: 'node11'\n },\n {\n id: 'connector12', style: { strokeDashArray: '2,2' },\n sourceID: 'transaction_entered', targetID: 'node12'\n }\n ];\n var interval = [1, 9, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75];\n var gridlines = { lineColor: '#e0e0e0', lineIntervals: interval };\n //Initializes diagram control\n var diagram = new ej.diagrams.Diagram({\n width: '100%', height: '700px', nodes: nodes, connectors: connectors,\n snapSettings: { horizontalGridlines: gridlines, verticalGridlines: gridlines },\n //Sets the default values of a node\n getNodeDefaults: function (node) {\n var obj = {};\n if (obj.width === undefined) {\n obj.width = 145;\n } else {\n var ratio = 100 / obj.width;\n obj.width = 100;\n obj.height *= ratio;\n }\n obj.style = { fill: '#357BD2', strokeColor: 'white' };\n obj.annotations = [{ style: { color: 'white', fill: 'transparent' } }];\n obj.ports = getNodePorts(node);\n return obj;\n },\n //Sets the default values of a Connector.\n getConnectorDefaults: function (obj) {\n if (obj.id.indexOf('connector') !== -1) {\n obj.type = 'Orthogonal';\n obj.targetDecorator = { shape: 'Arrow', width: 10, height: 10 };\n }\n },\n //Sets the Node style for DragEnter element.\n dragEnter: function (args) {\n var obj = args.element;\n if (obj instanceof ej.diagrams.Node) {\n var oWidth = obj.width;\n var oHeight = obj.height;\n var ratio = 100 / obj.width;\n obj.width = 100;\n obj.height *= ratio;\n obj.offsetX += (obj.width - oWidth) / 2;\n obj.offsetY += (obj.height - oHeight) / 2;\n obj.style = { fill: '#357BD2', strokeColor: 'white' };\n }\n }\n });\n diagram.appendTo('#diagram');\n //Initialize the flowshapes for the symbol palatte\n var shapes = [\n { id: 'terminator', shape: { type: 'Flow', shape: 'Terminator' } },\n { id: 'process', shape: { type: 'Flow', shape: 'Process' } },\n { id: 'decision', shape: { type: 'Flow', shape: 'Decision' } },\n { id: 'document', shape: { type: 'Flow', shape: 'Document' } },\n { id: 'preDefinedProcess', shape: { type: 'Flow', shape: 'PreDefinedProcess' } },\n { id: 'paperTap', shape: { type: 'Flow', shape: 'PaperTap' } },\n { id: 'directData', shape: { type: 'Flow', shape: 'DirectData' } },\n { id: 'sequentialData', shape: { type: 'Flow', shape: 'SequentialData' } },\n { id: 'sort', shape: { type: 'Flow', shape: 'Sort' } },\n { id: 'multiDocument', shape: { type: 'Flow', shape: 'MultiDocument' } },\n { id: 'collate', shape: { type: 'Flow', shape: 'Collate' } },\n { id: 'summingJunction', shape: { type: 'Flow', shape: 'SummingJunction' } },\n { id: 'or', shape: { type: 'Flow', shape: 'Or' } },\n { id: 'internalStorage', shape: { type: 'Flow', shape: 'InternalStorage' } },\n { id: 'extract', shape: { type: 'Flow', shape: 'Extract' } },\n { id: 'manualOperation', shape: { type: 'Flow', shape: 'ManualOperation' } },\n { id: 'merge', shape: { type: 'Flow', shape: 'Merge' } },\n { id: 'offPageReference', shape: { type: 'Flow', shape: 'OffPageReference' } },\n { id: 'sequentialAccessStorage', shape: { type: 'Flow', shape: 'SequentialAccessStorage' } },\n { id: 'annotation', shape: { type: 'Flow', shape: 'Annotation' } },\n { id: 'annotation2', shape: { type: 'Flow', shape: 'Annotation2' } },\n { id: 'data', shape: { type: 'Flow', shape: 'Data' } },\n { id: 'card', shape: { type: 'Flow', shape: 'Card' } },\n { id: 'delay', shape: { type: 'Flow', shape: 'Delay' } },\n ];\n //Initializes connector symbols for the symbol palette\n var connectorSymbols = [\n {\n id: 'Link1', type: 'Orthogonal', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 60, y: 60 },\n targetDecorator: { shape: 'Arrow' }, style: { strokeWidth: 1 }\n },\n {\n id: 'link3', type: 'Orthogonal', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 60, y: 60 },\n style: { strokeWidth: 1 }, targetDecorator: { shape: 'None' }\n },\n {\n id: 'Link21', type: 'Straight', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 60, y: 60 },\n targetDecorator: { shape: 'Arrow' }, style: { strokeWidth: 1 }\n },\n {\n id: 'link23', type: 'Straight', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 60, y: 60 },\n style: { strokeWidth: 1 }, targetDecorator: { shape: 'None' }\n },\n {\n id: 'link33', type: 'Bezier', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 60, y: 60 },\n style: { strokeWidth: 1 }, targetDecorator: { shape: 'None' }\n },\n ];\n //Initializes the symbol palette\n var palette = new ej.diagrams.SymbolPalette({\n expandMode: 'Multiple',\n palettes: [\n { id: 'flow', expanded: true, symbols: shapes, iconCss: 'e-ddb-icons e-flow', title: 'Flow Shapes' },\n { id: 'connectors', expanded: true, symbols: connectorSymbols, iconCss: 'e-ddb-icons e-connector', title: 'Connectors' }\n ],\n width: '100%', height: '700px', symbolHeight: 60, symbolWidth: 60,\n getNodeDefaults: function (symbol) {\n if (symbol.id === 'terminator' || symbol.id === 'process') {\n symbol.width = 80;\n symbol.height = 40;\n }\n else if (symbol.id === 'decision' || symbol.id === 'document' || symbol.id === 'preDefinedProcess' ||\n symbol.id === 'paperTap' || symbol.id === 'directData' || symbol.id === 'multiDocument' || symbol.id === 'data') {\n symbol.width = 50;\n symbol.height = 40;\n }\n else {\n symbol.width = 50;\n symbol.height = 50;\n }\n },\n symbolMargin: { left: 15, right: 15, top: 15, bottom: 15 },\n getSymbolInfo: function (symbol) {\n return { fit: true };\n }\n });\n palette.appendTo('#symbolpalette');\n addEvents();\n\n\n"}
\ No newline at end of file
diff --git a/src/diagram/diagram-events-stack.json b/src/diagram/diagram-events-stack.json
index 8da16da5..c2deaf02 100644
--- a/src/diagram/diagram-events-stack.json
+++ b/src/diagram/diagram-events-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n \n
\n
\n
\n
Client-side events
\n
\n
\n
\n
\n
\n \n \n
","index.js":"{{ripple}}ej.diagrams.Diagram.Inject(ej.diagrams.UndoRedo, ej.diagrams.DiagramContextMenu, ej.diagrams.Snapping);\n\nfunction getSymbolDefaults(symbol) {\n symbol.width = 50;\n symbol.height = 50;\n symbol.constraints = ej.diagrams.NodeConstraints.Default | ej.diagrams.NodeConstraints.AllowDrop;\n}\n\nfunction getSymbolInfo(symbol) {\n return { fit: true };\n}\n\nfunction dragEnter(args) {\n getEventDetails(args);\n}\n\nfunction dragLeave(args) {\n getEventDetails(args);\n}\n\nfunction dragOver(args) {\n if (args.target) {\n getEventDetails(args);\n }\n}\n\nfunction click(args) {\n getEventDetails(args);\n}\n\nfunction historyChange(args) {\n getEventDetails(args);\n}\n\nfunction doubleClick(args) {\n getEventDetails(args);\n}\n\nfunction textEdit(args) {\n getEventDetails(args);\n}\n\nfunction scrollChange(args) {\n getEventDetails(args);\n}\n\nfunction selectionChange(args) {\n getEventDetails(args);\n}\n\nfunction sizeChange(args) {\n if (args.state === 'Completed') {\n getEventDetails(args);\n }\n}\n\nfunction connectionChange(args) {\n if (args.state === 'Changed') {\n getEventDetails(args);\n }\n}\n\nfunction sourcePointChange(args) {\n if (args.state === 'Completed') {\n getEventDetails(args);\n }\n}\n\nfunction targetPointChange(args) {\n if (args.state === 'Completed') {\n getEventDetails(args);\n }\n}\n\nfunction propertyChange(args) {\n getEventDetails(args);\n}\n\nfunction positionChange(args) {\n if (args.state === 'Completed') {\n getEventDetails(args);\n }\n}\n\nfunction rotateChange(args) {\n if (args.state === 'Completed') {\n getEventDetails(args);\n }\n}\n\nfunction collectionChange(args) {\n getEventDetails(args);\n}\n\nfunction mouseEnter(args) {\n getEventDetails(args);\n}\n\nfunction mouseLeave(args) {\n getEventDetails(args);\n}\n\nfunction mouseOver(args) {\n getEventDetails(args);\n}\n\nfunction contextMenuOpen(args) {\n getEventDetails(args);\n}\n\nfunction contextMenuBeforeItemRender(args) {\n getEventDetails(args);\n}\n\nfunction contextMenuClick(args) {\n getEventDetails(args);\n}\n\n// tslint:disable-next-line:max-func-body-length\n\n\n var data = [\n { text: 'Drag enter', id: 'dragEnter' },\n { text: 'Drag leave', id: 'dragLeave' },\n { text: 'Drag over', id: 'dragOver' },\n { text: 'Click', id: 'click', isChecked: true },\n { text: 'History change', id: 'historyChange', isChecked: true },\n { text: 'Double click', id: 'doubleClick' },\n { text: 'Text edit', id: 'textEdit', isChecked: true },\n { text: 'Scroll change', id: 'scrollChange' },\n { text: 'Selection change', id: 'selectionChange', isChecked: true },\n { text: 'Size change', id: 'sizeChange', isChecked: true },\n { text: 'Connection change', id: 'connectionChange', isChecked: true },\n { text: 'SourcePoint change', id: 'sourcePointChange' },\n { text: 'TargetPoint change', id: 'targetPointChange' },\n { text: 'Position change', id: 'positionChange', isChecked: true },\n { text: 'Rotate change', id: 'rotateChange', isChecked: true },\n { text: 'Collection change', id: 'collectionChange', isChecked: true },\n { text: 'Mouse enter', id: 'mouseEnter' },\n { text: 'Mouse leave', id: 'mouseLeave' },\n { text: 'Mouse over', id: 'mouseOver' },\n { text: 'Context menu open', id: 'contextMenuOpen' },\n { text: 'Context menu before item render', id: 'contextMenuBeforeItemRender' },\n { text: 'Context menu click', id: 'contextMenuClick' }\n ];\n\n //Initialize ListView component\n var listObj = new ej.lists.ListView({\n //Set defined data to dataSource property\n dataSource: data,\n height: \"calc(100% - 40px)\",\n //Enables checkbox\n showCheckBox: true\n });\n\n //Render initialized ListView component\n listObj.appendTo('#listview-def');\n\n //Render initialized button component\n var button = new ej.buttons.Button();\n button.appendTo('#clearbtn');\n\n //Initializes diagram control\n var diagram = new ej.diagrams.Diagram({\n width: '100%', height: '700px',\n contextMenuSettings: { show: true },\n snapSettings: { constraints: ej.diagrams.SnapConstraints.None },\n dragEnter: dragEnter,\n dragLeave: dragLeave,\n dragOver: dragOver,\n click: click,\n historyChange: historyChange,\n doubleClick: doubleClick,\n textEdit: textEdit,\n scrollChange: scrollChange,\n selectionChange: selectionChange,\n sizeChange: sizeChange,\n connectionChange: connectionChange,\n sourcePointChange: sourcePointChange,\n targetPointChange: targetPointChange,\n propertyChange: propertyChange,\n positionChange: positionChange,\n rotateChange: rotateChange,\n collectionChange: collectionChange,\n mouseEnter: mouseEnter,\n mouseLeave: mouseLeave,\n mouseOver: mouseOver,\n contextMenuOpen: contextMenuOpen,\n contextMenuBeforeItemRender: contextMenuBeforeItemRender,\n contextMenuClick: contextMenuClick\n });\n diagram.appendTo('#diagram');\n clearEventLog();\n\n //Initialize the basicshapes for the symbol palatte\n var basicShapes = [\n { id: 'RectangleNode', shape: { type: 'Basic', shape: 'Rectangle' } },\n { id: 'EllipseNode', shape: { type: 'Basic', shape: 'Ellipse' } },\n { id: 'ParallelogramNode', shape: { type: 'Basic', shape: 'Parallelogram' } },\n { id: 'TriangleNode', shape: { type: 'Basic', shape: 'Triangle' } },\n { id: 'HexagonNode', shape: { type: 'Basic', shape: 'Hexagon' } },\n { id: 'PentagonNode', shape: { type: 'Basic', shape: 'Pentagon' } },\n { id: 'CylinderNode', shape: { type: 'Basic', shape: 'Cylinder' } },\n { id: 'PlusNode', shape: { type: 'Basic', shape: 'Plus' } },\n { id: 'HeptagonNode', shape: { type: 'Basic', shape: 'Heptagon' } },\n { id: 'OctagonNode', shape: { type: 'Basic', shape: 'Octagon' } },\n { id: 'TrapezoidNode', shape: { type: 'Basic', shape: 'Trapezoid' } },\n { id: 'DecagonNode', shape: { type: 'Basic', shape: 'Decagon' } },\n { id: 'RightTriangleNode', shape: { type: 'Basic', shape: 'RightTriangle' } },\n { id: 'DiamondNode', shape: { type: 'Basic', shape: 'Diamond' } },\n { id: 'StarNode', shape: { type: 'Basic', shape: 'Star' } }\n ];\n\n //Initializes connector symbols for the symbol palette\n var connectorSymbols = [\n {\n id: 'connector1', type: 'Orthogonal', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 60, y: 60 },\n targetDecorator: { shape: 'Arrow' }, style: { strokeWidth: 1 }\n },\n {\n id: 'connector2', type: 'Orthogonal', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 60, y: 60 },\n style: { strokeWidth: 1 }, targetDecorator: { shape: 'None' }\n },\n {\n id: 'connector3', type: 'Straight', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 60, y: 60 },\n targetDecorator: { shape: 'Arrow' }, style: { strokeWidth: 1 }\n },\n {\n id: 'connector4', type: 'Straight', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 60, y: 60 },\n style: { strokeWidth: 1 }, targetDecorator: { shape: 'None' }\n },\n {\n id: 'connector5', type: 'Bezier', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 60, y: 60 },\n style: { strokeWidth: 1 }, targetDecorator: { shape: 'None' }\n },\n ];\n\n var palettes = [\n { id: 'basic', expanded: true, symbols: basicShapes, iconCss: 'e-ddb-icons e-basic', title: 'Basic Shapes' },\n { id: 'connectors', expanded: true, symbols: connectorSymbols, iconCss: 'e-ddb-icons e-connector', title: 'Connectors' }\n ];\n\n //Initializes the symbol palette\n var palette = new ej.diagrams.SymbolPalette({\n expandMode: 'Multiple', palettes: palettes,\n width: '100%', height: '700px', symbolHeight: 60, symbolWidth: 60,\n symbolMargin: { left: 15, right: 15, top: 15, bottom: 15 },\n getNodeDefaults: getSymbolDefaults, getSymbolInfo: getSymbolInfo\n });\n palette.appendTo('#symbolpalette');\n\n document.getElementById('clearbtn').onclick = function (args) {\n var data = document.getElementById(\"EventLog\");\n for (var i = data.childNodes.length - 1; i >= 0; i--) {\n data.removeChild(data.childNodes[i]);\n }\n };\n\n\nfunction getEventDetails(args) {\n var listView = document.getElementById(\"listview-def\");\n var listViewComponent = listView.ej2_instances[0];\n var selectedItems = listViewComponent.getSelectedItems();\n if (selectedItems.data.length > 0) {\n var elementName = getName(selectedItems, args);\n if (elementName) {\n eventInformation(args);\n }\n } else {\n eventInformation(args);\n }\n}\n\nfunction getName(selectedItems, args) {\n for (var i = 0; i < selectedItems.data.length; i++) {\n var eventName = selectedItems.data[i].id;\n if (eventName === args.name) {\n return true;\n }\n }\n return false;\n}\n\nfunction clearEventLog() {\n var data = document.getElementById('EventLog');\n data.innerHTML = '';\n}\n\nfunction eventInformation(args) {\n var span = document.createElement('span');\n span.innerHTML = 'Diagram ' + args.name.bold() + ' event called' + ' ';\n var log = document.getElementById('EventLog');\n log.insertBefore(span, log.firstChild);\n}\n\n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n \n
\n
\n
\n
Client-side events
\n
\n
\n
\n
\n
Event arguments \n
Clear
\n
\n
\n
\n
\n
\n
\n \n \n
","index.js":"{{ripple}}ej.diagrams.Diagram.Inject(ej.diagrams.UndoRedo, ej.diagrams.DiagramContextMenu, ej.diagrams.Snapping);\n\nfunction getSymbolDefaults(symbol) {\n symbol.width = 50;\n symbol.height = 50;\n symbol.constraints = ej.diagrams.NodeConstraints.Default | ej.diagrams.NodeConstraints.AllowDrop;\n}\n\nfunction getSymbolInfo(symbol) {\n return { fit: true };\n}\n\nfunction dragEnter(args) {\n getEventDetails(args);\n}\n\nfunction dragLeave(args) {\n getEventDetails(args);\n}\n\nfunction dragOver(args) {\n if (args.target) {\n getEventDetails(args);\n }\n}\n\nfunction click(args) {\n getEventDetails(args);\n}\n\nfunction historyChange(args) {\n getEventDetails(args);\n}\n\nfunction doubleClick(args) {\n getEventDetails(args);\n}\n\nfunction textEdit(args) {\n getEventDetails(args);\n}\n\nfunction scrollChange(args) {\n getEventDetails(args);\n}\n\nfunction selectionChange(args) {\n getEventDetails(args);\n}\n\nfunction sizeChange(args) {\n if (args.state === 'Completed') {\n getEventDetails(args);\n }\n}\n\nfunction connectionChange(args) {\n if (args.state === 'Changed') {\n getEventDetails(args);\n }\n}\n\nfunction sourcePointChange(args) {\n if (args.state === 'Completed') {\n getEventDetails(args);\n }\n}\n\nfunction targetPointChange(args) {\n if (args.state === 'Completed') {\n getEventDetails(args);\n }\n}\n\nfunction propertyChange(args) {\n getEventDetails(args);\n}\n\nfunction positionChange(args) {\n if (args.state === 'Completed') {\n getEventDetails(args);\n }\n}\n\nfunction rotateChange(args) {\n if (args.state === 'Completed') {\n getEventDetails(args);\n }\n}\n\nfunction collectionChange(args) {\n getEventDetails(args);\n}\n\nfunction mouseEnter(args) {\n getEventDetails(args);\n}\n\nfunction mouseLeave(args) {\n getEventDetails(args);\n}\n\nfunction mouseOver(args) {\n getEventDetails(args);\n}\n\nfunction contextMenuOpen(args) {\n getEventDetails(args);\n}\n\nfunction contextMenuBeforeItemRender(args) {\n getEventDetails(args);\n}\n\nfunction contextMenuClick(args) {\n getEventDetails(args);\n}\n\n// tslint:disable-next-line:max-func-body-length\n\n\n var data = [\n { text: 'Drag enter', id: 'dragEnter' },\n { text: 'Drag leave', id: 'dragLeave' },\n { text: 'Drag over', id: 'dragOver' },\n { text: 'Click', id: 'click', isChecked: true },\n { text: 'History change', id: 'historyChange', isChecked: true },\n { text: 'Double click', id: 'doubleClick' },\n { text: 'Text edit', id: 'textEdit', isChecked: true },\n { text: 'Scroll change', id: 'scrollChange' },\n { text: 'Selection change', id: 'selectionChange', isChecked: true },\n { text: 'Size change', id: 'sizeChange', isChecked: true },\n { text: 'Connection change', id: 'connectionChange', isChecked: true },\n { text: 'SourcePoint change', id: 'sourcePointChange' },\n { text: 'TargetPoint change', id: 'targetPointChange' },\n { text: 'Position change', id: 'positionChange', isChecked: true },\n { text: 'Rotate change', id: 'rotateChange', isChecked: true },\n { text: 'Collection change', id: 'collectionChange', isChecked: true },\n { text: 'Mouse enter', id: 'mouseEnter' },\n { text: 'Mouse leave', id: 'mouseLeave' },\n { text: 'Mouse over', id: 'mouseOver' },\n { text: 'Context menu open', id: 'contextMenuOpen' },\n { text: 'Context menu before item render', id: 'contextMenuBeforeItemRender' },\n { text: 'Context menu click', id: 'contextMenuClick' }\n ];\n\n //Initialize ListView component\n var listObj = new ej.lists.ListView({\n //Set defined data to dataSource property\n dataSource: data,\n height: \"calc(100% - 40px)\",\n //Enables checkbox\n showCheckBox: true\n });\n\n //Render initialized ListView component\n listObj.appendTo('#listview-def');\n\n //Render initialized button component\n var button = new ej.buttons.Button();\n button.appendTo('#clearbtn');\n\n //Initializes diagram control\n var diagram = new ej.diagrams.Diagram({\n width: '100%', height: '700px',\n contextMenuSettings: { show: true },\n snapSettings: { constraints: ej.diagrams.SnapConstraints.None },\n dragEnter: dragEnter,\n dragLeave: dragLeave,\n dragOver: dragOver,\n click: click,\n historyChange: historyChange,\n doubleClick: doubleClick,\n textEdit: textEdit,\n scrollChange: scrollChange,\n selectionChange: selectionChange,\n sizeChange: sizeChange,\n connectionChange: connectionChange,\n sourcePointChange: sourcePointChange,\n targetPointChange: targetPointChange,\n propertyChange: propertyChange,\n positionChange: positionChange,\n rotateChange: rotateChange,\n collectionChange: collectionChange,\n mouseEnter: mouseEnter,\n mouseLeave: mouseLeave,\n mouseOver: mouseOver,\n contextMenuOpen: contextMenuOpen,\n contextMenuBeforeItemRender: contextMenuBeforeItemRender,\n contextMenuClick: contextMenuClick\n });\n diagram.appendTo('#diagram');\n clearEventLog();\n\n //Initialize the basicshapes for the symbol palatte\n var basicShapes = [\n { id: 'RectangleNode', shape: { type: 'Basic', shape: 'Rectangle' } },\n { id: 'EllipseNode', shape: { type: 'Basic', shape: 'Ellipse' } },\n { id: 'ParallelogramNode', shape: { type: 'Basic', shape: 'Parallelogram' } },\n { id: 'TriangleNode', shape: { type: 'Basic', shape: 'Triangle' } },\n { id: 'HexagonNode', shape: { type: 'Basic', shape: 'Hexagon' } },\n { id: 'PentagonNode', shape: { type: 'Basic', shape: 'Pentagon' } },\n { id: 'CylinderNode', shape: { type: 'Basic', shape: 'Cylinder' } },\n { id: 'PlusNode', shape: { type: 'Basic', shape: 'Plus' } },\n { id: 'HeptagonNode', shape: { type: 'Basic', shape: 'Heptagon' } },\n { id: 'OctagonNode', shape: { type: 'Basic', shape: 'Octagon' } },\n { id: 'TrapezoidNode', shape: { type: 'Basic', shape: 'Trapezoid' } },\n { id: 'DecagonNode', shape: { type: 'Basic', shape: 'Decagon' } },\n { id: 'RightTriangleNode', shape: { type: 'Basic', shape: 'RightTriangle' } },\n { id: 'DiamondNode', shape: { type: 'Basic', shape: 'Diamond' } },\n { id: 'StarNode', shape: { type: 'Basic', shape: 'Star' } }\n ];\n\n //Initializes connector symbols for the symbol palette\n var connectorSymbols = [\n {\n id: 'connector1', type: 'Orthogonal', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 60, y: 60 },\n targetDecorator: { shape: 'Arrow' }, style: { strokeWidth: 1 }\n },\n {\n id: 'connector2', type: 'Orthogonal', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 60, y: 60 },\n style: { strokeWidth: 1 }, targetDecorator: { shape: 'None' }\n },\n {\n id: 'connector3', type: 'Straight', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 60, y: 60 },\n targetDecorator: { shape: 'Arrow' }, style: { strokeWidth: 1 }\n },\n {\n id: 'connector4', type: 'Straight', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 60, y: 60 },\n style: { strokeWidth: 1 }, targetDecorator: { shape: 'None' }\n },\n {\n id: 'connector5', type: 'Bezier', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 60, y: 60 },\n style: { strokeWidth: 1 }, targetDecorator: { shape: 'None' }\n },\n ];\n\n var palettes = [\n { id: 'basic', expanded: true, symbols: basicShapes, iconCss: 'e-ddb-icons e-basic', title: 'Basic Shapes' },\n { id: 'connectors', expanded: true, symbols: connectorSymbols, iconCss: 'e-ddb-icons e-connector', title: 'Connectors' }\n ];\n\n //Initializes the symbol palette\n var palette = new ej.diagrams.SymbolPalette({\n expandMode: 'Multiple', palettes: palettes,\n width: '100%', height: '700px', symbolHeight: 60, symbolWidth: 60,\n symbolMargin: { left: 15, right: 15, top: 15, bottom: 15 },\n getNodeDefaults: getSymbolDefaults, getSymbolInfo: getSymbolInfo\n });\n palette.appendTo('#symbolpalette');\n\n document.getElementById('clearbtn').onclick = function (args) {\n var data = document.getElementById(\"EventLog\");\n for (var i = data.childNodes.length - 1; i >= 0; i--) {\n data.removeChild(data.childNodes[i]);\n }\n };\n\n\nfunction getEventDetails(args) {\n var listView = document.getElementById(\"listview-def\");\n var listViewComponent = listView.ej2_instances[0];\n var selectedItems = listViewComponent.getSelectedItems();\n if (selectedItems.data.length > 0) {\n var elementName = getName(selectedItems, args);\n if (elementName) {\n eventInformation(args);\n }\n } else {\n eventInformation(args);\n }\n}\n\nfunction getName(selectedItems, args) {\n for (var i = 0; i < selectedItems.data.length; i++) {\n var eventName = selectedItems.data[i].id;\n if (eventName === args.name) {\n return true;\n }\n }\n return false;\n}\n\nfunction clearEventLog() {\n var data = document.getElementById('EventLog');\n data.innerHTML = '';\n}\n\nfunction eventInformation(args) {\n var span = document.createElement('span');\n span.innerHTML = 'Diagram ' + args.name.bold() + ' event called' + ' ';\n var log = document.getElementById('EventLog');\n log.insertBefore(span, log.firstChild);\n}\n\n"}
\ No newline at end of file
diff --git a/src/diagram/drawing-tool-stack.json b/src/diagram/drawing-tool-stack.json
index dac60b21..c4fc7c6e 100644
--- a/src/diagram/drawing-tool-stack.json
+++ b/src/diagram/drawing-tool-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n \n
\n \n
\n
\n Shapes\n
\n
\n
\n
\n
\n Connector\n
\n
\n
\n \n
\n
\n
\n\n\n
","index.js":"{{ripple}}/**\n * Drawing tools sample\n */\nej.diagrams.Diagram.Inject(ej.diagrams.UndoRedo, ej.diagrams.Snapping);\nvar diagram;\nvar checkBoxObj;\n\nfunction documentClick(args) {\n var target = args.target;\n\n var drawingObject = null;\n if (target.className === 'image-pattern-style') {\n switch (target.id) {\n case 'shape1':\n drawingObject = { shape: { type: 'Basic', shape: 'Rectangle' } };\n break;\n case 'shape2':\n drawingObject = { shape: { type: 'Basic', shape: 'Ellipse' } };\n break;\n case 'shape3':\n drawingObject = { shape: { type: 'Basic', shape: 'Hexagon' } };\n break;\n case 'shape4':\n drawingObject = { shape: { type: 'Basic', shape: 'Pentagon' } };\n break;\n case 'shape5':\n drawingObject = { shape: { type: 'Basic', shape: 'Triangle' } };\n break;\n case 'straight':\n drawingObject = { type: 'Straight' };\n break;\n case 'ortho':\n drawingObject = { type: 'Orthogonal' };\n break;\n case 'cubic':\n drawingObject = { type: 'Bezier' };\n break;\n case 'path':\n drawingObject = {\n shape: {\n type: 'Path',\n data: 'M540.3643,137.9336L546.7973,159.7016L570.3633,159.7296L550.7723,171.9366L558.9053,194.9966L540.3643,' +\n '179.4996L521.8223,194.9966L529.9553,171.9366L510.3633,159.7296L533.9313,159.7016L540.3643,137.9336z'\n }\n };\n break;\n case 'image':\n drawingObject = { shape: { type: 'Image', source: '//npmci.syncfusion.com/production/demos/src/diagram/employees/image16.png' } };\n break;\n case 'svg':\n drawingObject = { shape: { type: 'Native', content: getPath() } };\n break;\n case 'text':\n drawingObject = { shape: { type: 'Text' } };\n break;\n }\n if (drawingObject) {\n diagram.drawingObject = drawingObject;\n diagram.tool = checkBoxObj.checked ? ej.diagrams.DiagramTools.ContinuousDraw : ej.diagrams.DiagramTools.DrawOnce;\n diagram.dataBind();\n\n }\n }\n}\n\nfunction onChange(args) {\n diagram.tool = args.checked ? ej.diagrams.DiagramTools.ContinuousDraw : ej.diagrams.DiagramTools.DrawOnce;\n}\n\n\n\n\n var interval = [1, 9, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75];\n var gridlines = { lineColor: '#e0e0e0', lineIntervals: interval };\n var snapSettings = {\n snapObjectDistance: 5,\n constraints: (ej.diagrams.SnapConstraints.SnapToObject | ej.diagrams.SnapConstraints.SnapToLines) | ej.diagrams.SnapConstraints.ShowLines,\n horizontalGridlines: gridlines, verticalGridlines: gridlines\n };\n //Initializes diagram control\n diagram = new ej.diagrams.Diagram({\n width: '100%', height: '540px', snapSettings: snapSettings,\n rulerSettings: {\n showRulers: true, dynamicGrid: true\n },\n created: function (obj) {\n diagram.drawingObject = { shape: { type: 'Basic', shape: 'Rectangle' } };\n diagram.tool = ej.diagrams.DiagramTools.ContinuousDraw;\n diagram.dataBind();\n }\n });\n diagram.appendTo('#diagram');\n //Initializes the check box inorder to enable Continuous draw\n checkBoxObj = new ej.buttons.CheckBox({ label: 'Continuous Draw', checked: true, change: onChange });\n checkBoxObj.appendTo('#checked');\n //Click Event used to decide the drawing object.\n document.getElementById('appearance').onclick = documentClick;\n\n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n \n
\n \n
\n
\n Shapes\n
\n
\n
\n
\n
\n Connector\n
\n
\n
\n \n
\n
\n
\n\n\n
","index.js":"{{ripple}}/**\n * Drawing tools sample\n */\nej.diagrams.Diagram.Inject(ej.diagrams.UndoRedo, ej.diagrams.Snapping);\nvar diagram;\nvar checkBoxObj;\n\nfunction documentClick(args) {\n var target = args.target;\n\n var drawingObject = null;\n if (target.className === 'image-pattern-style') {\n switch (target.id) {\n case 'shape1':\n drawingObject = { shape: { type: 'Basic', shape: 'Rectangle' } };\n break;\n case 'shape2':\n drawingObject = { shape: { type: 'Basic', shape: 'Ellipse' } };\n break;\n case 'shape3':\n drawingObject = { shape: { type: 'Basic', shape: 'Hexagon' } };\n break;\n case 'shape4':\n drawingObject = { shape: { type: 'Basic', shape: 'Pentagon' } };\n break;\n case 'shape5':\n drawingObject = { shape: { type: 'Basic', shape: 'Triangle' } };\n break;\n case 'straight':\n drawingObject = { type: 'Straight' };\n break;\n case 'ortho':\n drawingObject = { type: 'Orthogonal' };\n break;\n case 'cubic':\n drawingObject = { type: 'Bezier' };\n break;\n case 'path':\n drawingObject = {\n shape: {\n type: 'Path',\n data: 'M540.3643,137.9336L546.7973,159.7016L570.3633,159.7296L550.7723,171.9366L558.9053,194.9966L540.3643,' +\n '179.4996L521.8223,194.9966L529.9553,171.9366L510.3633,159.7296L533.9313,159.7016L540.3643,137.9336z'\n }\n };\n break;\n case 'image':\n drawingObject = { shape: { type: 'Image', source: '//ej2.syncfusion.com/javascript/demos/src/diagram/employees/image16.png' } };\n break;\n case 'svg':\n drawingObject = { shape: { type: 'Native', content: getPath() } };\n break;\n case 'text':\n drawingObject = { shape: { type: 'Text' } };\n break;\n }\n if (drawingObject) {\n diagram.drawingObject = drawingObject;\n diagram.tool = checkBoxObj.checked ? ej.diagrams.DiagramTools.ContinuousDraw : ej.diagrams.DiagramTools.DrawOnce;\n diagram.dataBind();\n\n }\n }\n}\n\nfunction onChange(args) {\n diagram.tool = args.checked ? ej.diagrams.DiagramTools.ContinuousDraw : ej.diagrams.DiagramTools.DrawOnce;\n}\n\n\n\n\n var interval = [1, 9, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75];\n var gridlines = { lineColor: '#e0e0e0', lineIntervals: interval };\n var snapSettings = {\n snapObjectDistance: 5,\n constraints: (ej.diagrams.SnapConstraints.SnapToObject | ej.diagrams.SnapConstraints.SnapToLines) | ej.diagrams.SnapConstraints.ShowLines,\n horizontalGridlines: gridlines, verticalGridlines: gridlines\n };\n //Initializes diagram control\n diagram = new ej.diagrams.Diagram({\n width: '100%', height: '540px', snapSettings: snapSettings,\n rulerSettings: {\n showRulers: true, dynamicGrid: true\n },\n created: function (obj) {\n diagram.drawingObject = { shape: { type: 'Basic', shape: 'Rectangle' } };\n diagram.tool = ej.diagrams.DiagramTools.ContinuousDraw;\n diagram.dataBind();\n }\n });\n diagram.appendTo('#diagram');\n //Initializes the check box inorder to enable Continuous draw\n checkBoxObj = new ej.buttons.CheckBox({ label: 'Continuous Draw', checked: true, change: onChange });\n checkBoxObj.appendTo('#checked');\n //Click Event used to decide the drawing object.\n document.getElementById('appearance').onclick = documentClick;\n\n"}
\ No newline at end of file
diff --git a/src/diagram/fishbone-diagram-stack.json b/src/diagram/fishbone-diagram-stack.json
index d556534c..bdc9a068 100644
--- a/src/diagram/fishbone-diagram-stack.json
+++ b/src/diagram/fishbone-diagram-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}ej.diagrams.Diagram.Inject(ej.diagrams.BpmnDiagrams, ej.diagrams.UndoRedo, ej.diagrams.DiagramContextMenu);\nej.diagrams.SymbolPalette.Inject(ej.diagrams.BpmnDiagrams);\nvar diagram;\nvar nodes = [\n {\n id: 'Equipment', width: 120, height: 40, offsetX: 300, offsetY: 80,\n annotations: [{ content: 'Equipment', style: { color: 'white' } }],\n style: { fill: '#39AFA9' }, borderColor: '05776C',\n shape: { type: 'Path', data: 'M 10 0 L 166 0 L 156 44 L 0 44 z' }\n },\n {\n id: 'Environment', width: 120, height: 40, offsetX: 450, offsetY: 80,\n annotations: [{ content: 'Environment', style: { color: 'white' } }],\n style: { fill: '#39AFA9' }, borderColor: '05776C',\n shape: { type: 'Path', data: 'M 10 0 L 166 0 L 156 44 L 0 44 z' }\n },\n {\n id: 'Person', width: 120, height: 40, offsetX: 600, offsetY: 80,\n annotations: [{ content: 'Person', style: { color: 'white' } }],\n style: { fill: '#39AFA9' }, borderColor: '05776C',\n shape: { type: 'Path', data: 'M 10 0 L 166 0 L 156 44 L 0 44 z' }\n },\n {\n id: 'Materials', width: 120, height: 40, offsetX: 300, offsetY: 600,\n annotations: [{ content: 'Materials', style: { color: 'white' } }],\n style: { fill: '#39AFA9' }, borderColor: '05776C',\n shape: { type: 'Path', data: 'M 10 0 L 166 0 L 156 44 L 0 44 z' }\n },\n {\n id: 'Machine', width: 120, height: 40, offsetX: 450, offsetY: 600,\n annotations: [{ content: 'Machine', style: { color: 'white' } }],\n style: { fill: '#39AFA9' }, borderColor: '05776C',\n shape: { type: 'Path', data: 'M 10 0 L 166 0 L 156 44 L 0 44 z' }\n },\n {\n id: 'Methods', width: 120, height: 40, offsetX: 600, offsetY: 600,\n annotations: [{ content: 'Methods', style: { color: 'white' } }],\n style: { fill: '#39AFA9' }, borderColor: '05776C',\n shape: {\n type: 'Path', data: 'M 10 0 L 166 0 L 156 44 L 0 44 z'\n }\n },\n {\n id: 'ellipse1', width: 20, height: 20, offsetX: 290, offsetY: 130,\n annotations: [{ content: ' ', style: { color: 'white' } }],\n shape: { type: 'Basic', shape: 'Ellipse' }, style: { strokeColor: '#A52A2A' }\n },\n {\n id: 'ellipse2', width: 20, height: 20, offsetX: 323, offsetY: 183,\n annotations: [{ content: ' ', style: { color: 'white' } }],\n shape: { type: 'Basic', shape: 'Ellipse' }, style: { strokeColor: '#A52A2A' }\n },\n {\n id: 'ellipse3', width: 20, height: 20, offsetX: 354, offsetY: 237,\n annotations: [{ content: ' ', style: { color: 'white' } }],\n shape: { type: 'Basic', shape: 'Ellipse' }, style: { strokeColor: '#A52A2A' }\n },\n {\n id: 'ellipse4', width: 20, height: 20, offsetX: 440, offsetY: 130,\n annotations: [{ content: ' ', style: { color: 'white' } }],\n shape: { type: 'Basic', shape: 'Ellipse' }, style: { strokeColor: '#A52A2A' }\n },\n {\n id: 'ellipse5', width: 20, height: 20, offsetX: 470, offsetY: 182,\n annotations: [{ content: ' ', style: { color: 'white' } }],\n shape: { type: 'Basic', shape: 'Ellipse' }, style: { strokeColor: '#A52A2A' }\n },\n {\n id: 'ellipse6', width: 20, height: 20, offsetX: 590, offsetY: 130,\n annotations: [{ content: ' ', style: { color: 'white' } }],\n shape: { type: 'Basic', shape: 'Ellipse' }, style: { strokeColor: '#A52A2A' }\n },\n {\n id: 'ellipse7', width: 20, height: 20, offsetX: 622, offsetY: 179,\n annotations: [{ content: ' ', style: { color: 'white' } }],\n shape: { type: 'Basic', shape: 'Ellipse' }, style: { strokeColor: '#A52A2A' }\n },\n {\n id: 'ellipse8', width: 20, height: 20, offsetX: 660, offsetY: 221,\n annotations: [{ content: ' ', style: { color: 'white' } }],\n shape: { type: 'Basic', shape: 'Ellipse' }, style: { strokeColor: '#A52A2A' }\n },\n {\n id: 'ellipse9', width: 20, height: 20, offsetX: 694, offsetY: 264,\n annotations: [{ content: ' ', style: { color: 'white' } }],\n shape: { type: 'Basic', shape: 'Ellipse' }, style: { strokeColor: '#A52A2A' }\n },\n {\n id: 'ellipse10', width: 20, height: 20, offsetX: 354, offsetY: 460,\n annotations: [{ content: ' ', style: { color: 'white' } }],\n shape: { type: 'Basic', shape: 'Ellipse' }, style: { strokeColor: '#A52A2A' }\n },\n {\n id: 'ellipse11', width: 20, height: 20, offsetX: 590, offsetY: 530,\n annotations: [{ content: ' ', style: { color: 'white' } }],\n shape: { type: 'Basic', shape: 'Ellipse' }, style: { strokeColor: '#A52A2A' }\n },\n {\n id: 'ellipse12', width: 20, height: 20, offsetX: 660, offsetY: 460,\n annotations: [{ content: ' ', style: { color: 'white' } }],\n shape: { type: 'Basic', shape: 'Ellipse' }, style: { strokeColor: '#A52A2A' }\n },\n {\n id: 'ellipse13', width: 20, height: 20, offsetX: 440, offsetY: 530,\n annotations: [{ content: ' ', style: { color: 'white' } }],\n shape: { type: 'Basic', shape: 'Ellipse' }, style: { strokeColor: '#A52A2A' }\n },\n {\n id: 'ellipse14', width: 20, height: 20, offsetX: 510, offsetY: 460,\n annotations: [{ content: ' ', style: { color: 'white' } }],\n shape: { type: 'Basic', shape: 'Ellipse' }, style: { strokeColor: '#A52A2A' }\n },\n {\n id: 'ellipse15', width: 20, height: 20, offsetX: 290, offsetY: 530,\n annotations: [{ content: ' ', style: { color: 'white' } }],\n shape: { type: 'Basic', shape: 'Ellipse' }, style: { strokeColor: '#A52A2A' }\n },\n {\n id: 'Colorellipse1', width: 50, height: 50, offsetX: 717, offsetY: 310,\n annotations: [{ content: ' ', style: { color: 'white' } }],\n shape: { type: 'Basic', shape: 'Ellipse' }, style: { strokeColor: '#A52A2A' }\n },\n {\n id: 'Colorellipse2', width: 50, height: 50, offsetX: 560, offsetY: 310,\n annotations: [{ content: ' ', style: { color: 'white' } }],\n shape: { type: 'Basic', shape: 'Ellipse' }, style: { strokeColor: '#A52A2A' }\n },\n {\n id: 'Colorellipse3', width: 50, height: 50, offsetX: 390, offsetY: 310,\n annotations: [{ content: ' ', style: { color: 'white' } }],\n shape: { type: 'Basic', shape: 'Ellipse' }, style: { strokeColor: '#A52A2A' }\n },\n {\n id: 'Colorellipse4', width: 50, height: 50, offsetX: 220, offsetY: 310,\n annotations: [{ content: ' ', style: { color: 'white' } }],\n shape: { type: 'Basic', shape: 'Ellipse' }, style: { strokeColor: '#A52A2A' }\n },\n {\n id: 'Colorellipse5', width: 140, height: 90, offsetX: 900, offsetY: 310,\n annotations: [{ content: 'Productivity Increase', style: { color: 'white' } }],\n style: { fill: '#39AFA9' }, borderColor: '05776C',\n shape: { type: 'Basic', shape: 'Ellipse' }\n },\n {\n id: 'TextPrograms', width: 90, height: 20, offsetX: 189, offsetY: 130,\n style: { fill: 'transparent', strokeWidth: 0 },\n shape: { type: 'Text', content: 'Text Programs' }\n },\n {\n id: 'Ventilatorssound', width: 120, height: 20, offsetX: 359, offsetY: 130,\n style: { fill: 'transparent', strokeWidth: 0 },\n shape: { type: 'Text', content: 'Ventilators Sound' }\n },\n {\n id: 'Education', width: 70, height: 20, offsetX: 500, offsetY: 130,\n style: { fill: 'transparent', strokeWidth: 0 },\n shape: { type: 'Text', content: 'Education' }\n },\n {\n id: 'DataBooks', width: 70, height: 20, offsetX: 213, offsetY: 183,\n style: { fill: 'transparent', strokeWidth: 0 },\n shape: { type: 'Text', content: 'DataBooks' }\n },\n {\n id: 'Fixtures', width: 70, height: 20, offsetX: 240, offsetY: 237,\n style: { fill: 'transparent', strokeWidth: 0 },\n shape: { type: 'Text', content: 'Fixtures' }\n },\n {\n id: 'Noise', width: 70, height: 20, offsetX: 390, offsetY: 182,\n style: { fill: 'transparent', strokeWidth: 0 },\n shape: { type: 'Text', content: 'Noise' }\n },\n {\n id: 'Motivation', width: 70, height: 20, offsetX: 535, offsetY: 182,\n style: { fill: 'transparent', strokeWidth: 0 },\n shape: { type: 'Text', content: 'Motivation' }\n },\n {\n id: 'Tiredness', width: 70, height: 20, offsetX: 565, offsetY: 224,\n style: { fill: 'transparent', strokeWidth: 0 },\n shape: { type: 'Text', content: 'Tiredness' }\n },\n {\n id: 'Storer', width: 70, height: 20, offsetX: 606, offsetY: 264,\n style: { fill: 'transparent', strokeWidth: 0 },\n shape: { type: 'Text', content: 'Storer' }\n },\n {\n id: 'Computer', width: 70, height: 20, offsetX: 260, offsetY: 460,\n style: { fill: 'transparent', strokeWidth: 0 },\n shape: { type: 'Text', content: 'Computer' }\n },\n {\n id: 'Quality', width: 120, height: 20, offsetX: 417, offsetY: 460,\n style: { fill: 'transparent', strokeWidth: 0 },\n shape: { type: 'Text', content: 'Quality of Element' }\n },\n {\n id: 'Order', width: 70, height: 20, offsetX: 562, offsetY: 460,\n style: { fill: 'transparent', strokeWidth: 0 },\n shape: { type: 'Text', content: 'Order' }\n },\n {\n id: 'Software', width: 70, height: 20, offsetX: 225, offsetY: 530,\n style: { fill: 'transparent', strokeWidth: 0 },\n shape: { type: 'Text', content: 'Software' }\n },\n {\n id: 'Procurement', width: 70, height: 20, offsetX: 358, offsetY: 530,\n style: { fill: 'transparent', strokeWidth: 0 },\n shape: { type: 'Text', content: 'Procurement' }\n },\n {\n id: 'Standardization', width: 90, height: 20, offsetX: 501, offsetY: 530,\n style: { fill: 'transparent', strokeWidth: 0 },\n shape: { type: 'Text', content: 'Standardization' }\n },\n];\nvar connectors = [\n CreateConnector('equipellise', '5,5', 'Equipment', 'ellipse1', '#A52A2A', 2),\n CreateConnector('connect12', '5,5', 'ellipse1', 'ellipse2', '#A52A2A', 2),\n CreateConnector('connect13', '5,5', 'ellipse2', 'ellipse3', '#A52A2A', 2),\n CreateConnector('connect14', '5,5', 'ellipse3', 'Colorellipse3', '#A52A2A', 2),\n CreateConnector('connect15', '5,5', 'Environment', 'ellipse4', '#A52A2A', 2),\n CreateConnector('connect16', '5,5', 'ellipse4', 'ellipse5', '#A52A2A', 2),\n CreateConnector('connect17', '5,5', 'ellipse4', 'ellipse5', '#A52A2A', 2),\n CreateConnector('connect18', '5,5', 'ellipse5', 'Colorellipse2', '#A52A2A', 2),\n CreateConnector('connect19', '5,5', 'Person', 'ellipse6', '#A52A2A', 2),\n CreateConnector('connect20', '5,5', 'ellipse6', 'ellipse7', '#A52A2A', 2),\n CreateConnector('connect21', '5,5', 'ellipse7', 'ellipse8', '#A52A2A', 2),\n CreateConnector('connect22', '5,5', 'ellipse8', 'ellipse9', '#A52A2A', 2),\n CreateConnector('connect23', '5,5', 'ellipse9', 'Colorellipse1', '#A52A2A', 2),\n CreateConnector('connect24', '5,5', 'Materials', 'ellipse15', '#A52A2A', 2),\n CreateConnector('connect25', '5,5', 'ellipse15', 'ellipse10', '#A52A2A', 2),\n CreateConnector('connect26', '5,5', 'ellipse10', 'Colorellipse3', '#A52A2A', 2),\n CreateConnector('connect27', '5,5', 'Machine', 'ellipse13', '#A52A2A', 2),\n CreateConnector('connect28', '5,5', 'ellipse13', 'ellipse14', '#A52A2A', 2),\n CreateConnector('connect29', '5,5', 'ellipse14', 'Colorellipse2', '#A52A2A', 2),\n CreateConnector('connect30', '5,5', 'Methods', 'ellipse11', '#A52A2A', 2),\n CreateConnector('connect31', '5,5', 'ellipse11', 'ellipse12', '#A52A2A', 2),\n CreateConnector('connect32', '5,5', 'ellipse12', 'Colorellipse1', '#A52A2A', 2),\n CreateConnector('connect33', '', 'Colorellipse4', 'Colorellipse3', '#000000', 2),\n CreateConnector('connect34', '', 'Colorellipse3', 'Colorellipse2', '#000000', 2),\n CreateConnector('connect35', '', 'Colorellipse2', 'Colorellipse1', '#000000', 2),\n CreateConnector('connect36', '', 'Colorellipse1', 'Colorellipse5', '#000000', 2),\n CreateConnector('connect37', '5,5', 'TextPrograms', 'ellipse1', '#A52A2A', 2),\n CreateConnector('connect38', '5,5', 'DataBooks', 'ellipse2', '#A52A2A', 2),\n CreateConnector('connect39', '5,5', 'Fixtures', 'ellipse3', '#A52A2A', 2),\n CreateConnector('connect40', '5,5', 'Ventilatorssound', 'ellipse4', '#A52A2A', 2),\n CreateConnector('connect41', '5,5', 'Noise', 'ellipse5', '#A52A2A', 2),\n CreateConnector('connect42', '5,5', 'Education', 'ellipse6', '#A52A2A', 2),\n CreateConnector('connect43', '5,5', 'Motivation', 'ellipse7', '#A52A2A', 2),\n CreateConnector('connect44', '5,5', 'Tiredness', 'ellipse8', '#A52A2A', 2),\n CreateConnector('connect45', '5,5', 'Storer', 'ellipse9', '#A52A2A', 2),\n CreateConnector('connect46', '5,5', 'Software', 'ellipse15', '#A52A2A', 2),\n CreateConnector('connect47', '5,5', 'Computer', 'ellipse10', '#A52A2A', 2),\n CreateConnector('connect48', '5,5', 'Procurement', 'ellipse13', '#A52A2A', 2),\n CreateConnector('connect49', '5,5', 'Quality', 'ellipse14', '#A52A2A', 2),\n CreateConnector('connect50', '5,5', 'Order', 'ellipse12', '#A52A2A', 2),\n CreateConnector('connect51', '5,5', 'Standardization', 'ellipse11', '#A52A2A', 2)\n];\nfunction CreateConnector(name, lineDashArray, source, target, lineColor, lineWidth) {\n var connector = {};\n connector.id = name;\n connector.sourceID = source;\n connector.targetID = target;\n connector.style = {\n strokeColor: lineColor,\n strokeWidth: lineWidth,\n strokeDashArray: lineDashArray,\n };\n return connector;\n}\n\n diagram = new ej.diagrams.Diagram({\n width: '100%',\n height: '700px',\n nodes: nodes,\n tool: ej.diagrams.DiagramTools.ZoomPan,\n connectors: connectors,\n snapSettings: { constraints: 0 },\n getConnectorDefaults: function (connector) {\n connector.targetDecorator = { shape: 'Arrow', width: 5, height: 5 };\n if (connector.id !== 'connect33' && connector.id !== 'connect34' &&\n connector.id !== 'connect35' && connector.id !== 'connect36') {\n connector.targetDecorator.style = { strokeColor: '#A52A2A', fill: '#A52A2A' };\n }\n }\n });\n diagram.appendTo('#diagram');\n diagram.fitToPage({ mode: 'Height' });\n\n\n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}ej.diagrams.Diagram.Inject(ej.diagrams.BpmnDiagrams, ej.diagrams.UndoRedo, ej.diagrams.DiagramContextMenu);\nej.diagrams.SymbolPalette.Inject(ej.diagrams.BpmnDiagrams);\nvar diagram;\nvar nodes = [\n {\n id: 'Equipment', width: 120, height: 40, offsetX: 300, offsetY: 80,\n annotations: [{ content: 'Equipment', style: { color: 'white' } }],\n style: { fill: '#39AFA9' }, borderColor: '05776C',\n shape: { type: 'Path', data: 'M 10 0 L 166 0 L 156 44 L 0 44 z' }\n },\n {\n id: 'Environment', width: 120, height: 40, offsetX: 450, offsetY: 80,\n annotations: [{ content: 'Environment', style: { color: 'white' } }],\n style: { fill: '#39AFA9' }, borderColor: '05776C',\n shape: { type: 'Path', data: 'M 10 0 L 166 0 L 156 44 L 0 44 z' }\n },\n {\n id: 'Person', width: 120, height: 40, offsetX: 600, offsetY: 80,\n annotations: [{ content: 'Person', style: { color: 'white' } }],\n style: { fill: '#39AFA9' }, borderColor: '05776C',\n shape: { type: 'Path', data: 'M 10 0 L 166 0 L 156 44 L 0 44 z' }\n },\n {\n id: 'Materials', width: 120, height: 40, offsetX: 300, offsetY: 600,\n annotations: [{ content: 'Materials', style: { color: 'white' } }],\n style: { fill: '#39AFA9' }, borderColor: '05776C',\n shape: { type: 'Path', data: 'M 10 0 L 166 0 L 156 44 L 0 44 z' }\n },\n {\n id: 'Machine', width: 120, height: 40, offsetX: 450, offsetY: 600,\n annotations: [{ content: 'Machine', style: { color: 'white' } }],\n style: { fill: '#39AFA9' }, borderColor: '05776C',\n shape: { type: 'Path', data: 'M 10 0 L 166 0 L 156 44 L 0 44 z' }\n },\n {\n id: 'Methods', width: 120, height: 40, offsetX: 600, offsetY: 600,\n annotations: [{ content: 'Methods', style: { color: 'white' } }],\n style: { fill: '#39AFA9' }, borderColor: '05776C',\n shape: {\n type: 'Path', data: 'M 10 0 L 166 0 L 156 44 L 0 44 z'\n }\n },\n {\n id: 'ellipse1', width: 20, height: 20, offsetX: 290, offsetY: 130,\n annotations: [{ content: ' ', style: { color: 'white' } }],\n shape: { type: 'Basic', shape: 'Ellipse' }, style: { strokeColor: '#A52A2A' }\n },\n {\n id: 'ellipse2', width: 20, height: 20, offsetX: 323, offsetY: 183,\n annotations: [{ content: ' ', style: { color: 'white' } }],\n shape: { type: 'Basic', shape: 'Ellipse' }, style: { strokeColor: '#A52A2A' }\n },\n {\n id: 'ellipse3', width: 20, height: 20, offsetX: 354, offsetY: 237,\n annotations: [{ content: ' ', style: { color: 'white' } }],\n shape: { type: 'Basic', shape: 'Ellipse' }, style: { strokeColor: '#A52A2A' }\n },\n {\n id: 'ellipse4', width: 20, height: 20, offsetX: 440, offsetY: 130,\n annotations: [{ content: ' ', style: { color: 'white' } }],\n shape: { type: 'Basic', shape: 'Ellipse' }, style: { strokeColor: '#A52A2A' }\n },\n {\n id: 'ellipse5', width: 20, height: 20, offsetX: 470, offsetY: 182,\n annotations: [{ content: ' ', style: { color: 'white' } }],\n shape: { type: 'Basic', shape: 'Ellipse' }, style: { strokeColor: '#A52A2A' }\n },\n {\n id: 'ellipse6', width: 20, height: 20, offsetX: 590, offsetY: 130,\n annotations: [{ content: ' ', style: { color: 'white' } }],\n shape: { type: 'Basic', shape: 'Ellipse' }, style: { strokeColor: '#A52A2A' }\n },\n {\n id: 'ellipse7', width: 20, height: 20, offsetX: 622, offsetY: 179,\n annotations: [{ content: ' ', style: { color: 'white' } }],\n shape: { type: 'Basic', shape: 'Ellipse' }, style: { strokeColor: '#A52A2A' }\n },\n {\n id: 'ellipse8', width: 20, height: 20, offsetX: 660, offsetY: 221,\n annotations: [{ content: ' ', style: { color: 'white' } }],\n shape: { type: 'Basic', shape: 'Ellipse' }, style: { strokeColor: '#A52A2A' }\n },\n {\n id: 'ellipse9', width: 20, height: 20, offsetX: 694, offsetY: 264,\n annotations: [{ content: ' ', style: { color: 'white' } }],\n shape: { type: 'Basic', shape: 'Ellipse' }, style: { strokeColor: '#A52A2A' }\n },\n {\n id: 'ellipse10', width: 20, height: 20, offsetX: 354, offsetY: 460,\n annotations: [{ content: ' ', style: { color: 'white' } }],\n shape: { type: 'Basic', shape: 'Ellipse' }, style: { strokeColor: '#A52A2A' }\n },\n {\n id: 'ellipse11', width: 20, height: 20, offsetX: 590, offsetY: 530,\n annotations: [{ content: ' ', style: { color: 'white' } }],\n shape: { type: 'Basic', shape: 'Ellipse' }, style: { strokeColor: '#A52A2A' }\n },\n {\n id: 'ellipse12', width: 20, height: 20, offsetX: 660, offsetY: 460,\n annotations: [{ content: ' ', style: { color: 'white' } }],\n shape: { type: 'Basic', shape: 'Ellipse' }, style: { strokeColor: '#A52A2A' }\n },\n {\n id: 'ellipse13', width: 20, height: 20, offsetX: 440, offsetY: 530,\n annotations: [{ content: ' ', style: { color: 'white' } }],\n shape: { type: 'Basic', shape: 'Ellipse' }, style: { strokeColor: '#A52A2A' }\n },\n {\n id: 'ellipse14', width: 20, height: 20, offsetX: 510, offsetY: 460,\n annotations: [{ content: ' ', style: { color: 'white' } }],\n shape: { type: 'Basic', shape: 'Ellipse' }, style: { strokeColor: '#A52A2A' }\n },\n {\n id: 'ellipse15', width: 20, height: 20, offsetX: 290, offsetY: 530,\n annotations: [{ content: ' ', style: { color: 'white' } }],\n shape: { type: 'Basic', shape: 'Ellipse' }, style: { strokeColor: '#A52A2A' }\n },\n {\n id: 'Colorellipse1', width: 50, height: 50, offsetX: 717, offsetY: 310,\n annotations: [{ content: ' ', style: { color: 'white' } }],\n shape: { type: 'Basic', shape: 'Ellipse' }, style: { strokeColor: '#A52A2A' }\n },\n {\n id: 'Colorellipse2', width: 50, height: 50, offsetX: 560, offsetY: 310,\n annotations: [{ content: ' ', style: { color: 'white' } }],\n shape: { type: 'Basic', shape: 'Ellipse' }, style: { strokeColor: '#A52A2A' }\n },\n {\n id: 'Colorellipse3', width: 50, height: 50, offsetX: 390, offsetY: 310,\n annotations: [{ content: ' ', style: { color: 'white' } }],\n shape: { type: 'Basic', shape: 'Ellipse' }, style: { strokeColor: '#A52A2A' }\n },\n {\n id: 'Colorellipse4', width: 50, height: 50, offsetX: 220, offsetY: 310,\n annotations: [{ content: ' ', style: { color: 'white' } }],\n shape: { type: 'Basic', shape: 'Ellipse' }, style: { strokeColor: '#A52A2A' }\n },\n {\n id: 'Colorellipse5', width: 140, height: 90, offsetX: 900, offsetY: 310,\n annotations: [{ content: 'Productivity Increase', style: { color: 'white' } }],\n style: { fill: '#39AFA9' }, borderColor: '05776C',\n shape: { type: 'Basic', shape: 'Ellipse' }\n },\n {\n id: 'TextPrograms', width: 90, height: 20, offsetX: 189, offsetY: 130,\n style: { fill: 'transparent', strokeWidth: 0 },\n shape: { type: 'Text', content: 'Text Programs' }\n },\n {\n id: 'Ventilatorssound', width: 120, height: 20, offsetX: 359, offsetY: 130,\n style: { fill: 'transparent', strokeWidth: 0 },\n shape: { type: 'Text', content: 'Ventilators Sound' }\n },\n {\n id: 'Education', width: 70, height: 20, offsetX: 500, offsetY: 130,\n style: { fill: 'transparent', strokeWidth: 0 },\n shape: { type: 'Text', content: 'Education' }\n },\n {\n id: 'DataBooks', width: 70, height: 20, offsetX: 213, offsetY: 183,\n style: { fill: 'transparent', strokeWidth: 0 },\n shape: { type: 'Text', content: 'DataBooks' }\n },\n {\n id: 'Fixtures', width: 70, height: 20, offsetX: 240, offsetY: 237,\n style: { fill: 'transparent', strokeWidth: 0 },\n shape: { type: 'Text', content: 'Fixtures' }\n },\n {\n id: 'Noise', width: 70, height: 20, offsetX: 390, offsetY: 182,\n style: { fill: 'transparent', strokeWidth: 0 },\n shape: { type: 'Text', content: 'Noise' }\n },\n {\n id: 'Motivation', width: 70, height: 20, offsetX: 535, offsetY: 182,\n style: { fill: 'transparent', strokeWidth: 0 },\n shape: { type: 'Text', content: 'Motivation' }\n },\n {\n id: 'Tiredness', width: 70, height: 20, offsetX: 565, offsetY: 224,\n style: { fill: 'transparent', strokeWidth: 0 },\n shape: { type: 'Text', content: 'Tiredness' }\n },\n {\n id: 'Storer', width: 70, height: 20, offsetX: 606, offsetY: 264,\n style: { fill: 'transparent', strokeWidth: 0 },\n shape: { type: 'Text', content: 'Storer' }\n },\n {\n id: 'Computer', width: 70, height: 20, offsetX: 260, offsetY: 460,\n style: { fill: 'transparent', strokeWidth: 0 },\n shape: { type: 'Text', content: 'Computer' }\n },\n {\n id: 'Quality', width: 120, height: 20, offsetX: 417, offsetY: 460,\n style: { fill: 'transparent', strokeWidth: 0 },\n shape: { type: 'Text', content: 'Quality of Element' }\n },\n {\n id: 'Order', width: 70, height: 20, offsetX: 562, offsetY: 460,\n style: { fill: 'transparent', strokeWidth: 0 },\n shape: { type: 'Text', content: 'Order' }\n },\n {\n id: 'Software', width: 70, height: 20, offsetX: 225, offsetY: 530,\n style: { fill: 'transparent', strokeWidth: 0 },\n shape: { type: 'Text', content: 'Software' }\n },\n {\n id: 'Procurement', width: 70, height: 20, offsetX: 358, offsetY: 530,\n style: { fill: 'transparent', strokeWidth: 0 },\n shape: { type: 'Text', content: 'Procurement' }\n },\n {\n id: 'Standardization', width: 90, height: 20, offsetX: 501, offsetY: 530,\n style: { fill: 'transparent', strokeWidth: 0 },\n shape: { type: 'Text', content: 'Standardization' }\n },\n];\nvar connectors = [\n CreateConnector('equipellise', '5,5', 'Equipment', 'ellipse1', '#A52A2A', 2),\n CreateConnector('connect12', '5,5', 'ellipse1', 'ellipse2', '#A52A2A', 2),\n CreateConnector('connect13', '5,5', 'ellipse2', 'ellipse3', '#A52A2A', 2),\n CreateConnector('connect14', '5,5', 'ellipse3', 'Colorellipse3', '#A52A2A', 2),\n CreateConnector('connect15', '5,5', 'Environment', 'ellipse4', '#A52A2A', 2),\n CreateConnector('connect16', '5,5', 'ellipse4', 'ellipse5', '#A52A2A', 2),\n CreateConnector('connect17', '5,5', 'ellipse4', 'ellipse5', '#A52A2A', 2),\n CreateConnector('connect18', '5,5', 'ellipse5', 'Colorellipse2', '#A52A2A', 2),\n CreateConnector('connect19', '5,5', 'Person', 'ellipse6', '#A52A2A', 2),\n CreateConnector('connect20', '5,5', 'ellipse6', 'ellipse7', '#A52A2A', 2),\n CreateConnector('connect21', '5,5', 'ellipse7', 'ellipse8', '#A52A2A', 2),\n CreateConnector('connect22', '5,5', 'ellipse8', 'ellipse9', '#A52A2A', 2),\n CreateConnector('connect23', '5,5', 'ellipse9', 'Colorellipse1', '#A52A2A', 2),\n CreateConnector('connect24', '5,5', 'Materials', 'ellipse15', '#A52A2A', 2),\n CreateConnector('connect25', '5,5', 'ellipse15', 'ellipse10', '#A52A2A', 2),\n CreateConnector('connect26', '5,5', 'ellipse10', 'Colorellipse3', '#A52A2A', 2),\n CreateConnector('connect27', '5,5', 'Machine', 'ellipse13', '#A52A2A', 2),\n CreateConnector('connect28', '5,5', 'ellipse13', 'ellipse14', '#A52A2A', 2),\n CreateConnector('connect29', '5,5', 'ellipse14', 'Colorellipse2', '#A52A2A', 2),\n CreateConnector('connect30', '5,5', 'Methods', 'ellipse11', '#A52A2A', 2),\n CreateConnector('connect31', '5,5', 'ellipse11', 'ellipse12', '#A52A2A', 2),\n CreateConnector('connect32', '5,5', 'ellipse12', 'Colorellipse1', '#A52A2A', 2),\n CreateConnector('connect33', '', 'Colorellipse4', 'Colorellipse3', '#000000', 2),\n CreateConnector('connect34', '', 'Colorellipse3', 'Colorellipse2', '#000000', 2),\n CreateConnector('connect35', '', 'Colorellipse2', 'Colorellipse1', '#000000', 2),\n CreateConnector('connect36', '', 'Colorellipse1', 'Colorellipse5', '#000000', 2),\n CreateConnector('connect37', '5,5', 'TextPrograms', 'ellipse1', '#A52A2A', 2),\n CreateConnector('connect38', '5,5', 'DataBooks', 'ellipse2', '#A52A2A', 2),\n CreateConnector('connect39', '5,5', 'Fixtures', 'ellipse3', '#A52A2A', 2),\n CreateConnector('connect40', '5,5', 'Ventilatorssound', 'ellipse4', '#A52A2A', 2),\n CreateConnector('connect41', '5,5', 'Noise', 'ellipse5', '#A52A2A', 2),\n CreateConnector('connect42', '5,5', 'Education', 'ellipse6', '#A52A2A', 2),\n CreateConnector('connect43', '5,5', 'Motivation', 'ellipse7', '#A52A2A', 2),\n CreateConnector('connect44', '5,5', 'Tiredness', 'ellipse8', '#A52A2A', 2),\n CreateConnector('connect45', '5,5', 'Storer', 'ellipse9', '#A52A2A', 2),\n CreateConnector('connect46', '5,5', 'Software', 'ellipse15', '#A52A2A', 2),\n CreateConnector('connect47', '5,5', 'Computer', 'ellipse10', '#A52A2A', 2),\n CreateConnector('connect48', '5,5', 'Procurement', 'ellipse13', '#A52A2A', 2),\n CreateConnector('connect49', '5,5', 'Quality', 'ellipse14', '#A52A2A', 2),\n CreateConnector('connect50', '5,5', 'Order', 'ellipse12', '#A52A2A', 2),\n CreateConnector('connect51', '5,5', 'Standardization', 'ellipse11', '#A52A2A', 2)\n];\nfunction CreateConnector(name, lineDashArray, source, target, lineColor, lineWidth) {\n var connector = {};\n connector.id = name;\n connector.sourceID = source;\n connector.targetID = target;\n connector.style = {\n strokeColor: lineColor,\n strokeWidth: lineWidth,\n strokeDashArray: lineDashArray,\n };\n return connector;\n}\n\n diagram = new ej.diagrams.Diagram({\n width: '100%',\n height: '700px',\n nodes: nodes,\n tool: ej.diagrams.DiagramTools.ZoomPan,\n connectors: connectors,\n snapSettings: { constraints: 0 },\n getConnectorDefaults: function (connector) {\n connector.targetDecorator = { shape: 'Arrow', width: 5, height: 5 };\n if (connector.id !== 'connect33' && connector.id !== 'connect34' &&\n connector.id !== 'connect35' && connector.id !== 'connect36') {\n connector.targetDecorator.style = { strokeColor: '#A52A2A', fill: '#A52A2A' };\n }\n }\n });\n diagram.appendTo('#diagram');\n diagram.fitToPage({ mode: 'Height' });\n\n\n"}
\ No newline at end of file
diff --git a/src/diagram/flow-execution-stack.json b/src/diagram/flow-execution-stack.json
index 0a681edd..0fa5c508 100644
--- a/src/diagram/flow-execution-stack.json
+++ b/src/diagram/flow-execution-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n \n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n
","index.js":"{{ripple}}\nvar diagram;\nfunction CreateConnector(\n name, source, target, content, type,\n direction, targePort, length) {\n var connector = {};\n connector.id = name;\n connector.sourceID = source;\n connector.targetID = target;\n connector.style = { strokeWidth: 2 };\n var annotation = {};\n annotation.content = content;\n annotation.style = { fill: 'white' };\n connector.annotations = [annotation];\n connector.style.strokeColor = '#8D8D8D';\n connector.targetDecorator = {};\n connector.targetDecorator.style = {};\n connector.targetDecorator.style.strokeColor = '#8D8D8D';\n connector.targetDecorator.style.fill = '#8D8D8D';\n if (targePort) {\n connector.targetPortID = targePort;\n }\n var segment = {};\n if (type) {\n connector.type = type;\n segment.direction = direction;\n segment.type = type;\n segment.length = length;\n connector.segments = [segment];\n }\n return connector;\n}\n\nfunction CreateNodes(\n name, offsetX, offsetY, shape, content,\n width, height, ports) {\n var node = {};\n node.id = name;\n node.offsetX = offsetX;\n node.width = 150;\n node.height = 50;\n node.offsetY = offsetY;\n var annotations = {};\n annotations.content = content;\n node.annotations = [annotations];\n node.shape = { type: 'Flow', shape: shape };\n node.style = { fill: '#FBF6E1', strokeColor: '#E8DFB6', strokeWidth: 2 };\n if (ports) {\n node.ports = ports;\n }\n return node;\n}\n\n var nodes = [];\n var port1 = { id: 'port1', offset: { x: 0.5, y: 1 } };\n var port = { id: 'port', offset: { x: 1, y: 0.5 } };\n nodes.push(CreateNodes('node1', 100, 125, 'Terminator', 'Begin', 100, 35));\n nodes.push(CreateNodes('node2', 300, 125, 'Process', 'Specify collection', 120, 25, [port]));\n nodes.push(CreateNodes('node3', 500, 125, 'Decision', 'Particulars \\n required?', 100, 50, [port1]));\n nodes.push(CreateNodes('node4', 730, 125, 'Process', 'Specify particulars', 90, 25));\n nodes.push(CreateNodes('node5', 500, 225, 'Process', 'Design collection', 100, 25, [port]));\n nodes.push(CreateNodes('node6', 500, 320, 'Process', 'Cluster of events', 100, 25));\n nodes.push(CreateNodes('node7', 500, 420, 'Process', 'Start the process', 100, 25));\n nodes.push(CreateNodes('node8', 730, 320, 'Process', 'Record and analyze \\n results', 170, 25, [port]));\n nodes.push(CreateNodes('node9', 730, 420, 'Terminator', 'End ', 100, 35));\n\n var connectors = [];\n connectors.push(CreateConnector('connector1', 'node1', 'node2', ''));\n connectors.push(CreateConnector('connector2', 'node2', 'node3', ''));\n connectors.push(CreateConnector('connector3', 'node3', 'node4', 'Yes'));\n connectors.push(CreateConnector('connector4', 'node3', 'node5', 'No'));\n connectors.push(CreateConnector('connector5', 'node5', 'node6', ''));\n connectors.push(CreateConnector('connector6', 'node6', 'node7', ''));\n connectors.push(CreateConnector('connector7', 'node8', 'node6', ''));\n connectors.push(CreateConnector('connector8', 'node7', 'node9', ''));\n connectors.push(CreateConnector('connector10', 'node4', 'node5', '', 'Orthogonal', 'Bottom', 'port', 220));\n\n //initialization of the Diagram.\n diagram = new ej.diagrams.Diagram({\n width: '100%', height: '600px', nodes: nodes, connectors: connectors,\n snapSettings: { constraints: ej.diagrams.SnapConstraints.None }\n });\n diagram.appendTo('#diagram');\n\n var highLightedObjects = [];\n var currentButton = 'UnhighlightAll';\n var radioButton = new ej.buttons.RadioButton({\n label: 'None', name: 'radio', value: 'UnhighlightAll', change: buttonChange, checked: true\n });\n radioButton.appendTo('#UnhighlightAll');\n\n radioButton = new ej.buttons.RadioButton({ label: 'Incoming connections', change: buttonChange, name: 'radio', value: 'LinksInto' });\n radioButton.appendTo('#LinksInto');\n\n radioButton = new ej.buttons.RadioButton({ label: 'Outgoing connections', change: buttonChange, name: 'radio', value: 'LinksOutOf' });\n radioButton.appendTo('#LinksOutOf');\n\n radioButton = new ej.buttons.RadioButton({ label: 'Incoming and outgoing connections', change: buttonChange, name: 'radio', value: 'LinksConnected' });\n radioButton.appendTo('#LinksConnected');\n\n radioButton = new ej.buttons.RadioButton({ label: 'Incoming nodes', change: buttonChange, name: 'radio', value: 'NodesInto' });\n radioButton.appendTo('#NodesInto');\n\n radioButton = new ej.buttons.RadioButton({ label: 'Outgoing nodes', change: buttonChange, name: 'radio', value: 'NodesOutOf' });\n radioButton.appendTo('#NodesOutOf');\n\n radioButton = new ej.buttons.RadioButton({ label: 'Incoming and outgoing nodes', change: buttonChange, name: 'radio', value: 'NodesConnected' });\n radioButton.appendTo('#NodesConnected');\n\n radioButton = new ej.buttons.RadioButton({ label: 'Adjacent nodes', change: buttonChange, name: 'radio', value: 'NodesReachable' });\n radioButton.appendTo('#NodesReachable');\n\n\n function buttonChange(args) {\n currentButton = args.event.srcElement.id;\n applyChanges(args.event.srcElement.id);\n }\n\n function applyChanges(id) {\n Unhighlight();\n switch (id) {\n case 'LinksInto':\n linkedIn();\n break;\n case 'LinksOutOf':\n LinksOut();\n break;\n case 'LinksConnected':\n LinksConnector();\n break;\n case 'NodesInto':\n NodesIn();\n break;\n case 'NodesOutOf':\n NodesOut();\n break;\n case 'NodesConnected':\n NodesConnect();\n break;\n case 'NodesReachable':\n NodeReachable();\n break;\n }\n }\n function linkedIn() {\n if (diagram.selectedItems.nodes.length) {\n var nodes = diagram.selectedItems.nodes[0].inEdges;\n for (var i = 0; i < nodes.length; i++) {\n var index = diagram.connectors.indexOf(diagram.nameTable[nodes[i]]);\n highLightedObjects.push(nodes[i]);\n diagram.connectors[index].style.strokeColor = '#1413F8';\n diagram.connectors[index].targetDecorator.style.strokeColor = '#1413F8';\n diagram.connectors[index].targetDecorator.style.fill = '#1413F8';\n diagram.dataBind();\n }\n }\n }\n function LinksOut() {\n if (diagram.selectedItems.nodes.length) {\n var node = diagram.selectedItems.nodes[0].outEdges;\n for (var i = 0; i < node.length; i++) {\n var index = diagram.connectors.indexOf(diagram.nameTable[node[i]]);\n highLightedObjects.push(node[i]);\n diagram.connectors[index].style.strokeColor = '#1413F8';\n diagram.connectors[index].targetDecorator.style.strokeColor = '#1413F8';\n diagram.connectors[index].targetDecorator.style.fill = '#1413F8';\n diagram.dataBind();\n }\n }\n }\n function LinksConnector() {\n LinksOut();\n linkedIn();\n }\n function NodesIn() {\n if (diagram.selectedItems.nodes.length) {\n var node = diagram.selectedItems.nodes[0].inEdges;\n for (var i = 0; i < node.length; i++) {\n var nodeId = diagram.nameTable[node[i]].sourceID;\n highLightedObjects.push(nodeId);\n var index = diagram.nodes.indexOf(diagram.nameTable[nodeId]);\n diagram.nodes[index].style.strokeColor = '#1413F8';\n diagram.dataBind();\n }\n }\n }\n function NodesOut() {\n if (diagram.selectedItems.nodes.length) {\n var node = diagram.selectedItems.nodes[0].outEdges;\n for (var i = 0; i < node.length; i++) {\n var nodeId = diagram.nameTable[node[i]].targetID;\n highLightedObjects.push(nodeId);\n var index = diagram.nodes.indexOf(diagram.nameTable[nodeId]);\n diagram.nodes[index].style.strokeColor = '#1413F8';\n diagram.dataBind();\n }\n }\n }\n function NodesConnect() {\n NodesOut();\n NodesIn();\n }\n function NodeReachable() {\n if (diagram.selectedItems.nodes.length) {\n var connectors_1 = diagram.selectedItems.nodes[0].outEdges;\n var nodeList = foundNode(connectors_1, []);\n for (var i = 0; i < nodeList.length; i++) {\n var index = diagram.connectors.indexOf(diagram.nameTable[nodeList[i]]);\n highLightedObjects.push(nodeList[i]);\n diagram.connectors[index].style.strokeColor = '#1413F8';\n diagram.connectors[index].targetDecorator.style.strokeColor = '#1413F8';\n diagram.connectors[index].targetDecorator.style.fill = '#1413F8';\n diagram.dataBind();\n }\n }\n }\n function foundNode(list, nodeList) {\n for (var i = 0; i < list.length; i++) {\n var connector = diagram.nameTable[list[i]];\n if (nodeList.indexOf(connector.id) > -1) {\n break;\n }\n if (!connector.annotations[0] || (connector.annotations[0] && connector.annotations[0].content !== 'No')) {\n nodeList.push(connector.id);\n }\n if (diagram.nameTable[connector.targetID].outEdges.length) {\n if (list.indexOf(connector.targetID) === -1) {\n foundNode(diagram.nameTable[connector.targetID].outEdges, nodeList);\n }\n }\n }\n return nodeList;\n }\n function Unhighlight() {\n for (var i = highLightedObjects.length - 1; i >= 0; i--) {\n if (diagram.nameTable[highLightedObjects[i]] instanceof ej.diagrams.Node) {\n var index = diagram.nodes.indexOf(diagram.nameTable[highLightedObjects[i]]);\n diagram.nodes[index].style.strokeColor = '#E8DFB6';\n diagram.dataBind();\n }\n else {\n var firstIndex = diagram.connectors.indexOf(diagram.nameTable[highLightedObjects[i]]);\n diagram.connectors[firstIndex].style.strokeColor = '#8D8D8D';\n diagram.connectors[firstIndex].targetDecorator.style.strokeColor = '#8D8D8D';\n diagram.connectors[firstIndex].targetDecorator.style.fill = '#8D8D8D';\n diagram.dataBind();\n }\n }\n highLightedObjects = [];\n }\n\n diagram.selectionChange = function (arg) {\n applyChanges(currentButton);\n };\n diagram.select([diagram.nodes[2]]);\n\n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n \n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n
","index.js":"{{ripple}}\nvar diagram;\nfunction CreateConnector(\n name, source, target, content, type,\n direction, targePort, length) {\n var connector = {};\n connector.id = name;\n connector.sourceID = source;\n connector.targetID = target;\n connector.style = { strokeWidth: 2 };\n var annotation = {};\n annotation.content = content;\n annotation.style = { fill: 'white' };\n connector.annotations = [annotation];\n connector.style.strokeColor = '#8D8D8D';\n connector.targetDecorator = {};\n connector.targetDecorator.style = {};\n connector.targetDecorator.style.strokeColor = '#8D8D8D';\n connector.targetDecorator.style.fill = '#8D8D8D';\n if (targePort) {\n connector.targetPortID = targePort;\n }\n var segment = {};\n if (type) {\n connector.type = type;\n segment.direction = direction;\n segment.type = type;\n segment.length = length;\n connector.segments = [segment];\n }\n return connector;\n}\n\nfunction CreateNodes(\n name, offsetX, offsetY, shape, content,\n width, height, ports) {\n var node = {};\n node.id = name;\n node.offsetX = offsetX;\n node.width = 150;\n node.height = 50;\n node.offsetY = offsetY;\n var annotations = {};\n annotations.content = content;\n node.annotations = [annotations];\n node.shape = { type: 'Flow', shape: shape };\n node.style = { fill: '#FBF6E1', strokeColor: '#E8DFB6', strokeWidth: 2 };\n if (ports) {\n node.ports = ports;\n }\n return node;\n}\n\n var selectedButton = 'LinksConnected';\n var nodes = [];\n var port1 = { id: 'port1', offset: { x: 0.5, y: 1 } };\n var port = { id: 'port', offset: { x: 1, y: 0.5 } };\n nodes.push(CreateNodes('node1', 100, 125, 'Terminator', 'Begin', 100, 35));\n nodes.push(CreateNodes('node2', 300, 125, 'Process', 'Specify collection', 120, 25, [port]));\n nodes.push(CreateNodes('node3', 500, 125, 'Decision', 'Particulars \\n required?', 100, 50, [port1]));\n nodes.push(CreateNodes('node4', 730, 125, 'Process', 'Specify particulars', 90, 25));\n nodes.push(CreateNodes('node5', 500, 225, 'Process', 'Design collection', 100, 25, [port]));\n nodes.push(CreateNodes('node6', 500, 320, 'Process', 'Cluster of events', 100, 25));\n nodes.push(CreateNodes('node7', 500, 420, 'Process', 'Start the process', 100, 25));\n nodes.push(CreateNodes('node8', 730, 320, 'Process', 'Record and analyze \\n results', 170, 25, [port]));\n nodes.push(CreateNodes('node9', 730, 420, 'Terminator', 'End ', 100, 35));\n\n var connectors = [];\n connectors.push(CreateConnector('connector1', 'node1', 'node2', ''));\n connectors.push(CreateConnector('connector2', 'node2', 'node3', ''));\n connectors.push(CreateConnector('connector3', 'node3', 'node4', 'Yes'));\n connectors.push(CreateConnector('connector4', 'node3', 'node5', 'No'));\n connectors.push(CreateConnector('connector5', 'node5', 'node6', ''));\n connectors.push(CreateConnector('connector6', 'node6', 'node7', ''));\n connectors.push(CreateConnector('connector7', 'node8', 'node6', ''));\n connectors.push(CreateConnector('connector8', 'node7', 'node9', ''));\n connectors.push(CreateConnector('connector10', 'node4', 'node5', '', 'Orthogonal', 'Bottom', 'port', 220));\n\n //initialization of the Diagram.\n diagram = new ej.diagrams.Diagram({\n width: '100%', height: '600px', nodes: nodes, connectors: connectors,\n snapSettings: { constraints: ej.diagrams.SnapConstraints.None }\n });\n diagram.appendTo('#diagram');\n\n var highLightedObjects = [];\n var radioButton = new ej.buttons.RadioButton({\n label: 'None', name: 'radio', value: 'UnhighlightAll', change: buttonChange,\n });\n radioButton.appendTo('#UnhighlightAll');\n\n radioButton = new ej.buttons.RadioButton({ label: 'Incoming connections', change: buttonChange, name: 'radio', value: 'LinksInto' });\n radioButton.appendTo('#LinksInto');\n\n radioButton = new ej.buttons.RadioButton({ label: 'Outgoing connections', change: buttonChange, name: 'radio', value: 'LinksOutOf' });\n radioButton.appendTo('#LinksOutOf');\n\n radioButton = new ej.buttons.RadioButton({ label: 'Incoming and outgoing connections', change: buttonChange, name: 'radio', value: 'LinksConnected', checked: true });\n radioButton.appendTo('#LinksConnected');\n\n radioButton = new ej.buttons.RadioButton({ label: 'Incoming nodes', change: buttonChange, name: 'radio', value: 'NodesInto' });\n radioButton.appendTo('#NodesInto');\n\n radioButton = new ej.buttons.RadioButton({ label: 'Outgoing nodes', change: buttonChange, name: 'radio', value: 'NodesOutOf' });\n radioButton.appendTo('#NodesOutOf');\n\n radioButton = new ej.buttons.RadioButton({ label: 'Incoming and outgoing nodes', change: buttonChange, name: 'radio', value: 'NodesConnected' });\n radioButton.appendTo('#NodesConnected');\n\n radioButton = new ej.buttons.RadioButton({ label: 'Adjacent nodes', change: buttonChange, name: 'radio', value: 'NodesReachable' });\n radioButton.appendTo('#NodesReachable');\n\n\n function buttonChange(args) { \n applyChanges(args.event.srcElement.id);\n selectedButton = args.event.srcElement.id;\n }\n\n function applyChanges(id) {\n Unhighlight();\n switch (id) {\n case 'LinksInto':\n linkedIn();\n break;\n case 'LinksOutOf':\n LinksOut();\n break;\n case 'LinksConnected':\n LinksConnector();\n break;\n case 'NodesInto':\n NodesIn();\n break;\n case 'NodesOutOf':\n NodesOut();\n break;\n case 'NodesConnected':\n NodesConnect();\n break;\n case 'NodesReachable':\n NodeReachable();\n break;\n }\n }\n function linkedIn() {\n if (diagram.selectedItems.nodes.length) {\n var nodes = diagram.selectedItems.nodes[0].inEdges;\n for (var i = 0; i < nodes.length; i++) {\n var index = diagram.connectors.indexOf(diagram.nameTable[nodes[i]]);\n highLightedObjects.push(nodes[i]);\n diagram.connectors[index].style.strokeColor = '#1413F8';\n diagram.connectors[index].targetDecorator.style.strokeColor = '#1413F8';\n diagram.connectors[index].targetDecorator.style.fill = '#1413F8';\n diagram.dataBind();\n }\n }\n }\n function LinksOut() {\n if (diagram.selectedItems.nodes.length) {\n var node = diagram.selectedItems.nodes[0].outEdges;\n for (var i = 0; i < node.length; i++) {\n var index = diagram.connectors.indexOf(diagram.nameTable[node[i]]);\n highLightedObjects.push(node[i]);\n diagram.connectors[index].style.strokeColor = '#1413F8';\n diagram.connectors[index].targetDecorator.style.strokeColor = '#1413F8';\n diagram.connectors[index].targetDecorator.style.fill = '#1413F8';\n diagram.dataBind();\n }\n }\n }\n function LinksConnector() {\n LinksOut();\n linkedIn();\n }\n function NodesIn() {\n if (diagram.selectedItems.nodes.length) {\n var node = diagram.selectedItems.nodes[0].inEdges;\n for (var i = 0; i < node.length; i++) {\n var nodeId = diagram.nameTable[node[i]].sourceID;\n highLightedObjects.push(nodeId);\n var index = diagram.nodes.indexOf(diagram.nameTable[nodeId]);\n diagram.nodes[index].style.strokeColor = '#1413F8';\n diagram.dataBind();\n }\n }\n }\n function NodesOut() {\n if (diagram.selectedItems.nodes.length) {\n var node = diagram.selectedItems.nodes[0].outEdges;\n for (var i = 0; i < node.length; i++) {\n var nodeId = diagram.nameTable[node[i]].targetID;\n highLightedObjects.push(nodeId);\n var index = diagram.nodes.indexOf(diagram.nameTable[nodeId]);\n diagram.nodes[index].style.strokeColor = '#1413F8';\n diagram.dataBind();\n }\n }\n }\n function NodesConnect() {\n NodesOut();\n NodesIn();\n }\n function NodeReachable() {\n if (diagram.selectedItems.nodes.length) {\n var connectors_1 = diagram.selectedItems.nodes[0].outEdges;\n var nodeList = foundNode(connectors_1, []);\n for (var i = 0; i < nodeList.length; i++) {\n var index = diagram.connectors.indexOf(diagram.nameTable[nodeList[i]]);\n highLightedObjects.push(nodeList[i]);\n diagram.connectors[index].style.strokeColor = '#1413F8';\n diagram.connectors[index].targetDecorator.style.strokeColor = '#1413F8';\n diagram.connectors[index].targetDecorator.style.fill = '#1413F8';\n diagram.dataBind();\n }\n }\n }\n function foundNode(list, nodeList) {\n for (var i = 0; i < list.length; i++) {\n var connector = diagram.nameTable[list[i]];\n if (nodeList.indexOf(connector.id) > -1) {\n break;\n }\n if (!connector.annotations[0] || (connector.annotations[0] && connector.annotations[0].content !== 'No')) {\n nodeList.push(connector.id);\n }\n if (diagram.nameTable[connector.targetID].outEdges.length) {\n if (list.indexOf(connector.targetID) === -1) {\n foundNode(diagram.nameTable[connector.targetID].outEdges, nodeList);\n }\n }\n }\n return nodeList;\n }\n function Unhighlight() {\n for (var i = highLightedObjects.length - 1; i >= 0; i--) {\n if (diagram.nameTable[highLightedObjects[i]] instanceof ej.diagrams.Node) {\n var index = diagram.nodes.indexOf(diagram.nameTable[highLightedObjects[i]]);\n diagram.nodes[index].style.strokeColor = '#E8DFB6';\n diagram.dataBind();\n }\n else {\n var firstIndex = diagram.connectors.indexOf(diagram.nameTable[highLightedObjects[i]]);\n diagram.connectors[firstIndex].style.strokeColor = '#8D8D8D';\n diagram.connectors[firstIndex].targetDecorator.style.strokeColor = '#8D8D8D';\n diagram.connectors[firstIndex].targetDecorator.style.fill = '#8D8D8D';\n diagram.dataBind();\n }\n }\n highLightedObjects = [];\n }\n\n diagram.selectionChange = function (arg) {\n applyChanges(selectedButton);\n };\n diagram.select([diagram.nodes[2]]);\n\n"}
\ No newline at end of file
diff --git a/src/diagram/getting-started-annotation-stack.json b/src/diagram/getting-started-annotation-stack.json
index 82019543..b711bc96 100644
--- a/src/diagram/getting-started-annotation-stack.json
+++ b/src/diagram/getting-started-annotation-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n \n
\n
\n \n
\n
\n
\n
\n
\n Appearance\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n Templates\n
\n
\n \n
\n
\n
\n
\n Behaviour\n
\n
\n \n
\n
\n
\n
\n
\n\n
","index.js":"{{ripple}}ej.diagrams.Diagram.Inject(ej.diagrams.UndoRedo);\n/**\n * Getting started - Annotation\n */\n// tslint:disable-next-line:max-func-body-length\n\nvar diagram;\nvar fontSize;\nvar fontColor;\nvar fontFamily;\nvar bold;\nvar italic;\nvar underLine;\nvar template;\nvar labelConstraints;\nvar underline;\n\n\n//Apply the appearence of the Annotation \nfunction updateAnnotation(value, fontSize, fontFamily) {\n for (var i = 0; i < diagram.selectedItems.nodes.length; i++) {\n var node = diagram.selectedItems.nodes[i];\n for (var j = 0; j < node.annotations.length; j++) {\n var annotationStyle = node.annotations[j].style;\n if (value === 'fontsize') {\n annotationStyle.fontSize = fontSize.value;\n } else if (value === 'underline') {\n annotationStyle.textDecoration = 'Underline';\n } else if (value === 'fontfamily') {\n annotationStyle.fontFamily = fontFamily.value.toString();\n } else if (value === 'bold') {\n annotationStyle.bold = true;\n } else if (value === 'italic') {\n annotationStyle.italic = true;\n } else if (value === 'template') {\n if (fontFamily === 'none') {\n node.annotations[j].template = '';\n node.annotations[j].width = undefined;\n node.annotations[j].height = undefined;\n } else {\n node.annotations[j].width = 25;\n node.annotations[j].height = 25;\n node.annotations[j].template =\n ' ';\n }\n } else if (value === 'interaction') {\n node.annotations[j].constraints = node.annotations[j].constraints ^ ej.diagrams.AnnotationConstraints.Interaction;\n }\n diagram.dataBind();\n }\n }\n}\n//Update the Annotation Position based on the selection\nfunction updatePosition(id) {\n var target = document.getElementById(id);\n for (var i = 0; i < diagram.selectedItems.nodes.length; i++) {\n var node = diagram.selectedItems.nodes[i];\n for (var j = 0; j < node.annotations.length; j++) {\n var annotation = node.annotations[j];\n switch (target.id) {\n case 'left':\n setAnnotationPosition(annotation, 0, 0, 'Top', 'Left', target);\n break;\n case 'right':\n setAnnotationPosition(annotation, 1, 0, 'Top', 'Right', target);\n break;\n case 'bottoml':\n setAnnotationPosition(annotation, 0, 1, 'Bottom', 'Left', target);\n break;\n case 'bottomr':\n setAnnotationPosition(annotation, 1, 1, 'Bottom', 'Right', target);\n break;\n case 'center':\n setAnnotationPosition(annotation, 0.5, 0.5, 'Center', 'Center', target);\n break;\n case 'bottomcenter_top':\n setAnnotationPosition(annotation, 0.5, 1, 'Top', 'Center', target);\n break;\n }\n }\n }\n}\n//set the Annotation Position\nfunction setAnnotationPosition(annotation, offsetX, offsetY, vAlignment, hAlignment, target) {\n annotation.offset.x = offsetX;\n annotation.offset.y = offsetY;\n annotation.verticalAlignment = vAlignment;\n annotation.horizontalAlignment = hAlignment;\n if (vAlignment === 'Top' && hAlignment === 'Left') {\n annotation.margin = { left: 3, top: 3 };\n } else if (vAlignment === 'Top' && hAlignment === 'Right') {\n annotation.margin = { right: 3, top: 3 };\n } else if (vAlignment === 'Bottom' && hAlignment === 'Left') {\n annotation.margin = { left: 3, bottom: 3 };\n } else if (vAlignment === 'Bottom' && hAlignment === 'Right') {\n annotation.margin = { right: 3, bottom: 3 };\n }\n target.classList.add('e-selected-style');\n}\n//Enable or disable the property panel\nfunction enableOptions(arg) {\n var appearance = document.getElementById('propertypanel');\n var selectedElement = document.getElementsByClassName('e-remove-selection');\n if (arg.newValue) {\n if (arg.newValue[0] instanceof ej.diagrams.Node) {\n if (selectedElement.length) {\n selectedElement[0].classList.remove('e-remove-selection');\n }\n } else {\n if (!appearance.classList.contains('e-remove-selection')) {\n appearance.classList.add('e-remove-selection');\n }\n\n }\n }\n}\n\n\n //Click event for Appearance of the Property Panel\n document.getElementById('appearance').onclick = function (args) {\n var target = args.target;\n var selectedElement = document.getElementsByClassName('e-selected-style');\n if (selectedElement.length) {\n selectedElement[0].classList.remove('e-selected-style');\n }\n if (target.className === 'image-pattern-style') {\n updatePosition(target.id);\n }\n };\n\n var bounds = document.getElementsByClassName('content-wrapper')[0].getBoundingClientRect();\n var centerX = (bounds.width / 2);\n //Initializes the nodes for the diagram\n var nodes = [\n {\n id: 'industry', offsetX: centerX, offsetY: 250,\n annotations: [{ content: 'Industry Competitors' }]\n },\n {\n id: 'potential', offsetX: centerX, offsetY: 110,\n annotations: [{ content: 'Potential Entrants' }]\n },\n {\n id: 'suplier', offsetX: centerX - 190, offsetY: 250,\n annotations: [{ content: 'Suppliers' }]\n },\n {\n id: 'substitutes', offsetX: centerX, offsetY: 390,\n annotations: [{ content: 'Substitutes' }]\n },\n {\n id: 'buyers', offsetX: centerX + 190, offsetY: 250,\n annotations: [{ content: 'Buyers' }]\n }\n ];\n //Initializes the connector for the diagram\n var connectors = [\n {\n id: 'connector1', sourceID: 'potential', targetID: 'industry'\n }, {\n id: 'connector2', sourceID: 'suplier', targetID: 'industry'\n }, {\n id: 'connector3', sourceID: 'substitutes', targetID: 'industry',\n }, {\n id: 'connector4', sourceID: 'buyers', targetID: 'industry'\n }, {\n id: 'connector5', sourceID: 'potential', targetID: 'buyers',\n segments: [{ direction: 'Right', type: 'Orthogonal', length: 60 }], targetDecorator: { shape: 'None' }\n }, {\n id: 'connector6', sourceID: 'buyers', targetID: 'substitutes',\n segments: [{ direction: 'Bottom', type: 'Orthogonal', length: 100 }], targetDecorator: { shape: 'None' }\n }, {\n id: 'connector7', targetID: 'suplier', sourceID: 'substitutes',\n segments: [{ direction: 'Left', type: 'Orthogonal', length: 60 }], targetDecorator: { shape: 'None' }\n }, {\n id: 'connector9', sourceID: 'suplier', targetID: 'potential',\n segments: [{ direction: 'Top', type: 'Orthogonal', length: 100 }], targetDecorator: { shape: 'None' }\n }\n ];\n //Initializes diagram control\n diagram = new ej.diagrams.Diagram({\n width: '100%', height: '645px', nodes: nodes, connectors: connectors,\n snapSettings: { constraints: ej.diagrams.SnapConstraints.None },\n selectionChange: function (arg) {\n if (arg.state === 'Changed') {\n var selectedElement = document.getElementsByClassName('e-selected-style');\n if (selectedElement.length) {\n selectedElement[0].classList.remove('e-selected-style');\n }\n if (arg.newValue[0]) {\n var node = arg.newValue[0];\n var offset = node.annotations[0].offset;\n if (offset.x === 0 && offset.y === 0) {\n updatePosition('left');\n }\n else if (offset.x === 1 && offset.y === 0) {\n updatePosition('right');\n }\n else if (offset.x === 1 && offset.y === 0) {\n updatePosition('right');\n }\n else if (offset.x === 0 && offset.y === 1) {\n updatePosition('bottoml');\n }\n else if (offset.x === 1 && offset.y === 1) {\n updatePosition('bottomr');\n }\n else if (offset.x === 0.5 && offset.y === 0.5) {\n updatePosition('center');\n }\n else if (offset.x === 0.5 && offset.y === 1) {\n updatePosition('bottomcenter_top');\n }\n }\n enableOptions(arg);\n }\n },\n //Sets the default values of a node\n getNodeDefaults: function (node) {\n var obj = {\n width: 130, height: 50, style: { fill: '#D5EDED', strokeColor: '#7DCFC9', strokeWidth: 1 },\n shape: { cornerRadius: 5 }\n };\n return obj;\n },\n //Sets the default values of a connector\n getConnectorDefaults: function (obj) {\n obj.type = 'Orthogonal';\n obj.constraints = ej.diagrams.ConnectorConstraints.None;\n },\n });\n diagram.appendTo('#diagram');\n diagram.select([diagram.nodes[0]]);\n //Button used to apply for Bold of the Annotation\n bold = new ej.buttons.Button({\n cssClass: 'e-small',\n iconCss: 'e-ddb-icons e-bold',\n });\n bold.appendTo('#bold');\n bold.element.onclick = function () { updateAnnotation('bold'); };\n //Button used to apply for Italic of the Annotation\n italic = new ej.buttons.Button({\n cssClass: 'e-small',\n iconCss: 'e-ddb-icons e-italic'\n });\n italic.appendTo('#italic');\n italic.element.onclick = function () { updateAnnotation('italic'); };\n //NumericTextBox used to apply for Fontsize of the Annotation\n fontSize = new ej.inputs.NumericTextBox({\n value: 0, min: 1,\n max: 8, width: '100%',\n format: '##.##',\n step: 2,\n change: function () { updateAnnotation('fontsize', fontSize); }\n });\n fontSize.appendTo('#fontSize');\n fontSize.dataBind();\n //Colorpicker used to apply for Color of the Annotation\n fontColor = new ej.inputs.ColorPicker({\n value: '#000', change: function (arg) {\n for (var i = 0; i < diagram.selectedItems.nodes.length; i++) {\n var node = diagram.selectedItems.nodes[i];\n for (var j = 0; j < node.annotations.length; j++) {\n node.annotations[j].style.color = arg.currentValue.rgba;\n diagram.dataBind();\n }\n }\n }\n });\n fontColor.appendTo('#fontcolor');\n //Button used to apply for Underline of the Annotation\n underLine = new ej.buttons.Button({\n cssClass: 'e-small',\n iconCss: 'e-ddb-icons e-underline'\n });\n underLine.appendTo('#underline');\n underLine.element.onclick = function () { updateAnnotation('underline'); };\n //FontType Collection\n var fontType = [\n { type: 'Arial', text: 'Arial' },\n { type: 'Aharoni', text: 'Aharoni' },\n { type: 'Bell MT', text: 'Bell MT' },\n { type: 'Fantasy', text: 'Fantasy' },\n { type: 'Times New Roman', text: 'Times New Roman' },\n { type: 'Segoe UI', text: 'Segoe UI' },\n { type: 'Verdana', text: 'Verdana' }\n ];\n //DropDownList used to apply for fontFamily of the Annotation\n fontFamily = new ej.dropdowns.DropDownList({\n dataSource: fontType,\n fields: { value: 'type', text: 'text' }, popupWidth: 150,\n width: '100%', placeholder: 'select a font type',\n index: 0, change: function () {\n updateAnnotation('fontfamily', null, fontFamily);\n }\n });\n fontFamily.appendTo('#fontfamily');\n\n templateList = [\n { value: 'none', text: 'None' },\n { value: 'industry', text: 'Industry Competitors' },\n { value: 'suppliers', text: 'Suppliers' },\n { value: 'potential', text: 'Potential Entrants' },\n { value: 'buyers', text: 'Buyers' },\n { value: 'substitutes', text: 'Substitutes' }\n ];\n\n var template = new ej.dropdowns.DropDownList({\n dataSource: templateList,\n fields: { value: 'value', text: 'text' }, popupWidth: 200,\n width: '100%', placeholder: 'select a template', index: 0,\n change: function (args) {\n updateAnnotation('template', null, args.value.toString());\n }\n });\n template.appendTo('#template');\n\n labelConstraints = new ej.buttons.CheckBox({\n checked: false,\n label: 'Label interaction',\n change: function () {\n updateAnnotation('interaction', null, null);\n }\n });\n labelConstraints.appendTo('#labelConstraints');\n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n \n
\n
\n \n
\n
\n
\n
\n
\n Appearance\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n Templates\n
\n
\n \n
\n
\n
\n
\n Behaviour\n
\n
\n \n
\n
\n
\n
\n
\n\n
","index.js":"{{ripple}}ej.diagrams.Diagram.Inject(ej.diagrams.UndoRedo);\n/**\n * Getting started - Annotation\n */\n// tslint:disable-next-line:max-func-body-length\n\nvar diagram;\nvar fontSize;\nvar fontColor;\nvar fontFamily;\nvar bold;\nvar italic;\nvar underLine;\nvar template;\nvar labelConstraints;\nvar underline;\n\n\n//Apply the appearence of the Annotation \nfunction updateAnnotation(value, fontSize, fontFamily) {\n for (var i = 0; i < diagram.selectedItems.nodes.length; i++) {\n var node = diagram.selectedItems.nodes[i];\n for (var j = 0; j < node.annotations.length; j++) {\n var annotationStyle = node.annotations[j].style;\n if (value === 'fontsize') {\n annotationStyle.fontSize = fontSize.value;\n } else if (value === 'underline') {\n annotationStyle.textDecoration = 'Underline';\n } else if (value === 'fontfamily') {\n annotationStyle.fontFamily = fontFamily.value.toString();\n } else if (value === 'bold') {\n annotationStyle.bold = true;\n } else if (value === 'italic') {\n annotationStyle.italic = true;\n } else if (value === 'template') {\n if (fontFamily === 'none') {\n node.annotations[j].template = '';\n node.annotations[j].width = undefined;\n node.annotations[j].height = undefined;\n } else {\n node.annotations[j].width = 25;\n node.annotations[j].height = 25;\n node.annotations[j].template =\n ' ';\n }\n } else if (value === 'interaction') {\n node.annotations[j].constraints = node.annotations[j].constraints ^ ej.diagrams.AnnotationConstraints.Interaction;\n }\n diagram.dataBind();\n }\n }\n}\n//Update the Annotation Position based on the selection\nfunction updatePosition(id) {\n var target = document.getElementById(id);\n for (var i = 0; i < diagram.selectedItems.nodes.length; i++) {\n var node = diagram.selectedItems.nodes[i];\n for (var j = 0; j < node.annotations.length; j++) {\n var annotation = node.annotations[j];\n switch (target.id) {\n case 'left':\n setAnnotationPosition(annotation, 0, 0, 'Top', 'Left', target);\n break;\n case 'right':\n setAnnotationPosition(annotation, 1, 0, 'Top', 'Right', target);\n break;\n case 'bottoml':\n setAnnotationPosition(annotation, 0, 1, 'Bottom', 'Left', target);\n break;\n case 'bottomr':\n setAnnotationPosition(annotation, 1, 1, 'Bottom', 'Right', target);\n break;\n case 'center':\n setAnnotationPosition(annotation, 0.5, 0.5, 'Center', 'Center', target);\n break;\n case 'bottomcenter_top':\n setAnnotationPosition(annotation, 0.5, 1, 'Top', 'Center', target);\n break;\n }\n }\n }\n}\n//set the Annotation Position\nfunction setAnnotationPosition(annotation, offsetX, offsetY, vAlignment, hAlignment, target) {\n annotation.offset.x = offsetX;\n annotation.offset.y = offsetY;\n annotation.verticalAlignment = vAlignment;\n annotation.horizontalAlignment = hAlignment;\n if (vAlignment === 'Top' && hAlignment === 'Left') {\n annotation.margin = { left: 3, top: 3 };\n } else if (vAlignment === 'Top' && hAlignment === 'Right') {\n annotation.margin = { right: 3, top: 3 };\n } else if (vAlignment === 'Bottom' && hAlignment === 'Left') {\n annotation.margin = { left: 3, bottom: 3 };\n } else if (vAlignment === 'Bottom' && hAlignment === 'Right') {\n annotation.margin = { right: 3, bottom: 3 };\n }\n target.classList.add('e-selected-style');\n}\n//Enable or disable the property panel\nfunction enableOptions(arg) {\n var appearance = document.getElementById('propertypanel');\n var selectedElement = document.getElementsByClassName('e-remove-selection');\n if (arg.newValue) {\n if (arg.newValue[0] instanceof ej.diagrams.Node) {\n if (selectedElement.length) {\n selectedElement[0].classList.remove('e-remove-selection');\n }\n } else {\n if (!appearance.classList.contains('e-remove-selection')) {\n appearance.classList.add('e-remove-selection');\n }\n\n }\n }\n}\n\n\n //Click event for Appearance of the Property Panel\n document.getElementById('appearance').onclick = function (args) {\n var target = args.target;\n var selectedElement = document.getElementsByClassName('e-selected-style');\n if (selectedElement.length) {\n selectedElement[0].classList.remove('e-selected-style');\n }\n if (target.className === 'image-pattern-style') {\n updatePosition(target.id);\n }\n };\n\n var bounds = document.getElementsByClassName('content-wrapper')[0].getBoundingClientRect();\n var centerX = (bounds.width / 2);\n //Initializes the nodes for the diagram\n var nodes = [\n {\n id: 'industry', offsetX: centerX, offsetY: 250,\n annotations: [{ content: 'Industry Competitors' }]\n },\n {\n id: 'potential', offsetX: centerX, offsetY: 110,\n annotations: [{ content: 'Potential Entrants' }]\n },\n {\n id: 'suplier', offsetX: centerX - 190, offsetY: 250,\n annotations: [{ content: 'Suppliers' }]\n },\n {\n id: 'substitutes', offsetX: centerX, offsetY: 390,\n annotations: [{ content: 'Substitutes' }]\n },\n {\n id: 'buyers', offsetX: centerX + 190, offsetY: 250,\n annotations: [{ content: 'Buyers' }]\n }\n ];\n //Initializes the connector for the diagram\n var connectors = [\n {\n id: 'connector1', sourceID: 'potential', targetID: 'industry'\n }, {\n id: 'connector2', sourceID: 'suplier', targetID: 'industry'\n }, {\n id: 'connector3', sourceID: 'substitutes', targetID: 'industry',\n }, {\n id: 'connector4', sourceID: 'buyers', targetID: 'industry'\n }, {\n id: 'connector5', sourceID: 'potential', targetID: 'buyers',\n segments: [{ direction: 'Right', type: 'Orthogonal', length: 60 }], targetDecorator: { shape: 'None' }\n }, {\n id: 'connector6', sourceID: 'buyers', targetID: 'substitutes',\n segments: [{ direction: 'Bottom', type: 'Orthogonal', length: 100 }], targetDecorator: { shape: 'None' }\n }, {\n id: 'connector7', targetID: 'suplier', sourceID: 'substitutes',\n segments: [{ direction: 'Left', type: 'Orthogonal', length: 60 }], targetDecorator: { shape: 'None' }\n }, {\n id: 'connector9', sourceID: 'suplier', targetID: 'potential',\n segments: [{ direction: 'Top', type: 'Orthogonal', length: 100 }], targetDecorator: { shape: 'None' }\n }\n ];\n //Initializes diagram control\n diagram = new ej.diagrams.Diagram({\n width: '100%', height: '645px', nodes: nodes, connectors: connectors,\n snapSettings: { constraints: ej.diagrams.SnapConstraints.None },\n selectionChange: function (arg) {\n if (arg.state === 'Changed') {\n var selectedElement = document.getElementsByClassName('e-selected-style');\n if (selectedElement.length) {\n selectedElement[0].classList.remove('e-selected-style');\n }\n if (arg.newValue[0]) {\n var node = arg.newValue[0];\n var offset = node.annotations[0].offset;\n if (offset.x === 0 && offset.y === 0) {\n updatePosition('left');\n }\n else if (offset.x === 1 && offset.y === 0) {\n updatePosition('right');\n }\n else if (offset.x === 1 && offset.y === 0) {\n updatePosition('right');\n }\n else if (offset.x === 0 && offset.y === 1) {\n updatePosition('bottoml');\n }\n else if (offset.x === 1 && offset.y === 1) {\n updatePosition('bottomr');\n }\n else if (offset.x === 0.5 && offset.y === 0.5) {\n updatePosition('center');\n }\n else if (offset.x === 0.5 && offset.y === 1) {\n updatePosition('bottomcenter_top');\n }\n }\n enableOptions(arg);\n }\n },\n //Sets the default values of a node\n getNodeDefaults: function (node) {\n var obj = {\n width: 130, height: 50, style: { fill: '#D5EDED', strokeColor: '#7DCFC9', strokeWidth: 1 },\n shape: { cornerRadius: 5 }\n };\n return obj;\n },\n //Sets the default values of a connector\n getConnectorDefaults: function (obj) {\n obj.type = 'Orthogonal';\n obj.constraints = ej.diagrams.ConnectorConstraints.None;\n },\n });\n diagram.appendTo('#diagram');\n diagram.select([diagram.nodes[0]]);\n //Button used to apply for Bold of the Annotation\n bold = new ej.buttons.Button({\n cssClass: 'e-small',\n iconCss: 'e-ddb-icons e-bold',\n });\n bold.appendTo('#bold');\n bold.element.onclick = function () { updateAnnotation('bold'); };\n //Button used to apply for Italic of the Annotation\n italic = new ej.buttons.Button({\n cssClass: 'e-small',\n iconCss: 'e-ddb-icons e-italic'\n });\n italic.appendTo('#italic');\n italic.element.onclick = function () { updateAnnotation('italic'); };\n //NumericTextBox used to apply for Fontsize of the Annotation\n fontSize = new ej.inputs.NumericTextBox({\n value: 0, min: 1,\n max: 8, width: '100%',\n format: '##.##',\n step: 2,\n change: function () { updateAnnotation('fontsize', fontSize); }\n });\n fontSize.appendTo('#fontSize');\n fontSize.dataBind();\n //Colorpicker used to apply for Color of the Annotation\n fontColor = new ej.inputs.ColorPicker({\n value: '#000', change: function (arg) {\n for (var i = 0; i < diagram.selectedItems.nodes.length; i++) {\n var node = diagram.selectedItems.nodes[i];\n for (var j = 0; j < node.annotations.length; j++) {\n node.annotations[j].style.color = arg.currentValue.rgba;\n diagram.dataBind();\n }\n }\n }\n });\n fontColor.appendTo('#fontcolor');\n //Button used to apply for Underline of the Annotation\n underLine = new ej.buttons.Button({\n cssClass: 'e-small',\n iconCss: 'e-ddb-icons e-underline'\n });\n underLine.appendTo('#underline');\n underLine.element.onclick = function () { updateAnnotation('underline'); };\n //FontType Collection\n var fontType = [\n { type: 'Arial', text: 'Arial' },\n { type: 'Aharoni', text: 'Aharoni' },\n { type: 'Bell MT', text: 'Bell MT' },\n { type: 'Fantasy', text: 'Fantasy' },\n { type: 'Times New Roman', text: 'Times New Roman' },\n { type: 'Segoe UI', text: 'Segoe UI' },\n { type: 'Verdana', text: 'Verdana' }\n ];\n //DropDownList used to apply for fontFamily of the Annotation\n fontFamily = new ej.dropdowns.DropDownList({\n dataSource: fontType,\n fields: { value: 'type', text: 'text' }, popupWidth: 150,\n width: '100%', placeholder: 'select a font type',\n index: 0, change: function () {\n updateAnnotation('fontfamily', null, fontFamily);\n }\n });\n fontFamily.appendTo('#fontfamily');\n\n templateList = [\n { value: 'none', text: 'None' },\n { value: 'industry', text: 'Industry Competitors' },\n { value: 'suppliers', text: 'Suppliers' },\n { value: 'potential', text: 'Potential Entrants' },\n { value: 'buyers', text: 'Buyers' },\n { value: 'substitutes', text: 'Substitutes' }\n ];\n\n var template = new ej.dropdowns.DropDownList({\n dataSource: templateList,\n fields: { value: 'value', text: 'text' }, popupWidth: 200,\n width: '100%', placeholder: 'select a template', index: 0,\n change: function (args) {\n updateAnnotation('template', null, args.value.toString());\n }\n });\n template.appendTo('#template');\n\n labelConstraints = new ej.buttons.CheckBox({\n checked: false,\n label: 'Label interaction',\n change: function () {\n updateAnnotation('interaction', null, null);\n }\n });\n labelConstraints.appendTo('#labelConstraints');\n"}
\ No newline at end of file
diff --git a/src/diagram/getting-started-node-stack.json b/src/diagram/getting-started-node-stack.json
index 57fb8f44..cc513397 100644
--- a/src/diagram/getting-started-node-stack.json
+++ b/src/diagram/getting-started-node-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n \n\n
\n
\n \n
\n
\n Appearance\n
\n
\n
\n
\n
\n
\n Behavior\n
\n
\n \n
\n
\n \n
\n
\n
\n\n
","index.js":"{{ripple}}ej.diagrams.Diagram.Inject(ej.diagrams.UndoRedo);\n\nvar diagram;\n\n/**\n * Getting started - nodes\n */\n//Enable or disable the Constraints for Node.\nfunction updateAnnotation(args) {\n for (var i = 0; i < diagram.nodes.length; i++) {\n var node = diagram.nodes[i];\n if (args.event.target.id === 'lock') {\n if (args.checked) {\n node.constraints &= ~(ej.diagrams.NodeConstraints.Resize | ej.diagrams.NodeConstraints.Rotate | ej.diagrams.NodeConstraints.Drag);\n node.constraints |= ej.diagrams.NodeConstraints.ReadOnly;\n } else {\n node.constraints |= ej.diagrams.NodeConstraints.Default & ~(ej.diagrams.NodeConstraints.ReadOnly);\n }\n } else {\n if (element.checked) {\n node.constraints |= ej.diagrams.NodeConstraints.AspectRatio;\n } else {\n node.constraints &= ~ej.diagrams.NodeConstraints.AspectRatio;\n }\n }\n diagram.dataBind();\n }\n}\n//Set customStyle for Node.\nfunction applyStyle(node, width, array, con, type) {\n node.style.fill = '#37909A';\n node.style.strokeWidth = width;\n node.style.strokeColor = '#024249';\n node.style.strokeDashArray = array;\n if (!type || type === 'None') {\n node.style.gradient.type = 'None';\n } else {\n var gradient;\n gradient = {\n cx: 50, cy: 50, fx: 50, fy: 50,\n stops: [{ color: '#00555b', offset: 0 },\n { color: '#37909A', offset: 90 }],\n type: 'Radial'\n };\n node.style.gradient = gradient;\n }\n if (con & ej.diagrams.NodeConstraints.Shadow) {\n node.shadow = { angle: 45, distance: 15, opacity: 0.3, color: 'grey' };\n node.constraints |= con;\n } else {\n node.constraints &= con;\n }\n diagram.dataBind();\n}\n\n// tslint:disable-next-line:max-func-body-length\n\n var nodes = [\n { id: 'sdlc', offsetX: 300, offsetY: 288, annotations: [{ content: 'SDLC' }] },\n { id: 'support', offsetX: 150, offsetY: 250, annotations: [{ content: 'Support' }] },\n { id: 'analysis', offsetX: 300, offsetY: 150, annotations: [{ content: 'Analysis' }] },\n { id: 'design', offsetX: 450, offsetY: 250, annotations: [{ content: 'Design' }] },\n { id: 'implement', offsetX: 400, offsetY: 400, annotations: [{ content: 'implement' }] },\n { id: 'deploy', offsetX: 200, offsetY: 400, annotations: [{ content: 'Deploy' }] }\n ];\n var connections = [\n { id: 'connector1', sourceID: 'analysis', targetID: 'design' },\n { id: 'connector2', sourceID: 'design', targetID: 'implement' },\n { id: 'connector3', sourceID: 'implement', targetID: 'deploy' },\n { id: 'connector4', sourceID: 'deploy', targetID: 'support' },\n { id: 'connector5', sourceID: 'support', targetID: 'analysis' }\n ];\n //Initialize the diagram\n diagram = new ej.diagrams.Diagram({\n width: '100%', height: '645px', nodes: nodes, connectors: connections,\n //Sets the default values of a nodes\n getNodeDefaults: function (obj) {\n obj.width = 100;\n obj.height = 100;\n obj.shape = { shape: 'Ellipse' };\n obj.style = { fill: '#37909A', strokeColor: '#024249' };\n obj.annotations[0].margin = { left: 10, right: 10 };\n obj.annotations[0].style = { color: 'white', fill: 'none', strokeColor: 'none' };\n return obj;\n },\n //Sets the default values of a Connectors\n getConnectorDefaults: function (connector) {\n connector.targetDecorator.style = { fill: '#024249', strokeColor: '#024249' };\n return { style: { strokeColor: '#024249', strokeWidth: 2 } };\n },\n snapSettings: { constraints: ej.diagrams.SnapConstraints.None }\n });\n diagram.appendTo('#diagram');\n\n //Enable or disable the AspectRatio for Node.\n var element = new ej.buttons.CheckBox({\n checked: false, label: 'Aspect ratio',\n change: updateAnnotation\n });\n element.appendTo('#aspectRatio');\n //Enable or disable the Interaction for Node.\n var lockElement = new ej.buttons.CheckBox({\n checked: false, label: 'Lock',\n change: updateAnnotation\n });\n lockElement.appendTo('#lock');\n\n //Click event for Appearance of the Property Panel\n document.getElementById('appearance').onclick = function (args) {\n var target = args.target;\n\n if (target.className === 'image-pattern-style') {\n for (var i = 0; i < diagram.nodes.length; i++) {\n var node = diagram.nodes[i];\n switch (target.id) {\n case 'preview0':\n applyStyle(node, 0, '', ~ej.diagrams.NodeConstraints.Shadow, undefined);\n break;\n case 'preview1':\n applyStyle(node, 2, '', ~ej.diagrams.NodeConstraints.Shadow, undefined);\n break;\n case 'preview2':\n applyStyle(node, 2, '5 5', ~ej.diagrams.NodeConstraints.Shadow, undefined);\n break;\n case 'preview3':\n applyStyle(node, 2, '5 5', ~ej.diagrams.NodeConstraints.Shadow, 'Radial');\n break;\n case 'preview4':\n applyStyle(node, 2, '5 5', ej.diagrams.NodeConstraints.Shadow, undefined);\n break;\n }\n\n }\n }\n };\n\n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n \n\n
\n
\n \n
\n
\n Appearance\n
\n
\n
\n
\n
\n
\n Behavior\n
\n
\n \n
\n
\n \n
\n
\n
\n\n
","index.js":"{{ripple}}ej.diagrams.Diagram.Inject(ej.diagrams.UndoRedo);\n\nvar diagram;\nvar element;\n\n/**\n * Getting started - nodes\n */\n//Enable or disable the Constraints for Node.\nfunction updateAnnotation(args) {\n for (var i = 0; i < diagram.nodes.length; i++) {\n var node = diagram.nodes[i];\n if (args.event.target.id === 'lock') {\n if (args.checked) {\n node.constraints &= ~(ej.diagrams.NodeConstraints.Resize | ej.diagrams.NodeConstraints.Rotate | ej.diagrams.NodeConstraints.Drag);\n node.constraints |= ej.diagrams.NodeConstraints.ReadOnly;\n } else {\n node.constraints |= ej.diagrams.NodeConstraints.Default & ~(ej.diagrams.NodeConstraints.ReadOnly);\n }\n } else {\n if (element.checked) {\n node.constraints |= ej.diagrams.NodeConstraints.AspectRatio;\n } else {\n node.constraints &= ~ej.diagrams.NodeConstraints.AspectRatio;\n }\n }\n diagram.dataBind();\n }\n}\n//Set customStyle for Node.\nfunction applyStyle(node, width, array, con, type) {\n node.style.fill = '#37909A';\n node.style.strokeWidth = width;\n node.style.strokeColor = '#024249';\n node.style.strokeDashArray = array;\n if (!type || type === 'None') {\n node.style.gradient.type = 'None';\n } else {\n var gradient;\n gradient = {\n cx: 50, cy: 50, fx: 50, fy: 50,\n stops: [{ color: '#00555b', offset: 0 },\n { color: '#37909A', offset: 90 }],\n type: 'Radial'\n };\n node.style.gradient = gradient;\n }\n if (con & ej.diagrams.NodeConstraints.Shadow) {\n node.shadow = { angle: 45, distance: 15, opacity: 0.3, color: 'grey' };\n node.constraints |= con;\n } else {\n node.constraints &= con;\n }\n diagram.dataBind();\n}\n\n// tslint:disable-next-line:max-func-body-length\n\n var nodes = [\n { id: 'sdlc', offsetX: 300, offsetY: 288, annotations: [{ content: 'SDLC' }] },\n { id: 'support', offsetX: 150, offsetY: 250, annotations: [{ content: 'Support' }] },\n { id: 'analysis', offsetX: 300, offsetY: 150, annotations: [{ content: 'Analysis' }] },\n { id: 'design', offsetX: 450, offsetY: 250, annotations: [{ content: 'Design' }] },\n { id: 'implement', offsetX: 400, offsetY: 400, annotations: [{ content: 'implement' }] },\n { id: 'deploy', offsetX: 200, offsetY: 400, annotations: [{ content: 'Deploy' }] }\n ];\n var connections = [\n { id: 'connector1', sourceID: 'analysis', targetID: 'design' },\n { id: 'connector2', sourceID: 'design', targetID: 'implement' },\n { id: 'connector3', sourceID: 'implement', targetID: 'deploy' },\n { id: 'connector4', sourceID: 'deploy', targetID: 'support' },\n { id: 'connector5', sourceID: 'support', targetID: 'analysis' }\n ];\n //Initialize the diagram\n diagram = new ej.diagrams.Diagram({\n width: '100%', height: '645px', nodes: nodes, connectors: connections,\n //Sets the default values of a nodes\n getNodeDefaults: function (obj) {\n obj.width = 100;\n obj.height = 100;\n obj.shape = { shape: 'Ellipse' };\n obj.style = { fill: '#37909A', strokeColor: '#024249' };\n obj.annotations[0].margin = { left: 10, right: 10 };\n obj.annotations[0].style = { color: 'white', fill: 'none', strokeColor: 'none' };\n return obj;\n },\n //Sets the default values of a Connectors\n getConnectorDefaults: function (connector) {\n connector.targetDecorator.style = { fill: '#024249', strokeColor: '#024249' };\n return { style: { strokeColor: '#024249', strokeWidth: 2 } };\n },\n snapSettings: { constraints: ej.diagrams.SnapConstraints.None }\n });\n diagram.appendTo('#diagram');\n\n //Enable or disable the AspectRatio for Node.\n element = new ej.buttons.CheckBox({\n checked: false, label: 'Aspect ratio',\n change: updateAnnotation\n });\n element.appendTo('#aspectRatio');\n //Enable or disable the Interaction for Node.\n var lockElement = new ej.buttons.CheckBox({\n checked: false, label: 'Lock',\n change: updateAnnotation\n });\n lockElement.appendTo('#lock');\n\n //Click event for Appearance of the Property Panel\n document.getElementById('appearance').onclick = function (args) {\n var target = args.target;\n\n if (target.className === 'image-pattern-style') {\n for (var i = 0; i < diagram.nodes.length; i++) {\n var node = diagram.nodes[i];\n switch (target.id) {\n case 'preview0':\n applyStyle(node, 0, '', ~ej.diagrams.NodeConstraints.Shadow, undefined);\n break;\n case 'preview1':\n applyStyle(node, 2, '', ~ej.diagrams.NodeConstraints.Shadow, undefined);\n break;\n case 'preview2':\n applyStyle(node, 2, '5 5', ~ej.diagrams.NodeConstraints.Shadow, undefined);\n break;\n case 'preview3':\n applyStyle(node, 2, '5 5', ~ej.diagrams.NodeConstraints.Shadow, 'Radial');\n break;\n case 'preview4':\n applyStyle(node, 2, '5 5', ej.diagrams.NodeConstraints.Shadow, undefined);\n break;\n }\n\n }\n }\n };\n\n"}
\ No newline at end of file
diff --git a/src/diagram/hierarchical-model-stack.json b/src/diagram/hierarchical-model-stack.json
index 33dfebc8..93e648bf 100644
--- a/src/diagram/hierarchical-model-stack.json
+++ b/src/diagram/hierarchical-model-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n \n
\n
\n \n
\n
\n Appearance\n
\n
\n
\n
\n
\n
\n Behavior\n
\n
\n
\n
\n
\n\n
","index.js":"{{ripple}}ej.diagrams.Diagram.Inject(ej.diagrams.DataBinding, ej.diagrams.HierarchicalTree, ej.diagrams.LayoutAnimation);\n/**\n * hierarchical-model\n */\n//Click event for Appearance of the Property Panel.\n\n//sets node default value\nfunction nodeDefaults(obj, diagram) {\n obj.style = { fill: '#659be5', strokeColor: 'none', color: 'white', strokeWidth: 2 };\n obj.borderColor = '#3a6eb5';\n obj.backgroundColor = '#659be5';\n obj.shape.margin = { left: 5, right: 5, bottom: 5, top: 5 };\n obj.expandIcon = { height: 10, width: 10, shape: 'None', fill: 'lightgray', offset: { x: 0.5, y: 1 } };\n obj.expandIcon.verticalAlignment = 'Auto';\n obj.expandIcon.margin = { left: 0, right: 0, top: 0, bottom: 0 };\n obj.collapseIcon.offset = { x: 0.5, y: 1 };\n obj.collapseIcon.verticalAlignment = 'Auto';\n obj.collapseIcon.margin = { left: 0, right: 0, top: 0, bottom: 0 };\n obj.collapseIcon.height = 10;\n obj.collapseIcon.width = 10;\n obj.collapseIcon.padding.top = 5;\n obj.collapseIcon.shape = 'None';\n obj.collapseIcon.fill = 'lightgray';\n return obj;\n}\n//sets connector default value\nfunction connectorDefaults(connector, diagram) {\n connector.targetDecorator.shape = 'None';\n connector.type = 'Orthogonal';\n connector.style.strokeColor = '#6d6d6d';\n connector.constraints = 0;\n connector.cornerRadius = 5;\n return connector;\n}\n\n// tslint:disable-next-line:max-func-body-length\n\n //Initializes the nodes for the diagram\n var diagram = new ej.diagrams.Diagram({\n width: '100%', height: '499px', snapSettings: { constraints: ej.diagrams.SnapConstraints.None },\n //configures data source settings\n dataSourceSettings: {\n id: 'Name', parentId: 'Category',\n dataManager: new ej.data.DataManager(window.hierarchicalTree),\n doBinding: function (nodeModel, data, diagram) {\n nodeModel.shape = { type: 'Text', content: data.Name };\n }\n },\n //Disables all interactions except zoom/pan\n tool: ej.diagrams.DiagramTools.ZoomPan,\n //Configures automatic layout\n layout: {\n type: 'HierarchicalTree', verticalSpacing: 30, horizontalSpacing: 40,\n enableAnimation: true\n },\n //Defines the default node and connector properties\n getNodeDefaults: function (obj, diagram) {\n return nodeDefaults(obj, diagram);\n }, getConnectorDefaults: function (connector, diagram) {\n return connectorDefaults(connector, diagram);\n }\n });\n diagram.appendTo('#diagram');\n\n var hSpacing = new ej.inputs.NumericTextBox({\n format: '###.##',\n change: function () {\n diagram.layout.horizontalSpacing = Number(hSpacing.value);\n diagram.dataBind();\n }\n });\n hSpacing.appendTo('#hSpacing');\n var vSpacing = new ej.inputs.NumericTextBox({\n format: '###.##',\n change: function () {\n diagram.layout.verticalSpacing = Number(vSpacing.value);\n diagram.dataBind();\n }\n });\n vSpacing.appendTo('#vSpacing');\n document.getElementById('appearance').onclick = function (args) {\n var targetelement = args.target;\n\n if (targetelement.className === 'image-pattern-style') {\n var id = args.target.id;\n var orientation1 = id.substring(0, 1).toUpperCase() + id.substring(1, id.length);\n diagram.layout.orientation = orientation1;\n diagram.dataBind();\n diagram.doLayout();\n args.target.classList.add('e-selected-style');\n }\n };\n\n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n \n
\n
\n \n
\n
\n Appearance\n
\n
\n
\n
\n
\n
\n Behavior\n
\n
\n
\n
\n
\n\n
","index.js":"{{ripple}}ej.diagrams.Diagram.Inject(ej.diagrams.DataBinding, ej.diagrams.HierarchicalTree, ej.diagrams.LayoutAnimation);\n/**\n * hierarchical-model\n */\n//Click event for Appearance of the Property Panel.\n\n//sets node default value\nfunction nodeDefaults(obj, diagram) {\n obj.style = { fill: '#659be5', strokeColor: 'none', color: 'white', strokeWidth: 2 };\n obj.borderColor = '#3a6eb5';\n obj.backgroundColor = '#659be5';\n obj.shape.margin = { left: 5, right: 5, bottom: 5, top: 5 };\n obj.expandIcon = { height: 10, width: 10, shape: 'None', fill: 'lightgray', offset: { x: 0.5, y: 1 } };\n obj.expandIcon.verticalAlignment = 'Auto';\n obj.expandIcon.margin = { left: 0, right: 0, top: 0, bottom: 0 };\n obj.collapseIcon.offset = { x: 0.5, y: 1 };\n obj.collapseIcon.verticalAlignment = 'Auto';\n obj.collapseIcon.margin = { left: 0, right: 0, top: 0, bottom: 0 };\n obj.collapseIcon.height = 10;\n obj.collapseIcon.width = 10;\n obj.collapseIcon.padding.top = 5;\n obj.collapseIcon.shape = 'None';\n obj.collapseIcon.fill = 'lightgray';\n return obj;\n}\n//sets connector default value\nfunction connectorDefaults(connector, diagram) {\n connector.targetDecorator.shape = 'None';\n connector.type = 'Orthogonal';\n connector.style.strokeColor = '#6d6d6d';\n connector.constraints = 0;\n connector.cornerRadius = 5;\n return connector;\n}\n\n// tslint:disable-next-line:max-func-body-length\n\n //Initializes the nodes for the diagram\n var diagram = new ej.diagrams.Diagram({\n width: '100%', height: '499px', snapSettings: { constraints: ej.diagrams.SnapConstraints.None },\n //configures data source settings\n dataSourceSettings: {\n id: 'Name', parentId: 'Category',\n dataManager: new ej.data.DataManager(window.hierarchicalTree),\n doBinding: function (nodeModel, data, diagram) {\n nodeModel.shape = { type: 'Text', content: data.Name };\n }\n },\n //Disables all interactions except zoom/pan\n tool: ej.diagrams.DiagramTools.ZoomPan,\n //Configures automatic layout\n layout: {\n type: 'HierarchicalTree', verticalSpacing: 30, horizontalSpacing: 40,\n enableAnimation: true\n },\n //Defines the default node and connector properties\n getNodeDefaults: function (obj, diagram) {\n return nodeDefaults(obj, diagram);\n }, getConnectorDefaults: function (connector, diagram) {\n return connectorDefaults(connector, diagram);\n }\n });\n diagram.appendTo('#diagram');\n\n var hSpacing = new ej.inputs.NumericTextBox({\n format: '###.##',\n change: function () {\n diagram.layout.horizontalSpacing = Number(hSpacing.value);\n diagram.dataBind();\n }\n });\n hSpacing.appendTo('#hSpacing');\n var vSpacing = new ej.inputs.NumericTextBox({\n format: '###.##',\n change: function () {\n diagram.layout.verticalSpacing = Number(vSpacing.value);\n diagram.dataBind();\n }\n });\n vSpacing.appendTo('#vSpacing');\n document.getElementById('appearance').onclick = function (args) {\n var targetelement = args.target;\n\n if (targetelement.className === 'image-pattern-style') {\n var id = args.target.id;\n var orientation1 = id.substring(0, 1).toUpperCase() + id.substring(1, id.length);\n diagram.layout.orientation = orientation1;\n diagram.dataBind();\n diagram.doLayout();\n args.target.classList.add('e-selected-style');\n }\n };\n\n"}
\ No newline at end of file
diff --git a/src/diagram/history-manager-stack.json b/src/diagram/history-manager-stack.json
index e3a0cda7..2bb1f8f4 100644
--- a/src/diagram/history-manager-stack.json
+++ b/src/diagram/history-manager-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n \n
\n \n
\n
\n
\n
\n
\n
\n Undo Stack\n \n
\n \n Undo\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n Redo Stack\n \n
\n \n Redo\n \n
\n
\n
\n
\n
\n
\n
\n
\n \n Start Group Action\n
\n
\n \n Clear\n \n
\n
\n\n
\n\n
\n
\n\n
","index.js":"{{ripple}}ej.diagrams.Diagram.Inject(ej.diagrams.UndoRedo);\nvar diagram;\nvar nodes = [\n {\n id: 'node1', offsetX: 400, offsetY: 30, style: { fill: '#FFB2B2', strokeColor: '#FFB2B2' }, width: 70, height: 40,\n shape: { type: 'Flow', shape: 'Terminator' },\n annotations: [{ id: 'label1', content: 'Start' }],\n },\n {\n id: 'node2', offsetX: 400, offsetY: 100, style: { fill: '#DCDCDC', strokeColor: '#DCDCDC' },\n shape: { type: 'Flow', shape: 'Process' }, annotations: [{ id: 'label1', content: 'Design' }],\n ports: [{ id: 'designPort', offset: { x: 0, y: 0.5 } }]\n },\n {\n id: 'node3', offsetX: 400, offsetY: 180, style: { fill: '#DCDCDC', strokeColor: '#DCDCDC' },\n annotations: [{ id: 'label1', content: 'Coding' }],\n shape: { type: 'Flow', shape: 'Process' }, ports: [{ id: 'codingPort', offset: { x: 0, y: 0.5 } }]\n },\n {\n id: 'node4', offsetX: 400, offsetY: 260, style: { fill: '#DCDCDC', strokeColor: '#DCDCDC' },\n annotations: [{ id: 'label1', content: 'Testing' }], shape: { type: 'Flow', shape: 'Process' }\n },\n {\n id: 'node5', offsetX: 400, offsetY: 340, style: { fill: '#A2D8B0', strokeColor: '#A2D8B0' }, width: 80, height: 60,\n annotations: [{ id: 'label1', content: 'Errors?' }], shape: { type: 'Flow', shape: 'Decision' }\n },\n {\n id: 'node6', offsetX: 400, offsetY: 430, style: { fill: '#FFB2B2', strokeColor: '#FFB2B2' }, width: 70, height: 40,\n annotations: [{ id: 'label1', content: 'End' }], shape: { type: 'Flow', shape: 'Terminator' }\n },\n {\n id: 'node7', width: 100, offsetX: 220, offsetY: 180, style: { fill: '#A2D8B0', strokeColor: '#A2D8B0' }, height: 60,\n annotations: [{ id: 'label1', content: 'Design Error?' }], shape: { type: 'Flow', shape: 'Decision' },\n ports: [\n { id: 'porterror', offset: { x: 0.5, y: 0 } },\n { id: 'portcoding', offset: { x: 1, y: 0.5 } },\n { id: 'portdesign', offset: { x: 0.5, y: 1 } }\n ]\n }\n];\n\nvar connectors = [\n { id: 'connector1', sourceID: 'node1', targetID: 'node2' },\n { id: 'connector2', sourceID: 'node2', targetID: 'node3' },\n { id: 'connector3', sourceID: 'node3', targetID: 'node4' },\n { id: 'connector4', sourceID: 'node4', targetID: 'node5' },\n {\n id: 'connector5', sourceID: 'node5', targetID: 'node6',\n annotations: [{ content: 'No', style: { fill: 'white' } }]\n },\n {\n id: 'connector6', sourceID: 'node5', targetID: 'node7', type: 'Orthogonal',\n segments: [{ type: 'Orthogonal', length: 150, direction: 'Left' }],\n annotations: [{ content: 'Yes', style: { fill: 'white' } }]\n },\n {\n id: 'connector7', sourceID: 'node7', targetID: 'node3', sourcePortID: 'portcoding',\n targetPortID: 'codingPort', type: 'Orthogonal',\n segments: [{ type: 'Orthogonal', length: 10, direction: 'left' }],\n annotations: [{ content: 'No', style: { fill: 'white' } }]\n },\n {\n id: 'connector8', sourceID: 'node7', targetID: 'node2', sourcePortID: 'porterror',\n targetPortID: 'designPort', type: 'Orthogonal',\n annotations: [{ content: 'Yes', style: { fill: 'white' } }]\n }\n];\n\n diagram = new ej.diagrams.Diagram({\n width: '100%', height: '600px', nodes: nodes, connectors: connectors,\n getNodeDefaults: getNodeDefaults,\n snapSettings: { constraints: ej.diagrams.SnapConstraints.None },\n getConnectorDefaults: function (obj) {\n obj.style.fill = '#707070';\n obj.targetDecorator.style.fill = '#707070';\n obj.targetDecorator.style.strokeColor = '#707070';\n }\n });\n diagram.appendTo('#diagram');\n\n diagram.historyChange = function (arg) {\n getValue();\n };\n diagram.fitToPage({ mode: 'Height' });\n var stackLimit = new ej.inputs.NumericTextBox({\n value: 0, min: 0, max: 50, width: '100%',\n format: '##.##', step: 1,\n change: function (args) {\n diagram.setStackLimit(args.value);\n }\n });\n stackLimit.appendTo('#StackLimit');\n\n var listviewInstance = new ej.lists.ListView({\n fields: { value: 'value', text: 'text' },\n headerTitle: 'Device settings',\n height: \"180px\",\n });\n listviewInstance.appendTo(\"#redoList\");\n\n var listview = new ej.lists.ListView({\n fields: { value: 'value', text: 'text' },\n headerTitle: 'Device settings',\n height: \"180px\",\n });\n listview.appendTo(\"#undoList\");\n\n var clearHistory = new ej.buttons.Button({\n content: 'Clear History',\n cssClass: 'e-small'\n });\n clearHistory.appendTo('#clearHistory');\n clearHistory.element.onclick = function () {\n diagram.clearHistory();\n getValue();\n };\n var startGroupAction = new ej.buttons.Button({\n isToggle: true,\n cssClass: 'e-small'\n });\n startGroupAction.appendTo('#startGroupAction');\n startGroupAction.element.onclick = function () {\n if (startGroupAction.element.classList.contains('e-active')) {\n startGroupAction.content = 'End Group Action';\n diagram.startGroupAction();\n }\n else {\n diagram.endGroupAction();\n startGroupAction.content = 'Start Group Action';\n }\n };\n var undoButton = new ej.buttons.Button({\n disabled: true\n });\n undoButton.appendTo('#undo');\n undoButton.element.onclick = function () {\n diagram.undo();\n };\n\n var redoButton = new ej.buttons.Button({\n disabled: true\n });\n redoButton.appendTo('#redo');\n redoButton.element.onclick = function () {\n diagram.redo();\n };\n function getNodeDefaults(obj) {\n obj.annotations[0].style.color = '#111111';\n return obj;\n }\n function getValue() {\n var undoStack = diagram.historyManager.undoStack;\n var redoStack = diagram.historyManager.redoStack;\n var undo = [];\n for (var i = 0; i < undoStack.length; i++) {\n undo.push({ 'text': undoStack[i].type, 'value': undoStack[i].type });\n }\n var redo = [];\n for (var j = 0; j < redoStack.length; j++) {\n redo.push({ 'text': redoStack[j].type, 'value': redoStack[j].type });\n }\n var itemsCount = diagram.historyManager.stackLimit ? diagram.historyManager.stackLimit : 0;\n var undoList = document.getElementById('undoList').ej2_instances[0];\n\n undoButton.disabled = undo.length ? false : true;\n redoButton.disabled = redo.length ? false : true;\n undoList.dataSource = undo;\n undoList.fields = { text: 'text', value: 'text' };\n undoList.index = 0;\n undoList.dataBind();\n var redoList = document.getElementById('redoList').ej2_instances[0];\n redoList.dataSource = redo;\n redoList.fields = { text: 'text', value: 'text' };\n redoList.index = 0;\n redoList.dataBind();\n }\n\n\n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n \n
\n \n
\n
\n
\n
\n
\n
\n Undo Stack\n \n
\n \n Undo\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n Redo Stack\n \n
\n \n Redo\n \n
\n
\n
\n
\n
\n
\n
\n
\n \n Start Group Action\n
\n
\n \n Clear\n \n
\n
\n\n
\n\n
\n
\n\n
","index.js":"{{ripple}}ej.diagrams.Diagram.Inject(ej.diagrams.UndoRedo);\nvar diagram;\nvar nodes = [\n {\n id: 'node1', offsetX: 400, offsetY: 30, style: { fill: '#FFB2B2', strokeColor: '#FFB2B2' }, width: 70, height: 40,\n shape: { type: 'Flow', shape: 'Terminator' },\n annotations: [{ id: 'label1', content: 'Start' }],\n },\n {\n id: 'node2', offsetX: 400, offsetY: 100, style: { fill: '#DCDCDC', strokeColor: '#DCDCDC' },\n shape: { type: 'Flow', shape: 'Process' }, annotations: [{ id: 'label1', content: 'Design' }],\n ports: [{ id: 'designPort', offset: { x: 0, y: 0.5 } }]\n },\n {\n id: 'node3', offsetX: 400, offsetY: 180, style: { fill: '#DCDCDC', strokeColor: '#DCDCDC' },\n annotations: [{ id: 'label1', content: 'Coding' }],\n shape: { type: 'Flow', shape: 'Process' }, ports: [{ id: 'codingPort', offset: { x: 0, y: 0.5 } }]\n },\n {\n id: 'node4', offsetX: 400, offsetY: 260, style: { fill: '#DCDCDC', strokeColor: '#DCDCDC' },\n annotations: [{ id: 'label1', content: 'Testing' }], shape: { type: 'Flow', shape: 'Process' }\n },\n {\n id: 'node5', offsetX: 400, offsetY: 340, style: { fill: '#A2D8B0', strokeColor: '#A2D8B0' }, width: 80, height: 60,\n annotations: [{ id: 'label1', content: 'Errors?' }], shape: { type: 'Flow', shape: 'Decision' }\n },\n {\n id: 'node6', offsetX: 400, offsetY: 430, style: { fill: '#FFB2B2', strokeColor: '#FFB2B2' }, width: 70, height: 40,\n annotations: [{ id: 'label1', content: 'End' }], shape: { type: 'Flow', shape: 'Terminator' }\n },\n {\n id: 'node7', width: 100, offsetX: 220, offsetY: 180, style: { fill: '#A2D8B0', strokeColor: '#A2D8B0' }, height: 60,\n annotations: [{ id: 'label1', content: 'Design Error?' }], shape: { type: 'Flow', shape: 'Decision' },\n ports: [\n { id: 'porterror', offset: { x: 0.5, y: 0 } },\n { id: 'portcoding', offset: { x: 1, y: 0.5 } },\n { id: 'portdesign', offset: { x: 0.5, y: 1 } }\n ]\n }\n];\n\nvar connectors = [\n { id: 'connector1', sourceID: 'node1', targetID: 'node2' },\n { id: 'connector2', sourceID: 'node2', targetID: 'node3' },\n { id: 'connector3', sourceID: 'node3', targetID: 'node4' },\n { id: 'connector4', sourceID: 'node4', targetID: 'node5' },\n {\n id: 'connector5', sourceID: 'node5', targetID: 'node6',\n annotations: [{ content: 'No', style: { fill: 'white' } }]\n },\n {\n id: 'connector6', sourceID: 'node5', targetID: 'node7', type: 'Orthogonal',\n segments: [{ type: 'Orthogonal', length: 150, direction: 'Left' }],\n annotations: [{ content: 'Yes', style: { fill: 'white' } }]\n },\n {\n id: 'connector7', sourceID: 'node7', targetID: 'node3', sourcePortID: 'portcoding',\n targetPortID: 'codingPort', type: 'Orthogonal',\n segments: [{ type: 'Orthogonal', length: 10, direction: 'left' }],\n annotations: [{ content: 'No', style: { fill: 'white' } }]\n },\n {\n id: 'connector8', sourceID: 'node7', targetID: 'node2', sourcePortID: 'porterror',\n targetPortID: 'designPort', type: 'Orthogonal',\n annotations: [{ content: 'Yes', style: { fill: 'white' } }]\n }\n];\n\n diagram = new ej.diagrams.Diagram({\n width: '100%', height: '600px', nodes: nodes, connectors: connectors,\n getNodeDefaults: getNodeDefaults,\n snapSettings: { constraints: ej.diagrams.SnapConstraints.None },\n getConnectorDefaults: function (obj) {\n obj.style.fill = '#707070';\n obj.targetDecorator.style.fill = '#707070';\n obj.targetDecorator.style.strokeColor = '#707070';\n }\n });\n diagram.appendTo('#diagram');\n\n diagram.historyChange = function (arg) {\n getValue();\n };\n diagram.fitToPage({ mode: 'Height' });\n var stackLimit = new ej.inputs.NumericTextBox({\n value: 0, min: 0, max: 50, width: '100%',\n format: '##.##', step: 1,\n change: function (args) {\n diagram.setStackLimit(args.value);\n }\n });\n stackLimit.appendTo('#StackLimit');\n\n var listviewInstance = new ej.lists.ListView({\n fields: { value: 'value', text: 'text' },\n headerTitle: 'Device settings',\n height: \"180px\",\n });\n listviewInstance.appendTo(\"#redoList\");\n\n var listview = new ej.lists.ListView({\n fields: { value: 'value', text: 'text' },\n headerTitle: 'Device settings',\n height: \"180px\",\n });\n listview.appendTo(\"#undoList\");\n\n var clearHistory = new ej.buttons.Button({\n content: 'Clear History', \n });\n clearHistory.appendTo('#clearHistory');\n clearHistory.element.onclick = function () {\n diagram.clearHistory();\n getValue();\n };\n var startGroupAction = new ej.buttons.Button({\n isToggle: true, \n });\n startGroupAction.appendTo('#startGroupAction');\n startGroupAction.element.onclick = function () {\n if (startGroupAction.element.classList.contains('e-active')) {\n startGroupAction.content = 'End Group Action';\n diagram.startGroupAction();\n }\n else {\n diagram.endGroupAction();\n startGroupAction.content = 'Start Group Action';\n }\n };\n var undoButton = new ej.buttons.Button({\n disabled: true\n });\n undoButton.appendTo('#undo');\n undoButton.element.onclick = function () {\n diagram.undo();\n };\n\n var redoButton = new ej.buttons.Button({\n disabled: true\n });\n redoButton.appendTo('#redo');\n redoButton.element.onclick = function () {\n diagram.redo();\n };\n function getNodeDefaults(obj) {\n obj.annotations[0].style.color = '#111111';\n return obj;\n }\n function getValue() {\n var undoStack = diagram.historyManager.undoStack;\n var redoStack = diagram.historyManager.redoStack;\n var undo = [];\n for (var i = 0; i < undoStack.length; i++) {\n undo.push({ 'text': undoStack[i].type, 'value': undoStack[i].type });\n }\n var redo = [];\n for (var j = 0; j < redoStack.length; j++) {\n redo.push({ 'text': redoStack[j].type, 'value': redoStack[j].type });\n }\n var itemsCount = diagram.historyManager.stackLimit ? diagram.historyManager.stackLimit : 0;\n var undoList = document.getElementById('undoList').ej2_instances[0];\n\n undoButton.disabled = undo.length ? false : true;\n redoButton.disabled = redo.length ? false : true;\n undoList.dataSource = undo;\n undoList.fields = { text: 'text', value: 'text' };\n undoList.index = 0;\n undoList.dataBind();\n var redoList = document.getElementById('redoList').ej2_instances[0];\n redoList.dataSource = redo;\n redoList.fields = { text: 'text', value: 'text' };\n redoList.index = 0;\n redoList.dataBind();\n }\n\n\n"}
\ No newline at end of file
diff --git a/src/diagram/key-board-functions-stack.json b/src/diagram/key-board-functions-stack.json
index a6db69af..fa910fec 100644
--- a/src/diagram/key-board-functions-stack.json
+++ b/src/diagram/key-board-functions-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n \n
\n
\n \n
\n
\n \n \n \n Command \n \n \n Gesture \n \n \n \n Select All \n Ctrl + A \n \n \n Cut \n Ctrl + X \n \n \n Copy \n Ctrl + C \n \n \n Paste \n Ctrl + V \n \n \n Undo \n Ctrl + Z \n \n \n Redo \n Ctrl + Y \n \n \n Delete \n Delete \n \n \n
\n
\n
\n
\n \n
\n
\n \n \n \n Command\n \n \n \n Gesture \n \n \n \n Group \n Ctrl + G \n \n \n Ungroup \n Ctrl + U \n \n \n
\n
\n
\n
\n \n
\n
\n \n \n \n Command\n \n \n \n Gesture \n \n \n \n Navigate to Parent Node \n Up Arrow \n \n \n Navigate to Child Node \n Down Arrow \n \n \n Navigate to Previous Child \n Left Arrow \n \n \n Navigate to Next Child \n Right Arrow \n \n \n
\n
\n
\n\n
\n\n
","index.js":"{{ripple}}/**\n * Key Board Interaction sample\n */\n// tslint:disable-next-line:max-func-body-length\nej.diagrams.Diagram.Inject(ej.diagrams.UndoRedo, ej.diagrams.DiagramContextMenu, ej.diagrams.HierarchicalTree, ej.diagrams.DataBinding);\n //Custom command for Diagraming elements.\n var diagram;\n function getCommandManagerSettings() {\n var commandManager = {\n commands: [{\n name: 'customGroup',\n canExecute: function () {\n if (diagram.selectedItems.nodes.length > 0 || diagram.selectedItems.connectors.length > 0) {\n return true;\n }\n return false;\n },\n execute: function () {\n diagram.group();\n },\n gesture: {\n key: ej.diagrams.Keys.G,\n keyModifiers: ej.diagrams.KeyModifiers.Control\n }\n },\n {\n name: 'customUnGroup',\n canExecute: function () {\n if (diagram.selectedItems.nodes[0].children) {\n return true;\n }\n return false;\n },\n execute: function () {\n diagram.unGroup();\n },\n gesture: {\n key: ej.diagrams.Keys.U,\n keyModifiers: ej.diagrams.KeyModifiers.Control\n }\n },\n {\n name: 'navigationDown',\n canExecute: function () {\n return true;\n },\n execute: function () {\n navigateLevels(true);\n },\n gesture: { key: ej.diagrams.Keys.Down },\n },\n {\n name: 'navigationUp',\n canExecute: function () {\n return true;\n },\n execute: function () {\n navigateLevels(false);\n },\n gesture: { key: ej.diagrams.Keys.Up },\n },\n {\n name: 'navigationLeft',\n canExecute: function () {\n return true;\n },\n execute: function () {\n navigateToSiblings(true);\n },\n gesture: { key: ej.diagrams.Keys.Right },\n },\n {\n name: 'navigationRight',\n canExecute: function () {\n return true;\n },\n execute: function () {\n navigateToSiblings(false);\n },\n gesture: { key: ej.diagrams.Keys.Left },\n }]\n };\n return commandManager;\n}\nfunction navigateLevels(isParent) {\n var node = diagram.selectedItems.nodes[0];\n if (node) {\n var connectorId = isParent ? node.outEdges[0] : node.inEdges[0];\n var altNode = isParent ? getNode(connectorId, false) : getNode(connectorId, true);\n selectNode(altNode);\n }\n}\nfunction navigateToSiblings(isRightSibling) {\n var child = diagram.selectedItems.nodes[0];\n if (child) {\n var connectorId = child.inEdges[0];\n var altConnectorId = '';\n var parent = getNode(connectorId, true);\n if (parent && parent.length > 0) {\n for (var i = 0; i < parent[0].outEdges.length; i++) {\n if (parent[0].outEdges[i] === connectorId) {\n altConnectorId = isRightSibling ? parent[0].outEdges[i + 1] : parent[0].outEdges[i - 1];\n }\n }\n var sibling = getNode(altConnectorId, false);\n selectNode(sibling);\n }\n }\n}\nfunction getNode(name, isParent) {\n var node = [];\n var connector = diagram.getObject(name);\n if (connector) {\n node.push(diagram.getObject(isParent ? (connector.sourceID) : (connector.targetID)));\n }\n return node;\n}\nfunction selectNode(node) {\n if (node && node.length > 0) {\n diagram.clearSelection();\n diagram.select(node);\n }\n}\n\n //Initialize shape\n var shape = { type: 'Basic', shape: 'Ellipse', cornerRadius: 10 };\n //initialize the diagram control\n diagram = new ej.diagrams.Diagram({\n width: '100%', height: 645,\n snapSettings: { constraints: ej.diagrams.SnapConstraints.None },\n contextMenuSettings: { show: true },\n getNodeDefaults: function (obj) {\n if (!obj.children) {\n obj.shape = shape;\n obj.width = 70;\n obj.height = 70;\n }\n return obj;\n },\n layout: {\n type: 'HierarchicalTree'\n },\n dataSourceSettings: {\n id: 'id', parentId: 'ancestor', dataManager: new ej.data.DataManager(window.keyBoardData),\n doBinding: function (nodeModel, data) {\n nodeModel.annotations = [{\n content: data.id,\n style: { color: 'white' }\n }\n ];\n nodeModel.style = {\n strokeColor: 'transparent',\n fill: data.fill\n };\n }\n },\n commandManager: getCommandManagerSettings()\n });\n diagram.appendTo('#diagram');\n \n\n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n \n
\n
\n \n
\n
\n \n \n \n Command \n \n \n Gesture \n \n \n \n Select All \n Ctrl + A \n \n \n Cut \n Ctrl + X \n \n \n Copy \n Ctrl + C \n \n \n Paste \n Ctrl + V \n \n \n Undo \n Ctrl + Z \n \n \n Redo \n Ctrl + Y \n \n \n Delete \n Delete \n \n \n
\n
\n
\n
\n \n
\n
\n \n \n \n Command\n \n \n \n Gesture \n \n \n \n Group \n Ctrl + G \n \n \n Ungroup \n Ctrl + U \n \n \n
\n
\n
\n
\n \n
\n
\n \n \n \n Command\n \n \n \n Gesture \n \n \n \n Navigate to Parent Node \n Up Arrow \n \n \n Navigate to Child Node \n Down Arrow \n \n \n Navigate to Previous Child \n Left Arrow \n \n \n Navigate to Next Child \n Right Arrow \n \n \n
\n
\n
\n\n
\n\n
","index.js":"{{ripple}}/**\n * Key Board Interaction sample\n */\n// tslint:disable-next-line:max-func-body-length\nej.diagrams.Diagram.Inject(ej.diagrams.UndoRedo, ej.diagrams.DiagramContextMenu, ej.diagrams.HierarchicalTree, ej.diagrams.DataBinding);\n //Custom command for Diagraming elements.\n var diagram;\n function getCommandManagerSettings() {\n var commandManager = {\n commands: [{\n name: 'customGroup',\n canExecute: function () {\n if (diagram.selectedItems.nodes.length > 0 || diagram.selectedItems.connectors.length > 0) {\n return true;\n }\n return false;\n },\n execute: function () {\n diagram.group();\n },\n gesture: {\n key: ej.diagrams.Keys.G,\n keyModifiers: ej.diagrams.KeyModifiers.Control\n }\n },\n {\n name: 'customUnGroup',\n canExecute: function () {\n if (diagram.selectedItems.nodes[0].children) {\n return true;\n }\n return false;\n },\n execute: function () {\n diagram.unGroup();\n },\n gesture: {\n key: ej.diagrams.Keys.U,\n keyModifiers: ej.diagrams.KeyModifiers.Control\n }\n },\n {\n name: 'navigationDown',\n canExecute: function () {\n return true;\n },\n execute: function () {\n navigateLevels(true);\n },\n gesture: { key: ej.diagrams.Keys.Down },\n },\n {\n name: 'navigationUp',\n canExecute: function () {\n return true;\n },\n execute: function () {\n navigateLevels(false);\n },\n gesture: { key: ej.diagrams.Keys.Up },\n },\n {\n name: 'navigationLeft',\n canExecute: function () {\n return true;\n },\n execute: function () {\n navigateToSiblings(true);\n },\n gesture: { key: ej.diagrams.Keys.Right },\n },\n {\n name: 'navigationRight',\n canExecute: function () {\n return true;\n },\n execute: function () {\n navigateToSiblings(false);\n },\n gesture: { key: ej.diagrams.Keys.Left },\n }]\n };\n return commandManager;\n}\nfunction navigateLevels(isParent) {\n var node = diagram.selectedItems.nodes[0];\n if (node) {\n var connectorId = isParent ? node.outEdges[0] : node.inEdges[0];\n var altNode = isParent ? getNode(connectorId, false) : getNode(connectorId, true);\n selectNode(altNode);\n }\n}\nfunction navigateToSiblings(isRightSibling) {\n var child = diagram.selectedItems.nodes[0];\n if (child) {\n var connectorId = child.inEdges[0];\n var altConnectorId = '';\n var parent = getNode(connectorId, true);\n if (parent && parent.length > 0) {\n for (var i = 0; i < parent[0].outEdges.length; i++) {\n if (parent[0].outEdges[i] === connectorId) {\n altConnectorId = isRightSibling ? parent[0].outEdges[i + 1] : parent[0].outEdges[i - 1];\n }\n }\n var sibling = getNode(altConnectorId, false);\n selectNode(sibling);\n }\n }\n}\nfunction getNode(name, isParent) {\n var node = [];\n var connector = diagram.getObject(name);\n if (connector) {\n node.push(diagram.getObject(isParent ? (connector.sourceID) : (connector.targetID)));\n }\n return node;\n}\nfunction selectNode(node) {\n if (node && node.length > 0) {\n diagram.clearSelection();\n diagram.select(node);\n }\n}\n\n //Initialize shape\n var shape = { type: 'Basic', shape: 'Ellipse', cornerRadius: 10 };\n //initialize the diagram control\n diagram = new ej.diagrams.Diagram({\n width: '100%', height: 645,\n snapSettings: { constraints: ej.diagrams.SnapConstraints.None },\n contextMenuSettings: { show: true },\n getNodeDefaults: function (obj) {\n if (!obj.children) {\n obj.shape = shape;\n obj.width = 70;\n obj.height = 70;\n }\n return obj;\n },\n layout: {\n type: 'HierarchicalTree'\n },\n dataSourceSettings: {\n id: 'id', parentId: 'ancestor', dataManager: new ej.data.DataManager(window.keyBoardData),\n doBinding: function (nodeModel, data) {\n nodeModel.annotations = [{\n content: data.id,\n style: { color: 'white' }\n }\n ];\n nodeModel.style = {\n strokeColor: 'transparent',\n fill: data.fill\n };\n }\n },\n commandManager: getCommandManagerSettings()\n });\n diagram.appendTo('#diagram');\n \n\n"}
\ No newline at end of file
diff --git a/src/diagram/local-data-stack.json b/src/diagram/local-data-stack.json
index ff181652..ae78deb5 100644
--- a/src/diagram/local-data-stack.json
+++ b/src/diagram/local-data-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}/**\n * Local Data Binding sample\n */\nej.diagrams.Diagram.Inject(ej.diagrams.DataBinding, ej.diagrams.HierarchicalTree);\n\n //Initializes diagram control\n var diagram = new ej.diagrams.Diagram({\n width: '100%', height: 490,\n //Configures data source\n dataSourceSettings: {\n id: 'Name', parentId: 'Category', dataManager: new ej.data.DataManager(window.species),\n //binds the external data with node\n doBinding: function (nodeModel, data, diagram) {\n nodeModel.annotations = [{\n content: data.Name, style: { color: 'black' }\n }];\n nodeModel.style = { fill: '#ffeec7', strokeColor: '#f5d897', strokeWidth: 1 };\n }\n },\n //Configrues HierarchicalTree layout\n layout: {\n type: 'HierarchicalTree', horizontalSpacing: 15, verticalSpacing: 50,\n margin: { top: 10, left: 10, right: 10, bottom: 0 },\n },\n //Sets the default values of nodes\n getNodeDefaults: function (obj) {\n obj.shape = { type: 'Basic', shape: 'Rectangle' };\n obj.style = { strokeWidth: 1 };\n obj.width = 95;\n obj.height = 30;\n },\n //Sets the default values of connectors.\n getConnectorDefaults: function (connector) {\n connector.type = 'Orthogonal';\n connector.style.strokeColor = '#4d4d4d';\n connector.targetDecorator.shape = 'None';\n },\n //Disables all interactions except zoom/pan\n tool: ej.diagrams.DiagramTools.ZoomPan,\n snapSettings: { constraints: 0 }\n });\n diagram.appendTo('#diagram');\n\n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}/**\n * Local Data Binding sample\n */\nej.diagrams.Diagram.Inject(ej.diagrams.DataBinding, ej.diagrams.HierarchicalTree);\n\n //Initializes diagram control\n var diagram = new ej.diagrams.Diagram({\n width: '100%', height: 490,\n //Configures data source\n dataSourceSettings: {\n id: 'Name', parentId: 'Category', dataManager: new ej.data.DataManager(window.species),\n //binds the external data with node\n doBinding: function (nodeModel, data, diagram) {\n nodeModel.annotations = [{\n content: data.Name, style: { color: 'black' }\n }];\n nodeModel.style = { fill: '#ffeec7', strokeColor: '#f5d897', strokeWidth: 1 };\n }\n },\n //Configrues HierarchicalTree layout\n layout: {\n type: 'HierarchicalTree', horizontalSpacing: 15, verticalSpacing: 50,\n margin: { top: 10, left: 10, right: 10, bottom: 0 },\n },\n //Sets the default values of nodes\n getNodeDefaults: function (obj) {\n obj.shape = { type: 'Basic', shape: 'Rectangle' };\n obj.style = { strokeWidth: 1 };\n obj.width = 95;\n obj.height = 30;\n },\n //Sets the default values of connectors.\n getConnectorDefaults: function (connector) {\n connector.type = 'Orthogonal';\n connector.style.strokeColor = '#4d4d4d';\n connector.targetDecorator.shape = 'None';\n },\n //Disables all interactions except zoom/pan\n tool: ej.diagrams.DiagramTools.ZoomPan,\n snapSettings: { constraints: 0 }\n });\n diagram.appendTo('#diagram');\n\n"}
\ No newline at end of file
diff --git a/src/diagram/logic-circuit-stack.json b/src/diagram/logic-circuit-stack.json
index 145d8365..f89db122 100644
--- a/src/diagram/logic-circuit-stack.json
+++ b/src/diagram/logic-circuit-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}/**\n * Logic circuit sample\n */\n\nvar nodeY = 30;\n// Create nodes as logic gates\nfunction createNode(\n id, offsetX, offsetY, height,\n width, pathData, ports) {\n // update node properties\n var node = {};\n node.id = id;\n node.offsetX = offsetX;\n node.offsetY = offsetY - nodeY;\n node.height = height;\n node.width = width;\n node.shape = { type: 'Path', data: pathData };\n node.ports = ports;\n return node;\n}\n\n// Create Connectors to connect two logic gates\nfunction createConnector(\n id,\n sourcePoint, targetPoint,\n sourceID, targetID,\n sourcePortID, targetPortID,\n sourceDecorator, targetDecorator,\n annotation, segments, isStraight) {\n // update connector properties\n var connector = {};\n connector.id = id;\n if (sourcePoint) {\n connector.sourcePoint = { x: sourcePoint.x, y: sourcePoint.y - nodeY };\n }\n if (targetPoint) {\n connector.targetPoint = { x: targetPoint.x, y: targetPoint.y - nodeY };\n }\n connector.sourceID = sourceID;\n connector.targetID = targetID;\n connector.type = isStraight ? 'Straight' : 'Orthogonal';\n connector.sourcePortID = sourcePortID;\n connector.targetPortID = targetPortID;\n // update connector annotation properties\n connector.annotations = [{\n content: annotation.content, offset: 0, margin: {\n left: (annotation.margin && annotation.margin.left) ? annotation.margin.left : 0,\n top: (annotation.margin && annotation.margin.top) ? annotation.margin.top : 0,\n },\n style: {\n //bold: true,\n fontFamily: 'Segoe UI',\n textWrapping: 'NoWrap', fontSize: 14,\n }\n }];\n // update connector decorators\n connector.sourceDecorator = sourceDecorator;\n connector.targetDecorator = targetDecorator;\n // update connector segments\n if (segments) {\n connector.segments = [{ length: 100, direction: 'Right', type: 'Orthogonal' }];\n }\n return connector;\n}\n\n\n\n /* tslint:disable */\n var orData = 'M21.7,76.5L21.7,76.5c6.4-18.1,6.4-37.8,0-55.9l0-0.1h1.6c21.5,0,41.7,10.4,54.2,28l0,0l0,0 c-12.5,17.6-32.7,28-54.2,28H21.7z M99.5,48.5l-22,0 M0,31.5h25 M0,65.5h25';\n var andData = 'M21.5,20.5h28a28,28,0,0,1,28,28v0a28,28,0,0,1-28,28h-28a0,0,0,0,1,0,0v-56a0,0,0,0,1,0,0Z M78,48.5 L 100,48.5Z M0,32.5 L 21.4,32.5Z M0,65.5 L 21.4,65.5Z';\n var notData = 'M75.5,50.5l-52,28v-56L75.5,50.5z M81.5,50.5h18 M1.5,50.5h22 M78.5,47.5c-1.7,0-3,1.3-3,3s1.3,3,3,3s3-1.3,3-3 S80.2,47.5,78.5,47.5z';\n /* tslint:enable */\n\n // defines the shapes connection points\n var orPort = [\n { id: 'Or_port1', offset: { x: 0.01, y: 0.1963 } }, { id: 'Or_port2', offset: { x: 0.26, y: 0.5 } },\n { id: 'Or_port3', offset: { x: 0.01, y: 0.805 } }, { id: 'Or_port4', offset: { x: 0.99, y: 0.5 } }\n ];\n var andPort = [\n { id: 'And_port1', offset: { x: 0.01, y: 0.215 } }, { id: 'And_port2', offset: { x: 0.22, y: 0.5 } },\n { id: 'And_port3', offset: { x: 0.01, y: 0.805 } }, { id: 'And_port4', offset: { x: 0.99, y: 0.5 } }\n ];\n var notPort = [\n { id: 'Not_port1', offset: { x: 0.01, y: 0.5 } }, { id: 'Not_port2', offset: { x: 0.99, y: 0.5 } }\n ];\n var flipPorts = [{ offset: { x: 0.01, y: 0.221 } }, { offset: { x: 0.01, y: 0.779 } }, { offset: { x: 0.99, y: 0.221 } }, { offset: { x: 0.99, y: 0.779 } }];\n var jkPorts = [{ offset: { x: 0.01, y: 0.270 } }, { offset: { x: 0.01, y: 0.5 } }, { offset: { x: 0.01, y: 0.720 } }, { offset: { x: 0.99, y: 0.270 } }, { offset: { x: 0.99, y: 0.720 } }, { offset: { x: 0.5, y: 0.01 } }, { offset: { x: 0.5, y: 0.99 } }];\n var rPorts = [{ offset: { x: 0.01, y: 0.210 } }, { offset: { x: 0.01, y: 0.778 } }, { offset: { x: 0.5, y: 0.218 } }, { offset: { x: 0.99, y: 0.210 } }, { offset: { x: 0.99, y: 0.778 } }];\n\n var decorator = {\n height: 12, width: 12, shape: 'Circle', style: { fill: 'white', strokeColor: '#444', strokeWidth: 1 }\n };\n\n var nodes = [createNode('OR1', 336, 161.5, 70, 104, orData, orPort),\n createNode('OR2', 336, 329, 70, 104, orData, orPort),\n createNode('OR3', 336, 470, 70, 104, orData, orPort),\n createNode('Not1', 157, 267, 58, 100, notData, notPort),\n createNode('Not2', 135, 329, 58, 100, notData, notPort),\n createNode('Not3', 157, 470, 58, 100, notData, notPort),\n createNode('And', 543, 329, 70, 104, andData, andPort)];\n\n /* tslint:disable */\n var connectors = [\n createConnector('line1', { x: 140, y: 130 }, null, null, 'OR1', null, 'Or_port1', decorator, null, { content: 'A', margin: { left: -20 } }, true),\n createConnector('line2', { x: 140, y: 161.5 }, null, null, 'OR1', null, 'Or_port2', decorator, null, { content: 'B', margin: { left: -20 } }, true),\n createConnector('line3', { x: 140, y: 195 }, null, null, 'OR1', null, 'Or_port3', decorator, null, { content: 'C', margin: { left: -20 } }, true),\n createConnector('line4', { x: 85, y: 267 }, null, null, 'Not1', null, 'Not_port1', decorator, null, { content: 'A', margin: { left: -20 } }),\n createConnector('line5', { x: 65, y: 329 }, null, null, 'Not2', null, 'Not_port1', decorator, null, { content: 'B', margin: { left: -20 } }),\n createConnector('line6', { x: 85, y: 470 }, null, null, 'Not3', null, 'Not_port1', decorator, null, { content: 'C', margin: { left: -20 } }),\n createConnector('line7', null, null, 'Not1', 'OR2', 'Not_port2', 'Or_port1', null, null, { content: 'A\\'', margin: { left: 0, top: -20 } }),\n createConnector('line8', null, null, 'Not2', 'OR2', 'Not_port2', 'Or_port2', null, null, { content: 'B\\'', margin: { left: 0, top: -20 } }),\n createConnector('line9', { x: 140, y: 380 }, null, null, 'OR2', null, 'Or_port3', decorator, null, {}, true),\n createConnector('line10', { x: 140, y: 420 }, null, null, 'OR3', null, 'Or_port1', decorator, null, {}, true),\n createConnector('line11', null, null, 'Not3', 'OR3', 'Not_port2', 'Or_port2', null, null, { content: 'B\\'', margin: { left: 0, top: -20 } }),\n createConnector('line12', { x: 140, y: 520 }, null, null, 'OR3', null, 'Or_port3', decorator, null, {}, true),\n createConnector('line13', null, null, 'OR1', 'And', 'Or_port4', 'And_port1', null, null, { content: '(A + B + C)', margin: { left: 0, top: -20 } }, true),\n createConnector('line14', null, null, 'OR2', 'And', 'Or_port4', 'And_port2', null, null, { content: '(A\\' + B\\' + C)', margin: { left: 0, top: -20 } }, true),\n createConnector('line15', null, null, 'OR3', 'And', 'Or_port4', 'And_port3', null, null, { content: '(A + B\\' + C)', margin: { left: 0, top: -20 } }, true),\n createConnector('line16', null, { x: 600, y: 329 }, 'And', null, 'And_port4', null, null, decorator, { content: 'F =(A+B+C)*(A+B\\'+C)*(A+B\\'+C)', margin: { left: -80, top: 60 } }, true, true)\n ];\n\n /* tslint:enable */\n\n //Initializes diagram control\n var diagram = new ej.diagrams.Diagram({\n //Initializes diagram control\n width: '100%', height: '100%',\n snapSettings: {\n constraints: ej.diagrams.SnapConstraints.All & ~(ej.diagrams.SnapConstraints.ShowLines | ej.diagrams.SnapConstraints.SnapToLines)\n },\n nodes: nodes,\n connectors: connectors,\n //defines default node properties\n getNodeDefaults: function (node) {\n node.style.strokeWidth = 1;\n node.style.strokeColor = '#444';\n // node.style.fill = '#444';\n },\n //defines default connector properties\n getConnectorDefaults: function (connector) {\n if (connector.id !== 'line16') {\n connector.targetDecorator.shape = 'None';\n connector.targetDecorator.style.strokeColor = '#444';\n connector.targetDecorator.style.fill = '#444';\n }\n connector.style = { strokeWidth: 1, strokeColor: '#444' };\n connector.cornerRadius = 5;\n return connector;\n },\n constraints: ej.diagrams.DiagramConstraints.Default | ej.diagrams.DiagramConstraints.Bridging\n });\n diagram.appendTo('#diagram');\n diagram.fitToPage();\n\n\n //defines nodes as logic gates on the symbol pate\n var items = [\n { id: 'Or', shape: { type: 'Path', data: orData }, ports: orPort },\n {\n id: 'Nor',\n shape: {\n type: 'Path', data: 'M21.7,76.5L21.7,76.5c6.4-18.1,6.4-37.8,0-55.9l0-0.1h1.6c21.5,0,41.7,10.4,54.2,28l0,0l0,0 c-12.5,17.6-32.7,28-54.2,28H21.7z M83.5,48.5h16 M1.5,32.5h24 M1.5,64.5h24 M80.5,45.5c-1.7,0-3,1.3-3,3s1.3,3,3,3s3-1.3,3-3 S82.2,45.5,80.5,45.5z'\n }\n },\n { id: 'And', shape: { type: 'Path', data: andData }, ports: andPort },\n {\n id: 'Nand',\n shape: {\n type: 'Path', data: 'M49.5,76.5h-28v-56h28c15.5,0,28,12.5,28,28v0C77.5,64,65,76.5,49.5,76.5z M83.5,48.5h16 M1.5,32.5h20 M1.5,65.5h20 M80.5,45.5c-1.7,0-3,1.3-3,3s1.3,3,3,3s3-1.3,3-3S82.2,45.5,80.5,45.5z'\n }\n },\n { id: 'not', shape: { type: 'Path', data: notData }, ports: notPort },\n {\n id: 'Buffer', ports: [{ offset: { x: 0.01, y: 0.5 } }, { offset: { x: 0.99, y: 0.5 } }],\n shape: { type: 'Path', data: 'M170.354,66.6523000000002L199.753,83.6253000000002L170.354,100.5983L170.354,66.6523000000002zM199.7534,83.6255000000001L214.5004,83.6255000000001M154.5,83.6255000000001L170.354,83.6255000000001' },\n },\n {\n id: 'NorGate', ports: [{ offset: { x: 0.01, y: 0.19 } }, { offset: { x: 0.01, y: 0.809 } }, { offset: { x: 0.99, y: 0.5 } }],\n shape: {\n type: 'Path', data: 'M14.5055,0.00562288 C14.3031,0.00562288 14.1078,0.0433293 13.9072,0.0542443 L13.9072,49.959 C14.1078,49.9699 14.3031,50.0079 14.5055,50.0079 C23.223,50.0079 30.29,28.3205 30.29,25.004 C30.29,22.2835 23.223,0.00562288 14.5055,0.00562288 z M13.9074,9.48911 L-0.00120828,9.48911 M13.9074,40.5218 L-0.00120828,40.5218 M36.3023,25.005 L50.0033,25.005 M36.2352,25.005 C36.2352,29.5191 35.0457,33.1879 33.5781,33.1879 C32.1105,33.1879 30.921,29.5191 30.921,25.005 C30.921,20.4908 32.1105,16.8223 33.5781,16.8223 C35.0457,16.8223 36.2352,20.4908 36.2352,25.005 z'\n },\n },\n {\n id: 'XorGate', ports: orPort,\n shape: {\n type: 'Path', data: 'M21.7,76.5L21.7,76.5c6.4-18.1,6.4-37.8,0-55.9l0-0.1h1.6c21.5,0,41.7,10.4,54.2,28l0,0l0,0 c-12.5,17.6-32.7,28-54.2,28H21.7z M73.4,48.5L73.4,48.5 M17.5,76.8L17.5,76.8c6.7-18.2,6.7-38.1,0-56.3l0-0.1 M77.5,48.5h22 M0,32.5h21 M0,65.5h21'\n }\n },\n {\n id: 'ChEmitter', ports: orPort,\n shape: {\n type: 'Path', data: 'M75.5,49.5l-52,28v-56L75.5,49.5z M75.5,49.5h24 M1.5,49.5h22 M44.5,45.5h-5v8h5V45.5z M39.5,45.5h10 M34.5,53.5h10'\n }\n },\n {\n id: 'NandGate1', ports: jkPorts,\n shape: {\n type: 'Path', data: 'M173.2472,549L173.2472,539 M173.2472,466L173.2472,456 M154.6192,523L145.2472,518.305L145.2472,527.695L154.6192,523z M191.2472,518L197.2472,518 M125.2472,523L145.2472,523 M125.2472,482L145.2472,482 M201.2472,523L221.2472,523 M201.2472,482L221.2472,482 M196.2262,523.597C196.2162,524.421,196.0452,525.053,195.7132,525.494C195.3812,525.935,194.9122,526.156,194.3072,526.156C193.7012,526.156,193.2282,525.921,192.8892,525.453C192.5482,524.984,192.3782,524.343,192.3782,523.529L192.3782,523.006C192.3882,522.206,192.5622,521.58,192.9022,521.129C193.2432,520.678,193.7082,520.453,194.2972,520.453C194.9152,520.453,195.3922,520.68,195.7252,521.134C196.0592,521.588,196.2262,522.233,196.2262,523.07L196.2262,523.597z M197.1632,523.075C197.1632,522.381,197.0462,521.775,196.8112,521.256C196.5772,520.737,196.2422,520.339,195.8092,520.062C195.3732,519.785,194.8702,519.647,194.2972,519.647C193.7372,519.647,193.2402,519.786,192.8052,520.064C192.3712,520.343,192.0342,520.744,191.7972,521.268C191.5592,521.792,191.4402,522.396,191.4402,523.08L191.4402,523.592C191.4472,524.263,191.5702,524.853,191.8092,525.362C192.0492,525.872,192.3852,526.264,192.8172,526.539C193.2502,526.814,193.7472,526.952,194.3072,526.952C194.5672,526.952,194.8142,526.922,195.0492,526.864L196.5482,528.055L197.1872,527.464L195.9182,526.468C196.3112,526.188,196.6182,525.8,196.8362,525.304C197.0542,524.807,197.1632,524.216,197.1632,523.529L197.1632,523.075z M174.1562,473.249C174.4002,473.439,174.5222,473.709,174.5222,474.057C174.5222,474.405,174.3912,474.681,174.1272,474.882C173.8632,475.084,173.4842,475.185,172.9892,475.185C172.4592,475.185,172.0352,475.061,171.7172,474.812C171.4002,474.562,171.2412,474.223,171.2412,473.793L170.2992,473.793C170.2992,474.207,170.4142,474.576,170.6432,474.902C170.8732,475.228,171.1992,475.484,171.6222,475.671C172.0452,475.858,172.5012,475.952,172.9892,475.952C173.7412,475.952,174.3422,475.778,174.7912,475.432C175.2402,475.085,175.4652,474.624,175.4652,474.047C175.4652,473.686,175.3852,473.372,175.2232,473.105C175.0622,472.838,174.8142,472.604,174.4802,472.404C174.1472,472.204,173.6852,472.021,173.0942,471.854C172.5042,471.688,172.0852,471.505,171.8402,471.304C171.5942,471.104,171.4712,470.858,171.4712,470.568C171.4712,470.206,171.6002,469.923,171.8592,469.719C172.1172,469.516,172.4782,469.414,172.9402,469.414C173.4382,469.414,173.8242,469.537,174.0982,469.784C174.3712,470.03,174.5082,470.369,174.5082,470.8L175.4502,470.8C175.4502,470.406,175.3462,470.043,175.1352,469.711C174.9262,469.379,174.6292,469.119,174.2462,468.93C173.8642,468.741,173.4292,468.647,172.9402,468.647C172.2252,468.647,171.6432,468.83,171.1952,469.196C170.7472,469.562,170.5232,470.025,170.5232,470.585C170.5232,471.08,170.7072,471.496,171.0722,471.833C171.4392,472.17,172.0242,472.454,172.8282,472.685C173.4702,472.871,173.9122,473.059,174.1562,473.249z M171.6712,528.511L173.1062,528.511C173.6012,528.515,173.9792,528.633,174.2422,528.868C174.5042,529.103,174.6352,529.44,174.6352,529.881C174.6352,530.285,174.4972,530.608,174.2232,530.85C173.9472,531.091,173.5772,531.211,173.1112,531.211L171.6712,531.211L171.6712,528.511z M174.8842,534.854L175.8902,534.854L175.8902,534.795L174.2202,531.778C174.6462,531.615,174.9782,531.369,175.2192,531.041C175.4572,530.712,175.5772,530.326,175.5772,529.883C175.5772,529.187,175.3612,528.656,174.9302,528.292C174.4992,527.927,173.8832,527.745,173.0822,527.745L170.7282,527.745L170.7282,534.854L171.6712,534.854L171.6712,531.978L173.3412,531.978L174.8842,534.854z M196.2262,482.597C196.2162,483.421,196.0452,484.053,195.7132,484.494C195.3812,484.935,194.9122,485.156,194.3072,485.156C193.7012,485.156,193.2282,484.921,192.8892,484.453C192.5482,483.984,192.3782,483.343,192.3782,482.529L192.3782,482.006C192.3882,481.206,192.5622,480.58,192.9022,480.129C193.2432,479.678,193.7082,479.453,194.2972,479.453C194.9152,479.453,195.3922,479.68,195.7252,480.134C196.0592,480.588,196.2262,481.233,196.2262,482.07L196.2262,482.597z M197.1632,482.075C197.1632,481.381,197.0462,480.775,196.8112,480.256C196.5772,479.737,196.2422,479.339,195.8092,479.062C195.3732,478.785,194.8702,478.647,194.2972,478.647C193.7372,478.647,193.2402,478.786,192.8052,479.064C192.3712,479.343,192.0342,479.744,191.7972,480.268C191.5592,480.792,191.4402,481.396,191.4402,482.08L191.4402,482.592C191.4472,483.263,191.5702,483.853,191.8092,484.362C192.0492,484.872,192.3852,485.264,192.8172,485.539C193.2502,485.814,193.7472,485.952,194.3072,485.952C194.5672,485.952,194.8142,485.922,195.0492,485.864L196.5482,487.055L197.1872,486.464L195.9182,485.468C196.3112,485.188,196.6182,484.8,196.8362,484.304C197.0542,483.807,197.1632,483.216,197.1632,482.529L197.1632,482.075z M173.0302,499.315C174.0512,499.315,174.8302,499.641,175.3662,500.29C175.9022,500.94,176.1712,501.881,176.1712,503.113L176.1712,503.745C176.1602,504.956,175.8782,505.885,175.3232,506.532C174.7682,507.179,173.9732,507.503,172.9362,507.503L171.6472,507.503L171.6472,499.315L173.0302,499.315z M172.9442,509.097C173.9712,509.097,174.8812,508.875,175.6752,508.433C176.4692,507.99,177.0812,507.36,177.5112,506.542C177.9402,505.725,178.1552,504.776,178.1552,503.698L178.1552,503.128C178.1552,502.065,177.9412,501.123,177.5152,500.3C177.0882,499.477,176.4842,498.842,175.7062,498.394C174.9282,497.946,174.0352,497.722,173.0302,497.722L169.6712,497.722L169.6712,509.097L172.9442,509.097z M150.7652,479.511C151.4612,479.518,151.9992,479.745,152.3792,480.193C152.7582,480.641,152.9472,481.269,152.9472,482.077L152.9472,482.492C152.9472,483.323,152.7462,483.963,152.3442,484.413C151.9422,484.863,151.3802,485.087,150.6572,485.087L149.6712,485.087L149.6712,479.511L150.7652,479.511z M150.7012,485.854C151.3392,485.848,151.8982,485.709,152.3792,485.439C152.8582,485.169,153.2282,484.781,153.4862,484.277C153.7462,483.772,153.8752,483.185,153.8752,482.514L153.8752,482.06C153.8722,481.406,153.7402,480.826,153.4822,480.322C153.2232,479.817,152.8562,479.428,152.3812,479.155C151.9052,478.881,151.3582,478.745,150.7402,478.745L148.7332,478.745L148.7332,485.854L150.7012,485.854z M145.2382,466L201.2552,466L201.2552,539L145.2382,539z'\n }\n },\n {\n id: 'Flipflop', ports: flipPorts,\n shape: {\n type: 'Path', data: 'M21.5,13.5h57v73h-57V13.5z M29.8,26.2h-5.4V27h2.2v6.4h0.9V27h2.2V26.2z M54.2,45.2h-9v1.5h3.5v9.9h1.9v-9.9 h3.6V45.2z M74.5,29.2c0-0.9-0.3-1.6-0.8-2.2c-0.5-0.6-1.2-0.9-2.1-0.9c-0.8,0-1.5,0.3-2,0.9s-0.8,1.3-0.8,2.2v1.3 c0,0.9,0.3,1.6,0.8,2.2s1.2,0.9,2,0.9c0.2,0,0.3,0,0.5,0c0.2,0,0.3-0.1,0.5-0.1l1.3,1.2l0.6-0.6l-1.2-1.1c0.4-0.3,0.7-0.6,0.9-1.1 s0.3-0.9,0.3-1.4V29.2z M73.6,30.4c0,0.7-0.2,1.2-0.5,1.6c-0.4,0.4-0.8,0.6-1.5,0.6c-0.6,0-1-0.2-1.4-0.6c-0.3-0.4-0.5-1-0.5-1.6 v-1.3c0-0.7,0.2-1.2,0.5-1.6c0.3-0.4,0.8-0.6,1.4-0.6c0.6,0,1.1,0.2,1.5,0.6s0.5,1,0.5,1.6V30.4z M74.5,70.2c0-0.9-0.3-1.6-0.8-2.2 c-0.5-0.6-1.2-0.9-2.1-0.9c-0.8,0-1.5,0.3-2,0.9s-0.8,1.3-0.8,2.2v1.3c0,0.9,0.3,1.6,0.8,2.2s1.2,0.9,2,0.9c0.2,0,0.3,0,0.5,0 c0.2,0,0.3-0.1,0.5-0.1l1.3,1.2l0.6-0.6l-1.2-1.1c0.4-0.3,0.7-0.6,0.9-1.1s0.3-0.9,0.3-1.4V70.2z M73.6,71.4c0,0.7-0.2,1.2-0.5,1.6 c-0.4,0.4-0.8,0.6-1.5,0.6c-0.6,0-1-0.2-1.4-0.6c-0.3-0.4-0.5-1-0.5-1.6v-1.3c0-0.7,0.2-1.2,0.5-1.6c0.3-0.4,0.8-0.6,1.4-0.6 c0.6,0,1.1,0.2,1.5,0.6s0.5,1,0.5,1.6V71.4z M78.5,29.5h20 M78.5,70.5h20 M1.5,29.5h20 M1.5,70.5h20 M68.5,65.5h6 M31.5,70.5l-10-5 v10L31.5,70.5z'\n }\n },\n {\n id: 'RSLatch', ports: flipPorts,\n shape: {\n type: 'Path', data: 'M21.5,11.5h57v73h-57V11.5z M28.5,30.4c-0.3,0.2-0.7,0.3-1.2,0.3c-0.5,0-0.9-0.1-1.3-0.4 c-0.3-0.2-0.5-0.6-0.5-1.1h-0.9c0,0.7,0.3,1.2,0.8,1.6c0.5,0.4,1.2,0.6,1.9,0.6c0.8,0,1.4-0.2,1.8-0.5c0.5-0.3,0.7-0.8,0.7-1.4 c0-0.5-0.2-1-0.6-1.3c-0.4-0.4-1-0.6-1.7-0.8c-0.7-0.2-1.1-0.3-1.4-0.5c-0.3-0.2-0.4-0.5-0.4-0.8c0-0.4,0.1-0.6,0.4-0.9 s0.6-0.3,1.1-0.3c0.5,0,0.9,0.1,1.2,0.4s0.4,0.6,0.4,1h0.9c0-0.6-0.2-1.1-0.7-1.5s-1.1-0.6-1.9-0.6c-0.7,0-1.3,0.2-1.8,0.5 c-0.4,0.4-0.7,0.8-0.7,1.4c0,0.5,0.2,1,0.6,1.3s1,0.6,1.8,0.8c0.6,0.2,1.1,0.3,1.3,0.6s0.4,0.5,0.4,0.8 C28.9,29.9,28.8,30.2,28.5,30.4z M27.7,69.3c0.4,0,0.7,0.1,0.9,0.3s0.3,0.5,0.3,0.9v0.6c0,0.2,0,0.4,0.1,0.7s0.1,0.4,0.2,0.5h0.9 v-0.1c-0.1-0.1-0.2-0.3-0.3-0.4s-0.1-0.4-0.1-0.6v-0.7c0-0.4-0.1-0.8-0.3-1.1c-0.2-0.3-0.5-0.5-0.9-0.6c0.4-0.2,0.7-0.4,0.9-0.6 c0.2-0.3,0.3-0.6,0.3-1c0-0.7-0.2-1.2-0.6-1.5c-0.4-0.3-1-0.5-1.8-0.5H25v7.1h0.9v-3.1H27.7z M25.9,66h1.6c0.5,0,0.9,0.1,1.1,0.3 s0.4,0.5,0.4,0.9c0,0.4-0.1,0.8-0.4,1c-0.2,0.2-0.6,0.3-1.2,0.3h-1.6V66z M49.5,54.6c1.6,0,2.9-0.4,3.8-1.3c0.9-0.9,1.4-2.1,1.4-3.6 v-1.5c0-1.5-0.5-2.7-1.4-3.6c-0.9-0.9-2.1-1.4-3.7-1.4H46v11.4H49.5z M49.5,44.7c1.1,0,1.9,0.3,2.4,0.9c0.5,0.6,0.8,1.4,0.8,2.5v1.5 c0,1.1-0.3,1.9-0.8,2.5s-1.4,0.9-2.5,0.9h-1.5v-8.3H49.5z M74.5,27.2c0-0.9-0.3-1.6-0.8-2.2c-0.5-0.6-1.2-0.9-2.1-0.9 c-0.8,0-1.5,0.3-2,0.9s-0.8,1.3-0.8,2.2v1.3c0,0.9,0.3,1.6,0.8,2.2s1.2,0.9,2,0.9c0.2,0,0.3,0,0.5,0c0.2,0,0.3-0.1,0.5-0.1l1.3,1.2 l0.6-0.6l-1.2-1.1c0.4-0.3,0.7-0.6,0.9-1.1s0.3-0.9,0.3-1.4V27.2z M73.6,28.4c0,0.7-0.2,1.2-0.5,1.6c-0.4,0.4-0.8,0.6-1.5,0.6 c-0.6,0-1-0.2-1.4-0.6c-0.3-0.4-0.5-1-0.5-1.6v-1.3c0-0.7,0.2-1.2,0.5-1.6c0.3-0.4,0.8-0.6,1.4-0.6c0.6,0,1.1,0.2,1.5,0.6 s0.5,1,0.5,1.6V28.4z M74.5,68.2c0-0.9-0.3-1.6-0.8-2.2c-0.5-0.6-1.2-0.9-2.1-0.9c-0.8,0-1.5,0.3-2,0.9s-0.8,1.3-0.8,2.2v1.3 c0,0.9,0.3,1.6,0.8,2.2s1.2,0.9,2,0.9c0.2,0,0.3,0,0.5,0c0.2,0,0.3-0.1,0.5-0.1l1.3,1.2l0.6-0.6l-1.2-1.1c0.4-0.3,0.7-0.6,0.9-1.1 s0.3-0.9,0.3-1.4V68.2z M73.6,69.4c0,0.7-0.2,1.2-0.5,1.6c-0.4,0.4-0.8,0.6-1.5,0.6c-0.6,0-1-0.2-1.4-0.6c-0.3-0.4-0.5-1-0.5-1.6 v-1.3c0-0.7,0.2-1.2,0.5-1.6c0.3-0.4,0.8-0.6,1.4-0.6c0.6,0,1.1,0.2,1.5,0.6s0.5,1,0.5,1.6V69.4z M78.5,27.5h20 M78.5,68.5h20 M1.5,27.5h20 M1.5,68.5h20 M68.5,63.5h6'\n }\n },\n {\n id: 'RSLatchSync', ports: rPorts,\n shape: {\n type: 'Path', data: 'M21.5,11.5h56v72h-56V11.5z M28.5,29.4c-0.3,0.2-0.7,0.3-1.2,0.3c-0.5,0-0.9-0.1-1.3-0.4 c-0.3-0.2-0.5-0.6-0.5-1.1h-0.9c0,0.7,0.3,1.2,0.8,1.6c0.5,0.4,1.2,0.6,1.9,0.6c0.8,0,1.4-0.2,1.8-0.5c0.5-0.3,0.7-0.8,0.7-1.4 c0-0.5-0.2-1-0.6-1.3c-0.4-0.4-1-0.6-1.7-0.8c-0.7-0.2-1.1-0.3-1.4-0.5c-0.3-0.2-0.4-0.5-0.4-0.8c0-0.4,0.1-0.6,0.4-0.9 s0.6-0.3,1.1-0.3c0.5,0,0.9,0.1,1.2,0.4s0.4,0.6,0.4,1h0.9c0-0.6-0.2-1.1-0.7-1.5s-1.1-0.6-1.9-0.6c-0.7,0-1.3,0.2-1.8,0.5 c-0.4,0.4-0.7,0.8-0.7,1.4c0,0.5,0.2,1,0.6,1.3s1,0.6,1.8,0.8c0.6,0.2,1.1,0.3,1.3,0.6s0.4,0.5,0.4,0.8 C28.9,28.9,28.8,29.2,28.5,29.4z M27.7,67.3c0.4,0,0.7,0.1,0.9,0.3s0.3,0.5,0.3,0.9v0.6c0,0.2,0,0.4,0.1,0.7s0.1,0.4,0.2,0.5h0.9 v-0.1c-0.1-0.1-0.2-0.3-0.3-0.4s-0.1-0.4-0.1-0.6v-0.7c0-0.4-0.1-0.8-0.3-1.1c-0.2-0.3-0.5-0.5-0.9-0.6c0.4-0.2,0.7-0.4,0.9-0.6 c0.2-0.3,0.3-0.6,0.3-1c0-0.7-0.2-1.2-0.6-1.5c-0.4-0.3-1-0.5-1.8-0.5H25v7.1h0.9v-3.1H27.7z M25.9,64h1.6c0.5,0,0.9,0.1,1.1,0.3 s0.4,0.5,0.4,0.9c0,0.4-0.1,0.8-0.4,1c-0.2,0.2-0.6,0.3-1.2,0.3h-1.6V64z M73.5,26.2c0-0.9-0.3-1.6-0.8-2.2 c-0.5-0.6-1.2-0.9-2.1-0.9c-0.8,0-1.5,0.3-2,0.9s-0.8,1.3-0.8,2.2v1.3c0,0.9,0.3,1.6,0.8,2.2s1.2,0.9,2,0.9c0.2,0,0.3,0,0.5,0 c0.2,0,0.3-0.1,0.5-0.1l1.3,1.2l0.6-0.6l-1.2-1.1c0.4-0.3,0.7-0.6,0.9-1.1s0.3-0.9,0.3-1.4V26.2z M72.6,27.4c0,0.7-0.2,1.2-0.5,1.6 c-0.4,0.4-0.8,0.6-1.5,0.6c-0.6,0-1-0.2-1.4-0.6c-0.3-0.4-0.5-1-0.5-1.6v-1.3c0-0.7,0.2-1.2,0.5-1.6c0.3-0.4,0.8-0.6,1.4-0.6 c0.6,0,1.1,0.2,1.5,0.6s0.5,1,0.5,1.6V27.4z M73.5,67.2c0-0.9-0.3-1.6-0.8-2.2c-0.5-0.6-1.2-0.9-2.1-0.9c-0.8,0-1.5,0.3-2,0.9 s-0.8,1.3-0.8,2.2v1.3c0,0.9,0.3,1.6,0.8,2.2s1.2,0.9,2,0.9c0.2,0,0.3,0,0.5,0c0.2,0,0.3-0.1,0.5-0.1l1.3,1.2l0.6-0.6l-1.2-1.1 c0.4-0.3,0.7-0.6,0.9-1.1s0.3-0.9,0.3-1.4V67.2z M72.6,68.4c0,0.7-0.2,1.2-0.5,1.6c-0.4,0.4-0.8,0.6-1.5,0.6c-0.6,0-1-0.2-1.4-0.6 c-0.3-0.4-0.5-1-0.5-1.6v-1.3c0-0.7,0.2-1.2,0.5-1.6c0.3-0.4,0.8-0.6,1.4-0.6c0.6,0,1.1,0.2,1.5,0.6s0.5,1,0.5,1.6V68.4z M77.5,26.5 h20 M77.5,67.5h20 M1.5,26.5h20 M1.5,67.5h20 M67.5,62.5h6 M1.5,47.5h20 M30.9,47.5l-9.4-4.7v9.4L30.9,47.5z'\n }\n },\n {\n id: 'JKflipflop', ports: jkPorts,\n shape: {\n type: 'Path', data: 'M22.5,14.5h56v72h-56V14.5z M28.9,31.4c0,0.4-0.1,0.7-0.3,1s-0.5,0.4-0.9,0.4c-0.4,0-0.8-0.1-1-0.3 s-0.3-0.6-0.3-1h-0.9c0,0.7,0.2,1.2,0.6,1.5c0.4,0.3,0.9,0.5,1.6,0.5c0.6,0,1.2-0.2,1.6-0.5s0.6-0.9,0.6-1.5v-5.1h-0.9V31.4z M30.4,73.4h1.1l-3-3.7l2.8-3.4h-1l-2.6,3.2H27v-3.2H26v7.1H27v-3.2h0.9L30.4,73.4z M74.5,29.2c0-0.9-0.3-1.6-0.8-2.2 c-0.5-0.6-1.2-0.9-2.1-0.9c-0.8,0-1.5,0.3-2,0.9s-0.8,1.3-0.8,2.2v1.3c0,0.9,0.3,1.6,0.8,2.2s1.2,0.9,2,0.9c0.2,0,0.3,0,0.5,0 c0.2,0,0.3-0.1,0.5-0.1l1.3,1.2l0.6-0.6l-1.2-1.1c0.4-0.3,0.7-0.6,0.9-1.1s0.3-0.9,0.3-1.4V29.2z M73.6,30.4c0,0.7-0.2,1.2-0.5,1.6 c-0.4,0.4-0.8,0.6-1.5,0.6c-0.6,0-1-0.2-1.4-0.6c-0.3-0.4-0.5-1-0.5-1.6v-1.3c0-0.7,0.2-1.2,0.5-1.6c0.3-0.4,0.8-0.6,1.4-0.6 c0.6,0,1.1,0.2,1.5,0.6s0.5,1,0.5,1.6V30.4z M74.5,70.2c0-0.9-0.3-1.6-0.8-2.2c-0.5-0.6-1.2-0.9-2.1-0.9c-0.8,0-1.5,0.3-2,0.9 s-0.8,1.3-0.8,2.2v1.3c0,0.9,0.3,1.6,0.8,2.2s1.2,0.9,2,0.9c0.2,0,0.3,0,0.5,0c0.2,0,0.3-0.1,0.5-0.1l1.3,1.2l0.6-0.6l-1.2-1.1 c0.4-0.3,0.7-0.6,0.9-1.1s0.3-0.9,0.3-1.4V70.2z M73.6,71.4c0,0.7-0.2,1.2-0.5,1.6c-0.4,0.4-0.8,0.6-1.5,0.6c-0.6,0-1-0.2-1.4-0.6 c-0.3-0.4-0.5-1-0.5-1.6v-1.3c0-0.7,0.2-1.2,0.5-1.6c0.3-0.4,0.8-0.6,1.4-0.6c0.6,0,1.1,0.2,1.5,0.6s0.5,1,0.5,1.6V71.4z M50.7,80.3 c0.4,0,0.7,0.1,0.9,0.3s0.3,0.5,0.3,0.9v0.6c0,0.2,0,0.4,0.1,0.7s0.1,0.4,0.2,0.5h0.9v-0.1c-0.1-0.1-0.2-0.3-0.3-0.4 s-0.1-0.4-0.1-0.6v-0.7c0-0.4-0.1-0.8-0.3-1.1c-0.2-0.3-0.5-0.5-0.9-0.6c0.4-0.2,0.7-0.4,0.9-0.6c0.2-0.3,0.3-0.6,0.3-1 c0-0.7-0.2-1.2-0.6-1.5c-0.4-0.3-1-0.5-1.8-0.5H48v7.1h0.9v-3.1H50.7z M48.9,77h1.6c0.5,0,0.9,0.1,1.1,0.3s0.4,0.5,0.4,0.9 c0,0.4-0.1,0.8-0.4,1c-0.2,0.2-0.6,0.3-1.2,0.3h-1.6V77z M51.5,23.4c-0.3,0.2-0.7,0.3-1.2,0.3c-0.5,0-0.9-0.1-1.3-0.4 c-0.3-0.2-0.5-0.6-0.5-1.1h-0.9c0,0.7,0.3,1.2,0.8,1.6c0.5,0.4,1.2,0.6,1.9,0.6c0.8,0,1.4-0.2,1.8-0.5c0.5-0.3,0.7-0.8,0.7-1.4 c0-0.5-0.2-1-0.6-1.3c-0.4-0.4-1-0.6-1.7-0.8c-0.7-0.2-1.1-0.3-1.4-0.5c-0.3-0.2-0.4-0.5-0.4-0.8c0-0.4,0.1-0.6,0.4-0.9 s0.6-0.3,1.1-0.3c0.5,0,0.9,0.1,1.2,0.4s0.4,0.6,0.4,1h0.9c0-0.6-0.2-1.1-0.7-1.5s-1.1-0.6-1.9-0.6c-0.7,0-1.3,0.2-1.8,0.5 c-0.4,0.4-0.7,0.8-0.7,1.4c0,0.5,0.2,1,0.6,1.3s1,0.6,1.8,0.8c0.6,0.2,1.1,0.3,1.3,0.6s0.4,0.5,0.4,0.8 C51.9,22.9,51.8,23.2,51.5,23.4z M78.5,29.5h20 M78.5,70.5h20 M2.5,29.5h20 M2.5,70.5h20 M68.5,65.5h6 M2.5,50.5h20 M31.9,51.5 l-9.4-4.7v9.4L31.9,51.5z M50.5,14.5v-10 M50.5,96.5v-10'\n }\n },\n {\n id: 'Dflipflop', ports: flipPorts,\n shape: {\n type: 'Path', data: 'M21.2,13.5h57v73h-57V13.5z M78.2,29.5h20 M78.2,70.5h20 M1.2,29.5h20 M1.2,70.5h20 M26.6,33.4 c0.6,0,1.2-0.1,1.7-0.4c0.5-0.3,0.8-0.7,1.1-1.2c0.3-0.5,0.4-1.1,0.4-1.8v-0.5c0-0.7-0.1-1.2-0.4-1.7c-0.3-0.5-0.6-0.9-1.1-1.2 s-1-0.4-1.6-0.4h-2v7.1H26.6z M26.7,27c0.7,0,1.2,0.2,1.6,0.7c0.4,0.4,0.6,1.1,0.6,1.9V30c0,0.8-0.2,1.5-0.6,1.9 c-0.4,0.4-1,0.7-1.7,0.7h-1V27H26.7z M48.9,56.6c1,0,1.9-0.2,2.7-0.7c0.8-0.4,1.4-1.1,1.8-1.9c0.4-0.8,0.6-1.8,0.6-2.8v-0.6 c0-1.1-0.2-2-0.6-2.8c-0.4-0.8-1-1.5-1.8-1.9c-0.8-0.4-1.7-0.7-2.7-0.7h-3.4v11.4H48.9z M48.9,46.8c1,0,1.8,0.3,2.3,1 c0.5,0.7,0.8,1.6,0.8,2.8v0.6c0,1.2-0.3,2.1-0.8,2.8s-1.4,1-2.4,1h-1.3v-8.2H48.9z M74.1,29.6c0-0.7-0.1-1.3-0.4-1.8s-0.6-0.9-1-1.2 c-0.4-0.3-0.9-0.4-1.5-0.4c-0.6,0-1.1,0.1-1.5,0.4c-0.4,0.3-0.8,0.7-1,1.2s-0.4,1.1-0.4,1.8v0.5c0,0.7,0.1,1.3,0.4,1.8 c0.2,0.5,0.6,0.9,1,1.2s0.9,0.4,1.5,0.4c0.3,0,0.5,0,0.7-0.1l1.5,1.2l0.6-0.6l-1.3-1c0.4-0.3,0.7-0.7,0.9-1.2s0.3-1.1,0.3-1.8V29.6z M73.1,30.1c0,0.8-0.2,1.5-0.5,1.9s-0.8,0.7-1.4,0.7s-1.1-0.2-1.4-0.7c-0.3-0.5-0.5-1.1-0.5-1.9v-0.5c0-0.8,0.2-1.4,0.5-1.9 c0.3-0.5,0.8-0.7,1.4-0.7c0.6,0,1.1,0.2,1.4,0.7c0.3,0.5,0.5,1.1,0.5,1.9V30.1z M74.1,70.6c0-0.7-0.1-1.3-0.4-1.8s-0.6-0.9-1-1.2 c-0.4-0.3-0.9-0.4-1.5-0.4c-0.6,0-1.1,0.1-1.5,0.4c-0.4,0.3-0.8,0.7-1,1.2s-0.4,1.1-0.4,1.8v0.5c0,0.7,0.1,1.3,0.4,1.8 c0.2,0.5,0.6,0.9,1,1.2s0.9,0.4,1.5,0.4c0.3,0,0.5,0,0.7-0.1l1.5,1.2l0.6-0.6l-1.3-1c0.4-0.3,0.7-0.7,0.9-1.2s0.3-1.1,0.3-1.8V70.6z M73.1,71.1c0,0.8-0.2,1.5-0.5,1.9s-0.8,0.7-1.4,0.7s-1.1-0.2-1.4-0.7c-0.3-0.5-0.5-1.1-0.5-1.9v-0.5c0-0.8,0.2-1.4,0.5-1.9 c0.3-0.5,0.8-0.7,1.4-0.7c0.6,0,1.1,0.2,1.4,0.7c0.3,0.5,0.5,1.1,0.5,1.9V71.1z M68.2,65.5h6 M31.2,70.5l-10-5v10L31.2,70.5z'\n }\n },\n\n ];\n /* tslint:enable */\n\n var connections = [\n {\n id: 'Link1', type: 'Orthogonal', sourcePoint: { x: 20, y: 20 }, targetPoint: { x: 60, y: 60 },cornerRadius: 5,\n targetDecorator: { shape: 'None' }, style: { strokeWidth: 1, strokeColor: '#444' }\n },\n {\n id: 'Link11', type: 'Orthogonal', sourcePoint: { x: 20, y: 20 }, targetPoint: { x: 60, y: 60 },cornerRadius: 5,\n targetDecorator: { shape: 'None' }, style: { strokeWidth: 1, strokeDashArray: '5,5', strokeColor: '#444' }\n },\n {\n id: 'Link21', type: 'Straight', sourcePoint: { x: 20, y: 20 }, targetPoint: { x: 60, y: 60 },\n targetDecorator: { shape: 'None' }, style: { strokeWidth: 1, strokeColor: '#444' }\n },\n {\n id: 'Link22', type: 'Straight', sourcePoint: { x: 20, y: 20 }, targetPoint: { x: 60, y: 60 },\n targetDecorator: { shape: 'None' }, style: { strokeWidth: 1, strokeDashArray: '5,5', strokeColor: '#444' }\n },\n {\n id: 'Link3', type: 'Orthogonal', sourcePoint: { x: 20, y: 20 }, targetPoint: { x: 60, y: 60 }, cornerRadius: 5,\n targetDecorator: { shape: 'None' }, style: { strokeWidth: 1, strokeColor: '#444' }\n },\n {\n id: 'Link31', type: 'Orthogonal', sourcePoint: { x: 20, y: 20 }, targetPoint: { x: 60, y: 60 }, cornerRadius: 5,\n targetDecorator: { shape: 'None' }, style: { strokeWidth: 1, strokeDashArray: '5,5', strokeColor: '#444' }\n },\n ];\n\n\n //Initializes the symbol palette\n var palette = new ej.diagrams.SymbolPalette({\n //Initializes symbol palette control\n expandMode: 'Multiple',\n palettes: [\n { id: 'flow', expanded: true, symbols: items, title: 'Logic Gates' },\n { id: 'connectors', expanded: true, symbols: connections, title: 'Connectors' },\n ],\n width: '100%', height: '100%',\n symbolMargin: { left: 10, right: 10, top: 10, bottom: 10 },\n symbolHeight: 60, symbolWidth: 62,\n getNodeDefaults: function (symbol) {\n symbol.width = 55;\n symbol.height = 40;\n symbol.offsetX = 20;\n symbol.offsetY = 20;\n symbol.style = { fill: 'white', strokeWidth: 1, strokeColor: '#444' };\n },\n symbolPreview: { height: 50, width: 50 },\n getSymbolInfo: function () {\n return { fit: true };\n }\n });\n palette.appendTo('#symbolpalette');\n\n\n\n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}/**\n * Logic circuit sample\n */\n\nvar nodeY = 30;\n// Create nodes as logic gates\nfunction createNode(\n id, offsetX, offsetY, height,\n width, pathData, ports) {\n // update node properties\n var node = {};\n node.id = id;\n node.offsetX = offsetX;\n node.offsetY = offsetY - nodeY;\n node.height = height;\n node.width = width;\n node.shape = { type: 'Path', data: pathData };\n node.ports = ports;\n return node;\n}\n\n// Create Connectors to connect two logic gates\nfunction createConnector(\n id,\n sourcePoint, targetPoint,\n sourceID, targetID,\n sourcePortID, targetPortID,\n sourceDecorator, targetDecorator,\n annotation, segments, isStraight) {\n // update connector properties\n var connector = {};\n connector.id = id;\n if (sourcePoint) {\n connector.sourcePoint = { x: sourcePoint.x, y: sourcePoint.y - nodeY };\n }\n if (targetPoint) {\n connector.targetPoint = { x: targetPoint.x, y: targetPoint.y - nodeY };\n }\n connector.sourceID = sourceID;\n connector.targetID = targetID;\n connector.type = isStraight ? 'Straight' : 'Orthogonal';\n connector.sourcePortID = sourcePortID;\n connector.targetPortID = targetPortID;\n // update connector annotation properties\n connector.annotations = [{\n content: annotation.content, offset: 0, margin: {\n left: (annotation.margin && annotation.margin.left) ? annotation.margin.left : 0,\n top: (annotation.margin && annotation.margin.top) ? annotation.margin.top : 0,\n },\n style: {\n //bold: true,\n fontFamily: 'Segoe UI',\n textWrapping: 'NoWrap', fontSize: 14,\n }\n }];\n // update connector decorators\n connector.sourceDecorator = sourceDecorator;\n connector.targetDecorator = targetDecorator;\n // update connector segments\n if (segments) {\n connector.segments = [{ length: 100, direction: 'Right', type: 'Orthogonal' }];\n }\n return connector;\n}\n\n\n\n /* tslint:disable */\n var orData = 'M21.7,76.5L21.7,76.5c6.4-18.1,6.4-37.8,0-55.9l0-0.1h1.6c21.5,0,41.7,10.4,54.2,28l0,0l0,0 c-12.5,17.6-32.7,28-54.2,28H21.7z M99.5,48.5l-22,0 M0,31.5h25 M0,65.5h25';\n var andData = 'M21.5,20.5h28a28,28,0,0,1,28,28v0a28,28,0,0,1-28,28h-28a0,0,0,0,1,0,0v-56a0,0,0,0,1,0,0Z M78,48.5 L 100,48.5Z M0,32.5 L 21.4,32.5Z M0,65.5 L 21.4,65.5Z';\n var notData = 'M75.5,50.5l-52,28v-56L75.5,50.5z M81.5,50.5h18 M1.5,50.5h22 M78.5,47.5c-1.7,0-3,1.3-3,3s1.3,3,3,3s3-1.3,3-3 S80.2,47.5,78.5,47.5z';\n /* tslint:enable */\n\n // defines the shapes connection points\n var orPort = [\n { id: 'Or_port1', offset: { x: 0.01, y: 0.1963 } }, { id: 'Or_port2', offset: { x: 0.26, y: 0.5 } },\n { id: 'Or_port3', offset: { x: 0.01, y: 0.805 } }, { id: 'Or_port4', offset: { x: 0.99, y: 0.5 } }\n ];\n var andPort = [\n { id: 'And_port1', offset: { x: 0.01, y: 0.215 } }, { id: 'And_port2', offset: { x: 0.22, y: 0.5 } },\n { id: 'And_port3', offset: { x: 0.01, y: 0.805 } }, { id: 'And_port4', offset: { x: 0.99, y: 0.5 } }\n ];\n var notPort = [\n { id: 'Not_port1', offset: { x: 0.01, y: 0.5 } }, { id: 'Not_port2', offset: { x: 0.99, y: 0.5 } }\n ];\n var flipPorts = [{ offset: { x: 0.01, y: 0.221 } }, { offset: { x: 0.01, y: 0.779 } }, { offset: { x: 0.99, y: 0.221 } }, { offset: { x: 0.99, y: 0.779 } }];\n var jkPorts = [{ offset: { x: 0.01, y: 0.270 } }, { offset: { x: 0.01, y: 0.5 } }, { offset: { x: 0.01, y: 0.720 } }, { offset: { x: 0.99, y: 0.270 } }, { offset: { x: 0.99, y: 0.720 } }, { offset: { x: 0.5, y: 0.01 } }, { offset: { x: 0.5, y: 0.99 } }];\n var rPorts = [{ offset: { x: 0.01, y: 0.210 } }, { offset: { x: 0.01, y: 0.778 } }, { offset: { x: 0.5, y: 0.218 } }, { offset: { x: 0.99, y: 0.210 } }, { offset: { x: 0.99, y: 0.778 } }];\n\n var decorator = {\n height: 12, width: 12, shape: 'Circle', style: { fill: 'white', strokeColor: '#444', strokeWidth: 1 }\n };\n\n var nodes = [createNode('OR1', 336, 161.5, 70, 104, orData, orPort),\n createNode('OR2', 336, 329, 70, 104, orData, orPort),\n createNode('OR3', 336, 470, 70, 104, orData, orPort),\n createNode('Not1', 157, 267, 58, 100, notData, notPort),\n createNode('Not2', 135, 329, 58, 100, notData, notPort),\n createNode('Not3', 157, 470, 58, 100, notData, notPort),\n createNode('And', 543, 329, 70, 104, andData, andPort)];\n\n /* tslint:disable */\n var connectors = [\n createConnector('line1', { x: 140, y: 130 }, null, null, 'OR1', null, 'Or_port1', decorator, null, { content: 'A', margin: { left: -20 } }, true),\n createConnector('line2', { x: 140, y: 161.5 }, null, null, 'OR1', null, 'Or_port2', decorator, null, { content: 'B', margin: { left: -20 } }, true),\n createConnector('line3', { x: 140, y: 195 }, null, null, 'OR1', null, 'Or_port3', decorator, null, { content: 'C', margin: { left: -20 } }, true),\n createConnector('line4', { x: 85, y: 267 }, null, null, 'Not1', null, 'Not_port1', decorator, null, { content: 'A', margin: { left: -20 } }),\n createConnector('line5', { x: 65, y: 329 }, null, null, 'Not2', null, 'Not_port1', decorator, null, { content: 'B', margin: { left: -20 } }),\n createConnector('line6', { x: 85, y: 470 }, null, null, 'Not3', null, 'Not_port1', decorator, null, { content: 'C', margin: { left: -20 } }),\n createConnector('line7', null, null, 'Not1', 'OR2', 'Not_port2', 'Or_port1', null, null, { content: 'A\\'', margin: { left: 0, top: -20 } }),\n createConnector('line8', null, null, 'Not2', 'OR2', 'Not_port2', 'Or_port2', null, null, { content: 'B\\'', margin: { left: 0, top: -20 } }),\n createConnector('line9', { x: 140, y: 380 }, null, null, 'OR2', null, 'Or_port3', decorator, null, {}, true),\n createConnector('line10', { x: 140, y: 420 }, null, null, 'OR3', null, 'Or_port1', decorator, null, {}, true),\n createConnector('line11', null, null, 'Not3', 'OR3', 'Not_port2', 'Or_port2', null, null, { content: 'B\\'', margin: { left: 0, top: -20 } }),\n createConnector('line12', { x: 140, y: 520 }, null, null, 'OR3', null, 'Or_port3', decorator, null, {}, true),\n createConnector('line13', null, null, 'OR1', 'And', 'Or_port4', 'And_port1', null, null, { content: '(A + B + C)', margin: { left: 0, top: -20 } }, true),\n createConnector('line14', null, null, 'OR2', 'And', 'Or_port4', 'And_port2', null, null, { content: '(A\\' + B\\' + C)', margin: { left: 0, top: -20 } }, true),\n createConnector('line15', null, null, 'OR3', 'And', 'Or_port4', 'And_port3', null, null, { content: '(A + B\\' + C)', margin: { left: 0, top: -20 } }, true),\n createConnector('line16', null, { x: 600, y: 329 }, 'And', null, 'And_port4', null, null, decorator, { content: 'F =(A+B+C)*(A+B\\'+C)*(A+B\\'+C)', margin: { left: -80, top: 60 } }, true, true)\n ];\n\n /* tslint:enable */\n\n //Initializes diagram control\n var diagram = new ej.diagrams.Diagram({\n //Initializes diagram control\n width: '100%', height: '100%',\n snapSettings: {\n constraints: ej.diagrams.SnapConstraints.All & ~(ej.diagrams.SnapConstraints.ShowLines | ej.diagrams.SnapConstraints.SnapToLines)\n },\n nodes: nodes,\n connectors: connectors,\n //defines default node properties\n getNodeDefaults: function (node) {\n node.style.strokeWidth = 1;\n node.style.strokeColor = '#444';\n // node.style.fill = '#444';\n },\n //defines default connector properties\n getConnectorDefaults: function (connector) {\n if (connector.id !== 'line16') {\n connector.targetDecorator.shape = 'None';\n connector.targetDecorator.style.strokeColor = '#444';\n connector.targetDecorator.style.fill = '#444';\n }\n connector.style = { strokeWidth: 1, strokeColor: '#444' };\n connector.cornerRadius = 5;\n return connector;\n },\n constraints: ej.diagrams.DiagramConstraints.Default | ej.diagrams.DiagramConstraints.Bridging\n });\n diagram.appendTo('#diagram');\n diagram.fitToPage();\n\n\n //defines nodes as logic gates on the symbol pate\n var items = [\n { id: 'Or', shape: { type: 'Path', data: orData }, ports: orPort },\n {\n id: 'Nor',\n shape: {\n type: 'Path', data: 'M21.7,76.5L21.7,76.5c6.4-18.1,6.4-37.8,0-55.9l0-0.1h1.6c21.5,0,41.7,10.4,54.2,28l0,0l0,0 c-12.5,17.6-32.7,28-54.2,28H21.7z M83.5,48.5h16 M1.5,32.5h24 M1.5,64.5h24 M80.5,45.5c-1.7,0-3,1.3-3,3s1.3,3,3,3s3-1.3,3-3 S82.2,45.5,80.5,45.5z'\n }\n },\n { id: 'And', shape: { type: 'Path', data: andData }, ports: andPort },\n {\n id: 'Nand',\n shape: {\n type: 'Path', data: 'M49.5,76.5h-28v-56h28c15.5,0,28,12.5,28,28v0C77.5,64,65,76.5,49.5,76.5z M83.5,48.5h16 M1.5,32.5h20 M1.5,65.5h20 M80.5,45.5c-1.7,0-3,1.3-3,3s1.3,3,3,3s3-1.3,3-3S82.2,45.5,80.5,45.5z'\n }\n },\n { id: 'not', shape: { type: 'Path', data: notData }, ports: notPort },\n {\n id: 'Buffer', ports: [{ offset: { x: 0.01, y: 0.5 } }, { offset: { x: 0.99, y: 0.5 } }],\n shape: { type: 'Path', data: 'M170.354,66.6523000000002L199.753,83.6253000000002L170.354,100.5983L170.354,66.6523000000002zM199.7534,83.6255000000001L214.5004,83.6255000000001M154.5,83.6255000000001L170.354,83.6255000000001' },\n },\n {\n id: 'NorGate', ports: [{ offset: { x: 0.01, y: 0.19 } }, { offset: { x: 0.01, y: 0.809 } }, { offset: { x: 0.99, y: 0.5 } }],\n shape: {\n type: 'Path', data: 'M14.5055,0.00562288 C14.3031,0.00562288 14.1078,0.0433293 13.9072,0.0542443 L13.9072,49.959 C14.1078,49.9699 14.3031,50.0079 14.5055,50.0079 C23.223,50.0079 30.29,28.3205 30.29,25.004 C30.29,22.2835 23.223,0.00562288 14.5055,0.00562288 z M13.9074,9.48911 L-0.00120828,9.48911 M13.9074,40.5218 L-0.00120828,40.5218 M36.3023,25.005 L50.0033,25.005 M36.2352,25.005 C36.2352,29.5191 35.0457,33.1879 33.5781,33.1879 C32.1105,33.1879 30.921,29.5191 30.921,25.005 C30.921,20.4908 32.1105,16.8223 33.5781,16.8223 C35.0457,16.8223 36.2352,20.4908 36.2352,25.005 z'\n },\n },\n {\n id: 'XorGate', ports: orPort,\n shape: {\n type: 'Path', data: 'M21.7,76.5L21.7,76.5c6.4-18.1,6.4-37.8,0-55.9l0-0.1h1.6c21.5,0,41.7,10.4,54.2,28l0,0l0,0 c-12.5,17.6-32.7,28-54.2,28H21.7z M73.4,48.5L73.4,48.5 M17.5,76.8L17.5,76.8c6.7-18.2,6.7-38.1,0-56.3l0-0.1 M77.5,48.5h22 M0,32.5h21 M0,65.5h21'\n }\n },\n {\n id: 'ChEmitter', ports: orPort,\n shape: {\n type: 'Path', data: 'M75.5,49.5l-52,28v-56L75.5,49.5z M75.5,49.5h24 M1.5,49.5h22 M44.5,45.5h-5v8h5V45.5z M39.5,45.5h10 M34.5,53.5h10'\n }\n },\n {\n id: 'NandGate1', ports: jkPorts,\n shape: {\n type: 'Path', data: 'M173.2472,549L173.2472,539 M173.2472,466L173.2472,456 M154.6192,523L145.2472,518.305L145.2472,527.695L154.6192,523z M191.2472,518L197.2472,518 M125.2472,523L145.2472,523 M125.2472,482L145.2472,482 M201.2472,523L221.2472,523 M201.2472,482L221.2472,482 M196.2262,523.597C196.2162,524.421,196.0452,525.053,195.7132,525.494C195.3812,525.935,194.9122,526.156,194.3072,526.156C193.7012,526.156,193.2282,525.921,192.8892,525.453C192.5482,524.984,192.3782,524.343,192.3782,523.529L192.3782,523.006C192.3882,522.206,192.5622,521.58,192.9022,521.129C193.2432,520.678,193.7082,520.453,194.2972,520.453C194.9152,520.453,195.3922,520.68,195.7252,521.134C196.0592,521.588,196.2262,522.233,196.2262,523.07L196.2262,523.597z M197.1632,523.075C197.1632,522.381,197.0462,521.775,196.8112,521.256C196.5772,520.737,196.2422,520.339,195.8092,520.062C195.3732,519.785,194.8702,519.647,194.2972,519.647C193.7372,519.647,193.2402,519.786,192.8052,520.064C192.3712,520.343,192.0342,520.744,191.7972,521.268C191.5592,521.792,191.4402,522.396,191.4402,523.08L191.4402,523.592C191.4472,524.263,191.5702,524.853,191.8092,525.362C192.0492,525.872,192.3852,526.264,192.8172,526.539C193.2502,526.814,193.7472,526.952,194.3072,526.952C194.5672,526.952,194.8142,526.922,195.0492,526.864L196.5482,528.055L197.1872,527.464L195.9182,526.468C196.3112,526.188,196.6182,525.8,196.8362,525.304C197.0542,524.807,197.1632,524.216,197.1632,523.529L197.1632,523.075z M174.1562,473.249C174.4002,473.439,174.5222,473.709,174.5222,474.057C174.5222,474.405,174.3912,474.681,174.1272,474.882C173.8632,475.084,173.4842,475.185,172.9892,475.185C172.4592,475.185,172.0352,475.061,171.7172,474.812C171.4002,474.562,171.2412,474.223,171.2412,473.793L170.2992,473.793C170.2992,474.207,170.4142,474.576,170.6432,474.902C170.8732,475.228,171.1992,475.484,171.6222,475.671C172.0452,475.858,172.5012,475.952,172.9892,475.952C173.7412,475.952,174.3422,475.778,174.7912,475.432C175.2402,475.085,175.4652,474.624,175.4652,474.047C175.4652,473.686,175.3852,473.372,175.2232,473.105C175.0622,472.838,174.8142,472.604,174.4802,472.404C174.1472,472.204,173.6852,472.021,173.0942,471.854C172.5042,471.688,172.0852,471.505,171.8402,471.304C171.5942,471.104,171.4712,470.858,171.4712,470.568C171.4712,470.206,171.6002,469.923,171.8592,469.719C172.1172,469.516,172.4782,469.414,172.9402,469.414C173.4382,469.414,173.8242,469.537,174.0982,469.784C174.3712,470.03,174.5082,470.369,174.5082,470.8L175.4502,470.8C175.4502,470.406,175.3462,470.043,175.1352,469.711C174.9262,469.379,174.6292,469.119,174.2462,468.93C173.8642,468.741,173.4292,468.647,172.9402,468.647C172.2252,468.647,171.6432,468.83,171.1952,469.196C170.7472,469.562,170.5232,470.025,170.5232,470.585C170.5232,471.08,170.7072,471.496,171.0722,471.833C171.4392,472.17,172.0242,472.454,172.8282,472.685C173.4702,472.871,173.9122,473.059,174.1562,473.249z M171.6712,528.511L173.1062,528.511C173.6012,528.515,173.9792,528.633,174.2422,528.868C174.5042,529.103,174.6352,529.44,174.6352,529.881C174.6352,530.285,174.4972,530.608,174.2232,530.85C173.9472,531.091,173.5772,531.211,173.1112,531.211L171.6712,531.211L171.6712,528.511z M174.8842,534.854L175.8902,534.854L175.8902,534.795L174.2202,531.778C174.6462,531.615,174.9782,531.369,175.2192,531.041C175.4572,530.712,175.5772,530.326,175.5772,529.883C175.5772,529.187,175.3612,528.656,174.9302,528.292C174.4992,527.927,173.8832,527.745,173.0822,527.745L170.7282,527.745L170.7282,534.854L171.6712,534.854L171.6712,531.978L173.3412,531.978L174.8842,534.854z M196.2262,482.597C196.2162,483.421,196.0452,484.053,195.7132,484.494C195.3812,484.935,194.9122,485.156,194.3072,485.156C193.7012,485.156,193.2282,484.921,192.8892,484.453C192.5482,483.984,192.3782,483.343,192.3782,482.529L192.3782,482.006C192.3882,481.206,192.5622,480.58,192.9022,480.129C193.2432,479.678,193.7082,479.453,194.2972,479.453C194.9152,479.453,195.3922,479.68,195.7252,480.134C196.0592,480.588,196.2262,481.233,196.2262,482.07L196.2262,482.597z M197.1632,482.075C197.1632,481.381,197.0462,480.775,196.8112,480.256C196.5772,479.737,196.2422,479.339,195.8092,479.062C195.3732,478.785,194.8702,478.647,194.2972,478.647C193.7372,478.647,193.2402,478.786,192.8052,479.064C192.3712,479.343,192.0342,479.744,191.7972,480.268C191.5592,480.792,191.4402,481.396,191.4402,482.08L191.4402,482.592C191.4472,483.263,191.5702,483.853,191.8092,484.362C192.0492,484.872,192.3852,485.264,192.8172,485.539C193.2502,485.814,193.7472,485.952,194.3072,485.952C194.5672,485.952,194.8142,485.922,195.0492,485.864L196.5482,487.055L197.1872,486.464L195.9182,485.468C196.3112,485.188,196.6182,484.8,196.8362,484.304C197.0542,483.807,197.1632,483.216,197.1632,482.529L197.1632,482.075z M173.0302,499.315C174.0512,499.315,174.8302,499.641,175.3662,500.29C175.9022,500.94,176.1712,501.881,176.1712,503.113L176.1712,503.745C176.1602,504.956,175.8782,505.885,175.3232,506.532C174.7682,507.179,173.9732,507.503,172.9362,507.503L171.6472,507.503L171.6472,499.315L173.0302,499.315z M172.9442,509.097C173.9712,509.097,174.8812,508.875,175.6752,508.433C176.4692,507.99,177.0812,507.36,177.5112,506.542C177.9402,505.725,178.1552,504.776,178.1552,503.698L178.1552,503.128C178.1552,502.065,177.9412,501.123,177.5152,500.3C177.0882,499.477,176.4842,498.842,175.7062,498.394C174.9282,497.946,174.0352,497.722,173.0302,497.722L169.6712,497.722L169.6712,509.097L172.9442,509.097z M150.7652,479.511C151.4612,479.518,151.9992,479.745,152.3792,480.193C152.7582,480.641,152.9472,481.269,152.9472,482.077L152.9472,482.492C152.9472,483.323,152.7462,483.963,152.3442,484.413C151.9422,484.863,151.3802,485.087,150.6572,485.087L149.6712,485.087L149.6712,479.511L150.7652,479.511z M150.7012,485.854C151.3392,485.848,151.8982,485.709,152.3792,485.439C152.8582,485.169,153.2282,484.781,153.4862,484.277C153.7462,483.772,153.8752,483.185,153.8752,482.514L153.8752,482.06C153.8722,481.406,153.7402,480.826,153.4822,480.322C153.2232,479.817,152.8562,479.428,152.3812,479.155C151.9052,478.881,151.3582,478.745,150.7402,478.745L148.7332,478.745L148.7332,485.854L150.7012,485.854z M145.2382,466L201.2552,466L201.2552,539L145.2382,539z'\n }\n },\n {\n id: 'Flipflop', ports: flipPorts,\n shape: {\n type: 'Path', data: 'M21.5,13.5h57v73h-57V13.5z M29.8,26.2h-5.4V27h2.2v6.4h0.9V27h2.2V26.2z M54.2,45.2h-9v1.5h3.5v9.9h1.9v-9.9 h3.6V45.2z M74.5,29.2c0-0.9-0.3-1.6-0.8-2.2c-0.5-0.6-1.2-0.9-2.1-0.9c-0.8,0-1.5,0.3-2,0.9s-0.8,1.3-0.8,2.2v1.3 c0,0.9,0.3,1.6,0.8,2.2s1.2,0.9,2,0.9c0.2,0,0.3,0,0.5,0c0.2,0,0.3-0.1,0.5-0.1l1.3,1.2l0.6-0.6l-1.2-1.1c0.4-0.3,0.7-0.6,0.9-1.1 s0.3-0.9,0.3-1.4V29.2z M73.6,30.4c0,0.7-0.2,1.2-0.5,1.6c-0.4,0.4-0.8,0.6-1.5,0.6c-0.6,0-1-0.2-1.4-0.6c-0.3-0.4-0.5-1-0.5-1.6 v-1.3c0-0.7,0.2-1.2,0.5-1.6c0.3-0.4,0.8-0.6,1.4-0.6c0.6,0,1.1,0.2,1.5,0.6s0.5,1,0.5,1.6V30.4z M74.5,70.2c0-0.9-0.3-1.6-0.8-2.2 c-0.5-0.6-1.2-0.9-2.1-0.9c-0.8,0-1.5,0.3-2,0.9s-0.8,1.3-0.8,2.2v1.3c0,0.9,0.3,1.6,0.8,2.2s1.2,0.9,2,0.9c0.2,0,0.3,0,0.5,0 c0.2,0,0.3-0.1,0.5-0.1l1.3,1.2l0.6-0.6l-1.2-1.1c0.4-0.3,0.7-0.6,0.9-1.1s0.3-0.9,0.3-1.4V70.2z M73.6,71.4c0,0.7-0.2,1.2-0.5,1.6 c-0.4,0.4-0.8,0.6-1.5,0.6c-0.6,0-1-0.2-1.4-0.6c-0.3-0.4-0.5-1-0.5-1.6v-1.3c0-0.7,0.2-1.2,0.5-1.6c0.3-0.4,0.8-0.6,1.4-0.6 c0.6,0,1.1,0.2,1.5,0.6s0.5,1,0.5,1.6V71.4z M78.5,29.5h20 M78.5,70.5h20 M1.5,29.5h20 M1.5,70.5h20 M68.5,65.5h6 M31.5,70.5l-10-5 v10L31.5,70.5z'\n }\n },\n {\n id: 'RSLatch', ports: flipPorts,\n shape: {\n type: 'Path', data: 'M21.5,11.5h57v73h-57V11.5z M28.5,30.4c-0.3,0.2-0.7,0.3-1.2,0.3c-0.5,0-0.9-0.1-1.3-0.4 c-0.3-0.2-0.5-0.6-0.5-1.1h-0.9c0,0.7,0.3,1.2,0.8,1.6c0.5,0.4,1.2,0.6,1.9,0.6c0.8,0,1.4-0.2,1.8-0.5c0.5-0.3,0.7-0.8,0.7-1.4 c0-0.5-0.2-1-0.6-1.3c-0.4-0.4-1-0.6-1.7-0.8c-0.7-0.2-1.1-0.3-1.4-0.5c-0.3-0.2-0.4-0.5-0.4-0.8c0-0.4,0.1-0.6,0.4-0.9 s0.6-0.3,1.1-0.3c0.5,0,0.9,0.1,1.2,0.4s0.4,0.6,0.4,1h0.9c0-0.6-0.2-1.1-0.7-1.5s-1.1-0.6-1.9-0.6c-0.7,0-1.3,0.2-1.8,0.5 c-0.4,0.4-0.7,0.8-0.7,1.4c0,0.5,0.2,1,0.6,1.3s1,0.6,1.8,0.8c0.6,0.2,1.1,0.3,1.3,0.6s0.4,0.5,0.4,0.8 C28.9,29.9,28.8,30.2,28.5,30.4z M27.7,69.3c0.4,0,0.7,0.1,0.9,0.3s0.3,0.5,0.3,0.9v0.6c0,0.2,0,0.4,0.1,0.7s0.1,0.4,0.2,0.5h0.9 v-0.1c-0.1-0.1-0.2-0.3-0.3-0.4s-0.1-0.4-0.1-0.6v-0.7c0-0.4-0.1-0.8-0.3-1.1c-0.2-0.3-0.5-0.5-0.9-0.6c0.4-0.2,0.7-0.4,0.9-0.6 c0.2-0.3,0.3-0.6,0.3-1c0-0.7-0.2-1.2-0.6-1.5c-0.4-0.3-1-0.5-1.8-0.5H25v7.1h0.9v-3.1H27.7z M25.9,66h1.6c0.5,0,0.9,0.1,1.1,0.3 s0.4,0.5,0.4,0.9c0,0.4-0.1,0.8-0.4,1c-0.2,0.2-0.6,0.3-1.2,0.3h-1.6V66z M49.5,54.6c1.6,0,2.9-0.4,3.8-1.3c0.9-0.9,1.4-2.1,1.4-3.6 v-1.5c0-1.5-0.5-2.7-1.4-3.6c-0.9-0.9-2.1-1.4-3.7-1.4H46v11.4H49.5z M49.5,44.7c1.1,0,1.9,0.3,2.4,0.9c0.5,0.6,0.8,1.4,0.8,2.5v1.5 c0,1.1-0.3,1.9-0.8,2.5s-1.4,0.9-2.5,0.9h-1.5v-8.3H49.5z M74.5,27.2c0-0.9-0.3-1.6-0.8-2.2c-0.5-0.6-1.2-0.9-2.1-0.9 c-0.8,0-1.5,0.3-2,0.9s-0.8,1.3-0.8,2.2v1.3c0,0.9,0.3,1.6,0.8,2.2s1.2,0.9,2,0.9c0.2,0,0.3,0,0.5,0c0.2,0,0.3-0.1,0.5-0.1l1.3,1.2 l0.6-0.6l-1.2-1.1c0.4-0.3,0.7-0.6,0.9-1.1s0.3-0.9,0.3-1.4V27.2z M73.6,28.4c0,0.7-0.2,1.2-0.5,1.6c-0.4,0.4-0.8,0.6-1.5,0.6 c-0.6,0-1-0.2-1.4-0.6c-0.3-0.4-0.5-1-0.5-1.6v-1.3c0-0.7,0.2-1.2,0.5-1.6c0.3-0.4,0.8-0.6,1.4-0.6c0.6,0,1.1,0.2,1.5,0.6 s0.5,1,0.5,1.6V28.4z M74.5,68.2c0-0.9-0.3-1.6-0.8-2.2c-0.5-0.6-1.2-0.9-2.1-0.9c-0.8,0-1.5,0.3-2,0.9s-0.8,1.3-0.8,2.2v1.3 c0,0.9,0.3,1.6,0.8,2.2s1.2,0.9,2,0.9c0.2,0,0.3,0,0.5,0c0.2,0,0.3-0.1,0.5-0.1l1.3,1.2l0.6-0.6l-1.2-1.1c0.4-0.3,0.7-0.6,0.9-1.1 s0.3-0.9,0.3-1.4V68.2z M73.6,69.4c0,0.7-0.2,1.2-0.5,1.6c-0.4,0.4-0.8,0.6-1.5,0.6c-0.6,0-1-0.2-1.4-0.6c-0.3-0.4-0.5-1-0.5-1.6 v-1.3c0-0.7,0.2-1.2,0.5-1.6c0.3-0.4,0.8-0.6,1.4-0.6c0.6,0,1.1,0.2,1.5,0.6s0.5,1,0.5,1.6V69.4z M78.5,27.5h20 M78.5,68.5h20 M1.5,27.5h20 M1.5,68.5h20 M68.5,63.5h6'\n }\n },\n {\n id: 'RSLatchSync', ports: rPorts,\n shape: {\n type: 'Path', data: 'M21.5,11.5h56v72h-56V11.5z M28.5,29.4c-0.3,0.2-0.7,0.3-1.2,0.3c-0.5,0-0.9-0.1-1.3-0.4 c-0.3-0.2-0.5-0.6-0.5-1.1h-0.9c0,0.7,0.3,1.2,0.8,1.6c0.5,0.4,1.2,0.6,1.9,0.6c0.8,0,1.4-0.2,1.8-0.5c0.5-0.3,0.7-0.8,0.7-1.4 c0-0.5-0.2-1-0.6-1.3c-0.4-0.4-1-0.6-1.7-0.8c-0.7-0.2-1.1-0.3-1.4-0.5c-0.3-0.2-0.4-0.5-0.4-0.8c0-0.4,0.1-0.6,0.4-0.9 s0.6-0.3,1.1-0.3c0.5,0,0.9,0.1,1.2,0.4s0.4,0.6,0.4,1h0.9c0-0.6-0.2-1.1-0.7-1.5s-1.1-0.6-1.9-0.6c-0.7,0-1.3,0.2-1.8,0.5 c-0.4,0.4-0.7,0.8-0.7,1.4c0,0.5,0.2,1,0.6,1.3s1,0.6,1.8,0.8c0.6,0.2,1.1,0.3,1.3,0.6s0.4,0.5,0.4,0.8 C28.9,28.9,28.8,29.2,28.5,29.4z M27.7,67.3c0.4,0,0.7,0.1,0.9,0.3s0.3,0.5,0.3,0.9v0.6c0,0.2,0,0.4,0.1,0.7s0.1,0.4,0.2,0.5h0.9 v-0.1c-0.1-0.1-0.2-0.3-0.3-0.4s-0.1-0.4-0.1-0.6v-0.7c0-0.4-0.1-0.8-0.3-1.1c-0.2-0.3-0.5-0.5-0.9-0.6c0.4-0.2,0.7-0.4,0.9-0.6 c0.2-0.3,0.3-0.6,0.3-1c0-0.7-0.2-1.2-0.6-1.5c-0.4-0.3-1-0.5-1.8-0.5H25v7.1h0.9v-3.1H27.7z M25.9,64h1.6c0.5,0,0.9,0.1,1.1,0.3 s0.4,0.5,0.4,0.9c0,0.4-0.1,0.8-0.4,1c-0.2,0.2-0.6,0.3-1.2,0.3h-1.6V64z M73.5,26.2c0-0.9-0.3-1.6-0.8-2.2 c-0.5-0.6-1.2-0.9-2.1-0.9c-0.8,0-1.5,0.3-2,0.9s-0.8,1.3-0.8,2.2v1.3c0,0.9,0.3,1.6,0.8,2.2s1.2,0.9,2,0.9c0.2,0,0.3,0,0.5,0 c0.2,0,0.3-0.1,0.5-0.1l1.3,1.2l0.6-0.6l-1.2-1.1c0.4-0.3,0.7-0.6,0.9-1.1s0.3-0.9,0.3-1.4V26.2z M72.6,27.4c0,0.7-0.2,1.2-0.5,1.6 c-0.4,0.4-0.8,0.6-1.5,0.6c-0.6,0-1-0.2-1.4-0.6c-0.3-0.4-0.5-1-0.5-1.6v-1.3c0-0.7,0.2-1.2,0.5-1.6c0.3-0.4,0.8-0.6,1.4-0.6 c0.6,0,1.1,0.2,1.5,0.6s0.5,1,0.5,1.6V27.4z M73.5,67.2c0-0.9-0.3-1.6-0.8-2.2c-0.5-0.6-1.2-0.9-2.1-0.9c-0.8,0-1.5,0.3-2,0.9 s-0.8,1.3-0.8,2.2v1.3c0,0.9,0.3,1.6,0.8,2.2s1.2,0.9,2,0.9c0.2,0,0.3,0,0.5,0c0.2,0,0.3-0.1,0.5-0.1l1.3,1.2l0.6-0.6l-1.2-1.1 c0.4-0.3,0.7-0.6,0.9-1.1s0.3-0.9,0.3-1.4V67.2z M72.6,68.4c0,0.7-0.2,1.2-0.5,1.6c-0.4,0.4-0.8,0.6-1.5,0.6c-0.6,0-1-0.2-1.4-0.6 c-0.3-0.4-0.5-1-0.5-1.6v-1.3c0-0.7,0.2-1.2,0.5-1.6c0.3-0.4,0.8-0.6,1.4-0.6c0.6,0,1.1,0.2,1.5,0.6s0.5,1,0.5,1.6V68.4z M77.5,26.5 h20 M77.5,67.5h20 M1.5,26.5h20 M1.5,67.5h20 M67.5,62.5h6 M1.5,47.5h20 M30.9,47.5l-9.4-4.7v9.4L30.9,47.5z'\n }\n },\n {\n id: 'JKflipflop', ports: jkPorts,\n shape: {\n type: 'Path', data: 'M22.5,14.5h56v72h-56V14.5z M28.9,31.4c0,0.4-0.1,0.7-0.3,1s-0.5,0.4-0.9,0.4c-0.4,0-0.8-0.1-1-0.3 s-0.3-0.6-0.3-1h-0.9c0,0.7,0.2,1.2,0.6,1.5c0.4,0.3,0.9,0.5,1.6,0.5c0.6,0,1.2-0.2,1.6-0.5s0.6-0.9,0.6-1.5v-5.1h-0.9V31.4z M30.4,73.4h1.1l-3-3.7l2.8-3.4h-1l-2.6,3.2H27v-3.2H26v7.1H27v-3.2h0.9L30.4,73.4z M74.5,29.2c0-0.9-0.3-1.6-0.8-2.2 c-0.5-0.6-1.2-0.9-2.1-0.9c-0.8,0-1.5,0.3-2,0.9s-0.8,1.3-0.8,2.2v1.3c0,0.9,0.3,1.6,0.8,2.2s1.2,0.9,2,0.9c0.2,0,0.3,0,0.5,0 c0.2,0,0.3-0.1,0.5-0.1l1.3,1.2l0.6-0.6l-1.2-1.1c0.4-0.3,0.7-0.6,0.9-1.1s0.3-0.9,0.3-1.4V29.2z M73.6,30.4c0,0.7-0.2,1.2-0.5,1.6 c-0.4,0.4-0.8,0.6-1.5,0.6c-0.6,0-1-0.2-1.4-0.6c-0.3-0.4-0.5-1-0.5-1.6v-1.3c0-0.7,0.2-1.2,0.5-1.6c0.3-0.4,0.8-0.6,1.4-0.6 c0.6,0,1.1,0.2,1.5,0.6s0.5,1,0.5,1.6V30.4z M74.5,70.2c0-0.9-0.3-1.6-0.8-2.2c-0.5-0.6-1.2-0.9-2.1-0.9c-0.8,0-1.5,0.3-2,0.9 s-0.8,1.3-0.8,2.2v1.3c0,0.9,0.3,1.6,0.8,2.2s1.2,0.9,2,0.9c0.2,0,0.3,0,0.5,0c0.2,0,0.3-0.1,0.5-0.1l1.3,1.2l0.6-0.6l-1.2-1.1 c0.4-0.3,0.7-0.6,0.9-1.1s0.3-0.9,0.3-1.4V70.2z M73.6,71.4c0,0.7-0.2,1.2-0.5,1.6c-0.4,0.4-0.8,0.6-1.5,0.6c-0.6,0-1-0.2-1.4-0.6 c-0.3-0.4-0.5-1-0.5-1.6v-1.3c0-0.7,0.2-1.2,0.5-1.6c0.3-0.4,0.8-0.6,1.4-0.6c0.6,0,1.1,0.2,1.5,0.6s0.5,1,0.5,1.6V71.4z M50.7,80.3 c0.4,0,0.7,0.1,0.9,0.3s0.3,0.5,0.3,0.9v0.6c0,0.2,0,0.4,0.1,0.7s0.1,0.4,0.2,0.5h0.9v-0.1c-0.1-0.1-0.2-0.3-0.3-0.4 s-0.1-0.4-0.1-0.6v-0.7c0-0.4-0.1-0.8-0.3-1.1c-0.2-0.3-0.5-0.5-0.9-0.6c0.4-0.2,0.7-0.4,0.9-0.6c0.2-0.3,0.3-0.6,0.3-1 c0-0.7-0.2-1.2-0.6-1.5c-0.4-0.3-1-0.5-1.8-0.5H48v7.1h0.9v-3.1H50.7z M48.9,77h1.6c0.5,0,0.9,0.1,1.1,0.3s0.4,0.5,0.4,0.9 c0,0.4-0.1,0.8-0.4,1c-0.2,0.2-0.6,0.3-1.2,0.3h-1.6V77z M51.5,23.4c-0.3,0.2-0.7,0.3-1.2,0.3c-0.5,0-0.9-0.1-1.3-0.4 c-0.3-0.2-0.5-0.6-0.5-1.1h-0.9c0,0.7,0.3,1.2,0.8,1.6c0.5,0.4,1.2,0.6,1.9,0.6c0.8,0,1.4-0.2,1.8-0.5c0.5-0.3,0.7-0.8,0.7-1.4 c0-0.5-0.2-1-0.6-1.3c-0.4-0.4-1-0.6-1.7-0.8c-0.7-0.2-1.1-0.3-1.4-0.5c-0.3-0.2-0.4-0.5-0.4-0.8c0-0.4,0.1-0.6,0.4-0.9 s0.6-0.3,1.1-0.3c0.5,0,0.9,0.1,1.2,0.4s0.4,0.6,0.4,1h0.9c0-0.6-0.2-1.1-0.7-1.5s-1.1-0.6-1.9-0.6c-0.7,0-1.3,0.2-1.8,0.5 c-0.4,0.4-0.7,0.8-0.7,1.4c0,0.5,0.2,1,0.6,1.3s1,0.6,1.8,0.8c0.6,0.2,1.1,0.3,1.3,0.6s0.4,0.5,0.4,0.8 C51.9,22.9,51.8,23.2,51.5,23.4z M78.5,29.5h20 M78.5,70.5h20 M2.5,29.5h20 M2.5,70.5h20 M68.5,65.5h6 M2.5,50.5h20 M31.9,51.5 l-9.4-4.7v9.4L31.9,51.5z M50.5,14.5v-10 M50.5,96.5v-10'\n }\n },\n {\n id: 'Dflipflop', ports: flipPorts,\n shape: {\n type: 'Path', data: 'M21.2,13.5h57v73h-57V13.5z M78.2,29.5h20 M78.2,70.5h20 M1.2,29.5h20 M1.2,70.5h20 M26.6,33.4 c0.6,0,1.2-0.1,1.7-0.4c0.5-0.3,0.8-0.7,1.1-1.2c0.3-0.5,0.4-1.1,0.4-1.8v-0.5c0-0.7-0.1-1.2-0.4-1.7c-0.3-0.5-0.6-0.9-1.1-1.2 s-1-0.4-1.6-0.4h-2v7.1H26.6z M26.7,27c0.7,0,1.2,0.2,1.6,0.7c0.4,0.4,0.6,1.1,0.6,1.9V30c0,0.8-0.2,1.5-0.6,1.9 c-0.4,0.4-1,0.7-1.7,0.7h-1V27H26.7z M48.9,56.6c1,0,1.9-0.2,2.7-0.7c0.8-0.4,1.4-1.1,1.8-1.9c0.4-0.8,0.6-1.8,0.6-2.8v-0.6 c0-1.1-0.2-2-0.6-2.8c-0.4-0.8-1-1.5-1.8-1.9c-0.8-0.4-1.7-0.7-2.7-0.7h-3.4v11.4H48.9z M48.9,46.8c1,0,1.8,0.3,2.3,1 c0.5,0.7,0.8,1.6,0.8,2.8v0.6c0,1.2-0.3,2.1-0.8,2.8s-1.4,1-2.4,1h-1.3v-8.2H48.9z M74.1,29.6c0-0.7-0.1-1.3-0.4-1.8s-0.6-0.9-1-1.2 c-0.4-0.3-0.9-0.4-1.5-0.4c-0.6,0-1.1,0.1-1.5,0.4c-0.4,0.3-0.8,0.7-1,1.2s-0.4,1.1-0.4,1.8v0.5c0,0.7,0.1,1.3,0.4,1.8 c0.2,0.5,0.6,0.9,1,1.2s0.9,0.4,1.5,0.4c0.3,0,0.5,0,0.7-0.1l1.5,1.2l0.6-0.6l-1.3-1c0.4-0.3,0.7-0.7,0.9-1.2s0.3-1.1,0.3-1.8V29.6z M73.1,30.1c0,0.8-0.2,1.5-0.5,1.9s-0.8,0.7-1.4,0.7s-1.1-0.2-1.4-0.7c-0.3-0.5-0.5-1.1-0.5-1.9v-0.5c0-0.8,0.2-1.4,0.5-1.9 c0.3-0.5,0.8-0.7,1.4-0.7c0.6,0,1.1,0.2,1.4,0.7c0.3,0.5,0.5,1.1,0.5,1.9V30.1z M74.1,70.6c0-0.7-0.1-1.3-0.4-1.8s-0.6-0.9-1-1.2 c-0.4-0.3-0.9-0.4-1.5-0.4c-0.6,0-1.1,0.1-1.5,0.4c-0.4,0.3-0.8,0.7-1,1.2s-0.4,1.1-0.4,1.8v0.5c0,0.7,0.1,1.3,0.4,1.8 c0.2,0.5,0.6,0.9,1,1.2s0.9,0.4,1.5,0.4c0.3,0,0.5,0,0.7-0.1l1.5,1.2l0.6-0.6l-1.3-1c0.4-0.3,0.7-0.7,0.9-1.2s0.3-1.1,0.3-1.8V70.6z M73.1,71.1c0,0.8-0.2,1.5-0.5,1.9s-0.8,0.7-1.4,0.7s-1.1-0.2-1.4-0.7c-0.3-0.5-0.5-1.1-0.5-1.9v-0.5c0-0.8,0.2-1.4,0.5-1.9 c0.3-0.5,0.8-0.7,1.4-0.7c0.6,0,1.1,0.2,1.4,0.7c0.3,0.5,0.5,1.1,0.5,1.9V71.1z M68.2,65.5h6 M31.2,70.5l-10-5v10L31.2,70.5z'\n }\n },\n\n ];\n /* tslint:enable */\n\n var connections = [\n {\n id: 'Link1', type: 'Orthogonal', sourcePoint: { x: 20, y: 20 }, targetPoint: { x: 60, y: 60 },cornerRadius: 5,\n targetDecorator: { shape: 'None' }, style: { strokeWidth: 1, strokeColor: '#444' }\n },\n {\n id: 'Link11', type: 'Orthogonal', sourcePoint: { x: 20, y: 20 }, targetPoint: { x: 60, y: 60 },cornerRadius: 5,\n targetDecorator: { shape: 'None' }, style: { strokeWidth: 1, strokeDashArray: '5,5', strokeColor: '#444' }\n },\n {\n id: 'Link21', type: 'Straight', sourcePoint: { x: 20, y: 20 }, targetPoint: { x: 60, y: 60 },\n targetDecorator: { shape: 'None' }, style: { strokeWidth: 1, strokeColor: '#444' }\n },\n {\n id: 'Link22', type: 'Straight', sourcePoint: { x: 20, y: 20 }, targetPoint: { x: 60, y: 60 },\n targetDecorator: { shape: 'None' }, style: { strokeWidth: 1, strokeDashArray: '5,5', strokeColor: '#444' }\n },\n {\n id: 'Link3', type: 'Orthogonal', sourcePoint: { x: 20, y: 20 }, targetPoint: { x: 60, y: 60 }, cornerRadius: 5,\n targetDecorator: { shape: 'None' }, style: { strokeWidth: 1, strokeColor: '#444' }\n },\n {\n id: 'Link31', type: 'Orthogonal', sourcePoint: { x: 20, y: 20 }, targetPoint: { x: 60, y: 60 }, cornerRadius: 5,\n targetDecorator: { shape: 'None' }, style: { strokeWidth: 1, strokeDashArray: '5,5', strokeColor: '#444' }\n },\n ];\n\n\n //Initializes the symbol palette\n var palette = new ej.diagrams.SymbolPalette({\n //Initializes symbol palette control\n expandMode: 'Multiple',\n palettes: [\n { id: 'flow', expanded: true, symbols: items, title: 'Logic Gates' },\n { id: 'connectors', expanded: true, symbols: connections, title: 'Connectors' },\n ],\n width: '100%', height: '100%',\n symbolMargin: { left: 10, right: 10, top: 10, bottom: 10 },\n symbolHeight: 60, symbolWidth: 62,\n getNodeDefaults: function (symbol) {\n symbol.width = 55;\n symbol.height = 40;\n symbol.offsetX = 20;\n symbol.offsetY = 20;\n symbol.style = { fill: 'white', strokeWidth: 1, strokeColor: '#444' };\n },\n symbolPreview: { height: 50, width: 50 },\n getSymbolInfo: function () {\n return { fit: true };\n }\n });\n palette.appendTo('#symbolpalette');\n\n\n\n"}
\ No newline at end of file
diff --git a/src/diagram/mind-map-stack.json b/src/diagram/mind-map-stack.json
index d7e2223a..e326b7f0 100644
--- a/src/diagram/mind-map-stack.json
+++ b/src/diagram/mind-map-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}/*jshint esversion: 6 */\nej.diagrams.Diagram.Inject(ej.diagrams.DataBinding, ej.diagrams.MindMap, ej.diagrams.HierarchicalTree);\nvar diagram;\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__; var __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n /* jshint proto: true */\n ({ __proto__: [] } instanceof Array && function (der, b) { der.__proto__ = b; }) ||\n function (der, b) { for (var p in b) if (b.hasOwnProperty(p)) der[p] = b[p]; };\n return function (der, b) {\n extendStatics(der, b);\n function __() { this.constructor = der; }\n der.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * Mind-map sample\n */\n\nfunction selectionChange(arg) {\n if (arg.state === 'Changing') {\n if (arg.newValue[0] instanceof ej.diagrams.Node) {\n for (var _i = 0, _a = diagram.selectedItems.userHandles; _i < _a.length; _i++) {\n var handle_1 = _a[_i];\n handle_1.visible = true;\n }\n if (arg.newValue[0].data.branch === 'Left' ||\n arg.newValue[0].data.branch === 'subLeft') {\n hideUserHandle('leftHandle');\n changeUserHandlePosition('leftHandle');\n }\n else if (arg.newValue[0].data.branch === 'Right' ||\n arg.newValue[0].data.branch === 'subRight') {\n hideUserHandle('rightHandle');\n changeUserHandlePosition('rightHandle');\n }\n else if (arg.newValue[0].data.branch === 'Root') {\n hideUserHandle('delete');\n }\n }\n else {\n hideUserHandle('leftHandle');\n hideUserHandle('rightHandle');\n hideUserHandle('delete');\n }\n }\n}\n\nfunction getNodeDefaults(obj) {\n obj.constraints = ej.diagrams.NodeConstraints.Default & ~ej.diagrams.NodeConstraints.Drag;\n if (obj.data.branch === 'Left' || obj.data.branch === 'Right' || obj.data.branch === 'Root') {\n obj.shape = { type: 'Basic', shape: 'Ellipse' };\n obj.borderColor = 'black';\n obj.style = {\n fill: obj.data.branch === 'Root' ? '#E74C3C' : '#F39C12', strokeColor: 'none',\n strokeWidth: 2\n };\n obj.annotations = [{\n content: obj.data.Label, margin: { left: 10, right: 10, top: 10, bottom: 10 },\n style: { color: 'white' }\n }];\n var port1 = getPort();\n for (var i = 0; i < port1.length; i++) {\n obj.ports.push(new ej.diagrams.PointPort(obj, 'ports', port1[i], true));\n }\n hideUserHandle('Top');\n }\n else {\n var color = void 0;\n if (obj.data.branch === 'Right' || obj.data.branch === 'subRight') {\n color = '#8E44AD';\n }\n else {\n color = '#3498DB';\n }\n obj.shape = { type: 'Basic', shape: 'Rectangle' };\n obj.style = { fill: color, strokeWidth: 0 };\n obj.minWidth = 100;\n obj.height = 4;\n var port2 = getPort();\n for (var j = 0; j < port2.length; j++) {\n obj.ports.push(new ej.diagrams.PointPort(obj, 'ports', port2[j], true));\n }\n obj.annotations = [{\n content: obj.data.Label, offset: { x: 0.5, y: 0 }, verticalAlignment: 'Bottom'\n }];\n obj.shape.margin = { left: 0, right: 0, top: 0, bottom: 0 };\n }\n return obj;\n}\n\nfunction getConnectorDefaults(connector, diagram) {\n connector.type = 'Bezier';\n connector.targetDecorator = { shape: 'None' };\n var sourceNode = diagram.getObject(connector.sourceID);\n var targetNode = diagram.getObject(connector.targetID);\n if (targetNode.data.branch === 'Right' || targetNode.data.branch === 'subRight') {\n connector.sourcePortID = sourceNode.ports[0].id;\n connector.targetPortID = targetNode.ports[1].id;\n connector.style = { strokeWidth: 2, strokeColor: '#8E44AD' };\n }\n else if (targetNode.data.branch === 'Left' || targetNode.data.branch === 'subLeft') {\n connector.sourcePortID = sourceNode.ports[1].id;\n connector.targetPortID = targetNode.ports[0].id;\n connector.style = { strokeWidth: 2, strokeColor: '#3498DB' };\n }\n connector.constraints &= ~ej.diagrams.ConnectorConstraints.Select;\n return connector;\n}\n\n//creation of the Ports\nfunction getPort() {\n var port =\n [{\n id: 'port1', offset: { x: 0, y: 0.5 }, visibility: ej.diagrams.PortVisibility.Hidden,\n style: { fill: 'black' }\n },\n {\n id: 'port2', offset: { x: 1, y: 0.5 }, visibility: ej.diagrams.PortVisibility.Hidden,\n style: { fill: 'black' }\n },\n ];\n return port;\n}\n\nfunction addNode() {\n var obj = {};\n obj.id = ej.diagrams.randomId();\n obj.data = {};\n obj.data.Label = 'Node';\n return obj;\n}\nfunction addConnector(source, target) {\n var connector = {};\n connector.id = ej.diagrams.randomId();\n connector.sourceID = source.id;\n connector.targetID = target.id;\n return connector;\n}\n\n//Tool for Userhandles.\nfunction getTool(action) {\n var tool;\n if (action === 'leftHandle') {\n tool = new LeftExtendTool(diagram.commandHandler);\n } else if (action === 'rightHandle') {\n tool = new RightExtendTool(diagram.commandHandler);\n } else if (action === 'delete') {\n tool = new DeleteClick(diagram.commandHandler);\n }\n return tool;\n}\n\nvar LeftExtendTool = (function (_super) {\n __extends(LeftExtendTool, _super);\n function LeftExtendTool() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LeftExtendTool.prototype.mouseDown = function (args) {\n _super.prototype.mouseDown.call(this, args);\n this.inAction = true;\n };\n LeftExtendTool.prototype.mouseUp = function (args) {\n if (this.inAction) {\n var selectedElement = this.commandHandler.getSelectedObject();\n if (selectedElement[0]) {\n if (selectedElement[0] instanceof ej.diagrams.Node) {\n var node = addNode();\n if (selectedElement[0].data.branch === 'Root') {\n node.data.branch = 'Right';\n }\n else if (selectedElement[0].data.branch === 'Right' ||\n selectedElement[0].data.branch === 'subRight') {\n node.data.branch = 'subRight';\n }\n var connector = addConnector(selectedElement[0], node);\n diagram.clearSelection();\n var nd = diagram.add(node);\n diagram.add(connector);\n diagram.doLayout();\n diagram.bringIntoView(nd.wrapper.bounds);\n diagram.startTextEdit(nd);\n }\n }\n }\n };\n return LeftExtendTool;\n}(ej.diagrams.ToolBase));\n\nvar RightExtendTool = (function (_super) {\n __extends(RightExtendTool, _super);\n function RightExtendTool() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n RightExtendTool.prototype.mouseDown = function (args) {\n _super.prototype.mouseDown.call(this, args);\n this.inAction = true;\n };\n RightExtendTool.prototype.mouseUp = function (args) {\n if (this.inAction) {\n var selectedObject = this.commandHandler.getSelectedObject();\n if (selectedObject[0]) {\n if (selectedObject[0] instanceof ej.diagrams.Node) {\n var node = addNode();\n if (selectedObject[0].data.branch === 'Root') {\n node.data.branch = 'Left';\n }\n else if (selectedObject[0].data.branch === 'Left' ||\n selectedObject[0].data.branch === 'subLeft') {\n node.data.branch = 'subLeft';\n }\n var connector = addConnector(selectedObject[0], node);\n diagram.clearSelection();\n var nd = diagram.add(node);\n diagram.add(connector);\n diagram.doLayout();\n diagram.bringIntoView(nd.wrapper.bounds);\n diagram.startTextEdit(nd);\n }\n }\n }\n };\n return RightExtendTool;\n}(ej.diagrams.ToolBase));\n\nvar DeleteClick = (function (_super) {\n __extends(DeleteClick, _super);\n function DeleteClick() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n DeleteClick.prototype.mouseDown = function (args) {\n _super.prototype.mouseDown.call(this, args);\n this.inAction = true;\n };\n DeleteClick.prototype.mouseUp = function (args) {\n if (this.inAction) {\n var selectedObject = this.commandHandler.getSelectedObject();\n if (selectedObject[0]) {\n if (selectedObject[0] instanceof ej.diagrams.Node) {\n var node = selectedObject[0];\n this.removeSubChild(node);\n }\n diagram.doLayout();\n }\n }\n };\n DeleteClick.prototype.removeSubChild = function (node) {\n for (var i = node.outEdges.length - 1; i >= 0; i--) {\n var connector = diagram.getObject(node.outEdges[i]);\n var childNode = diagram.getObject(connector.targetID);\n if (childNode.outEdges.length > 0) {\n this.removeSubChild(childNode);\n }\n else {\n diagram.remove(childNode);\n }\n }\n diagram.remove(node);\n };\n return DeleteClick;\n}(ej.diagrams.ToolBase));\n\nfunction onchange(params) {\n if (selectedObject[0].data.branch === 'Root' || selectedObject[0].data.branch === 'Left' || selectedObject[0].data.branch === 'Right') {\n selectedObject[0].style.fill = args.target.value;\n diagram.dataBind();\n } else {\n selectedObject[0].annotations[0].style.color = args.target.value;\n diagram.dataBind();\n }\n}\n//hide the require userhandle.\nfunction hideUserHandle(name) {\n for (var _i = 0, _a = diagram.selectedItems.userHandles; _i < _a.length; _i++) {\n var handle_2 = _a[_i];\n if (handle_2.name === name) {\n handle_2.visible = false;\n }\n }\n}\n\nvar leftarrow = 'M11.924,6.202 L4.633,6.202 L4.633,9.266 L0,4.633 L4.632,0 L4.632,3.551 L11.923,3.551 L11.923,6.202Z';\nvar rightarrow = 'M0,3.063 L7.292,3.063 L7.292,0 L11.924,4.633 L7.292,9.266 L7.292,5.714 L0.001,5.714 L0.001,3.063Z';\nvar deleteicon = 'M 7.04 22.13 L 92.95 22.13 L 92.95 88.8 C 92.95 91.92 91.55 94.58 88.76' +\n '96.74 C 85.97 98.91 82.55 100 78.52 100 L 21.48 100 C 17.45 100 14.03 98.91 11.24 96.74 C 8.45 94.58 7.04' +\n '91.92 7.04 88.8 z M 32.22 0 L 67.78 0 L 75.17 5.47 L 100 5.47 L 100 16.67 L 0 16.67 L 0 5.47 L 24.83 5.47 z';\nvar leftuserhandle = setUserHandle('leftHandle', leftarrow, 'Left', 1, { top: 0, bottom: 0, left: 0, right: 10 }, 'Left', 'Top');\nvar rightuserhandle = setUserHandle('rightHandle', rightarrow, 'Right', 1, { top: 0, bottom: 0, left: 10, right: 0 }, 'Right', 'Top');\nvar deleteuserhandle = setUserHandle('delete', deleteicon, 'Top', 0.5, { top: 0, bottom: 10, left: 0, right: 0 }, 'Center', 'Center');\nvar handle = [leftuserhandle, rightuserhandle, deleteuserhandle];\n//set and creation of the Userhandle.\nfunction setUserHandle(name, pathData, side, offset, margin, halignment, valignment) {\n var userhandle = {\n name: name,\n pathData: pathData,\n backgroundColor: 'black',\n pathColor: 'white',\n side: side,\n offset: offset,\n margin: margin,\n horizontalAlignment: halignment,\n verticalAlignment: valignment,\n };\n return userhandle;\n}\n//Change the Position of the UserHandle.\nfunction changeUserHandlePosition(change) {\n for (var handle in diagram.selectedItems.userHandles) {\n if (handle.name === 'delete' && change === 'leftHandle') {\n applyHandle(handle, 'Left', 1, { top: 0, bottom: 0, left: 0, right: 10 }, 'Left', 'Top');\n\n } else if (handle.name === 'delete' && change === 'rightHandle') {\n applyHandle(handle, 'Right', 1, { top: 0, bottom: 0, left: 10, right: 0 }, 'Right', 'Top');\n }\n }\n}\n//set the value for UserHandle element\nfunction applyHandle(handle, side, offset, margin, halignment, valignment) {\n handle.side = side;\n handle.offset = offset;\n handle.margin = margin;\n handle.horizontalAlignment = halignment;\n handle.verticalAlignment = valignment;\n}\n\n\n var items = new ej.data.DataManager(window.data, new ej.data.Query().take(7));\n\n //initialization of the Diagram.\n diagram = new ej.diagrams.Diagram({\n width: '100%', height: '550px',\n snapSettings: { constraints: ej.diagrams.SnapConstraints.None },\n tool: ej.diagrams.DiagramTools.SingleSelect,\n layout: {\n type: 'MindMap', horizontalSpacing: 50,\n getBranch: function (node) {\n return node.data.branch;\n }\n },\n selectionChange: selectionChange,\n selectedItems: { constraints: ej.diagrams.SelectorConstraints.UserHandle, userHandles: handle },\n dataSourceSettings: { id: 'id', parentId: 'parentId', dataManager: items, root: String(1) },\n //sets node default value\n getNodeDefaults: getNodeDefaults,\n //sets connector default value \n getConnectorDefaults: getConnectorDefaults,\n getCustomTool: getTool,\n });\n diagram.appendTo('#diagram');\n diagram.fitToPage();\n\n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}/*jshint esversion: 6 */\nej.diagrams.Diagram.Inject(ej.diagrams.DataBinding, ej.diagrams.MindMap, ej.diagrams.HierarchicalTree);\nvar diagram;\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__; var __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n /* jshint proto: true */\n ({ __proto__: [] } instanceof Array && function (der, b) { der.__proto__ = b; }) ||\n function (der, b) { for (var p in b) if (b.hasOwnProperty(p)) der[p] = b[p]; };\n return function (der, b) {\n extendStatics(der, b);\n function __() { this.constructor = der; }\n der.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * Mind-map sample\n */\n\nfunction selectionChange(arg) {\n if (arg.state === 'Changing') {\n if (arg.newValue[0] instanceof ej.diagrams.Node) {\n for (var _i = 0, _a = diagram.selectedItems.userHandles; _i < _a.length; _i++) {\n var handle_1 = _a[_i];\n handle_1.visible = true;\n }\n if (arg.newValue[0].data.branch === 'Left' ||\n arg.newValue[0].data.branch === 'subLeft') {\n hideUserHandle('leftHandle');\n changeUserHandlePosition('leftHandle');\n }\n else if (arg.newValue[0].data.branch === 'Right' ||\n arg.newValue[0].data.branch === 'subRight') {\n hideUserHandle('rightHandle');\n changeUserHandlePosition('rightHandle');\n }\n else if (arg.newValue[0].data.branch === 'Root') {\n hideUserHandle('delete');\n }\n }\n else {\n hideUserHandle('leftHandle');\n hideUserHandle('rightHandle');\n hideUserHandle('delete');\n }\n }\n}\n\nfunction getNodeDefaults(obj) {\n obj.constraints = ej.diagrams.NodeConstraints.Default & ~ej.diagrams.NodeConstraints.Drag;\n if (obj.data.branch === 'Left' || obj.data.branch === 'Right' || obj.data.branch === 'Root') {\n obj.shape = { type: 'Basic', shape: 'Ellipse' };\n obj.borderColor = 'black';\n obj.style = {\n fill: obj.data.branch === 'Root' ? '#E74C3C' : '#F39C12', strokeColor: 'none',\n strokeWidth: 2\n };\n obj.annotations = [{\n content: obj.data.Label, margin: { left: 10, right: 10, top: 10, bottom: 10 },\n style: { color: 'white' }\n }];\n var port1 = getPort();\n for (var i = 0; i < port1.length; i++) {\n obj.ports.push(new ej.diagrams.PointPort(obj, 'ports', port1[i], true));\n }\n hideUserHandle('Top');\n }\n else {\n var color = void 0;\n if (obj.data.branch === 'Right' || obj.data.branch === 'subRight') {\n color = '#8E44AD';\n }\n else {\n color = '#3498DB';\n }\n obj.shape = { type: 'Basic', shape: 'Rectangle' };\n obj.style = { fill: color, strokeWidth: 0 };\n obj.minWidth = 100;\n obj.height = 4;\n var port2 = getPort();\n for (var j = 0; j < port2.length; j++) {\n obj.ports.push(new ej.diagrams.PointPort(obj, 'ports', port2[j], true));\n }\n obj.annotations = [{\n content: obj.data.Label, offset: { x: 0.5, y: 0 }, verticalAlignment: 'Bottom'\n }];\n obj.shape.margin = { left: 0, right: 0, top: 0, bottom: 0 };\n }\n return obj;\n}\n\nfunction getConnectorDefaults(connector, diagram) {\n connector.type = 'Bezier';\n connector.targetDecorator = { shape: 'None' };\n var sourceNode = diagram.getObject(connector.sourceID);\n var targetNode = diagram.getObject(connector.targetID);\n if (targetNode.data.branch === 'Right' || targetNode.data.branch === 'subRight') {\n connector.sourcePortID = sourceNode.ports[0].id;\n connector.targetPortID = targetNode.ports[1].id;\n connector.style = { strokeWidth: 2, strokeColor: '#8E44AD' };\n }\n else if (targetNode.data.branch === 'Left' || targetNode.data.branch === 'subLeft') {\n connector.sourcePortID = sourceNode.ports[1].id;\n connector.targetPortID = targetNode.ports[0].id;\n connector.style = { strokeWidth: 2, strokeColor: '#3498DB' };\n }\n connector.constraints &= ~ej.diagrams.ConnectorConstraints.Select;\n return connector;\n}\n\n//creation of the Ports\nfunction getPort() {\n var port =\n [{\n id: 'port1', offset: { x: 0, y: 0.5 }, visibility: ej.diagrams.PortVisibility.Hidden,\n style: { fill: 'black' }\n },\n {\n id: 'port2', offset: { x: 1, y: 0.5 }, visibility: ej.diagrams.PortVisibility.Hidden,\n style: { fill: 'black' }\n },\n ];\n return port;\n}\n\nfunction addNode() {\n var obj = {};\n obj.id = ej.diagrams.randomId();\n obj.data = {};\n obj.data.Label = 'Node';\n return obj;\n}\nfunction addConnector(source, target) {\n var connector = {};\n connector.id = ej.diagrams.randomId();\n connector.sourceID = source.id;\n connector.targetID = target.id;\n return connector;\n}\n\n//Tool for Userhandles.\nfunction getTool(action) {\n var tool;\n if (action === 'leftHandle') {\n tool = new LeftExtendTool(diagram.commandHandler);\n } else if (action === 'rightHandle') {\n tool = new RightExtendTool(diagram.commandHandler);\n } else if (action === 'delete') {\n tool = new DeleteClick(diagram.commandHandler);\n }\n return tool;\n}\n\nvar LeftExtendTool = (function (_super) {\n __extends(LeftExtendTool, _super);\n function LeftExtendTool() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LeftExtendTool.prototype.mouseDown = function (args) {\n _super.prototype.mouseDown.call(this, args);\n this.inAction = true;\n };\n LeftExtendTool.prototype.mouseUp = function (args) {\n if (this.inAction) {\n var selectedElement = this.commandHandler.getSelectedObject();\n if (selectedElement[0]) {\n if (selectedElement[0] instanceof ej.diagrams.Node) {\n var node = addNode();\n if (selectedElement[0].data.branch === 'Root') {\n node.data.branch = 'Right';\n }\n else if (selectedElement[0].data.branch === 'Right' ||\n selectedElement[0].data.branch === 'subRight') {\n node.data.branch = 'subRight';\n }\n var connector = addConnector(selectedElement[0], node);\n diagram.clearSelection();\n var nd = diagram.add(node);\n diagram.add(connector);\n diagram.doLayout();\n diagram.bringIntoView(nd.wrapper.bounds);\n diagram.startTextEdit(nd);\n }\n }\n }\n };\n return LeftExtendTool;\n}(ej.diagrams.ToolBase));\n\nvar RightExtendTool = (function (_super) {\n __extends(RightExtendTool, _super);\n function RightExtendTool() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n RightExtendTool.prototype.mouseDown = function (args) {\n _super.prototype.mouseDown.call(this, args);\n this.inAction = true;\n };\n RightExtendTool.prototype.mouseUp = function (args) {\n if (this.inAction) {\n var selectedObject = this.commandHandler.getSelectedObject();\n if (selectedObject[0]) {\n if (selectedObject[0] instanceof ej.diagrams.Node) {\n var node = addNode();\n if (selectedObject[0].data.branch === 'Root') {\n node.data.branch = 'Left';\n }\n else if (selectedObject[0].data.branch === 'Left' ||\n selectedObject[0].data.branch === 'subLeft') {\n node.data.branch = 'subLeft';\n }\n var connector = addConnector(selectedObject[0], node);\n diagram.clearSelection();\n var nd = diagram.add(node);\n diagram.add(connector);\n diagram.doLayout();\n diagram.bringIntoView(nd.wrapper.bounds);\n diagram.startTextEdit(nd);\n }\n }\n }\n };\n return RightExtendTool;\n}(ej.diagrams.ToolBase));\n\nvar DeleteClick = (function (_super) {\n __extends(DeleteClick, _super);\n function DeleteClick() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n DeleteClick.prototype.mouseDown = function (args) {\n _super.prototype.mouseDown.call(this, args);\n this.inAction = true;\n };\n DeleteClick.prototype.mouseUp = function (args) {\n if (this.inAction) {\n var selectedObject = this.commandHandler.getSelectedObject();\n if (selectedObject[0]) {\n if (selectedObject[0] instanceof ej.diagrams.Node) {\n var node = selectedObject[0];\n this.removeSubChild(node);\n }\n diagram.doLayout();\n }\n }\n };\n DeleteClick.prototype.removeSubChild = function (node) {\n for (var i = node.outEdges.length - 1; i >= 0; i--) {\n var connector = diagram.getObject(node.outEdges[i]);\n var childNode = diagram.getObject(connector.targetID);\n if (childNode.outEdges.length > 0) {\n this.removeSubChild(childNode);\n }\n else {\n diagram.remove(childNode);\n }\n }\n diagram.remove(node);\n };\n return DeleteClick;\n}(ej.diagrams.ToolBase));\n\nfunction onchange(params) {\n if (selectedObject[0].data.branch === 'Root' || selectedObject[0].data.branch === 'Left' || selectedObject[0].data.branch === 'Right') {\n selectedObject[0].style.fill = args.target.value;\n diagram.dataBind();\n } else {\n selectedObject[0].annotations[0].style.color = args.target.value;\n diagram.dataBind();\n }\n}\n//hide the require userhandle.\nfunction hideUserHandle(name) {\n for (var _i = 0, _a = diagram.selectedItems.userHandles; _i < _a.length; _i++) {\n var handle_2 = _a[_i];\n if (handle_2.name === name) {\n handle_2.visible = false;\n }\n }\n}\n\nvar leftarrow = 'M11.924,6.202 L4.633,6.202 L4.633,9.266 L0,4.633 L4.632,0 L4.632,3.551 L11.923,3.551 L11.923,6.202Z';\nvar rightarrow = 'M0,3.063 L7.292,3.063 L7.292,0 L11.924,4.633 L7.292,9.266 L7.292,5.714 L0.001,5.714 L0.001,3.063Z';\nvar deleteicon = 'M 7.04 22.13 L 92.95 22.13 L 92.95 88.8 C 92.95 91.92 91.55 94.58 88.76' +\n '96.74 C 85.97 98.91 82.55 100 78.52 100 L 21.48 100 C 17.45 100 14.03 98.91 11.24 96.74 C 8.45 94.58 7.04' +\n '91.92 7.04 88.8 z M 32.22 0 L 67.78 0 L 75.17 5.47 L 100 5.47 L 100 16.67 L 0 16.67 L 0 5.47 L 24.83 5.47 z';\nvar leftuserhandle = setUserHandle('leftHandle', leftarrow, 'Left', 1, { top: 0, bottom: 0, left: 0, right: 10 }, 'Left', 'Top');\nvar rightuserhandle = setUserHandle('rightHandle', rightarrow, 'Right', 1, { top: 0, bottom: 0, left: 10, right: 0 }, 'Right', 'Top');\nvar deleteuserhandle = setUserHandle('delete', deleteicon, 'Top', 0.5, { top: 0, bottom: 10, left: 0, right: 0 }, 'Center', 'Center');\nvar handle = [leftuserhandle, rightuserhandle, deleteuserhandle];\n//set and creation of the Userhandle.\nfunction setUserHandle(name, pathData, side, offset, margin, halignment, valignment) {\n var userhandle = {\n name: name,\n pathData: pathData,\n backgroundColor: 'black',\n pathColor: 'white',\n side: side,\n offset: offset,\n margin: margin,\n horizontalAlignment: halignment,\n verticalAlignment: valignment,\n };\n return userhandle;\n}\n//Change the Position of the UserHandle.\nfunction changeUserHandlePosition(change) {\n for (var handle in diagram.selectedItems.userHandles) {\n if (handle.name === 'delete' && change === 'leftHandle') {\n applyHandle(handle, 'Left', 1, { top: 0, bottom: 0, left: 0, right: 10 }, 'Left', 'Top');\n\n } else if (handle.name === 'delete' && change === 'rightHandle') {\n applyHandle(handle, 'Right', 1, { top: 0, bottom: 0, left: 10, right: 0 }, 'Right', 'Top');\n }\n }\n}\n//set the value for UserHandle element\nfunction applyHandle(handle, side, offset, margin, halignment, valignment) {\n handle.side = side;\n handle.offset = offset;\n handle.margin = margin;\n handle.horizontalAlignment = halignment;\n handle.verticalAlignment = valignment;\n}\n\n\n var items = new ej.data.DataManager(window.data, new ej.data.Query().take(7));\n\n //initialization of the Diagram.\n diagram = new ej.diagrams.Diagram({\n width: '100%', height: '550px',\n snapSettings: { constraints: ej.diagrams.SnapConstraints.None },\n tool: ej.diagrams.DiagramTools.SingleSelect,\n layout: {\n type: 'MindMap', horizontalSpacing: 50,\n getBranch: function (node) {\n return node.data.branch;\n }\n },\n selectionChange: selectionChange,\n selectedItems: { constraints: ej.diagrams.SelectorConstraints.UserHandle, userHandles: handle },\n dataSourceSettings: { id: 'id', parentId: 'parentId', dataManager: items, root: String(1) },\n //sets node default value\n getNodeDefaults: getNodeDefaults,\n //sets connector default value \n getConnectorDefaults: getConnectorDefaults,\n getCustomTool: getTool,\n });\n diagram.appendTo('#diagram');\n diagram.fitToPage();\n\n"}
\ No newline at end of file
diff --git a/src/diagram/network-diagram-stack.json b/src/diagram/network-diagram-stack.json
index 5dd5e85c..5d9e2016 100644
--- a/src/diagram/network-diagram-stack.json
+++ b/src/diagram/network-diagram-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n \n\n
\n\n
\n
\n
\n
\n
\n Import SVG files \n \n
\n
\n
\n
\n
\n\n
","index.js":"{{ripple}}\n\nfunction getNetworkNodeDefaults(node) {\n node.style.strokeColor = '#5C90DF';\n node.style.fill = 'transparent';\n if (node.annotations.length !== 0) {\n node.annotations[0].style.color = 'black';\n node.annotations[0].style.fontSize = 12;\n node.annotations[0].style = {\n textWrapping: 'NoWrap',\n };\n }\n if (node.ports.length !== 0) {\n for (var i = 0; i < node.ports.length; i++) {\n node.ports[i].visibility = ej.diagrams.PortVisibility.Hidden;\n }\n }\n if (node.shape.type === 'Native') {\n if (node.id === 'Server1') {\n node.width = 50;\n node.height = 65;\n } else if (\n node.id === 'WorkStation1' || node.id === 'WorkStation2' ||\n node.id === 'WorkStation3' || node.id === 'WorkStation4'\n ) {\n node.width = 60;\n node.height = 40;\n } else if (\n node.id === 'RemoteController1' || node.id === 'RemoteController2' ||\n node.id === 'RemoteController3'\n ) {\n node.width = 25;\n node.height = 50;\n } else if (\n node.id === 'modem1' || node.id === 'modem2' || node.id === 'modem3' ||\n node.id === 'modem4' || node.id === 'modem5' || node.id === 'sensor'\n ) {\n node.width = 40;\n node.height = 30;\n } else if (\n node.id === 'DeviceDriver1' || node.id === 'DeviceDriver2' ||\n node.id === 'DeviceDriver3'\n ) {\n node.width = 30;\n node.height = 33;\n } else if (node.id === 'AnalogIO' || node.id === 'HMI') {\n node.width = 40;\n node.height = 50;\n }\n node.shape.scale = 'Stretch';\n }\n if (node.shape.type === 'Text') {\n node.width = 127;\n node.height = 40;\n node.style = { bold: true, fontSize: 16 };\n }\n if (\n node.id === 'connector1' || node.id === 'connector2' || node.id === 'connector3' ||\n node.id === 'connector4' || node.id === 'connector5' || node.id === 'connector6'\n ) {\n if (node.id !== 'connector2' && node.id !== 'connector6') {\n node.rotateAngle = 270;\n }\n node.width = 50;\n node.height = 20;\n node.style = { strokeColor: '#5C90DF', fill: 'white' };\n node.shape = { type: 'Path', data: arrow };\n }\n return node;\n}\n\nfunction getConnectorDefaults(connector) {\n connector.targetDecorator = { shape: 'Arrow', width: 8, height: 8, style: { fill: '#5C90DF', strokeColor: '#5C90DF' } };\n connector.style.strokeColor = '#5C90DF';\n if (connector.annotations.length !== 0) {\n connector.annotations[0].style.fill = 'white';\n }\n return connector;\n}\n\nfunction getSymbolDefaults(symbol) {\n if (symbol.id === 'arrow1') {\n symbol.width = 75; symbol.height = 60;\n symbol.offsetX = 160; symbol.offsetY = 135;\n symbol.style.strokeColor = '#5C90DF';\n symbol.style.fill = 'white';\n } else {\n if (symbol.id === 'remoteController') {\n symbol.width = 25;\n } else {\n symbol.width = 40;\n }\n symbol.height = 40; symbol.offsetX = 20;\n symbol.offsetY = 20;\n symbol.shape.scale = 'Stretch';\n }\n}\n\nfunction onFileRemove(args) {\n args.postRawFile = false;\n}\n\nfunction addEvents() {\n var isMobile = window.matchMedia('(max-width:550px)').matches;\n if (isMobile) {\n var paletteIcons = document.getElementById('palette-icon');\n if (paletteIcons) {\n paletteIcons.addEventListener('click', openPalette, false);\n }\n }\n}\n\nfunction openPalette() {\n var paletteSpaces = document.getElementById('palette-space');\n isMobile = window.matchMedia('(max-width:550px)').matches;\n if (isMobile) {\n if (!paletteSpaces.classList.contains('sb-mobile-palette-open')) {\n paletteSpaces.classList.add('sb-mobile-palette-open');\n }\n else {\n paletteSpaces.classList.remove('sb-mobile-palette-open');\n }\n }\n}\n\n/** * Network Diagram sample\n */\n// tslint:disable-next-line:max-func-body-length\n\n\n var port = [\n { id: 'port1', offset: { x: 0, y: 0.5 } },\n { id: 'port2', offset: { x: 1, y: 0.5 } },\n { id: 'port3', offset: { x: 0.5, y: 0.1 } },\n { id: 'port4', offset: { x: 0.5, y: 0.92 } }\n ];\n var portrc = [\n { id: 'port1', offset: { x: 0.05, y: 0.5 } },\n { id: 'port2', offset: { x: 1, y: 0.5 } },\n { id: 'port3', offset: { x: 0.85, y: 0.1 } },\n { id: 'port4', offset: { x: 0.6, y: 0.97 } }\n ];\n var porthmi = [\n { id: 'port1', offset: { x: 0.34, y: 0.5 } },\n { id: 'port2', offset: { x: 0.75, y: 0.5 } },\n { id: 'port3', offset: { x: 0.5, y: 0.05 } },\n { id: 'port4', offset: { x: 0.6, y: 0.9 } }\n ];\n var port2 = [\n { id: 'port1', offset: { x: 0.45, y: 0.5 } },\n { id: 'port2', offset: { x: 0.97, y: 0.5 } },\n { id: 'port3', offset: { x: 0.5, y: 0.97 } }\n ];\n var portmo = [\n { id: 'port1', offset: { x: 0.02, y: 0.6 } },\n { id: 'port2', offset: { x: 0.98, y: 0.625 } },\n { id: 'port3', offset: { x: 0.5, y: 0.3 } },\n { id: 'port4', offset: { x: 0.5, y: 0.97 } }\n ];\n var nodes = [\n {\n id: 'Server1', offsetX: 80, offsetY: 75,\n shape: { type: 'Native', content: template1 },\n annotations: [{ content: 'Server', offset: { x: 0.5, y: 0 }, margin: { bottom: 10 } }],\n ports: port\n },\n {\n id: 'WorkStation1', offsetX: 250, offsetY: 75,\n shape: { type: 'Native', content: template2 },\n annotations: [{ content: 'Work Station', margin: { bottom: 25 }, offset: { x: 1.4, y: 0.2 } }],\n ports: port2\n },\n {\n id: 'WorkStation2', offsetX: 350, offsetY: 75,\n shape: { type: 'Native', content: template2 },\n ports: port2\n },\n {\n id: 'modem1', offsetX: 450, offsetY: 125,\n shape: { type: 'Native', content: template3 },\n annotations: [{ content: 'Modem', margin: { right: 25 }, offset: { x: 0, y: 0.5 } }],\n ports: portmo\n },\n {\n id: 'modem2', offsetX: 525, offsetY: 175,\n shape: { type: 'Native', content: template3 },\n annotations: [{ content: 'Modem1', margin: { bottom: 10 }, offset: { x: 0.5, y: 0 } }],\n ports: portmo\n },\n {\n id: 'RemoteController1', offsetX: 600, offsetY: 125,\n shape: { type: 'Native', content: template4 },\n annotations: [{ content: 'Remote Controller', margin: { bottom: 10 }, offset: { x: 0.5, y: 0 } }],\n ports: portrc\n },\n {\n id: 'modem3', offsetX: 350, offsetY: 205,\n shape: { type: 'Native', content: template3 },\n annotations: [{ content: 'Modem4', margin: { left: 35 }, offset: { x: 1, y: 0.5 } }],\n ports: portmo\n },\n {\n id: 'modem4', offsetX: 450, offsetY: 245,\n shape: { type: 'Native', content: template3 },\n annotations: [{ content: 'Modem2', offset: { x: 0.5, y: 1.3 } }],\n ports: portmo\n },\n {\n id: 'modem5', offsetX: 350, offsetY: 330,\n shape: { type: 'Native', content: template3 },\n annotations: [{ content: 'Modem3', margin: { right: 25 }, offset: { x: 0, y: 0.5 } }],\n ports: portmo\n },\n {\n id: 'WorkStation3', offsetX: 600, offsetY: 250,\n shape: { type: 'Native', content: template2 },\n annotations: [{ content: 'Remote Work Staions', margin: { top: 12 }, offset: { x: 0.5, y: 1 } }],\n ports: port2\n },\n {\n id: 'WorkStation4', offsetX: 600, offsetY: 335,\n shape: { type: 'Native', content: template2 },\n annotations: [{ content: 'Portable Work Staions', margin: { top: 12 }, offset: { x: 0.5, y: 1 } }],\n ports: port2\n },\n {\n id: 'RemoteController2', offsetX: 80, offsetY: 400,\n shape: { type: 'Native', content: template4 },\n annotations: [{ content: 'Control Logic', margin: { top: 8 }, offset: { x: 0.5, y: 1 } }],\n ports: portrc\n },\n {\n id: 'RemoteController3', offsetX: 500, offsetY: 400,\n shape: { type: 'Native', content: template4 },\n annotations: [{ content: 'Control Logic', margin: { top: 8 }, offset: { x: 0.5, y: 1 } }],\n ports: portrc\n },\n {\n id: 'AnalogIO', offsetX: 160, offsetY: 500,\n shape: { type: 'Native', content: template5 },\n annotations: [{ content: 'Analog IO', margin: { top: 13 }, offset: { x: 0.5, y: 1 } }],\n ports: porthmi\n },\n {\n id: 'sensor', offsetX: 260, offsetY: 500,\n shape: { type: 'Native', content: template6 },\n annotations: [{ content: 'Sensor', margin: { top: 10 }, offset: { x: 0.5, y: 1 } }],\n ports: port\n },\n {\n id: 'DeviceDriver1', offsetX: 360, offsetY: 500,\n shape: { type: 'Native', content: template7 },\n annotations: [{ content: 'DriverA', offset: { x: 0.5, y: 1.3 } }],\n ports: porthmi\n },\n {\n id: 'DeviceDriver2', offsetX: 460, offsetY: 500,\n shape: { type: 'Native', content: template7 },\n annotations: [{ content: 'DriverB', offset: { x: 0.5, y: 1.3 } }],\n ports: porthmi\n },\n {\n id: 'DeviceDriver3', offsetX: 550, offsetY: 500,\n shape: { type: 'Native', content: template7 },\n annotations: [{ content: 'DriverC', offset: { x: 0.5, y: 1.3 } }],\n ports: porthmi\n },\n {\n id: 'HMI', offsetX: 625, offsetY: 450,\n shape: { type: 'Native', content: template8 },\n annotations: [{ content: 'HMI', offset: { x: 0.5, y: 1.3 } }],\n ports: port\n },\n {\n id: 'controlNet', offsetX: 218.5, offsetY: 380,\n shape: { type: 'Text', content: 'Control Net', }\n },\n {\n id: 'etherNet', offsetX: 218.5, offsetY: 190,\n shape: { type: 'Text', content: 'Ethernet', }\n },\n {\n id: 'deviceNet', offsetX: 345.5, offsetY: 555,\n shape: { type: 'Text', content: 'Device Net', }\n },\n {\n id: 'connector1', offsetX: 99, offsetY: 175\n },\n {\n id: 'connector2', offsetX: 250, offsetY: 125\n },\n {\n id: 'connector3', offsetX: 99, offsetY: 300\n },\n {\n id: 'connector4', offsetX: 178, offsetY: 435\n },\n {\n id: 'connector5', offsetX: 378, offsetY: 435\n },\n {\n id: 'connector6', offsetX: 370, offsetY: 380\n }\n ];\n var connectors = [\n {\n id: 'connectora', sourceID: 'Server1', targetID: 'WorkStation1',\n targetPortID: 'port1'\n },\n {\n id: 'connectorawork', sourceID: 'WorkStation1', targetID: 'WorkStation2',\n sourcePortID: 'port2', targetPortID: 'port1'\n },\n {\n id: 'connectoraworkm', sourceID: 'WorkStation2', targetID: 'modem1', type: 'Orthogonal',\n segments: [{ type: 'Orthogonal', length: 25 }],\n targetPortID: 'port3', sourcePortID: 'port2'\n },\n {\n id: 'connectorm1m2', sourceID: 'modem2', targetID: 'modem1', type: 'Orthogonal',\n segments: [{ type: 'Orthogonal', length: 25 }],\n sourcePortID: 'port1', targetPortID: 'port4'\n },\n {\n id: 'connectorm2m3', sourceID: 'modem2', targetID: 'RemoteController1', type: 'Orthogonal',\n segments: [{ type: 'Orthogonal', length: 25 }],\n sourcePortID: 'port2', targetPortID: 'port4'\n },\n {\n id: 'connectorws2m3', sourceID: 'WorkStation2', targetID: 'modem3',\n sourcePortID: 'port3', targetPortID: 'port3'\n },\n {\n id: 'connectorws2m4', sourceID: 'modem4', targetID: 'modem3', type: 'Orthogonal',\n segments: [{ type: 'Orthogonal', length: 25 }],\n sourcePortID: 'port1', targetPortID: 'port4'\n },\n {\n id: 'connectorm3m4', sourceID: 'modem5', targetID: 'modem3',\n sourcePortID: 'port3', targetPortID: 'port4'\n },\n {\n id: 'connectorm4ws3', sourceID: 'modem5', targetID: 'WorkStation4',\n sourcePortID: 'port2', targetPortID: 'port1'\n },\n {\n id: 'connectorm4m5', sourceID: 'modem4', targetID: 'WorkStation3',\n sourcePortID: 'port2', targetPortID: 'port1'\n },\n {\n id: 'connectorr2r3', sourceID: 'RemoteController2', targetID: 'RemoteController3',\n targetPortID: 'port1'\n },\n {\n id: 'connectorr2r3qq', sourceID: 'Server1', targetID: 'RemoteController2',\n sourcePortID: 'port4'\n },\n {\n id: 'connectorm3se1', sourceID: 'modem3', targetID: 'Server1', type: 'Orthogonal',\n segments: [{ type: 'Orthogonal', length: 25 }],\n sourcePortID: 'port1', targetPortID: 'port4'\n },\n {\n id: 'connectorws2aio1', sourceID: 'RemoteController2', targetID: 'AnalogIO',\n type: 'Orthogonal', sourcePortID: 'port2', targetPortID: 'port3'\n },\n {\n id: 'connectorb', sourceID: 'RemoteController2', targetID: 'sensor', type: 'Orthogonal',\n segments: [{ type: 'Orthogonal', length: 25 }],\n sourcePortID: 'port2', targetPortID: 'port3'\n },\n {\n id: 'connectord1', sourceID: 'RemoteController2', targetID: 'DeviceDriver1', type: 'Orthogonal',\n segments: [{ type: 'Orthogonal', length: 25 }],\n sourcePortID: 'port2', targetPortID: 'port3'\n },\n {\n id: 'connectord2', sourceID: 'RemoteController2', targetID: 'DeviceDriver2', type: 'Orthogonal',\n segments: [{ type: 'Orthogonal', length: 25 }],\n sourcePortID: 'port2', targetPortID: 'port3'\n },\n {\n id: 'connectordh1d3', sourceID: 'HMI', targetID: 'DeviceDriver3', type: 'Orthogonal',\n sourcePortID: 'port1', targetPortID: 'port3'\n },\n {\n id: 'connectordh1d2', sourceID: 'HMI', type: 'Orthogonal', targetID: 'DeviceDriver2',\n sourcePortID: 'port1', targetPortID: 'port3'\n }\n ];\n //initialize the diagram control\n var diagram = new ej.diagrams.Diagram({\n // sets the height and width of the diagram.\n width: '100%', height: '100%',\n // sets the nodes and connectors of the diagram.\n nodes: nodes, connectors: connectors,\n //Sets the default values of a node.\n getNodeDefaults: getNetworkNodeDefaults,\n //Sets the default values of a Connector.\n getConnectorDefaults: getConnectorDefaults,\n // sets snap settings to the diagram.\n snapSettings: { constraints: ej.diagrams.SnapConstraints.None },\n created: created\n });\n diagram.appendTo('#diagram');\n var symbols = [\n { id: 'server', shape: { type: 'Native', content: template1 } },\n { id: 'workStation', shape: { type: 'Native', content: template2 } },\n { id: 'modem', shape: { type: 'Native', content: template3 } },\n { id: 'remoteController', shape: { type: 'Native', content: template4 } },\n { id: 'hmi', shape: { type: 'Native', content: template8 } },\n { id: 'analogIO', shape: { type: 'Native', content: template5 } },\n { id: 'sensor', shape: { type: 'Native', content: template6 } },\n { id: 'deviceDriver', shape: { type: 'Native', content: template7 } },\n { id: 'Virtual-Server-Copy', shape: { type: 'Native', content: template10 } },\n { id: 'user', shape: { type: 'Native', content: template11 } },\n { id: 'User-group', shape: { type: 'Native', content: template12 } },\n { id: 'UPS', shape: { type: 'Native', content: template13 } },\n { id: 'Tablet', shape: { type: 'Native', content: template14 } },\n { id: 'Switch', shape: { type: 'Native', content: template15 } },\n { id: 'Subwoofer', shape: { type: 'Native', content: template16 } },\n { id: 'Speaker', shape: { type: 'Native', content: template17 } },\n { id: 'Security-camera', shape: { type: 'Native', content: template18 } },\n { id: 'arrow1', shape: { type: 'Path', data: arrow } }\n ];\n var sourcePoint = { x: 0, y: 0 };\n var targetPoint = { x: 40, y: 40 };\n var targetDecorator = { shape: 'Arrow' };\n var style = { strokeWidth: 2 };\n var connectorSymbols = [\n {\n id: 'link11', type: 'Straight', sourcePoint: sourcePoint, targetPoint: targetPoint,\n targetDecorator: targetDecorator, style: style\n },\n {\n id: 'link12', type: 'Orthogonal', sourcePoint: sourcePoint, targetPoint: targetPoint,\n targetDecorator: targetDecorator, style: style\n }\n ];\n var palettes = [\n { id: 'network', expanded: true, symbols: symbols, title: 'Network Shapes' },\n { id: 'connectors', expanded: true, symbols: connectorSymbols, title: 'Connectors' }\n ];\n var palette = new ej.diagrams.SymbolPalette({\n // sets the expandable mode of the symbol palette.\n expandMode: 'Multiple',\n // sets the palettes to be displayed in the symbol palette.\n palettes: palettes,\n // sets the width and height of the palette.\n width: '100%', height: 'calc(100% - 50px)',\n symbolHeight: 48, symbolWidth: 48,\n // sets the default values for the symbols in the symbol palette.\n getNodeDefaults: getSymbolDefaults,\n getSymbolInfo: function (symbol) { return { fit: true }; }\n });\n palette.appendTo('#symbolpalette');\n var dropElement = document.getElementsByClassName('control-fluid')[0];\n\n var button = new ej.buttons.Button({ cssClass: 'e-outline', isPrimary: true });\n button.appendTo('#browse');\n\n var uploadObj = new ej.inputs.Uploader({\n asyncSettings: {\n saveUrl: 'https://aspnetmvc.syncfusion.com/services/api/uploadbox/Save',\n removeUrl: 'https://aspnetmvc.syncfusion.com/services/api/uploadbox/Remove'\n }, dropArea: dropElement,\n success: onUploadSuccess,\n removing: onFileRemove\n });\n uploadObj.appendTo('#fileupload');\n button.element.onclick = function () {\n document.getElementsByClassName('e-file-select-wrap')[0].querySelector('button').click();\n return false;\n };\n var id = 0;\n\n function onUploadSuccess(arg) {\n var file1 = arg.file;\n var file = file1.rawFile;\n var reader = new FileReader();\n reader.addEventListener('load', function (event) {\n var shape;\n var shapeContent = getNativeContent(event.target.result);\n shape = { id: 'newshape' + id.toString(), shape: { type: 'Native', content: shapeContent } };\n palette.addPaletteItem('network', shape);\n });\n id++;\n reader.readAsText(file);\n uploadObj.clearAll();\n }\n\n function getNativeContent(content) {\n var attr = { id: 'svgdiv' };\n var div = createHtmlElement('div', attr);\n document.body.appendChild(div);\n div.innerHTML = content;\n var svgContent = div.getElementsByTagName('svg')[0].outerHTML;\n div.parentElement.removeChild(div);\n return svgContent;\n }\n\n function created() {\n addEvents();\n diagram.fitToPage();\n }\n\n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n \n\n
\n\n
\n
\n
\n
\n
\n Import SVG files \n \n
\n
\n
\n
\n
\n\n
","index.js":"{{ripple}}\n\nfunction getNetworkNodeDefaults(node) {\n node.style.strokeColor = '#5C90DF';\n node.style.fill = 'transparent';\n if (node.annotations.length !== 0) {\n node.annotations[0].style.color = 'black';\n node.annotations[0].style.fontSize = 12;\n node.annotations[0].style = {\n textWrapping: 'NoWrap',\n };\n }\n if (node.ports.length !== 0) {\n for (var i = 0; i < node.ports.length; i++) {\n node.ports[i].visibility = ej.diagrams.PortVisibility.Hidden;\n }\n }\n if (node.shape.type === 'Native') {\n if (node.id === 'Server1') {\n node.width = 50;\n node.height = 65;\n } else if (\n node.id === 'WorkStation1' || node.id === 'WorkStation2' ||\n node.id === 'WorkStation3' || node.id === 'WorkStation4'\n ) {\n node.width = 60;\n node.height = 40;\n } else if (\n node.id === 'RemoteController1' || node.id === 'RemoteController2' ||\n node.id === 'RemoteController3'\n ) {\n node.width = 25;\n node.height = 50;\n } else if (\n node.id === 'modem1' || node.id === 'modem2' || node.id === 'modem3' ||\n node.id === 'modem4' || node.id === 'modem5' || node.id === 'sensor'\n ) {\n node.width = 40;\n node.height = 30;\n } else if (\n node.id === 'DeviceDriver1' || node.id === 'DeviceDriver2' ||\n node.id === 'DeviceDriver3'\n ) {\n node.width = 30;\n node.height = 33;\n } else if (node.id === 'AnalogIO' || node.id === 'HMI') {\n node.width = 40;\n node.height = 50;\n }\n node.shape.scale = 'Stretch';\n }\n if (node.shape.type === 'Text') {\n node.width = 127;\n node.height = 40;\n node.style = { bold: true, fontSize: 16 };\n }\n if (\n node.id === 'connector1' || node.id === 'connector2' || node.id === 'connector3' ||\n node.id === 'connector4' || node.id === 'connector5' || node.id === 'connector6'\n ) {\n if (node.id !== 'connector2' && node.id !== 'connector6') {\n node.rotateAngle = 270;\n }\n node.width = 50;\n node.height = 20;\n node.style = { strokeColor: '#5C90DF', fill: 'white' };\n node.shape = { type: 'Path', data: arrow };\n }\n return node;\n}\n\nfunction getConnectorDefaults(connector) {\n connector.targetDecorator = { shape: 'Arrow', width: 8, height: 8, style: { fill: '#5C90DF', strokeColor: '#5C90DF' } };\n connector.style.strokeColor = '#5C90DF';\n if (connector.annotations.length !== 0) {\n connector.annotations[0].style.fill = 'white';\n }\n return connector;\n}\n\nfunction getSymbolDefaults(symbol) {\n if (symbol.id === 'arrow1') {\n symbol.width = 75; symbol.height = 60;\n symbol.offsetX = 160; symbol.offsetY = 135;\n symbol.style.strokeColor = '#5C90DF';\n symbol.style.fill = 'white';\n } else {\n if (symbol.id === 'remoteController') {\n symbol.width = 25;\n } else {\n symbol.width = 40;\n }\n symbol.height = 40; symbol.offsetX = 20;\n symbol.offsetY = 20;\n symbol.shape.scale = 'Stretch';\n }\n}\n\nfunction onFileRemove(args) {\n args.postRawFile = false;\n}\n\nfunction addEvents() {\n var isMobile = window.matchMedia('(max-width:550px)').matches;\n if (isMobile) {\n var paletteIcons = document.getElementById('palette-icon');\n if (paletteIcons) {\n paletteIcons.addEventListener('click', openPalette, false);\n }\n }\n}\n\nfunction openPalette() {\n var paletteSpaces = document.getElementById('palette-space');\n isMobile = window.matchMedia('(max-width:550px)').matches;\n if (isMobile) {\n if (!paletteSpaces.classList.contains('sb-mobile-palette-open')) {\n paletteSpaces.classList.add('sb-mobile-palette-open');\n }\n else {\n paletteSpaces.classList.remove('sb-mobile-palette-open');\n }\n }\n}\n\n/** * Network Diagram sample\n */\n// tslint:disable-next-line:max-func-body-length\n\n\n var port = [\n { id: 'port1', offset: { x: 0, y: 0.5 } },\n { id: 'port2', offset: { x: 1, y: 0.5 } },\n { id: 'port3', offset: { x: 0.5, y: 0.1 } },\n { id: 'port4', offset: { x: 0.5, y: 0.92 } }\n ];\n var portrc = [\n { id: 'port1', offset: { x: 0.05, y: 0.5 } },\n { id: 'port2', offset: { x: 1, y: 0.5 } },\n { id: 'port3', offset: { x: 0.85, y: 0.1 } },\n { id: 'port4', offset: { x: 0.6, y: 0.97 } }\n ];\n var porthmi = [\n { id: 'port1', offset: { x: 0.34, y: 0.5 } },\n { id: 'port2', offset: { x: 0.75, y: 0.5 } },\n { id: 'port3', offset: { x: 0.5, y: 0.05 } },\n { id: 'port4', offset: { x: 0.6, y: 0.9 } }\n ];\n var port2 = [\n { id: 'port1', offset: { x: 0.45, y: 0.5 } },\n { id: 'port2', offset: { x: 0.97, y: 0.5 } },\n { id: 'port3', offset: { x: 0.5, y: 0.97 } }\n ];\n var portmo = [\n { id: 'port1', offset: { x: 0.02, y: 0.6 } },\n { id: 'port2', offset: { x: 0.98, y: 0.625 } },\n { id: 'port3', offset: { x: 0.5, y: 0.3 } },\n { id: 'port4', offset: { x: 0.5, y: 0.97 } }\n ];\n var nodes = [\n {\n id: 'Server1', offsetX: 80, offsetY: 75,\n shape: { type: 'Native', content: template1 },\n annotations: [{ content: 'Server', offset: { x: 0.5, y: 0 }, margin: { bottom: 10 } }],\n ports: port\n },\n {\n id: 'WorkStation1', offsetX: 250, offsetY: 75,\n shape: { type: 'Native', content: template2 },\n annotations: [{ content: 'Work Station', margin: { bottom: 25 }, offset: { x: 1.4, y: 0.2 } }],\n ports: port2\n },\n {\n id: 'WorkStation2', offsetX: 350, offsetY: 75,\n shape: { type: 'Native', content: template2 },\n ports: port2\n },\n {\n id: 'modem1', offsetX: 450, offsetY: 125,\n shape: { type: 'Native', content: template3 },\n annotations: [{ content: 'Modem', margin: { right: 25 }, offset: { x: 0, y: 0.5 } }],\n ports: portmo\n },\n {\n id: 'modem2', offsetX: 525, offsetY: 175,\n shape: { type: 'Native', content: template3 },\n annotations: [{ content: 'Modem1', margin: { bottom: 10 }, offset: { x: 0.5, y: 0 } }],\n ports: portmo\n },\n {\n id: 'RemoteController1', offsetX: 600, offsetY: 125,\n shape: { type: 'Native', content: template4 },\n annotations: [{ content: 'Remote Controller', margin: { bottom: 10 }, offset: { x: 0.5, y: 0 } }],\n ports: portrc\n },\n {\n id: 'modem3', offsetX: 350, offsetY: 205,\n shape: { type: 'Native', content: template3 },\n annotations: [{ content: 'Modem4', margin: { left: 35 }, offset: { x: 1, y: 0.5 } }],\n ports: portmo\n },\n {\n id: 'modem4', offsetX: 450, offsetY: 245,\n shape: { type: 'Native', content: template3 },\n annotations: [{ content: 'Modem2', offset: { x: 0.5, y: 1.3 } }],\n ports: portmo\n },\n {\n id: 'modem5', offsetX: 350, offsetY: 330,\n shape: { type: 'Native', content: template3 },\n annotations: [{ content: 'Modem3', margin: { right: 25 }, offset: { x: 0, y: 0.5 } }],\n ports: portmo\n },\n {\n id: 'WorkStation3', offsetX: 600, offsetY: 250,\n shape: { type: 'Native', content: template2 },\n annotations: [{ content: 'Remote Work Staions', margin: { top: 12 }, offset: { x: 0.5, y: 1 } }],\n ports: port2\n },\n {\n id: 'WorkStation4', offsetX: 600, offsetY: 335,\n shape: { type: 'Native', content: template2 },\n annotations: [{ content: 'Portable Work Staions', margin: { top: 12 }, offset: { x: 0.5, y: 1 } }],\n ports: port2\n },\n {\n id: 'RemoteController2', offsetX: 80, offsetY: 400,\n shape: { type: 'Native', content: template4 },\n annotations: [{ content: 'Control Logic', margin: { top: 8 }, offset: { x: 0.5, y: 1 } }],\n ports: portrc\n },\n {\n id: 'RemoteController3', offsetX: 500, offsetY: 400,\n shape: { type: 'Native', content: template4 },\n annotations: [{ content: 'Control Logic', margin: { top: 8 }, offset: { x: 0.5, y: 1 } }],\n ports: portrc\n },\n {\n id: 'AnalogIO', offsetX: 160, offsetY: 500,\n shape: { type: 'Native', content: template5 },\n annotations: [{ content: 'Analog IO', margin: { top: 13 }, offset: { x: 0.5, y: 1 } }],\n ports: porthmi\n },\n {\n id: 'sensor', offsetX: 260, offsetY: 500,\n shape: { type: 'Native', content: template6 },\n annotations: [{ content: 'Sensor', margin: { top: 10 }, offset: { x: 0.5, y: 1 } }],\n ports: port\n },\n {\n id: 'DeviceDriver1', offsetX: 360, offsetY: 500,\n shape: { type: 'Native', content: template7 },\n annotations: [{ content: 'DriverA', offset: { x: 0.5, y: 1.3 } }],\n ports: porthmi\n },\n {\n id: 'DeviceDriver2', offsetX: 460, offsetY: 500,\n shape: { type: 'Native', content: template7 },\n annotations: [{ content: 'DriverB', offset: { x: 0.5, y: 1.3 } }],\n ports: porthmi\n },\n {\n id: 'DeviceDriver3', offsetX: 550, offsetY: 500,\n shape: { type: 'Native', content: template7 },\n annotations: [{ content: 'DriverC', offset: { x: 0.5, y: 1.3 } }],\n ports: porthmi\n },\n {\n id: 'HMI', offsetX: 625, offsetY: 450,\n shape: { type: 'Native', content: template8 },\n annotations: [{ content: 'HMI', offset: { x: 0.5, y: 1.3 } }],\n ports: port\n },\n {\n id: 'controlNet', offsetX: 218.5, offsetY: 380,\n shape: { type: 'Text', content: 'Control Net', }\n },\n {\n id: 'etherNet', offsetX: 218.5, offsetY: 190,\n shape: { type: 'Text', content: 'Ethernet', }\n },\n {\n id: 'deviceNet', offsetX: 345.5, offsetY: 555,\n shape: { type: 'Text', content: 'Device Net', }\n },\n {\n id: 'connector1', offsetX: 99, offsetY: 175\n },\n {\n id: 'connector2', offsetX: 250, offsetY: 125\n },\n {\n id: 'connector3', offsetX: 99, offsetY: 300\n },\n {\n id: 'connector4', offsetX: 178, offsetY: 435\n },\n {\n id: 'connector5', offsetX: 378, offsetY: 435\n },\n {\n id: 'connector6', offsetX: 370, offsetY: 380\n }\n ];\n var connectors = [\n {\n id: 'connectora', sourceID: 'Server1', targetID: 'WorkStation1',\n targetPortID: 'port1'\n },\n {\n id: 'connectorawork', sourceID: 'WorkStation1', targetID: 'WorkStation2',\n sourcePortID: 'port2', targetPortID: 'port1'\n },\n {\n id: 'connectoraworkm', sourceID: 'WorkStation2', targetID: 'modem1', type: 'Orthogonal',\n segments: [{ type: 'Orthogonal', length: 25 }],\n targetPortID: 'port3', sourcePortID: 'port2'\n },\n {\n id: 'connectorm1m2', sourceID: 'modem2', targetID: 'modem1', type: 'Orthogonal',\n segments: [{ type: 'Orthogonal', length: 25 }],\n sourcePortID: 'port1', targetPortID: 'port4'\n },\n {\n id: 'connectorm2m3', sourceID: 'modem2', targetID: 'RemoteController1', type: 'Orthogonal',\n segments: [{ type: 'Orthogonal', length: 25 }],\n sourcePortID: 'port2', targetPortID: 'port4'\n },\n {\n id: 'connectorws2m3', sourceID: 'WorkStation2', targetID: 'modem3',\n sourcePortID: 'port3', targetPortID: 'port3'\n },\n {\n id: 'connectorws2m4', sourceID: 'modem4', targetID: 'modem3', type: 'Orthogonal',\n segments: [{ type: 'Orthogonal', length: 25 }],\n sourcePortID: 'port1', targetPortID: 'port4'\n },\n {\n id: 'connectorm3m4', sourceID: 'modem5', targetID: 'modem3',\n sourcePortID: 'port3', targetPortID: 'port4'\n },\n {\n id: 'connectorm4ws3', sourceID: 'modem5', targetID: 'WorkStation4',\n sourcePortID: 'port2', targetPortID: 'port1'\n },\n {\n id: 'connectorm4m5', sourceID: 'modem4', targetID: 'WorkStation3',\n sourcePortID: 'port2', targetPortID: 'port1'\n },\n {\n id: 'connectorr2r3', sourceID: 'RemoteController2', targetID: 'RemoteController3',\n targetPortID: 'port1'\n },\n {\n id: 'connectorr2r3qq', sourceID: 'Server1', targetID: 'RemoteController2',\n sourcePortID: 'port4'\n },\n {\n id: 'connectorm3se1', sourceID: 'modem3', targetID: 'Server1', type: 'Orthogonal',\n segments: [{ type: 'Orthogonal', length: 25 }],\n sourcePortID: 'port1', targetPortID: 'port4'\n },\n {\n id: 'connectorws2aio1', sourceID: 'RemoteController2', targetID: 'AnalogIO',\n type: 'Orthogonal', sourcePortID: 'port2', targetPortID: 'port3'\n },\n {\n id: 'connectorb', sourceID: 'RemoteController2', targetID: 'sensor', type: 'Orthogonal',\n segments: [{ type: 'Orthogonal', length: 25 }],\n sourcePortID: 'port2', targetPortID: 'port3'\n },\n {\n id: 'connectord1', sourceID: 'RemoteController2', targetID: 'DeviceDriver1', type: 'Orthogonal',\n segments: [{ type: 'Orthogonal', length: 25 }],\n sourcePortID: 'port2', targetPortID: 'port3'\n },\n {\n id: 'connectord2', sourceID: 'RemoteController2', targetID: 'DeviceDriver2', type: 'Orthogonal',\n segments: [{ type: 'Orthogonal', length: 25 }],\n sourcePortID: 'port2', targetPortID: 'port3'\n },\n {\n id: 'connectordh1d3', sourceID: 'HMI', targetID: 'DeviceDriver3', type: 'Orthogonal',\n sourcePortID: 'port1', targetPortID: 'port3'\n },\n {\n id: 'connectordh1d2', sourceID: 'HMI', type: 'Orthogonal', targetID: 'DeviceDriver2',\n sourcePortID: 'port1', targetPortID: 'port3'\n }\n ];\n //initialize the diagram control\n var diagram = new ej.diagrams.Diagram({\n // sets the height and width of the diagram.\n width: '100%', height: '100%',\n // sets the nodes and connectors of the diagram.\n nodes: nodes, connectors: connectors,\n //Sets the default values of a node.\n getNodeDefaults: getNetworkNodeDefaults,\n //Sets the default values of a Connector.\n getConnectorDefaults: getConnectorDefaults,\n // sets snap settings to the diagram.\n snapSettings: { constraints: ej.diagrams.SnapConstraints.None },\n created: created\n });\n diagram.appendTo('#diagram');\n var symbols = [\n { id: 'server', shape: { type: 'Native', content: template1 } },\n { id: 'workStation', shape: { type: 'Native', content: template2 } },\n { id: 'modem', shape: { type: 'Native', content: template3 } },\n { id: 'remoteController', shape: { type: 'Native', content: template4 } },\n { id: 'hmi', shape: { type: 'Native', content: template8 } },\n { id: 'analogIO', shape: { type: 'Native', content: template5 } },\n { id: 'sensor', shape: { type: 'Native', content: template6 } },\n { id: 'deviceDriver', shape: { type: 'Native', content: template7 } },\n { id: 'Virtual-Server-Copy', shape: { type: 'Native', content: template10 } },\n { id: 'user', shape: { type: 'Native', content: template11 } },\n { id: 'User-group', shape: { type: 'Native', content: template12 } },\n { id: 'UPS', shape: { type: 'Native', content: template13 } },\n { id: 'Tablet', shape: { type: 'Native', content: template14 } },\n { id: 'Switch', shape: { type: 'Native', content: template15 } },\n { id: 'Subwoofer', shape: { type: 'Native', content: template16 } },\n { id: 'Speaker', shape: { type: 'Native', content: template17 } },\n { id: 'Security-camera', shape: { type: 'Native', content: template18 } },\n { id: 'arrow1', shape: { type: 'Path', data: arrow } }\n ];\n var sourcePoint = { x: 0, y: 0 };\n var targetPoint = { x: 40, y: 40 };\n var targetDecorator = { shape: 'Arrow' };\n var style = { strokeWidth: 2 };\n var connectorSymbols = [\n {\n id: 'link11', type: 'Straight', sourcePoint: sourcePoint, targetPoint: targetPoint,\n targetDecorator: targetDecorator, style: style\n },\n {\n id: 'link12', type: 'Orthogonal', sourcePoint: sourcePoint, targetPoint: targetPoint,\n targetDecorator: targetDecorator, style: style\n }\n ];\n var palettes = [\n { id: 'network', expanded: true, symbols: symbols, title: 'Network Shapes' },\n { id: 'connectors', expanded: true, symbols: connectorSymbols, title: 'Connectors' }\n ];\n var palette = new ej.diagrams.SymbolPalette({\n // sets the expandable mode of the symbol palette.\n expandMode: 'Multiple',\n // sets the palettes to be displayed in the symbol palette.\n palettes: palettes,\n // sets the width and height of the palette.\n width: '100%', height: 'calc(100% - 50px)',\n symbolHeight: 48, symbolWidth: 48,\n // sets the default values for the symbols in the symbol palette.\n getNodeDefaults: getSymbolDefaults,\n getSymbolInfo: function (symbol) { return { fit: true }; }\n });\n palette.appendTo('#symbolpalette');\n var dropElement = document.getElementsByClassName('control-fluid')[0];\n\n var button = new ej.buttons.Button({ cssClass: 'e-outline', isPrimary: true });\n button.appendTo('#browse');\n\n var uploadObj = new ej.inputs.Uploader({\n asyncSettings: {\n saveUrl: 'https://aspnetmvc.syncfusion.com/services/api/uploadbox/Save',\n removeUrl: 'https://aspnetmvc.syncfusion.com/services/api/uploadbox/Remove'\n }, dropArea: dropElement,\n success: onUploadSuccess,\n removing: onFileRemove\n });\n uploadObj.appendTo('#fileupload');\n button.element.onclick = function () {\n document.getElementsByClassName('e-file-select-wrap')[0].querySelector('button').click();\n return false;\n };\n var id = 0;\n\n function onUploadSuccess(arg) {\n var file1 = arg.file;\n var file = file1.rawFile;\n var reader = new FileReader();\n reader.addEventListener('load', function (event) {\n var shape;\n var shapeContent = getNativeContent(event.target.result);\n shape = { id: 'newshape' + id.toString(), shape: { type: 'Native', content: shapeContent } };\n palette.addPaletteItem('network', shape);\n });\n id++;\n reader.readAsText(file);\n uploadObj.clearAll();\n }\n\n function getNativeContent(content) {\n var attr = { id: 'svgdiv' };\n var div = createHtmlElement('div', attr);\n document.body.appendChild(div);\n div.innerHTML = content;\n var svgContent = div.getElementsByTagName('svg')[0].outerHTML;\n div.parentElement.removeChild(div);\n return svgContent;\n }\n\n function created() {\n addEvents();\n diagram.fitToPage();\n }\n\n"}
\ No newline at end of file
diff --git a/src/diagram/organization-model-stack.json b/src/diagram/organization-model-stack.json
index a5dd98bb..d6432757 100644
--- a/src/diagram/organization-model-stack.json
+++ b/src/diagram/organization-model-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n \n
\n
\n \n
\n
\n
\n Orientation\n
\n
\n
\n Subtree Alignment\n
\n
\n
\n
\n
\n
\n Behavior\n
\n
\n
\n
\n
\n\n
","index.js":"{{ripple}}/**\n * organization-model\n */\nej.diagrams.Diagram.Inject(ej.diagrams.DataBinding, ej.diagrams.HierarchicalTree, ej.diagrams.LayoutAnimation);\n\n//Click Event for pattern of the PropertyPanel.\n\n\n//sets default value for Node.\nfunction getNodeDefaults(obj) {\n obj.backgroundColor = obj.data.color;\n obj.style = { fill: 'none', strokeColor: 'none', color: 'white' };\n obj.expandIcon = { height: 10, width: 10, shape: 'None', fill: 'lightgray', offset: { x: 0.5, y: 1 } };\n obj.expandIcon.verticalAlignment = 'Center';\n obj.expandIcon.margin = { left: 0, right: 0, top: 0, bottom: 0 };\n obj.collapseIcon.offset = { x: 0.5, y: 1 };\n obj.collapseIcon.verticalAlignment = 'Center';\n obj.collapseIcon.margin = { left: 0, right: 0, top: 0, bottom: 0 };\n obj.collapseIcon.height = 10;\n obj.collapseIcon.width = 10;\n obj.collapseIcon.shape = 'None';\n obj.collapseIcon.fill = 'lightgray';\n obj.width = 120;\n obj.height = 30;\n return obj;\n}\n//sets default value for Connector.\nfunction getConnectorDefaults(connector) {\n connector.targetDecorator.shape = 'None';\n connector.type = 'Orthogonal';\n connector.constraints = 0;\n connector.cornerRadius = 0;\n return connector;\n}\n\n //Initializes the nodes for the diagram\n var diagram = new ej.diagrams.Diagram({\n width: '100%', height: '700px', snapSettings: { constraints: ej.diagrams.SnapConstraints.None },\n //configures data source settings\n dataSourceSettings: {\n id: 'Id', parentId: 'Manager',\n dataManager: new ej.data.DataManager(window.localBindData),\n doBinding: function (nodeModel, data, diagram) {\n nodeModel.shape = {\n type: 'Text', content: data.Role,\n margin: { left: 10, right: 10, top: 10, bottom: 10 }\n };\n }\n },\n //Disables all interactions except zoom/pan\n tool: ej.diagrams.DiagramTools.ZoomPan,\n //Configures automatic layout\n layout: {\n type: 'OrganizationalChart',\n getLayoutInfo: function (node, options) {\n if (node.data.Role === 'General Manager') {\n options.assistants.push(options.children[0]);\n options.children.splice(0, 1);\n }\n if (!options.hasSubTree) {\n options.type = 'Right';\n }\n }\n },\n //Defines the default node and connector properties\n getNodeDefaults: function (obj, diagram) {\n return getNodeDefaults(obj, diagram);\n }, getConnectorDefaults: function (connector, diagram) {\n return getConnectorDefaults(connector, diagram);\n }\n });\n diagram.appendTo('#diagram');\n //NumericTextBox used to increase/decrease horizontalSpacing of the layout.\n var hSpace = new ej.inputs.NumericTextBox({\n format: '###.##',\n change: function () {\n diagram.layout.horizontalSpacing = Number(hSpacing.value);\n diagram.dataBind();\n }\n });\n //NumericTextBox used to increase/decrease verticalSpacing of the layout.\n hSpace.appendTo('#hSpacing');\n var vSpace = new ej.inputs.NumericTextBox({\n format: '###.##',\n change: function () {\n diagram.layout.verticalSpacing = Number(vSpacing.value);\n diagram.dataBind();\n }\n });\n vSpace.appendTo('#vSpacing');\n //Enable of disable the expandable option for Node.\n var checkBoxObj = new ej.buttons.CheckBox({\n label: 'Expandable',\n checked: false, change: function () {\n for (var _i = 0, _a = diagram.nodes; _i < _a.length; _i++) {\n var node_1 = _a[_i];\n if (checkBoxObj.checked) {\n node_1.expandIcon.shape = 'Minus';\n node_1.collapseIcon.shape = 'Plus';\n }\n else {\n node_1.expandIcon.shape = 'None';\n node_1.collapseIcon.shape = 'None';\n }\n }\n diagram.dataBind();\n diagram.doLayout();\n }\n });\n checkBoxObj.appendTo('#checked');\n\n //Click Event for orientation of the PropertyPanel.\n document.getElementById('orientation').onclick = function (args) {\n var target = args.target;\n\n if (target.className === 'image-pattern-style e-selected-orientation-style') {\n var id = target.id;\n var orientation1 = id.substring(0, 1).toUpperCase() + id.substring(1, id.length);\n diagram.layout.orientation = orientation1;\n diagram.dataBind();\n diagram.doLayout();\n }\n };\n\n document.getElementById('pattern').onclick = function (args) {\n var target = args.target;\n\n if (target.className === 'image-pattern-style e-selected-pattern-style') {\n var subTreeOrientation;\n var subTreeAlignment;\n switch (target.id) {\n case 'pattern1':\n subTreeOrientation = 'Vertical';\n subTreeAlignment = 'Alternate';\n break;\n case 'pattern2':\n subTreeOrientation = 'Vertical';\n subTreeAlignment = 'Left';\n break;\n case 'pattern3':\n subTreeOrientation = 'Vertical';\n subTreeAlignment = 'Left';\n break;\n case 'pattern4':\n subTreeOrientation = 'Vertical';\n subTreeAlignment = 'Right';\n break;\n case 'pattern5':\n subTreeOrientation = 'Vertical';\n subTreeAlignment = 'Right';\n break;\n case 'pattern6':\n subTreeOrientation = 'Horizontal';\n subTreeAlignment = 'Balanced';\n break;\n case 'pattern7':\n subTreeOrientation = 'Horizontal';\n subTreeAlignment = 'Center';\n break;\n case 'pattern8':\n subTreeOrientation = 'Horizontal';\n subTreeAlignment = 'Left';\n break;\n case 'pattern9':\n subTreeOrientation = 'Horizontal';\n subTreeAlignment = 'Right';\n break;\n default:\n if (selectedpatternElement.length) {\n selectedpatternElement[0].classList.remove('e-selected-pattern-style');\n }\n }\n diagram.layout.getLayoutInfo = function (node, options) {\n if (target.id === 'pattern4' || target.id === 'pattern3') {\n options.offset = -50;\n }\n if (node.data.Role === 'General Manager') {\n options.assistants.push(options.children[0]);\n options.children.splice(0, 1);\n }\n if (!options.hasSubTree) {\n options.orientation = subTreeOrientation;\n options.type = subTreeAlignment;\n }\n };\n diagram.dataBind();\n diagram.doLayout();\n }\n };\n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n \n
\n
\n \n
\n
\n
\n Orientation\n
\n
\n
\n Subtree Alignment\n
\n
\n
\n
\n
\n
\n Behavior\n
\n
\n
\n
\n
\n\n
","index.js":"{{ripple}}/**\n * organization-model\n */\nej.diagrams.Diagram.Inject(ej.diagrams.DataBinding, ej.diagrams.HierarchicalTree, ej.diagrams.LayoutAnimation);\n\n//Click Event for pattern of the PropertyPanel.\n\n\n//sets default value for Node.\nfunction getNodeDefaults(obj) {\n obj.backgroundColor = obj.data.color;\n obj.style = { fill: 'none', strokeColor: 'none', color: 'white' };\n obj.expandIcon = { height: 10, width: 10, shape: 'None', fill: 'lightgray', offset: { x: 0.5, y: 1 } };\n obj.expandIcon.verticalAlignment = 'Center';\n obj.expandIcon.margin = { left: 0, right: 0, top: 0, bottom: 0 };\n obj.collapseIcon.offset = { x: 0.5, y: 1 };\n obj.collapseIcon.verticalAlignment = 'Center';\n obj.collapseIcon.margin = { left: 0, right: 0, top: 0, bottom: 0 };\n obj.collapseIcon.height = 10;\n obj.collapseIcon.width = 10;\n obj.collapseIcon.shape = 'None';\n obj.collapseIcon.fill = 'lightgray';\n obj.width = 120;\n obj.height = 30;\n return obj;\n}\n//sets default value for Connector.\nfunction getConnectorDefaults(connector) {\n connector.targetDecorator.shape = 'None';\n connector.type = 'Orthogonal';\n connector.constraints = 0;\n connector.cornerRadius = 0;\n return connector;\n}\n\n //Initializes the nodes for the diagram\n var diagram = new ej.diagrams.Diagram({\n width: '100%', height: '700px', snapSettings: { constraints: ej.diagrams.SnapConstraints.None },\n //configures data source settings\n dataSourceSettings: {\n id: 'Id', parentId: 'Manager',\n dataManager: new ej.data.DataManager(window.localBindData),\n doBinding: function (nodeModel, data, diagram) {\n nodeModel.shape = {\n type: 'Text', content: data.Role,\n margin: { left: 10, right: 10, top: 10, bottom: 10 }\n };\n }\n },\n //Disables all interactions except zoom/pan\n tool: ej.diagrams.DiagramTools.ZoomPan,\n //Configures automatic layout\n layout: {\n type: 'OrganizationalChart',\n getLayoutInfo: function (node, options) {\n if (node.data.Role === 'General Manager') {\n options.assistants.push(options.children[0]);\n options.children.splice(0, 1);\n }\n if (!options.hasSubTree) {\n options.type = 'Right';\n }\n }\n },\n //Defines the default node and connector properties\n getNodeDefaults: function (obj, diagram) {\n return getNodeDefaults(obj, diagram);\n }, getConnectorDefaults: function (connector, diagram) {\n return getConnectorDefaults(connector, diagram);\n }\n });\n diagram.appendTo('#diagram');\n //NumericTextBox used to increase/decrease horizontalSpacing of the layout.\n var hSpace = new ej.inputs.NumericTextBox({\n format: '###.##',\n change: function () {\n diagram.layout.horizontalSpacing = Number(hSpacing.value);\n diagram.dataBind();\n }\n });\n //NumericTextBox used to increase/decrease verticalSpacing of the layout.\n hSpace.appendTo('#hSpacing');\n var vSpace = new ej.inputs.NumericTextBox({\n format: '###.##',\n change: function () {\n diagram.layout.verticalSpacing = Number(vSpacing.value);\n diagram.dataBind();\n }\n });\n vSpace.appendTo('#vSpacing');\n //Enable of disable the expandable option for Node.\n var checkBoxObj = new ej.buttons.CheckBox({\n label: 'Expandable',\n checked: false, change: function () {\n for (var _i = 0, _a = diagram.nodes; _i < _a.length; _i++) {\n var node_1 = _a[_i];\n if (checkBoxObj.checked) {\n node_1.expandIcon.shape = 'Minus';\n node_1.collapseIcon.shape = 'Plus';\n }\n else {\n node_1.expandIcon.shape = 'None';\n node_1.collapseIcon.shape = 'None';\n }\n }\n diagram.dataBind();\n diagram.doLayout();\n }\n });\n checkBoxObj.appendTo('#checked');\n\n //Click Event for orientation of the PropertyPanel.\n document.getElementById('orientation').onclick = function (args) {\n var target = args.target;\n\n if (target.className === 'image-pattern-style e-selected-orientation-style') {\n var id = target.id;\n var orientation1 = id.substring(0, 1).toUpperCase() + id.substring(1, id.length);\n diagram.layout.orientation = orientation1;\n diagram.dataBind();\n diagram.doLayout();\n }\n };\n\n document.getElementById('pattern').onclick = function (args) {\n var target = args.target;\n\n if (target.className === 'image-pattern-style e-selected-pattern-style') {\n var subTreeOrientation;\n var subTreeAlignment;\n switch (target.id) {\n case 'pattern1':\n subTreeOrientation = 'Vertical';\n subTreeAlignment = 'Alternate';\n break;\n case 'pattern2':\n subTreeOrientation = 'Vertical';\n subTreeAlignment = 'Left';\n break;\n case 'pattern3':\n subTreeOrientation = 'Vertical';\n subTreeAlignment = 'Left';\n break;\n case 'pattern4':\n subTreeOrientation = 'Vertical';\n subTreeAlignment = 'Right';\n break;\n case 'pattern5':\n subTreeOrientation = 'Vertical';\n subTreeAlignment = 'Right';\n break;\n case 'pattern6':\n subTreeOrientation = 'Horizontal';\n subTreeAlignment = 'Balanced';\n break;\n case 'pattern7':\n subTreeOrientation = 'Horizontal';\n subTreeAlignment = 'Center';\n break;\n case 'pattern8':\n subTreeOrientation = 'Horizontal';\n subTreeAlignment = 'Left';\n break;\n case 'pattern9':\n subTreeOrientation = 'Horizontal';\n subTreeAlignment = 'Right';\n break;\n default:\n if (selectedpatternElement.length) {\n selectedpatternElement[0].classList.remove('e-selected-pattern-style');\n }\n }\n diagram.layout.getLayoutInfo = function (node, options) {\n if (target.id === 'pattern4' || target.id === 'pattern3') {\n options.offset = -50;\n }\n if (node.data.Role === 'General Manager') {\n options.assistants.push(options.children[0]);\n options.children.splice(0, 1);\n }\n if (!options.hasSubTree) {\n options.orientation = subTreeOrientation;\n options.type = subTreeAlignment;\n }\n };\n diagram.dataBind();\n diagram.doLayout();\n }\n };\n"}
\ No newline at end of file
diff --git a/src/diagram/overview-stack.json b/src/diagram/overview-stack.json
index 0a927cac..ff843f9c 100644
--- a/src/diagram/overview-stack.json
+++ b/src/diagram/overview-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}\n/**\n * OverView\n */\nej.diagrams.Diagram.Inject(ej.diagrams.DataBinding, ej.diagrams.HierarchicalTree);\n\n//Funtion to add the Template of the Node.\nfunction setNodeTemplate(obj, diagram) {\n var content = new ej.diagrams.StackPanel();\n content.id = obj.id + '_outerstack';\n content.orientation = 'Horizontal';\n content.style.strokeColor = 'gray';\n content.padding = { left: 5, right: 10, top: 5, bottom: 5 };\n\n var image = new ej.diagrams.ImageElement();\n image.width = 50;\n image.height = 50;\n image.style.strokeColor = 'none';\n image.source = obj.data.ImageUrl;\n image.id = obj.id + '_pic';\n\n var innerStack = new ej.diagrams.StackPanel();\n innerStack.style.strokeColor = 'none';\n innerStack.margin = { left: 5, right: 0, top: 0, bottom: 0 };\n innerStack.id = obj.id + '_innerstack';\n\n var text = new ej.diagrams.TextElement();\n text.content = obj.data.Name;\n text.style.color = 'black';\n text.style.bold = true;\n text.style.strokeColor = 'none';\n text.horizontalAlignment = 'Left';\n text.style.fill = 'none';\n text.id = obj.id + '_text1';\n\n var desigText = new ej.diagrams.TextElement();\n desigText.margin = { left: 0, right: 0, top: 5, bottom: 0 };\n desigText.content = obj.data.Designation;\n desigText.style.color = 'black';\n desigText.style.strokeColor = 'none';\n desigText.style.fontSize = 12;\n desigText.style.fill = 'none';\n desigText.horizontalAlignment = 'Left';\n desigText.style.textWrapping = 'Wrap';\n desigText.id = obj.id + '_desig';\n innerStack.children = [text, desigText];\n content.children = [image, innerStack];\n return content;\n}\n\n var overview;\n //Initializtion of the diagram.\n var diagram = new ej.diagrams.Diagram({\n width: '100%', height: '590px', scrollSettings: { scrollLimit: 'Infinity' },\n //Sets the constraints of the SnapSettings\n snapSettings: { constraints: ej.diagrams.SnapConstraints.None },\n //Configrues organizational chart layout\n layout: {\n type: 'OrganizationalChart', margin: { top: 20 },\n getLayoutInfo: function (node, tree) {\n if (!tree.hasSubTree) {\n tree.orientation = 'Vertical';\n tree.type = 'Right';\n }\n }\n },\n //Sets the parent and child relationship of DataSource.\n dataSourceSettings: {\n id: 'Id', parentId: 'ReportingPerson', dataManager: new ej.data.DataManager(window.overviewData)\n },\n //Sets the default values of Nodes.\n getNodeDefaults: function (obj, diagram) {\n obj.height = 50;\n obj.style = { fill: 'transparent', strokeWidth: 2 };\n return obj;\n },\n //Sets the default values of connectors.\n getConnectorDefaults: function (connector, diagram) {\n connector.targetDecorator.shape = 'None';\n connector.type = 'Orthogonal';\n connector.style.strokeColor = 'gray';\n return connector;\n },\n //customization of the node.\n setNodeTemplate: function (obj, diagram) {\n return setNodeTemplate(obj, diagram);\n }\n });\n diagram.appendTo('#diagram');\n //Initializtion of the Overview.\n\n overview = new ej.diagrams.Overview({\n width: '100%', height: '150px', sourceID: 'diagram'\n });\n overview.appendTo('#overview');\n\n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}\n/**\n * OverView\n */\nej.diagrams.Diagram.Inject(ej.diagrams.DataBinding, ej.diagrams.HierarchicalTree);\n\n//Funtion to add the Template of the Node.\nfunction setNodeTemplate(obj, diagram) {\n var content = new ej.diagrams.StackPanel();\n content.id = obj.id + '_outerstack';\n content.orientation = 'Horizontal';\n content.style.strokeColor = 'gray';\n content.padding = { left: 5, right: 10, top: 5, bottom: 5 };\n\n var image = new ej.diagrams.ImageElement();\n image.width = 50;\n image.height = 50;\n image.style.strokeColor = 'none';\n image.source = obj.data.ImageUrl;\n image.id = obj.id + '_pic';\n\n var innerStack = new ej.diagrams.StackPanel();\n innerStack.style.strokeColor = 'none';\n innerStack.margin = { left: 5, right: 0, top: 0, bottom: 0 };\n innerStack.id = obj.id + '_innerstack';\n\n var text = new ej.diagrams.TextElement();\n text.content = obj.data.Name;\n text.style.color = 'black';\n text.style.bold = true;\n text.style.strokeColor = 'none';\n text.horizontalAlignment = 'Left';\n text.style.fill = 'none';\n text.id = obj.id + '_text1';\n\n var desigText = new ej.diagrams.TextElement();\n desigText.margin = { left: 0, right: 0, top: 5, bottom: 0 };\n desigText.content = obj.data.Designation;\n desigText.style.color = 'black';\n desigText.style.strokeColor = 'none';\n desigText.style.fontSize = 12;\n desigText.style.fill = 'none';\n desigText.horizontalAlignment = 'Left';\n desigText.style.textWrapping = 'Wrap';\n desigText.id = obj.id + '_desig';\n innerStack.children = [text, desigText];\n content.children = [image, innerStack];\n return content;\n}\n\n var overview;\n //Initializtion of the diagram.\n var diagram = new ej.diagrams.Diagram({\n width: '100%', height: '590px', scrollSettings: { scrollLimit: 'Infinity' },\n //Sets the constraints of the SnapSettings\n snapSettings: { constraints: ej.diagrams.SnapConstraints.None },\n //Configrues organizational chart layout\n layout: {\n type: 'OrganizationalChart', margin: { top: 20 },\n getLayoutInfo: function (node, tree) {\n if (!tree.hasSubTree) {\n tree.orientation = 'Vertical';\n tree.type = 'Right';\n }\n }\n },\n //Sets the parent and child relationship of DataSource.\n dataSourceSettings: {\n id: 'Id', parentId: 'ReportingPerson', dataManager: new ej.data.DataManager(window.overviewData)\n },\n //Sets the default values of Nodes.\n getNodeDefaults: function (obj, diagram) {\n obj.height = 50;\n obj.style = { fill: 'transparent', strokeWidth: 2 };\n return obj;\n },\n //Sets the default values of connectors.\n getConnectorDefaults: function (connector, diagram) {\n connector.targetDecorator.shape = 'None';\n connector.type = 'Orthogonal';\n connector.style.strokeColor = 'gray';\n return connector;\n },\n //customization of the node.\n setNodeTemplate: function (obj, diagram) {\n return setNodeTemplate(obj, diagram);\n }\n });\n diagram.appendTo('#diagram');\n //Initializtion of the Overview.\n\n overview = new ej.diagrams.Overview({\n width: '100%', height: '150px', sourceID: 'diagram'\n });\n overview.appendTo('#overview');\n\n"}
\ No newline at end of file
diff --git a/src/diagram/pert-chart-stack.json b/src/diagram/pert-chart-stack.json
index d1699a56..ecce2224 100644
--- a/src/diagram/pert-chart-stack.json
+++ b/src/diagram/pert-chart-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}/**\n * Sample for PERT Chart\n */\n\nej.diagrams.Diagram.Inject(ej.diagrams.DataBinding, ej.diagrams.HierarchicalTree, ej.diagrams.ComplexHierarchicalTree);\n\n //customization of the node template.\n function getNodeTemplate(node) {\n var table = new ej.diagrams.StackPanel();\n table.style.fill = '#0069d9';\n table.id = ej.diagrams.randomId();\n table.orientation = 'Vertical';\n var nameKey = 'id';\n var stack = new ej.diagrams.StackPanel();\n stack.children = [];\n stack.id = ej.diagrams.randomId();\n stack.height = 25;\n stack.orientation = 'Horizontal';\n stack.style.fill = 'white';\n stack.horizontalAlignment = 'Stretch';\n addRows(stack, node);\n table.children = [(getTextElement(node.data[nameKey], 'Stretch', 170, 'Stretch')), stack];\n table.children[0].style.color = 'white';\n table.children[0].style.fontSize = 14;\n return table;\n }\n\n function getTextElement(text, alignment, width, valignment) {\n var textElement = new ej.diagrams.TextElement();\n textElement.content = text;\n textElement.id = ej.diagrams.randomId();\n textElement.width = width;\n textElement.height = 25;\n textElement.horizontalAlignment = alignment;\n textElement.verticalAlignment = valignment;\n textElement.style.strokeWidth = 1;\n textElement.style.strokeColor = '#b5b5b5';\n textElement.style.fill = 'transparent';\n textElement.style.color = '#3c3c3c';\n textElement.relativeMode = 'Object';\n return textElement;\n }\n\n function addRows(column, node) {\n column.children.push(getTextElement(node.data.startDate, 'Left', 70));\n column.children.push(getTextElement(node.data.duration, 'Center', 30));\n column.children.push(getTextElement(node.data.endDate, 'Right', 70));\n }\n\n //Initializes diagram control\n var diagram = new ej.diagrams.Diagram({\n width: '100%', height: '499px', snapSettings: { constraints: ej.diagrams.SnapConstraints.None },\n dataSourceSettings: {\n id: 'id', parentId: 'Category',\n dataManager: new ej.data.DataManager(window.pertChartData),\n doBinding: function (nodeModel, data, diagram) {\n nodeModel.shape = { type: 'Text' };\n }\n }, layout: {\n type: 'ComplexHierarchicalTree', orientation: 'LeftToRight', verticalSpacing: 100, horizontalSpacing: 70\n },\n getConnectorDefaults: function (connector, diagram) {\n connector.type = 'Straight';\n connector.style.strokeColor = '#979797';\n connector.targetDecorator.width = 10;\n connector.targetDecorator.height = 10;\n connector.targetDecorator.style = { fill: '#979797', strokeColor: '#979797' };\n return connector;\n },\n //used to customize template of the node.\n setNodeTemplate: function (node) { return getNodeTemplate(node); },\n tool: ej.diagrams.DiagramTools.ZoomPan\n });\n diagram.appendTo('#diagram');\n diagram.fitToPage();\n\n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}/**\n * Sample for PERT Chart\n */\n\nej.diagrams.Diagram.Inject(ej.diagrams.DataBinding, ej.diagrams.HierarchicalTree, ej.diagrams.ComplexHierarchicalTree);\n\n //customization of the node template.\n function getNodeTemplate(node) {\n var table = new ej.diagrams.StackPanel();\n table.style.fill = '#0069d9';\n table.id = ej.diagrams.randomId();\n table.orientation = 'Vertical';\n var nameKey = 'id';\n var stack = new ej.diagrams.StackPanel();\n stack.children = [];\n stack.id = ej.diagrams.randomId();\n stack.height = 25;\n stack.orientation = 'Horizontal';\n stack.style.fill = 'white';\n stack.horizontalAlignment = 'Stretch';\n addRows(stack, node);\n table.children = [(getTextElement(node.data[nameKey], 'Stretch', 170, 'Stretch')), stack];\n table.children[0].style.color = 'white';\n table.children[0].style.fontSize = 14;\n return table;\n }\n\n function getTextElement(text, alignment, width, valignment) {\n var textElement = new ej.diagrams.TextElement();\n textElement.content = text;\n textElement.id = ej.diagrams.randomId();\n textElement.width = width;\n textElement.height = 25;\n textElement.horizontalAlignment = alignment;\n textElement.verticalAlignment = valignment;\n textElement.style.strokeWidth = 1;\n textElement.style.strokeColor = '#b5b5b5';\n textElement.style.fill = 'transparent';\n textElement.style.color = '#3c3c3c';\n textElement.relativeMode = 'Object';\n return textElement;\n }\n\n function addRows(column, node) {\n column.children.push(getTextElement(node.data.startDate, 'Left', 70));\n column.children.push(getTextElement(node.data.duration, 'Center', 30));\n column.children.push(getTextElement(node.data.endDate, 'Right', 70));\n }\n\n //Initializes diagram control\n var diagram = new ej.diagrams.Diagram({\n width: '100%', height: '499px', snapSettings: { constraints: ej.diagrams.SnapConstraints.None },\n dataSourceSettings: {\n id: 'id', parentId: 'Category',\n dataManager: new ej.data.DataManager(window.pertChartData),\n doBinding: function (nodeModel, data, diagram) {\n nodeModel.shape = { type: 'Text' };\n }\n }, layout: {\n type: 'ComplexHierarchicalTree', orientation: 'LeftToRight', verticalSpacing: 100, horizontalSpacing: 70\n },\n getConnectorDefaults: function (connector, diagram) {\n connector.type = 'Straight';\n connector.style.strokeColor = '#979797';\n connector.targetDecorator.width = 10;\n connector.targetDecorator.height = 10;\n connector.targetDecorator.style = { fill: '#979797', strokeColor: '#979797' };\n return connector;\n },\n //used to customize template of the node.\n setNodeTemplate: function (node) { return getNodeTemplate(node); },\n tool: ej.diagrams.DiagramTools.ZoomPan\n });\n diagram.appendTo('#diagram');\n diagram.fitToPage();\n\n"}
\ No newline at end of file
diff --git a/src/diagram/port-stack.json b/src/diagram/port-stack.json
index fc6a9324..65e149d8 100644
--- a/src/diagram/port-stack.json
+++ b/src/diagram/port-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n Visibility\n
\n
\n \n
\n
\n
\n
\n Shape\n
\n
\n \n
\n
\n
\n
\n
\n
\n Fill Color\n
\n
\n \n
\n
\n
\n
\n Stroke Color\n
\n
\n \n
\n
\n
\n
\n
\n
\n Stroke Width\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n\n\n
","index.js":"{{ripple}}ej.diagrams.Diagram.Inject(ej.diagrams.UndoRedo);\nej.dropdowns.MultiSelect.Inject(ej.dropdowns.CheckBoxSelection);\n//get the port for the selected node.\nvar diagram;\nvar portVisibilityDrop;\nvar portFillDrop;\nvar portBorderDrop;\nvar portShapeDrop;\n\nvar portWidthNum;\nvar portSizeNum;\n\nfunction getPort() {\n var node = diagram.selectedItems.nodes[0];\n var port = [];\n if (node) {\n port = node.ports;\n }\n return port;\n}\n//enable or disable the property panel based on the Selection.\nfunction selectionChange(args) {\n if (args.state === 'Changed') {\n var appearance = document.getElementById('propertypanel');\n var selectedElement = document.getElementsByClassName('e-remove-selection');\n if (args.newValue) {\n\n if (args.newValue[0] instanceof ej.diagrams.Node && selectedElement.length) {\n selectedElement[0].classList.remove('e-remove-selection');\n var port = getPort()[0];\n portVisibilityDrop.value = [];\n if (ej.diagrams.PortVisibility.Visible & port.visibility) {\n portVisibilityDrop.value.push(ej.diagrams.PortVisibility.Visible);\n }\n if (ej.diagrams.PortVisibility.Hidden & port.visibility) {\n portVisibilityDrop.value.push(ej.diagrams.PortVisibility.Hidden);\n }\n if (ej.diagrams.PortVisibility.Hover & port.visibility) {\n portVisibilityDrop.value.push(ej.diagrams.PortVisibility.Hover);\n }\n if (ej.diagrams.PortVisibility.Connect & port.visibility) {\n portVisibilityDrop.value.push(ej.diagrams.PortVisibility.Connect);\n }\n if (portVisibilityDrop.value.length === 0) {\n portVisibilityDrop.placeholder = 'Select Visibility';\n }\n portVisibilityDrop.dataBind();\n portFillDrop.value = port.style.fill;\n portFillDrop.dataBind();\n portBorderDrop.value = port.style.strokeColor;\n portBorderDrop.dataBind();\n portShapeDrop.value = port.shape;\n portShapeDrop.dataBind();\n portSizeNum.value = port.height;\n portSizeNum.dataBind();\n portWidthNum.value = port.style.strokeWidth;\n portWidthNum.dataBind();\n }\n }\n }\n}\n//change the Visibility of the Port.\nfunction portVisibilityChange(args) {\n var port = getPort();\n if (port) {\n for (var j = 0; j < port.length; j++) {\n port[j].visibility = 0;\n for (var i = 0; i < args.value.length; i++) {\n port[j].visibility += args.value[i];\n }\n }\n }\n diagram.dataBind();\n}\n//set the appearence of the Port.\nfunction applyPortStyle(value) {\n var port = getPort();\n for (var j = 0; j < port.length; j++) {\n if (value === 'size') {\n\n port[j].height = portSizeNum.value;\n port[j].width = portSizeNum.value;\n\n } else if (value === 'strokewidth') {\n port[j].style.strokeWidth = portWidthNum.value;\n }\n }\n diagram.dataBind();\n}\n//change the shape of the Port.\nfunction portShapeChange(args) {\n var port = getPort();\n for (var j = 0; j < port.length; j++) {\n switch (portShapeDrop.value) {\n case 'X':\n port[j].shape = 'X';\n break;\n case 'Circle':\n port[j].shape = 'Circle';\n break;\n case 'Square':\n port[j].shape = 'Square';\n break;\n case 'Custom':\n port[j].shape = 'Custom';\n port[j].pathData = 'M6.805,0L13.61,10.703L0,10.703z';\n break;\n }\n diagram.dataBind();\n }\n\n}\n\n\n var bounds = document.getElementsByClassName('control-section')[0].getBoundingClientRect();\n var centerX = bounds.width / 2;\n var node1Port = [\n {\n id: 'port1', shape: 'Circle', offset: { x: 0, y: 0.5 }, height: 8, width: 8, visibility: ej.diagrams.PortVisibility.Visible,\n text: 'In - 1'\n },\n {\n id: 'port2', shape: 'Circle', offset: { x: 1, y: 0.5 }, height: 8, width: 8, visibility: ej.diagrams.PortVisibility.Visible,\n text: 'OUT - 1'\n },\n {\n id: 'port3', shape: 'Circle', offset: { x: 0.25, y: 1 }, height: 8, width: 8, visibility: ej.diagrams.PortVisibility.Visible,\n text: 'In - 2'\n },\n {\n id: 'port4', shape: 'Circle', offset: { x: 0.5, y: 1 }, height: 8, width: 8, visibility: ej.diagrams.PortVisibility.Visible,\n text: 'OUT - 2'\n },\n {\n id: 'port5', shape: 'Circle', offset: { x: 0.75, y: 1 }, height: 8, width: 8, visibility: ej.diagrams.PortVisibility.Visible,\n text: 'In - 3'\n }\n ];\n var node2Port = [\n {\n id: 'port6', shape: 'Circle', offset: { x: 0, y: 0.5 }, height: 8, width: 8, visibility: ej.diagrams.PortVisibility.Visible,\n text: 'In - 1'\n },\n {\n id: 'port7', shape: 'Circle', offset: { x: 1, y: 0.35 }, height: 8, width: 8, visibility: ej.diagrams.PortVisibility.Visible,\n text: 'OUT - 1'\n },\n {\n id: 'port8', shape: 'Circle', offset: { x: 1, y: 0.70 }, height: 8, width: 8, visibility: ej.diagrams.PortVisibility.Visible,\n text: 'In - 2'\n },\n {\n id: 'port9', shape: 'Circle', offset: { x: 0.5, y: 1 }, height: 8, width: 8, visibility: ej.diagrams.PortVisibility.Visible,\n text: 'OUT - 2'\n }\n ];\n var node3Port = [\n {\n id: 'port10', shape: 'Circle', offset: { x: 0, y: 0.5 }, height: 8, width: 8, visibility: ej.diagrams.PortVisibility.Visible,\n text: 'Out - 1'\n },\n {\n id: 'port11', shape: 'Circle', offset: { x: 0.5, y: 0 }, height: 8, width: 8, visibility: ej.diagrams.PortVisibility.Visible,\n text: 'In - 1'\n },\n {\n id: 'port12', shape: 'Circle', offset: { x: 0.5, y: 1 }, height: 8, width: 8, visibility: ej.diagrams.PortVisibility.Visible,\n text: 'OUT - 2'\n }\n ];\n var node4Port = [\n {\n id: 'port13', shape: 'Circle', offset: { x: 0, y: 0.5 }, height: 8, width: 8, visibility: ej.diagrams.PortVisibility.Visible,\n text: 'In - 1'\n },\n {\n id: 'port14', shape: 'Circle', offset: { x: 0.5, y: 0 }, height: 8, width: 8, visibility: ej.diagrams.PortVisibility.Visible,\n text: 'In - 2'\n },\n {\n id: 'port15', shape: 'Circle', offset: { x: 0.5, y: 1 }, height: 8, width: 8, visibility: ej.diagrams.PortVisibility.Visible,\n text: 'OUT - 1'\n }\n ];\n var node5Port = [\n {\n id: 'port16', shape: 'Circle', offset: { x: 0, y: 0.5 }, height: 8, width: 8, visibility: ej.diagrams.PortVisibility.Visible,\n text: 'out - 1'\n },\n {\n id: 'port17', shape: 'Circle', offset: { x: 0.5, y: 0 }, height: 8, width: 8, visibility: ej.diagrams.PortVisibility.Visible,\n text: 'In - 1'\n },\n {\n id: 'port18', shape: 'Circle', offset: { x: 1, y: 0.5 }, height: 8, width: 8, visibility: ej.diagrams.PortVisibility.Visible,\n text: 'OUT - 2'\n }\n ];\n var node6Port = [\n {\n id: 'port19', shape: 'Circle', offset: { x: 0, y: 0.35 }, height: 8, width: 8, visibility: ej.diagrams.PortVisibility.Visible,\n text: 'In - 1'\n },\n {\n id: 'port20', shape: 'Circle', offset: { x: 0.5, y: 1 }, height: 8, width: 8, visibility: ej.diagrams.PortVisibility.Visible,\n text: 'Out - 1'\n }\n ];\n var node7Port = [\n {\n id: 'port21', shape: 'Circle', offset: { x: 0.5, y: 0 }, height: 8, width: 8, visibility: ej.diagrams.PortVisibility.Visible,\n text: 'In - 1'\n },\n {\n id: 'port22', shape: 'Circle', offset: { x: 0.5, y: 1 }, height: 8, width: 8, visibility: ej.diagrams.PortVisibility.Visible,\n text: 'Out - 1'\n }\n ];\n var shape1 = { type: 'Basic', shape: 'Rectangle' };\n var shape2 = { type: 'Basic', shape: 'Diamond' };\n var nodes = [\n {\n id: 'node1', offsetX: centerX - 200, offsetY: 100,\n annotations: [{ content: 'Publisher' }], ports: node1Port\n },\n {\n id: 'node2', offsetX: centerX, offsetY: 100,\n annotations: [{ content: 'Completed Book', margin: { left: 5, right: 5 } }], ports: node2Port\n },\n {\n id: 'node3', offsetX: centerX, offsetY: 200,\n annotations: [{ content: '1st Review' }], ports: node3Port\n },\n {\n id: 'node4', offsetX: centerX, offsetY: 300,\n annotations: [{ content: 'Legal Terms' }], ports: node4Port\n },\n {\n id: 'node5', offsetX: centerX, offsetY: 400,\n annotations: [{ content: '2nd Review' }], ports: node5Port\n },\n {\n id: 'node6', offsetX: centerX + 200, offsetY: 100,\n annotations: [{ content: 'Board' }], ports: node6Port\n },\n {\n id: 'node7', offsetX: centerX + 200, offsetY: 200,\n annotations: [{ content: 'Approval' }], ports: node7Port\n }\n ];\n var connectors = [\n {\n id: 'connector1', sourceID: 'node1', sourcePortID: 'port2',\n targetID: 'node2', targetPortID: 'port6'\n },\n {\n id: 'connector2', sourceID: 'node1', sourcePortID: 'port4',\n targetID: 'node4', targetPortID: 'port13'\n },\n {\n id: 'connector3', sourceID: 'node2', sourcePortID: 'port9',\n targetID: 'node3', targetPortID: 'port11'\n },\n {\n id: 'connector4', sourceID: 'node2', sourcePortID: 'port7',\n targetID: 'node6', targetPortID: 'port19'\n },\n {\n id: 'connector5', sourceID: 'node3', sourcePortID: 'port10',\n targetID: 'node1', targetPortID: 'port5'\n },\n {\n id: 'connector6', sourceID: 'node3', sourcePortID: 'port12',\n targetID: 'node4', targetPortID: 'port14'\n },\n {\n id: 'connector7', sourceID: 'node4', sourcePortID: 'port15',\n targetID: 'node5', targetPortID: 'port17'\n },\n {\n id: 'connector8', sourceID: 'node5', sourcePortID: 'port18',\n targetID: 'node2', targetPortID: 'port8'\n },\n {\n id: 'connector9', sourceID: 'node5', sourcePortID: 'port16',\n targetID: 'node1', targetPortID: 'port3'\n },\n {\n id: 'connector10', sourceID: 'node6', sourcePortID: 'port20',\n targetID: 'node7', targetPortID: 'port21'\n },\n {\n id: 'connector11', sourceID: 'node7', sourcePortID: 'port22',\n targetID: 'node1', targetPortID: 'port1'\n }\n ];\n //Initialize diagram control\n diagram = new ej.diagrams.Diagram({\n width: '100%', height: 580,\n nodes: nodes, connectors: connectors, selectionChange: selectionChange,\n snapSettings: { constraints: 0 },\n //Sets the default values of nodes\n getNodeDefaults: function (obj) {\n //Initialize shape\n if (obj.id === 'node1' || obj.id === 'node2' || obj.id === 'node4' || obj.id === 'node6') {\n obj.shape = shape1;\n } else if (obj.id === 'node3' || obj.id === 'node5' || obj.id === 'node7') {\n obj.shape = shape2;\n }\n //sets height and width for nodes\n obj.height = 65;\n obj.width = 100;\n obj.style = { fill: '#ebf8fb', strokeColor: '#baeaf5' };\n for (var i = 0; i < obj.ports.length; i++) {\n //sets styles for the ports\n obj.ports[i].style = {\n fill: '#366f8c',\n strokeColor: '#366f8c'\n };\n obj.ports[i].width = 6;\n obj.ports[i].height = 6;\n }\n obj.annotations[0].style = {\n fontSize: 13,\n color: 'black'\n };\n },\n //Sets the default values of connector\n getConnectorDefaults: function (connector) {\n //defines type of the connectors\n connector.type = 'Orthogonal';\n connector.style = { strokeColor: '#8cdcef', strokeWidth: 1 };\n connector.targetDecorator = { width: 5, height: 5, style: { fill: '#8cdcef', strokeColor: '#8cdcef' } };\n },\n });\n diagram.appendTo('#diagram');\n //Visibility collection of the Port.\n var visibility = [\n { PortVisibility: ej.diagrams.PortVisibility.Visible, text: 'Visible' },\n { PortVisibility: ej.diagrams.PortVisibility.Hidden, text: 'Hidden' },\n { PortVisibility: ej.diagrams.PortVisibility.Hover, text: 'Hover' },\n { PortVisibility: ej.diagrams.PortVisibility.Connect, text: 'Connect' }\n ];\n //Enable or disable the visibility of the Port\n portVisibilityDrop = new ej.dropdowns.MultiSelect({\n enabled: true, dataSource: visibility,\n fields: { value: 'PortVisibility', text: 'text' },\n mode: 'CheckBox',\n showSelectAll: true,\n showdropdownsIcon: true,\n popupHeight: '280px',\n popupWidth: '180px',\n change: portVisibilityChange\n });\n portVisibilityDrop.appendTo('#portsVisiblity');\n //Colorpicker used to apply for fill color of the Port.\n portFillDrop = new ej.inputs.ColorPicker({\n value: '#000', disabled: false, change: function (arg) {\n var port = getPort();\n for (var j = 0; j < port.length; j++) {\n port[j].style.fill = arg.currentValue.rgba;\n }\n }\n });\n portFillDrop.appendTo('#fill');\n //Colorpicker used to apply for stroke color of the Port.\n portBorderDrop = new ej.inputs.ColorPicker({\n value: '#000', disabled: false, change: function (arg) {\n var port = getPort();\n for (var j = 0; j < port.length; j++) {\n port[j].style.strokeColor = arg.currentValue.rgba;\n }\n }\n });\n portBorderDrop.appendTo('#border');\n //Shape collection of the Port.\n var shape = [\n { shape: 'X', text: 'X' },\n { shape: 'Circle', text: 'Circle' },\n { shape: 'Square', text: 'Square' },\n { shape: 'Custom', text: 'Custom' }\n ];\n //DropDownList is used to apply the shape of the Port.\n portShapeDrop = new ej.dropdowns.DropDownList({\n enabled: true, placeholder: 'Select a Port', value: 'Circle',\n dataSource: shape, fields: { value: 'shape', text: 'text' },\n change: portShapeChange\n });\n //NumericTextBox is used to apply the size of the Port.\n portShapeDrop.appendTo('#shape');\n portSizeNum = new ej.inputs.NumericTextBox({\n enabled: true,\n format: '###.##',\n value: 6,\n min: 1,\n step: 1,\n change: function (args) {\n applyPortStyle('size');\n }\n });\n portSizeNum.appendTo('#size');\n //NumericTextBox is used to apply the StrokeWidth of the Port.\n portWidthNum = new ej.inputs.NumericTextBox({\n enabled: true,\n format: '###.##',\n value: 1,\n min: 0.5,\n step: 0.5,\n change: function (args) {\n applyPortStyle('strokewidth');\n }\n });\n portWidthNum.appendTo('#width');\n diagram.select([diagram.nodes[0]]);\n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n Visibility\n
\n
\n \n
\n
\n
\n
\n Shape\n
\n
\n \n
\n
\n
\n
\n
\n
\n Fill Color\n
\n
\n \n
\n
\n
\n
\n Stroke Color\n
\n
\n \n
\n
\n
\n
\n
\n
\n Stroke Width\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n\n\n
","index.js":"{{ripple}}ej.diagrams.Diagram.Inject(ej.diagrams.UndoRedo);\nej.dropdowns.MultiSelect.Inject(ej.dropdowns.CheckBoxSelection);\n//get the port for the selected node.\nvar diagram;\nvar portVisibilityDrop;\nvar portFillDrop;\nvar portBorderDrop;\nvar portShapeDrop;\n\nvar portWidthNum;\nvar portSizeNum;\n\nfunction getPort() {\n var node = diagram.selectedItems.nodes[0];\n var port = [];\n if (node) {\n port = node.ports;\n }\n return port;\n}\n//enable or disable the property panel based on the Selection.\nfunction selectionChange(args) {\n if (args.state === 'Changed') {\n var appearance = document.getElementById('propertypanel');\n var selectedElement = document.getElementsByClassName('e-remove-selection');\n if (args.newValue) {\n\n if (args.newValue[0] instanceof ej.diagrams.Node && selectedElement.length) {\n selectedElement[0].classList.remove('e-remove-selection');\n var port = getPort()[0];\n portVisibilityDrop.value = [];\n if (ej.diagrams.PortVisibility.Visible & port.visibility) {\n portVisibilityDrop.value.push(ej.diagrams.PortVisibility.Visible);\n }\n if (ej.diagrams.PortVisibility.Hidden & port.visibility) {\n portVisibilityDrop.value.push(ej.diagrams.PortVisibility.Hidden);\n }\n if (ej.diagrams.PortVisibility.Hover & port.visibility) {\n portVisibilityDrop.value.push(ej.diagrams.PortVisibility.Hover);\n }\n if (ej.diagrams.PortVisibility.Connect & port.visibility) {\n portVisibilityDrop.value.push(ej.diagrams.PortVisibility.Connect);\n }\n if (portVisibilityDrop.value.length === 0) {\n portVisibilityDrop.placeholder = 'Select Visibility';\n }\n portVisibilityDrop.dataBind();\n portFillDrop.value = port.style.fill;\n portFillDrop.dataBind();\n portBorderDrop.value = port.style.strokeColor;\n portBorderDrop.dataBind();\n portShapeDrop.value = port.shape;\n portShapeDrop.dataBind();\n portSizeNum.value = port.height;\n portSizeNum.dataBind();\n portWidthNum.value = port.style.strokeWidth;\n portWidthNum.dataBind();\n }\n }\n }\n}\n//change the Visibility of the Port.\nfunction portVisibilityChange(args) {\n var port = getPort();\n if (port) {\n for (var j = 0; j < port.length; j++) {\n port[j].visibility = 0;\n for (var i = 0; i < args.value.length; i++) {\n port[j].visibility += args.value[i];\n }\n }\n }\n diagram.dataBind();\n}\n//set the appearence of the Port.\nfunction applyPortStyle(value) {\n var port = getPort();\n for (var j = 0; j < port.length; j++) {\n if (value === 'size') {\n\n port[j].height = portSizeNum.value;\n port[j].width = portSizeNum.value;\n\n } else if (value === 'strokewidth') {\n port[j].style.strokeWidth = portWidthNum.value;\n }\n }\n diagram.dataBind();\n}\n//change the shape of the Port.\nfunction portShapeChange(args) {\n var port = getPort();\n for (var j = 0; j < port.length; j++) {\n switch (portShapeDrop.value) {\n case 'X':\n port[j].shape = 'X';\n break;\n case 'Circle':\n port[j].shape = 'Circle';\n break;\n case 'Square':\n port[j].shape = 'Square';\n break;\n case 'Custom':\n port[j].shape = 'Custom';\n port[j].pathData = 'M6.805,0L13.61,10.703L0,10.703z';\n break;\n }\n diagram.dataBind();\n }\n\n}\n\n\n var bounds = document.getElementsByClassName('control-section')[0].getBoundingClientRect();\n var centerX = bounds.width / 2;\n var node1Port = [\n {\n id: 'port1', shape: 'Circle', offset: { x: 0, y: 0.5 }, height: 8, width: 8, visibility: ej.diagrams.PortVisibility.Visible,\n text: 'In - 1'\n },\n {\n id: 'port2', shape: 'Circle', offset: { x: 1, y: 0.5 }, height: 8, width: 8, visibility: ej.diagrams.PortVisibility.Visible,\n text: 'OUT - 1'\n },\n {\n id: 'port3', shape: 'Circle', offset: { x: 0.25, y: 1 }, height: 8, width: 8, visibility: ej.diagrams.PortVisibility.Visible,\n text: 'In - 2'\n },\n {\n id: 'port4', shape: 'Circle', offset: { x: 0.5, y: 1 }, height: 8, width: 8, visibility: ej.diagrams.PortVisibility.Visible,\n text: 'OUT - 2'\n },\n {\n id: 'port5', shape: 'Circle', offset: { x: 0.75, y: 1 }, height: 8, width: 8, visibility: ej.diagrams.PortVisibility.Visible,\n text: 'In - 3'\n }\n ];\n var node2Port = [\n {\n id: 'port6', shape: 'Circle', offset: { x: 0, y: 0.5 }, height: 8, width: 8, visibility: ej.diagrams.PortVisibility.Visible,\n text: 'In - 1'\n },\n {\n id: 'port7', shape: 'Circle', offset: { x: 1, y: 0.35 }, height: 8, width: 8, visibility: ej.diagrams.PortVisibility.Visible,\n text: 'OUT - 1'\n },\n {\n id: 'port8', shape: 'Circle', offset: { x: 1, y: 0.70 }, height: 8, width: 8, visibility: ej.diagrams.PortVisibility.Visible,\n text: 'In - 2'\n },\n {\n id: 'port9', shape: 'Circle', offset: { x: 0.5, y: 1 }, height: 8, width: 8, visibility: ej.diagrams.PortVisibility.Visible,\n text: 'OUT - 2'\n }\n ];\n var node3Port = [\n {\n id: 'port10', shape: 'Circle', offset: { x: 0, y: 0.5 }, height: 8, width: 8, visibility: ej.diagrams.PortVisibility.Visible,\n text: 'Out - 1'\n },\n {\n id: 'port11', shape: 'Circle', offset: { x: 0.5, y: 0 }, height: 8, width: 8, visibility: ej.diagrams.PortVisibility.Visible,\n text: 'In - 1'\n },\n {\n id: 'port12', shape: 'Circle', offset: { x: 0.5, y: 1 }, height: 8, width: 8, visibility: ej.diagrams.PortVisibility.Visible,\n text: 'OUT - 2'\n }\n ];\n var node4Port = [\n {\n id: 'port13', shape: 'Circle', offset: { x: 0, y: 0.5 }, height: 8, width: 8, visibility: ej.diagrams.PortVisibility.Visible,\n text: 'In - 1'\n },\n {\n id: 'port14', shape: 'Circle', offset: { x: 0.5, y: 0 }, height: 8, width: 8, visibility: ej.diagrams.PortVisibility.Visible,\n text: 'In - 2'\n },\n {\n id: 'port15', shape: 'Circle', offset: { x: 0.5, y: 1 }, height: 8, width: 8, visibility: ej.diagrams.PortVisibility.Visible,\n text: 'OUT - 1'\n }\n ];\n var node5Port = [\n {\n id: 'port16', shape: 'Circle', offset: { x: 0, y: 0.5 }, height: 8, width: 8, visibility: ej.diagrams.PortVisibility.Visible,\n text: 'out - 1'\n },\n {\n id: 'port17', shape: 'Circle', offset: { x: 0.5, y: 0 }, height: 8, width: 8, visibility: ej.diagrams.PortVisibility.Visible,\n text: 'In - 1'\n },\n {\n id: 'port18', shape: 'Circle', offset: { x: 1, y: 0.5 }, height: 8, width: 8, visibility: ej.diagrams.PortVisibility.Visible,\n text: 'OUT - 2'\n }\n ];\n var node6Port = [\n {\n id: 'port19', shape: 'Circle', offset: { x: 0, y: 0.35 }, height: 8, width: 8, visibility: ej.diagrams.PortVisibility.Visible,\n text: 'In - 1'\n },\n {\n id: 'port20', shape: 'Circle', offset: { x: 0.5, y: 1 }, height: 8, width: 8, visibility: ej.diagrams.PortVisibility.Visible,\n text: 'Out - 1'\n }\n ];\n var node7Port = [\n {\n id: 'port21', shape: 'Circle', offset: { x: 0.5, y: 0 }, height: 8, width: 8, visibility: ej.diagrams.PortVisibility.Visible,\n text: 'In - 1'\n },\n {\n id: 'port22', shape: 'Circle', offset: { x: 0.5, y: 1 }, height: 8, width: 8, visibility: ej.diagrams.PortVisibility.Visible,\n text: 'Out - 1'\n }\n ];\n var shape1 = { type: 'Basic', shape: 'Rectangle' };\n var shape2 = { type: 'Basic', shape: 'Diamond' };\n var nodes = [\n {\n id: 'node1', offsetX: centerX - 200, offsetY: 100,\n annotations: [{ content: 'Publisher' }], ports: node1Port\n },\n {\n id: 'node2', offsetX: centerX, offsetY: 100,\n annotations: [{ content: 'Completed Book', margin: { left: 5, right: 5 } }], ports: node2Port\n },\n {\n id: 'node3', offsetX: centerX, offsetY: 200,\n annotations: [{ content: '1st Review' }], ports: node3Port\n },\n {\n id: 'node4', offsetX: centerX, offsetY: 300,\n annotations: [{ content: 'Legal Terms' }], ports: node4Port\n },\n {\n id: 'node5', offsetX: centerX, offsetY: 400,\n annotations: [{ content: '2nd Review' }], ports: node5Port\n },\n {\n id: 'node6', offsetX: centerX + 200, offsetY: 100,\n annotations: [{ content: 'Board' }], ports: node6Port\n },\n {\n id: 'node7', offsetX: centerX + 200, offsetY: 200,\n annotations: [{ content: 'Approval' }], ports: node7Port\n }\n ];\n var connectors = [\n {\n id: 'connector1', sourceID: 'node1', sourcePortID: 'port2',\n targetID: 'node2', targetPortID: 'port6'\n },\n {\n id: 'connector2', sourceID: 'node1', sourcePortID: 'port4',\n targetID: 'node4', targetPortID: 'port13'\n },\n {\n id: 'connector3', sourceID: 'node2', sourcePortID: 'port9',\n targetID: 'node3', targetPortID: 'port11'\n },\n {\n id: 'connector4', sourceID: 'node2', sourcePortID: 'port7',\n targetID: 'node6', targetPortID: 'port19'\n },\n {\n id: 'connector5', sourceID: 'node3', sourcePortID: 'port10',\n targetID: 'node1', targetPortID: 'port5'\n },\n {\n id: 'connector6', sourceID: 'node3', sourcePortID: 'port12',\n targetID: 'node4', targetPortID: 'port14'\n },\n {\n id: 'connector7', sourceID: 'node4', sourcePortID: 'port15',\n targetID: 'node5', targetPortID: 'port17'\n },\n {\n id: 'connector8', sourceID: 'node5', sourcePortID: 'port18',\n targetID: 'node2', targetPortID: 'port8'\n },\n {\n id: 'connector9', sourceID: 'node5', sourcePortID: 'port16',\n targetID: 'node1', targetPortID: 'port3'\n },\n {\n id: 'connector10', sourceID: 'node6', sourcePortID: 'port20',\n targetID: 'node7', targetPortID: 'port21'\n },\n {\n id: 'connector11', sourceID: 'node7', sourcePortID: 'port22',\n targetID: 'node1', targetPortID: 'port1'\n }\n ];\n //Initialize diagram control\n diagram = new ej.diagrams.Diagram({\n width: '100%', height: 580,\n nodes: nodes, connectors: connectors, selectionChange: selectionChange,\n snapSettings: { constraints: 0 },\n //Sets the default values of nodes\n getNodeDefaults: function (obj) {\n //Initialize shape\n if (obj.id === 'node1' || obj.id === 'node2' || obj.id === 'node4' || obj.id === 'node6') {\n obj.shape = shape1;\n } else if (obj.id === 'node3' || obj.id === 'node5' || obj.id === 'node7') {\n obj.shape = shape2;\n }\n //sets height and width for nodes\n obj.height = 65;\n obj.width = 100;\n obj.style = { fill: '#ebf8fb', strokeColor: '#baeaf5' };\n for (var i = 0; i < obj.ports.length; i++) {\n //sets styles for the ports\n obj.ports[i].style = {\n fill: '#366f8c',\n strokeColor: '#366f8c'\n };\n obj.ports[i].width = 6;\n obj.ports[i].height = 6;\n }\n obj.annotations[0].style = {\n fontSize: 13,\n color: 'black'\n };\n },\n //Sets the default values of connector\n getConnectorDefaults: function (connector) {\n //defines type of the connectors\n connector.type = 'Orthogonal';\n connector.style = { strokeColor: '#8cdcef', strokeWidth: 1 };\n connector.targetDecorator = { width: 5, height: 5, style: { fill: '#8cdcef', strokeColor: '#8cdcef' } };\n },\n });\n diagram.appendTo('#diagram');\n //Visibility collection of the Port.\n var visibility = [\n { PortVisibility: ej.diagrams.PortVisibility.Visible, text: 'Visible' },\n { PortVisibility: ej.diagrams.PortVisibility.Hidden, text: 'Hidden' },\n { PortVisibility: ej.diagrams.PortVisibility.Hover, text: 'Hover' },\n { PortVisibility: ej.diagrams.PortVisibility.Connect, text: 'Connect' }\n ];\n //Enable or disable the visibility of the Port\n portVisibilityDrop = new ej.dropdowns.MultiSelect({\n enabled: true, dataSource: visibility,\n fields: { value: 'PortVisibility', text: 'text' },\n mode: 'CheckBox',\n showSelectAll: true,\n showdropdownsIcon: true,\n popupHeight: '280px',\n popupWidth: '180px',\n change: portVisibilityChange\n });\n portVisibilityDrop.appendTo('#portsVisiblity');\n //Colorpicker used to apply for fill color of the Port.\n portFillDrop = new ej.inputs.ColorPicker({\n value: '#000', disabled: false, change: function (arg) {\n var port = getPort();\n for (var j = 0; j < port.length; j++) {\n port[j].style.fill = arg.currentValue.rgba;\n }\n }\n });\n portFillDrop.appendTo('#fill');\n //Colorpicker used to apply for stroke color of the Port.\n portBorderDrop = new ej.inputs.ColorPicker({\n value: '#000', disabled: false, change: function (arg) {\n var port = getPort();\n for (var j = 0; j < port.length; j++) {\n port[j].style.strokeColor = arg.currentValue.rgba;\n }\n }\n });\n portBorderDrop.appendTo('#border');\n //Shape collection of the Port.\n var shape = [\n { shape: 'X', text: 'X' },\n { shape: 'Circle', text: 'Circle' },\n { shape: 'Square', text: 'Square' },\n { shape: 'Custom', text: 'Custom' }\n ];\n //DropDownList is used to apply the shape of the Port.\n portShapeDrop = new ej.dropdowns.DropDownList({\n enabled: true, placeholder: 'Select a Port', value: 'Circle',\n dataSource: shape, fields: { value: 'shape', text: 'text' },\n change: portShapeChange\n });\n //NumericTextBox is used to apply the size of the Port.\n portShapeDrop.appendTo('#shape');\n portSizeNum = new ej.inputs.NumericTextBox({\n enabled: true,\n format: '###.##',\n value: 6,\n min: 1,\n step: 1,\n change: function (args) {\n applyPortStyle('size');\n }\n });\n portSizeNum.appendTo('#size');\n //NumericTextBox is used to apply the StrokeWidth of the Port.\n portWidthNum = new ej.inputs.NumericTextBox({\n enabled: true,\n format: '###.##',\n value: 1,\n min: 0.5,\n step: 0.5,\n change: function (args) {\n applyPortStyle('strokewidth');\n }\n });\n portWidthNum.appendTo('#width');\n diagram.select([diagram.nodes[0]]);\n"}
\ No newline at end of file
diff --git a/src/diagram/print-export-stack.json b/src/diagram/print-export-stack.json
index 144133b6..5f645f07 100644
--- a/src/diagram/print-export-stack.json
+++ b/src/diagram/print-export-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}/**\n * Print and Export\n */\nej.diagrams.Diagram.Inject(ej.diagrams.PrintAndExport);\nvar checkBoxObj;\nvar toolbarObj;\nvar btnObj;\nvar diagram;\n//click event to perform printing the diagraming objects.\nfunction onItemClick(args) {\n if (args.item.text === 'Print') {\n var printOptions = {};\n printOptions.mode = 'Data';\n printOptions.region = 'PageSettings';\n printOptions.multiplePage = checkBoxObj.checked;\n printOptions.margin = { left: 0, top: 0, bottom: 0, right: 0 };\n diagram.print(printOptions);\n }\n}\n//Export the diagraming object based on the format.\nfunction onselect(args) {\n var exportOptions = {};\n exportOptions.format = args.item.text;\n exportOptions.mode = 'Download';\n exportOptions.region = 'PageSettings';\n exportOptions.multiplePage = checkBoxObj.checked;\n exportOptions.fileName = 'Export';\n exportOptions.margin = { left: 0, top: 0, bottom: 0, right: 0 };\n diagram.exportDiagram(exportOptions);\n}\n\n \n var nodes = [\n {\n id: 'sourceNode1', width: 100, height: 50, offsetX: 120, offsetY: 100,\n style: { strokeColor: '#868686', fill: '#d5f5d5' },\n annotations: [{ content: 'Source Document', margin: { left: 15, right: 15, bottom: 15, top: 15 } }]\n },\n {\n id: 'censusNode2', width: 100, height: 75, offsetX: 120, offsetY: 200,\n shape: { type: 'Basic', shape: 'Diamond' },\n style: { strokeColor: '#8f908f', fill: '#e2f3fa' },\n annotations: [{ content: 'Census Record', margin: { left: 15, right: 15, bottom: 15, top: 15 } }]\n },\n {\n id: 'booksNode3', width: 100, height: 75, offsetX: 120, offsetY: 325,\n shape: { type: 'Basic', shape: 'Diamond' },\n style: { strokeColor: '#8f908f', fill: '#e2f3fa' },\n annotations: [{ content: 'Books and Magazine' }]\n },\n {\n id: 'recordNode4', width: 125, height: 50, offsetX: 320, offsetY: 200,\n style: { strokeColor: '#868686', fill: '#d5f5d5' },\n annotations: [{ content: 'Record Template' }]\n },\n {\n id: 'traditionalNode5', width: 125, height: 50, offsetX: 320, offsetY: 325,\n style: { strokeColor: '#868686', fill: '#d5f5d5' },\n annotations: [{ content: 'Traditional Template' }]\n },\n {\n id: 'nontraditionalNode6', width: 135, height: 50, offsetX: 120, offsetY: 425,\n style: { strokeColor: '#a8a8a8', fill: '#faebee' },\n annotations: [{ content: 'Nontraditional' }]\n },\n {\n id: 'Radial1', width: 125, height: 50, offsetX: 850, offsetY: 225,\n shape: { type: 'Basic', shape: 'Ellipse' },\n style: { strokeColor: '#a8a8a8', fill: '#fef0db' },\n annotations: [{ content: 'Health Fitness', }]\n },\n {\n id: 'Radial2', width: 125, height: 75, offsetX: 850, offsetY: 100,\n shape: { type: 'Basic', shape: 'Ellipse' },\n style: { strokeColor: '#a8a8a8', fill: '#faebee' },\n annotations: [{ content: 'Diet' }]\n },\n {\n id: 'Radial3', width: 125, height: 75, offsetX: 1025, offsetY: 175,\n shape: { type: 'Basic', shape: 'Ellipse' },\n style: { strokeColor: '#a8a8a8', fill: '#faebee' },\n annotations: [{ content: 'Flexibility' }]\n },\n {\n id: 'Radial4', width: 125, height: 75, offsetX: 1000, offsetY: 350,\n shape: { type: 'Basic', shape: 'Ellipse' },\n style: { strokeColor: '#a8a8a8', fill: '#faebee' },\n annotations: [{ content: 'Muscular Endurance' }]\n },\n {\n id: 'Radial5', width: 125, height: 75, offsetX: 675, offsetY: 175,\n shape: { type: 'Basic', shape: 'Ellipse' },\n style: { strokeColor: '#a8a8a8', fill: '#faebee' },\n annotations: [{ content: 'Cardiovascular Strength' }]\n },\n {\n id: 'Radial6', width: 125, height: 75, offsetX: 770, offsetY: 350,\n shape: { type: 'Basic', shape: 'Ellipse' },\n style: { strokeColor: '#a8a8a8', fill: '#faebee' },\n annotations: [{ content: 'Muscular Strength' }]\n },\n ];\n var connectors = [\n { id: 'flowChartConnector1', sourceID: 'sourceNode1', targetID: 'censusNode2' },\n {\n id: 'flowChartConnector2', sourceID: 'censusNode2', targetID: 'booksNode3',\n annotations: [{ content: 'No', style: { fill: 'White' } }]\n },\n {\n id: 'flowChartConnector3', sourceID: 'booksNode3', targetID: 'nontraditionalNode6',\n annotations: [{ content: 'No', style: { fill: 'White' } }]\n },\n {\n id: 'flowChartConnector4', sourceID: 'censusNode2', targetID: 'recordNode4',\n annotations: [{ content: 'Yes', style: { fill: 'White' } }]\n },\n {\n id: 'flowChartConnector5', sourceID: 'booksNode3', targetID: 'traditionalNode5',\n annotations: [{ content: 'Yes', style: { fill: 'White' } }]\n },\n { id: 'RadialConnector1', sourceID: 'Radial1', targetID: 'Radial2', annotations: [{ content: 'Yes', style: { fill: 'White' } }] },\n { id: 'RadialConnector2', sourceID: 'Radial1', targetID: 'Radial3', annotations: [{ content: 'Yes', style: { fill: 'White' } }] },\n { id: 'RadialConnector3', sourceID: 'Radial1', targetID: 'Radial4', annotations: [{ content: 'Yes', style: { fill: 'White' } }] },\n { id: 'RadialConnector4', sourceID: 'Radial1', targetID: 'Radial5', annotations: [{ content: 'Yes', style: { fill: 'White' } }] },\n { id: 'RadialConnector5', sourceID: 'Radial1', targetID: 'Radial6', annotations: [{ content: 'Yes', style: { fill: 'White' } }] },\n ];\n //initialize the diagram control\n diagram = new ej.diagrams.Diagram({\n width: '100%', height: '580px', nodes: nodes,\n connectors: connectors,\n snapSettings: { constraints: ej.diagrams.SnapConstraints.None },\n pageSettings: { width: 550, height: 500, multiplePage: true },\n getConnectorDefaults: function (connector, diagram) {\n connector.style.strokeColor = '#6d6d6d';\n return connector;\n }\n });\n var items = [{ text: 'JPG' }, { text: 'PNG' }, { text: 'BMP' }, { text: 'SVG' }];\n //DropDownButton used to perform exporting.\n btnObj = new ej.splitbuttons.DropDownButton({\n items: items, iconCss: 'e-ddb-icons e-export', content: 'Export', select: onselect,\n });\n //enable or disable the multiple page printing and exporting.\n checkBoxObj = new ej.buttons.CheckBox({\n checked: false, label: 'Multiple Page',\n });\n // create and add printing and exporting option in ToolBar.\n toolbarObj = new ej.navigations.Toolbar({\n clicked: onItemClick,\n items: [\n {\n type: 'Input', text: 'Export', template: ' '\n },\n {\n type: 'Button', text: 'Print', prefixIcon: 'e-ddb-icons e-print',\n },\n {\n type: 'Input', template: checkBoxObj\n },\n ]\n });\n toolbarObj.appendTo('#toolbar_default');\n btnObj.appendTo('#custombtn');\n diagram.appendTo('#diagram');\n diagram.fitToPage({ mode: 'Width' });\n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}/**\n * Print and Export\n */\nej.diagrams.Diagram.Inject(ej.diagrams.PrintAndExport);\nvar checkBoxObj;\nvar toolbarObj;\nvar btnObj;\nvar diagram;\n//click event to perform printing the diagraming objects.\nfunction onItemClick(args) {\n if (args.item.text === 'Print') {\n var printOptions = {};\n printOptions.mode = 'Data';\n printOptions.region = 'PageSettings';\n printOptions.multiplePage = checkBoxObj.checked;\n printOptions.margin = { left: 0, top: 0, bottom: 0, right: 0 };\n diagram.print(printOptions);\n }\n}\n//Export the diagraming object based on the format.\nfunction onselect(args) {\n var exportOptions = {};\n exportOptions.format = args.item.text;\n exportOptions.mode = 'Download';\n exportOptions.region = 'PageSettings';\n exportOptions.multiplePage = checkBoxObj.checked;\n exportOptions.fileName = 'Export';\n exportOptions.margin = { left: 0, top: 0, bottom: 0, right: 0 };\n diagram.exportDiagram(exportOptions);\n}\n\n \n var nodes = [\n {\n id: 'sourceNode1', width: 100, height: 50, offsetX: 120, offsetY: 100,\n style: { strokeColor: '#868686', fill: '#d5f5d5' },\n annotations: [{ content: 'Source Document', margin: { left: 15, right: 15, bottom: 15, top: 15 } }]\n },\n {\n id: 'censusNode2', width: 100, height: 75, offsetX: 120, offsetY: 200,\n shape: { type: 'Basic', shape: 'Diamond' },\n style: { strokeColor: '#8f908f', fill: '#e2f3fa' },\n annotations: [{ content: 'Census Record', margin: { left: 15, right: 15, bottom: 15, top: 15 } }]\n },\n {\n id: 'booksNode3', width: 100, height: 75, offsetX: 120, offsetY: 325,\n shape: { type: 'Basic', shape: 'Diamond' },\n style: { strokeColor: '#8f908f', fill: '#e2f3fa' },\n annotations: [{ content: 'Books and Magazine' }]\n },\n {\n id: 'recordNode4', width: 125, height: 50, offsetX: 320, offsetY: 200,\n style: { strokeColor: '#868686', fill: '#d5f5d5' },\n annotations: [{ content: 'Record Template' }]\n },\n {\n id: 'traditionalNode5', width: 125, height: 50, offsetX: 320, offsetY: 325,\n style: { strokeColor: '#868686', fill: '#d5f5d5' },\n annotations: [{ content: 'Traditional Template' }]\n },\n {\n id: 'nontraditionalNode6', width: 135, height: 50, offsetX: 120, offsetY: 425,\n style: { strokeColor: '#a8a8a8', fill: '#faebee' },\n annotations: [{ content: 'Nontraditional' }]\n },\n {\n id: 'Radial1', width: 125, height: 50, offsetX: 850, offsetY: 225,\n shape: { type: 'Basic', shape: 'Ellipse' },\n style: { strokeColor: '#a8a8a8', fill: '#fef0db' },\n annotations: [{ content: 'Health Fitness', }]\n },\n {\n id: 'Radial2', width: 125, height: 75, offsetX: 850, offsetY: 100,\n shape: { type: 'Basic', shape: 'Ellipse' },\n style: { strokeColor: '#a8a8a8', fill: '#faebee' },\n annotations: [{ content: 'Diet' }]\n },\n {\n id: 'Radial3', width: 125, height: 75, offsetX: 1025, offsetY: 175,\n shape: { type: 'Basic', shape: 'Ellipse' },\n style: { strokeColor: '#a8a8a8', fill: '#faebee' },\n annotations: [{ content: 'Flexibility' }]\n },\n {\n id: 'Radial4', width: 125, height: 75, offsetX: 1000, offsetY: 350,\n shape: { type: 'Basic', shape: 'Ellipse' },\n style: { strokeColor: '#a8a8a8', fill: '#faebee' },\n annotations: [{ content: 'Muscular Endurance' }]\n },\n {\n id: 'Radial5', width: 125, height: 75, offsetX: 675, offsetY: 175,\n shape: { type: 'Basic', shape: 'Ellipse' },\n style: { strokeColor: '#a8a8a8', fill: '#faebee' },\n annotations: [{ content: 'Cardiovascular Strength' }]\n },\n {\n id: 'Radial6', width: 125, height: 75, offsetX: 770, offsetY: 350,\n shape: { type: 'Basic', shape: 'Ellipse' },\n style: { strokeColor: '#a8a8a8', fill: '#faebee' },\n annotations: [{ content: 'Muscular Strength' }]\n },\n ];\n var connectors = [\n { id: 'flowChartConnector1', sourceID: 'sourceNode1', targetID: 'censusNode2' },\n {\n id: 'flowChartConnector2', sourceID: 'censusNode2', targetID: 'booksNode3',\n annotations: [{ content: 'No', style: { fill: 'White' } }]\n },\n {\n id: 'flowChartConnector3', sourceID: 'booksNode3', targetID: 'nontraditionalNode6',\n annotations: [{ content: 'No', style: { fill: 'White' } }]\n },\n {\n id: 'flowChartConnector4', sourceID: 'censusNode2', targetID: 'recordNode4',\n annotations: [{ content: 'Yes', style: { fill: 'White' } }]\n },\n {\n id: 'flowChartConnector5', sourceID: 'booksNode3', targetID: 'traditionalNode5',\n annotations: [{ content: 'Yes', style: { fill: 'White' } }]\n },\n { id: 'RadialConnector1', sourceID: 'Radial1', targetID: 'Radial2', annotations: [{ content: 'Yes', style: { fill: 'White' } }] },\n { id: 'RadialConnector2', sourceID: 'Radial1', targetID: 'Radial3', annotations: [{ content: 'Yes', style: { fill: 'White' } }] },\n { id: 'RadialConnector3', sourceID: 'Radial1', targetID: 'Radial4', annotations: [{ content: 'Yes', style: { fill: 'White' } }] },\n { id: 'RadialConnector4', sourceID: 'Radial1', targetID: 'Radial5', annotations: [{ content: 'Yes', style: { fill: 'White' } }] },\n { id: 'RadialConnector5', sourceID: 'Radial1', targetID: 'Radial6', annotations: [{ content: 'Yes', style: { fill: 'White' } }] },\n ];\n //initialize the diagram control\n diagram = new ej.diagrams.Diagram({\n width: '100%', height: '580px', nodes: nodes,\n connectors: connectors,\n snapSettings: { constraints: ej.diagrams.SnapConstraints.None },\n pageSettings: { width: 550, height: 500, multiplePage: true },\n getConnectorDefaults: function (connector, diagram) {\n connector.style.strokeColor = '#6d6d6d';\n return connector;\n }\n });\n var items = [{ text: 'JPG' }, { text: 'PNG' }, { text: 'BMP' }, { text: 'SVG' }];\n //DropDownButton used to perform exporting.\n btnObj = new ej.splitbuttons.DropDownButton({\n items: items, iconCss: 'e-ddb-icons e-export', content: 'Export', select: onselect,\n });\n //enable or disable the multiple page printing and exporting.\n checkBoxObj = new ej.buttons.CheckBox({\n checked: false, label: 'Multiple Page',\n });\n // create and add printing and exporting option in ToolBar.\n toolbarObj = new ej.navigations.Toolbar({\n clicked: onItemClick,\n items: [\n {\n type: 'Input', text: 'Export', template: ' '\n },\n {\n type: 'Button', text: 'Print', prefixIcon: 'e-ddb-icons e-print',\n },\n {\n type: 'Input', template: checkBoxObj\n },\n ]\n });\n toolbarObj.appendTo('#toolbar_default');\n btnObj.appendTo('#custombtn');\n diagram.appendTo('#diagram');\n diagram.fitToPage({ mode: 'Width' });\n"}
\ No newline at end of file
diff --git a/src/diagram/quick-commands-stack.json b/src/diagram/quick-commands-stack.json
index 33187f74..348f56ae 100644
--- a/src/diagram/quick-commands-stack.json
+++ b/src/diagram/quick-commands-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}/*jshint esversion: 6 */\n/**\n * UserHandle\n */\nej.diagrams.Diagram.Inject(ej.diagrams.DataBinding, ej.diagrams.MindMap, ej.diagrams.HierarchicalTree);\nvar diagram;\n//Defines the nodes collection in diagram\nvar nodes = [\n {\n id: 'NewIdea', width: 150, height: 60, offsetX: 300, offsetY: 60, shape: { type: 'Flow', shape: 'Terminator' },\n annotations: [{ content: 'New idea identified' }],\n }, {\n id: 'Meeting', width: 150, height: 60, offsetX: 300, offsetY: 155, shape: { type: 'Flow', shape: 'Process' },\n annotations: [{ content: 'Meeting with board' }]\n }, {\n id: 'BoardDecision', width: 150, height: 110, offsetX: 300, offsetY: 280, shape: { type: 'Flow', shape: 'Decision' },\n annotations: [{ content: 'Board decides \\n whether to proceed' }]\n }, {\n id: 'Project', width: 150, height: 100, offsetX: 300, offsetY: 430, shape: { type: 'Flow', shape: 'Decision' },\n annotations: [{ content: 'Find Project manager' }]\n }, {\n id: 'End', width: 150, height: 60, offsetX: 300, offsetY: 555, shape: { type: 'Flow', shape: 'Process' },\n annotations: [{ content: 'Implement and Deliver' }]\n }, {\n id: 'Decision', width: 250, height: 60, offsetX: 550, offsetY: 60, shape: { type: 'Flow', shape: 'Card' },\n annotations: [{ content: 'Decision process for new software ideas' }]\n }, {\n id: 'Reject', width: 150, height: 60, offsetX: 550, offsetY: 280, shape: { type: 'Flow', shape: 'Process' },\n annotations: [{ content: 'Reject' }]\n }, {\n id: 'Resources', width: 150, height: 60, offsetX: 550, offsetY: 430, shape: { type: 'Flow', shape: 'Process' },\n annotations: [{ content: 'Hire new resources' }]\n }\n];\n//Defines the connectors collection in diagram\nvar connectors = [\n { id: 'connector1', type: 'Straight', sourceID: 'NewIdea', targetID: 'Meeting' },\n { id: 'connector2', type: 'Straight', sourceID: 'Meeting', targetID: 'BoardDecision' },\n { id: 'connector3', type: 'Straight', sourceID: 'BoardDecision', targetID: 'Project' },\n { id: 'connector4', type: 'Straight', sourceID: 'Project', targetID: 'End' },\n { id: 'connector5', type: 'Straight', sourceID: 'BoardDecision', targetID: 'Reject' },\n { id: 'connector6', type: 'Straight', sourceID: 'Project', targetID: 'Resources' }\n];\n\n//Enable the clone Tool for UserHandle.\nfunction getTool(action) {\n var tool;\n if (action === 'clone') {\n tool = new CloneTool(diagram.commandHandler);\n }\n return tool;\n}\n\n\n//set the position of the userhandle.\nfunction setuserhandleposition(offset, side, target) {\n diagram.selectedItems.userHandles[0].offset = offset;\n diagram.selectedItems.userHandles[0].side = side;\n\n}\n//set the style of the userhandle.\nfunction applyuserhandlestyle(bgcolor, target) {\n diagram.selectedItems.userHandles[0].backgroundColor = bgcolor;\n diagram.selectedItems.userHandles[0].pathColor = 'White';\n\n}\n\n//Defines the user handle collection for nodes in diagram\n\nvar handles = [\n {\n name: 'clone', pathData: 'M60.3,18H27.5c-3,0-5.5,2.4-5.5,5.5v38.2h5.5V23.5h32.7V18z M68.5,28.9h-30c-3,' +\n '0-5.5,2.4-5.5,5.5v38.2c0,3,2.4,5.5,5.5,5.5h30c3,0,5.5-2.4,5.5-5.5V34.4C73.9,31.4,71.5,28.9,68.5,28.9z ' +\n 'M68.5,72.5h-30V34.4h30V72.5z',\n visible: true, offset: 0, side: 'Bottom', margin: { top: 0, bottom: 0, left: 0, right: 0 }\n }\n];\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n /* jshint proto: true */\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar CloneTool = (function (_super) {\n __extends(CloneTool, _super);\n function CloneTool() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CloneTool.prototype.mouseDown = function (args) {\n var newObject;\n if (diagram.selectedItems.nodes.length > 0) {\n newObject = ej.diagrams.cloneObject(diagram.selectedItems.nodes[0]);\n }\n else {\n newObject = ej.diagrams.cloneObject(diagram.selectedItems.connectors[0]);\n }\n newObject.id += ej.diagrams.randomId();\n diagram.paste([newObject]);\n args.source = diagram.nodes[diagram.nodes.length - 1];\n args.sourceWrapper = args.source.wrapper;\n _super.prototype.mouseDown.call(this, args);\n this.inAction = true;\n };\n return CloneTool;\n}(ej.diagrams.MoveTool));\n\n\n //Defines the diagram content\n diagram = new ej.diagrams.Diagram({\n width: '100%', height: '600px', nodes: nodes,\n connectors: connectors,\n selectedItems: { constraints: ej.diagrams.SelectorConstraints.UserHandle, userHandles: handles },\n snapSettings: { constraints: ej.diagrams.SnapConstraints.None },\n //set Node default value \n getNodeDefaults: function (node) {\n return {\n style: { fill: '#578CA9', strokeColor: 'none' },\n annotations: [{ style: { color: 'white' } }]\n };\n },\n //set CustomTool \n getCustomTool: getTool\n\n });\n diagram.appendTo('#diagram');\n diagram.fitToPage();\n diagram.select([diagram.nodes[0]]);\n //Change the postion of the UserHandle\n document.getElementById('appearance').onclick = function (args) {\n var target = args.target;\n var appearanceBlock = document.getElementById('appearance');\n\n if (target.className === 'image-pattern-style') {\n switch (target.id) {\n case 'left':\n setuserhandleposition(0, 'Bottom', target);\n break;\n case 'right':\n setuserhandleposition(1, 'Bottom', target);\n break;\n case 'topr':\n setuserhandleposition(0, 'Right', target);\n break;\n }\n }\n diagram.dataBind();\n };\n //Change the Appearence of the UserHandle\n document.getElementById('pattern').onclick = function (args) {\n var target = args.target;\n var patternBlock = document.getElementById('pattern');\n\n if (target.className === 'image-pattern-style') {\n switch (target.id) {\n case 'pattern1':\n applyuserhandlestyle('#1E90FF', target);\n break;\n case 'pattern2':\n applyuserhandlestyle('#3CB371', target);\n break;\n case 'pattern3':\n applyuserhandlestyle('#FF6347', target);\n break;\n }\n }\n diagram.dataBind();\n };\n\n\n\n\n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}/*jshint esversion: 6 */\n/**\n * UserHandle\n */\nej.diagrams.Diagram.Inject(ej.diagrams.DataBinding, ej.diagrams.MindMap, ej.diagrams.HierarchicalTree);\nvar diagram;\n//Defines the nodes collection in diagram\nvar nodes = [\n {\n id: 'NewIdea', width: 150, height: 60, offsetX: 300, offsetY: 60, shape: { type: 'Flow', shape: 'Terminator' },\n annotations: [{ content: 'New idea identified' }],\n }, {\n id: 'Meeting', width: 150, height: 60, offsetX: 300, offsetY: 155, shape: { type: 'Flow', shape: 'Process' },\n annotations: [{ content: 'Meeting with board' }]\n }, {\n id: 'BoardDecision', width: 150, height: 110, offsetX: 300, offsetY: 280, shape: { type: 'Flow', shape: 'Decision' },\n annotations: [{ content: 'Board decides \\n whether to proceed' }]\n }, {\n id: 'Project', width: 150, height: 100, offsetX: 300, offsetY: 430, shape: { type: 'Flow', shape: 'Decision' },\n annotations: [{ content: 'Find Project manager' }]\n }, {\n id: 'End', width: 150, height: 60, offsetX: 300, offsetY: 555, shape: { type: 'Flow', shape: 'Process' },\n annotations: [{ content: 'Implement and Deliver' }]\n }, {\n id: 'Decision', width: 250, height: 60, offsetX: 550, offsetY: 60, shape: { type: 'Flow', shape: 'Card' },\n annotations: [{ content: 'Decision process for new software ideas' }]\n }, {\n id: 'Reject', width: 150, height: 60, offsetX: 550, offsetY: 280, shape: { type: 'Flow', shape: 'Process' },\n annotations: [{ content: 'Reject' }]\n }, {\n id: 'Resources', width: 150, height: 60, offsetX: 550, offsetY: 430, shape: { type: 'Flow', shape: 'Process' },\n annotations: [{ content: 'Hire new resources' }]\n }\n];\n//Defines the connectors collection in diagram\nvar connectors = [\n { id: 'connector1', type: 'Straight', sourceID: 'NewIdea', targetID: 'Meeting' },\n { id: 'connector2', type: 'Straight', sourceID: 'Meeting', targetID: 'BoardDecision' },\n { id: 'connector3', type: 'Straight', sourceID: 'BoardDecision', targetID: 'Project' },\n { id: 'connector4', type: 'Straight', sourceID: 'Project', targetID: 'End' },\n { id: 'connector5', type: 'Straight', sourceID: 'BoardDecision', targetID: 'Reject' },\n { id: 'connector6', type: 'Straight', sourceID: 'Project', targetID: 'Resources' }\n];\n\n//Enable the clone Tool for UserHandle.\nfunction getTool(action) {\n var tool;\n if (action === 'clone') {\n tool = new CloneTool(diagram.commandHandler);\n }\n return tool;\n}\n\n\n//set the position of the userhandle.\nfunction setuserhandleposition(offset, side, target) {\n diagram.selectedItems.userHandles[0].offset = offset;\n diagram.selectedItems.userHandles[0].side = side;\n\n}\n//set the style of the userhandle.\nfunction applyuserhandlestyle(bgcolor, target) {\n diagram.selectedItems.userHandles[0].backgroundColor = bgcolor;\n diagram.selectedItems.userHandles[0].pathColor = 'White';\n\n}\n\n//Defines the user handle collection for nodes in diagram\n\nvar handles = [\n {\n name: 'clone', pathData: 'M60.3,18H27.5c-3,0-5.5,2.4-5.5,5.5v38.2h5.5V23.5h32.7V18z M68.5,28.9h-30c-3,' +\n '0-5.5,2.4-5.5,5.5v38.2c0,3,2.4,5.5,5.5,5.5h30c3,0,5.5-2.4,5.5-5.5V34.4C73.9,31.4,71.5,28.9,68.5,28.9z ' +\n 'M68.5,72.5h-30V34.4h30V72.5z',\n visible: true, offset: 0, side: 'Bottom', margin: { top: 0, bottom: 0, left: 0, right: 0 }\n }\n];\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n /* jshint proto: true */\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar CloneTool = (function (_super) {\n __extends(CloneTool, _super);\n function CloneTool() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CloneTool.prototype.mouseDown = function (args) {\n var newObject;\n if (diagram.selectedItems.nodes.length > 0) {\n newObject = ej.diagrams.cloneObject(diagram.selectedItems.nodes[0]);\n }\n else {\n newObject = ej.diagrams.cloneObject(diagram.selectedItems.connectors[0]);\n }\n newObject.id += ej.diagrams.randomId();\n diagram.paste([newObject]);\n args.source = diagram.nodes[diagram.nodes.length - 1];\n args.sourceWrapper = args.source.wrapper;\n _super.prototype.mouseDown.call(this, args);\n this.inAction = true;\n };\n return CloneTool;\n}(ej.diagrams.MoveTool));\n\n\n //Defines the diagram content\n diagram = new ej.diagrams.Diagram({\n width: '100%', height: '600px', nodes: nodes,\n connectors: connectors,\n selectedItems: { constraints: ej.diagrams.SelectorConstraints.UserHandle, userHandles: handles },\n snapSettings: { constraints: ej.diagrams.SnapConstraints.None },\n //set Node default value \n getNodeDefaults: function (node) {\n return {\n style: { fill: '#578CA9', strokeColor: 'none' },\n annotations: [{ style: { color: 'white' } }]\n };\n },\n //set CustomTool \n getCustomTool: getTool\n\n });\n diagram.appendTo('#diagram');\n diagram.fitToPage();\n diagram.select([diagram.nodes[0]]);\n //Change the postion of the UserHandle\n document.getElementById('appearance').onclick = function (args) {\n var target = args.target;\n var appearanceBlock = document.getElementById('appearance');\n\n if (target.className === 'image-pattern-style') {\n switch (target.id) {\n case 'left':\n setuserhandleposition(0, 'Bottom', target);\n break;\n case 'right':\n setuserhandleposition(1, 'Bottom', target);\n break;\n case 'topr':\n setuserhandleposition(0, 'Right', target);\n break;\n }\n }\n diagram.dataBind();\n };\n //Change the Appearence of the UserHandle\n document.getElementById('pattern').onclick = function (args) {\n var target = args.target;\n var patternBlock = document.getElementById('pattern');\n\n if (target.className === 'image-pattern-style') {\n switch (target.id) {\n case 'pattern1':\n applyuserhandlestyle('#1E90FF', target);\n break;\n case 'pattern2':\n applyuserhandlestyle('#3CB371', target);\n break;\n case 'pattern3':\n applyuserhandlestyle('#FF6347', target);\n break;\n }\n }\n diagram.dataBind();\n };\n\n\n\n\n"}
\ No newline at end of file
diff --git a/src/diagram/radial-tree-stack.json b/src/diagram/radial-tree-stack.json
index 6d9766d1..5882e73b 100644
--- a/src/diagram/radial-tree-stack.json
+++ b/src/diagram/radial-tree-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}\n/**\n * Sample for Radial tree\n */\nej.diagrams.Diagram.Inject(ej.diagrams.DataBinding, ej.diagrams.RadialTree);\n //based on the option, Click event to perform ZoomIn,ZoomOut and Reset.\n function onItemClick(args) {\n switch (args.item.text) {\n case 'Zoom In':\n var zoomin = { type: 'ZoomIn', zoomFactor: 0.2 };\n diagram.zoomTo(zoomin);\n break;\n case 'Zoom Out':\n var zoomout = { type: 'ZoomOut', zoomFactor: 0.2 };\n diagram.zoomTo(zoomout);\n break;\n case 'Reset':\n diagram.reset();\n diagram.fitToPage();\n break;\n }\n}\n\n //Initialize diagram control\n var diagram = new ej.diagrams.Diagram({\n width: '100%', height: '600px', snapSettings: { constraints: ej.diagrams.SnapConstraints.None },\n //configures data source settings\n dataSourceSettings: {\n id: 'Id', parentId: 'ReportingPerson',\n dataManager: new ej.data.DataManager(window.radialTree),\n //binds the data with the nodes\n doBinding: function (nodeModel, data, diagram) {\n nodeModel.annotations = [{\n content: data.Name,\n style: data.Id === 'parent' ? { color: 'white', fontSize: 50 } : { color: 'black', fontSize: 20 }\n }];\n nodeModel.constraints = ej.diagrams.NodeConstraints.Default & ~ej.diagrams.NodeConstraints.InheritTooltip | ej.diagrams.NodeConstraints.Tooltip;\n nodeModel.tooltip = {\n content: data.Name + ' ' + data.Designation, relativeMode: 'Object',\n position: 'TopCenter', showTipPointer: true\n };\n if (data.Designation === 'Managing Director') {\n nodeModel.width = 400;\n nodeModel.height = 400;\n nodeModel.shape = { shape: 'Ellipse' };\n nodeModel.style = { fill: 'black' };\n }\n else if (data.Designation === 'Project Manager') {\n nodeModel.width = 130;\n nodeModel.height = 130;\n nodeModel.style = { fill: '#f8ab52' };\n }\n else {\n nodeModel.width = 100;\n nodeModel.height = 100;\n nodeModel.shape = { shape: 'Ellipse' };\n nodeModel.style = { fill: '#afeeee' };\n }\n }\n },\n //Disables all interactions except zoom/pan\n tool: ej.diagrams.DiagramTools.ZoomPan,\n //Configures automatic layout\n layout: {\n type: 'RadialTree', verticalSpacing: 30, horizontalSpacing: 20,\n root: 'Category',\n },\n //Defines the default node and connector properties\n getNodeDefaults: function (obj, diagram) {\n return obj;\n }, getConnectorDefaults: function (connector, diagram) {\n connector.type = 'Straight';\n return connector;\n }\n });\n diagram.appendTo('#diagram');\n diagram.fitToPage();\n //create and add ZoomIn,ZoomOut and Reset options in ToolBar.\n var toolbarObj = new ej.navigations.Toolbar({\n clicked: onItemClick,\n items: [\n { type: 'Button', tooltipText: 'ZoomIn', text: 'Zoom In', prefixIcon: 'e-ddb-icons e-zoomin' }, { type: 'Separator' },\n { type: 'Button', tooltipText: 'ZoomOut', text: 'Zoom Out', prefixIcon: 'e-ddb-icons e-zoomout' }, { type: 'Separator' },\n { type: 'Button', tooltipText: 'Reset', text: 'Reset', prefixIcon: 'e-ddb-icons e-reset' }\n ]\n });\n\n toolbarObj.appendTo('#toolbar');\n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}\n/**\n * Sample for Radial tree\n */\nej.diagrams.Diagram.Inject(ej.diagrams.DataBinding, ej.diagrams.RadialTree);\n //based on the option, Click event to perform ZoomIn,ZoomOut and Reset.\n function onItemClick(args) {\n switch (args.item.text) {\n case 'Zoom In':\n var zoomin = { type: 'ZoomIn', zoomFactor: 0.2 };\n diagram.zoomTo(zoomin);\n break;\n case 'Zoom Out':\n var zoomout = { type: 'ZoomOut', zoomFactor: 0.2 };\n diagram.zoomTo(zoomout);\n break;\n case 'Reset':\n diagram.reset();\n diagram.fitToPage();\n break;\n }\n}\n\n //Initialize diagram control\n var diagram = new ej.diagrams.Diagram({\n width: '100%', height: '600px', snapSettings: { constraints: ej.diagrams.SnapConstraints.None },\n //configures data source settings\n dataSourceSettings: {\n id: 'Id', parentId: 'ReportingPerson',\n dataManager: new ej.data.DataManager(window.radialTree),\n //binds the data with the nodes\n doBinding: function (nodeModel, data, diagram) {\n nodeModel.annotations = [{\n content: data.Name,\n style: data.Id === 'parent' ? { color: 'white', fontSize: 50 } : { color: 'black', fontSize: 20 }\n }];\n nodeModel.constraints = ej.diagrams.NodeConstraints.Default & ~ej.diagrams.NodeConstraints.InheritTooltip | ej.diagrams.NodeConstraints.Tooltip;\n nodeModel.tooltip = {\n content: data.Name + ' ' + data.Designation, relativeMode: 'Object',\n position: 'TopCenter', showTipPointer: true\n };\n if (data.Designation === 'Managing Director') {\n nodeModel.width = 400;\n nodeModel.height = 400;\n nodeModel.shape = { shape: 'Ellipse' };\n nodeModel.style = { fill: 'black' };\n }\n else if (data.Designation === 'Project Manager') {\n nodeModel.width = 130;\n nodeModel.height = 130;\n nodeModel.style = { fill: '#f8ab52' };\n }\n else {\n nodeModel.width = 100;\n nodeModel.height = 100;\n nodeModel.shape = { shape: 'Ellipse' };\n nodeModel.style = { fill: '#afeeee' };\n }\n }\n },\n //Disables all interactions except zoom/pan\n tool: ej.diagrams.DiagramTools.ZoomPan,\n //Configures automatic layout\n layout: {\n type: 'RadialTree', verticalSpacing: 30, horizontalSpacing: 20,\n root: 'Category',\n },\n //Defines the default node and connector properties\n getNodeDefaults: function (obj, diagram) {\n return obj;\n }, getConnectorDefaults: function (connector, diagram) {\n connector.type = 'Straight';\n return connector;\n }\n });\n diagram.appendTo('#diagram');\n diagram.fitToPage();\n //create and add ZoomIn,ZoomOut and Reset options in ToolBar.\n var toolbarObj = new ej.navigations.Toolbar({\n clicked: onItemClick,\n items: [\n { type: 'Button', tooltipText: 'ZoomIn', text: 'Zoom In', prefixIcon: 'e-ddb-icons e-zoomin' }, { type: 'Separator' },\n { type: 'Button', tooltipText: 'ZoomOut', text: 'Zoom Out', prefixIcon: 'e-ddb-icons e-zoomout' }, { type: 'Separator' },\n { type: 'Button', tooltipText: 'Reset', text: 'Reset', prefixIcon: 'e-ddb-icons e-reset' }\n ]\n });\n\n toolbarObj.appendTo('#toolbar');\n"}
\ No newline at end of file
diff --git a/src/diagram/remote-data-stack.json b/src/diagram/remote-data-stack.json
index 96078ec1..fc591dd1 100644
--- a/src/diagram/remote-data-stack.json
+++ b/src/diagram/remote-data-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}/**\n * Remote Data binding sample\n */\nej.diagrams.Diagram.Inject(ej.diagrams.DataBinding, ej.diagrams.HierarchicalTree);\n\n //Initializes diagram control\n var diagram = new ej.diagrams.Diagram({\n width: '100%', height: 490,\n //Configrues hierarchical tree layout\n layout: {\n type: 'HierarchicalTree', margin: { left: 0, right: 0, top: 100, bottom: 0 },\n verticalSpacing: 40,\n getLayoutInfo: function (node, options) {\n if (options.level === 3) {\n node.style.fill = '#3c418d';\n }\n if (options.level === 2) {\n node.style.fill = '#108d8d';\n options.type = 'Center';\n options.orientation = 'Horizontal';\n }\n if (options.level === 1) {\n node.style.fill = '#822b86';\n }\n }\n },\n //Sets the default values of nodes\n getNodeDefaults: function (obj) {\n obj.width = 80;\n obj.height = 40;\n obj.shape = { type: 'Basic', shape: 'Rectangle' };\n obj.style = { fill: '#048785', strokeColor: 'Transparent' };\n return obj;\n },\n //Sets the default values of connector\n getConnectorDefaults: function (connector) {\n connector.type = 'Orthogonal';\n connector.style.strokeColor = '#048785';\n connector.targetDecorator.shape = 'None';\n return connector;\n },\n //Configures data source\n dataSourceSettings: {\n id: 'EmployeeID', parentId: 'ReportsTo',\n dataManager: new ej.data.DataManager(\n { url: 'https://mvc.syncfusion.com/Services/Northwnd.svc/', crossDomain: true },\n new ej.data.Query().from('Employees').select('EmployeeID,ReportsTo,FirstName').take(9)\n ),\n //binds the external data with node\n doBinding: function (nodeModel, data, diagram) {\n nodeModel.annotations = [{\n content: data.FirstName,\n style: { color: 'white' }\n }];\n }\n },\n //Disables all interactions except zoom/pan\n tool: ej.diagrams.DiagramTools.ZoomPan,\n snapSettings: { constraints: 0 }\n });\n diagram.appendTo('#diagram');\n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}/**\n * Remote Data binding sample\n */\nej.diagrams.Diagram.Inject(ej.diagrams.DataBinding, ej.diagrams.HierarchicalTree);\n\n //Initializes diagram control\n var diagram = new ej.diagrams.Diagram({\n width: '100%', height: 490,\n //Configrues hierarchical tree layout\n layout: {\n type: 'HierarchicalTree', margin: { left: 0, right: 0, top: 100, bottom: 0 },\n verticalSpacing: 40,\n getLayoutInfo: function (node, options) {\n if (options.level === 3) {\n node.style.fill = '#3c418d';\n }\n if (options.level === 2) {\n node.style.fill = '#108d8d';\n options.type = 'Center';\n options.orientation = 'Horizontal';\n }\n if (options.level === 1) {\n node.style.fill = '#822b86';\n }\n }\n },\n //Sets the default values of nodes\n getNodeDefaults: function (obj) {\n obj.width = 80;\n obj.height = 40;\n obj.shape = { type: 'Basic', shape: 'Rectangle' };\n obj.style = { fill: '#048785', strokeColor: 'Transparent' };\n return obj;\n },\n //Sets the default values of connector\n getConnectorDefaults: function (connector) {\n connector.type = 'Orthogonal';\n connector.style.strokeColor = '#048785';\n connector.targetDecorator.shape = 'None';\n return connector;\n },\n //Configures data source\n dataSourceSettings: {\n id: 'EmployeeID', parentId: 'ReportsTo',\n dataManager: new ej.data.DataManager(\n { url: 'https://mvc.syncfusion.com/Services/Northwnd.svc/', crossDomain: true },\n new ej.data.Query().from('Employees').select('EmployeeID,ReportsTo,FirstName').take(9)\n ),\n //binds the external data with node\n doBinding: function (nodeModel, data, diagram) {\n nodeModel.annotations = [{\n content: data.FirstName,\n style: { color: 'white' }\n }];\n }\n },\n //Disables all interactions except zoom/pan\n tool: ej.diagrams.DiagramTools.ZoomPan,\n snapSettings: { constraints: 0 }\n });\n diagram.appendTo('#diagram');\n"}
\ No newline at end of file
diff --git a/src/diagram/right-to-left-tree-stack.json b/src/diagram/right-to-left-tree-stack.json
index fcd7c64e..7e4f5b5a 100644
--- a/src/diagram/right-to-left-tree-stack.json
+++ b/src/diagram/right-to-left-tree-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}/**\n * Sample for RTL tree\n */\nej.diagrams.Diagram.Inject(ej.diagrams.DataBinding, ej.diagrams.HierarchicalTree);\n //Create and add ports for Node.\n function getPorts(root) {\n var ports = [\n {\n id: 'port1', shape: 'Circle', offset: { x: 0, y: 0.5 }, horizontalAlignment: 'Left',\n verticalAlignment: 'Bottom', margin: { right: -2, bottom: -5.5 }\n },\n {\n id: 'port2', shape: 'Circle', offset: { x: 1, y: 0.99 }, horizontalAlignment: 'Right',\n verticalAlignment: 'Bottom', margin: { right: -2, bottom: -5.5 }\n }\n ];\n if (!root) {\n ports[0].offset.y = 1;\n }\n else {\n ports[0].verticalAlignment = 'Center';\n ports[0].horizontalAlignment = 'Center';\n }\n return ports;\n}\n\n //Initializes diagram control\n var diagram = new ej.diagrams.Diagram({\n width: '100%', height: '600px', snapSettings: { constraints: ej.diagrams.SnapConstraints.None },\n //Configure the data source\n dataSourceSettings: {\n id: 'Name', parentId: 'Category',\n dataManager: new ej.data.DataManager(window.artificialIntelligence),\n doBinding: function (nodeModel, data, diagram) {\n var nameKey = 'Name';\n nodeModel.annotations = [{ content: data[nameKey] }];\n }\n },\n //Configures the layout\n layout: {\n type: 'HierarchicalTree', orientation: 'RightToLeft',\n verticalAlignment: 'Center', horizontalAlignment: 'Center', verticalSpacing: 100,\n horizontalSpacing: -10\n },\n //Enables zoom pan tool \n tool: ej.diagrams.DiagramTools.ZoomPan,\n //Sets the default values of a Node\n getNodeDefaults: function (obj, diagram) {\n obj.width = 120;\n obj.style = { fill: '#034d6d', strokeWidth: 1 };\n var key = 'branch';\n //set the shape of the Node.\n if (obj.data[key] === 'root') {\n obj.shape = { type: 'Basic', shape: 'Ellipse' };\n obj.height = 120;\n }\n else {\n obj.shape = {\n type: 'Native',\n content: ' ' +\n ' '\n };\n obj.style.strokeWidth = 0;\n obj.height = 60;\n }\n //Set ports and annotations\n obj.ports = getPorts(obj.data[key] === 'root');\n var annotation = obj.annotations[0];\n if (obj.data[key] !== 'root') {\n annotation.offset = { y: 1 };\n annotation.verticalAlignment = 'Bottom';\n annotation.margin = { bottom: 10 };\n }\n else {\n annotation.style = { color: 'white' };\n }\n return obj;\n },\n //Sets the default values of a Connector\n getConnectorDefaults: function (connector, diagram) {\n connector.type = 'Bezier';\n connector.sourcePortID = 'port1';\n connector.targetPortID = 'port2';\n connector.targetDecorator = { shape: 'None' };\n return connector;\n },\n });\n diagram.appendTo('#diagram');\n \n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}/**\n * Sample for RTL tree\n */\nej.diagrams.Diagram.Inject(ej.diagrams.DataBinding, ej.diagrams.HierarchicalTree);\n //Create and add ports for Node.\n function getPorts(root) {\n var ports = [\n {\n id: 'port1', shape: 'Circle', offset: { x: 0, y: 0.5 }, horizontalAlignment: 'Left',\n verticalAlignment: 'Bottom', margin: { right: -2, bottom: -5.5 }\n },\n {\n id: 'port2', shape: 'Circle', offset: { x: 1, y: 0.99 }, horizontalAlignment: 'Right',\n verticalAlignment: 'Bottom', margin: { right: -2, bottom: -5.5 }\n }\n ];\n if (!root) {\n ports[0].offset.y = 1;\n }\n else {\n ports[0].verticalAlignment = 'Center';\n ports[0].horizontalAlignment = 'Center';\n }\n return ports;\n}\n\n //Initializes diagram control\n var diagram = new ej.diagrams.Diagram({\n width: '100%', height: '600px', snapSettings: { constraints: ej.diagrams.SnapConstraints.None },\n //Configure the data source\n dataSourceSettings: {\n id: 'Name', parentId: 'Category',\n dataManager: new ej.data.DataManager(window.artificialIntelligence),\n doBinding: function (nodeModel, data, diagram) {\n var nameKey = 'Name';\n nodeModel.annotations = [{ content: data[nameKey] }];\n }\n },\n //Configures the layout\n layout: {\n type: 'HierarchicalTree', orientation: 'RightToLeft',\n verticalAlignment: 'Center', horizontalAlignment: 'Center', verticalSpacing: 100,\n horizontalSpacing: -10\n },\n //Enables zoom pan tool \n tool: ej.diagrams.DiagramTools.ZoomPan,\n //Sets the default values of a Node\n getNodeDefaults: function (obj, diagram) {\n obj.width = 120;\n obj.style = { fill: '#034d6d', strokeWidth: 1 };\n var key = 'branch';\n //set the shape of the Node.\n if (obj.data[key] === 'root') {\n obj.shape = { type: 'Basic', shape: 'Ellipse' };\n obj.height = 120;\n }\n else {\n obj.shape = {\n type: 'Native',\n content: ' ' +\n ' '\n };\n obj.style.strokeWidth = 0;\n obj.height = 60;\n }\n //Set ports and annotations\n obj.ports = getPorts(obj.data[key] === 'root');\n var annotation = obj.annotations[0];\n if (obj.data[key] !== 'root') {\n annotation.offset = { y: 1 };\n annotation.verticalAlignment = 'Bottom';\n annotation.margin = { bottom: 10 };\n }\n else {\n annotation.style = { color: 'white' };\n }\n return obj;\n },\n //Sets the default values of a Connector\n getConnectorDefaults: function (connector, diagram) {\n connector.type = 'Bezier';\n connector.sourcePortID = 'port1';\n connector.targetPortID = 'port2';\n connector.targetDecorator = { shape: 'None' };\n return connector;\n },\n });\n diagram.appendTo('#diagram');\n \n"}
\ No newline at end of file
diff --git a/src/diagram/serialization-stack.json b/src/diagram/serialization-stack.json
index e40062ec..d009bb67 100644
--- a/src/diagram/serialization-stack.json
+++ b/src/diagram/serialization-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}/**\n * Serialization sample\n */\nej.diagrams.Diagram.Inject(ej.diagrams.UndoRedo);\n\nfunction onUploadSuccess(args) {\n var file1 = args.file;\n var file = file1.rawFile;\n var reader = new FileReader();\n reader.readAsText(file);\n reader.onloadend = loadDiagram;\n}\n//Load the diagraming object.\nfunction loadDiagram(event) {\n diagram.loadDiagram(event.target.result);\n}\n\n//save the diagram object in json data.\nfunction download(data) {\n if (window.navigator.msSaveBlob) {\n var blob = new Blob([data], { type: 'data:text/json;charset=utf-8,' });\n window.navigator.msSaveOrOpenBlob(blob, 'Diagram.json');\n }\n else {\n var dataStr = 'data:text/json;charset=utf-8,' + encodeURIComponent(data);\n var a = document.createElement('a');\n a.href = dataStr;\n a.download = 'Diagram.json';\n document.body.appendChild(a);\n a.click();\n a.remove();\n }\n}\n//create and add ports for Node.\nfunction getPorts(obj) {\n var ports = [\n { id: 'port1', shape: 'Circle', offset: { x: 0, y: 0.5 } },\n { id: 'port2', shape: 'Circle', offset: { x: 0.5, y: 1 } },\n { id: 'port3', shape: 'Circle', offset: { x: 1, y: 0.5 } },\n { id: 'port4', shape: 'Circle', offset: { x: 0.5, y: 0 } }\n ];\n var additionalports = [{ id: 'port2', shape: 'Circle', offset: { x: 0.5, y: 1 } },\n { id: 'port4', shape: 'Circle', offset: { x: 0.5, y: 0 } }];\n if (obj.id === 'Data') {\n return additionalports;\n }\n else {\n return ports;\n }\n}\n\nfunction openPalette() {\n var paletteSpace = document.getElementById('palette-space');\n var isMobile = window.matchMedia('(max-width:550px)').matches;\n if (isMobile) {\n if (!paletteSpace.classList.contains('sb-mobile-palette-open')) {\n paletteSpace.classList.add('sb-mobile-palette-open');\n }\n else {\n paletteSpace.classList.remove('sb-mobile-palette-open');\n }\n }\n}\n\n //Initializes the nodes for the diagram\n var nodes = [\n {\n id: 'Start', height: 50, width: 100, offsetX: 250, offsetY: 60,\n shape: { type: 'Flow', shape: 'Terminator' },\n annotations: [{\n content: 'Start'\n }],\n style: { fill: '#d0f0f1', strokeColor: '#797979' }\n }, {\n id: 'Alarm', height: 50, width: 100, offsetX: 250, offsetY: 160,\n shape: { type: 'Flow', shape: 'Process' },\n annotations: [{\n content: 'Alarm Rings'\n }],\n style: { fill: '#fbfdc5', strokeColor: '#797979' }\n }, {\n id: 'Ready', height: 80, width: 100, offsetX: 250, offsetY: 260,\n shape: { type: 'Flow', shape: 'Decision' },\n annotations: [{\n content: 'Ready to Get Up?'\n }],\n style: { fill: '#c5efaf', strokeColor: '#797979' }\n }, {\n id: 'Climb', height: 50, width: 100, offsetX: 250, offsetY: 370,\n shape: { type: 'Flow', shape: 'Process' },\n annotations: [{\n content: 'Climb Out of Bed'\n }],\n style: { fill: '#fbfdc5', strokeColor: '#797979' }\n }, {\n id: 'End', height: 50, width: 100, offsetX: 250, offsetY: 460,\n shape: { type: 'Flow', shape: 'Terminator' },\n annotations: [{\n content: 'End'\n }],\n style: { fill: '#d0f0f1', strokeColor: '#797979' }\n }, {\n id: 'Relay', height: 50, width: 100, offsetX: 450, offsetY: 160,\n shape: { type: 'Flow', shape: 'Delay' },\n annotations: [{\n content: 'Relay'\n }],\n style: { fill: '#f8eee5', strokeColor: '#797979' }\n }, {\n id: 'Hit', height: 50, width: 100, offsetX: 450, offsetY: 260,\n shape: { type: 'Flow', shape: 'Process' },\n annotations: [{\n content: 'Hit Snooze Button'\n }],\n style: { fill: '#fbfdc5', strokeColor: '#797979' }\n }];\n //Initializes the connector for the diagram\n var connectors = [\n {\n id: 'connector1', sourceID: 'Start', targetID: 'Alarm'\n },\n { id: 'connector2', sourceID: 'Alarm', targetID: 'Ready' },\n {\n id: 'connector3', sourceID: 'Ready', targetID: 'Climb',\n annotations: [{ content: 'Yes', style: { fill: 'white' } }]\n },\n { id: 'connector4', sourceID: 'Climb', targetID: 'End', },\n {\n id: 'connector5', sourceID: 'Ready', targetID: 'Hit',\n annotations: [{ content: 'No', style: { fill: 'white' } }]\n },\n { id: 'connector6', sourceID: 'Hit', targetID: 'Relay' },\n { id: 'connector7', sourceID: 'Relay', targetID: 'Alarm' }];\n var lineinterval;\n lineinterval = [1, 9, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75];\n var gridlines = { lineColor: '#e0e0e0', lineIntervals: lineinterval };\n //Initializes diagram control\n var diagram = new ej.diagrams.Diagram({\n width: '100%', height: '645px',\n nodes: nodes,\n connectors: connectors,\n snapSettings: { horizontalGridlines: gridlines, verticalGridlines: gridlines },\n //set default value for Connectors.\n getConnectorDefaults: function (args) {\n args.targetDecorator.height = 5;\n args.targetDecorator.width = 5;\n args.style.strokeColor = '#797979';\n args.targetDecorator.style = { fill: '#797979', strokeColor: '#797979' };\n return args;\n },\n //Sets the Node style for DragEnter element.\n dragEnter: function (args) {\n var obj = args.element;\n if (obj instanceof ej.diagrams.Node) {\n var ratio = 100 / obj.width;\n obj.width = 100;\n obj.height *= ratio;\n }\n }\n });\n diagram.appendTo('#diagram');\n //Initialize the flowshapes for the symbol palatte\n var flowshapes = [\n { id: 'Terminator', shape: { type: 'Flow', shape: 'Terminator' } },\n { id: 'Process', shape: { type: 'Flow', shape: 'Process' } },\n { id: 'Decision', shape: { type: 'Flow', shape: 'Decision' } },\n { id: 'Document', shape: { type: 'Flow', shape: 'Document' } },\n { id: 'PreDefinedProcess', shape: { type: 'Flow', shape: 'PreDefinedProcess' } },\n { id: 'PaperTap', shape: { type: 'Flow', shape: 'PaperTap' } },\n { id: 'DirectData', shape: { type: 'Flow', shape: 'DirectData' } },\n { id: 'SequentialData', shape: { type: 'Flow', shape: 'SequentialData' } },\n { id: 'Sort', shape: { type: 'Flow', shape: 'Sort' } },\n { id: 'MultiDocument', shape: { type: 'Flow', shape: 'MultiDocument' } },\n { id: 'Collate', shape: { type: 'Flow', shape: 'Collate' } },\n { id: 'SummingJunction', shape: { type: 'Flow', shape: 'SummingJunction' } },\n { id: 'Or', shape: { type: 'Flow', shape: 'Or' } },\n { id: 'InternalStorage', shape: { type: 'Flow', shape: 'InternalStorage' } },\n { id: 'Extract', shape: { type: 'Flow', shape: 'Extract' } },\n { id: 'ManualOperation', shape: { type: 'Flow', shape: 'ManualOperation' } },\n { id: 'Merge', shape: { type: 'Flow', shape: 'Merge' } },\n { id: 'OffPageReference', shape: { type: 'Flow', shape: 'OffPageReference' } },\n { id: 'SequentialAccessStorage', shape: { type: 'Flow', shape: 'SequentialAccessStorage' } },\n { id: 'Annotation', shape: { type: 'Flow', shape: 'Annotation' } },\n { id: 'Annotation2', shape: { type: 'Flow', shape: 'Annotation2' } },\n { id: 'data', shape: { type: 'Flow', shape: 'Data' } },\n { id: 'Card', shape: { type: 'Flow', shape: 'Card' } },\n { id: 'Delay', shape: { type: 'Flow', shape: 'Delay' } },\n ];\n //Initializes connector symbols for the symbol palette\n var connectorSymbols = [\n {\n id: 'Link1', type: 'Orthogonal', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 40, y: 40 },\n targetDecorator: { shape: 'Arrow' }, style: { strokeWidth: 2 }\n },\n {\n id: 'link2', type: 'Orthogonal', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 40, y: 40 },\n style: { strokeWidth: 2 }, targetDecorator: { shape: 'None' }\n },\n {\n id: 'Link3', type: 'Straight', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 40, y: 40 },\n targetDecorator: { shape: 'Arrow' }, style: { strokeWidth: 2 }\n },\n {\n id: 'link4', type: 'Straight', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 40, y: 40 },\n style: { strokeWidth: 2 }, targetDecorator: { shape: 'None' }\n },\n {\n id: 'link5', type: 'Bezier', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 40, y: 40 },\n style: { strokeWidth: 2 }, targetDecorator: { shape: 'None' }\n },\n ];\n //Initializes ToolBar control to invoke save and load the diagram\n var toolbarObj = new ej.navigations.Toolbar({\n clicked: function (args) {\n if (args.item.text === 'New') {\n diagram.clear();\n }\n else if (args.item.text === 'Load') {\n document.getElementsByClassName('e-file-select-wrap')[0].querySelector('button').click();\n } else if (args.item.id === 'palette-icon') {\n openPalette();\n } else {\n download(diagram.saveDiagram());\n }\n },\n items: [\n { id: 'palette-icon', prefixIcon: 'e-ddb-icons2 e-toggle-palette', align: 'Right' },\n { text: 'New', tooltipText: 'New', prefixIcon: 'e-ddb-icons e-new' },\n { type: 'Separator' }, { text: 'Save', tooltipText: 'Save', prefixIcon: 'e-ddb-icons e-save' },\n { type: 'Separator' }, { text: 'Load', tooltipText: 'Load', prefixIcon: 'e-ddb-icons e-open' }\n ]\n });\n toolbarObj.appendTo('#toolbar');\n //Initializes the symbol palette\n var palette = new ej.diagrams.SymbolPalette({\n expandMode: 'Multiple',\n palettes: [\n { id: 'flow', expanded: true, symbols: flowshapes, iconCss: 'e-ddb-icons1 e-flow', title: 'Flow Shapes' },\n { id: 'connectors', expanded: true, symbols: connectorSymbols, iconCss: 'e-ddb-icons1 e-connector', title: 'Connectors' }\n ],\n //set default value for Node.\n getNodeDefaults: function (symbol) {\n if (symbol.id === 'Terminator' || symbol.id === 'Process' || symbol.id === 'Delay') {\n symbol.width = 80;\n symbol.height = 40;\n }\n else if (symbol.id === 'Decision' || symbol.id === 'Document' || symbol.id === 'PreDefinedProcess' ||\n symbol.id === 'PaperTap' || symbol.id === 'DirectData' || symbol.id === 'MultiDocument' || symbol.id === 'Data') {\n symbol.width = 50;\n symbol.height = 40;\n } else {\n symbol.width = 50;\n symbol.height = 50;\n }\n\n symbol.style.strokeWidth = 2;\n },\n symbolMargin: { left: 15, right: 15, top: 15, bottom: 15 },\n getSymbolInfo: function (symbol) {\n return { fit: true };\n },\n width: '100%', height: '645px', symbolHeight: 60, symbolWidth: 60,\n });\n palette.appendTo('#symbolpalette');\n var uploadObj = new ej.inputs.Uploader({\n asyncSettings: {\n saveUrl: 'https://aspnetmvc.syncfusion.com/services/api/uploadbox/Save',\n removeUrl: 'https://aspnetmvc.syncfusion.com/services/api/uploadbox/Remove'\n },\n success: onUploadSuccess\n });\n uploadObj.appendTo('#fileupload');\n\n\n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}/**\n * Serialization sample\n */\nej.diagrams.Diagram.Inject(ej.diagrams.UndoRedo);\n\nfunction onUploadSuccess(args) {\n var file1 = args.file;\n var file = file1.rawFile;\n var reader = new FileReader();\n reader.readAsText(file);\n reader.onloadend = loadDiagram;\n}\n//Load the diagraming object.\nfunction loadDiagram(event) {\n diagram.loadDiagram(event.target.result);\n}\n\n//save the diagram object in json data.\nfunction download(data) {\n if (window.navigator.msSaveBlob) {\n var blob = new Blob([data], { type: 'data:text/json;charset=utf-8,' });\n window.navigator.msSaveOrOpenBlob(blob, 'Diagram.json');\n }\n else {\n var dataStr = 'data:text/json;charset=utf-8,' + encodeURIComponent(data);\n var a = document.createElement('a');\n a.href = dataStr;\n a.download = 'Diagram.json';\n document.body.appendChild(a);\n a.click();\n a.remove();\n }\n}\n//create and add ports for Node.\nfunction getPorts(obj) {\n var ports = [\n { id: 'port1', shape: 'Circle', offset: { x: 0, y: 0.5 } },\n { id: 'port2', shape: 'Circle', offset: { x: 0.5, y: 1 } },\n { id: 'port3', shape: 'Circle', offset: { x: 1, y: 0.5 } },\n { id: 'port4', shape: 'Circle', offset: { x: 0.5, y: 0 } }\n ];\n var additionalports = [{ id: 'port2', shape: 'Circle', offset: { x: 0.5, y: 1 } },\n { id: 'port4', shape: 'Circle', offset: { x: 0.5, y: 0 } }];\n if (obj.id === 'Data') {\n return additionalports;\n }\n else {\n return ports;\n }\n}\n\nfunction openPalette() {\n var paletteSpace = document.getElementById('palette-space');\n var isMobile = window.matchMedia('(max-width:550px)').matches;\n if (isMobile) {\n if (!paletteSpace.classList.contains('sb-mobile-palette-open')) {\n paletteSpace.classList.add('sb-mobile-palette-open');\n }\n else {\n paletteSpace.classList.remove('sb-mobile-palette-open');\n }\n }\n}\n\n //Initializes the nodes for the diagram\n var nodes = [\n {\n id: 'Start', height: 50, width: 100, offsetX: 250, offsetY: 60,\n shape: { type: 'Flow', shape: 'Terminator' },\n annotations: [{\n content: 'Start'\n }],\n style: { fill: '#d0f0f1', strokeColor: '#797979' }\n }, {\n id: 'Alarm', height: 50, width: 100, offsetX: 250, offsetY: 160,\n shape: { type: 'Flow', shape: 'Process' },\n annotations: [{\n content: 'Alarm Rings'\n }],\n style: { fill: '#fbfdc5', strokeColor: '#797979' }\n }, {\n id: 'Ready', height: 80, width: 100, offsetX: 250, offsetY: 260,\n shape: { type: 'Flow', shape: 'Decision' },\n annotations: [{\n content: 'Ready to Get Up?'\n }],\n style: { fill: '#c5efaf', strokeColor: '#797979' }\n }, {\n id: 'Climb', height: 50, width: 100, offsetX: 250, offsetY: 370,\n shape: { type: 'Flow', shape: 'Process' },\n annotations: [{\n content: 'Climb Out of Bed'\n }],\n style: { fill: '#fbfdc5', strokeColor: '#797979' }\n }, {\n id: 'End', height: 50, width: 100, offsetX: 250, offsetY: 460,\n shape: { type: 'Flow', shape: 'Terminator' },\n annotations: [{\n content: 'End'\n }],\n style: { fill: '#d0f0f1', strokeColor: '#797979' }\n }, {\n id: 'Relay', height: 50, width: 100, offsetX: 450, offsetY: 160,\n shape: { type: 'Flow', shape: 'Delay' },\n annotations: [{\n content: 'Relay'\n }],\n style: { fill: '#f8eee5', strokeColor: '#797979' }\n }, {\n id: 'Hit', height: 50, width: 100, offsetX: 450, offsetY: 260,\n shape: { type: 'Flow', shape: 'Process' },\n annotations: [{\n content: 'Hit Snooze Button'\n }],\n style: { fill: '#fbfdc5', strokeColor: '#797979' }\n }];\n //Initializes the connector for the diagram\n var connectors = [\n {\n id: 'connector1', sourceID: 'Start', targetID: 'Alarm'\n },\n { id: 'connector2', sourceID: 'Alarm', targetID: 'Ready' },\n {\n id: 'connector3', sourceID: 'Ready', targetID: 'Climb',\n annotations: [{ content: 'Yes', style: { fill: 'white' } }]\n },\n { id: 'connector4', sourceID: 'Climb', targetID: 'End', },\n {\n id: 'connector5', sourceID: 'Ready', targetID: 'Hit',\n annotations: [{ content: 'No', style: { fill: 'white' } }]\n },\n { id: 'connector6', sourceID: 'Hit', targetID: 'Relay' },\n { id: 'connector7', sourceID: 'Relay', targetID: 'Alarm' }];\n var lineinterval;\n lineinterval = [1, 9, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75];\n var gridlines = { lineColor: '#e0e0e0', lineIntervals: lineinterval };\n //Initializes diagram control\n var diagram = new ej.diagrams.Diagram({\n width: '100%', height: '645px',\n nodes: nodes,\n connectors: connectors,\n snapSettings: { horizontalGridlines: gridlines, verticalGridlines: gridlines },\n //set default value for Connectors.\n getConnectorDefaults: function (args) {\n args.targetDecorator.height = 5;\n args.targetDecorator.width = 5;\n args.style.strokeColor = '#797979';\n args.targetDecorator.style = { fill: '#797979', strokeColor: '#797979' };\n return args;\n },\n //Sets the Node style for DragEnter element.\n dragEnter: function (args) {\n var obj = args.element;\n if (obj instanceof ej.diagrams.Node) {\n var ratio = 100 / obj.width;\n obj.width = 100;\n obj.height *= ratio;\n }\n }\n });\n diagram.appendTo('#diagram');\n //Initialize the flowshapes for the symbol palatte\n var flowshapes = [\n { id: 'Terminator', shape: { type: 'Flow', shape: 'Terminator' } },\n { id: 'Process', shape: { type: 'Flow', shape: 'Process' } },\n { id: 'Decision', shape: { type: 'Flow', shape: 'Decision' } },\n { id: 'Document', shape: { type: 'Flow', shape: 'Document' } },\n { id: 'PreDefinedProcess', shape: { type: 'Flow', shape: 'PreDefinedProcess' } },\n { id: 'PaperTap', shape: { type: 'Flow', shape: 'PaperTap' } },\n { id: 'DirectData', shape: { type: 'Flow', shape: 'DirectData' } },\n { id: 'SequentialData', shape: { type: 'Flow', shape: 'SequentialData' } },\n { id: 'Sort', shape: { type: 'Flow', shape: 'Sort' } },\n { id: 'MultiDocument', shape: { type: 'Flow', shape: 'MultiDocument' } },\n { id: 'Collate', shape: { type: 'Flow', shape: 'Collate' } },\n { id: 'SummingJunction', shape: { type: 'Flow', shape: 'SummingJunction' } },\n { id: 'Or', shape: { type: 'Flow', shape: 'Or' } },\n { id: 'InternalStorage', shape: { type: 'Flow', shape: 'InternalStorage' } },\n { id: 'Extract', shape: { type: 'Flow', shape: 'Extract' } },\n { id: 'ManualOperation', shape: { type: 'Flow', shape: 'ManualOperation' } },\n { id: 'Merge', shape: { type: 'Flow', shape: 'Merge' } },\n { id: 'OffPageReference', shape: { type: 'Flow', shape: 'OffPageReference' } },\n { id: 'SequentialAccessStorage', shape: { type: 'Flow', shape: 'SequentialAccessStorage' } },\n { id: 'Annotation', shape: { type: 'Flow', shape: 'Annotation' } },\n { id: 'Annotation2', shape: { type: 'Flow', shape: 'Annotation2' } },\n { id: 'data', shape: { type: 'Flow', shape: 'Data' } },\n { id: 'Card', shape: { type: 'Flow', shape: 'Card' } },\n { id: 'Delay', shape: { type: 'Flow', shape: 'Delay' } },\n ];\n //Initializes connector symbols for the symbol palette\n var connectorSymbols = [\n {\n id: 'Link1', type: 'Orthogonal', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 40, y: 40 },\n targetDecorator: { shape: 'Arrow' }, style: { strokeWidth: 2 }\n },\n {\n id: 'link2', type: 'Orthogonal', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 40, y: 40 },\n style: { strokeWidth: 2 }, targetDecorator: { shape: 'None' }\n },\n {\n id: 'Link3', type: 'Straight', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 40, y: 40 },\n targetDecorator: { shape: 'Arrow' }, style: { strokeWidth: 2 }\n },\n {\n id: 'link4', type: 'Straight', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 40, y: 40 },\n style: { strokeWidth: 2 }, targetDecorator: { shape: 'None' }\n },\n {\n id: 'link5', type: 'Bezier', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 40, y: 40 },\n style: { strokeWidth: 2 }, targetDecorator: { shape: 'None' }\n },\n ];\n //Initializes ToolBar control to invoke save and load the diagram\n var toolbarObj = new ej.navigations.Toolbar({\n clicked: function (args) {\n if (args.item.text === 'New') {\n diagram.clear();\n }\n else if (args.item.text === 'Load') {\n document.getElementsByClassName('e-file-select-wrap')[0].querySelector('button').click();\n } else if (args.item.id === 'palette-icon') {\n openPalette();\n } else {\n download(diagram.saveDiagram());\n }\n },\n items: [\n { id: 'palette-icon', prefixIcon: 'e-ddb-icons2 e-toggle-palette', align: 'Right' },\n { text: 'New', tooltipText: 'New', prefixIcon: 'e-ddb-icons e-new' },\n { type: 'Separator' }, { text: 'Save', tooltipText: 'Save', prefixIcon: 'e-ddb-icons e-save' },\n { type: 'Separator' }, { text: 'Load', tooltipText: 'Load', prefixIcon: 'e-ddb-icons e-open' }\n ]\n });\n toolbarObj.appendTo('#toolbar');\n //Initializes the symbol palette\n var palette = new ej.diagrams.SymbolPalette({\n expandMode: 'Multiple',\n palettes: [\n { id: 'flow', expanded: true, symbols: flowshapes, iconCss: 'e-ddb-icons1 e-flow', title: 'Flow Shapes' },\n { id: 'connectors', expanded: true, symbols: connectorSymbols, iconCss: 'e-ddb-icons1 e-connector', title: 'Connectors' }\n ],\n //set default value for Node.\n getNodeDefaults: function (symbol) {\n if (symbol.id === 'Terminator' || symbol.id === 'Process' || symbol.id === 'Delay') {\n symbol.width = 80;\n symbol.height = 40;\n }\n else if (symbol.id === 'Decision' || symbol.id === 'Document' || symbol.id === 'PreDefinedProcess' ||\n symbol.id === 'PaperTap' || symbol.id === 'DirectData' || symbol.id === 'MultiDocument' || symbol.id === 'Data') {\n symbol.width = 50;\n symbol.height = 40;\n } else {\n symbol.width = 50;\n symbol.height = 50;\n }\n\n symbol.style.strokeWidth = 2;\n },\n symbolMargin: { left: 15, right: 15, top: 15, bottom: 15 },\n getSymbolInfo: function (symbol) {\n return { fit: true };\n },\n width: '100%', height: '645px', symbolHeight: 60, symbolWidth: 60,\n });\n palette.appendTo('#symbolpalette');\n var uploadObj = new ej.inputs.Uploader({\n asyncSettings: {\n saveUrl: 'https://aspnetmvc.syncfusion.com/services/api/uploadbox/Save',\n removeUrl: 'https://aspnetmvc.syncfusion.com/services/api/uploadbox/Remove'\n },\n success: onUploadSuccess\n });\n uploadObj.appendTo('#fileupload');\n\n\n"}
\ No newline at end of file
diff --git a/src/diagram/shape-gallery-stack.json b/src/diagram/shape-gallery-stack.json
index 38235a42..9a03fa64 100644
--- a/src/diagram/shape-gallery-stack.json
+++ b/src/diagram/shape-gallery-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}ej.diagrams.Diagram.Inject(ej.diagrams.DataBinding, ej.diagrams.BpmnDiagrams);\nvar basicShapeModel = [\n {\n shape: { type: 'Text', content: 'Basic Shapes' }, constraints: ej.diagrams.NodeConstraints.PointerEvents,\n style: { fontSize: 16, fill: 'None', fontFamily: 'sans-serif', bold: true, strokeWidth: 0 },\n },\n {\n shape: { type: 'Basic', shape: 'Rectangle' }, annotations: [\n { content: 'Rectangle' }\n ]\n },\n {\n shape: { type: 'Basic', shape: 'Ellipse' }, annotations: [\n { content: 'Ellipse' }\n ]\n },\n {\n shape: { type: 'Basic', shape: 'Triangle' }, annotations: [\n { content: 'Triangle' }\n ]\n },\n {\n shape: { type: 'Basic', shape: 'Plus' }, annotations: [\n { content: 'Plus' }\n ]\n },\n {\n shape: { type: 'Basic', shape: 'Star' }, annotations: [\n { content: 'Star' }\n ]\n },\n {\n shape: { type: 'Basic', shape: 'Pentagon' }, annotations: [\n { content: 'Pentagon' }\n ]\n },\n {\n shape: { type: 'Basic', shape: 'Heptagon' }, annotations: [\n { content: 'Heptagon' }\n ]\n },\n {\n shape: { type: 'Basic', shape: 'Octagon' }, annotations: [\n { content: 'Octagon' }\n ]\n },\n {\n shape: { type: 'Basic', shape: 'Trapezoid' }, annotations: [\n { content: 'Trapezoid' }\n ]\n },\n {\n shape: { type: 'Basic', shape: 'Decagon' }, annotations: [\n { content: 'Decagon' }\n ]\n },\n {\n shape: { type: 'Basic', shape: 'RightTriangle' }, annotations: [\n { content: 'Right Triangle' }\n ]\n },\n {\n shape: { type: 'Basic', shape: 'Parallelogram' }, annotations: [\n { content: 'Parallelogram' }\n ]\n },\n];\nvar flowShapeModel = [\n {\n shape: { type: 'Text', content: 'Flow Shapes' }, constraints: ej.diagrams.NodeConstraints.PointerEvents,\n style: { fontSize: 16, fill: 'None', fontFamily: 'sans-serif', bold: true, strokeWidth: 0 },\n },\n {\n shape: { type: 'Flow', shape: 'Terminator' }, annotations: [\n { content: 'Terminator' }\n ]\n },\n {\n shape: { type: 'Flow', shape: 'Process' }, annotations: [\n { content: 'Process' }\n ]\n },\n {\n shape: { type: 'Flow', shape: 'Decision' }, annotations: [\n { content: 'Decision' }\n ]\n },\n {\n shape: { type: 'Flow', shape: 'Document' }, annotations: [\n { content: 'Document' }\n ]\n },\n {\n shape: { type: 'Flow', shape: 'PreDefinedProcess' }, annotations: [\n { content: 'Predefined Process' }\n ]\n },\n {\n shape: { type: 'Flow', shape: 'PaperTap' }, annotations: [\n { content: 'Paper Tape' }\n ]\n },\n {\n shape: { type: 'Flow', shape: 'DirectData' }, annotations: [\n { content: 'Direct Data' }\n ]\n },\n {\n shape: { type: 'Flow', shape: 'SequentialData' }, annotations: [\n { content: 'Direct Data' }\n ]\n },\n {\n shape: { type: 'Flow', shape: 'Sort' }, annotations: [\n { content: 'Sort' }\n ]\n },\n {\n shape: { type: 'Flow', shape: 'MultiDocument' }, annotations: [\n { content: 'Multi-Document' }\n ]\n },\n {\n shape: { type: 'Flow', shape: 'Collate' }, annotations: [\n { content: 'Collate' }\n ]\n },\n {\n shape: { type: 'Flow', shape: 'SummingJunction' }, annotations: [\n { content: 'Summing Junction' }\n ]\n },\n {\n shape: { type: 'Flow', shape: 'Or' }, annotations: [\n { content: 'Or' }\n ]\n },\n {\n shape: { type: 'Flow', shape: 'InternalStorage' }, annotations: [\n { content: 'Internal Storage' }\n ]\n },\n {\n shape: { type: 'Flow', shape: 'Extract' }, annotations: [\n { content: 'Extract' }\n ]\n },\n {\n shape: { type: 'Flow', shape: 'ManualOperation' }, annotations: [\n { content: 'Manual Operation' }\n ]\n },\n {\n shape: { type: 'Flow', shape: 'Merge' }, annotations: [\n { content: 'Merge' }\n ]\n },\n {\n shape: { type: 'Flow', shape: 'OffPageReference' }, annotations: [\n { content: 'Off-Page Reference' }\n ]\n },\n {\n shape: { type: 'Flow', shape: 'SequentialAccessStorage' }, annotations: [\n { content: 'Sequential Access Storage' }\n ]\n },\n {\n shape: { type: 'Flow', shape: 'Data' }, annotations: [\n { content: 'Data' }\n ]\n },\n {\n shape: { type: 'Flow', shape: 'Card' }, annotations: [\n { content: 'Card' }\n ]\n },\n];\n\nvar bpmnShapeModel = [\n {\n shape: { type: 'Text', content: 'BPMN Shapes' }, constraints: ej.diagrams.NodeConstraints.PointerEvents,\n style: { fontSize: 16, fill: 'none', fontFamily: 'sans-serif', bold: true, strokeWidth: 0 },\n },\n {\n shape: { type: 'Bpmn', shape: 'Event', event: { event: 'Start', trigger: 'None' } },\n annotations: [\n { content: 'Start Event' }\n ]\n },\n {\n shape: { type: 'Bpmn', shape: 'Event', event: { event: 'Intermediate', trigger: 'None' } },\n annotations: [\n { content: 'Intermediate Event' }\n ]\n },\n {\n shape: { type: 'Bpmn', shape: 'Event', event: { event: 'End', trigger: 'None' } },\n annotations: [\n { content: 'End Event' }\n ]\n },\n {\n shape: { type: 'Bpmn', shape: 'Gateway' },\n annotations: [\n { content: 'Gateway' }\n ]\n },\n {\n shape: { type: 'Bpmn', shape: 'Activity', activity: { activity: 'Task' } },\n annotations: [\n { content: 'Task' }\n ]\n },\n {\n shape: {\n type: 'Bpmn', shape: 'Activity', activity: {\n activity: 'SubProcess',\n subProcess: {\n type: 'Transaction', transaction: {\n success: { visible: false }, failure: { visible: false }, cancel: { visible: false }\n }\n }\n },\n },\n annotations: [\n { content: 'Transaction' }\n ]\n },\n {\n shape: { type: 'Bpmn', shape: 'Message' }, annotations: [{ content: 'Message' }]\n },\n {\n shape: { type: 'Bpmn', shape: 'DataObject' }, annotations: [{ content: 'Data Object' }]\n },\n {\n shape: { type: 'Bpmn', shape: 'DataSource' }, annotations: [{ content: 'Data Source' }]\n },\n {\n shape: { type: 'Bpmn', shape: 'Group' }, annotations: [{ content: 'Group' }]\n },\n {\n shape: { type: 'Bpmn', shape: 'TextAnnotation' }, annotations: [{ content: 'Text Annotation' }]\n }\n];\n/**\n * Sample for Shape gallery.\n */\nvar shape = [\n { shapeName: 'Basic Shapes', shapeId: 'Basic' },\n { shapeName: 'Flow Shapes', shapeId: 'Flow' },\n { shapeName: 'BPMN Shapes', shapeId: 'Bpmn' },\n];\n//create and return the Nodes collection.\nfunction getNodes() {\n var nodes1 = basicShapeModel;\n nodes1 = nodes1.concat(flowShapeModel).concat(bpmnShapeModel);\n var offsetx = 60;\n var offsety = 50;\n var count = 1;\n for (var i = 0; i < nodes1.length; i++) {\n var node = nodes1[i];\n node.width = 40;\n node.height = 40;\n if (node.shape.type === 'Flow') {\n var shapeType = node.shape.shape;\n if (shapeType === 'Process' || shapeType === 'Terminator') {\n node.height = 20;\n } else if (shapeType === 'Decision') {\n node.height = 35;\n } else if (shapeType === 'Document' || shapeType === 'DirectData' ||\n shapeType === 'MultiDocument' || shapeType === 'PreDefinedProcess') {\n node.height = 30;\n }\n }\n node.offsetX = offsetx;\n node.offsetY = offsety;\n if (node.shape.type !== \"Text\") {\n node.annotations[0].verticalAlignment = 'Top';\n node.annotations[0].offset = { y: 1 };\n node.annotations[0].margin = { top: 10 };\n\n offsetx = offsetx + 90;\n if (count % 10 === 0) {\n offsety = offsety + 100;\n offsetx = 60;\n }\n count++;\n }\n if (node.shape.type === 'Text') {\n offsetx = 60;\n offsety = offsety + 50;\n count = 1;\n node.width = 150;\n node.height = 100;\n node.offsetX = 90;\n if (node.shape.content !== 'Basic Shapes') {\n node.offsetX = 90;\n node.offsetY = offsety + 50;\n offsety = offsety + 100;\n }\n }\n }\n return nodes1;\n}\n\n var objects = getNodes();\n //Initialize diagram control\n var diagram = new ej.diagrams.Diagram({\n width: '100%', height: '499px', snapSettings: { constraints: ej.diagrams.SnapConstraints.None },\n nodes: objects,\n //Defines the default node and connector properties\n getNodeDefaults: function (obj, diagram) {\n return obj;\n },\n });\n diagram.appendTo('#diagram');\n diagram.fitToPage({ mode: 'Width' });\n\n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}ej.diagrams.Diagram.Inject(ej.diagrams.DataBinding, ej.diagrams.BpmnDiagrams);\nvar basicShapeModel = [\n {\n shape: { type: 'Text', content: 'Basic Shapes' }, constraints: ej.diagrams.NodeConstraints.PointerEvents,\n style: { fontSize: 16, fill: 'None', fontFamily: 'sans-serif', bold: true, strokeWidth: 0 },\n },\n {\n shape: { type: 'Basic', shape: 'Rectangle' }, annotations: [\n { content: 'Rectangle' }\n ]\n },\n {\n shape: { type: 'Basic', shape: 'Ellipse' }, annotations: [\n { content: 'Ellipse' }\n ]\n },\n {\n shape: { type: 'Basic', shape: 'Triangle' }, annotations: [\n { content: 'Triangle' }\n ]\n },\n {\n shape: { type: 'Basic', shape: 'Plus' }, annotations: [\n { content: 'Plus' }\n ]\n },\n {\n shape: { type: 'Basic', shape: 'Star' }, annotations: [\n { content: 'Star' }\n ]\n },\n {\n shape: { type: 'Basic', shape: 'Pentagon' }, annotations: [\n { content: 'Pentagon' }\n ]\n },\n {\n shape: { type: 'Basic', shape: 'Heptagon' }, annotations: [\n { content: 'Heptagon' }\n ]\n },\n {\n shape: { type: 'Basic', shape: 'Octagon' }, annotations: [\n { content: 'Octagon' }\n ]\n },\n {\n shape: { type: 'Basic', shape: 'Trapezoid' }, annotations: [\n { content: 'Trapezoid' }\n ]\n },\n {\n shape: { type: 'Basic', shape: 'Decagon' }, annotations: [\n { content: 'Decagon' }\n ]\n },\n {\n shape: { type: 'Basic', shape: 'RightTriangle' }, annotations: [\n { content: 'Right Triangle' }\n ]\n },\n {\n shape: { type: 'Basic', shape: 'Parallelogram' }, annotations: [\n { content: 'Parallelogram' }\n ]\n },\n];\nvar flowShapeModel = [\n {\n shape: { type: 'Text', content: 'Flow Shapes' }, constraints: ej.diagrams.NodeConstraints.PointerEvents,\n style: { fontSize: 16, fill: 'None', fontFamily: 'sans-serif', bold: true, strokeWidth: 0 },\n },\n {\n shape: { type: 'Flow', shape: 'Terminator' }, annotations: [\n { content: 'Terminator' }\n ]\n },\n {\n shape: { type: 'Flow', shape: 'Process' }, annotations: [\n { content: 'Process' }\n ]\n },\n {\n shape: { type: 'Flow', shape: 'Decision' }, annotations: [\n { content: 'Decision' }\n ]\n },\n {\n shape: { type: 'Flow', shape: 'Document' }, annotations: [\n { content: 'Document' }\n ]\n },\n {\n shape: { type: 'Flow', shape: 'PreDefinedProcess' }, annotations: [\n { content: 'Predefined Process' }\n ]\n },\n {\n shape: { type: 'Flow', shape: 'PaperTap' }, annotations: [\n { content: 'Paper Tape' }\n ]\n },\n {\n shape: { type: 'Flow', shape: 'DirectData' }, annotations: [\n { content: 'Direct Data' }\n ]\n },\n {\n shape: { type: 'Flow', shape: 'SequentialData' }, annotations: [\n { content: 'Direct Data' }\n ]\n },\n {\n shape: { type: 'Flow', shape: 'Sort' }, annotations: [\n { content: 'Sort' }\n ]\n },\n {\n shape: { type: 'Flow', shape: 'MultiDocument' }, annotations: [\n { content: 'Multi-Document' }\n ]\n },\n {\n shape: { type: 'Flow', shape: 'Collate' }, annotations: [\n { content: 'Collate' }\n ]\n },\n {\n shape: { type: 'Flow', shape: 'SummingJunction' }, annotations: [\n { content: 'Summing Junction' }\n ]\n },\n {\n shape: { type: 'Flow', shape: 'Or' }, annotations: [\n { content: 'Or' }\n ]\n },\n {\n shape: { type: 'Flow', shape: 'InternalStorage' }, annotations: [\n { content: 'Internal Storage' }\n ]\n },\n {\n shape: { type: 'Flow', shape: 'Extract' }, annotations: [\n { content: 'Extract' }\n ]\n },\n {\n shape: { type: 'Flow', shape: 'ManualOperation' }, annotations: [\n { content: 'Manual Operation' }\n ]\n },\n {\n shape: { type: 'Flow', shape: 'Merge' }, annotations: [\n { content: 'Merge' }\n ]\n },\n {\n shape: { type: 'Flow', shape: 'OffPageReference' }, annotations: [\n { content: 'Off-Page Reference' }\n ]\n },\n {\n shape: { type: 'Flow', shape: 'SequentialAccessStorage' }, annotations: [\n { content: 'Sequential Access Storage' }\n ]\n },\n {\n shape: { type: 'Flow', shape: 'Data' }, annotations: [\n { content: 'Data' }\n ]\n },\n {\n shape: { type: 'Flow', shape: 'Card' }, annotations: [\n { content: 'Card' }\n ]\n },\n];\n\nvar bpmnShapeModel = [\n {\n shape: { type: 'Text', content: 'BPMN Shapes' }, constraints: ej.diagrams.NodeConstraints.PointerEvents,\n style: { fontSize: 16, fill: 'none', fontFamily: 'sans-serif', bold: true, strokeWidth: 0 },\n },\n {\n shape: { type: 'Bpmn', shape: 'Event', event: { event: 'Start', trigger: 'None' } },\n annotations: [\n { content: 'Start Event' }\n ]\n },\n {\n shape: { type: 'Bpmn', shape: 'Event', event: { event: 'Intermediate', trigger: 'None' } },\n annotations: [\n { content: 'Intermediate Event' }\n ]\n },\n {\n shape: { type: 'Bpmn', shape: 'Event', event: { event: 'End', trigger: 'None' } },\n annotations: [\n { content: 'End Event' }\n ]\n },\n {\n shape: { type: 'Bpmn', shape: 'Gateway' },\n annotations: [\n { content: 'Gateway' }\n ]\n },\n {\n shape: { type: 'Bpmn', shape: 'Activity', activity: { activity: 'Task' } },\n annotations: [\n { content: 'Task' }\n ]\n },\n {\n shape: {\n type: 'Bpmn', shape: 'Activity', activity: {\n activity: 'SubProcess',\n subProcess: {\n type: 'Transaction', transaction: {\n success: { visible: false }, failure: { visible: false }, cancel: { visible: false }\n }\n }\n },\n },\n annotations: [\n { content: 'Transaction' }\n ]\n },\n {\n shape: { type: 'Bpmn', shape: 'Message' }, annotations: [{ content: 'Message' }]\n },\n {\n shape: { type: 'Bpmn', shape: 'DataObject' }, annotations: [{ content: 'Data Object' }]\n },\n {\n shape: { type: 'Bpmn', shape: 'DataSource' }, annotations: [{ content: 'Data Source' }]\n },\n {\n shape: { type: 'Bpmn', shape: 'Group' }, annotations: [{ content: 'Group' }]\n },\n {\n shape: { type: 'Bpmn', shape: 'TextAnnotation' }, annotations: [{ content: 'Text Annotation' }]\n }\n];\n/**\n * Sample for Shape gallery.\n */\nvar shape = [\n { shapeName: 'Basic Shapes', shapeId: 'Basic' },\n { shapeName: 'Flow Shapes', shapeId: 'Flow' },\n { shapeName: 'BPMN Shapes', shapeId: 'Bpmn' },\n];\n//create and return the Nodes collection.\nfunction getNodes() {\n var nodes1 = basicShapeModel;\n nodes1 = nodes1.concat(flowShapeModel).concat(bpmnShapeModel);\n var offsetx = 60;\n var offsety = 50;\n var count = 1;\n for (var i = 0; i < nodes1.length; i++) {\n var node = nodes1[i];\n node.width = 40;\n node.height = 40;\n if (node.shape.type === 'Flow') {\n var shapeType = node.shape.shape;\n if (shapeType === 'Process' || shapeType === 'Terminator') {\n node.height = 20;\n } else if (shapeType === 'Decision') {\n node.height = 35;\n } else if (shapeType === 'Document' || shapeType === 'DirectData' ||\n shapeType === 'MultiDocument' || shapeType === 'PreDefinedProcess') {\n node.height = 30;\n }\n }\n node.offsetX = offsetx;\n node.offsetY = offsety;\n if (node.shape.type !== \"Text\") {\n node.annotations[0].verticalAlignment = 'Top';\n node.annotations[0].offset = { y: 1 };\n node.annotations[0].margin = { top: 10 };\n\n offsetx = offsetx + 90;\n if (count % 10 === 0) {\n offsety = offsety + 100;\n offsetx = 60;\n }\n count++;\n }\n if (node.shape.type === 'Text') {\n offsetx = 60;\n offsety = offsety + 50;\n count = 1;\n node.width = 150;\n node.height = 100;\n node.offsetX = 90;\n if (node.shape.content !== 'Basic Shapes') {\n node.offsetX = 90;\n node.offsetY = offsety + 50;\n offsety = offsety + 100;\n }\n }\n }\n return nodes1;\n}\n\n var objects = getNodes();\n //Initialize diagram control\n var diagram = new ej.diagrams.Diagram({\n width: '100%', height: '499px', snapSettings: { constraints: ej.diagrams.SnapConstraints.None },\n nodes: objects,\n //Defines the default node and connector properties\n getNodeDefaults: function (obj, diagram) {\n return obj;\n },\n });\n diagram.appendTo('#diagram');\n diagram.fitToPage({ mode: 'Width' });\n\n"}
\ No newline at end of file
diff --git a/src/diagram/swimlane-stack.json b/src/diagram/swimlane-stack.json
index a3c5a6b1..5ae56736 100644
--- a/src/diagram/swimlane-stack.json
+++ b/src/diagram/swimlane-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}/**\n * Default Swimlane sample\n */\nej.diagrams.Diagram.Inject(ej.diagrams.UndoRedo);\n\n//Create and add ports for node.\nvar port = [\n { offset: { x: 0, y: 0.5 }, visibility: ej.diagrams.PortVisibility.Connect | ej.diagrams.PortVisibility.Hover, constraints: ej.diagrams.PortConstraints.Draw },\n { offset: { x: 0.5, y: 0 }, visibility: ej.diagrams.PortVisibility.Connect | ej.diagrams.PortVisibility.Hover, constraints: ej.diagrams.PortConstraints.Draw },\n { offset: { x: 1, y: 0.5 }, visibility: ej.diagrams.PortVisibility.Connect | ej.diagrams.PortVisibility.Hover, constraints: ej.diagrams.PortConstraints.Draw },\n { offset: { x: 0.5, y: 1 }, visibility: ej.diagrams.PortVisibility.Connect | ej.diagrams.PortVisibility.Hover, constraints: ej.diagrams.PortConstraints.Draw }\n];\n\nfunction addEvents() {\n var isMobileDevice = window.matchMedia('(max-width:550px)').matches;\n if (isMobileDevice) {\n var pIcons = document.getElementById('palette-icon');\n if (pIcons) {\n pIcons.addEventListener('click', openPalette, false);\n }\n }\n}\n\nfunction openPalette() {\n var pSpaces = document.getElementById('palette-space');\n isMobileDevice = window.matchMedia('(max-width:550px)').matches;\n if (isMobileDevice) {\n if (!pSpaces.classList.contains('sb-mobile-palette-open')) {\n pSpaces.classList.add('sb-mobile-palette-open');\n }\n else {\n pSpaces.classList.remove('sb-mobile-palette-open');\n }\n }\n}\n\n\n var bounds = document.getElementById('diagram-space').getBoundingClientRect();\n var centerX = bounds.width / 2;\n var middle = centerX - 50;\n var darkColor = '#C7D4DF';\n var lightColor = '#f5f5f5';\n var pathData = 'M 120 24.9999 C 120 38.8072 109.642 50 96.8653 50 L 23.135' +\n ' 50 C 10.3578 50 0 38.8072 0 24.9999 L 0 24.9999 C' +\n '0 11.1928 10.3578 0 23.135 0 L 96.8653 0 C 109.642 0 120 11.1928 120 24.9999 Z';\n //Initializes the nodes for the diagram.\n var nodes = [\n {\n id: 'swimlane',\n shape: {\n type: 'SwimLane',\n header: {\n annotation: { content: 'ONLINE PURCHASE STATUS', style: { fill: '#111111' } },\n height: 50, style: { fontSize: 11 },\n orientation: 'Horizontal',\n },\n lanes: [\n {\n id: 'stackCanvas1',\n header: {\n annotation: { content: 'CUSTOMER' }, width: 50,\n style: { fontSize: 11 }\n },\n height: 100,\n children: [\n {\n id: 'Order',\n shape: { type: 'Path', data: pathData },\n annotations: [\n {\n content: 'ORDER',\n style: { fontSize: 11, fontColor: 'black' }\n }\n ],\n margin: { left: 60, top: 20 },\n height: 40, width: 100, ports: port\n }\n ],\n },\n {\n id: 'stackCanvas2',\n header: {\n annotation: { content: 'ONLINE' }, width: 50,\n style: { fontSize: 11 }\n },\n height: 100,\n children: [\n {\n id: 'selectItemaddcart',\n annotations: [{ content: 'Select item\\nAdd cart' }],\n margin: { left: 190, top: 20 },\n height: 40, width: 100, ports: port\n },\n {\n id: 'paymentondebitcreditcard',\n annotations: [{ content: 'Payment on\\nDebit/Credit Card' }],\n margin: { left: 350, top: 20 },\n height: 40, width: 100, ports: port\n }\n ],\n },\n {\n id: 'stackCanvas3',\n header: {\n annotation: { content: 'SHOP' }, width: 50,\n style: { fontSize: 11 }\n },\n height: 100,\n children: [\n {\n id: 'getmaildetailaboutorder',\n annotations: [{ content: 'Get mail detail\\nabout order' }],\n margin: { left: 190, top: 20 },\n height: 40, width: 100, ports: port\n },\n {\n id: 'pakingitem',\n annotations: [{ content: 'Paking item' }],\n margin: { left: 350, top: 20 },\n height: 40, width: 100, ports: port\n }\n ],\n },\n {\n id: 'stackCanvas4',\n header: {\n annotation: { content: 'DELIVERY' }, width: 50,\n style: { fontSize: 11 }\n },\n height: 100,\n children: [\n {\n id: 'sendcourieraboutaddress',\n annotations: [{ content: 'Send Courier\\n about Address' }],\n margin: { left: 190, top: 20 },\n height: 40, width: 100, ports: port\n },\n {\n id: 'deliveryonthataddress',\n annotations: [{ content: 'Delivery on that\\n Address' }],\n margin: { left: 350, top: 20 },\n height: 40, width: 100, ports: port\n },\n {\n id: 'getitItem',\n shape: { type: 'Path', data: pathData },\n annotations: [{ content: 'GET IT ITEM', style: { fontSize: 11 } }],\n margin: { left: 500, top: 20 },\n height: 40, width: 100, ports: port\n }\n ],\n },\n ],\n phases: [\n {\n id: 'phase1', offset: 170,\n header: { content: { content: 'Phase' } }\n },\n {\n id: 'phase2', offset: 450,\n header: { content: { content: 'Phase' } }\n },\n ],\n phaseSize: 20,\n },\n offsetX: bounds.width / 2, offsetY: bounds.height / 2,\n height: 100,\n width: 650\n },\n ];\n function getNodeDefaults(node) {\n node.style.strokeColor = \"#CCCCCC\";\n return node;\n }\n //Initializes the Connectors for the diagram\n var connectors = [\n {\n id: 'connector1', sourceID: 'Order',\n targetID: 'selectItemaddcart'\n },\n {\n id: 'connector2', sourceID: 'selectItemaddcart',\n targetID: 'paymentondebitcreditcard'\n },\n {\n id: 'connector3', sourceID: 'paymentondebitcreditcard',\n targetID: 'getmaildetailaboutorder'\n },\n {\n id: 'connector4', sourceID: 'getmaildetailaboutorder',\n targetID: 'pakingitem'\n },\n {\n id: 'connector5', sourceID: 'pakingitem',\n targetID: 'sendcourieraboutaddress'\n },\n {\n id: 'connector6', sourceID: 'sendcourieraboutaddress',\n targetID: 'deliveryonthataddress'\n },\n {\n id: 'connector7', sourceID: 'deliveryonthataddress',\n targetID: 'getitItem'\n },\n ];\n var intervals = [1, 9, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75];\n var hvgridlines = { lineColor: '#e0e0e0', lineIntervals: intervals };\n //Initializes diagram control\n var diagram = new ej.diagrams.Diagram({\n width: '100%', height: '100%', nodes: nodes, connectors: connectors,\n getNodeDefaults: getNodeDefaults,\n snapSettings: {\n horizontalGridlines: hvgridlines,\n verticalGridlines: hvgridlines,\n constraints: ej.diagrams.SnapConstraints.All & ~ej.diagrams.SnapConstraints.ShowLines\n },\n //Sets the default values of a Connector.\n getConnectorDefaults: function (connector) {\n if (connector.id.indexOf(\"Link21\") !== -1) {\n connector.type = 'Straight';\n }\n else if (connector.id.indexOf(\"Link22\") !== -1) {\n connector.type = 'Straight';\n }\n else {\n connector.type = 'Orthogonal';\n }\n connector.style.strokeColor = \"#CCCCCC\";\n connector.sourceDecorator.style.strokeColor = \"#CCCCCC\";\n connector.targetDecorator.style.strokeColor = \"#CCCCCC\";\n connector.sourceDecorator.style.fill = \"#CCCCCC\";\n connector.targetDecorator.style.fill = \"#CCCCCC\";\n return connector;\n },\n contextMenuSettings: {\n show: true, items: [\n {\n text: 'Clone', id: 'Clone', target: '.e-diagramcontent',\n },\n {\n text: 'Cut', id: 'Cut', target: '.e-diagramcontent',\n },\n {\n text: 'InsertLaneBefore', id: 'InsertLaneBefore', target: '.e-diagramcontent',\n },\n {\n text: 'InsertLaneAfter', id: 'InsertLaneAfter', target: '.e-diagramcontent',\n }],\n showCustomMenuOnly: true,\n },\n contextMenuOpen: function (args) {\n for (var i=0; i< args.items.length; i++ ) {\n var item = args.items[i];\n if ((diagram.selectedItems.connectors.length + diagram.selectedItems.nodes.length) > 0) {\n if (item.id === 'InsertLaneBefore' || item.id === 'InsertLaneAfter') {\n if (diagram.selectedItems.connectors.length || (diagram.selectedItems.nodes.length && !(diagram.selectedItems.nodes[0]).isLane)) {\n args.hiddenItems.push(item.text);\n }\n }\n } else {\n args.hiddenItems.push(item.text);\n }\n }\n },\n contextMenuClick: function (args) {\n if (args.item.id === 'InsertLaneBefore' || args.item.id === 'InsertLaneAfter') {\n if (diagram.selectedItems.nodes.length > 0 && (diagram.selectedItems.nodes[0]).isLane) {\n var index;\n var node = diagram.selectedItems.nodes[0];\n var swimlane = diagram.getObject((diagram.selectedItems.nodes[0]).parentId);\n var shap = swimlane.shape;\n var existingLane = cloneObject(shape.lanes[0]);\n\n var newLane = {\n id: randomId(),\n header: {\n width: existingLane.header.width, height: existingLane.header.height,\n style: existingLane.header.style\n },\n style: existingLane.style,\n height: existingLane.height, width: existingLane.width,\n };\n\n if (shape.orientation === 'Horizontal') {\n var exclude = 0;\n exclude += (shape.header) ? 1 : 0;\n exclude += (shape.phases.length) ? 1 : 0;\n index = node.rowIndex - exclude;\n newLane.header.width = existingLane.header.width;\n newLane.header.height = existingLane.height;\n } else {\n index = node.columnIndex - (shape.phases.length) ? 1 : 0;\n newLane.header.width = existingLane.width;\n newLane.header.height = existingLane.header.height;\n }\n if (args.item.id === 'InsertLaneBefore') {\n diagram.addLanes(swimlane, [newLane], index);\n } else {\n diagram.addLanes(swimlane, [newLane], index + 1);\n }\n diagram.clearSelection();\n }\n } else if (args.item.id === 'Cut') {\n diagram.cut();\n } else if (args.item.id === 'Clone') {\n diagram.copy();\n diagram.paste();\n }\n },\n //Sets the Node style for DragEnter element.\n dragEnter: function (args) {\n var obj = args.element;\n if (obj instanceof ej.diagrams.Node) {\n var shape = obj.shape;\n if (shape.isLane) {\n if (shape.orientation === 'Horizontal') {\n shape.lanes[0].height = 100;\n shape.lanes[0].width = 400;\n } else if (shape.orientation === 'Vertical') {\n shape.lanes[0].height = 400;\n shape.lanes[0].width = 100;\n }\n }\n }\n }\n });\n diagram.appendTo('#diagram');\n if (ej.base.Browser.isDevice) {\n diagram.fitToPage();\n }\n // Initializes the palettes to be displayed in the symbol palette.\n var palettes = [\n {\n id: 'flow', expanded: true, title: 'Flow Shapes', symbols: [\n {\n id: 'Terminator', width: 50, height: 60, addInfo: { tooltip: 'Terminator' }, shape: { type: 'Flow', shape: 'Terminator' }, style: { strokeWidth: 1 }, ports: port\n },\n {\n id: 'Process', addInfo: { tooltip: 'Process' }, width: 50, height: 60, shape: { type: 'Flow', shape: 'Process' }, style: { strokeWidth: 1 }, ports: port\n },\n {\n id: 'Decision', addInfo: { tooltip: 'Decision' }, width: 50, height: 50, shape: { type: 'Flow', shape: 'Decision' }, style: { strokeWidth: 1 }, ports: port\n },\n {\n id: 'Document', addInfo: { tooltip: 'Document' }, width: 50, height: 50, shape: { type: 'Flow', shape: 'Document' }, style: { strokeWidth: 1 }, ports: port\n },\n {\n id: 'PreDefinedProcess', addInfo: { tooltip: 'Predefined process' }, width: 50, height: 50, shape: { type: 'Flow', shape: 'PreDefinedProcess' }, ports: port, style: { strokeWidth: 1 }\n },\n {\n id: 'data', addInfo: { tooltip: 'Data' }, width: 50, height: 50, shape: { type: 'Flow', shape: 'Data' }, ports: port, style: { strokeWidth: 1 }\n },\n ]\n },\n {\n id: 'swimlaneShapes', expanded: true,\n title: 'Swimlane Shapes',\n symbols: [\n {\n id: 'stackCanvas1', addInfo: { tooltip: 'Horizontal swimlane' },\n shape: {\n type: 'SwimLane', lanes: [\n {\n id: 'lane1',\n style: { strokeColor: 'black' }, height: 60, width: 150,\n header: { width: 50, height: 50, style: { strokeColor: 'black', fontSize: 11 } },\n }\n ],\n orientation: 'Horizontal', isLane: true\n },\n height: 60,\n width: 140,\n offsetX: 70,\n offsetY: 30,\n }, {\n id: 'stackCanvas2', addInfo: { tooltip: 'Vertical swimlane' },\n shape: {\n type: 'SwimLane',\n lanes: [\n {\n id: 'lane1',\n style: { strokeColor: 'black' }, height: 150, width: 60,\n header: { width: 50, height: 50, style: { strokeColor: 'black', fontSize: 11 } },\n }\n ],\n orientation: 'Vertical', isLane: true\n },\n height: 140,\n width: 60,\n offsetX: 70,\n offsetY: 30,\n }, {\n id: 'verticalPhase', addInfo: { tooltip: 'Vertical phase' },\n shape: {\n type: 'SwimLane',\n phases: [{ style: { strokeWidth: 1, strokeDashArray: '3,3', strokeColor: '#A9A9A9' }, }],\n annotations: [{ text: '' }],\n orientation: 'Vertical', isPhase: true\n },\n height: 60,\n width: 140\n }, {\n id: 'horizontalPhase', addInfo: { tooltip: 'Horizontal phase' },\n shape: {\n type: 'SwimLane',\n phases: [{ style: { strokeWidth: 1, strokeDashArray: '3,3', strokeColor: '#A9A9A9' }, }],\n annotations: [{ text: '' }],\n orientation: 'Horizontal', isPhase: true\n },\n height: 60,\n width: 140\n }\n ]\n },\n {\n id: 'connectors', expanded: true, symbols: [\n {\n id: 'Link1', type: 'Orthogonal', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 40, y: 40 },\n targetDecorator: { shape: 'Arrow' }, style: { strokeWidth: 1 }\n },\n {\n id: 'Link2', type: 'Orthogonal', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 40, y: 40 },\n targetDecorator: { shape: 'Arrow' }, style: { strokeWidth: 1, strokeDashArray: '4 4' }\n },\n {\n id: 'Link21', type: 'Straight', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 60, y: 60 },\n targetDecorator: { shape: 'Arrow' }, style: { strokeWidth: 1 }\n },\n {\n id: 'Link22', type: 'Straight', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 60, y: 60 },\n targetDecorator: { shape: 'Arrow' }, style: { strokeWidth: 1, strokeDashArray: '4 4' }\n }\n ], title: 'Connectors'\n }\n ];\n //Initializes the symbol palette\n var palette = new ej.diagrams.SymbolPalette({\n expandMode: 'Multiple',\n palettes: palettes,\n width: '100%', height: '100%',\n symbolMargin: { left: 8, right: 8, top: 8, bottom: 8 },\n symbolHeight: 48, symbolWidth: 48,\n getSymbolInfo: function (symbol) {\n return { tooltip: symbol.addInfo ? symbol.addInfo.tooltip : symbol.id };\n }\n });\n\n palette.appendTo('#symbolpalette');\n addEvents();\n\n\n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}/**\n * Default Swimlane sample\n */\nej.diagrams.Diagram.Inject(ej.diagrams.UndoRedo);\n\n//Create and add ports for node.\nvar port = [\n { id: 'Port1', offset: { x: 0, y: 0.5 }, visibility: ej.diagrams.PortVisibility.Connect | ej.diagrams.PortVisibility.Hover, constraints: ej.diagrams.PortConstraints.Draw },\n { id: 'Port2', offset: { x: 0.5, y: 0 }, visibility: ej.diagrams.PortVisibility.Connect | ej.diagrams.PortVisibility.Hover, constraints: ej.diagrams.PortConstraints.Draw },\n { id: 'Port3', offset: { x: 1, y: 0.5 }, visibility: ej.diagrams.PortVisibility.Connect | ej.diagrams.PortVisibility.Hover, constraints: ej.diagrams.PortConstraints.Draw },\n { id: 'Port4', offset: { x: 0.5, y: 1 }, visibility: ej.diagrams.PortVisibility.Connect | ej.diagrams.PortVisibility.Hover, constraints: ej.diagrams.PortConstraints.Draw }\n];\n\nfunction addEvents() {\n var isMobileDevice = window.matchMedia('(max-width:550px)').matches;\n if (isMobileDevice) {\n var pIcons = document.getElementById('palette-icon');\n if (pIcons) {\n pIcons.addEventListener('click', openPalette, false);\n }\n }\n}\n\nfunction openPalette() {\n var pSpaces = document.getElementById('palette-space');\n isMobileDevice = window.matchMedia('(max-width:550px)').matches;\n if (isMobileDevice) {\n if (!pSpaces.classList.contains('sb-mobile-palette-open')) {\n pSpaces.classList.add('sb-mobile-palette-open');\n }\n else {\n pSpaces.classList.remove('sb-mobile-palette-open');\n }\n }\n}\n\n\n var bounds = document.getElementById('diagram-space').getBoundingClientRect();\n var centerX = bounds.width / 2;\n var middle = centerX - 50;\n var darkColor = '#C7D4DF';\n var lightColor = '#f5f5f5';\n var pathData = 'M 120 24.9999 C 120 38.8072 109.642 50 96.8653 50 L 23.135' +\n ' 50 C 10.3578 50 0 38.8072 0 24.9999 L 0 24.9999 C' +\n '0 11.1928 10.3578 0 23.135 0 L 96.8653 0 C 109.642 0 120 11.1928 120 24.9999 Z';\n //Initializes the nodes for the diagram.\n var nodes = [\n {\n id: 'swimlane',\n shape: {\n type: 'SwimLane',\n header: {\n annotation: { content: 'SALES PROCESS FLOW CHART', style: { fill: '#111111' } },\n height: 50, style: { fontSize: 11 },\n orientation: 'Horizontal',\n },\n lanes: [\n {\n id: 'stackCanvas1',\n header: {\n annotation: { content: 'Consumer' }, width: 50,\n style: { fontSize: 11 }\n },\n height: 100,\n children: [\n {\n id: 'node1',\n annotations: [\n {\n content: 'Consumer learns \\n of product',\n style: { fontSize: 11 }\n }\n ],\n margin: { left: 60, top: 30 },\n height: 40, width: 100, ports: port\n },\n {\n id: 'node2',\n shape: { type: 'Flow', shape: 'Decision' },\n annotations: [\n {\n content: 'Does \\n Consumer want \\nthe product',\n style: { fontSize: 11 }\n }\n ],\n margin: { left: 200, top: 20 },\n height: 60, width: 120, ports: port\n },\n {\n id: 'node3',\n annotations: [\n {\n content: 'No sales lead',\n style: { fontSize: 11 }\n }\n ],\n margin: { left: 380, top: 30 }, shape: { type: 'Path', data: pathData },\n height: 40, width: 100, ports: port\n },\n {\n id: 'node4',\n annotations: [\n {\n content: 'Sell to consumer',\n style: { fontSize: 11 }\n }\n ],\n margin: { left: 510, top: 30 },\n height: 40, width: 100, ports: port\n }\n ],\n },\n {\n id: 'stackCanvas2',\n header: {\n annotation: { content: 'Marketing' }, width: 50,\n style: { fontSize: 11 }\n },\n height: 100,\n children: [\n {\n id: 'node5',\n annotations: [{ content: 'Create marketing campaigns' }],\n margin: { left: 60, top: 20 },\n height: 40, width: 100, ports: port\n },\n {\n id: 'node6',\n annotations: [{ content: 'Marketing finds sales leads' }],\n margin: { left: 210, top: 20 },\n height: 40, width: 100, ports: port\n }\n ],\n },\n {\n id: 'stackCanvas3',\n header: {\n annotation: { content: 'Sales' }, width: 50,\n style: { fontSize: 11 }\n },\n height: 100,\n children: [\n {\n id: 'node7',\n annotations: [{ content: 'Sales receives lead' }],\n margin: { left: 210, top: 30 },\n height: 40, width: 100, ports: port\n }\n ],\n },\n {\n id: 'stackCanvas4',\n header: {\n annotation: { content: 'Success' }, width: 50,\n style: { fontSize: 11 }\n },\n height: 100,\n children: [\n {\n id: 'node8',\n annotations: [{ content: 'Success helps \\n retain consumer \\n as a customer' }],\n margin: { left: 510, top: 20 },\n height: 50, width: 100, ports: port\n }\n ],\n },\n ],\n phases: [\n {\n id: 'phase1', offset: 170,\n header: { content: { content: 'Phase' } }\n }\n ],\n phaseSize: 20,\n },\n offsetX: bounds.width / 2, offsetY: bounds.height / 2,\n height: 100,\n width: 650\n },\n ];\n function getNodeDefaults(node) {\n node.style.strokeColor = \"#717171\";\n return node;\n }\n //Initializes the Connectors for the diagram\n var connectors = [\n {\n id: 'connector1', sourceID: 'node1',\n targetID: 'node2'\n },\n {\n id: 'connector2', sourceID: 'node2',\n targetID: 'node3', annotations: [{ content: 'No', style: { fill: 'white' } }]\n },\n {\n id: 'connector3', sourceID: 'node4',\n targetID: 'node8'\n },\n {\n id: 'connector4', sourceID: 'node2',\n targetID: 'node6', annotations: [{ content: 'Yes', style: { fill: 'white' } }]\n },\n {\n id: 'connector5', sourceID: 'node5',\n targetID: 'node1'\n },\n {\n id: 'connector6', sourceID: 'node6',\n targetID: 'node7'\n },\n {\n id: 'connector7', sourcePortID: 'Port1', targetPortID: 'Port3', sourceID: 'node4',\n targetID: 'node7',\n },\n ];\n var intervals = [1, 9, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75, 0.25, 9.75];\n var hvgridlines = { lineColor: '#e0e0e0', lineIntervals: intervals };\n //Initializes diagram control\n var diagram = new ej.diagrams.Diagram({\n width: '100%', height: '100%', nodes: nodes, connectors: connectors,\n getNodeDefaults: getNodeDefaults,\n snapSettings: {\n horizontalGridlines: hvgridlines,\n verticalGridlines: hvgridlines,\n constraints: ej.diagrams.SnapConstraints.All & ~ej.diagrams.SnapConstraints.ShowLines\n },\n //Sets the default values of a Connector.\n getConnectorDefaults: function (connector) {\n if (connector.id.indexOf(\"Link21\") !== -1) {\n connector.type = 'Straight';\n }\n else if (connector.id.indexOf(\"Link22\") !== -1) {\n connector.type = 'Straight';\n }\n else {\n connector.type = 'Orthogonal';\n }\n connector.style.strokeColor = \"#717171\";\n connector.sourceDecorator.style.strokeColor = \"#717171\";\n connector.targetDecorator.style.strokeColor = \"#717171\";\n connector.sourceDecorator.style.fill = \"#717171\";\n connector.targetDecorator.style.fill = \"#717171\";\n return connector;\n },\n contextMenuSettings: {\n show: true, items: [\n {\n text: 'Copy', id: 'Copy', target: '.e-diagramcontent', iconCss: 'e-menu-icon e-icons e-copy'\n },\n {\n text: 'Cut', id: 'Cut', target: '.e-diagramcontent', iconCss: 'e-menu-icon e-icons e-cut'\n },\n {\n text: 'Paste', id: 'Paste', target: '.e-diagramcontent', iconCss: 'e-menu-icon e-icons e-paste'\n },\n {\n text: 'InsertLaneBefore', id: 'InsertLaneBefore', target: '.e-diagramcontent',\n },\n {\n text: 'InsertLaneAfter', id: 'InsertLaneAfter', target: '.e-diagramcontent',\n }],\n showCustomMenuOnly: true,\n },\n contextMenuOpen: function (args) {\n for (var i=0; i< args.items.length; i++ ) {\n var item = args.items[i];\n if ((diagram.selectedItems.connectors.length + diagram.selectedItems.nodes.length) > 0) {\n if (item.id === 'InsertLaneBefore' || item.id === 'InsertLaneAfter') {\n if (diagram.selectedItems.connectors.length || (diagram.selectedItems.nodes.length && !(diagram.selectedItems.nodes[0]).isLane)) {\n args.hiddenItems.push(item.text);\n }\n }\n } else {\n args.hiddenItems.push(item.text);\n }\n }\n },\n contextMenuClick: function (args) {\n if (args.item.id === 'InsertLaneBefore' || args.item.id === 'InsertLaneAfter') {\n if (diagram.selectedItems.nodes.length > 0 && (diagram.selectedItems.nodes[0]).isLane) {\n var index;\n var node = diagram.selectedItems.nodes[0];\n var swimlane = diagram.getObject((diagram.selectedItems.nodes[0]).parentId);\n var shap = swimlane.shape;\n var existingLane = cloneObject(shape.lanes[0]);\n\n var newLane = {\n id: randomId(),\n header: {\n width: existingLane.header.width, height: existingLane.header.height,\n style: existingLane.header.style\n },\n style: existingLane.style,\n height: existingLane.height, width: existingLane.width,\n };\n\n if (shape.orientation === 'Horizontal') {\n var exclude = 0;\n exclude += (shape.header) ? 1 : 0;\n exclude += (shape.phases.length) ? 1 : 0;\n index = node.rowIndex - exclude;\n newLane.header.width = existingLane.header.width;\n newLane.header.height = existingLane.height;\n } else {\n index = node.columnIndex - (shape.phases.length) ? 1 : 0;\n newLane.header.width = existingLane.width;\n newLane.header.height = existingLane.header.height;\n }\n if (args.item.id === 'InsertLaneBefore') {\n diagram.addLanes(swimlane, [newLane], index);\n } else {\n diagram.addLanes(swimlane, [newLane], index + 1);\n }\n diagram.clearSelection();\n }\n } else if (args.item.id === 'Cut') {\n diagram.cut();\n } else if (args.item.id === 'Copy') {\n diagram.copy();\n diagram.paste();\n } else if (args.item.id === 'Paste') {\n diagram.paste();\n }\n },\n //Sets the Node style for DragEnter element.\n dragEnter: function (args) {\n var obj = args.element;\n if (obj instanceof ej.diagrams.Node) {\n var shape = obj.shape;\n if (shape.isLane) {\n if (shape.orientation === 'Horizontal') {\n shape.lanes[0].height = 100;\n shape.lanes[0].width = 400;\n } else if (shape.orientation === 'Vertical') {\n shape.lanes[0].height = 400;\n shape.lanes[0].width = 100;\n }\n }\n }\n }\n });\n diagram.appendTo('#diagram');\n if (ej.base.Browser.isDevice) {\n diagram.fitToPage();\n }\n // Initializes the palettes to be displayed in the symbol palette.\n var palettes = [\n {\n id: 'flow', expanded: true, title: 'Flow Shapes', symbols: [\n {\n id: 'Terminator', width: 50, height: 60, addInfo: { tooltip: 'Terminator' }, shape: { type: 'Flow', shape: 'Terminator' }, style: { strokeWidth: 1 }, ports: port\n },\n {\n id: 'Process', addInfo: { tooltip: 'Process' }, width: 50, height: 60, shape: { type: 'Flow', shape: 'Process' }, style: { strokeWidth: 1 }, ports: port\n },\n {\n id: 'Decision', addInfo: { tooltip: 'Decision' }, width: 50, height: 50, shape: { type: 'Flow', shape: 'Decision' }, style: { strokeWidth: 1 }, ports: port\n },\n {\n id: 'Document', addInfo: { tooltip: 'Document' }, width: 50, height: 50, shape: { type: 'Flow', shape: 'Document' }, style: { strokeWidth: 1 }, ports: port\n },\n {\n id: 'PreDefinedProcess', addInfo: { tooltip: 'Predefined process' }, width: 50, height: 50, shape: { type: 'Flow', shape: 'PreDefinedProcess' }, ports: port, style: { strokeWidth: 1 }\n },\n {\n id: 'data', addInfo: { tooltip: 'Data' }, width: 50, height: 50, shape: { type: 'Flow', shape: 'Data' }, ports: port, style: { strokeWidth: 1 }\n },\n ]\n },\n {\n id: 'swimlaneShapes', expanded: true,\n title: 'Swimlane Shapes',\n symbols: [\n {\n id: 'stackCanvas1', addInfo: { tooltip: 'Horizontal swimlane' },\n shape: {\n type: 'SwimLane', lanes: [\n {\n id: 'lane1',\n style: { strokeColor: 'black' }, height: 60, width: 150,\n header: { width: 50, height: 50, style: { strokeColor: 'black', fontSize: 11 } },\n }\n ],\n orientation: 'Horizontal', isLane: true\n },\n height: 60,\n width: 140,\n offsetX: 70,\n offsetY: 30,\n }, {\n id: 'stackCanvas2', addInfo: { tooltip: 'Vertical swimlane' },\n shape: {\n type: 'SwimLane',\n lanes: [\n {\n id: 'lane1',\n style: { strokeColor: 'black' }, height: 150, width: 60,\n header: { width: 50, height: 50, style: { strokeColor: 'black', fontSize: 11 } },\n }\n ],\n orientation: 'Vertical', isLane: true\n },\n height: 140,\n width: 60,\n offsetX: 70,\n offsetY: 30,\n }, {\n id: 'verticalPhase', addInfo: { tooltip: 'Vertical phase' },\n shape: {\n type: 'SwimLane',\n phases: [{ style: { strokeWidth: 1, strokeDashArray: '3,3', strokeColor: '#A9A9A9' }, }],\n annotations: [{ text: '' }],\n orientation: 'Vertical', isPhase: true\n },\n height: 60,\n width: 140\n }, {\n id: 'horizontalPhase', addInfo: { tooltip: 'Horizontal phase' },\n shape: {\n type: 'SwimLane',\n phases: [{ style: { strokeWidth: 1, strokeDashArray: '3,3', strokeColor: '#A9A9A9' }, }],\n annotations: [{ text: '' }],\n orientation: 'Horizontal', isPhase: true\n },\n height: 60,\n width: 140\n }\n ]\n },\n {\n id: 'connectors', expanded: true, symbols: [\n {\n id: 'Link1', type: 'Orthogonal', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 40, y: 40 },\n targetDecorator: { shape: 'Arrow' }, style: { strokeWidth: 1 }\n },\n {\n id: 'Link2', type: 'Orthogonal', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 40, y: 40 },\n targetDecorator: { shape: 'Arrow' }, style: { strokeWidth: 1, strokeDashArray: '4 4' }\n },\n {\n id: 'Link21', type: 'Straight', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 60, y: 60 },\n targetDecorator: { shape: 'Arrow' }, style: { strokeWidth: 1 }\n },\n {\n id: 'Link22', type: 'Straight', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 60, y: 60 },\n targetDecorator: { shape: 'Arrow' }, style: { strokeWidth: 1, strokeDashArray: '4 4' }\n }\n ], title: 'Connectors'\n }\n ];\n //Initializes the symbol palette\n var palette = new ej.diagrams.SymbolPalette({\n expandMode: 'Multiple',\n palettes: palettes,\n width: '100%', height: '100%',\n symbolMargin: { left: 8, right: 8, top: 8, bottom: 8 },\n symbolHeight: 48, symbolWidth: 48,\n getSymbolInfo: function (symbol) {\n return { tooltip: symbol.addInfo ? symbol.addInfo.tooltip : symbol.id };\n }\n });\n\n palette.appendTo('#symbolpalette');\n addEvents();\n\n\n"}
\ No newline at end of file
diff --git a/src/diagram/symbol-palette-stack.json b/src/diagram/symbol-palette-stack.json
index 8ce9a9e3..4c129183 100644
--- a/src/diagram/symbol-palette-stack.json
+++ b/src/diagram/symbol-palette-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}/**\n * Default symbol palette sample\n */\nej.diagrams.Diagram.Inject(ej.diagrams.UndoRedo);\n//enable or disable the header icon for Symbol palette.\nvar palette;\nvar animation;\nvar expand;\nvar size;\nvar headericon;\nvar itemtext;\nfunction onHeaderIconChange(args) {\n for (var i = 0; i < palette.palettes.length; i++) {\n if (args.checked) {\n if (i === 0) {\n palette.palettes[i].iconCss = 'e-ddb-icons e-basic';\n } else if (i === 1) {\n palette.palettes[i].iconCss = 'e-ddb-icons e-flow';\n } else if (i === 2) {\n palette.palettes[i].iconCss = 'e-ddb-icons e-connector';\n }\n } else {\n palette.palettes[i].iconCss = '';\n }\n }\n}\n\nfunction onAnimationChange(args) {\n palette.enableAnimation = args.checked;\n}\n\nfunction onItemTextChange(args) {\n if (args.checked) {\n palette.getSymbolInfo = function (symbol) {\n if (symbol.text !== undefined) {\n return { description: { text: symbol.text, overflow: 'Wrap' } };\n }\n return { description: { text: symbol.id } };\n };\n }\n else {\n palette.getSymbolInfo = function (symbol) {\n return { description: { text: '' } };\n };\n }\n palette.dataBind();\n}\n\n //Initialize the flowshapes for the symbol palatte\n var flowshapes = [\n { id: 'terminator', shape: { type: 'Flow', shape: 'Terminator' } },\n { id: 'process', shape: { type: 'Flow', shape: 'Process' } },\n { id: 'sort', shape: { type: 'Flow', shape: 'Sort' } },\n { id: 'document', shape: { type: 'Flow', shape: 'Document' } },\n { id: 'predefinedprocess', shape: { type: 'Flow', shape: 'PreDefinedProcess' } },\n { id: 'papertap', shape: { type: 'Flow', shape: 'PaperTap' } },\n { id: 'directdata', shape: { type: 'Flow', shape: 'DirectData' } },\n { id: 'sequentialdata', shape: { type: 'Flow', shape: 'SequentialData' } },\n ];\n var basicShapes = [\n { id: 'Rectangle', shape: { type: 'Basic', shape: 'Rectangle' } },\n { id: 'Ellipse', shape: { type: 'Basic', shape: 'Ellipse' } },\n { id: 'Parallelogram', shape: { type: 'Basic', shape: 'Parallelogram' } },\n { id: 'Triangle', shape: { type: 'Basic', shape: 'Triangle' } },\n { id: 'Hexagon', shape: { type: 'Basic', shape: 'Hexagon' } },\n { id: 'Pentagon', shape: { type: 'Basic', shape: 'Pentagon' } },\n { id: 'Cylinder', shape: { type: 'Basic', shape: 'Cylinder' } },\n { id: 'Star', shape: { type: 'Basic', shape: 'Star' } }\n ];\n //Initializes connector symbols for the symbol palette\n var connectorSymbols = [\n {\n id: 'Link1', type: 'Orthogonal', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 40, y: 40 },\n targetDecorator: { shape: 'Arrow' }, style: { strokeWidth: 2 }\n },\n {\n id: 'link3', type: 'Orthogonal', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 40, y: 40 },\n style: { strokeWidth: 2 }, targetDecorator: { shape: 'None' }\n },\n {\n id: 'Link21', type: 'Straight', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 40, y: 40 },\n targetDecorator: { shape: 'Arrow' }, style: { strokeWidth: 2 }\n },\n {\n id: 'link23', type: 'Straight', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 40, y: 40 },\n style: { strokeWidth: 2 }, targetDecorator: { shape: 'None' }\n },\n {\n id: 'link33', type: 'Bezier', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 40, y: 40 },\n style: { strokeWidth: 2 }, targetDecorator: { shape: 'None' }\n },\n ];\n //Initializes the symbol palette\n palette = new ej.diagrams.SymbolPalette({\n expandMode: 'Multiple', allowDrag: false,\n palettes: [\n { id: 'flow', expanded: true, symbols: flowshapes, iconCss: 'e-ddb-icons e-basic', title: 'Flow Shapes' },\n { id: 'basic', expanded: true, symbols: basicShapes, iconCss: 'e-ddb-icons e-flow', title: 'Basic Shapes' },\n { id: 'connectors', expanded: true, symbols: connectorSymbols, iconCss: 'e-ddb-icons e-connector', title: 'Connectors' }\n ], enableAnimation: true,\n width: '100%', height: '700px', symbolHeight: 80, symbolWidth: 80,\n //set Node default value\n getNodeDefaults: function (symbol) {\n if (symbol.id === 'terminator' || symbol.id === 'process') {\n symbol.width = 80;\n symbol.height = 40;\n }\n else if (symbol.id === 'document' || symbol.id === 'predefinedprocess' ||\n symbol.id === 'papertap' || symbol.id === 'directdata') {\n symbol.width = 50;\n symbol.height = 40;\n }\n symbol.style = { strokeWidth: 2 };\n },\n getSymbolInfo: function (symbol) {\n return { fit: true };\n },\n symbolMargin: { left: 15, right: 15, top: 15, bottom: 15 }\n });\n palette.appendTo('#symbolpalette');\n //enable or disable the animation of the symbol palette.\n animation = new ej.buttons.CheckBox({\n checked: true,\n change: onAnimationChange\n });\n palette.dataBind();\n animation.appendTo('#animation');\n //DropDownList is used to change the expandMode of the Symbolpallete.\n expand = new ej.dropdowns.DropDownList({\n index: 1,\n change: function () {\n palette.expandMode = expand.value;\n palette.dataBind();\n }\n });\n expand.appendTo('#expand');\n //NumericTextBox is used to apply the size of the Symbol.\n size = new ej.inputs.NumericTextBox({\n value: 80, min: 40,\n max: 100, width: 120,\n step: 5,\n format: '##.##',\n change: function () {\n palette.symbolHeight = size.value;\n palette.symbolWidth = size.value;\n }\n });\n palette.dataBind();\n size.appendTo('#size');\n //Add or Remove the Text for Symbol palette item.\n itemtext = new ej.buttons.CheckBox({\n change: onItemTextChange\n });\n itemtext.appendTo('#itemtext');\n headericon = new ej.buttons.CheckBox({\n checked: true,\n change: onHeaderIconChange\n });\n palette.dataBind();\n headericon.appendTo('#headericon');\n\n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}/**\n * Default symbol palette sample\n */\nej.diagrams.Diagram.Inject(ej.diagrams.UndoRedo);\n//enable or disable the header icon for Symbol palette.\nvar palette;\nvar animation;\nvar expand;\nvar size;\nvar headericon;\nvar itemtext;\nfunction onHeaderIconChange(args) {\n for (var i = 0; i < palette.palettes.length; i++) {\n if (args.checked) {\n if (i === 0) {\n palette.palettes[i].iconCss = 'e-ddb-icons e-basic';\n } else if (i === 1) {\n palette.palettes[i].iconCss = 'e-ddb-icons e-flow';\n } else if (i === 2) {\n palette.palettes[i].iconCss = 'e-ddb-icons e-connector';\n }\n } else {\n palette.palettes[i].iconCss = '';\n }\n }\n}\n\nfunction onAnimationChange(args) {\n palette.enableAnimation = args.checked;\n}\n\nfunction onItemTextChange(args) {\n if (args.checked) {\n palette.getSymbolInfo = function (symbol) {\n if (symbol.text !== undefined) {\n return { description: { text: symbol.text, overflow: 'Wrap' } };\n }\n return { description: { text: symbol.id } };\n };\n }\n else {\n palette.getSymbolInfo = function (symbol) {\n return { description: { text: '' } };\n };\n }\n palette.dataBind();\n}\n\n //Initialize the flowshapes for the symbol palatte\n var flowshapes = [\n { id: 'terminator', shape: { type: 'Flow', shape: 'Terminator' } },\n { id: 'process', shape: { type: 'Flow', shape: 'Process' } },\n { id: 'sort', shape: { type: 'Flow', shape: 'Sort' } },\n { id: 'document', shape: { type: 'Flow', shape: 'Document' } },\n { id: 'predefinedprocess', shape: { type: 'Flow', shape: 'PreDefinedProcess' } },\n { id: 'papertap', shape: { type: 'Flow', shape: 'PaperTap' } },\n { id: 'directdata', shape: { type: 'Flow', shape: 'DirectData' } },\n { id: 'sequentialdata', shape: { type: 'Flow', shape: 'SequentialData' } },\n ];\n var basicShapes = [\n { id: 'Rectangle', shape: { type: 'Basic', shape: 'Rectangle' } },\n { id: 'Ellipse', shape: { type: 'Basic', shape: 'Ellipse' } },\n { id: 'Parallelogram', shape: { type: 'Basic', shape: 'Parallelogram' } },\n { id: 'Triangle', shape: { type: 'Basic', shape: 'Triangle' } },\n { id: 'Hexagon', shape: { type: 'Basic', shape: 'Hexagon' } },\n { id: 'Pentagon', shape: { type: 'Basic', shape: 'Pentagon' } },\n { id: 'Cylinder', shape: { type: 'Basic', shape: 'Cylinder' } },\n { id: 'Star', shape: { type: 'Basic', shape: 'Star' } }\n ];\n //Initializes connector symbols for the symbol palette\n var connectorSymbols = [\n {\n id: 'Link1', type: 'Orthogonal', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 40, y: 40 },\n targetDecorator: { shape: 'Arrow' }, style: { strokeWidth: 2 }\n },\n {\n id: 'link3', type: 'Orthogonal', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 40, y: 40 },\n style: { strokeWidth: 2 }, targetDecorator: { shape: 'None' }\n },\n {\n id: 'Link21', type: 'Straight', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 40, y: 40 },\n targetDecorator: { shape: 'Arrow' }, style: { strokeWidth: 2 }\n },\n {\n id: 'link23', type: 'Straight', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 40, y: 40 },\n style: { strokeWidth: 2 }, targetDecorator: { shape: 'None' }\n },\n {\n id: 'link33', type: 'Bezier', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 40, y: 40 },\n style: { strokeWidth: 2 }, targetDecorator: { shape: 'None' }\n },\n ];\n //Initializes the symbol palette\n palette = new ej.diagrams.SymbolPalette({\n expandMode: 'Multiple', allowDrag: false,\n palettes: [\n { id: 'flow', expanded: true, symbols: flowshapes, iconCss: 'e-ddb-icons e-basic', title: 'Flow Shapes' },\n { id: 'basic', expanded: true, symbols: basicShapes, iconCss: 'e-ddb-icons e-flow', title: 'Basic Shapes' },\n { id: 'connectors', expanded: true, symbols: connectorSymbols, iconCss: 'e-ddb-icons e-connector', title: 'Connectors' }\n ], enableAnimation: true,\n width: '100%', height: '700px', symbolHeight: 80, symbolWidth: 80,\n //set Node default value\n getNodeDefaults: function (symbol) {\n if (symbol.id === 'terminator' || symbol.id === 'process') {\n symbol.width = 80;\n symbol.height = 40;\n }\n else if (symbol.id === 'document' || symbol.id === 'predefinedprocess' ||\n symbol.id === 'papertap' || symbol.id === 'directdata') {\n symbol.width = 50;\n symbol.height = 40;\n }\n symbol.style = { strokeWidth: 2 };\n },\n getSymbolInfo: function (symbol) {\n return { fit: true };\n },\n symbolMargin: { left: 15, right: 15, top: 15, bottom: 15 }\n });\n palette.appendTo('#symbolpalette');\n //enable or disable the animation of the symbol palette.\n animation = new ej.buttons.CheckBox({\n checked: true,\n change: onAnimationChange\n });\n palette.dataBind();\n animation.appendTo('#animation');\n //DropDownList is used to change the expandMode of the Symbolpallete.\n expand = new ej.dropdowns.DropDownList({\n index: 1,\n change: function () {\n palette.expandMode = expand.value;\n palette.dataBind();\n }\n });\n expand.appendTo('#expand');\n //NumericTextBox is used to apply the size of the Symbol.\n size = new ej.inputs.NumericTextBox({\n value: 80, min: 40,\n max: 100, width: 120,\n step: 5,\n format: '##.##',\n change: function () {\n palette.symbolHeight = size.value;\n palette.symbolWidth = size.value;\n }\n });\n palette.dataBind();\n size.appendTo('#size');\n //Add or Remove the Text for Symbol palette item.\n itemtext = new ej.buttons.CheckBox({\n change: onItemTextChange\n });\n itemtext.appendTo('#itemtext');\n headericon = new ej.buttons.CheckBox({\n checked: true,\n change: onHeaderIconChange\n });\n palette.dataBind();\n headericon.appendTo('#headericon');\n\n"}
\ No newline at end of file
diff --git a/src/diagram/symmetric-layout-stack.json b/src/diagram/symmetric-layout-stack.json
index 37da4802..5a12309b 100644
--- a/src/diagram/symmetric-layout-stack.json
+++ b/src/diagram/symmetric-layout-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}/**\n * Sample for Symmentric layout.\n */\n\nej.diagrams.Diagram.Inject(ej.diagrams.DataBinding, ej.diagrams.SymmetricLayout);\n\n\n\n\n //Initializtion of the diagram.\n var diagram = new ej.diagrams.Diagram({\n width: '100%', height: '550px',\n layout: { type: 'SymmetricalLayout', springLength: 80, springFactor: 0.8, maxIteration: 500, margin: { left: 20, top: 20 } },\n //Set the parent and child relationship of DataSource.\n dataSourceSettings: { id: 'Id', parentId: 'Source', dataManager: new ej.data.DataManager(window.symmetricData) },\n //Set the constraints of the SnapSettings\n snapSettings: { constraints: ej.diagrams.SnapConstraints.None },\n //Set the default values of Node\n getNodeDefaults: function (obj) {\n obj.height = 20;\n obj.width = 20;\n obj.style = { fill: 'transparent', strokeWidth: 2 };\n return obj;\n },\n //Sets the default values of connector\n getConnectorDefaults: function (connector) {\n connector.targetDecorator.shape = 'None';\n connector.type = 'Straight';\n return connector;\n },\n setNodeTemplate: function (obj) {\n var shape = { type: 'Basic', shape: 'Ellipse' };\n if (!(obj.data.Type) || obj.data.Type === 'Server') {\n obj.width = 30;\n obj.height = 30;\n obj.shape = {\n type: 'Native', content: '' +\n '' +\n ' ' +\n ' ' +\n ' '\n };\n }\n else {\n obj.shape = shape;\n obj.style = { fill: 'orange' };\n }\n },\n tool: ej.diagrams.DiagramTools.ZoomPan\n });\n diagram.appendTo('#diagram');\n diagram.pan(0, 0);\n var springLength = new ej.inputs.NumericTextBox({\n format: '###.##',\n value: 80,\n step: 1,\n });\n springLength.appendTo('#springlength');\n var springfactor = new ej.inputs.NumericTextBox({\n format: '###.##',\n value: 0.8,\n step: 0.1,\n });\n springfactor.appendTo('#springfactor');\n var maxiteration = new ej.inputs.NumericTextBox({\n format: '###.##',\n value: 500,\n step: 1,\n });\n maxiteration.appendTo('#maxiteration');\n var layout = new ej.buttons.Button({ cssClass: 'e-small' });\n layout.appendTo('#refresh');\n //used to apply the alignment of the layout. \n document.getElementById('refresh').onclick = function () {\n diagram.layout.springLength = springLength.value;\n diagram.layout.springFactor = springfactor.value;\n diagram.layout.maxIteration = maxiteration.value;\n diagram.doLayout();\n };\n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}/**\n * Sample for Symmentric layout.\n */\n\nej.diagrams.Diagram.Inject(ej.diagrams.DataBinding, ej.diagrams.SymmetricLayout);\n\n\n\n\n //Initializtion of the diagram.\n var diagram = new ej.diagrams.Diagram({\n width: '100%', height: '550px',\n layout: { type: 'SymmetricalLayout', springLength: 80, springFactor: 0.8, maxIteration: 500, margin: { left: 20, top: 20 } },\n //Set the parent and child relationship of DataSource.\n dataSourceSettings: { id: 'Id', parentId: 'Source', dataManager: new ej.data.DataManager(window.symmetricData) },\n //Set the constraints of the SnapSettings\n snapSettings: { constraints: ej.diagrams.SnapConstraints.None },\n //Set the default values of Node\n getNodeDefaults: function (obj) {\n obj.height = 20;\n obj.width = 20;\n obj.style = { fill: 'transparent', strokeWidth: 2 };\n return obj;\n },\n //Sets the default values of connector\n getConnectorDefaults: function (connector) {\n connector.targetDecorator.shape = 'None';\n connector.type = 'Straight';\n return connector;\n },\n setNodeTemplate: function (obj) {\n var shape = { type: 'Basic', shape: 'Ellipse' };\n if (!(obj.data.Type) || obj.data.Type === 'Server') {\n obj.width = 30;\n obj.height = 30;\n obj.shape = {\n type: 'Native', content: '' +\n '' +\n ' ' +\n ' ' +\n ' '\n };\n }\n else {\n obj.shape = shape;\n obj.style = { fill: 'orange' };\n }\n },\n tool: ej.diagrams.DiagramTools.ZoomPan\n });\n diagram.appendTo('#diagram');\n diagram.pan(0, 0);\n var springLength = new ej.inputs.NumericTextBox({\n format: '###.##',\n value: 80,\n step: 1,\n });\n springLength.appendTo('#springlength');\n var springfactor = new ej.inputs.NumericTextBox({\n format: '###.##',\n value: 0.8,\n step: 0.1,\n });\n springfactor.appendTo('#springfactor');\n var maxiteration = new ej.inputs.NumericTextBox({\n format: '###.##',\n value: 500,\n step: 1,\n });\n maxiteration.appendTo('#maxiteration');\n var layout = new ej.buttons.Button({ cssClass: 'e-small' });\n layout.appendTo('#refresh');\n //used to apply the alignment of the layout. \n document.getElementById('refresh').onclick = function () {\n diagram.layout.springLength = springLength.value;\n diagram.layout.springFactor = springfactor.value;\n diagram.layout.maxIteration = maxiteration.value;\n diagram.doLayout();\n };\n"}
\ No newline at end of file
diff --git a/src/diagram/tooltip-Sample-stack.json b/src/diagram/tooltip-Sample-stack.json
index 59d32519..f723f2ff 100644
--- a/src/diagram/tooltip-Sample-stack.json
+++ b/src/diagram/tooltip-Sample-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}\nej.diagrams.Diagram.Inject(ej.diagrams.BpmnDiagrams);\n\n\nfunction getcontent() {\n var tooltipContent = document.createElement('div');\n tooltipContent.innerHTML = ' Tooltip !!!
';\n return tooltipContent;\n}\n\n\n\n var nodes = [\n {\n id: 'node1', width: 60, height: 60, offsetX: 35, offsetY: 120,\n annotations: [{ content: 'Customer query', offset: { x: 0.5, y: 1 }, margin: { top: 15 } }],\n tooltip: { content: 'Queries from the customer' },\n shape: { type: 'Bpmn', shape: 'Event', event: { event: 'Start', trigger: 'Message' } }\n },\n {\n id: 'node2', width: 75, height: 70, offsetX: 140, offsetY: 120,\n annotations: [{ content: 'Enough details?', offset: { x: 0.50, y: 0.50 } }],\n tooltip: { content: 'Whether the provided information is enough?' }, shape: { type: 'Bpmn', shape: 'Gateway' }\n },\n {\n id: 'node3', width: 60, height: 50, offsetX: 270, offsetY: 120,\n annotations: [{ content: 'Analyse', offset: { x: 0.50, y: 0.50 } }],\n tooltip: { content: 'Analysing the query' },\n shape: { type: 'Bpmn', shape: 'Activity', activity: { activity: 'Task' } },\n },\n {\n id: 'node4', width: 75, height: 70, offsetX: 370, offsetY: 120, shape: {\n type: 'Bpmn', shape: 'Gateway',\n gateway: { type: 'Exclusive' }\n },\n tooltip: { content: 'proceed to validate?' },\n },\n {\n id: 'node5', width: 75, height: 70, offsetX: 570, offsetY: 120,\n annotations: [{ content: 'Validate', offset: { x: 0.50, y: 0.50 } }],\n tooltip: { content: 'Whether the reported/requested bug/feature is valid?' }, shape: { type: 'Bpmn', shape: 'Gateway' }\n },\n {\n id: 'node6', width: 60, height: 60, offsetX: 720, offsetY: 120,\n tooltip: { content: 'Send the invalid message to customer' },\n shape: { type: 'Bpmn', shape: 'Event', event: { event: 'End', trigger: 'Message' } }\n },\n {\n id: 'node7', width: 60, height: 50, offsetX: 140, offsetY: 280,\n annotations: [{ content: 'Request', offset: { x: 0.50, y: 0.50 }, margin: { top: 5 } }],\n tooltip: { content: 'Requesting for more information' },\n shape: { type: 'Bpmn', shape: 'Activity', activity: { activity: 'Task', task: { type: 'Send' } } }\n },\n {\n id: 'node8', width: 60, height: 60, offsetX: 370, offsetY: 280,\n tooltip: { content: 'Share the User Guide/Knowledge Base link' },\n shape: { type: 'Bpmn', shape: 'Event', event: { event: 'Start', trigger: 'Message' } }\n },\n {\n id: 'node9', width: 70, height: 50, offsetX: 570, offsetY: 280,\n annotations: [{ content: 'Log bug/feature', offset: { x: 0.50, y: 0.50 } }], tooltip: { content: 'Log the bug/feature' },\n shape: { type: 'Bpmn', shape: 'Activity', activity: { activity: 'Task' } }\n },\n {\n id: 'node10', width: 75, height: 55, offsetX: 390, offsetY: 430,\n annotations: [{ content: 'Implement', offset: { x: 0.50, y: 0.50 } }], tooltip: { content: 'Fix the bug/Add the feature' },\n shape: {\n type: 'Bpmn', shape: 'Activity', activity: {\n activity: 'SubProcess', subProcess: {\n collapsed: false,\n events: [{ event: 'Intermediate', trigger: 'Timer', offset: { x: 0.5, y: 1 }, width: 25, height: 25 }]\n }\n }\n }\n },\n {\n id: 'node12', width: 60, height: 60, offsetX: 265, offsetY: 430, tooltip: { content: 'Provide the solution' },\n shape: { type: 'Bpmn', shape: 'Event', event: { event: 'End', trigger: 'Message' } }\n },\n {\n id: 'node13', width: 60, height: 60, offsetX: 720, offsetY: 430, tooltip: { content: 'Share the task details' },\n shape: { type: 'Bpmn', shape: 'Event', event: { event: 'End', trigger: 'Message' } }\n },\n {\n id: 'node14', width: 60, height: 60, offsetX: 570, offsetY: 430, shape: {\n type: 'Bpmn', shape: 'Gateway',\n gateway: { type: 'Parallel' }\n },\n tooltip: { content: 'can log?' },\n },\n ];\n var connectors = [\n { id: 'connector1', sourceID: 'node1', targetID: 'node2' },\n { id: 'connector2', sourceID: 'node2', targetID: 'node3' },\n { id: 'connector3', sourceID: 'node3', targetID: 'node4' },\n {\n id: 'connector4', sourceID: 'node4', targetID: 'node5',\n annotations: [{ content: 'Feature/Bug', offset: 0.5, style: { fill: 'white', textWrapping: 'Wrap' } }]\n },\n {\n id: 'connector5', sourceID: 'node5', targetID: 'node6',\n annotations: [{ content: 'Invalid', offset: 0.5, style: { fill: 'white' } }]\n },\n { id: 'connector6', sourceID: 'node2', targetID: 'node7' },\n {\n id: 'connector7', sourceID: 'node4', targetID: 'node8',\n annotations: [{ content: 'How to?', offset: 0.5, style: { fill: 'white' } }]\n },\n { id: 'connector8', sourceID: 'node5', targetID: 'node9' },\n { id: 'connector9', sourceID: 'node14', targetID: 'node13' },\n {\n id: 'connector10', sourceID: 'node7', targetID: 'node3', type: 'Orthogonal',\n segments: [{ type: 'Orthogonal', length: 100, direction: 'Right' }, { type: 'Orthogonal', length: 100, direction: 'Top' }]\n },\n { id: 'connector11', sourceID: 'node14', targetID: 'node10' },\n { id: 'connector12', sourceID: 'node10', targetID: 'node12' },\n { id: 'connector13', sourceID: 'node9', targetID: 'node14' },\n ];\n function getcontent() {\n var tooltipContent = document.createElement('div');\n tooltipContent.innerHTML =\n ' Tooltip !!!
';\n return tooltipContent;\n }\n function getConnectorDefaults(connector, diagram) {\n connector.type = 'Orthogonal';\n return connector;\n }\n function getNodeDefaults(obj) {\n obj.constraints = ej.diagrams.NodeConstraints.Default | ej.diagrams.NodeConstraints.Tooltip;\n return obj;\n }\n\n //Initializes diagram control\n var diagram = new ej.diagrams.Diagram({\n width: '100%', height: '645px', connectors: connectors, nodes: nodes,\n getConnectorDefaults: getConnectorDefaults,\n getNodeDefaults: getNodeDefaults,\n snapSettings: { constraints: ej.diagrams.SnapConstraints.None },\n tooltip: {\n content: getcontent(), position: 'TopLeft', relativeMode: 'Object',\n animation: { open: { effect: 'FadeZoomIn', delay: 100 }, close: { effect: 'FadeZoomOut', delay: 100 } }\n }\n });\n diagram.appendTo('#diagram');\n var modevalue = [\n { type: 'Object', text: 'Object' },\n { type: 'Mouse', text: 'Mouse' },\n ];\n var positionValue = [\n { type: 'TopLeft', text: 'TopLeft' },\n { type: 'TopCenter', text: 'TopCenter' },\n { type: 'TopRight', text: 'TopRight' },\n { type: 'BottomLeft', text: 'BottomLeft' },\n { type: 'BottomCenter', text: 'BottomCenter' },\n { type: 'BottomRight', text: 'BottomRight' },\n { type: 'LeftTop', text: 'LeftTop' },\n { type: 'LeftCenter', text: 'LeftCenter' },\n { type: 'LeftBottom', text: 'LeftBottom' },\n { type: 'RightTop', text: 'RightTop' },\n { type: 'RightCenter', text: 'RightCenter' },\n { type: 'RightBottom', text: 'RightBottom' },\n ];\n var effectValue = [\n { type: 'FadeIn', text: 'FadeIn' },\n { type: 'FadeOut', text: 'FadeOut' },\n { type: 'FadeZoomIn', text: 'FadeZoomIn' },\n { type: 'FadeZoomOut', text: 'FadeZoomOut' },\n { type: 'FlipXDownIn', text: 'FlipXDownIn' },\n { type: 'FlipXDownOut', text: 'FlipXDownOut' },\n { type: 'FlipXUpIn', text: 'FlipXUpIn' },\n { type: 'FlipXUpOut', text: 'FlipXUpOut' },\n { type: 'FlipYLeftIn', text: 'FlipYLeftIn' },\n { type: 'FlipYLeftOut', text: 'FlipYLeftOut' },\n { type: 'FlipYRightIn', text: 'FlipYRightIn' },\n { type: 'FlipYRightOut', text: 'FlipYRightOut' },\n { type: 'ZoomIn', text: 'ZoomIn' },\n { type: 'ZoomOut', text: 'ZoomOut' },\n { type: 'None', text: 'None' },\n ];\n var mode = new ej.dropdowns.DropDownList({\n dataSource: modevalue,\n fields: { value: 'type', text: 'text' }, popupWidth: 150,\n width: '100%', placeholder: 'select a font type', index: 0,\n change: function () {\n if (mode.value === 'Mouse') {\n diagram.tooltip.relativeMode = 'Mouse';\n }\n else {\n diagram.tooltip.relativeMode = 'Object';\n }\n }\n });\n mode.appendTo('#mode');\n var position = new ej.dropdowns.DropDownList({\n dataSource: positionValue,\n fields: { value: 'type', text: 'text' }, popupWidth: 150,\n width: '100%', placeholder: 'select a font type', index: 0,\n change: function (args) {\n var nodes = diagram.nodes;\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].tooltip) {\n nodes[i].tooltip.position = args.value;\n diagram.dataBind();\n }\n }\n }\n });\n position.appendTo('#position');\n var effect = new ej.dropdowns.DropDownList({\n dataSource: effectValue,\n fields: { value: 'type', text: 'text' }, popupWidth: 150,\n width: '100%', placeholder: 'select a effect type', index: 0,\n change: function (args) {\n diagram.tooltip.animation.open.effect = args.value;\n diagram.tooltip.animation.close.effect = args.value;\n }\n });\n effect.appendTo('#effect');\n var textContent = new ej.inputs.TextBox({\n placeholder: 'Enter text content',\n floatLabelType: 'Auto',\n change: function (args) {\n diagram.tooltip.content = args.value.toString();\n diagram.dataBind();\n }\n });\n textContent.appendTo('#textContent');\n var htmlContent = new ej.inputs.TextBox({\n placeholder: 'Enter html content',\n floatLabelType: 'Auto',\n change: function (args) {\n var tooltipContent = document.createElement('div');\n var description = args.value.toString();\n tooltipContent.innerHTML =\n ' ' + description + '
';\n diagram.tooltip.content = tooltipContent;\n diagram.dataBind();\n }\n });\n htmlContent.appendTo('#htmlContent');\n var animation = new ej.inputs.NumericTextBox({\n format: '###.##',\n change: function (args) {\n diagram.tooltip.animation.close.duration = args.value;\n diagram.tooltip.animation.open.duration = args.value;\n }\n });\n animation.appendTo('#duration');\n var temp = '' +\n '
';\n diagram.fitToPage({ mode: 'Width' });\n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}\nej.diagrams.Diagram.Inject(ej.diagrams.BpmnDiagrams);\n\n\nfunction getcontent() {\n var tooltipContent = document.createElement('div');\n tooltipContent.innerHTML = ' Tooltip !!!
';\n return tooltipContent;\n}\n\n\n\n var nodes = [\n {\n id: 'node1', width: 60, height: 60, offsetX: 35, offsetY: 120,\n annotations: [{ content: 'Customer query', offset: { x: 0.5, y: 1 }, margin: { top: 15 } }],\n tooltip: { content: 'Queries from the customer' },\n shape: { type: 'Bpmn', shape: 'Event', event: { event: 'Start', trigger: 'Message' } }\n },\n {\n id: 'node2', width: 75, height: 70, offsetX: 140, offsetY: 120,\n annotations: [{ content: 'Enough details?', offset: { x: 0.50, y: 0.50 } }],\n tooltip: { content: 'Whether the provided information is enough?' }, shape: { type: 'Bpmn', shape: 'Gateway' }\n },\n {\n id: 'node3', width: 60, height: 50, offsetX: 270, offsetY: 120,\n annotations: [{ content: 'Analyse', offset: { x: 0.50, y: 0.50 } }],\n tooltip: { content: 'Analysing the query' },\n shape: { type: 'Bpmn', shape: 'Activity', activity: { activity: 'Task' } },\n },\n {\n id: 'node4', width: 75, height: 70, offsetX: 370, offsetY: 120, shape: {\n type: 'Bpmn', shape: 'Gateway',\n gateway: { type: 'Exclusive' }\n },\n tooltip: { content: 'proceed to validate?' },\n },\n {\n id: 'node5', width: 75, height: 70, offsetX: 570, offsetY: 120,\n annotations: [{ content: 'Validate', offset: { x: 0.50, y: 0.50 } }],\n tooltip: { content: 'Whether the reported/requested bug/feature is valid?' }, shape: { type: 'Bpmn', shape: 'Gateway' }\n },\n {\n id: 'node6', width: 60, height: 60, offsetX: 720, offsetY: 120,\n tooltip: { content: 'Send the invalid message to customer' },\n shape: { type: 'Bpmn', shape: 'Event', event: { event: 'End', trigger: 'Message' } }\n },\n {\n id: 'node7', width: 60, height: 50, offsetX: 140, offsetY: 280,\n annotations: [{ content: 'Request', offset: { x: 0.50, y: 0.50 }, margin: { top: 5 } }],\n tooltip: { content: 'Requesting for more information' },\n shape: { type: 'Bpmn', shape: 'Activity', activity: { activity: 'Task', task: { type: 'Send' } } }\n },\n {\n id: 'node8', width: 60, height: 60, offsetX: 370, offsetY: 280,\n tooltip: { content: 'Share the User Guide/Knowledge Base link' },\n shape: { type: 'Bpmn', shape: 'Event', event: { event: 'Start', trigger: 'Message' } }\n },\n {\n id: 'node9', width: 70, height: 50, offsetX: 570, offsetY: 280,\n annotations: [{ content: 'Log bug/feature', offset: { x: 0.50, y: 0.50 } }], tooltip: { content: 'Log the bug/feature' },\n shape: { type: 'Bpmn', shape: 'Activity', activity: { activity: 'Task' } }\n },\n {\n id: 'node10', width: 75, height: 55, offsetX: 390, offsetY: 430,\n annotations: [{ content: 'Implement', offset: { x: 0.50, y: 0.50 } }], tooltip: { content: 'Fix the bug/Add the feature' },\n shape: {\n type: 'Bpmn', shape: 'Activity', activity: {\n activity: 'SubProcess', subProcess: {\n collapsed: false,\n events: [{ event: 'Intermediate', trigger: 'Timer', offset: { x: 0.5, y: 1 }, width: 25, height: 25 }]\n }\n }\n }\n },\n {\n id: 'node12', width: 60, height: 60, offsetX: 265, offsetY: 430, tooltip: { content: 'Provide the solution' },\n shape: { type: 'Bpmn', shape: 'Event', event: { event: 'End', trigger: 'Message' } }\n },\n {\n id: 'node13', width: 60, height: 60, offsetX: 720, offsetY: 430, tooltip: { content: 'Share the task details' },\n shape: { type: 'Bpmn', shape: 'Event', event: { event: 'End', trigger: 'Message' } }\n },\n {\n id: 'node14', width: 60, height: 60, offsetX: 570, offsetY: 430, shape: {\n type: 'Bpmn', shape: 'Gateway',\n gateway: { type: 'Parallel' }\n },\n tooltip: { content: 'can log?' },\n },\n ];\n var connectors = [\n { id: 'connector1', sourceID: 'node1', targetID: 'node2' },\n { id: 'connector2', sourceID: 'node2', targetID: 'node3' },\n { id: 'connector3', sourceID: 'node3', targetID: 'node4' },\n {\n id: 'connector4', sourceID: 'node4', targetID: 'node5',\n annotations: [{ content: 'Feature/Bug', offset: 0.5, style: { fill: 'white', textWrapping: 'Wrap' } }]\n },\n {\n id: 'connector5', sourceID: 'node5', targetID: 'node6',\n annotations: [{ content: 'Invalid', offset: 0.5, style: { fill: 'white' } }]\n },\n { id: 'connector6', sourceID: 'node2', targetID: 'node7' },\n {\n id: 'connector7', sourceID: 'node4', targetID: 'node8',\n annotations: [{ content: 'How to?', offset: 0.5, style: { fill: 'white' } }]\n },\n { id: 'connector8', sourceID: 'node5', targetID: 'node9' },\n { id: 'connector9', sourceID: 'node14', targetID: 'node13' },\n {\n id: 'connector10', sourceID: 'node7', targetID: 'node3', type: 'Orthogonal',\n segments: [{ type: 'Orthogonal', length: 100, direction: 'Right' }, { type: 'Orthogonal', length: 100, direction: 'Top' }]\n },\n { id: 'connector11', sourceID: 'node14', targetID: 'node10' },\n { id: 'connector12', sourceID: 'node10', targetID: 'node12' },\n { id: 'connector13', sourceID: 'node9', targetID: 'node14' },\n ];\n function getcontent() {\n var tooltipContent = document.createElement('div');\n tooltipContent.innerHTML =\n ' Tooltip !!!
';\n return tooltipContent;\n }\n function getConnectorDefaults(connector, diagram) {\n connector.type = 'Orthogonal';\n connector.style = { strokeWidth: 2 };\n return connector;\n }\n function getNodeDefaults(obj) {\n obj.offsetX += 0.5;\n obj.offsetY += 0.5;\n obj.constraints = ej.diagrams.NodeConstraints.Default | ej.diagrams.NodeConstraints.Tooltip;\n obj.style = { strokeWidth: 2 };\n return obj;\n }\n\n //Initializes diagram control\n var diagram = new ej.diagrams.Diagram({\n width: '100%', height: '645px', connectors: connectors, nodes: nodes,\n getConnectorDefaults: getConnectorDefaults,\n getNodeDefaults: getNodeDefaults,\n snapSettings: { constraints: ej.diagrams.SnapConstraints.None },\n tooltip: {\n content: getcontent(), position: 'TopLeft', relativeMode: 'Object',\n animation: { open: { effect: 'FadeZoomIn', delay: 100 }, close: { effect: 'FadeZoomOut', delay: 100 } }\n }\n });\n diagram.appendTo('#diagram');\n var modevalue = [\n { type: 'Object', text: 'Object' },\n { type: 'Mouse', text: 'Mouse' },\n ];\n var positionValue = [\n { type: 'TopLeft', text: 'TopLeft' },\n { type: 'TopCenter', text: 'TopCenter' },\n { type: 'TopRight', text: 'TopRight' },\n { type: 'BottomLeft', text: 'BottomLeft' },\n { type: 'BottomCenter', text: 'BottomCenter' },\n { type: 'BottomRight', text: 'BottomRight' },\n { type: 'LeftTop', text: 'LeftTop' },\n { type: 'LeftCenter', text: 'LeftCenter' },\n { type: 'LeftBottom', text: 'LeftBottom' },\n { type: 'RightTop', text: 'RightTop' },\n { type: 'RightCenter', text: 'RightCenter' },\n { type: 'RightBottom', text: 'RightBottom' },\n ];\n var effectValue = [\n { type: 'FadeIn', text: 'FadeIn' },\n { type: 'FadeOut', text: 'FadeOut' },\n { type: 'FadeZoomIn', text: 'FadeZoomIn' },\n { type: 'FadeZoomOut', text: 'FadeZoomOut' },\n { type: 'FlipXDownIn', text: 'FlipXDownIn' },\n { type: 'FlipXDownOut', text: 'FlipXDownOut' },\n { type: 'FlipXUpIn', text: 'FlipXUpIn' },\n { type: 'FlipXUpOut', text: 'FlipXUpOut' },\n { type: 'FlipYLeftIn', text: 'FlipYLeftIn' },\n { type: 'FlipYLeftOut', text: 'FlipYLeftOut' },\n { type: 'FlipYRightIn', text: 'FlipYRightIn' },\n { type: 'FlipYRightOut', text: 'FlipYRightOut' },\n { type: 'ZoomIn', text: 'ZoomIn' },\n { type: 'ZoomOut', text: 'ZoomOut' },\n { type: 'None', text: 'None' },\n ];\n var mode = new ej.dropdowns.DropDownList({\n dataSource: modevalue,\n fields: { value: 'type', text: 'text' }, popupWidth: 150,\n width: '100%', placeholder: 'select a font type', index: 0,\n change: function () {\n if (mode.value === 'Mouse') {\n diagram.tooltip.relativeMode = 'Mouse';\n }\n else {\n diagram.tooltip.relativeMode = 'Object';\n }\n }\n });\n mode.appendTo('#mode');\n var position = new ej.dropdowns.DropDownList({\n dataSource: positionValue,\n fields: { value: 'type', text: 'text' }, popupWidth: 150,\n width: '100%', placeholder: 'select a font type', index: 0,\n change: function (args) {\n var nodes = diagram.nodes;\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].tooltip) {\n nodes[i].tooltip.position = args.value;\n diagram.dataBind();\n }\n }\n }\n });\n position.appendTo('#position');\n var effect = new ej.dropdowns.DropDownList({\n dataSource: effectValue,\n fields: { value: 'type', text: 'text' }, popupWidth: 150,\n width: '100%', placeholder: 'select a effect type', index: 0,\n change: function (args) {\n diagram.tooltip.animation.open.effect = args.value;\n diagram.tooltip.animation.close.effect = args.value;\n }\n });\n effect.appendTo('#effect');\n var textContent = new ej.inputs.TextBox({\n placeholder: 'Enter text content',\n floatLabelType: 'Auto',\n change: function (args) {\n diagram.tooltip.content = args.value.toString();\n diagram.dataBind();\n }\n });\n textContent.appendTo('#textContent');\n var htmlContent = new ej.inputs.TextBox({\n placeholder: 'Enter html content',\n floatLabelType: 'Auto',\n change: function (args) {\n var tooltipContent = document.createElement('div');\n var description = args.value.toString();\n tooltipContent.innerHTML =\n ' ' + description + '
';\n diagram.tooltip.content = tooltipContent;\n diagram.dataBind();\n }\n });\n htmlContent.appendTo('#htmlContent');\n var animation = new ej.inputs.NumericTextBox({\n format: '###.##',\n change: function (args) {\n diagram.tooltip.animation.close.duration = args.value;\n diagram.tooltip.animation.open.duration = args.value;\n }\n });\n animation.appendTo('#duration');\n var temp = '' +\n '
';\n diagram.fitToPage({ mode: 'Width' });\n"}
\ No newline at end of file
diff --git a/src/diagram/uml-activity-stack.json b/src/diagram/uml-activity-stack.json
index 34ba463e..51a9eb0f 100644
--- a/src/diagram/uml-activity-stack.json
+++ b/src/diagram/uml-activity-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}/**\n * UMLActivity Diagram for customer service\n */\nej.diagrams.Diagram.Inject(ej.diagrams.UndoRedo);\n\n//Create and add ports for node.\nfunction getNodePorts(obj) {\n if (obj.id === 'node2' || obj.id === 'node9') {\n var node2Ports = [\n { id: 'port1', offset: { x: 0.2, y: 1 } },\n { id: 'port2', offset: { x: 0.8, y: 1 } },\n { id: 'port3', offset: { x: 0.2, y: 0 } },\n { id: 'port4', offset: { x: 0.8, y: 0 } },\n ];\n return node2Ports;\n } else {\n var ports = [\n { id: 'portLeft', offset: { x: 0, y: 0.5 } },\n { id: 'portRight', offset: { x: 1, y: 0.5 } },\n { id: 'portBottom', offset: { x: 0.5, y: 1 } },\n { id: 'portTop', offset: { x: 0.5, y: 0 } },\n ];\n return ports;\n }\n}\n\n// Initializes connector symbols to the connector palette in the symbol palette\nfunction getConnectors() {\n var targetDecorator = { shape: 'Arrow', style: { fill: '#444', strokeColor: '#444' } };\n var sourcePoint = { x: 0, y: 0 };\n var targetPoint = { x: 40, y: 40 };\n var connectorSymbols = [\n {\n id: 'Link2', sourcePoint: sourcePoint, targetPoint: targetPoint,\n type: 'Orthogonal', style: getConnectorStyle(true), targetDecorator: targetDecorator,\n },\n {\n id: 'Link1', sourcePoint: sourcePoint, targetPoint: targetPoint,\n type: 'Orthogonal', style: getConnectorStyle(), targetDecorator: targetDecorator,\n },\n {\n id: 'Link3', sourcePoint: sourcePoint, targetPoint: targetPoint,\n type: 'Straight', style: getConnectorStyle(), targetDecorator: targetDecorator,\n }\n ];\n return connectorSymbols;\n}\n\n// sets style for the connector symbols to the connector palette in the symbol palette\nfunction getConnectorStyle(dashArrayed) {\n var style = {};\n if (dashArrayed) {\n style = { strokeWidth: 2, strokeColor: '#444', strokeDashArray: '4 4', };\n } else {\n style = { strokeWidth: 2, strokeColor: '#444' };\n }\n return style;\n}\n\n// sets the default values for the symbols in the symbol palette\nfunction setPaletteNodeDefaults(symbol) {\n if (symbol.id === 'JoinNode') {\n symbol.width = 20; symbol.height = 50;\n } else if (symbol.id === 'ForkNode') {\n symbol.width = 50; symbol.height = 20;\n } else if (symbol.id === 'Decision' || symbol.id === 'MergeNode') {\n symbol.width = 50; symbol.height = 40;\n } else {\n symbol.width = 50; symbol.height = 50;\n }\n if (symbol.id === 'InitialNode' || symbol.id === 'FinalNode' || symbol.id === 'JoinNode' || symbol.id === 'ForkNode') {\n symbol.style.fill = '#444';\n }\n symbol.style.strokeColor = '#444';\n}\n\nfunction addEvents() {\n var isMobile = window.matchMedia('(max-width:550px)').matches;\n if (isMobile) {\n var paletteIcon = document.getElementById('palette-icon');\n if (paletteIcon) {\n paletteIcon.addEventListener('click', openPalette, false);\n }\n }\n}\n\n\n var bounds = document.getElementById('diagram-space').getBoundingClientRect();\n var centerX = bounds.width / 2;\n var middle = centerX - 50;\n var left = middle - 120;\n var right = middle + 120;\n //Initializes the nodes for the diagram\n var nodes = [\n {\n id: 'Start', height: 40, width: 40, offsetX: middle, offsetY: 25,\n shape: { type: 'UmlActivity', shape: 'InitialNode' }\n }, {\n id: 'ReceiveCall', height: 40, width: 105, offsetX: middle, offsetY: 85,\n shape: { type: 'UmlActivity', shape: 'Action' },\n annotations: [{ content: 'Receive Customer Call' }]\n }, {\n id: 'node2', height: 10, width: 70, offsetX: middle, offsetY: 130,\n shape: { type: 'UmlActivity', shape: 'ForkNode' }\n }, {\n id: 'Determine', height: 40, width: 105, offsetX: left, offsetY: 210,\n shape: { type: 'UmlActivity', shape: 'Action' },\n annotations: [{ content: 'Determine Type of Call' }]\n }, {\n id: 'Log', height: 40, width: 105, offsetX: right, offsetY: 210,\n shape: { type: 'UmlActivity', shape: 'Action' },\n annotations: [{ content: 'Customer Logging a Call' }]\n }, {\n id: 'node5', height: 50, width: 50, offsetX: left, offsetY: 290,\n shape: { type: 'UmlActivity', shape: 'Decision' }\n }, {\n id: 'transfer_sales', height: 40, width: 105, offsetX: middle - 200, offsetY: 360,\n shape: { type: 'UmlActivity', shape: 'Action' },\n annotations: [{ content: 'Transfer the call to Sales' }]\n }, {\n id: 'transfer_desk', height: 40, width: 105, offsetX: middle - 25, offsetY: 360,\n shape: { type: 'UmlActivity', shape: 'Action' },\n annotations: [{ content: 'Transfer the call to Help Desk' }]\n }, {\n id: 'node8', height: 50, width: 50, offsetX: left, offsetY: 430,\n shape: { type: 'UmlActivity', shape: 'MergeNode' }\n }, {\n id: 'node9', height: 10, width: 70, offsetX: middle, offsetY: 500,\n shape: { type: 'UmlActivity', shape: 'JoinNode' }\n }, {\n id: 'CloseCall', height: 40, width: 105, offsetX: middle, offsetY: 550,\n shape: { type: 'UmlActivity', shape: 'Action' },\n annotations: [{ content: 'Close Call', margin: { left: 25, right: 25 } }]\n }, {\n id: 'node11', height: 40, width: 40, offsetX: middle, offsetY: 615,\n shape: { type: 'UmlActivity', shape: 'FinalNode' }\n }\n ];\n\n //Initializes the connector for the diagram\n var connectors = [\n { id: 'connector1', sourceID: 'Start', targetID: 'ReceiveCall' },\n { id: 'connector2', sourceID: 'ReceiveCall', targetID: 'node2' },\n {\n id: 'connector3', sourceID: 'node2', targetID: 'Determine',\n sourcePortID: 'port1', targetPortID: 'portTop',\n segments: [\n { type: 'Orthogonal', length: 20, direction: 'Bottom' },\n { type: 'Orthogonal', length: 50, direction: 'Left' }\n ],\n },\n {\n id: 'connector4', sourceID: 'node2', targetID: 'Log',\n sourcePortID: 'port2', targetPortID: 'portTop',\n segments: [\n { type: 'Orthogonal', length: 20, direction: 'Bottom' },\n { type: 'Orthogonal', length: 50, direction: 'Right' }\n ],\n },\n { id: 'connector5', sourceID: 'Determine', targetID: 'node5' },\n {\n id: 'connector6', sourceID: 'node5', targetID: 'transfer_sales',\n sourcePortID: 'portLeft', targetPortID: 'portTop',\n shape: { type: 'UmlActivity', flow: 'Object' },\n annotations: [\n {\n id: 'connector6Label', content: 'type=New customer', offset: 0.715,\n style: { fill: 'white', color: 'black', textWrapping: 'NoWrap' }\n }\n ],\n },\n {\n id: 'connector7', sourceID: 'node5', targetID: 'transfer_desk',\n sourcePortID: 'portRight', targetPortID: 'portTop',\n shape: { type: 'UmlActivity', flow: 'Object' },\n annotations: [\n {\n id: 'connector7Label', content: 'type=Existing customer', offset: 0.75,\n style: { fill: 'white', color: 'black', textWrapping: 'NoWrap' }\n }\n ],\n },\n {\n id: 'connector8', sourceID: 'transfer_sales', targetID: 'node8',\n sourcePortID: 'portBottom', targetPortID: 'portLeft',\n segments: [{ type: 'Orthogonal', length: 50, direction: 'Bottom' }],\n },\n {\n id: 'connector9', sourceID: 'transfer_desk', targetID: 'node8',\n sourcePortID: 'portBottom', targetPortID: 'portRight',\n segments: [{ type: 'Orthogonal', length: 50, direction: 'Bottom' }],\n },\n {\n id: 'connector10', sourceID: 'node8', targetID: 'node9',\n sourcePortID: 'portBottom', targetPortID: 'port3'\n },\n {\n id: 'connector11', sourceID: 'Log', targetID: 'node9',\n sourcePortID: 'portBottom', targetPortID: 'port4',\n segments: [\n { type: 'Orthogonal', length: 213, direction: 'Bottom' },\n { type: 'Orthogonal', length: 50, direction: 'Left' }\n ],\n },\n { id: 'connector12', sourceID: 'node9', targetID: 'CloseCall' },\n { id: 'connector13', sourceID: 'CloseCall', targetID: 'node11' }\n ];\n\n // initializes the uml activity symbols to the UML Shapes in the symbol palette\n var umlActivityShapes = [\n { id: 'Action', shape: { type: 'UmlActivity', shape: 'Action' } },\n { id: 'Decision', shape: { type: 'UmlActivity', shape: 'Decision' } },\n { id: 'MergeNode', shape: { type: 'UmlActivity', shape: 'MergeNode' } },\n { id: 'InitialNode', shape: { type: 'UmlActivity', shape: 'InitialNode' } },\n { id: 'FinalNode', shape: { type: 'UmlActivity', shape: 'FinalNode' } },\n { id: 'ForkNode', shape: { type: 'UmlActivity', shape: 'ForkNode' } },\n { id: 'JoinNode', shape: { type: 'UmlActivity', shape: 'JoinNode' } },\n { id: 'TimeEvent', shape: { type: 'UmlActivity', shape: 'TimeEvent' } },\n { id: 'AcceptingEvent', shape: { type: 'UmlActivity', shape: 'AcceptingEvent' } },\n { id: 'SendSignal', shape: { type: 'UmlActivity', shape: 'SendSignal' } },\n { id: 'ReceiveSignal', shape: { type: 'UmlActivity', shape: 'ReceiveSignal' } },\n { id: 'StructuredNode', shape: { type: 'UmlActivity', shape: 'StructuredNode' } },\n { id: 'Note', shape: { type: 'UmlActivity', shape: 'Note' } }\n ];\n\n //Initializes diagram control\n var diagram = new ej.diagrams.Diagram({\n // sets the height and width of the diagram\n width: '100%', height: '100%',\n // sets the nodes and connectors of the diagram\n nodes: nodes, connectors: connectors,\n // sets snap settings to the diagram\n snapSettings: {\n constraints: ej.diagrams.SnapConstraints.None\n },\n //Sets the default values of a node\n getNodeDefaults: function (obj) {\n obj.ports = getNodePorts(obj);\n if (obj.ports) {\n for (var i = 0; i < obj.ports.length; i++) {\n obj.ports[i].visibility = ej.diagrams.PortVisibility.Hidden;\n }\n }\n if (obj.id === 'Start' || obj.id === 'node2' || obj.id === 'node9' || obj.id === 'node11') {\n obj.style.fill = '#444';\n }\n obj.style.strokeColor = '#444';\n return obj;\n },\n //Sets the default values of a Connector.\n getConnectorDefaults: function (obj) {\n if (obj.id.indexOf('connector') !== -1) {\n obj.type = 'Orthogonal'; obj.cornerRadius = 10;\n obj.targetDecorator = { shape: 'OpenArrow', style: { strokeColor: '#444', fill: '#444' } };\n }\n },\n created: function () {\n addEvents();\n }\n });\n diagram.appendTo('#diagram');\n //Initializes symbol palette\n var palette = new ej.diagrams.SymbolPalette({\n // sets the expandable mode of the symbol palette\n expandMode: 'Multiple',\n // sets the height and wodth of the symbol palette\n width: '100%', height: '100%',\n // sets the default values for the symbols in the symbol palette\n getNodeDefaults: setPaletteNodeDefaults,\n // sets the height and width of the symbols\n symbolHeight: 55, symbolWidth: 55,\n // sets the margin for the symbol\n symbolMargin: { left: 10, right: 10, top: 10, bottom: 10 },\n // sets the palettes to be displayed in the symbol palette\n palettes: [\n { id: 'umlActivity', expanded: true, symbols: umlActivityShapes, title: 'UML Shapes' },\n { id: 'Connector', expanded: true, symbols: getConnectors(), title: 'Connectors' },\n ],\n getSymbolInfo: function (symbol) { return { fit: true }; }\n });\n palette.appendTo('#symbolPalette');\n\n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}/**\n * UMLActivity Diagram for customer service\n */\nej.diagrams.Diagram.Inject(ej.diagrams.UndoRedo);\n\n//Create and add ports for node.\nfunction getNodePorts(obj) {\n if (obj.id === 'node2' || obj.id === 'node9') {\n var node2Ports = [\n { id: 'port1', offset: { x: 0.2, y: 1 } },\n { id: 'port2', offset: { x: 0.8, y: 1 } },\n { id: 'port3', offset: { x: 0.2, y: 0 } },\n { id: 'port4', offset: { x: 0.8, y: 0 } },\n ];\n return node2Ports;\n } else {\n var ports = [\n { id: 'portLeft', offset: { x: 0, y: 0.5 } },\n { id: 'portRight', offset: { x: 1, y: 0.5 } },\n { id: 'portBottom', offset: { x: 0.5, y: 1 } },\n { id: 'portTop', offset: { x: 0.5, y: 0 } },\n ];\n return ports;\n }\n}\n\n// Initializes connector symbols to the connector palette in the symbol palette\nfunction getConnectors() {\n var targetDecorator = { shape: 'Arrow', style: { fill: '#444', strokeColor: '#444' } };\n var sourcePoint = { x: 0, y: 0 };\n var targetPoint = { x: 40, y: 40 };\n var connectorSymbols = [\n {\n id: 'Link2', sourcePoint: sourcePoint, targetPoint: targetPoint,\n type: 'Orthogonal', style: getConnectorStyle(true), targetDecorator: targetDecorator,\n },\n {\n id: 'Link1', sourcePoint: sourcePoint, targetPoint: targetPoint,\n type: 'Orthogonal', style: getConnectorStyle(), targetDecorator: targetDecorator,\n },\n {\n id: 'Link3', sourcePoint: sourcePoint, targetPoint: targetPoint,\n type: 'Straight', style: getConnectorStyle(), targetDecorator: targetDecorator,\n }\n ];\n return connectorSymbols;\n}\n\n// sets style for the connector symbols to the connector palette in the symbol palette\nfunction getConnectorStyle(dashArrayed) {\n var style = {};\n if (dashArrayed) {\n style = { strokeWidth: 2, strokeColor: '#444', strokeDashArray: '4 4', };\n } else {\n style = { strokeWidth: 2, strokeColor: '#444' };\n }\n return style;\n}\n\n// sets the default values for the symbols in the symbol palette\nfunction setPaletteNodeDefaults(symbol) {\n if (symbol.id === 'JoinNode') {\n symbol.width = 20; symbol.height = 50;\n } else if (symbol.id === 'ForkNode') {\n symbol.width = 50; symbol.height = 20;\n } else if (symbol.id === 'Decision' || symbol.id === 'MergeNode') {\n symbol.width = 50; symbol.height = 40;\n } else {\n symbol.width = 50; symbol.height = 50;\n }\n if (symbol.id === 'InitialNode' || symbol.id === 'FinalNode' || symbol.id === 'JoinNode' || symbol.id === 'ForkNode') {\n symbol.style.fill = '#444';\n }\n symbol.style.strokeColor = '#444';\n}\n\nfunction addEvents() {\n var isMobile = window.matchMedia('(max-width:550px)').matches;\n if (isMobile) {\n var paletteIcon = document.getElementById('palette-icon');\n if (paletteIcon) {\n paletteIcon.addEventListener('click', openPalette, false);\n }\n }\n}\n\n\n var bounds = document.getElementById('diagram-space').getBoundingClientRect();\n var centerX = bounds.width / 2;\n var middle = centerX - 50;\n var left = middle - 120;\n var right = middle + 120;\n //Initializes the nodes for the diagram\n var nodes = [\n {\n id: 'Start', height: 40, width: 40, offsetX: middle, offsetY: 25,\n shape: { type: 'UmlActivity', shape: 'InitialNode' }\n }, {\n id: 'ReceiveCall', height: 40, width: 105, offsetX: middle, offsetY: 85,\n shape: { type: 'UmlActivity', shape: 'Action' },\n annotations: [{ content: 'Receive Customer Call' }]\n }, {\n id: 'node2', height: 10, width: 70, offsetX: middle, offsetY: 130,\n shape: { type: 'UmlActivity', shape: 'ForkNode' }\n }, {\n id: 'Determine', height: 40, width: 105, offsetX: left, offsetY: 210,\n shape: { type: 'UmlActivity', shape: 'Action' },\n annotations: [{ content: 'Determine Type of Call' }]\n }, {\n id: 'Log', height: 40, width: 105, offsetX: right, offsetY: 210,\n shape: { type: 'UmlActivity', shape: 'Action' },\n annotations: [{ content: 'Customer Logging a Call' }]\n }, {\n id: 'node5', height: 50, width: 50, offsetX: left, offsetY: 290,\n shape: { type: 'UmlActivity', shape: 'Decision' }\n }, {\n id: 'transfer_sales', height: 40, width: 105, offsetX: middle - 200, offsetY: 360,\n shape: { type: 'UmlActivity', shape: 'Action' },\n annotations: [{ content: 'Transfer the call to Sales' }]\n }, {\n id: 'transfer_desk', height: 40, width: 105, offsetX: middle - 25, offsetY: 360,\n shape: { type: 'UmlActivity', shape: 'Action' },\n annotations: [{ content: 'Transfer the call to Help Desk' }]\n }, {\n id: 'node8', height: 50, width: 50, offsetX: left, offsetY: 430,\n shape: { type: 'UmlActivity', shape: 'MergeNode' }\n }, {\n id: 'node9', height: 10, width: 70, offsetX: middle, offsetY: 500,\n shape: { type: 'UmlActivity', shape: 'JoinNode' }\n }, {\n id: 'CloseCall', height: 40, width: 105, offsetX: middle, offsetY: 550,\n shape: { type: 'UmlActivity', shape: 'Action' },\n annotations: [{ content: 'Close Call', margin: { left: 25, right: 25 } }]\n }, {\n id: 'node11', height: 40, width: 40, offsetX: middle, offsetY: 615,\n shape: { type: 'UmlActivity', shape: 'FinalNode' }\n }\n ];\n\n //Initializes the connector for the diagram\n var connectors = [\n { id: 'connector1', sourceID: 'Start', targetID: 'ReceiveCall' },\n { id: 'connector2', sourceID: 'ReceiveCall', targetID: 'node2' },\n {\n id: 'connector3', sourceID: 'node2', targetID: 'Determine',\n sourcePortID: 'port1', targetPortID: 'portTop',\n segments: [\n { type: 'Orthogonal', length: 20, direction: 'Bottom' },\n { type: 'Orthogonal', length: 50, direction: 'Left' }\n ],\n },\n {\n id: 'connector4', sourceID: 'node2', targetID: 'Log',\n sourcePortID: 'port2', targetPortID: 'portTop',\n segments: [\n { type: 'Orthogonal', length: 20, direction: 'Bottom' },\n { type: 'Orthogonal', length: 50, direction: 'Right' }\n ],\n },\n { id: 'connector5', sourceID: 'Determine', targetID: 'node5' },\n {\n id: 'connector6', sourceID: 'node5', targetID: 'transfer_sales',\n sourcePortID: 'portLeft', targetPortID: 'portTop',\n shape: { type: 'UmlActivity', flow: 'Object' },\n annotations: [\n {\n id: 'connector6Label', content: 'type=New customer', offset: 0.715,\n style: { fill: 'white', color: 'black', textWrapping: 'NoWrap' }\n }\n ],\n },\n {\n id: 'connector7', sourceID: 'node5', targetID: 'transfer_desk',\n sourcePortID: 'portRight', targetPortID: 'portTop',\n shape: { type: 'UmlActivity', flow: 'Object' },\n annotations: [\n {\n id: 'connector7Label', content: 'type=Existing customer', offset: 0.75,\n style: { fill: 'white', color: 'black', textWrapping: 'NoWrap' }\n }\n ],\n },\n {\n id: 'connector8', sourceID: 'transfer_sales', targetID: 'node8',\n sourcePortID: 'portBottom', targetPortID: 'portLeft',\n segments: [{ type: 'Orthogonal', length: 50, direction: 'Bottom' }],\n },\n {\n id: 'connector9', sourceID: 'transfer_desk', targetID: 'node8',\n sourcePortID: 'portBottom', targetPortID: 'portRight',\n segments: [{ type: 'Orthogonal', length: 50, direction: 'Bottom' }],\n },\n {\n id: 'connector10', sourceID: 'node8', targetID: 'node9',\n sourcePortID: 'portBottom', targetPortID: 'port3'\n },\n {\n id: 'connector11', sourceID: 'Log', targetID: 'node9',\n sourcePortID: 'portBottom', targetPortID: 'port4',\n segments: [\n { type: 'Orthogonal', length: 213, direction: 'Bottom' },\n { type: 'Orthogonal', length: 50, direction: 'Left' }\n ],\n },\n { id: 'connector12', sourceID: 'node9', targetID: 'CloseCall' },\n { id: 'connector13', sourceID: 'CloseCall', targetID: 'node11' }\n ];\n\n // initializes the uml activity symbols to the UML Shapes in the symbol palette\n var umlActivityShapes = [\n { id: 'Action', shape: { type: 'UmlActivity', shape: 'Action' } },\n { id: 'Decision', shape: { type: 'UmlActivity', shape: 'Decision' } },\n { id: 'MergeNode', shape: { type: 'UmlActivity', shape: 'MergeNode' } },\n { id: 'InitialNode', shape: { type: 'UmlActivity', shape: 'InitialNode' } },\n { id: 'FinalNode', shape: { type: 'UmlActivity', shape: 'FinalNode' } },\n { id: 'ForkNode', shape: { type: 'UmlActivity', shape: 'ForkNode' } },\n { id: 'JoinNode', shape: { type: 'UmlActivity', shape: 'JoinNode' } },\n { id: 'TimeEvent', shape: { type: 'UmlActivity', shape: 'TimeEvent' } },\n { id: 'AcceptingEvent', shape: { type: 'UmlActivity', shape: 'AcceptingEvent' } },\n { id: 'SendSignal', shape: { type: 'UmlActivity', shape: 'SendSignal' } },\n { id: 'ReceiveSignal', shape: { type: 'UmlActivity', shape: 'ReceiveSignal' } },\n { id: 'StructuredNode', shape: { type: 'UmlActivity', shape: 'StructuredNode' } },\n { id: 'Note', shape: { type: 'UmlActivity', shape: 'Note' } }\n ];\n\n //Initializes diagram control\n var diagram = new ej.diagrams.Diagram({\n // sets the height and width of the diagram\n width: '100%', height: '100%',\n // sets the nodes and connectors of the diagram\n nodes: nodes, connectors: connectors,\n // sets snap settings to the diagram\n snapSettings: {\n constraints: ej.diagrams.SnapConstraints.None\n },\n //Sets the default values of a node\n getNodeDefaults: function (obj) {\n obj.ports = getNodePorts(obj);\n if (obj.ports) {\n for (var i = 0; i < obj.ports.length; i++) {\n obj.ports[i].visibility = ej.diagrams.PortVisibility.Hidden;\n }\n }\n if (obj.id === 'Start' || obj.id === 'node2' || obj.id === 'node9' || obj.id === 'node11') {\n obj.style.fill = '#444';\n }\n obj.style.strokeColor = '#444';\n return obj;\n },\n //Sets the default values of a Connector.\n getConnectorDefaults: function (obj) {\n if (obj.id.indexOf('connector') !== -1) {\n obj.type = 'Orthogonal'; obj.cornerRadius = 10;\n obj.targetDecorator = { shape: 'OpenArrow', style: { strokeColor: '#444', fill: '#444' } };\n }\n },\n created: function () {\n addEvents();\n }\n });\n diagram.appendTo('#diagram');\n //Initializes symbol palette\n var palette = new ej.diagrams.SymbolPalette({\n // sets the expandable mode of the symbol palette\n expandMode: 'Multiple',\n // sets the height and wodth of the symbol palette\n width: '100%', height: '100%',\n // sets the default values for the symbols in the symbol palette\n getNodeDefaults: setPaletteNodeDefaults,\n // sets the height and width of the symbols\n symbolHeight: 55, symbolWidth: 55,\n // sets the margin for the symbol\n symbolMargin: { left: 10, right: 10, top: 10, bottom: 10 },\n // sets the palettes to be displayed in the symbol palette\n palettes: [\n { id: 'umlActivity', expanded: true, symbols: umlActivityShapes, title: 'UML Shapes' },\n { id: 'Connector', expanded: true, symbols: getConnectors(), title: 'Connectors' },\n ],\n getSymbolInfo: function (symbol) { return { fit: true }; }\n });\n palette.appendTo('#symbolPalette');\n\n"}
\ No newline at end of file
diff --git a/src/diagram/uml-class-diagram-stack.json b/src/diagram/uml-class-diagram-stack.json
index a2f80f05..045a33c1 100644
--- a/src/diagram/uml-class-diagram-stack.json
+++ b/src/diagram/uml-class-diagram-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}/**\n * Class Diagram\n */\n\nvar diagram;\n\nfunction getNodeDefaults(obj) {\n obj.style = { fill: \"#26A0DA\", strokeColor: \"white\" };\n return obj;\n}\nfunction getConnectorDefaults(connector) {\nreturn connector;\n}\nfunction setNodeTemplate(node) {\n if (node.annotations.length > 0) {\n for (var i = 0; i < node.annotations.length; i++) {\n node.annotations[i].style.color = \"white\";\n }\n }\n}\nfunction createConnector(Id, sourceID, targetID) {\n var connector = {};\n connector.id = Id;\n connector.sourceID = sourceID;\n connector.targetID = targetID;\n return connector;\n}\nfunction createNode(Id, offsetX, offsetY, className) {\n var node = {};\n node.id = Id;\n node.offsetX = offsetX;\n node.offsetY = offsetY;\n node.shape = {\n type: \"UmlClassifier\",\n class: {\n name: className\n },\n classifier: \"Class\"\n };\n return node;\n}\nfunction createProperty(name, type) {\n return { name: name, type: type };\n}\nfunction createMethods(name, type) {\n return { name: name, type: type };\n}\n\n\n var nodes = [\n {\n id: \"Patient\",\n shape: {\n type: \"UmlClassifier\",\n class: {\n name: \"Patient\",\n attributes: [\n createProperty(\"accepted\", \"Date\"),\n createProperty(\"sickness\", \"History\"),\n createProperty(\"prescription\", \"String[*]\"),\n createProperty(\"allergies\", \"String[*]\")\n ],\n methods: [createMethods(\"getHistory\", \"History\")]\n },\n classifier: \"Class\"\n },\n offsetX: 200,\n offsetY: 250\n },\n {\n id: \"Doctor\",\n shape: {\n type: \"UmlClassifier\",\n class: {\n name: \"Doctor\",\n attributes: [\n createProperty(\"specialist\", \"String[*]\"),\n createProperty(\"locations\", \"String[*]\")\n ]\n },\n classifier: \"Class\"\n },\n offsetX: 240,\n offsetY: 545\n },\n {\n id: \"Person\",\n shape: {\n type: \"UmlClassifier\",\n class: {\n name: \"Person\",\n attributes: [\n createProperty(\"name\", \"Name\"),\n createProperty(\"title\", \"String[*]\"),\n createProperty(\"gender\", \"Gender\")\n ]\n },\n classifier: \"Class\"\n },\n offsetX: 405,\n offsetY: 105\n },\n {\n id: \"Hospital\",\n shape: {\n type: \"UmlClassifier\",\n class: {\n name: \"Hospital\",\n attributes: [\n createProperty(\"name\", \"Name\"),\n createProperty(\"address\", \"Address\"),\n createProperty(\"phone\", \"Phone\")\n ],\n methods: [createMethods(\"getDepartment\", \"String\")]\n },\n classifier: \"Class\"\n },\n offsetX: 638,\n offsetY: 100\n },\n {\n id: \"Department\",\n shape: {\n type: \"UmlClassifier\",\n class: {\n name: \"Department\",\n methods: [createMethods(\"getStaffCount\", \"Int\")]\n },\n classifier: \"Class\"\n },\n offsetX: 638,\n offsetY: 280\n },\n {\n id: \"Staff\",\n shape: {\n type: \"UmlClassifier\",\n class: {\n name: \"Staff\",\n attributes: [\n createProperty(\"joined\", \"Date\"),\n createProperty(\"education\", \"string[*]\"),\n createProperty(\"certification\", \"string[*]\"),\n createProperty(\"languages\", \"string[*]\")\n ],\n methods: [\n createMethods(\"isDoctor\", \"bool\"),\n createMethods(\"getHistory\", \"bool\")\n ]\n },\n classifier: \"Class\"\n },\n offsetX: 635,\n offsetY: 455\n },\n createNode(\"OperationStaff\", 410, 455, \"OperationStaff\"),\n createNode(\"Nurse\", 410, 545, \"Nurse\"),\n createNode(\"Surgeon\", 240, 665, \"Surgeon\"),\n createNode(\"AdministrativeStaff\", 632, 605, \"AdministrativeStaff\"),\n createNode(\"FrontDeskStaff\", 630, 695, \"FrontDeskStaff\"),\n createNode(\"TechnicalStaff\", 928, 445, \"TechnicalStaff\"),\n createNode(\"Technician\", 815, 535, \"Technician\"),\n createNode(\"Technologist\", 1015, 535, \"Technologist\"),\n createNode(\"SurgicalTechnologist\", 1015, 630, \"SurgicalTechnologist\")\n ];\n var connectors = [\n createConnector(\"connect1\", \"Patient\", \"Person\"),\n createConnector(\"connect2\", \"Person\", \"Hospital\"),\n createConnector(\"connect3\", \"Department\", \"Hospital\"),\n createConnector(\"connect4\", \"OperationStaff\", \"Patient\"),\n createConnector(\"connect5\", \"Doctor\", \"OperationStaff\"),\n createConnector(\"connect6\", \"Nurse\", \"OperationStaff\"),\n createConnector(\"connect7\", \"Surgeon\", \"Doctor\"),\n createConnector(\"connect8\", \"FrontDeskStaff\", \"AdministrativeStaff\"),\n createConnector(\"connect9\", \"Technician\", \"TechnicalStaff\"),\n createConnector(\"connect10\", \"Technologist\", \"TechnicalStaff\"),\n createConnector(\"connect11\", \"SurgicalTechnologist\", \"Technologist\"),\n createConnector(\"connect12\", \"Staff\", \"Department\"),\n createConnector(\"connect13\", \"Staff\", \"Person\"),\n createConnector(\"connect14\", \"OperationStaff\", \"Staff\"),\n createConnector(\"connect15\", \"AdministrativeStaff\", \"Staff\"),\n createConnector(\"connect16\", \"TechnicalStaff\", \"Staff\")\n ];\n diagram = new ej.diagrams.Diagram({\n width: \"100%\",\n height: 700,\n nodes: nodes,\n connectors: connectors,\n getNodeDefaults: getNodeDefaults,\n getConnectorDefaults: getConnectorDefaults,\n setNodeTemplate: setNodeTemplate\n });\n diagram.appendTo(\"#diagram\");\n\n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}/**\n * Class Diagram\n */\n\nvar diagram;\n\nfunction getNodeDefaults(obj) {\n obj.style = { fill: \"#26A0DA\", strokeColor: \"white\" };\n return obj;\n}\nfunction getConnectorDefaults(connector) {\nreturn connector;\n}\nfunction setNodeTemplate(node) {\n if (node.annotations.length > 0) {\n for (var i = 0; i < node.annotations.length; i++) {\n node.annotations[i].style.color = \"white\";\n }\n }\n}\nfunction createConnector(Id, sourceID, targetID) {\n var connector = {};\n connector.id = Id;\n connector.sourceID = sourceID;\n connector.targetID = targetID;\n return connector;\n}\nfunction createNode(Id, offsetX, offsetY, className) {\n var node = {};\n node.id = Id;\n node.offsetX = offsetX;\n node.offsetY = offsetY;\n node.shape = {\n type: \"UmlClassifier\",\n classShape: {\n name: className\n },\n classifier: \"Class\"\n };\n return node;\n}\nfunction createProperty(name, type) {\n return { name: name, type: type };\n}\nfunction createMethods(name, type) {\n return { name: name, type: type };\n}\n\n\n var nodes = [\n {\n id: \"Patient\",\n shape: {\n type: \"UmlClassifier\",\n classShape: {\n name: \"Patient\",\n attributes: [\n createProperty(\"accepted\", \"Date\"),\n createProperty(\"sickness\", \"History\"),\n createProperty(\"prescription\", \"String[*]\"),\n createProperty(\"allergies\", \"String[*]\")\n ],\n methods: [createMethods(\"getHistory\", \"History\")]\n },\n classifier: \"Class\"\n },\n offsetX: 200,\n offsetY: 250\n },\n {\n id: \"Doctor\",\n shape: {\n type: \"UmlClassifier\",\n classShape: {\n name: \"Doctor\",\n attributes: [\n createProperty(\"specialist\", \"String[*]\"),\n createProperty(\"locations\", \"String[*]\")\n ]\n },\n classifier: \"Class\"\n },\n offsetX: 240,\n offsetY: 545\n },\n {\n id: \"Person\",\n shape: {\n type: \"UmlClassifier\",\n classShape: {\n name: \"Person\",\n attributes: [\n createProperty(\"name\", \"Name\"),\n createProperty(\"title\", \"String[*]\"),\n createProperty(\"gender\", \"Gender\")\n ]\n },\n classifier: \"Class\"\n },\n offsetX: 405,\n offsetY: 105\n },\n {\n id: \"Hospital\",\n shape: {\n type: \"UmlClassifier\",\n classShape: {\n name: \"Hospital\",\n attributes: [\n createProperty(\"name\", \"Name\"),\n createProperty(\"address\", \"Address\"),\n createProperty(\"phone\", \"Phone\")\n ],\n methods: [createMethods(\"getDepartment\", \"String\")]\n },\n classifier: \"Class\"\n },\n offsetX: 638,\n offsetY: 100\n },\n {\n id: \"Department\",\n shape: {\n type: \"UmlClassifier\",\n classShape: {\n name: \"Department\",\n methods: [createMethods(\"getStaffCount\", \"Int\")]\n },\n classifier: \"Class\"\n },\n offsetX: 638,\n offsetY: 280\n },\n {\n id: \"Staff\",\n shape: {\n type: \"UmlClassifier\",\n classShape: {\n name: \"Staff\",\n attributes: [\n createProperty(\"joined\", \"Date\"),\n createProperty(\"education\", \"string[*]\"),\n createProperty(\"certification\", \"string[*]\"),\n createProperty(\"languages\", \"string[*]\")\n ],\n methods: [\n createMethods(\"isDoctor\", \"bool\"),\n createMethods(\"getHistory\", \"bool\")\n ]\n },\n classifier: \"Class\"\n },\n offsetX: 635,\n offsetY: 455\n },\n createNode(\"OperationStaff\", 410, 455, \"OperationStaff\"),\n createNode(\"Nurse\", 410, 545, \"Nurse\"),\n createNode(\"Surgeon\", 240, 665, \"Surgeon\"),\n createNode(\"AdministrativeStaff\", 632, 605, \"AdministrativeStaff\"),\n createNode(\"FrontDeskStaff\", 630, 695, \"FrontDeskStaff\"),\n createNode(\"TechnicalStaff\", 928, 445, \"TechnicalStaff\"),\n createNode(\"Technician\", 815, 535, \"Technician\"),\n createNode(\"Technologist\", 1015, 535, \"Technologist\"),\n createNode(\"SurgicalTechnologist\", 1015, 630, \"SurgicalTechnologist\")\n ];\n var connectors = [\n createConnector(\"connect1\", \"Patient\", \"Person\"),\n createConnector(\"connect2\", \"Person\", \"Hospital\"),\n createConnector(\"connect3\", \"Department\", \"Hospital\"),\n createConnector(\"connect4\", \"OperationStaff\", \"Patient\"),\n createConnector(\"connect5\", \"Doctor\", \"OperationStaff\"),\n createConnector(\"connect6\", \"Nurse\", \"OperationStaff\"),\n createConnector(\"connect7\", \"Surgeon\", \"Doctor\"),\n createConnector(\"connect8\", \"FrontDeskStaff\", \"AdministrativeStaff\"),\n createConnector(\"connect9\", \"Technician\", \"TechnicalStaff\"),\n createConnector(\"connect10\", \"Technologist\", \"TechnicalStaff\"),\n createConnector(\"connect11\", \"SurgicalTechnologist\", \"Technologist\"),\n createConnector(\"connect12\", \"Staff\", \"Department\"),\n createConnector(\"connect13\", \"Staff\", \"Person\"),\n createConnector(\"connect14\", \"OperationStaff\", \"Staff\"),\n createConnector(\"connect15\", \"AdministrativeStaff\", \"Staff\"),\n createConnector(\"connect16\", \"TechnicalStaff\", \"Staff\")\n ];\n diagram = new ej.diagrams.Diagram({\n width: \"100%\",\n height: 700,\n nodes: nodes,\n connectors: connectors,\n getNodeDefaults: getNodeDefaults,\n getConnectorDefaults: getConnectorDefaults,\n setNodeTemplate: setNodeTemplate\n });\n diagram.appendTo(\"#diagram\");\n\n"}
\ No newline at end of file
diff --git a/src/diagram/uml-class-diagram.js b/src/diagram/uml-class-diagram.js
index 188e3ea6..2891c7ca 100644
--- a/src/diagram/uml-class-diagram.js
+++ b/src/diagram/uml-class-diagram.js
@@ -32,7 +32,7 @@ function createNode(Id, offsetX, offsetY, className) {
node.offsetY = offsetY;
node.shape = {
type: "UmlClassifier",
- class: {
+ classShape: {
name: className
},
classifier: "Class"
@@ -52,7 +52,7 @@ this.default = function() {
id: "Patient",
shape: {
type: "UmlClassifier",
- class: {
+ classShape: {
name: "Patient",
attributes: [
createProperty("accepted", "Date"),
@@ -71,7 +71,7 @@ this.default = function() {
id: "Doctor",
shape: {
type: "UmlClassifier",
- class: {
+ classShape: {
name: "Doctor",
attributes: [
createProperty("specialist", "String[*]"),
@@ -87,7 +87,7 @@ this.default = function() {
id: "Person",
shape: {
type: "UmlClassifier",
- class: {
+ classShape: {
name: "Person",
attributes: [
createProperty("name", "Name"),
@@ -104,7 +104,7 @@ this.default = function() {
id: "Hospital",
shape: {
type: "UmlClassifier",
- class: {
+ classShape: {
name: "Hospital",
attributes: [
createProperty("name", "Name"),
@@ -122,7 +122,7 @@ this.default = function() {
id: "Department",
shape: {
type: "UmlClassifier",
- class: {
+ classShape: {
name: "Department",
methods: [createMethods("getStaffCount", "Int")]
},
@@ -135,7 +135,7 @@ this.default = function() {
id: "Staff",
shape: {
type: "UmlClassifier",
- class: {
+ classShape: {
name: "Staff",
attributes: [
createProperty("joined", "Date"),
diff --git a/src/diagram/venn-diagram-stack.json b/src/diagram/venn-diagram-stack.json
index c5d04661..40176c1a 100644
--- a/src/diagram/venn-diagram-stack.json
+++ b/src/diagram/venn-diagram-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}/**\n * Venn Diagram\n */\nej.diagrams.Diagram.Inject();\nvar diagram;\n\n //Initialize shape\n var shape = { type: 'Basic', shape: 'Ellipse' };\n //Initialize Diagram Nodes\n var nodes = [\n {\n id: 'datascience', offsetX: 450, offsetY: 232, width: 400, height: 400, annotations: [{\n content: 'Data Science',\n offset: { x: 0.5, y: 0.10 }\n }], shape: shape, style: { fill: '#f2f2f2', strokeColor: '#acacac', strokeWidth: 1 }\n },\n {\n id: 'trignometry', offsetX: 515, offsetY: 205, width: 200, height: 200, shape: shape, annotations: [{\n content: 'Trignometry',\n offset: { x: 0.5, y: 0.4 }, horizontalAlignment: 'Left'\n }, { content: 'Thesis', offset: { x: 0.45, y: 0.8 } }],\n style: { fill: '#feb42f', opacity: 0.2, strokeColor: '#feb42f' }\n },\n {\n id: 'expertise', offsetX: 445, offsetY: 290, width: 200, height: 200, shape: shape,\n annotations: [{ content: 'Expertise', offset: { x: 0.5, y: 0.7 }, verticalAlignment: 'Top' }],\n style: { fill: '#6acbd4', opacity: 0.2, strokeColor: '#6acbd4' }\n },\n {\n id: 'programming', offsetX: 388, offsetY: 205, width: 200, height: 200, annotations: [{\n content: 'Programming ',\n offset: { x: 0.5, y: 0.4 }, horizontalAlignment: 'Right'\n }, {\n content: 'Assembly', offset: { x: 0.7, y: 0.35 },\n horizontalAlignment: 'Left'\n }, { content: 'Horizon', offset: { x: 0.7, y: 0.6 }, horizontalAlignment: 'Left' },\n { content: 'Middleware', offset: { x: 0.5, y: 0.8 } }], shape: shape,\n style: { fill: '#ed1d79', opacity: 0.2, strokeColor: '#ed1d79' }\n },\n ];\n //Initializes diagram control\n diagram = new ej.diagrams.Diagram({\n width: '100%', height: 580, nodes: nodes,\n snapSettings: { constraints: ej.diagrams.SnapConstraints.None }, tool: ej.diagrams.DiagramTools.ZoomPan\n });\n diagram.appendTo('#diagram');\n diagram.fitToPage();\n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}/**\n * Venn Diagram\n */\nej.diagrams.Diagram.Inject();\nvar diagram;\n\n //Initialize shape\n var shape = { type: 'Basic', shape: 'Ellipse' };\n //Initialize Diagram Nodes\n var nodes = [\n {\n id: 'datascience', offsetX: 450, offsetY: 232, width: 400, height: 400, annotations: [{\n content: 'Data Science',\n offset: { x: 0.5, y: 0.10 }\n }], shape: shape, style: { fill: '#f2f2f2', strokeColor: '#acacac', strokeWidth: 1 }\n },\n {\n id: 'trignometry', offsetX: 515, offsetY: 205, width: 200, height: 200, shape: shape, annotations: [{\n content: 'Trignometry',\n offset: { x: 0.5, y: 0.4 }, horizontalAlignment: 'Left'\n }, { content: 'Thesis', offset: { x: 0.45, y: 0.8 } }],\n style: { fill: '#feb42f', opacity: 0.2, strokeColor: '#feb42f' }\n },\n {\n id: 'expertise', offsetX: 445, offsetY: 290, width: 200, height: 200, shape: shape,\n annotations: [{ content: 'Expertise', offset: { x: 0.5, y: 0.7 }, verticalAlignment: 'Top' }],\n style: { fill: '#6acbd4', opacity: 0.2, strokeColor: '#6acbd4' }\n },\n {\n id: 'programming', offsetX: 388, offsetY: 205, width: 200, height: 200, annotations: [{\n content: 'Programming ',\n offset: { x: 0.5, y: 0.4 }, horizontalAlignment: 'Right'\n }, {\n content: 'Assembly', offset: { x: 0.7, y: 0.35 },\n horizontalAlignment: 'Left'\n }, { content: 'Horizon', offset: { x: 0.7, y: 0.6 }, horizontalAlignment: 'Left' },\n { content: 'Middleware', offset: { x: 0.5, y: 0.8 } }], shape: shape,\n style: { fill: '#ed1d79', opacity: 0.2, strokeColor: '#ed1d79' }\n },\n ];\n //Initializes diagram control\n diagram = new ej.diagrams.Diagram({\n width: '100%', height: 580, nodes: nodes,\n snapSettings: { constraints: ej.diagrams.SnapConstraints.None }, tool: ej.diagrams.DiagramTools.ZoomPan\n });\n diagram.appendTo('#diagram');\n diagram.fitToPage();\n"}
\ No newline at end of file
diff --git a/src/file-manager/api-stack.json b/src/file-manager/api-stack.json
index 8a2c860f..c9e6630f 100644
--- a/src/file-manager/api-stack.json
+++ b/src/file-manager/api-stack.json
@@ -1 +1 @@
-{"index.html":"\n \n\n \n\n ","index.js":"{{ripple}}// Sample for basic filemanager.\n\n var hostUrl = 'https://ng2jq.syncfusion.com/ej2services/';\n var fileObject = new ej.filemanager.FileManager({\n ajaxSettings: {\n url: hostUrl + 'api/FileManager/FileOperations',\n getImageUrl: hostUrl + 'api/FileManager/GetImage',\n uploadUrl: hostUrl + 'api/FileManager/Upload',\n downloadUrl: hostUrl + 'api/FileManager/Download'\n },\n toolbarSettings: { visible: true },\n navigationPaneSettings: { visible: false },\n view: 'LargeIcons'\n });\n fileObject.appendTo('#filemanager');\n\n checkBoxObj = new ej.buttons.CheckBox({ checked: true, change: onToolbarChange });\n checkBoxObj.appendTo('#toolbar');\n\n function onToolbarChange(args) {\n fileObject.toolbarSettings.visible = args.checked;\n }\n\n"}
\ No newline at end of file
+{"index.html":"\n \n\n \n\n ","index.js":"{{ripple}}// Sample for basic filemanager.\n\n var hostUrl = 'https://ng2jq.syncfusion.com/ej2services/';\n var fileObject = new ej.filemanager.FileManager({\n ajaxSettings: {\n url: hostUrl + 'api/FileManager/FileOperations',\n getImageUrl: hostUrl + 'api/FileManager/GetImage',\n uploadUrl: hostUrl + 'api/FileManager/Upload',\n downloadUrl: hostUrl + 'api/FileManager/Download'\n },\n toolbarSettings: { visible: true },\n navigationPaneSettings: { visible: false },\n view: 'LargeIcons'\n });\n fileObject.appendTo('#filemanager');\n\n checkBoxObj = new ej.buttons.CheckBox({ checked: true, change: onToolbarChange });\n checkBoxObj.appendTo('#toolbar');\n\n function onToolbarChange(args) {\n fileObject.toolbarSettings.visible = args.checked;\n }\n"}
\ No newline at end of file
diff --git a/src/file-manager/api.html b/src/file-manager/api.html
index f88e03f9..b93eefff 100644
--- a/src/file-manager/api.html
+++ b/src/file-manager/api.html
@@ -54,6 +54,9 @@
- The File Manager component is used to explore a file system through a web application, similar to the windows
- explorer for windows. It supports the basic file operations such as create, rename, delete.
+
The File Manager component is used to explore a file system through a web application, similar to the windows
+ explorer for windows. It supports the basic file operations such as create, rename, delete.
+
+
Note: File Manager’s upload functionality is restricted in the online demo. If you need to test upload functionality, please install
+ Syncfusion Essential Studio on your machine and run the demo.
\ No newline at end of file
diff --git a/src/file-manager/api.js b/src/file-manager/api.js
index efe9970b..6e973c01 100644
--- a/src/file-manager/api.js
+++ b/src/file-manager/api.js
@@ -20,5 +20,4 @@ this.default = function () {
function onToolbarChange(args) {
fileObject.toolbarSettings.visible = args.checked;
}
-
};
\ No newline at end of file
diff --git a/src/file-manager/custom-thumbnail.html b/src/file-manager/custom-thumbnail.html
index d8bed6ed..d43efb12 100644
--- a/src/file-manager/custom-thumbnail.html
+++ b/src/file-manager/custom-thumbnail.html
@@ -91,6 +91,9 @@
- The File Manager component is used to explore a file system through a web application, similar to the windows
- explorer for windows. It supports all the basic file operations such as create, rename, delete and so on.
+
The File Manager component is used to explore a file system through a web application, similar to the windows
+ explorer for windows. It supports all the basic file operations such as create, rename, delete and so on.
+
+
Note: File Manager’s upload functionality is restricted in the online demo. If you need to test upload functionality, please install
+ Syncfusion Essential Studio on your machine and run the demo.
\ No newline at end of file
diff --git a/src/file-manager/overview.html b/src/file-manager/overview.html
index 0fd5d59b..8f9a2b29 100644
--- a/src/file-manager/overview.html
+++ b/src/file-manager/overview.html
@@ -18,4 +18,7 @@
The File Manager component is used to explore a file system through a web application, similar to the windows explorer for windows. It supports all the basic file operations such as create, rename, delete, cut, copy, paste, upload, download and so on.
+
+
Note: File Manager’s upload functionality is restricted in the online demo. If you need to test upload functionality, please install
+ Syncfusion Essential Studio on your machine and run the demo.
\ No newline at end of file
diff --git a/src/menu/hamburger-mode-stack.json b/src/menu/hamburger-mode-stack.json
new file mode 100644
index 00000000..a5477f43
--- /dev/null
+++ b/src/menu/hamburger-mode-stack.json
@@ -0,0 +1 @@
+{"index.html":"\n \n\n \n\n \n
\n \n
\n
\n
\n \n \n \n View Mode
\n \n \n \n \n Mobile \n Tablet \n Desktop \n \n
\n \n \n \n
\n
\n
\n\n\n\n","index.js":"{{ripple}}/**\n * Hamburger Menu sample.\n */\n\n\n // Menu items definition \n var menuItems = [\n {\n \"text\": \"Accessories\",\n \"items\": [\n {\n \"text\": \"Mobile\",\n \"id\": \"mobile\",\n \"items\": [\n {\n \"text\": \"Headphones\"\n },\n {\n \"text\": \"Batteries\"\n },\n {\n \"text\": \"Memory Cards\"\n }\n ]\n },\n {\n \"text\": \"Laptops\"\n },\n {\n \"text\": \"Desktop PC\",\n \"items\": [\n {\n \"text\": \"Pendrives\"\n },\n {\n \"text\": \"External Hard Disks\"\n }\n ]\n },\n {\n \"text\": \"Camera\",\n \"items\": [\n {\n \"text\": \"Lens\"\n },\n {\n \"text\": \"Tripods\"\n }\n ]\n }\n ]\n },\n {\n \"text\": \"Fashion\",\n \"items\": [\n {\n \"text\": \"Men\"\n },\n {\n \"text\": \"Women\"\n }\n ]\n },\n {\n \"text\": \"Home & Living\",\n \"items\": [\n {\n \"text\": \"Furniture\"\n },\n {\n \"text\": \"Decor\"\n },\n {\n \"text\": \"Smart Home Automation\"\n },\n {\n \"text\": \"Dining & Serving\"\n }\n ]\n },\n {\n \"text\": \"Entertainment\",\n \"items\": [\n {\n \"text\": \"Televisions\"\n },\n {\n \"text\": \"Home Theatres\"\n },\n {\n \"text\": \"Gaming Laptops\"\n }\n ]\n },\n {\n \"text\": \"Contact Us\"\n },\n {\n \"text\": \"Help\"\n }\n ];\n\n //Menu initialization\n var menuObj = new ej.navigations.Menu(\n {\n\n items: menuItems,\n //Enable the hamburger mode.\n hamburgerMode: true,\n //Enable the item show on click.\n showItemOnClick: true,\n // Increased duration for smooth animation.\n animationSettings: { duration: 800 }\n },\n '#menu');\n\n //DropDownList initialization\n new ej.dropdowns.DropDownList(\n {\n value: 'mobile',\n popupHeight: '200px',\n change: function (args) {\n var container = document.querySelector('#layoutcontainer');\n switch (args.value) {\n case 'mobile':\n case 'tablet':\n menuObj.close();\n container.classList.add('deviceLayout');\n container.classList[args.value === 'mobile' ? 'remove' : 'add']('tabletview');\n menuObj.element.parentElement.classList[args.value === 'mobile' ? 'remove' : 'add']('e-menu-icon-right');\n menuObj.hamburgerMode = true;\n menuObj.showItemOnClick = true;\n break;\n case 'desktop':\n container.classList.remove('deviceLayout', 'tabletview');\n menuObj.hamburgerMode = false;\n menuObj.showItemOnClick = false;\n break;\n }\n }\n },\n '#ddlViewMode');\n\n"}
\ No newline at end of file
diff --git a/src/menu/hamburger-mode.html b/src/menu/hamburger-mode.html
new file mode 100644
index 00000000..0ee3bf33
--- /dev/null
+++ b/src/menu/hamburger-mode.html
@@ -0,0 +1,140 @@
+
+
+
This sample demonstrates the hamburger mode in the menu component.
+
+
+
Enabling the hamburgerMode property makes the menu component in adaptive view. By default, its shows header with
+ hamburger icon in Horizontal orientation.
+
+
The menu shows on clicking hamburger icon. You can use the open and close methods to show / hide the menu programmatically.
+
+ More information about Menu can be found in this
+
+ documentation section.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/menu/hamburger-mode.js b/src/menu/hamburger-mode.js
new file mode 100644
index 00000000..7dd2ec9b
--- /dev/null
+++ b/src/menu/hamburger-mode.js
@@ -0,0 +1,152 @@
+/**
+ * Hamburger Menu sample.
+ */
+this.default = function() {
+
+ // Menu items definition
+ var menuItems = [
+ {
+ "text": "Accessories",
+ "items": [
+ {
+ "text": "Mobile",
+ "id": "mobile",
+ "items": [
+ {
+ "text": "Headphones"
+ },
+ {
+ "text": "Batteries"
+ },
+ {
+ "text": "Memory Cards"
+ }
+ ]
+ },
+ {
+ "text": "Laptops"
+ },
+ {
+ "text": "Desktop PC",
+ "items": [
+ {
+ "text": "Pendrives"
+ },
+ {
+ "text": "External Hard Disks"
+ }
+ ]
+ },
+ {
+ "text": "Camera",
+ "items": [
+ {
+ "text": "Lens"
+ },
+ {
+ "text": "Tripods"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "text": "Fashion",
+ "items": [
+ {
+ "text": "Men"
+ },
+ {
+ "text": "Women"
+ }
+ ]
+ },
+ {
+ "text": "Home & Living",
+ "items": [
+ {
+ "text": "Furniture"
+ },
+ {
+ "text": "Decor"
+ },
+ {
+ "text": "Smart Home Automation"
+ },
+ {
+ "text": "Dining & Serving"
+ }
+ ]
+ },
+ {
+ "text": "Entertainment",
+ "items": [
+ {
+ "text": "Televisions"
+ },
+ {
+ "text": "Home Theatres"
+ },
+ {
+ "text": "Gaming Laptops"
+ }
+ ]
+ },
+ {
+ "text": "Contact Us"
+ },
+ {
+ "text": "Help"
+ }
+ ];
+
+ //Menu initialization
+ var menuObj = new ej.navigations.Menu(
+ {
+ // custom code start
+ created: function() {
+ if (ej.base.Browser.isDevice) {
+ ej.base.select('.property-section').remove();
+ ej.base.select('#layoutcontainer').removeAttribute('class');
+ ej.base.select('#layoutcontainer').removeAttribute('id');
+ ej.base.select('#menu').style.height = '363px';
+ }
+ },
+ // custom code end
+ items: menuItems,
+ //Enable the hamburger mode.
+ hamburgerMode: true,
+ //Enable the item show on click.
+ showItemOnClick: true,
+ // Increased duration for smooth animation.
+ animationSettings: { duration: 800 }
+ },
+ '#menu');
+
+ //DropDownList initialization
+ new ej.dropdowns.DropDownList(
+ {
+ value: 'mobile',
+ popupHeight: '200px',
+ change: function (args) {
+ var container = document.querySelector('#layoutcontainer');
+ switch (args.value) {
+ case 'mobile':
+ case 'tablet':
+ menuObj.close();
+ container.classList.add('deviceLayout');
+ container.classList[args.value === 'mobile' ? 'remove' : 'add']('tabletview');
+ menuObj.element.parentElement.classList[args.value === 'mobile' ? 'remove' : 'add']('e-menu-icon-right');
+ menuObj.hamburgerMode = true;
+ menuObj.showItemOnClick = true;
+ break;
+ case 'desktop':
+ container.classList.remove('deviceLayout', 'tabletview');
+ menuObj.hamburgerMode = false;
+ menuObj.showItemOnClick = false;
+ break;
+ }
+ }
+ },
+ '#ddlViewMode');
+};
diff --git a/src/menu/sample.json b/src/menu/sample.json
index 8bbbafac..d6a63b85 100644
--- a/src/menu/sample.json
+++ b/src/menu/sample.json
@@ -3,6 +3,7 @@
"directory": "menu",
"category": "Navigation",
"ftName": "menu-bar",
+ "type":"update",
"samples": [
{
"url": "default",
@@ -32,6 +33,14 @@
"api":{ "Menu": ["items", "fields", "template"], "FieldSettings": ["text", "children"] },
"description": "This example demonstrates how to customize Syncfusion Javascript ES5 Menu popup items by using templates."
},
+ {
+ "url": "hamburger-mode",
+ "name": "Hamburger Mode",
+ "category": "Menu Bar",
+ "type":"new",
+ "api":{ "Menu": ["hamburgerMode", "title"] },
+ "description": "This example demonstrates the hamburger mode of the Syncfusion Javascript ES5 Menu that enables the adaptive view."
+ },
{
"url": "api",
"name": "API",
@@ -42,7 +51,7 @@
{
"url": "toolbar-integration",
"name": "Toolbar Integration",
- "category": "Menu Bar",
+ "category": "Use Case",
"api":{ "Menu": ["items"] },
"description": "This example demonstrates the real use case of the Syncfusion Javascript ES5 Menu in web application. It is integrated with toolbar component."
}
diff --git a/src/pdfviewer/custom-toolbar.js b/src/pdfviewer/custom-toolbar.js
index 899293c7..cf457b1a 100644
--- a/src/pdfviewer/custom-toolbar.js
+++ b/src/pdfviewer/custom-toolbar.js
@@ -42,6 +42,7 @@ this.default = function () {
magnificationToolbar.appendTo('#magnificationToolbar');
viewer = new ej.pdfviewer.PdfViewer({
enableToolbar: false,
+ enableNavigationToolbar: false,
enableThumbnail: false,
documentPath: 'Hive_Succinctly.pdf',
serviceUrl: 'https://ej2services.syncfusion.com/production/web-services/api/pdfviewer'
diff --git a/src/range-navigator/date-time.html b/src/range-navigator/date-time.html
index 9fcec784..bfc5d67a 100644
--- a/src/range-navigator/date-time.html
+++ b/src/range-navigator/date-time.html
@@ -40,6 +40,10 @@
+
+
+
+
diff --git a/src/range-navigator/default.html b/src/range-navigator/default.html
index 907791a3..ed347350 100644
--- a/src/range-navigator/default.html
+++ b/src/range-navigator/default.html
@@ -40,6 +40,10 @@
+
+
+
+
diff --git a/src/range-navigator/empty-data.html b/src/range-navigator/empty-data.html
index ac3007d9..2d5ef50c 100644
--- a/src/range-navigator/empty-data.html
+++ b/src/range-navigator/empty-data.html
@@ -34,6 +34,10 @@
+
+
+
+
diff --git a/src/range-navigator/logarithmic.html b/src/range-navigator/logarithmic.html
index ba6fe890..2757f0e0 100644
--- a/src/range-navigator/logarithmic.html
+++ b/src/range-navigator/logarithmic.html
@@ -33,6 +33,10 @@
+
+
+
+
diff --git a/src/range-navigator/right-to-left.html b/src/range-navigator/right-to-left.html
index 50382c52..8c5bd044 100644
--- a/src/range-navigator/right-to-left.html
+++ b/src/range-navigator/right-to-left.html
@@ -32,6 +32,10 @@
+
+
+
+
diff --git a/src/schedule/datasource.js b/src/schedule/datasource.js
index a9187f93..c5a442c9 100644
--- a/src/schedule/datasource.js
+++ b/src/schedule/datasource.js
@@ -3772,7 +3772,7 @@ window.readonlyEventsData = [
Subject: 'Quality Analysis',
StartTime: new Date(currentTime + msPerHour * 1),
EndTime: new Date(currentTime + msPerHour * 3),
- IsReadonly: true
+ IsReadonly: false
}, {
Id: 6,
Subject: 'Customer meeting – John Mackenzie',
diff --git a/src/schedule/local-data-stack.json b/src/schedule/local-data-stack.json
index 7cf60c5a..b658cc90 100644
--- a/src/schedule/local-data-stack.json
+++ b/src/schedule/local-data-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}\n var data = new ej.base.extend([], window.zooEventsData, null, true);\n var scheduleObj = new ej.schedule.Schedule({\n width: '100%',\n height: '650px',\n selectedDate: new Date(2018, 1, 15),\n eventSettings: { dataSource: data },\n eventRendered: function (args) {\n window.applyCategoryColor(args, scheduleObj.currentView);\n }\n });\n scheduleObj.appendTo('#Schedule');\n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}\n var data = new ej.base.extend([], window.zooEventsData, null, true);\n var scheduleObj = new ej.schedule.Schedule({\n width: '100%',\n height: '650px',\n selectedDate: new Date(2018, 1, 15),\n eventSettings: { dataSource: data },\n eventRendered: function (args) {\n var categoryColor = args.data.CategoryColor;\n if (!args.element || !categoryColor) {\n return;\n }\n if (scheduleObj.currentView === 'Agenda') {\n (args.element.firstChild).style.borderLeftColor = categoryColor;\n } else {\n args.element.style.backgroundColor = categoryColor;\n }\n }\n });\n scheduleObj.appendTo('#Schedule');\n"}
\ No newline at end of file
diff --git a/src/schedule/local-data.html b/src/schedule/local-data.html
index f7a91b98..8882795a 100644
--- a/src/schedule/local-data.html
+++ b/src/schedule/local-data.html
@@ -15,4 +15,5 @@
dataSource property available within the
eventSettings needs to be assigned with the valid local JSON data.
+ The eventRendered event is used to customize the events. In this sample, background color of the event is changed based on the custom field 'CategoryColor'
\ No newline at end of file
diff --git a/src/schedule/local-data.js b/src/schedule/local-data.js
index f6a5af4b..89924eb8 100644
--- a/src/schedule/local-data.js
+++ b/src/schedule/local-data.js
@@ -6,7 +6,15 @@ this.default = function () {
selectedDate: new Date(2018, 1, 15),
eventSettings: { dataSource: data },
eventRendered: function (args) {
- window.applyCategoryColor(args, scheduleObj.currentView);
+ var categoryColor = args.data.CategoryColor;
+ if (!args.element || !categoryColor) {
+ return;
+ }
+ if (scheduleObj.currentView === 'Agenda') {
+ (args.element.firstChild).style.borderLeftColor = categoryColor;
+ } else {
+ args.element.style.backgroundColor = categoryColor;
+ }
}
});
scheduleObj.appendTo('#Schedule');
diff --git a/src/schedule/read-only-events-stack.json b/src/schedule/read-only-events-stack.json
index d2206464..d5bf1c70 100644
--- a/src/schedule/read-only-events-stack.json
+++ b/src/schedule/read-only-events-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}} \n var data = new ej.base.extend([], window.readonlyEventsData, null, true);\n var scheduleObj = new ej.schedule.Schedule({\n width: '100%',\n height: '650px',\n eventSettings: { dataSource: data },\n views: ['Day', 'Week', 'WorkWeek', 'Month']\n });\n scheduleObj.appendTo('#Schedule');\n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n ","index.js":"{{ripple}}\n var data = new ej.base.extend([], window.readonlyEventsData, null, true);\n var scheduleObj = new ej.schedule.Schedule({\n width: '100%',\n height: '650px',\n eventSettings: { dataSource: data },\n views: ['Day', 'Week', 'WorkWeek', 'Month'],\n popupOpen: onPopupOpen,\n dragStop: onDragStop,\n resizeStop: onResizeStop,\n actionBegin: onActionBegin\n });\n scheduleObj.appendTo('#Schedule');\n\n function onDragStop(args) {\n args.cancel = onEventCheck(args);\n }\n\n function onResizeStop(args) {\n args.cancel = onEventCheck(args);\n }\n\n function onActionBegin(args) {\n if ((args.requestType === 'eventCreate') || args.requestType === 'eventChange') {\n args.cancel = onEventCheck(args);\n }\n }\n\n function onPopupOpen(args) {\n if ((!args.target.classList.contains('e-appointment') && (args.type === 'QuickInfo')) || (args.type === 'Editor')) {\n args.cancel = onEventCheck(args);\n }\n }\n\n function onEventCheck(args) {\n var eventObj = args.data instanceof Array ? args.data[0] : args.data;\n return (eventObj.StartTime < new Date());\n }\n"}
\ No newline at end of file
diff --git a/src/schedule/read-only-events.js b/src/schedule/read-only-events.js
index e6ccb7e7..abb02ef7 100644
--- a/src/schedule/read-only-events.js
+++ b/src/schedule/read-only-events.js
@@ -1,10 +1,39 @@
-this.default = function () {
+this.default = function () {
var data = new ej.base.extend([], window.readonlyEventsData, null, true);
var scheduleObj = new ej.schedule.Schedule({
width: '100%',
height: '650px',
eventSettings: { dataSource: data },
- views: ['Day', 'Week', 'WorkWeek', 'Month']
+ views: ['Day', 'Week', 'WorkWeek', 'Month'],
+ popupOpen: onPopupOpen,
+ dragStop: onDragStop,
+ resizeStop: onResizeStop,
+ actionBegin: onActionBegin
});
scheduleObj.appendTo('#Schedule');
+
+ function onDragStop(args) {
+ args.cancel = onEventCheck(args);
+ }
+
+ function onResizeStop(args) {
+ args.cancel = onEventCheck(args);
+ }
+
+ function onActionBegin(args) {
+ if ((args.requestType === 'eventCreate') || args.requestType === 'eventChange') {
+ args.cancel = onEventCheck(args);
+ }
+ }
+
+ function onPopupOpen(args) {
+ if ((!args.target.classList.contains('e-appointment') && (args.type === 'QuickInfo')) || (args.type === 'Editor')) {
+ args.cancel = onEventCheck(args);
+ }
+ }
+
+ function onEventCheck(args) {
+ var eventObj = args.data instanceof Array ? args.data[0] : args.data;
+ return (eventObj.StartTime < new Date());
+ }
};
\ No newline at end of file
diff --git a/src/schedule/sample.json b/src/schedule/sample.json
index f31ae96d..67eba072 100644
--- a/src/schedule/sample.json
+++ b/src/schedule/sample.json
@@ -23,7 +23,7 @@
"url": "local-data",
"name": "Local Data",
"category": "Data Binding",
- "description": "This example for Essential JS2 Scheduler control shows the way of binding an array of JavaScript objects (local JSON datasource).",
+ "description": "This example for Essential JS2 Scheduler control shows the way of binding an array of JavaScript objects (local JSON datasource) in Javascript platform.",
"api": {
"Schedule": [
"eventSettings",
@@ -35,7 +35,7 @@
"url": "remote-data",
"name": "Remote Data",
"category": "Data Binding",
- "description": "This example for Essential JS2 Scheduler control shows the way of binding remote services by using the DataManager.",
+ "description": "This example for Essential JS2 Scheduler control shows the way of binding remote services by using the DataManager in Javascript platform.",
"api": {
"Schedule": [
"eventSettings",
@@ -697,7 +697,7 @@
"name": "Keyboard Interaction",
"category": "Miscellaneous",
"hideOnDevice": true,
- "description": "This example for Essential JS2 Scheduler control showcases the keyboard shortcuts available on scheduler.",
+ "description": "This example for Essential JS2 Scheduler control showcases the keyboard shortcuts available on scheduler in Javascript platform.",
"api": {
"Schedule": [
"width",
@@ -712,7 +712,7 @@
"url": "events",
"name": "Events",
"category": "Miscellaneous",
- "description": "This example for Essential JS2 Scheduler control shows the client-side events that triggers on respective scheduler actions.",
+ "description": "This example for Essential JS2 Scheduler control shows the client-side events that triggers on respective scheduler actions in Javascript platform.",
"api": {
"Schedule": [
"width",
diff --git a/src/sidebar/api-stack.json b/src/sidebar/api-stack.json
index 4605944f..cbc2a7a8 100644
--- a/src/sidebar/api-stack.json
+++ b/src/sidebar/api-stack.json
@@ -1 +1 @@
-{"index.html":"\n \n\n \n\n \n \n
\n Click/Touch the button to view the sample\n
\n
\n
\n \n
Essential JS 2 for JavScript(ES5) - Sidebar > API \n \n \n\n \n \n
\n
","index.js":"{{ripple}}\n //Sidebar initialization\n var sidebar = new ej.navigations.Sidebar();\n sidebar.appendTo('#default-sidebar');\n\n // Toggle button for Sidebar open/close.\n var togglesidebar = new ej.buttons.Button({ cssClass: 'e-info', isToggle: true });\n togglesidebar.appendTo('#togglesidebar');\n\n togglesidebar.element.onclick = function () {\n sidebar.toggle();\n };\n\n // open new tab\n document.getElementById('newTab').setAttribute('href', location.href.split('#')[0] + 'sidebar/api/index.html');\n\n // Toggle button for closeOnDocumentClick property\n var positionButton = new ej.buttons.Button({ cssClass: 'e-info', isToggle: true });\n positionButton.appendTo('#positionbutton');\n\n // Toggle button for closeOnDocumentClick property\n var documentclick = new ej.buttons.Button({ cssClass: 'e-info', isToggle: true });\n documentclick.appendTo('#documentclick');\n\n // Toggle button for backdrop property\n var backdrop = new ej.buttons.Button({ cssClass: 'e-info', isToggle: true });\n backdrop.appendTo('#backdrop');\n\n //Toggle button click event handler\n positionButton.element.onclick = function () {\n if (positionButton.element.classList.contains('e-active')) {\n positionButton.content = 'Left';\n sidebar.position = \"Right\";\n document.getElementById(\"hamburger\").className += \" e-rtl\";\n } else {\n positionButton.content = 'Right';\n sidebar.position = \"Left\";\n document.getElementById(\"hamburger\").classList.remove(\"e-rtl\");\n }\n };\n\n documentclick.element.onclick = function () {\n if (documentclick.element.classList.contains('e-active')) {\n documentclick.content = 'False';\n //enable the closeOnDocumentClick property\n sidebar.closeOnDocumentClick = true;\n } else {\n documentclick.content = 'True';\n //disable the closeOnDocumentClick property\n sidebar.closeOnDocumentClick = false;\n }\n };\n\n backdrop.element.onclick = function () {\n if (backdrop.element.classList.contains('e-active')) {\n backdrop.content = 'False';\n //enable the backdrop property\n sidebar.showBackdrop = true;\n } else {\n backdrop.content = 'True';\n //disable the backdrop property\n sidebar.showBackdrop = false;\n }\n };\n\n var dropDownInstance = new ej.dropdowns.DropDownList({\n index: 3,\n placeholder: 'Select a type',\n popupHeight: '200px',\n cssClass: 'right',\n // bind the change event\n change: onChange\n });\n dropDownInstance.appendTo('#types');\n\n function onChange() {\n //dropdown change event handler\n sidebar.type = dropDownInstance.value;\n }\n // Close the Sidebar\n document.getElementById('close').onclick = function () {\n sidebar.hide();\n };\n //open the sidebar\n document.getElementById('hamburger').onclick = function () {\n sidebar.show();\n };\n\n\n\n\n"}
\ No newline at end of file
+{"index.html":"\n \n\n \n\n \n \n
\n Click/Touch the button to view the sample\n
\n
\n
\n \n
Essential JS 2 for JavScript(ES5) - Sidebar > API \n \n \n\n \n \n
\n
","index.js":"{{ripple}}\n //Sidebar initialization\n var sidebar = new ej.navigations.Sidebar();\n sidebar.appendTo('#default-sidebar');\n\n // Toggle button for Sidebar open/close.\n var togglesidebar = new ej.buttons.Button({ cssClass: 'e-info', isToggle: true });\n togglesidebar.appendTo('#togglesidebar');\n\n togglesidebar.element.onclick = function () {\n sidebar.toggle();\n };\n\n // open new tab\n var URL = location.href.replace(location.search,'');\n document.getElementById('newTab').setAttribute('href', URL.split('#')[0] + 'sidebar/api/index.html');\n\n // Toggle button for closeOnDocumentClick property\n var positionButton = new ej.buttons.Button({ cssClass: 'e-info', isToggle: true });\n positionButton.appendTo('#positionbutton');\n\n // Toggle button for closeOnDocumentClick property\n var documentclick = new ej.buttons.Button({ cssClass: 'e-info', isToggle: true });\n documentclick.appendTo('#documentclick');\n\n // Toggle button for backdrop property\n var backdrop = new ej.buttons.Button({ cssClass: 'e-info', isToggle: true });\n backdrop.appendTo('#backdrop');\n\n //Toggle button click event handler\n positionButton.element.onclick = function () {\n if (positionButton.element.classList.contains('e-active')) {\n positionButton.content = 'Left';\n sidebar.position = \"Right\";\n document.getElementById(\"hamburger\").className += \" e-rtl\";\n } else {\n positionButton.content = 'Right';\n sidebar.position = \"Left\";\n document.getElementById(\"hamburger\").classList.remove(\"e-rtl\");\n }\n };\n\n documentclick.element.onclick = function () {\n if (documentclick.element.classList.contains('e-active')) {\n documentclick.content = 'False';\n //enable the closeOnDocumentClick property\n sidebar.closeOnDocumentClick = true;\n } else {\n documentclick.content = 'True';\n //disable the closeOnDocumentClick property\n sidebar.closeOnDocumentClick = false;\n }\n };\n\n backdrop.element.onclick = function () {\n if (backdrop.element.classList.contains('e-active')) {\n backdrop.content = 'False';\n //enable the backdrop property\n sidebar.showBackdrop = true;\n } else {\n backdrop.content = 'True';\n //disable the backdrop property\n sidebar.showBackdrop = false;\n }\n };\n\n var dropDownInstance = new ej.dropdowns.DropDownList({\n index: 3,\n placeholder: 'Select a type',\n popupHeight: '200px',\n cssClass: 'right',\n // bind the change event\n change: onChange\n });\n dropDownInstance.appendTo('#types');\n\n function onChange() {\n //dropdown change event handler\n sidebar.type = dropDownInstance.value;\n }\n // Close the Sidebar\n document.getElementById('close').onclick = function () {\n sidebar.hide();\n };\n //open the sidebar\n document.getElementById('hamburger').onclick = function () {\n sidebar.show();\n };\n\n\n\n\n"}
\ No newline at end of file
diff --git a/src/sidebar/api.js b/src/sidebar/api.js
index 810d8d55..7333dd95 100644
--- a/src/sidebar/api.js
+++ b/src/sidebar/api.js
@@ -12,7 +12,8 @@ this.default = function () {
};
// open new tab
- document.getElementById('newTab').setAttribute('href', location.href.split('#')[0] + 'sidebar/api/index.html');
+ var URL = location.href.replace(location.search,'');
+ document.getElementById('newTab').setAttribute('href', URL.split('#')[0] + 'sidebar/api/index.html');
// Toggle button for closeOnDocumentClick property
var positionButton = new ej.buttons.Button({ cssClass: 'e-info', isToggle: true });
diff --git a/src/sidebar/default-stack.json b/src/sidebar/default-stack.json
index 9bd7c573..d9923df7 100644
--- a/src/sidebar/default-stack.json
+++ b/src/sidebar/default-stack.json
@@ -1 +1 @@
-{"index.html":"\n \n\n \n\n \n \n
\n Click/Touch the button to view the sample\n
\n
\n \n
\n
Essential JS 2 for JavaScript(ES5) - Sidebar > Default functionalities \n \n \n\n \n \n
\n\n
","index.js":"{{ripple}}\n //sidebar initialization\n var defaultSidebar = new ej.navigations.Sidebar();\n defaultSidebar.appendTo('#default-sidebar');\n\n //open new tab\n document.getElementById('newTab').setAttribute('href', location.href.split('#')[0] + 'sidebar/default/index.html');\n\n //initialize the radio button\n var leftbutton = new ej.buttons.RadioButton({ label: 'Left', name: 'state', checked: true, change: positionChange });\n leftbutton.appendTo('#left');\n\n var rightbutton = new ej.buttons.RadioButton({ label: 'Right', name: 'state', change: positionChange });\n rightbutton.appendTo('#right');\n //change the sidebar position\n\n function positionChange(args) {\n //radio button change event handler\n defaultSidebar.position = (args.event.target.id === \"left\") ? \"Left\" : \"Right\";\n if (args.event.target.id == \"right\") {\n document.getElementById(\"hamburger\").className += \" e-rtl\";\n }\n if (args.event.target.id == \"left\") {\n document.getElementById(\"hamburger\").classList.remove(\"e-rtl\");\n }\n\n }\n document.getElementById('toggle').onclick = function () {\n defaultSidebar.toggle();\n };\n document.getElementById('close').onclick = function () {\n defaultSidebar.hide();\n };\n document.getElementById('hamburger').onclick = function () {\n defaultSidebar.show();\n };\n\n\n"}
\ No newline at end of file
+{"index.html":"\n \n\n \n\n \n \n
\n Click/Touch the button to view the sample\n
\n
\n \n
\n
Essential JS 2 for JavaScript(ES5) - Sidebar > Default functionalities \n \n \n\n \n \n
\n\n
","index.js":"{{ripple}}\n //sidebar initialization\n var defaultSidebar = new ej.navigations.Sidebar();\n defaultSidebar.appendTo('#default-sidebar');\n\n //open new tab\n var URL = location.href.replace(location.search,'');\n document.getElementById('newTab').setAttribute('href', URL.split('#')[0] + 'sidebar/default/index.html');\n\n //initialize the radio button\n var leftbutton = new ej.buttons.RadioButton({ label: 'Left', name: 'state', checked: true, change: positionChange });\n leftbutton.appendTo('#left');\n\n var rightbutton = new ej.buttons.RadioButton({ label: 'Right', name: 'state', change: positionChange });\n rightbutton.appendTo('#right');\n //change the sidebar position\n\n function positionChange(args) {\n //radio button change event handler\n defaultSidebar.position = (args.event.target.id === \"left\") ? \"Left\" : \"Right\";\n if (args.event.target.id == \"right\") {\n document.getElementById(\"hamburger\").className += \" e-rtl\";\n }\n if (args.event.target.id == \"left\") {\n document.getElementById(\"hamburger\").classList.remove(\"e-rtl\");\n }\n\n }\n document.getElementById('toggle').onclick = function () {\n defaultSidebar.toggle();\n };\n document.getElementById('close').onclick = function () {\n defaultSidebar.hide();\n };\n document.getElementById('hamburger').onclick = function () {\n defaultSidebar.show();\n };\n\n\n"}
\ No newline at end of file
diff --git a/src/sidebar/default.js b/src/sidebar/default.js
index 4b246e5b..26e2c3ae 100644
--- a/src/sidebar/default.js
+++ b/src/sidebar/default.js
@@ -4,7 +4,8 @@ this.default = function () {
defaultSidebar.appendTo('#default-sidebar');
//open new tab
- document.getElementById('newTab').setAttribute('href', location.href.split('#')[0] + 'sidebar/default/index.html');
+ var URL = location.href.replace(location.search,'');
+ document.getElementById('newTab').setAttribute('href', URL.split('#')[0] + 'sidebar/default/index.html');
//initialize the radio button
var leftbutton = new ej.buttons.RadioButton({ label: 'Left', name: 'state', checked: true, change: positionChange });
diff --git a/src/sidebar/docking-sidebar-stack.json b/src/sidebar/docking-sidebar-stack.json
index 3eb81a21..cf1a8382 100644
--- a/src/sidebar/docking-sidebar-stack.json
+++ b/src/sidebar/docking-sidebar-stack.json
@@ -1 +1 @@
-{"index.html":"\n \n\n \n\n \n
\n Click/Touch the button to view the sample\n
\n
\n \n \n \n
\n\n
","index.js":"{{ripple}}\n var dockBar = new ej.navigations.Sidebar({\n width: '220px',\n dockSize: '72px',\n enableDock: true\n });\n dockBar.appendTo('#dockSidebar');\n\n //radiobutton initialization\n var leftbutton = new ej.buttons.RadioButton({ label: 'Left', name: 'state', checked: true, change: positionChange });\n leftbutton.appendTo('#left');\n\n var rightbutton = new ej.buttons.RadioButton({ label: 'Right', name: 'state', change: positionChange });\n rightbutton.appendTo('#right');\n\n //open new tab\n document.getElementById('newTab').setAttribute('href', location.href.split('#')[0] + 'sidebar/docking-sidebar/index.html');\n\n function positionChange(args) {\n //radio button change event handler\n dockBar.position = (args.event.target.id === 'left') ? 'Left' : 'Right';\n }\n //switch the expand and collapse state\n document.getElementById('toggle').onclick = function () {\n dockBar.toggle();\n };\n"}
\ No newline at end of file
+{"index.html":"\n \n\n \n\n \n
\n Click/Touch the button to view the sample\n
\n
\n \n \n \n
\n\n
","index.js":"{{ripple}}\n var dockBar = new ej.navigations.Sidebar({\n width: '220px',\n dockSize: '72px',\n enableDock: true\n });\n dockBar.appendTo('#dockSidebar');\n\n //radiobutton initialization\n var leftbutton = new ej.buttons.RadioButton({ label: 'Left', name: 'state', checked: true, change: positionChange });\n leftbutton.appendTo('#left');\n\n var rightbutton = new ej.buttons.RadioButton({ label: 'Right', name: 'state', change: positionChange });\n rightbutton.appendTo('#right');\n\n //open new tab\n var URL = location.href.replace(location.search,'');\n document.getElementById('newTab').setAttribute('href', URL.split('#')[0] + 'sidebar/docking-sidebar/index.html');\n\n function positionChange(args) {\n //radio button change event handler\n dockBar.position = (args.event.target.id === 'left') ? 'Left' : 'Right';\n }\n //switch the expand and collapse state\n document.getElementById('toggle').onclick = function () {\n dockBar.toggle();\n };\n"}
\ No newline at end of file
diff --git a/src/sidebar/docking-sidebar.js b/src/sidebar/docking-sidebar.js
index 68a87803..1a06e178 100644
--- a/src/sidebar/docking-sidebar.js
+++ b/src/sidebar/docking-sidebar.js
@@ -14,7 +14,8 @@ this.default = function () {
rightbutton.appendTo('#right');
//open new tab
- document.getElementById('newTab').setAttribute('href', location.href.split('#')[0] + 'sidebar/docking-sidebar/index.html');
+ var URL = location.href.replace(location.search,'');
+ document.getElementById('newTab').setAttribute('href', URL.split('#')[0] + 'sidebar/docking-sidebar/index.html');
function positionChange(args) {
//radio button change event handler
diff --git a/src/sidebar/responsive-panel-stack.json b/src/sidebar/responsive-panel-stack.json
index 62da593e..011c3ff4 100644
--- a/src/sidebar/responsive-panel-stack.json
+++ b/src/sidebar/responsive-panel-stack.json
@@ -1 +1 @@
-{"index.html":"\n \n\n \n\n \n \n
\n Click/Touch the button to view the sample\n
\n
\n \n
\n \n
\n \n
\n \n \n \n \n \n
\n \n
\n \n
\n \n \n
\n
","index.js":"{{ripple}}\n\n // Sidebar Initialization\n var sidebarMenu = new ej.navigations.Sidebar({\n width: '290px',\n target: '.main-content',\n mediaQuery: '(min-width: 600px)',\n });\n sidebarMenu.appendTo('#sidebar-treeview');\n //end of Sidebar initialization\n \n // Toggle the Sidebar\n document.getElementById('hamburger').addEventListener('click', function () {\n sidebarMenu.toggle();\n });\n // open new tab\n document.getElementById('newTab').setAttribute('href', location.href.split('#')[0] + 'sidebar/responsive-panel/index.html');\n var data = [\n {\n nodeId: '01', nodeText: 'Installation', iconCss: 'icon-microchip icon',\n },\n {\n nodeId: '02', nodeText: 'Deployment', iconCss: 'icon-thumbs-up-alt icon',\n },\n {\n nodeId: '03', nodeText: 'Quick Start', iconCss: 'icon-docs icon',\n },\n {\n nodeId: '04', nodeText: 'Components', iconCss: 'icon-th icon',\n nodeChild: [\n { nodeId: '04-01', nodeText: 'Calendar', iconCss: 'icon-circle-thin icon' },\n { nodeId: '04-02', nodeText: 'DatePicker', iconCss: 'icon-circle-thin icon' },\n { nodeId: '04-03', nodeText: 'DateTimePicker', iconCss: 'icon-circle-thin icon' },\n { nodeId: '04-04', nodeText: 'DateRangePicker', iconCss: 'icon-circle-thin icon' },\n { nodeId: '04-05', nodeText: 'TimePicker', iconCss: 'icon-circle-thin icon' },\n { nodeId: '04-06', nodeText: 'SideBar', iconCss: 'icon-circle-thin icon' }\n ]\n },\n {\n nodeId: '05', nodeText: 'API Reference', iconCss: 'icon-code icon',\n nodeChild: [\n { nodeId: '05-01', nodeText: 'Calendar', iconCss: 'icon-circle-thin icon' },\n { nodeId: '05-02', nodeText: 'DatePicker', iconCss: 'icon-circle-thin icon' },\n { nodeId: '05-03', nodeText: 'DateTimePicker', iconCss: 'icon-circle-thin icon' },\n { nodeId: '05-04', nodeText: 'DateRangePicker', iconCss: 'icon-circle-thin icon' },\n { nodeId: '05-05', nodeText: 'TimePicker', iconCss: 'icon-circle-thin icon' },\n { nodeId: '05-06', nodeText: 'SideBar', iconCss: 'icon-circle-thin icon' }\n ]\n },\n {\n nodeId: '06', nodeText: 'Browser Compatibility', iconCss: 'icon-chrome icon'\n },\n {\n nodeId: '07', nodeText: 'Upgrade Packages', iconCss: 'icon-up-hand icon'\n },\n {\n nodeId: '08', nodeText: 'Release Notes', iconCss: 'icon-bookmark-empty icon'\n },\n {\n nodeId: '09', nodeText: 'FAQ', iconCss: 'icon-help-circled icon'\n },\n {\n nodeId: '10', nodeText: 'License', iconCss: 'icon-doc-text icon'\n }\n ];\n\n // TreeView initialization\n var mainTreeView= new ej.navigations.TreeView({\n fields: { dataSource: data, id: 'nodeId', text: 'nodeText', child: 'nodeChild' }, expandOn: 'Click'\n });\n\n mainTreeView.appendTo('#main-treeview');\n\n"}
\ No newline at end of file
+{"index.html":"\n \n\n \n\n \n \n
\n Click/Touch the button to view the sample\n
\n
\n \n
\n \n
\n \n
\n \n \n \n \n \n
\n \n
\n \n
\n \n \n
\n
","index.js":"{{ripple}}\n\n // Sidebar Initialization\n var sidebarMenu = new ej.navigations.Sidebar({\n width: '290px',\n target: '.main-content',\n mediaQuery: '(min-width: 600px)',\n });\n sidebarMenu.appendTo('#sidebar-treeview');\n //end of Sidebar initialization\n \n // Toggle the Sidebar\n document.getElementById('hamburger').addEventListener('click', function () {\n sidebarMenu.toggle();\n });\n // open new tab\n var URL = location.href.replace(location.search,'');\n document.getElementById('newTab').setAttribute('href', URL.split('#')[0] + 'sidebar/responsive-panel/index.html');\n var data = [\n {\n nodeId: '01', nodeText: 'Installation', iconCss: 'icon-microchip icon',\n },\n {\n nodeId: '02', nodeText: 'Deployment', iconCss: 'icon-thumbs-up-alt icon',\n },\n {\n nodeId: '03', nodeText: 'Quick Start', iconCss: 'icon-docs icon',\n },\n {\n nodeId: '04', nodeText: 'Components', iconCss: 'icon-th icon',\n nodeChild: [\n { nodeId: '04-01', nodeText: 'Calendar', iconCss: 'icon-circle-thin icon' },\n { nodeId: '04-02', nodeText: 'DatePicker', iconCss: 'icon-circle-thin icon' },\n { nodeId: '04-03', nodeText: 'DateTimePicker', iconCss: 'icon-circle-thin icon' },\n { nodeId: '04-04', nodeText: 'DateRangePicker', iconCss: 'icon-circle-thin icon' },\n { nodeId: '04-05', nodeText: 'TimePicker', iconCss: 'icon-circle-thin icon' },\n { nodeId: '04-06', nodeText: 'SideBar', iconCss: 'icon-circle-thin icon' }\n ]\n },\n {\n nodeId: '05', nodeText: 'API Reference', iconCss: 'icon-code icon',\n nodeChild: [\n { nodeId: '05-01', nodeText: 'Calendar', iconCss: 'icon-circle-thin icon' },\n { nodeId: '05-02', nodeText: 'DatePicker', iconCss: 'icon-circle-thin icon' },\n { nodeId: '05-03', nodeText: 'DateTimePicker', iconCss: 'icon-circle-thin icon' },\n { nodeId: '05-04', nodeText: 'DateRangePicker', iconCss: 'icon-circle-thin icon' },\n { nodeId: '05-05', nodeText: 'TimePicker', iconCss: 'icon-circle-thin icon' },\n { nodeId: '05-06', nodeText: 'SideBar', iconCss: 'icon-circle-thin icon' }\n ]\n },\n {\n nodeId: '06', nodeText: 'Browser Compatibility', iconCss: 'icon-chrome icon'\n },\n {\n nodeId: '07', nodeText: 'Upgrade Packages', iconCss: 'icon-up-hand icon'\n },\n {\n nodeId: '08', nodeText: 'Release Notes', iconCss: 'icon-bookmark-empty icon'\n },\n {\n nodeId: '09', nodeText: 'FAQ', iconCss: 'icon-help-circled icon'\n },\n {\n nodeId: '10', nodeText: 'License', iconCss: 'icon-doc-text icon'\n }\n ];\n\n // TreeView initialization\n var mainTreeView= new ej.navigations.TreeView({\n fields: { dataSource: data, id: 'nodeId', text: 'nodeText', child: 'nodeChild' }, expandOn: 'Click'\n });\n\n mainTreeView.appendTo('#main-treeview');\n\n"}
\ No newline at end of file
diff --git a/src/sidebar/responsive-panel.html b/src/sidebar/responsive-panel.html
index cdc40f53..edb287de 100644
--- a/src/sidebar/responsive-panel.html
+++ b/src/sidebar/responsive-panel.html
@@ -62,6 +62,27 @@
exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint
occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+
+
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
+ exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in
+ reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint
+ occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+
+
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
+ exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in
+ reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint
+ occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+
+
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
+ exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in
+ reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint
+ occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
diff --git a/src/sidebar/responsive-panel.js b/src/sidebar/responsive-panel.js
index b51fb93b..1acb57e0 100644
--- a/src/sidebar/responsive-panel.js
+++ b/src/sidebar/responsive-panel.js
@@ -14,7 +14,8 @@ this.default = function () {
sidebarMenu.toggle();
});
// open new tab
- document.getElementById('newTab').setAttribute('href', location.href.split('#')[0] + 'sidebar/responsive-panel/index.html');
+ var URL = location.href.replace(location.search,'');
+ document.getElementById('newTab').setAttribute('href', URL.split('#')[0] + 'sidebar/responsive-panel/index.html');
var data = [
{
nodeId: '01', nodeText: 'Installation', iconCss: 'icon-microchip icon',
diff --git a/src/sidebar/sidebar-list-stack.json b/src/sidebar/sidebar-list-stack.json
index cb9a0687..6b5989ac 100644
--- a/src/sidebar/sidebar-list-stack.json
+++ b/src/sidebar/sidebar-list-stack.json
@@ -1 +1 @@
-{"index.html":"\n \n\n \n\n \n \n
\n Click/Touch the button to view the sample\n
\n
\n \n
\n
Essential JS 2 for JavaScript - Sidebar > Sidebar with ListView \n \n \n\n \n \n
\n\n
","index.js":"{{ripple}}\n\n // Sidebar Initialization\n var sidebarInstance = new ej.navigations.Sidebar({\n width: '250px',\n type: 'Over'\n });\n sidebarInstance.appendTo('#sidebar-menu');\n //end of Sidebar initialization\n\n var dataList = [\n { text: 'Home' }, { text: 'About' }, { text: 'Careers' }, { text: 'FAQs' },\n { text: 'Blog' }, { text: 'Uses' }, { text: 'Contact' }\n ];\n\n //Initialize the ListView component\n var listviewInstance = new ej.lists.ListView({\n dataSource: dataList,\n fields: { tooltip: 'text' },\n select: onSelect\n });\n listviewInstance.appendTo('#menulist');\n\n // open new tab\n document.getElementById('newTab').setAttribute('href', location.href.split('#')[0] + 'sidebar/sidebar-list/index.html');\n\n // Expand the Sidebar\n document.getElementById('hamburger').addEventListener('click', function () {\n sidebarInstance.show();\n });\n\n // Close the Sidebar\n document.getElementById('close').addEventListener('click', function () {\n sidebarInstance.hide();\n });\n\n function onSelect(args) {\n //Listview select event handler\n document.querySelector('.textArea').textContent = args.text + ' Page Content';\n sidebarInstance.hide();\n }\n\n\n"}
\ No newline at end of file
+{"index.html":"\n \n\n \n\n \n \n
\n Click/Touch the button to view the sample\n
\n
\n \n
\n
Essential JS 2 for JavaScript - Sidebar > Sidebar with ListView \n \n \n\n \n \n
\n\n
","index.js":"{{ripple}}\n\n // Sidebar Initialization\n var sidebarInstance = new ej.navigations.Sidebar({\n width: '250px',\n type: 'Over'\n });\n sidebarInstance.appendTo('#sidebar-menu');\n //end of Sidebar initialization\n\n var dataList = [\n { text: 'Home' }, { text: 'About' }, { text: 'Careers' }, { text: 'FAQs' },\n { text: 'Blog' }, { text: 'Uses' }, { text: 'Contact' }\n ];\n\n //Initialize the ListView component\n var listviewInstance = new ej.lists.ListView({\n dataSource: dataList,\n fields: { tooltip: 'text' },\n select: onSelect\n });\n listviewInstance.appendTo('#menulist');\n\n // open new tab\n var URL = location.href.replace(location.search,'');\n document.getElementById('newTab').setAttribute('href', URL.split('#')[0] + 'sidebar/sidebar-list/index.html');\n\n // Expand the Sidebar\n document.getElementById('hamburger').addEventListener('click', function () {\n sidebarInstance.show();\n });\n\n // Close the Sidebar\n document.getElementById('close').addEventListener('click', function () {\n sidebarInstance.hide();\n });\n\n function onSelect(args) {\n //Listview select event handler\n document.querySelector('.textArea').textContent = args.text + ' Page Content';\n sidebarInstance.hide();\n }\n\n\n"}
\ No newline at end of file
diff --git a/src/sidebar/sidebar-list.js b/src/sidebar/sidebar-list.js
index 527003e7..f94732cf 100644
--- a/src/sidebar/sidebar-list.js
+++ b/src/sidebar/sidebar-list.js
@@ -22,7 +22,8 @@ this.default = function () {
listviewInstance.appendTo('#menulist');
// open new tab
- document.getElementById('newTab').setAttribute('href', location.href.split('#')[0] + 'sidebar/sidebar-list/index.html');
+ var URL = location.href.replace(location.search,'');
+ document.getElementById('newTab').setAttribute('href', URL.split('#')[0] + 'sidebar/sidebar-list/index.html');
// Expand the Sidebar
document.getElementById('hamburger').addEventListener('click', function () {
diff --git a/src/sidebar/sidebar-menu-stack.json b/src/sidebar/sidebar-menu-stack.json
index bd1b4787..896fade6 100644
--- a/src/sidebar/sidebar-menu-stack.json
+++ b/src/sidebar/sidebar-menu-stack.json
@@ -1 +1 @@
-{"index.html":"\n \n\n \n\n \n \n
\n Click/Touch the button to view the sample\n
\n
\n \n
\n \n \n \n \n \n \n\n \n
\n
\n
Responsive Sidebar with Menu
\n
\n
\n \n
\n \n \n
\n
","index.js":"{{ripple}}\n\n // Sidebar Initialization\n var sidebarMenu = new ej.navigations.Sidebar({\n width: '220px',\n mediaQuery: '(min-width: 600px)',\n target: '.main-content',\n dockSize: '50px',\n enableDock: true\n });\n sidebarMenu.appendTo('#sidebar-menu');\n //end of Sidebar initialization\n // Toggle the Sidebar\n document.getElementById('hamburger').addEventListener('click', function () {\n sidebarMenu.toggle();\n });\n // open new tab\n document.getElementById('newTab').setAttribute('href', location.href.split('#')[0] + 'sidebar/sidebar-menu/index.html');\n var mainMenuItems = [\n {\n text: 'Overview',\n iconCss: 'icon-globe icon',\n items: [\n { text: 'All Data' },\n { text: 'Category2' },\n { text: 'Category3' }\n ]\n },\n {\n text: 'Notification',\n iconCss: 'icon-bell-alt icon',\n items: [\n { text: 'Message' },\n { text: 'Facebook' },\n { text: 'Twitter' }\n ]\n },\n {\n text: 'Comments',\n iconCss: 'icon-comment-inv-alt2 icon',\n items: [\n { text: 'Category1' },\n { text: 'Category2' },\n { text: 'Category3' }\n ]\n },\n {\n text: 'Bookmarks',\n iconCss: 'icon-bookmark icon',\n items: [\n { text: 'All Comments' },\n { text: 'Add Comments' },\n { text: 'Delete Comments' }\n ]\n },\n {\n text: 'Images',\n iconCss: 'icon-picture icon',\n items: [\n { text: 'Add Name' },\n { text: 'Add Mobil Number' },\n { text: 'Add Imaage' },\n ]\n },\n {\n text: 'Users ',\n iconCss: 'icon-user icon',\n items: [\n { text: 'Mobile1' },\n { text: 'Mobile2' },\n { text: 'Telephone' }\n ]\n },\n {\n text: 'Settings',\n iconCss: 'icon-eye icon',\n items: [\n { text: 'Change Profile' },\n { text: 'Add Name' },\n { text: 'Add Details' }\n ]\n },\n {\n text: 'Info',\n iconCss: 'icon-tag icon',\n items: [\n { text: 'Facebook' },\n { text: 'Mobile' },\n ]\n },\n ];\n var mainMenuObj =\n new ej.navigations.Menu({ items: mainMenuItems, orientation: 'Vertical', cssClass: 'dock-menu' }, '#main-menubar');\n var accountMenuItem = [\n {\n text: 'Account',\n items: [\n { text: 'Profile' },\n { text: 'Sign out' },\n ]\n },\n ];\n // horizontal-menubar initialization\n var horizontalMenuobj =\n new ej.navigations.Menu({ items: accountMenuItem, orientation: 'Horizontal', cssClass: 'dock-menu' }, '#horizontal-menubar');\n\n\n"}
\ No newline at end of file
+{"index.html":"\n \n\n \n\n \n \n
\n Click/Touch the button to view the sample\n
\n
\n \n
\n \n \n \n \n \n \n\n \n
\n
\n
Responsive Sidebar with Menu
\n
\n
\n \n
\n \n \n
\n
","index.js":"{{ripple}}\n\n // Sidebar Initialization\n var sidebarMenu = new ej.navigations.Sidebar({\n width: '220px',\n mediaQuery: '(min-width: 600px)',\n target: '.main-content',\n dockSize: '50px',\n enableDock: true\n });\n sidebarMenu.appendTo('#sidebar-menu');\n //end of Sidebar initialization\n // Toggle the Sidebar\n document.getElementById('hamburger').addEventListener('click', function () {\n sidebarMenu.toggle();\n });\n // open new tab\n var URL = location.href.replace(location.search,'');\n document.getElementById('newTab').setAttribute('href', URL.split('#')[0] + 'sidebar/sidebar-menu/index.html');\n var mainMenuItems = [\n {\n text: 'Overview',\n iconCss: 'icon-globe icon',\n items: [\n { text: 'All Data' },\n { text: 'Category2' },\n { text: 'Category3' }\n ]\n },\n {\n text: 'Notification',\n iconCss: 'icon-bell-alt icon',\n items: [\n { text: 'Message' },\n { text: 'Facebook' },\n { text: 'Twitter' }\n ]\n },\n {\n text: 'Comments',\n iconCss: 'icon-comment-inv-alt2 icon',\n items: [\n { text: 'Category1' },\n { text: 'Category2' },\n { text: 'Category3' }\n ]\n },\n {\n text: 'Bookmarks',\n iconCss: 'icon-bookmark icon',\n items: [\n { text: 'All Comments' },\n { text: 'Add Comments' },\n { text: 'Delete Comments' }\n ]\n },\n {\n text: 'Images',\n iconCss: 'icon-picture icon',\n items: [\n { text: 'Add Name' },\n { text: 'Add Mobil Number' },\n { text: 'Add Imaage' },\n ]\n },\n {\n text: 'Users ',\n iconCss: 'icon-user icon',\n items: [\n { text: 'Mobile1' },\n { text: 'Mobile2' },\n { text: 'Telephone' }\n ]\n },\n {\n text: 'Settings',\n iconCss: 'icon-eye icon',\n items: [\n { text: 'Change Profile' },\n { text: 'Add Name' },\n { text: 'Add Details' }\n ]\n },\n {\n text: 'Info',\n iconCss: 'icon-tag icon',\n items: [\n { text: 'Facebook' },\n { text: 'Mobile' },\n ]\n },\n ];\n var mainMenuObj =\n new ej.navigations.Menu({ items: mainMenuItems, orientation: 'Vertical', cssClass: 'dock-menu' }, '#main-menubar');\n var accountMenuItem = [\n {\n text: 'Account',\n items: [\n { text: 'Profile' },\n { text: 'Sign out' },\n ]\n },\n ];\n // horizontal-menubar initialization\n var horizontalMenuobj =\n new ej.navigations.Menu({ items: accountMenuItem, orientation: 'Horizontal', cssClass: 'dock-menu' }, '#horizontal-menubar');\n\n\n"}
\ No newline at end of file
diff --git a/src/sidebar/sidebar-menu.html b/src/sidebar/sidebar-menu.html
index a6071ace..5c019902 100644
--- a/src/sidebar/sidebar-menu.html
+++ b/src/sidebar/sidebar-menu.html
@@ -244,6 +244,13 @@
.sb-content-tab .center {
display: block;
}
+ @media(max-width: 500px) {
+
+ #header .right-header.list.support,
+ #header .right-header.list.tour {
+ display: none;
+ }
+ }
/* custom code end */
#sidebar-menu {
margin-left: -1px;
diff --git a/src/sidebar/sidebar-menu.js b/src/sidebar/sidebar-menu.js
index b7f66128..2642b90f 100644
--- a/src/sidebar/sidebar-menu.js
+++ b/src/sidebar/sidebar-menu.js
@@ -15,7 +15,8 @@ this.default = function () {
sidebarMenu.toggle();
});
// open new tab
- document.getElementById('newTab').setAttribute('href', location.href.split('#')[0] + 'sidebar/sidebar-menu/index.html');
+ var URL = location.href.replace(location.search,'');
+ document.getElementById('newTab').setAttribute('href', URL.split('#')[0] + 'sidebar/sidebar-menu/index.html');
var mainMenuItems = [
{
text: 'Overview',
diff --git a/src/sparkline/axis-types-stack.json b/src/sparkline/axis-types-stack.json
index ab3ca7b3..dd200bd7 100644
--- a/src/sparkline/axis-types-stack.json
+++ b/src/sparkline/axis-types-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n \n
\n
\n
\n \n \n Mean working hours for a month
\n (DateTime axis)
\n \n \n
\n \n \n \n \n Percentage of the students in a class
\n (Category axis)
\n \n \n
\n \n \n \n \n Expenditure details of various trips
\n (Numeric axis)
\n \n \n
\n \n \n
\n
\n
\n
\n\n \n
","index.js":"{{ripple}}\n\n var model = {\n load: sparkload,\n height: '100px',\n width: '170px',\n lineWidth: 1,\n type: 'Column',\n fill: '#3C78EF',\n tooltipSettings: {\n visible: true\n },\n yName: 'yval'\n };\n var datetime = new ej.charts.Sparkline(model);\n datetime.valueType = 'DateTime';\n datetime.dataSource = [\n { xDate: new Date(2018, 0, 1), x: 0, yval: 4 },\n { xDate: new Date(2018, 0, 2), x: 1, yval: 4.5 },\n { xDate: new Date(2018, 0, 3), x: 2, yval: 8 },\n { xDate: new Date(2018, 0, 4), x: 3, yval: 7 },\n { xDate: new Date(2018, 0, 5), x: 4, yval: 6 },\n { xDate: new Date(2018, 0, 8), x: 5, yval: 8 },\n { xDate: new Date(2018, 0, 9), x: 6, yval: 8 },\n { xDate: new Date(2018, 0, 10), x: 7, yval: 6.5 },\n { xDate: new Date(2018, 0, 11), x: 8, yval: 4 },\n { xDate: new Date(2018, 0, 12), x: 9, yval: 5.5 },\n { xDate: new Date(2018, 0, 15), x: 10, yval: 8 },\n { xDate: new Date(2018, 0, 16), x: 11, yval: 6 },\n { xDate: new Date(2018, 0, 17), x: 12, yval: 6.5 },\n { xDate: new Date(2018, 0, 18), x: 13, yval: 7.5 },\n { xDate: new Date(2018, 0, 19), x: 14, yval: 7.5 },\n { xDate: new Date(2018, 0, 22), x: 15, yval: 4 },\n { xDate: new Date(2018, 0, 23), x: 16, yval: 8 },\n { xDate: new Date(2018, 0, 24), x: 17, yval: 6 },\n { xDate: new Date(2018, 0, 25), x: 18, yval: 7.5 },\n { xDate: new Date(2018, 0, 26), x: 19, yval: 4.5 },\n { xDate: new Date(2018, 0, 29), x: 20, yval: 6 },\n { xDate: new Date(2018, 0, 30), x: 21, yval: 5 },\n { xDate: new Date(2018, 0, 31), x: 22, yval: 7 }\n ];\n datetime.tooltipSettings.format = '${xDate} : ${yval}hrs';\n datetime.xName = 'xDate';\n datetime.appendTo('#datetime');\n var category = new ej.charts.Sparkline(model);\n category.valueType = 'Category';\n category.dataSource = [\n { x: 0, xval: 'Robert', yval: 60 },\n { x: 1, xval: 'Andrew', yval: 65 },\n { x: 2, xval: 'Suyama', yval: 70 },\n { x: 3, xval: 'Michael', yval: 80 },\n { x: 4, xval: 'Janet', yval: 55 },\n { x: 5, xval: 'Davolio', yval: 90 },\n { x: 6, xval: 'Fuller', yval: 75 },\n { x: 7, xval: 'Nancy', yval: 85 },\n { x: 8, xval: 'Margaret', yval: 77 },\n { x: 9, xval: 'Steven', yval: 68 },\n { x: 10, xval: 'Laura', yval: 96 },\n { x: 11, xval: 'Elizabeth', yval: 57 }\n ];\n category.tooltipSettings.format = '${xval} : ${yval}%';\n category.xName = 'xval';\n category.appendTo('#category');\n var numeric = new ej.charts.Sparkline(model);\n numeric.dataSource = [\n { x: 1, xval: 2010, yval: 190 },\n { x: 2, xval: 2011, yval: 165 },\n { x: 3, xval: 2012, yval: 158 },\n { x: 4, xval: 2013, yval: 175 },\n { x: 5, xval: 2014, yval: 200 },\n { x: 6, xval: 2015, yval: 180 },\n { x: 7, xval: 2016, yval: 210 }\n ];\n numeric.valueType = 'Numeric';\n numeric.tooltipSettings.format = '${x} : $${yval}';\n numeric.xName = 'x';\n numeric.appendTo('#numeric');\n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n \n
\n
\n
\n \n \n Mean working hours for a month
\n (DateTime axis)
\n \n \n
\n \n \n \n \n Percentage of the students in a class
\n (Category axis)
\n \n \n
\n \n \n \n \n Expenditure details of various trips
\n (Numeric axis)
\n \n \n
\n \n \n
\n
\n
\n
\n\n \n
","index.js":"{{ripple}}\n\n var model = {\n load: sparkload,\n height: '100px',\n width: '170px',\n lineWidth: 1,\n type: 'Column',\n fill: '#3C78EF',\n tooltipSettings: {\n visible: true\n },\n yName: 'yval'\n };\n var datetime = new ej.charts.Sparkline(model);\n datetime.valueType = 'DateTime';\n datetime.dataSource = [\n { xDate: new Date(2018, 0, 1), x: 0, yval: 4 },\n { xDate: new Date(2018, 0, 2), x: 1, yval: 4.5 },\n { xDate: new Date(2018, 0, 3), x: 2, yval: 8 },\n { xDate: new Date(2018, 0, 4), x: 3, yval: 7 },\n { xDate: new Date(2018, 0, 5), x: 4, yval: 6 },\n { xDate: new Date(2018, 0, 8), x: 5, yval: 8 },\n { xDate: new Date(2018, 0, 9), x: 6, yval: 8 },\n { xDate: new Date(2018, 0, 10), x: 7, yval: 6.5 },\n { xDate: new Date(2018, 0, 11), x: 8, yval: 4 },\n { xDate: new Date(2018, 0, 12), x: 9, yval: 5.5 },\n { xDate: new Date(2018, 0, 15), x: 10, yval: 8 },\n { xDate: new Date(2018, 0, 16), x: 11, yval: 6 },\n { xDate: new Date(2018, 0, 17), x: 12, yval: 6.5 },\n { xDate: new Date(2018, 0, 18), x: 13, yval: 7.5 },\n { xDate: new Date(2018, 0, 19), x: 14, yval: 7.5 },\n { xDate: new Date(2018, 0, 22), x: 15, yval: 4 },\n { xDate: new Date(2018, 0, 23), x: 16, yval: 8 },\n { xDate: new Date(2018, 0, 24), x: 17, yval: 6 },\n { xDate: new Date(2018, 0, 25), x: 18, yval: 7.5 },\n { xDate: new Date(2018, 0, 26), x: 19, yval: 4.5 },\n { xDate: new Date(2018, 0, 29), x: 20, yval: 6 },\n { xDate: new Date(2018, 0, 30), x: 21, yval: 5 },\n { xDate: new Date(2018, 0, 31), x: 22, yval: 7 }\n ];\n datetime.tooltipSettings.format = '${xDate} : ${yval}hrs';\n datetime.xName = 'xDate';\n datetime.appendTo('#datetime');\n var category = new ej.charts.Sparkline(model);\n category.valueType = 'Category';\n category.dataSource = [\n { x: 0, xval: 'Robert', yval: 60 },\n { x: 1, xval: 'Andrew', yval: 65 },\n { x: 2, xval: 'Suyama', yval: 70 },\n { x: 3, xval: 'Michael', yval: 80 },\n { x: 4, xval: 'Janet', yval: 55 },\n { x: 5, xval: 'Davolio', yval: 90 },\n { x: 6, xval: 'Fuller', yval: 75 },\n { x: 7, xval: 'Nancy', yval: 85 },\n { x: 8, xval: 'Margaret', yval: 77 },\n { x: 9, xval: 'Steven', yval: 68 },\n { x: 10, xval: 'Laura', yval: 96 },\n { x: 11, xval: 'Elizabeth', yval: 57 }\n ];\n category.tooltipSettings.format = '${xval} : ${yval}%';\n category.xName = 'xval';\n category.appendTo('#category');\n var numeric = new ej.charts.Sparkline(model);\n numeric.dataSource = [\n { x: 1, xval: 2010, yval: 190 },\n { x: 2, xval: 2011, yval: 165 },\n { x: 3, xval: 2012, yval: 158 },\n { x: 4, xval: 2013, yval: 175 },\n { x: 5, xval: 2014, yval: 200 },\n { x: 6, xval: 2015, yval: 180 },\n { x: 7, xval: 2016, yval: 210 }\n ];\n numeric.valueType = 'Numeric';\n numeric.tooltipSettings.format = '${x} : $${yval}';\n numeric.xName = 'x';\n numeric.appendTo('#numeric');\n"}
\ No newline at end of file
diff --git a/src/sparkline/customization-stack.json b/src/sparkline/customization-stack.json
index 99917f9f..23346742 100644
--- a/src/sparkline/customization-stack.json
+++ b/src/sparkline/customization-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n \n
\n
\n
\n Worldwide car sales by brand - 2017 \n
\n
\n \n Sales Percentage \n \n
\n \n \n \n Sales Count \n \n
\n \n \n
\n
\n
\n
\n
\n \n \n \n \n \n\n \n
","index.js":"{{ripple}}\n\n var percentage = new ej.charts.Sparkline({\n\n lineWidth: 1,\n type: 'Column',\n valueType: 'Category',\n height: '200px',\n width: '180px',\n dataSource: [\n { x: 0, xval: 'AUDI', yval: 1 },\n { x: 1, xval: 'BMW', yval: 5 },\n { x: 2, xval: 'BUICK', yval: -1 },\n { x: 3, xval: 'CETROEN', yval: -6 }, \n { x: 6, xval: 'FORD', yval: -2 },\n { x: 7, xval: 'HONDA', yval: 7 },\n { x: 8, xval: 'HYUNDAI', yval: -9 },\n { x: 9, xval: 'JEEP', yval: 0 },\n { x: 4, xval: 'CHEVROLET', yval: 0 },\n { x: 5, xval: 'FIAT', yval: 1 },\n { x: 10, xval: 'KIA', yval: -10 },\n { x: 11, xval: 'MAZDA', yval: 3 }, \n { x: 14, xval: 'OPEL/VHALL', yval: -6 },\n { x: 15, xval: 'PEUGEOT', yval: 0 },\n { x: 16, xval: 'RENAULT', yval: 7 },\n { x: 17, xval: 'SKODA', yval: 5 },\n { x: 12, xval: 'MERCEDES', yval: 13 },\n { x: 13, xval: 'NISSAN', yval: 5 },\n { x: 18, xval: 'SUBARU', yval: 5 },\n { x: 19, xval: 'SUZUKI', yval: 11 },\n { x: 20, xval: 'TOYOTA', yval: 5 },\n { x: 21, xval: 'VOLKSWAGEN', yval: 3 },\n ],\n xName: 'xval', yName: 'yval',\n markerSettings: {\n fill: 'red',\n size: 5\n },\n tooltipSettings: {\n format: '${xval}: ${yval}',\n trackLineSettings: {\n color: 'red',\n width: 1\n }\n },\n axisSettings: {\n lineSettings: {\n color: 'red',\n width: 2\n }\n }\n });\n percentage.appendTo('#percentage');\n var sales = new ej.charts.Sparkline({\n load: sparkload,\n height: '200px',\n width: '180px',\n lineWidth: 1,\n type: 'Column',\n valueType: 'Category',\n dataSource: [\n { x: 0, xval: 'AUDI', yval: 1847613 },\n { x: 1, xval: 'BMW', yval: 2030331 },\n { x: 2, xval: 'BUICK', yval: 1465823 },\n { x: 3, xval: 'CETROEN', yval: 999888 },\n { x: 4, xval: 'CHEVROLET', yval: 3857388 },\n { x: 5, xval: 'FIAT', yval: 1503806 },\n { x: 6, xval: 'FORD', yval: 5953122 },\n { x: 7, xval: 'HONDA', yval: 4967689 },\n { x: 8, xval: 'HYUNDAI', yval: 3951176 },\n { x: 9, xval: 'JEEP', yval: 1390130 },\n { x: 10, xval: 'KIA', yval: 2511293 },\n { x: 11, xval: 'MAZDA', yval: 1495557 },\n { x: 12, xval: 'MERCEDES', yval: 2834181 },\n { x: 13, xval: 'NISSAN', yval: 4834694 },\n { x: 14, xval: 'OPEL/VHALL', yval: 996559 },\n { x: 15, xval: 'PEUGEOT', yval: 1590300 },\n { x: 16, xval: 'RENAULT', yval: 2275227 },\n { x: 17, xval: 'SKODA', yval: 1180672 },\n { x: 18, xval: 'SUBARU', yval: 1050390 },\n { x: 19, xval: 'SUZUKI', yval: 2891415 },\n { x: 20, xval: 'TOYOTA', yval: 7843423 },\n { x: 21, xval: 'VOLKSWAGEN', yval: 6639250 },\n ],\n xName: 'xval', yName: 'yval',\n axisSettings: {\n lineSettings: {\n color: 'red',\n width: 2\n }\n },\n markerSettings: {\n fill: 'red',\n size: 5\n },\n tooltipSettings: {\n format: '${xval}: ${yval}',\n trackLineSettings: {\n color: 'red',\n width: 1\n }\n }\n });\n sales.appendTo('#sales');\n // Code for Property Panel\n var sampleChange;\n var sampleValue = new ej.dropdowns.DropDownList({\n index: 0,\n placeholder: 'Sales Percentage',\n width: '100%',\n change: sampleChange\n });\n var sliderChange;\n var slider = new ej.inputs.Slider({\n value: 0, type: 'MinRange',\n change: sliderChange,\n max: 100, min: 0\n }, '#range');\n var allchange;\n var allCheckBox = new ej.buttons.CheckBox({\n checked: true, change: allchange\n }, '#all');\n var otherchange;\n var negativeCheckBox = new ej.buttons.CheckBox({\n change: otherchange, disabled: true\n }, '#negative');\n var firstCheckBox = new ej.buttons.CheckBox({\n change: otherchange, disabled: true\n }, '#first');\n var lastCheckBox = new ej.buttons.CheckBox({\n change: otherchange, disabled: true\n }, '#last');\n var highCheckBox = new ej.buttons.CheckBox({\n change: otherchange, disabled: true\n }, '#high');\n var lowCheckBox = new ej.buttons.CheckBox({\n change: otherchange, disabled: true\n }, '#low');\n var markerchange;\n var markerCheckBox = new ej.buttons.CheckBox({\n change: markerchange\n }, '#marker');\n var datalabelchange;\n var datalabelCheckBox = new ej.buttons.CheckBox({\n change: datalabelchange\n }, '#datalabel');\n\tvar enableRTLchange;\n var enableRTLCheckBox = new ej.buttons.CheckBox({\n change: enableRTLchange\n }, '#enableRTL');\n var tooltipchange;\n var tooltipCheckBox = new ej.buttons.CheckBox({\n change: tooltipchange\n }, '#tooltip');\n var trackerchange;\n var trackerCheckBox = new ej.buttons.CheckBox({\n change: trackerchange\n }, '#trackline');\n var axislinechange;\n var axislineCheckBox = new ej.buttons.CheckBox({\n change: axislinechange\n }, '#axis1');\n sampleValue.change = sampleChange = function (drop) {\n if (drop.value === 'salespercentage') {\n slider.min = 0;\n slider.max = 10;\n }\n else {\n slider.min = 0;\n slider.max = 5000000;\n }\n if ((drop.value === 'salespercentage' && percentage.markerSettings.visible.length) ||\n (drop.value === 'salescount' && sales.markerSettings.visible.length)) {\n markerCheckBox.checked = true;\n }\n else {\n markerCheckBox.checked = false;\n }\n markerCheckBox.change = markerchange = function (e) {\n var boolean = e.checked;\n var spark = drop.value === 'salespercentage' ? percentage : sales;\n if (boolean) {\n spark.markerSettings.visible = getVisible();\n }\n else {\n spark.markerSettings.visible = [];\n }\n spark.refresh();\n };\n if ((drop.value === 'salespercentage' && percentage.dataLabelSettings.visible.length) ||\n (drop.value === 'salescount' && sales.dataLabelSettings.visible.length)) {\n datalabelCheckBox.checked = true;\n }\n else {\n datalabelCheckBox.checked = false;\n }\n var spark = drop.value === 'salespercentage' ? percentage : sales;\n if (!markerCheckBox.checked && !datalabelCheckBox.checked) {\n allCheckBox.checked = false;\n negativeCheckBox.checked = false;\n firstCheckBox.checked = false;\n lastCheckBox.checked = false;\n highCheckBox.checked = false;\n lowCheckBox.checked = false;\n }\n if (markerCheckBox.checked) {\n var spark_1 = drop.value === 'salespercentage' ? percentage : sales;\n allCheckBox.checked = spark_1.markerSettings.visible.indexOf('All') > -1;\n negativeCheckBox.checked = spark_1.markerSettings.visible.indexOf('Negative') > -1;\n firstCheckBox.checked = spark_1.markerSettings.visible.indexOf('Start') > -1;\n lastCheckBox.checked = spark_1.markerSettings.visible.indexOf('End') > -1;\n highCheckBox.checked = spark_1.markerSettings.visible.indexOf('High') > -1;\n lowCheckBox.checked = spark_1.markerSettings.visible.indexOf('Low') > -1;\n }\n if (datalabelCheckBox.checked) {\n var spark_2 = drop.value === 'salespercentage' ? percentage : sales;\n allCheckBox.checked = spark_2.dataLabelSettings.visible.indexOf('All') > -1;\n negativeCheckBox.checked = spark_2.dataLabelSettings.visible.indexOf('Negative') > -1;\n firstCheckBox.checked = spark_2.dataLabelSettings.visible.indexOf('Start') > -1;\n lastCheckBox.checked = spark_2.dataLabelSettings.visible.indexOf('End') > -1;\n highCheckBox.checked = spark_2.dataLabelSettings.visible.indexOf('High') > -1;\n lowCheckBox.checked = spark_2.dataLabelSettings.visible.indexOf('Low') > -1;\n }\n datalabelCheckBox.change = datalabelchange = function (e) {\n var boolean = e.checked;\n var spark = drop.value === 'salespercentage' ? percentage : sales;\n if (boolean) {\n spark.dataLabelSettings.visible = getVisible();\n }\n else {\n spark.dataLabelSettings.visible = [];\n }\n spark.refresh();\n };\n if ((drop.value === 'salespercentage' && percentage.tooltipSettings.visible === true) ||\n (drop.value === 'salescount' && sales.tooltipSettings.visible === true)) {\n tooltipCheckBox.checked = true;\n }\n else {\n tooltipCheckBox.checked = false;\n }\n if ((drop.value === 'salespercentage' && percentage.enableRtl === true) ||\n (drop.value === 'salescount' && sales.enableRtl === true)) {\n enableRTLCheckBox.checked = true;\n }\n else {\n enableRTLCheckBox.checked = false;\n }\n tooltipCheckBox.change = tooltipchange = function (e) {\n var boolean = e.checked;\n var spark = drop.value === 'salespercentage' ? percentage : sales;\n if (boolean) {\n spark.tooltipSettings.visible = true;\n }\n else {\n spark.tooltipSettings.visible = false;\n }\n spark.refresh();\n };\n if ((drop.value === 'salespercentage' && percentage.tooltipSettings.trackLineSettings.visible === true) ||\n (drop.value === 'salescount' && sales.tooltipSettings.trackLineSettings.visible === true)) {\n trackerCheckBox.checked = true;\n }\n else {\n trackerCheckBox.checked = false;\n }\n trackerCheckBox.change = trackerchange = function (e) {\n var boolean = e.checked;\n var spark = drop.value === 'salespercentage' ? percentage : sales;\n if (boolean) {\n spark.tooltipSettings.trackLineSettings.visible = true;\n }\n else {\n spark.tooltipSettings.trackLineSettings.visible = false;\n }\n spark.refresh();\n };\n if ((drop.value === 'salespercentage' && percentage.axisSettings.lineSettings.visible === true) ||\n (drop.value === 'salescount' && sales.axisSettings.lineSettings.visible === true)) {\n axislineCheckBox.checked = true;\n }\n else {\n axislineCheckBox.checked = false;\n }\n axislineCheckBox.change = axislinechange = function (e) {\n var boolean = e.checked;\n var spark = drop.value === 'salespercentage' ? percentage : sales;\n if (boolean) {\n spark.axisSettings.lineSettings.visible = true;\n }\n else {\n spark.axisSettings.lineSettings.visible = false;\n }\n spark.refresh();\n };\n if (drop.value === 'salespercentage' && percentage.axisSettings.value !== 0) {\n slider.value = percentage.axisSettings.value;\n slider.min = 0;\n slider.max = 10;\n document.getElementById('axisval').innerHTML = 'Axis value: ' + percentage.axisSettings.value;\n }\n if (drop.value === 'salescount' && sales.axisSettings.value !== 0) {\n slider.value = sales.axisSettings.value;\n slider.min = 0;\n slider.max = 5000000;\n document.getElementById('axisval').innerHTML = 'Axis value: ' + sales.axisSettings.value;\n }\n slider.change = sliderChange = function (e) {\n var spark = drop.value === 'salespercentage' ? percentage : sales;\n spark.axisSettings.value = e.value;\n document.getElementById('axisval').innerHTML = 'Axis value: ' + e.value;\n spark.refresh();\n };\n allCheckBox.checked = !(negativeCheckBox.checked || highCheckBox.checked || lowCheckBox.checked ||\n firstCheckBox.checked || lastCheckBox.checked);\n negativeCheckBox.disabled = highCheckBox.disabled = lowCheckBox.disabled = firstCheckBox.disabled =\n lastCheckBox.disabled = allCheckBox.checked;\n };\n sampleValue.appendTo('#spark');\n if (sampleValue.value === 'salespercentage') {\n slider.min = 0;\n slider.max = 10;\n }\n else {\n slider.min = 0;\n slider.max = 5000000;\n }\n allCheckBox.change = allchange = function (e) {\n var checked = e.checked;\n negativeCheckBox.disabled = checked;\n firstCheckBox.disabled = checked;\n lastCheckBox.disabled = checked;\n highCheckBox.disabled = checked;\n lowCheckBox.disabled = checked;\n var spark = sampleValue.value === 'salespercentage' ? percentage : sales;\n spark.markerSettings.visible = (checked && markerCheckBox.checked) ? ['All'] : (markerCheckBox.checked) ? getVisible() : [];\n spark.dataLabelSettings.visible = (checked && datalabelCheckBox.checked) ? ['All'] :\n (datalabelCheckBox.checked) ? getVisible() : [];\n spark.refresh();\n };\n negativeCheckBox.change = otherchange = firstCheckBox.change = lastCheckBox.change = highCheckBox.change =\n lowCheckBox.change = function (e) {\n processMarkerLabel(e);\n };\n var processMarkerLabel = function (e) {\n var checked = e.checked;\n var spark = sampleValue.value === 'salespercentage' ? percentage : sales;\n if (markerCheckBox.checked) {\n spark.markerSettings.visible = getVisible();\n spark.refresh();\n }\n if (datalabelCheckBox.checked) {\n spark.dataLabelSettings.visible = getVisible();\n spark.refresh();\n }\n };\n var getVisible = function () {\n var visible = [];\n if (allCheckBox.checked) {\n return ['All'];\n }\n if (negativeCheckBox.checked) {\n visible.push('Negative');\n }\n if (firstCheckBox.checked) {\n visible.push('Start');\n }\n if (lastCheckBox.checked) {\n visible.push('End');\n }\n if (highCheckBox.checked) {\n visible.push('High');\n }\n if (lowCheckBox.checked) {\n visible.push('Low');\n }\n return visible;\n };\n markerCheckBox.change = markerchange = function (e) {\n var boolean = e.checked;\n var spark = sampleValue.value === 'salespercentage' ? percentage : sales;\n if (boolean) {\n spark.markerSettings.visible = getVisible();\n }\n else {\n spark.markerSettings.visible = [];\n }\n spark.refresh();\n };\n datalabelCheckBox.change = datalabelchange = function (e) {\n var boolean = e.checked;\n var spark = sampleValue.value === 'salespercentage' ? percentage : sales;\n if (boolean) {\n spark.dataLabelSettings.visible = getVisible();\n }\n else {\n spark.dataLabelSettings.visible = [];\n }\n spark.refresh();\n };\n\tenableRTLCheckBox.change = enableRTLchange = function (e) {\n\t\tvar boolean = e.checked;\n\t\tvar spark = sampleValue.value === 'salespercentage' ? percentage : sales;\n\t\tif(boolean == true) {\n\t\t\tspark.enableRtl = true;\n\t\t} \n\t\telse {\n\t\t\tspark.enableRtl = false;\n\t\t}\n\t\tspark.refresh();\n\t};\n tooltipCheckBox.change = tooltipchange = function (e) {\n var boolean = e.checked;\n var spark = sampleValue.value === 'salespercentage' ? percentage : sales;\n if (boolean) {\n spark.tooltipSettings.visible = true;\n spark.tooltipSettings.format = '${xval}: ${yval}';\n }\n else {\n spark.tooltipSettings.visible = false;\n }\n spark.refresh();\n };\n trackerCheckBox.change = trackerchange = function (e) {\n var boolean = e.checked;\n var spark = sampleValue.value === 'salespercentage' ? percentage : sales;\n if (boolean) {\n spark.tooltipSettings.trackLineSettings.visible = true;\n spark.tooltipSettings.trackLineSettings.color = 'red';\n spark.tooltipSettings.trackLineSettings.width = 1;\n }\n else {\n spark.tooltipSettings.trackLineSettings.visible = false;\n }\n spark.refresh();\n };\n axislineCheckBox.change = axislinechange = function (e) {\n var boolean = e.checked;\n var spark = sampleValue.value === 'salespercentage' ? percentage : sales;\n if (boolean) {\n spark.axisSettings.lineSettings.visible = true;\n spark.axisSettings.lineSettings.color = 'red';\n spark.axisSettings.lineSettings.width = 2;\n }\n else {\n spark.axisSettings.lineSettings.visible = false;\n }\n spark.refresh();\n };\n slider.change = sliderChange = function (e) {\n var spark = sampleValue.value === 'salespercentage' ? percentage : sales;\n spark.axisSettings.value = e.value;\n document.getElementById('axisval').innerHTML = 'Axis value: ' + e.value;\n spark.refresh();\n };\n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n \n
\n
\n
\n Worldwide car sales by brand - 2017 \n
\n
\n \n Sales Percentage \n \n
\n \n \n \n Sales Count \n \n
\n \n \n
\n
\n
\n
\n
\n \n \n \n \n \n\n \n
","index.js":"{{ripple}}\n\n var percentage = new ej.charts.Sparkline({\n\n lineWidth: 1,\n type: 'Column',\n valueType: 'Category',\n height: '200px',\n width: '180px',\n dataSource: [\n { x: 0, xval: 'AUDI', yval: 1 },\n { x: 1, xval: 'BMW', yval: 5 },\n { x: 2, xval: 'BUICK', yval: -1 },\n { x: 3, xval: 'CETROEN', yval: -6 }, \n { x: 6, xval: 'FORD', yval: -2 },\n { x: 7, xval: 'HONDA', yval: 7 },\n { x: 8, xval: 'HYUNDAI', yval: -9 },\n { x: 9, xval: 'JEEP', yval: 0 },\n { x: 4, xval: 'CHEVROLET', yval: 0 },\n { x: 5, xval: 'FIAT', yval: 1 },\n { x: 10, xval: 'KIA', yval: -10 },\n { x: 11, xval: 'MAZDA', yval: 3 }, \n { x: 14, xval: 'OPEL/VHALL', yval: -6 },\n { x: 15, xval: 'PEUGEOT', yval: 0 },\n { x: 16, xval: 'RENAULT', yval: 7 },\n { x: 17, xval: 'SKODA', yval: 5 },\n { x: 12, xval: 'MERCEDES', yval: 13 },\n { x: 13, xval: 'NISSAN', yval: 5 },\n { x: 18, xval: 'SUBARU', yval: 5 },\n { x: 19, xval: 'SUZUKI', yval: 11 },\n { x: 20, xval: 'TOYOTA', yval: 5 },\n { x: 21, xval: 'VOLKSWAGEN', yval: 3 },\n ],\n xName: 'xval', yName: 'yval',\n markerSettings: {\n fill: 'red',\n size: 5\n },\n tooltipSettings: {\n format: '${xval}: ${yval}',\n trackLineSettings: {\n color: 'red',\n width: 1\n }\n },\n axisSettings: {\n lineSettings: {\n color: 'red',\n width: 2\n }\n }\n });\n percentage.appendTo('#percentage');\n var sales = new ej.charts.Sparkline({\n load: sparkload,\n height: '200px',\n width: '180px',\n lineWidth: 1,\n type: 'Column',\n valueType: 'Category',\n dataSource: [\n { x: 0, xval: 'AUDI', yval: 1847613 },\n { x: 1, xval: 'BMW', yval: 2030331 },\n { x: 2, xval: 'BUICK', yval: 1465823 },\n { x: 3, xval: 'CETROEN', yval: 999888 },\n { x: 4, xval: 'CHEVROLET', yval: 3857388 },\n { x: 5, xval: 'FIAT', yval: 1503806 },\n { x: 6, xval: 'FORD', yval: 5953122 },\n { x: 7, xval: 'HONDA', yval: 4967689 },\n { x: 8, xval: 'HYUNDAI', yval: 3951176 },\n { x: 9, xval: 'JEEP', yval: 1390130 },\n { x: 10, xval: 'KIA', yval: 2511293 },\n { x: 11, xval: 'MAZDA', yval: 1495557 },\n { x: 12, xval: 'MERCEDES', yval: 2834181 },\n { x: 13, xval: 'NISSAN', yval: 4834694 },\n { x: 14, xval: 'OPEL/VHALL', yval: 996559 },\n { x: 15, xval: 'PEUGEOT', yval: 1590300 },\n { x: 16, xval: 'RENAULT', yval: 2275227 },\n { x: 17, xval: 'SKODA', yval: 1180672 },\n { x: 18, xval: 'SUBARU', yval: 1050390 },\n { x: 19, xval: 'SUZUKI', yval: 2891415 },\n { x: 20, xval: 'TOYOTA', yval: 7843423 },\n { x: 21, xval: 'VOLKSWAGEN', yval: 6639250 },\n ],\n xName: 'xval', yName: 'yval',\n axisSettings: {\n lineSettings: {\n color: 'red',\n width: 2\n }\n },\n markerSettings: {\n fill: 'red',\n size: 5\n },\n tooltipSettings: {\n format: '${xval}: ${yval}',\n trackLineSettings: {\n color: 'red',\n width: 1\n }\n }\n });\n sales.appendTo('#sales');\n // Code for Property Panel\n var sampleChange;\n var sampleValue = new ej.dropdowns.DropDownList({\n index: 0,\n placeholder: 'Sales Percentage',\n width: '100%',\n change: sampleChange\n });\n var sliderChange;\n var slider = new ej.inputs.Slider({\n value: 0, type: 'MinRange',\n change: sliderChange,\n max: 100, min: 0\n }, '#range');\n var allchange;\n var allCheckBox = new ej.buttons.CheckBox({\n checked: true, change: allchange\n }, '#all');\n var otherchange;\n var negativeCheckBox = new ej.buttons.CheckBox({\n change: otherchange, disabled: true\n }, '#negative');\n var firstCheckBox = new ej.buttons.CheckBox({\n change: otherchange, disabled: true\n }, '#first');\n var lastCheckBox = new ej.buttons.CheckBox({\n change: otherchange, disabled: true\n }, '#last');\n var highCheckBox = new ej.buttons.CheckBox({\n change: otherchange, disabled: true\n }, '#high');\n var lowCheckBox = new ej.buttons.CheckBox({\n change: otherchange, disabled: true\n }, '#low');\n var markerchange;\n var markerCheckBox = new ej.buttons.CheckBox({\n change: markerchange\n }, '#marker');\n var datalabelchange;\n var datalabelCheckBox = new ej.buttons.CheckBox({\n change: datalabelchange\n }, '#datalabel');\n\tvar enableRTLchange;\n var enableRTLCheckBox = new ej.buttons.CheckBox({\n change: enableRTLchange\n }, '#enableRTL');\n var tooltipchange;\n var tooltipCheckBox = new ej.buttons.CheckBox({\n change: tooltipchange\n }, '#tooltip');\n var trackerchange;\n var trackerCheckBox = new ej.buttons.CheckBox({\n change: trackerchange\n }, '#trackline');\n var axislinechange;\n var axislineCheckBox = new ej.buttons.CheckBox({\n change: axislinechange\n }, '#axis1');\n sampleValue.change = sampleChange = function (drop) {\n if (drop.value === 'salespercentage') {\n slider.min = 0;\n slider.max = 10;\n }\n else {\n slider.min = 0;\n slider.max = 5000000;\n }\n if ((drop.value === 'salespercentage' && percentage.markerSettings.visible.length) ||\n (drop.value === 'salescount' && sales.markerSettings.visible.length)) {\n markerCheckBox.checked = true;\n }\n else {\n markerCheckBox.checked = false;\n }\n markerCheckBox.change = markerchange = function (e) {\n var boolean = e.checked;\n var spark = drop.value === 'salespercentage' ? percentage : sales;\n if (boolean) {\n spark.markerSettings.visible = getVisible();\n }\n else {\n spark.markerSettings.visible = [];\n }\n spark.refresh();\n };\n if ((drop.value === 'salespercentage' && percentage.dataLabelSettings.visible.length) ||\n (drop.value === 'salescount' && sales.dataLabelSettings.visible.length)) {\n datalabelCheckBox.checked = true;\n }\n else {\n datalabelCheckBox.checked = false;\n }\n var spark = drop.value === 'salespercentage' ? percentage : sales;\n if (!markerCheckBox.checked && !datalabelCheckBox.checked) {\n allCheckBox.checked = false;\n negativeCheckBox.checked = false;\n firstCheckBox.checked = false;\n lastCheckBox.checked = false;\n highCheckBox.checked = false;\n lowCheckBox.checked = false;\n }\n if (markerCheckBox.checked) {\n var spark_1 = drop.value === 'salespercentage' ? percentage : sales;\n allCheckBox.checked = spark_1.markerSettings.visible.indexOf('All') > -1;\n negativeCheckBox.checked = spark_1.markerSettings.visible.indexOf('Negative') > -1;\n firstCheckBox.checked = spark_1.markerSettings.visible.indexOf('Start') > -1;\n lastCheckBox.checked = spark_1.markerSettings.visible.indexOf('End') > -1;\n highCheckBox.checked = spark_1.markerSettings.visible.indexOf('High') > -1;\n lowCheckBox.checked = spark_1.markerSettings.visible.indexOf('Low') > -1;\n }\n if (datalabelCheckBox.checked) {\n var spark_2 = drop.value === 'salespercentage' ? percentage : sales;\n allCheckBox.checked = spark_2.dataLabelSettings.visible.indexOf('All') > -1;\n negativeCheckBox.checked = spark_2.dataLabelSettings.visible.indexOf('Negative') > -1;\n firstCheckBox.checked = spark_2.dataLabelSettings.visible.indexOf('Start') > -1;\n lastCheckBox.checked = spark_2.dataLabelSettings.visible.indexOf('End') > -1;\n highCheckBox.checked = spark_2.dataLabelSettings.visible.indexOf('High') > -1;\n lowCheckBox.checked = spark_2.dataLabelSettings.visible.indexOf('Low') > -1;\n }\n datalabelCheckBox.change = datalabelchange = function (e) {\n var boolean = e.checked;\n var spark = drop.value === 'salespercentage' ? percentage : sales;\n if (boolean) {\n spark.dataLabelSettings.visible = getVisible();\n }\n else {\n spark.dataLabelSettings.visible = [];\n }\n spark.refresh();\n };\n if ((drop.value === 'salespercentage' && percentage.tooltipSettings.visible === true) ||\n (drop.value === 'salescount' && sales.tooltipSettings.visible === true)) {\n tooltipCheckBox.checked = true;\n }\n else {\n tooltipCheckBox.checked = false;\n }\n if ((drop.value === 'salespercentage' && percentage.enableRtl === true) ||\n (drop.value === 'salescount' && sales.enableRtl === true)) {\n enableRTLCheckBox.checked = true;\n }\n else {\n enableRTLCheckBox.checked = false;\n }\n tooltipCheckBox.change = tooltipchange = function (e) {\n var boolean = e.checked;\n var spark = drop.value === 'salespercentage' ? percentage : sales;\n if (boolean) {\n spark.tooltipSettings.visible = true;\n }\n else {\n spark.tooltipSettings.visible = false;\n }\n spark.refresh();\n };\n if ((drop.value === 'salespercentage' && percentage.tooltipSettings.trackLineSettings.visible === true) ||\n (drop.value === 'salescount' && sales.tooltipSettings.trackLineSettings.visible === true)) {\n trackerCheckBox.checked = true;\n }\n else {\n trackerCheckBox.checked = false;\n }\n trackerCheckBox.change = trackerchange = function (e) {\n var boolean = e.checked;\n var spark = drop.value === 'salespercentage' ? percentage : sales;\n if (boolean) {\n spark.tooltipSettings.trackLineSettings.visible = true;\n }\n else {\n spark.tooltipSettings.trackLineSettings.visible = false;\n }\n spark.refresh();\n };\n if ((drop.value === 'salespercentage' && percentage.axisSettings.lineSettings.visible === true) ||\n (drop.value === 'salescount' && sales.axisSettings.lineSettings.visible === true)) {\n axislineCheckBox.checked = true;\n }\n else {\n axislineCheckBox.checked = false;\n }\n axislineCheckBox.change = axislinechange = function (e) {\n var boolean = e.checked;\n var spark = drop.value === 'salespercentage' ? percentage : sales;\n if (boolean) {\n spark.axisSettings.lineSettings.visible = true;\n }\n else {\n spark.axisSettings.lineSettings.visible = false;\n }\n spark.refresh();\n };\n if (drop.value === 'salespercentage' && percentage.axisSettings.value !== 0) {\n slider.value = percentage.axisSettings.value;\n slider.min = 0;\n slider.max = 10;\n document.getElementById('axisval').innerHTML = 'Axis value: ' + percentage.axisSettings.value;\n }\n if (drop.value === 'salescount' && sales.axisSettings.value !== 0) {\n slider.value = sales.axisSettings.value;\n slider.min = 0;\n slider.max = 5000000;\n document.getElementById('axisval').innerHTML = 'Axis value: ' + sales.axisSettings.value;\n }\n slider.change = sliderChange = function (e) {\n var spark = drop.value === 'salespercentage' ? percentage : sales;\n spark.axisSettings.value = e.value;\n document.getElementById('axisval').innerHTML = 'Axis value: ' + e.value;\n spark.refresh();\n };\n allCheckBox.checked = !(negativeCheckBox.checked || highCheckBox.checked || lowCheckBox.checked ||\n firstCheckBox.checked || lastCheckBox.checked);\n negativeCheckBox.disabled = highCheckBox.disabled = lowCheckBox.disabled = firstCheckBox.disabled =\n lastCheckBox.disabled = allCheckBox.checked;\n };\n sampleValue.appendTo('#spark');\n if (sampleValue.value === 'salespercentage') {\n slider.min = 0;\n slider.max = 10;\n }\n else {\n slider.min = 0;\n slider.max = 5000000;\n }\n allCheckBox.change = allchange = function (e) {\n var checked = e.checked;\n negativeCheckBox.disabled = checked;\n firstCheckBox.disabled = checked;\n lastCheckBox.disabled = checked;\n highCheckBox.disabled = checked;\n lowCheckBox.disabled = checked;\n var spark = sampleValue.value === 'salespercentage' ? percentage : sales;\n spark.markerSettings.visible = (checked && markerCheckBox.checked) ? ['All'] : (markerCheckBox.checked) ? getVisible() : [];\n spark.dataLabelSettings.visible = (checked && datalabelCheckBox.checked) ? ['All'] :\n (datalabelCheckBox.checked) ? getVisible() : [];\n spark.refresh();\n };\n negativeCheckBox.change = otherchange = firstCheckBox.change = lastCheckBox.change = highCheckBox.change =\n lowCheckBox.change = function (e) {\n processMarkerLabel(e);\n };\n var processMarkerLabel = function (e) {\n var checked = e.checked;\n var spark = sampleValue.value === 'salespercentage' ? percentage : sales;\n if (markerCheckBox.checked) {\n spark.markerSettings.visible = getVisible();\n spark.refresh();\n }\n if (datalabelCheckBox.checked) {\n spark.dataLabelSettings.visible = getVisible();\n spark.refresh();\n }\n };\n var getVisible = function () {\n var visible = [];\n if (allCheckBox.checked) {\n return ['All'];\n }\n if (negativeCheckBox.checked) {\n visible.push('Negative');\n }\n if (firstCheckBox.checked) {\n visible.push('Start');\n }\n if (lastCheckBox.checked) {\n visible.push('End');\n }\n if (highCheckBox.checked) {\n visible.push('High');\n }\n if (lowCheckBox.checked) {\n visible.push('Low');\n }\n return visible;\n };\n markerCheckBox.change = markerchange = function (e) {\n var boolean = e.checked;\n var spark = sampleValue.value === 'salespercentage' ? percentage : sales;\n if (boolean) {\n spark.markerSettings.visible = getVisible();\n }\n else {\n spark.markerSettings.visible = [];\n }\n spark.refresh();\n };\n datalabelCheckBox.change = datalabelchange = function (e) {\n var boolean = e.checked;\n var spark = sampleValue.value === 'salespercentage' ? percentage : sales;\n if (boolean) {\n spark.dataLabelSettings.visible = getVisible();\n }\n else {\n spark.dataLabelSettings.visible = [];\n }\n spark.refresh();\n };\n\tenableRTLCheckBox.change = enableRTLchange = function (e) {\n\t\tvar boolean = e.checked;\n\t\tvar spark = sampleValue.value === 'salespercentage' ? percentage : sales;\n\t\tif(boolean == true) {\n\t\t\tspark.enableRtl = true;\n\t\t} \n\t\telse {\n\t\t\tspark.enableRtl = false;\n\t\t}\n\t\tspark.refresh();\n\t};\n tooltipCheckBox.change = tooltipchange = function (e) {\n var boolean = e.checked;\n var spark = sampleValue.value === 'salespercentage' ? percentage : sales;\n if (boolean) {\n spark.tooltipSettings.visible = true;\n spark.tooltipSettings.format = '${xval}: ${yval}';\n }\n else {\n spark.tooltipSettings.visible = false;\n }\n spark.refresh();\n };\n trackerCheckBox.change = trackerchange = function (e) {\n var boolean = e.checked;\n var spark = sampleValue.value === 'salespercentage' ? percentage : sales;\n if (boolean) {\n spark.tooltipSettings.trackLineSettings.visible = true;\n spark.tooltipSettings.trackLineSettings.color = 'red';\n spark.tooltipSettings.trackLineSettings.width = 1;\n }\n else {\n spark.tooltipSettings.trackLineSettings.visible = false;\n }\n spark.refresh();\n };\n axislineCheckBox.change = axislinechange = function (e) {\n var boolean = e.checked;\n var spark = sampleValue.value === 'salespercentage' ? percentage : sales;\n if (boolean) {\n spark.axisSettings.lineSettings.visible = true;\n spark.axisSettings.lineSettings.color = 'red';\n spark.axisSettings.lineSettings.width = 2;\n }\n else {\n spark.axisSettings.lineSettings.visible = false;\n }\n spark.refresh();\n };\n slider.change = sliderChange = function (e) {\n var spark = sampleValue.value === 'salespercentage' ? percentage : sales;\n spark.axisSettings.value = e.value;\n document.getElementById('axisval').innerHTML = 'Axis value: ' + e.value;\n spark.refresh();\n };\n"}
\ No newline at end of file
diff --git a/src/sparkline/default-stack.json b/src/sparkline/default-stack.json
index 2f4ecddc..df9c8de9 100644
--- a/src/sparkline/default-stack.json
+++ b/src/sparkline/default-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n \n
\n
\n Population comparision between various countries\n
\n
\n (From 2005 to 2014)\n
\n
\n
\n
\n \n \n \n \n Population \n
\n \n \n \n Population Density \n
\n \n \n \n Population Growth Rate \n
\n \n \n \n Birth Rate \n
\n \n \n \n \n Australia \n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n \n \n Canada \n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n \n \n China \n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n \n \n France \n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n \n \n Germany \n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n \n \n India \n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n \n \n Russia \n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n \n \n Sweden \n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n \n \n United Kingdom \n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n \n \n United Sates \n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n
\n
\n
\n \n \n
","index.js":"{{ripple}}\n var sparkmodel1 = {\n height: '50px',\n width: '90%', \n lineWidth: 2,\n type: 'Line',\n valueType: 'Category',\n fill: '#3C78EF',\n negativePointColor: '#fc5070',\n format: 'n',\n useGroupingSeparator: true,\n tooltipSettings: {\n visible: true,\n trackLineSettings: {\n visible: true,\n color: '#fc5070',\n width: 2\n }\n },\n xName: 'xval'\n };\n var sparkmodel2 = { \n valueType: 'Category',\n fill: '#3C78EF',\n opacity: 1,\n height: '50px',\n width: '90%', \n lineWidth: 2,\n type: 'Area',\n border: {\n color: '#fc5070',\n width: 2\n },\n negativePointColor: '#fc5070',\n tooltipSettings: {\n visible: true,\n },\n xName: 'xval'\n };\n var sparkmodel3 = {\n negativePointColor: '#fc5070',\n tooltipSettings: {\n visible: true,\n },\n height: '50px',\n width: '90%', \n lineWidth: 2,\n type: 'WinLoss',\n valueType: 'Category',\n fill: '#3C78EF', \n xName: 'xval'\n };\n var sparkmodel4 = {\n valueType: 'Category',\n fill: '#3C78EF',\n negativePointColor: '#fc5070', \n height: '50px',\n width: '90%', \n lineWidth: 2,\n type: 'Column', \n tooltipSettings: {\n visible: true,\n },\n xName: 'xval'\n };\n var australia1 = new ej.charts.Sparkline(sparkmodel1);\n australia1.dataSource = window.defaultSparkData;\n australia1.yName = 'yval';\n australia1.tooltipSettings.format = '${xval} : ${yval}';\n australia1.appendTo('#p-australia');\n var canada1 = new ej.charts.Sparkline(sparkmodel1);\n canada1.dataSource = window.defaultSparkData;\n canada1.yName = 'yval1';\n canada1.tooltipSettings.format = '${xval} : ${yval1}';\n canada1.appendTo('#p-canada');\n var china1 = new ej.charts.Sparkline(sparkmodel1);\n china1.dataSource = window.defaultSparkData;\n china1.yName = 'yval2';\n china1.tooltipSettings.format = '${xval} : ${yval2}';\n china1.appendTo('#p-china');\n var france1 = new ej.charts.Sparkline(sparkmodel1);\n france1.dataSource = window.defaultSparkData;\n france1.yName = 'yval3';\n france1.tooltipSettings.format = '${xval} : ${yval3}';\n france1.appendTo('#p-france');\n var germany1 = new ej.charts.Sparkline(sparkmodel1);\n germany1.dataSource = window.defaultSparkData;\n germany1.tooltipSettings.format = '${xval} : ${yval4}';\n germany1.yName = 'yval4';\n germany1.appendTo('#p-germany');\n var india1 = new ej.charts.Sparkline(sparkmodel1);\n india1.dataSource = window.defaultSparkData;\n india1.tooltipSettings.format = '${xval} : ${yval5}';\n india1.yName = 'yval5';\n india1.appendTo('#p-india');\n var russia1 = new ej.charts.Sparkline(sparkmodel1);\n russia1.dataSource = window.defaultSparkData;\n russia1.tooltipSettings.format = '${xval} : ${yval6}';\n russia1.yName = 'yval6';\n russia1.appendTo('#p-russia');\n var sweden1 = new ej.charts.Sparkline(sparkmodel1);\n sweden1.dataSource = window.defaultSparkData;\n sweden1.tooltipSettings.format = '${xval} : ${yval7}';\n sweden1.yName = 'yval7';\n sweden1.appendTo('#p-sweden');\n var uk1 = new ej.charts.Sparkline(sparkmodel1);\n uk1.dataSource = window.defaultSparkData;\n uk1.tooltipSettings.format = '${xval} : ${yval8}';\n uk1.yName = 'yval8';\n uk1.appendTo('#p-uk');\n var us1 = new ej.charts.Sparkline(sparkmodel1);\n us1.dataSource = window.defaultSparkData;\n us1.tooltipSettings.format = '${xval} : ${yval9}';\n us1.yName = 'yval9';\n us1.appendTo('#p-us');\n var australia2 = new ej.charts.Sparkline(sparkmodel2);\n australia2.dataSource = window.defaultSparkData;\n australia2.yName = 'yval10';\n australia2.tooltipSettings.format = '${xval} : ${yval10}';\n australia2.appendTo('#d-australia');\n var canada2 = new ej.charts.Sparkline(sparkmodel2);\n canada2.dataSource = window.defaultSparkData;\n canada2.tooltipSettings.format = '${xval} : ${yval11}';\n canada2.yName = 'yval11';\n canada2.appendTo('#d-canada');\n var china2 = new ej.charts.Sparkline(sparkmodel2);\n china2.yName = 'yval12';\n china2.tooltipSettings.format = '${xval} : ${yval12}';\n china2.dataSource = window.defaultSparkData;\n china2.appendTo('#d-china');\n var france2 = new ej.charts.Sparkline(sparkmodel2);\n france2.dataSource = window.defaultSparkData;\n france2.tooltipSettings.format = '${xval} : ${yval13}';\n france2.yName = 'yval13';\n france2.appendTo('#d-france');\n var germany2 = new ej.charts.Sparkline(sparkmodel2);\n germany2.dataSource = window.defaultSparkData;\n germany2.tooltipSettings.format = '${xval} : ${yval14}';\n germany2.yName = 'yval14';\n germany2.appendTo('#d-germany');\n var india2 = new ej.charts.Sparkline(sparkmodel2);\n india2.dataSource = window.defaultSparkData;\n india2.tooltipSettings.format = '${xval} : ${yval15}';\n india2.yName = 'yval15';\n india2.appendTo('#d-india');\n var russia2 = new ej.charts.Sparkline(sparkmodel2);\n russia2.dataSource = window.defaultSparkData;\n russia2.tooltipSettings.format = '${xval} : ${yval16}';\n russia2.yName = 'yval16';\n russia2.appendTo('#d-russia');\n var sweden2 = new ej.charts.Sparkline(sparkmodel2);\n sweden2.dataSource = window.defaultSparkData;\n sweden2.tooltipSettings.format = '${xval} : ${yval17}';\n sweden2.yName = 'yval17';\n sweden2.appendTo('#d-sweden');\n var uk2 = new ej.charts.Sparkline(sparkmodel2);\n uk2.yName = 'yval18';\n uk2.tooltipSettings.format = '${xval} : ${yval18}';\n uk2.dataSource = window.defaultSparkData;\n uk2.appendTo('#d-uk');\n var us2 = new ej.charts.Sparkline(sparkmodel2);\n us2.yName = 'yval19';\n us2.dataSource = window.defaultSparkData;\n us2.tooltipSettings.format = '${xval} : ${yval19}';\n us2.appendTo('#d-us');\n var australia3 = new ej.charts.Sparkline(sparkmodel3);\n australia3.yName = 'yval20';\n australia3.tooltipSettings.format = '${xval} : ${yval20}';\n australia3.dataSource = window.defaultSparkData;\n australia3.appendTo('#g-australia');\n var canada3 = new ej.charts.Sparkline(sparkmodel3);\n canada3.yName = 'yval21';\n canada3.tooltipSettings.format = '${xval} : ${yval21}';\n canada3.dataSource = window.defaultSparkData;\n canada3.appendTo('#g-canada');\n var china3 = new ej.charts.Sparkline(sparkmodel3);\n china3.yName = 'yval22';\n china3.tooltipSettings.format = '${xval} : ${yval22}';\n china3.dataSource = window.defaultSparkData;\n china3.appendTo('#g-china');\n var france3 = new ej.charts.Sparkline(sparkmodel3);\n france3.yName = 'yval23';\n france3.tooltipSettings.format = '${xval} : ${yval23}';\n france3.dataSource = window.defaultSparkData;\n france3.appendTo('#g-france');\n var germany3 = new ej.charts.Sparkline(sparkmodel3);\n germany3.yName = 'yval24';\n germany3.tooltipSettings.format = '${xval} : ${yval24}';\n germany3.dataSource = window.defaultSparkData;\n germany3.appendTo('#g-germany');\n var india3 = new ej.charts.Sparkline(sparkmodel3);\n india3.yName = 'yval25';\n india3.tooltipSettings.format = '${xval} : ${yval25}';\n india3.dataSource = window.defaultSparkData;\n india3.appendTo('#g-india');\n var russia3 = new ej.charts.Sparkline(sparkmodel3);\n russia3.yName = 'yval26';\n russia3.tooltipSettings.format = '${xval} : ${yval26}';\n russia3.dataSource = window.defaultSparkData;\n russia3.appendTo('#g-russia');\n var sweden3 = new ej.charts.Sparkline(sparkmodel3);\n sweden3.yName = 'yval27';\n sweden3.tooltipSettings.format = '${xval} : ${yval27}';\n sweden3.dataSource = window.defaultSparkData;\n sweden3.appendTo('#g-sweden');\n var uk3 = new ej.charts.Sparkline(sparkmodel3);\n uk3.yName = 'yval28';\n uk3.tooltipSettings.format = '${xval} : ${yval28}';\n uk3.dataSource = window.defaultSparkData;\n uk3.appendTo('#g-uk');\n var us3 = new ej.charts.Sparkline(sparkmodel3);\n us3.tooltipSettings.format = '${xval} : ${yval29}';\n us3.yName = 'yval29';\n us3.dataSource = window.defaultSparkData;\n us3.appendTo('#g-us');\n var australia4 = new ej.charts.Sparkline(sparkmodel4);\n australia4.dataSource = window.defaultSparkData;\n australia4.yName = 'yval30';\n australia4.tooltipSettings.format = '${xval} : ${yval30}';\n australia4.axisSettings.minY = 12;\n australia4.appendTo('#b-australia');\n var canada4 = new ej.charts.Sparkline(sparkmodel4);\n canada4.dataSource = window.defaultSparkData;\n canada4.axisSettings.minY = 10.20;\n canada4.tooltipSettings.format = '${xval} : ${yval31}';\n canada4.yName = 'yval31';\n canada4.appendTo('#b-canada');\n var china4 = new ej.charts.Sparkline(sparkmodel4);\n china4.dataSource = window.defaultSparkData;\n china4.tooltipSettings.format = '${xval} : ${yval32}';\n china4.yName = 'yval32';\n china4.axisSettings.minY = 12;\n china4.appendTo('#b-china');\n var france4 = new ej.charts.Sparkline(sparkmodel4);\n france4.dataSource = window.defaultSparkData;\n france4.tooltipSettings.format = '${xval} : ${yval33}';\n france4.yName = 'yval33';\n france4.axisSettings.minY = 11.5;\n france4.appendTo('#b-france');\n var germany4 = new ej.charts.Sparkline(sparkmodel4);\n germany4.dataSource = window.defaultSparkData;\n germany4.axisSettings.minY = 8;\n germany4.tooltipSettings.format = '${xval} : ${yval34}';\n germany4.yName = 'yval34';\n germany4.appendTo('#b-germany');\n var india4 = new ej.charts.Sparkline(sparkmodel4);\n india4.dataSource = window.defaultSparkData;\n india4.axisSettings.minY = 19;\n india4.tooltipSettings.format = '${xval} : ${yval35}';\n india4.yName = 'yval35';\n india4.appendTo('#b-india');\n var russia4 = new ej.charts.Sparkline(sparkmodel4);\n russia4.dataSource = window.defaultSparkData;\n russia4.axisSettings.minY = 9.5;\n russia4.yName = 'yval36';\n russia4.tooltipSettings.format = '${xval} : ${yval36}';\n russia4.appendTo('#b-russia');\n var sweden4 = new ej.charts.Sparkline(sparkmodel4);\n sweden4.dataSource = window.defaultSparkData;\n sweden4.axisSettings.minY = 10;\n sweden4.tooltipSettings.format = '${xval} : ${yval37}';\n sweden4.yName = 'yval37';\n sweden4.appendTo('#b-sweden');\n var uk4 = new ej.charts.Sparkline(sparkmodel4);\n uk4.dataSource = window.defaultSparkData;\n uk4.axisSettings.minY = 10;\n uk4.tooltipSettings.format = '${xval} : ${yval38}';\n uk4.yName = 'yval38';\n uk4.appendTo('#b-uk');\n var us4 = new ej.charts.Sparkline(sparkmodel4);\n us4.dataSource = window.defaultSparkData;\n us4.axisSettings.minY = 13;\n us4.tooltipSettings.format = '${xval} : ${yval39}';\n us4.yName = 'yval39';\n us4.appendTo('#b-us');\n"}
\ No newline at end of file
+{"index.html":"\n\n \n\n \n\n \n
\n
\n Population comparision between various countries\n
\n
\n (From 2005 to 2014)\n
\n
\n
\n
\n \n \n \n \n Population \n
\n \n \n \n Population Density \n
\n \n \n \n Population Growth Rate \n
\n \n \n \n Birth Rate \n
\n \n \n \n \n Australia \n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n \n \n Canada \n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n \n \n China \n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n \n \n France \n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n \n \n Germany \n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n \n \n India \n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n \n \n Russia \n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n \n \n Sweden \n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n \n \n United Kingdom \n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n \n \n United Sates \n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n
\n
\n
\n \n \n
","index.js":"{{ripple}}\n var sparkmodel1 = {\n height: '50px',\n width: '90%', \n lineWidth: 2,\n type: 'Line',\n valueType: 'Category',\n fill: '#3C78EF',\n negativePointColor: '#fc5070',\n format: 'n',\n useGroupingSeparator: true,\n tooltipSettings: {\n visible: true,\n trackLineSettings: {\n visible: true,\n color: '#fc5070',\n width: 2\n }\n },\n xName: 'xval'\n };\n var sparkmodel2 = { \n valueType: 'Category',\n fill: '#3C78EF',\n opacity: 1,\n height: '50px',\n width: '90%', \n lineWidth: 2,\n type: 'Area',\n border: {\n color: '#fc5070',\n width: 2\n },\n negativePointColor: '#fc5070',\n tooltipSettings: {\n visible: true,\n },\n xName: 'xval'\n };\n var sparkmodel3 = {\n negativePointColor: '#fc5070',\n tooltipSettings: {\n visible: true,\n },\n height: '50px',\n width: '90%', \n lineWidth: 2,\n type: 'WinLoss',\n valueType: 'Category',\n fill: '#3C78EF', \n xName: 'xval'\n };\n var sparkmodel4 = {\n valueType: 'Category',\n fill: '#3C78EF',\n negativePointColor: '#fc5070', \n height: '50px',\n width: '90%', \n lineWidth: 2,\n type: 'Column', \n tooltipSettings: {\n visible: true,\n },\n xName: 'xval'\n };\n var australia1 = new ej.charts.Sparkline(sparkmodel1);\n australia1.dataSource = window.defaultSparkData;\n australia1.yName = 'yval';\n australia1.tooltipSettings.format = '${xval} : ${yval}';\n australia1.appendTo('#p-australia');\n var canada1 = new ej.charts.Sparkline(sparkmodel1);\n canada1.dataSource = window.defaultSparkData;\n canada1.yName = 'yval1';\n canada1.tooltipSettings.format = '${xval} : ${yval1}';\n canada1.appendTo('#p-canada');\n var china1 = new ej.charts.Sparkline(sparkmodel1);\n china1.dataSource = window.defaultSparkData;\n china1.yName = 'yval2';\n china1.tooltipSettings.format = '${xval} : ${yval2}';\n china1.appendTo('#p-china');\n var france1 = new ej.charts.Sparkline(sparkmodel1);\n france1.dataSource = window.defaultSparkData;\n france1.yName = 'yval3';\n france1.tooltipSettings.format = '${xval} : ${yval3}';\n france1.appendTo('#p-france');\n var germany1 = new ej.charts.Sparkline(sparkmodel1);\n germany1.dataSource = window.defaultSparkData;\n germany1.tooltipSettings.format = '${xval} : ${yval4}';\n germany1.yName = 'yval4';\n germany1.appendTo('#p-germany');\n var india1 = new ej.charts.Sparkline(sparkmodel1);\n india1.dataSource = window.defaultSparkData;\n india1.tooltipSettings.format = '${xval} : ${yval5}';\n india1.yName = 'yval5';\n india1.appendTo('#p-india');\n var russia1 = new ej.charts.Sparkline(sparkmodel1);\n russia1.dataSource = window.defaultSparkData;\n russia1.tooltipSettings.format = '${xval} : ${yval6}';\n russia1.yName = 'yval6';\n russia1.appendTo('#p-russia');\n var sweden1 = new ej.charts.Sparkline(sparkmodel1);\n sweden1.dataSource = window.defaultSparkData;\n sweden1.tooltipSettings.format = '${xval} : ${yval7}';\n sweden1.yName = 'yval7';\n sweden1.appendTo('#p-sweden');\n var uk1 = new ej.charts.Sparkline(sparkmodel1);\n uk1.dataSource = window.defaultSparkData;\n uk1.tooltipSettings.format = '${xval} : ${yval8}';\n uk1.yName = 'yval8';\n uk1.appendTo('#p-uk');\n var us1 = new ej.charts.Sparkline(sparkmodel1);\n us1.dataSource = window.defaultSparkData;\n us1.tooltipSettings.format = '${xval} : ${yval9}';\n us1.yName = 'yval9';\n us1.appendTo('#p-us');\n var australia2 = new ej.charts.Sparkline(sparkmodel2);\n australia2.dataSource = window.defaultSparkData;\n australia2.yName = 'yval10';\n australia2.tooltipSettings.format = '${xval} : ${yval10}';\n australia2.appendTo('#d-australia');\n var canada2 = new ej.charts.Sparkline(sparkmodel2);\n canada2.dataSource = window.defaultSparkData;\n canada2.tooltipSettings.format = '${xval} : ${yval11}';\n canada2.yName = 'yval11';\n canada2.appendTo('#d-canada');\n var china2 = new ej.charts.Sparkline(sparkmodel2);\n china2.yName = 'yval12';\n china2.tooltipSettings.format = '${xval} : ${yval12}';\n china2.dataSource = window.defaultSparkData;\n china2.appendTo('#d-china');\n var france2 = new ej.charts.Sparkline(sparkmodel2);\n france2.dataSource = window.defaultSparkData;\n france2.tooltipSettings.format = '${xval} : ${yval13}';\n france2.yName = 'yval13';\n france2.appendTo('#d-france');\n var germany2 = new ej.charts.Sparkline(sparkmodel2);\n germany2.dataSource = window.defaultSparkData;\n germany2.tooltipSettings.format = '${xval} : ${yval14}';\n germany2.yName = 'yval14';\n germany2.appendTo('#d-germany');\n var india2 = new ej.charts.Sparkline(sparkmodel2);\n india2.dataSource = window.defaultSparkData;\n india2.tooltipSettings.format = '${xval} : ${yval15}';\n india2.yName = 'yval15';\n india2.appendTo('#d-india');\n var russia2 = new ej.charts.Sparkline(sparkmodel2);\n russia2.dataSource = window.defaultSparkData;\n russia2.tooltipSettings.format = '${xval} : ${yval16}';\n russia2.yName = 'yval16';\n russia2.appendTo('#d-russia');\n var sweden2 = new ej.charts.Sparkline(sparkmodel2);\n sweden2.dataSource = window.defaultSparkData;\n sweden2.tooltipSettings.format = '${xval} : ${yval17}';\n sweden2.yName = 'yval17';\n sweden2.appendTo('#d-sweden');\n var uk2 = new ej.charts.Sparkline(sparkmodel2);\n uk2.yName = 'yval18';\n uk2.tooltipSettings.format = '${xval} : ${yval18}';\n uk2.dataSource = window.defaultSparkData;\n uk2.appendTo('#d-uk');\n var us2 = new ej.charts.Sparkline(sparkmodel2);\n us2.yName = 'yval19';\n us2.dataSource = window.defaultSparkData;\n us2.tooltipSettings.format = '${xval} : ${yval19}';\n us2.appendTo('#d-us');\n var australia3 = new ej.charts.Sparkline(sparkmodel3);\n australia3.yName = 'yval20';\n australia3.tooltipSettings.format = '${xval} : ${yval20}';\n australia3.dataSource = window.defaultSparkData;\n australia3.appendTo('#g-australia');\n var canada3 = new ej.charts.Sparkline(sparkmodel3);\n canada3.yName = 'yval21';\n canada3.tooltipSettings.format = '${xval} : ${yval21}';\n canada3.dataSource = window.defaultSparkData;\n canada3.appendTo('#g-canada');\n var china3 = new ej.charts.Sparkline(sparkmodel3);\n china3.yName = 'yval22';\n china3.tooltipSettings.format = '${xval} : ${yval22}';\n china3.dataSource = window.defaultSparkData;\n china3.appendTo('#g-china');\n var france3 = new ej.charts.Sparkline(sparkmodel3);\n france3.yName = 'yval23';\n france3.tooltipSettings.format = '${xval} : ${yval23}';\n france3.dataSource = window.defaultSparkData;\n france3.appendTo('#g-france');\n var germany3 = new ej.charts.Sparkline(sparkmodel3);\n germany3.yName = 'yval24';\n germany3.tooltipSettings.format = '${xval} : ${yval24}';\n germany3.dataSource = window.defaultSparkData;\n germany3.appendTo('#g-germany');\n var india3 = new ej.charts.Sparkline(sparkmodel3);\n india3.yName = 'yval25';\n india3.tooltipSettings.format = '${xval} : ${yval25}';\n india3.dataSource = window.defaultSparkData;\n india3.appendTo('#g-india');\n var russia3 = new ej.charts.Sparkline(sparkmodel3);\n russia3.yName = 'yval26';\n russia3.tooltipSettings.format = '${xval} : ${yval26}';\n russia3.dataSource = window.defaultSparkData;\n russia3.appendTo('#g-russia');\n var sweden3 = new ej.charts.Sparkline(sparkmodel3);\n sweden3.yName = 'yval27';\n sweden3.tooltipSettings.format = '${xval} : ${yval27}';\n sweden3.dataSource = window.defaultSparkData;\n sweden3.appendTo('#g-sweden');\n var uk3 = new ej.charts.Sparkline(sparkmodel3);\n uk3.yName = 'yval28';\n uk3.tooltipSettings.format = '${xval} : ${yval28}';\n uk3.dataSource = window.defaultSparkData;\n uk3.appendTo('#g-uk');\n var us3 = new ej.charts.Sparkline(sparkmodel3);\n us3.tooltipSettings.format = '${xval} : ${yval29}';\n us3.yName = 'yval29';\n us3.dataSource = window.defaultSparkData;\n us3.appendTo('#g-us');\n var australia4 = new ej.charts.Sparkline(sparkmodel4);\n australia4.dataSource = window.defaultSparkData;\n australia4.yName = 'yval30';\n australia4.tooltipSettings.format = '${xval} : ${yval30}';\n australia4.axisSettings.minY = 12;\n australia4.appendTo('#b-australia');\n var canada4 = new ej.charts.Sparkline(sparkmodel4);\n canada4.dataSource = window.defaultSparkData;\n canada4.axisSettings.minY = 10.20;\n canada4.tooltipSettings.format = '${xval} : ${yval31}';\n canada4.yName = 'yval31';\n canada4.appendTo('#b-canada');\n var china4 = new ej.charts.Sparkline(sparkmodel4);\n china4.dataSource = window.defaultSparkData;\n china4.tooltipSettings.format = '${xval} : ${yval32}';\n china4.yName = 'yval32';\n china4.axisSettings.minY = 12;\n china4.appendTo('#b-china');\n var france4 = new ej.charts.Sparkline(sparkmodel4);\n france4.dataSource = window.defaultSparkData;\n france4.tooltipSettings.format = '${xval} : ${yval33}';\n france4.yName = 'yval33';\n france4.axisSettings.minY = 11.5;\n france4.appendTo('#b-france');\n var germany4 = new ej.charts.Sparkline(sparkmodel4);\n germany4.dataSource = window.defaultSparkData;\n germany4.axisSettings.minY = 8;\n germany4.tooltipSettings.format = '${xval} : ${yval34}';\n germany4.yName = 'yval34';\n germany4.appendTo('#b-germany');\n var india4 = new ej.charts.Sparkline(sparkmodel4);\n india4.dataSource = window.defaultSparkData;\n india4.axisSettings.minY = 19;\n india4.tooltipSettings.format = '${xval} : ${yval35}';\n india4.yName = 'yval35';\n india4.appendTo('#b-india');\n var russia4 = new ej.charts.Sparkline(sparkmodel4);\n russia4.dataSource = window.defaultSparkData;\n russia4.axisSettings.minY = 9.5;\n russia4.yName = 'yval36';\n russia4.tooltipSettings.format = '${xval} : ${yval36}';\n russia4.appendTo('#b-russia');\n var sweden4 = new ej.charts.Sparkline(sparkmodel4);\n sweden4.dataSource = window.defaultSparkData;\n sweden4.axisSettings.minY = 10;\n sweden4.tooltipSettings.format = '${xval} : ${yval37}';\n sweden4.yName = 'yval37';\n sweden4.appendTo('#b-sweden');\n var uk4 = new ej.charts.Sparkline(sparkmodel4);\n uk4.dataSource = window.defaultSparkData;\n uk4.axisSettings.minY = 10;\n uk4.tooltipSettings.format = '${xval} : ${yval38}';\n uk4.yName = 'yval38';\n uk4.appendTo('#b-uk');\n var us4 = new ej.charts.Sparkline(sparkmodel4);\n us4.dataSource = window.defaultSparkData;\n us4.axisSettings.minY = 13;\n us4.tooltipSettings.format = '${xval} : ${yval39}';\n us4.yName = 'yval39';\n us4.appendTo('#b-us');\n"}
\ No newline at end of file
diff --git a/src/sparkline/default.js b/src/sparkline/default.js
index 03d156bd..f43bc715 100644
--- a/src/sparkline/default.js
+++ b/src/sparkline/default.js
@@ -13,6 +13,7 @@ this.default = function () {
visible: true,
trackLineSettings: {
visible: true,
+ color: '#fc5070',
width: 2
}
},
diff --git a/src/sparkline/live-update-stack.json b/src/sparkline/live-update-stack.json
index a066da84..bb1d9d0e 100644
--- a/src/sparkline/live-update-stack.json
+++ b/src/sparkline/live-update-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n \n\n \n\n \n
\n
\n
\n
\n
\n CPU \n
\n
26% 1.2GHz
\n
\n
\n
\n
\n
\n
\n Memory \n
\n
6.5/15.8 GB (41%)
\n
\n
\n
\n
\n
\n Ethernet \n
\n
R: 50Kbps
\n
\n
\n
\n
\n
\n\n\n\n\n\n","index.js":"{{ripple}}\n\n var spark = new ej.charts.Sparkline({\n height: '130px',\n width: '90%',\n\n axisSettings: {\n minY: 0, maxY: 150\n },\n containerArea: {\n background: 'white',\n border: {\n color: '#dcdfe0',\n width: 2\n }\n },\n border: {\n color: '#0358a0',\n width: 1\n },\n fill: '#e8f2fc',\n type: 'Area',\n valueType: 'Numeric',\n dataSource: [\n { x: 0, yval: 50 },\n { x: 1, yval: 30 },\n { x: 2, yval: 20 },\n { x: 3, yval: 30 },\n { x: 4, yval: 50 },\n { x: 5, yval: 40 },\n { x: 6, yval: 20 },\n { x: 7, yval: 10 },\n { x: 8, yval: 30 },\n { x: 9, yval: 10 },\n { x: 10, yval: 40 },\n { x: 11, yval: 50 },\n { x: 12, yval: 10 },\n { x: 13, yval: 30 },\n { x: 14, yval: 50 },\n { x: 15, yval: 20 },\n { x: 16, yval: 10 },\n { x: 17, yval: 40 },\n { x: 18, yval: 30 },\n { x: 19, yval: 40 }\n ],\n xName: 'x', yName: 'yval'\n });\n spark.appendTo('#spark-container1');\n var temp1 = spark.dataSource.length - 1;\n function update() {\n if (spark.element.className.indexOf('e-sparkline') > -1) {\n var value = ((Math.random() * 100) + 5) % 50;\n spark.dataSource.push({ x: ++temp1, yval: value });\n spark.dataSource.shift();\n spark.refresh();\n var cpu = document.getElementById('cpu');\n if (cpu) {\n cpu.innerHTML = ((value / 150) * 100).toFixed(0) + '% ' + ((value * 3) / 100).toFixed(2) + 'GHz';\n }\n }\n }\n var time = setInterval(update, 1000);\n var spark1 = new ej.charts.Sparkline({\n height: '130px',\n width: '90%',\n\n lineWidth: 1, \n containerArea: {\n background: 'white',\n border: {\n color: '#dcdfe0',\n width: 2\n }\n },\n axisSettings: {\n minY: 4, maxY: 8\n },\n border: {\n color: '#b247c6',\n width: 1\n },\n type: 'Area',\n fill: '\t#f5e8fc',\n valueType: 'Numeric',\n xName: 'x', yName: 'yval', \n dataSource: [ \n { x: 3, yval: 6.07 },\n { x: 4, yval: 6.05 },\n { x: 5, yval: 6.09 },\n { x: 6, yval: 6.08 },\n { x: 0, yval: 6.05 },\n { x: 1, yval: 6.03 },\n { x: 2, yval: 6.02 },\n { x: 7, yval: 6.01 },\n { x: 8, yval: 6.03 },\n { x: 9, yval: 6.01 }, \n { x: 14, yval: 6.05 },\n { x: 15, yval: 6.03 },\n { x: 16, yval: 6.01 },\n { x: 17, yval: 6.09 },\n { x: 10, yval: 6.07 },\n { x: 11, yval: 6.05 },\n { x: 12, yval: 6.01 },\n { x: 13, yval: 6.06 },\n { x: 18, yval: 6.06 },\n { x: 19, yval: 6.05 }\n ]\n });\n spark1.appendTo('#spark-container2');\n var temp2 = spark1.dataSource.length - 1;\n function update1() {\n if (spark1.element.className.indexOf('e-sparkline') > -1) {\n var value = Math.random();\n if (value > 0.6) {\n value = 6 + (value / 10);\n }\n else {\n value = 6 - (value / 10);\n }\n spark1.dataSource.push({ x: ++temp2, yval: value });\n spark1.dataSource.shift();\n spark1.refresh();\n var memory = document.getElementById('memory');\n var gb = parseFloat(value.toString().replace('0', '')).toFixed(1);\n if (memory) {\n memory.innerHTML = gb + '/15.8 GB (' + ((value / 15.8) * 100).toFixed(0) + '%)';\n }\n }\n }\n var time1 = setInterval(update1, 1000);\n var spark2 = new ej.charts.Sparkline({\n height: '130px',\n width: '90%',\n // cudtom code start\n load: liveload,\n // custom code end\n xName: 'x', yName: 'yval', \n lineWidth: 1,\n axisSettings: {\n minY: 0, maxY: 130\n }, \n border: {\n color: '#27ad66',\n width: 1\n },\n containerArea: {\n background: 'white',\n border: {\n color: '#dcdfe0',\n width: 2\n }\n },\n type: 'Area',\n fill: '#e0f9d1',\n valueType: 'Numeric',\n dataSource: [\n { x: 15, yval: 30 },\n { x: 16, yval: 10 },\n { x: 17, yval: 20 },\n { x: 18, yval: 60 },\n { x: 19, yval: 50 },\n { x: 0, yval: 50 },\n { x: 1, yval: 30 },\n { x: 2, yval: 20 },\n { x: 3, yval: 70 },\n { x: 4, yval: 50 },\n { x: 5, yval: 20 }, \n { x: 10, yval: 70 },\n { x: 11, yval: 50 },\n { x: 12, yval: 10 },\n { x: 6, yval: 80 },\n { x: 7, yval: 10 },\n { x: 8, yval: 30 },\n { x: 9, yval: 10 },\n { x: 13, yval: 60 },\n { x: 14, yval: 50 } \n ]\n });\n spark2.appendTo('#spark-container3');\n var temp3 = spark2.dataSource.length - 1;\n function update2() {\n if (spark2.element.className.indexOf('e-sparkline') > -1) {\n var value = ((Math.random() * 100) + 5) % 80;\n spark2.dataSource.push({ x: ++temp3, yval: value });\n spark2.dataSource.shift();\n spark2.refresh();\n var disk = document.getElementById('disk');\n if (disk) {\n disk.innerHTML = value.toFixed(0) + '%';\n }\n }\n }\n var time2 = setInterval(update2, 1000);\n var spark3 = new ej.charts.Sparkline({\n height: '130px',\n width: '90%',\n\n lineWidth: 1,\n axisSettings: {\n minY: 0, maxY: 120\n },\n xName: 'x', yName: 'yval', \n containerArea: {\n background: 'white',\n border: {\n color: '#dcdfe0',\n width: 2\n }\n },\n border: {\n color: '#AA907A',\n width: 1\n },\n type: 'Area',\n fill: '#F2D8C7',\n valueType: 'Numeric',\n dataSource: [\n { x: 0, yval: 50 },\n { x: 1, yval: 30 },\n { x: 2, yval: 20 },\n { x: 3, yval: 70 },\n { x: 4, yval: 50 },\n { x: 5, yval: 20 },\n { x: 6, yval: 80 },\n { x: 7, yval: 10 },\n { x: 8, yval: 30 },\n { x: 9, yval: 10 },\n { x: 10, yval: 70 },\n { x: 11, yval: 50 },\n { x: 12, yval: 10 },\n { x: 13, yval: 60 },\n { x: 14, yval: 50 },\n { x: 15, yval: 30 },\n { x: 16, yval: 10 },\n { x: 17, yval: 20 },\n { x: 18, yval: 60 },\n { x: 19, yval: 50 }\n ],\n });\n spark3.appendTo('#spark-container4');\n var temp4 = spark3.dataSource.length - 1;\n function update4() {\n if (spark3.element.className.indexOf('e-sparkline') > -1) {\n var value = ((Math.random() * 100) + 5) % 80;\n spark3.dataSource.push({ x: ++temp3, yval: value });\n spark3.dataSource.shift();\n spark3.refresh();\n var net = document.getElementById('net');\n if (net) {\n net.innerHTML = 'R: ' + value.toFixed(0) + 'Kbps';\n }\n }\n }\n var time4 = setInterval(update4, 1000);\n"}
\ No newline at end of file
+{"index.html":"\n\n
\n\n
\n\n
\n
\n
\n
\n
\n
\n CPU \n
\n
26% 1.2GHz
\n
\n
\n
\n
\n
\n
\n Memory \n
\n
6.5/15.8 GB (41%)
\n
\n
\n
\n
\n
\n Ethernet \n
\n
R: 50Kbps
\n
\n
\n
\n
\n
\n\n\n\n\n\n","index.js":"{{ripple}}\n\n var spark = new ej.charts.Sparkline({\n height: '130px',\n width: '90%',\n\n axisSettings: {\n minY: 0, maxY: 150\n },\n containerArea: {\n background: 'white',\n border: {\n color: '#dcdfe0',\n width: 2\n }\n },\n border: {\n color: '#0358a0',\n width: 1\n },\n fill: '#e8f2fc',\n type: 'Area',\n valueType: 'Numeric',\n dataSource: [\n { x: 0, yval: 50 },\n { x: 1, yval: 30 },\n { x: 2, yval: 20 },\n { x: 3, yval: 30 },\n { x: 4, yval: 50 },\n { x: 5, yval: 40 },\n { x: 6, yval: 20 },\n { x: 7, yval: 10 },\n { x: 8, yval: 30 },\n { x: 9, yval: 10 },\n { x: 10, yval: 40 },\n { x: 11, yval: 50 },\n { x: 12, yval: 10 },\n { x: 13, yval: 30 },\n { x: 14, yval: 50 },\n { x: 15, yval: 20 },\n { x: 16, yval: 10 },\n { x: 17, yval: 40 },\n { x: 18, yval: 30 },\n { x: 19, yval: 40 }\n ],\n xName: 'x', yName: 'yval'\n });\n spark.appendTo('#spark-container1');\n var temp1 = spark.dataSource.length - 1;\n function update() {\n if (spark.element.className.indexOf('e-sparkline') > -1) {\n var value = ((Math.random() * 100) + 5) % 50;\n spark.dataSource.push({ x: ++temp1, yval: value });\n spark.dataSource.shift();\n spark.refresh();\n var cpu = document.getElementById('cpu');\n if (cpu) {\n cpu.innerHTML = ((value / 150) * 100).toFixed(0) + '% ' + ((value * 3) / 100).toFixed(2) + 'GHz';\n }\n }\n }\n var time = setInterval(update, 1000);\n var spark1 = new ej.charts.Sparkline({\n height: '130px',\n width: '90%',\n\n lineWidth: 1, \n containerArea: {\n background: 'white',\n border: {\n color: '#dcdfe0',\n width: 2\n }\n },\n axisSettings: {\n minY: 4, maxY: 8\n },\n border: {\n color: '#b247c6',\n width: 1\n },\n type: 'Area',\n fill: '\t#f5e8fc',\n valueType: 'Numeric',\n xName: 'x', yName: 'yval', \n dataSource: [ \n { x: 3, yval: 6.07 },\n { x: 4, yval: 6.05 },\n { x: 5, yval: 6.09 },\n { x: 6, yval: 6.08 },\n { x: 0, yval: 6.05 },\n { x: 1, yval: 6.03 },\n { x: 2, yval: 6.02 },\n { x: 7, yval: 6.01 },\n { x: 8, yval: 6.03 },\n { x: 9, yval: 6.01 }, \n { x: 14, yval: 6.05 },\n { x: 15, yval: 6.03 },\n { x: 16, yval: 6.01 },\n { x: 17, yval: 6.09 },\n { x: 10, yval: 6.07 },\n { x: 11, yval: 6.05 },\n { x: 12, yval: 6.01 },\n { x: 13, yval: 6.06 },\n { x: 18, yval: 6.06 },\n { x: 19, yval: 6.05 }\n ]\n });\n spark1.appendTo('#spark-container2');\n var temp2 = spark1.dataSource.length - 1;\n function update1() {\n if (spark1.element.className.indexOf('e-sparkline') > -1) {\n var value = Math.random();\n if (value > 0.6) {\n value = 6 + (value / 10);\n }\n else {\n value = 6 - (value / 10);\n }\n spark1.dataSource.push({ x: ++temp2, yval: value });\n spark1.dataSource.shift();\n spark1.refresh();\n var memory = document.getElementById('memory');\n var gb = parseFloat(value.toString().replace('0', '')).toFixed(1);\n if (memory) {\n memory.innerHTML = gb + '/15.8 GB (' + ((value / 15.8) * 100).toFixed(0) + '%)';\n }\n }\n }\n var time1 = setInterval(update1, 1000);\n var spark2 = new ej.charts.Sparkline({\n height: '130px',\n width: '90%',\n // cudtom code start\n load: liveload,\n // custom code end\n xName: 'x', yName: 'yval', \n lineWidth: 1,\n axisSettings: {\n minY: 0, maxY: 130\n }, \n border: {\n color: '#27ad66',\n width: 1\n },\n containerArea: {\n background: 'white',\n border: {\n color: '#dcdfe0',\n width: 2\n }\n },\n type: 'Area',\n fill: '#e0f9d1',\n valueType: 'Numeric',\n dataSource: [\n { x: 15, yval: 30 },\n { x: 16, yval: 10 },\n { x: 17, yval: 20 },\n { x: 18, yval: 60 },\n { x: 19, yval: 50 },\n { x: 0, yval: 50 },\n { x: 1, yval: 30 },\n { x: 2, yval: 20 },\n { x: 3, yval: 70 },\n { x: 4, yval: 50 },\n { x: 5, yval: 20 }, \n { x: 10, yval: 70 },\n { x: 11, yval: 50 },\n { x: 12, yval: 10 },\n { x: 6, yval: 80 },\n { x: 7, yval: 10 },\n { x: 8, yval: 30 },\n { x: 9, yval: 10 },\n { x: 13, yval: 60 },\n { x: 14, yval: 50 } \n ]\n });\n spark2.appendTo('#spark-container3');\n var temp3 = spark2.dataSource.length - 1;\n function update2() {\n if (spark2.element.className.indexOf('e-sparkline') > -1) {\n var value = ((Math.random() * 100) + 5) % 80;\n spark2.dataSource.push({ x: ++temp3, yval: value });\n spark2.dataSource.shift();\n spark2.refresh();\n var disk = document.getElementById('disk');\n if (disk) {\n disk.innerHTML = value.toFixed(0) + '%';\n }\n }\n }\n var time2 = setInterval(update2, 1000);\n var spark3 = new ej.charts.Sparkline({\n height: '130px',\n width: '90%',\n\n lineWidth: 1,\n axisSettings: {\n minY: 0, maxY: 120\n },\n xName: 'x', yName: 'yval', \n containerArea: {\n background: 'white',\n border: {\n color: '#dcdfe0',\n width: 2\n }\n },\n border: {\n color: '#AA907A',\n width: 1\n },\n type: 'Area',\n fill: '#F2D8C7',\n valueType: 'Numeric',\n dataSource: [\n { x: 0, yval: 50 },\n { x: 1, yval: 30 },\n { x: 2, yval: 20 },\n { x: 3, yval: 70 },\n { x: 4, yval: 50 },\n { x: 5, yval: 20 },\n { x: 6, yval: 80 },\n { x: 7, yval: 10 },\n { x: 8, yval: 30 },\n { x: 9, yval: 10 },\n { x: 10, yval: 70 },\n { x: 11, yval: 50 },\n { x: 12, yval: 10 },\n { x: 13, yval: 60 },\n { x: 14, yval: 50 },\n { x: 15, yval: 30 },\n { x: 16, yval: 10 },\n { x: 17, yval: 20 },\n { x: 18, yval: 60 },\n { x: 19, yval: 50 }\n ],\n });\n spark3.appendTo('#spark-container4');\n var temp4 = spark3.dataSource.length - 1;\n function update4() {\n if (spark3.element.className.indexOf('e-sparkline') > -1) {\n var value = ((Math.random() * 100) + 5) % 80;\n spark3.dataSource.push({ x: ++temp3, yval: value });\n spark3.dataSource.shift();\n spark3.refresh();\n var net = document.getElementById('net');\n if (net) {\n net.innerHTML = 'R: ' + value.toFixed(0) + 'Kbps';\n }\n }\n }\n var time4 = setInterval(update4, 1000);\n"}
\ No newline at end of file
diff --git a/src/sparkline/range-band-stack.json b/src/sparkline/range-band-stack.json
index f4a20e5a..817fe61a 100644
--- a/src/sparkline/range-band-stack.json
+++ b/src/sparkline/range-band-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n
\n\n
\n\n
\n
\n
\n
\n Sales Growth Comparison with various Products \n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n\n \n
\n \n
\n
\n \n \n \n Range Band Min 1\n \n \n
\n \n \n \n \n Range Band Max 3\n \n \n
\n \n \n \n
\n
","index.js":"{{ripple}}\n\n var grid = new ej.grids.Grid({\n dataSource: new ej.data.DataManager(window.products).executeLocal(new ej.data.Query()),\n allowSelection: false,\n enableColumnVirtualization: false,\n enableHover: true,\n height: 400,\n columns: [\n { field: 'name', headerText: 'Name', textAlign: 'Right', width: 50 },\n { headerText: '2010', template: '#columnTemplate1', textAlign: 'Center', width: 100 },\n { headerText: '2011', template: '#columnTemplate2', textAlign: 'Center', width: 100 },\n ],\n });\n grid.appendTo('#Grid');\n var sparkline = {\n height: '50px',\n width: '150px',\n\n lineWidth: 2,\n fill: '#0d3c9b',\n dataSource: window.lineData[0],\n rangeBandSettings: [\n {\n startRange: 1, endRange: 3, color: '#bfd4fc'\n }\n ]\n };\n setTimeout(function () {\n for (var i = 1; i < 6; i++) {\n var first = new ej.charts.Sparkline(sparkline);\n first.dataSource = window.lineData[i];\n first.appendTo('#sparkline2010' + i);\n var second = new ej.charts.Sparkline(sparkline);\n second.dataSource = window.lineData[i + 5];\n second.appendTo('#sparkline2011' + i);\n }\n }, 500);\n var sliderChange1;\n var sliderChange2;\n var slider1 = new ej.inputs.Slider({\n value: 1,\n change: sliderChange1,\n max: 6, min: 0, type: 'MinRange',\n }, '#range-min');\n var slider2 = new ej.inputs.Slider({\n value: 3,\n change: sliderChange2,\n max: 6, min: 0, type: 'MinRange',\n }, '#range-max');\n slider1.change = sliderChange1 = function (e) {\n changeRangeMin(e.value);\n };\n slider2.change = sliderChange2 = function (e) {\n changeRangeMax(e.value);\n };\n var changeRangeMin = function (min) {\n for (var i = 1; i < 6; i++) {\n var first = ej.base.getInstance('#sparkline2010' + i, ej.charts.Sparkline);\n var second = ej.base.getInstance('#sparkline2011' + i, ej.charts.Sparkline);\n first.rangeBandSettings[0].startRange = min;\n second.rangeBandSettings[0].startRange = min;\n first.refresh();\n second.refresh();\n }\n };\n var changeRangeMax = function (max) {\n for (var i = 1; i < 6; i++) {\n var first = ej.base.getInstance('#sparkline2010' + i, ej.charts.Sparkline);\n var second = ej.base.getInstance('#sparkline2011' + i, ej.charts.Sparkline);\n first.rangeBandSettings[0].endRange = max;\n second.rangeBandSettings[0].endRange = max;\n first.refresh();\n second.refresh();\n }\n };\n"}
\ No newline at end of file
+{"index.html":"\n\n
\n\n
\n\n
\n
\n
\n
\n Sales Growth Comparison with various Products \n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n\n \n
\n \n
\n
\n \n \n \n Range Band Min 1\n \n \n
\n \n \n \n \n Range Band Max 3\n \n \n
\n \n \n \n
\n
","index.js":"{{ripple}}\n\n var grid = new ej.grids.Grid({\n dataSource: new ej.data.DataManager(window.products).executeLocal(new ej.data.Query()),\n allowSelection: false,\n enableColumnVirtualization: false,\n enableHover: true,\n height: 400,\n columns: [\n { field: 'name', headerText: 'Name', textAlign: 'Right', width: 50 },\n { headerText: '2010', template: '#columnTemplate1', textAlign: 'Center', width: 100 },\n { headerText: '2011', template: '#columnTemplate2', textAlign: 'Center', width: 100 },\n ],\n });\n grid.appendTo('#Grid');\n var sparkline = {\n height: '50px',\n width: '150px',\n\n lineWidth: 2,\n fill: '#0d3c9b',\n dataSource: window.lineData[0],\n rangeBandSettings: [\n {\n startRange: 1, endRange: 3, color: '#bfd4fc'\n }\n ]\n };\n setTimeout(function () {\n for (var i = 1; i < 6; i++) {\n var first = new ej.charts.Sparkline(sparkline);\n first.dataSource = window.lineData[i];\n first.appendTo('#sparkline2010' + i);\n var second = new ej.charts.Sparkline(sparkline);\n second.dataSource = window.lineData[i + 5];\n second.appendTo('#sparkline2011' + i);\n }\n }, 500);\n var sliderChange1;\n var sliderChange2;\n var slider1 = new ej.inputs.Slider({\n value: 1,\n change: sliderChange1,\n max: 6, min: 0, type: 'MinRange',\n }, '#range-min');\n var slider2 = new ej.inputs.Slider({\n value: 3,\n change: sliderChange2,\n max: 6, min: 0, type: 'MinRange',\n }, '#range-max');\n slider1.change = sliderChange1 = function (e) {\n changeRangeMin(e.value);\n };\n slider2.change = sliderChange2 = function (e) {\n changeRangeMax(e.value);\n };\n var changeRangeMin = function (min) {\n for (var i = 1; i < 6; i++) {\n var first = ej.base.getInstance('#sparkline2010' + i, ej.charts.Sparkline);\n var second = ej.base.getInstance('#sparkline2011' + i, ej.charts.Sparkline);\n first.rangeBandSettings[0].startRange = min;\n second.rangeBandSettings[0].startRange = min;\n first.refresh();\n second.refresh();\n }\n };\n var changeRangeMax = function (max) {\n for (var i = 1; i < 6; i++) {\n var first = ej.base.getInstance('#sparkline2010' + i, ej.charts.Sparkline);\n var second = ej.base.getInstance('#sparkline2011' + i, ej.charts.Sparkline);\n first.rangeBandSettings[0].endRange = max;\n second.rangeBandSettings[0].endRange = max;\n first.refresh();\n second.refresh();\n }\n };\n"}
\ No newline at end of file
diff --git a/src/sparkline/sample.json b/src/sparkline/sample.json
index dd621736..e42b5c87 100644
--- a/src/sparkline/sample.json
+++ b/src/sparkline/sample.json
@@ -3,7 +3,6 @@
"directory": "sparkline",
"category": "Data Visualization",
"ftName": "sparkline",
- "type": "update",
"dataSourcePath":"src/sparkline/data-source.js",
"samples": [
{
@@ -39,7 +38,6 @@
"name": "Customization",
"description": "This demo for Essential JS2 Sparkline control depicts the properties required to customize the sparkline.",
"category": "Sparkline Charts",
- "type": "update",
"api": {}
},
{
diff --git a/src/sparkline/series-types-stack.json b/src/sparkline/series-types-stack.json
index 28afe409..ddeee032 100644
--- a/src/sparkline/series-types-stack.json
+++ b/src/sparkline/series-types-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n
\n\n
\n\n
\n
\n
\n
\n
\n
Power production for a day
\n
\n
\n
\n
\n
Average weather comparision
\n
\n
\n
\n
\n
\n
Customer satisfaction score
\n
\n
\n
\n
\n
\n
\n
\n
Olympics medal details
\n
\n
\n
\n
\n
\n \n \n
","index.js":"{{ripple}}\n\n var line = new ej.charts.Sparkline({\n lineWidth: 1,\n type: 'Line',\n fill: '#3C78EF',\n height: '80px',\n width: '90%',\n\n tooltipSettings: {\n trackLineSettings: {\n visible: true\n },\n visible: true,\n format: '${x} : ${yval}' \n }, \n valueType: 'Numeric',\n dataSource: [\n { x: 1, yval: 5 },\n { x: 2, yval: 6 },\n { x: 3, yval: 5 },\n { x: 4, yval: 7 }, \n { x: 10, yval: 5 },\n { x: 11, yval: 7 },\n { x: 12, yval: 8 },\n { x: 13, yval: 4 },\n { x: 5, yval: 4 },\n { x: 6, yval: 3 },\n { x: 7, yval: 9 },\n { x: 8, yval: 5 },\n { x: 9, yval: 6 }, \n { x: 19, yval: 2 },\n { x: 20, yval: 12 },\n { x: 21, yval: 4 },\n { x: 22, yval: 7 },\n { x: 23, yval: 6 },\n { x: 14, yval: 5 },\n { x: 15, yval: 3 },\n { x: 16, yval: 4 },\n { x: 17, yval: 11 },\n { x: 18, yval: 10 },\n { x: 24, yval: 8 },\n ],\n xName: 'x', yName: 'yval', \n markerSettings: {\n visible: ['All'],\n size: 2.5,\n fill: 'blue',\n }\n });\n line.appendTo('#line');\n var area = new ej.charts.Sparkline({\n border: { color: '#3C78EF', width: 2 },\n valueType: 'Category',\n axisSettings: {\n lineSettings: {\n visible: true\n }\n },\n height: '80px',\n width: '90%',\n\n lineWidth: 1,\n tooltipSettings: {\n visible: true,\n format: '${xval} : ${yval}',\n }\n });\n column.appendTo('#column');\n var winloss = new ej.charts.Sparkline({\n height: '80px',\n width: '90%',\n\n lineWidth: 1,\n type: 'WinLoss',\n fill: '#3C78EF',\n negativePointColor: '#fc5070',\n valueType: 'Numeric',\n dataSource: [12, 15, -10, 13, 15, 6, -12, 17, 13, 0, 8, -10],\n tooltipSettings: {\n format: '${x} : ${y}',\n }\n });\n winloss.appendTo('#winloss');\n var pie1 = new ej.charts.Sparkline({\n height: '40px',\n width: '100%',\n\n lineWidth: 1,\n type: 'Pie',\n valueType: 'Category',\n xName: 'x', yName: 'y',\n dataSource: [{ x: 'Gold', y: 46 }, { x: 'Silver', y: 37 }, { x: 'Bronze', y: 38 }],\n tooltipSettings: {\n visible: true,\n format: '${x} : ${y}',\n }\n });\n pie1.appendTo('#pie1');\n var pie2 = new ej.charts.Sparkline({\n \n type: 'Pie',\n valueType: 'Category',\n xName: 'x', yName: 'y',\n height: '40px',\n width: '100%',\n\n lineWidth: 1,\n dataSource: [{ x: 'Gold', y: 27 }, { x: 'Silver', y: 23 }, { x: 'Bronze', y: 17 }],\n tooltipSettings: {\n visible: true,\n format: '${x} : ${y}',\n }\n });\n pie2.appendTo('#pie2');\n var pie3 = new ej.charts.Sparkline({\n dataSource: [{ x: 'Gold', y: 26 }, { x: 'Silver', y: 18 }, { x: 'Bronze', y: 26 }],\n tooltipSettings: {\n visible: true,\n format: '${x} : ${y}',\n },\n height: '40px',\n width: '100%',\n\n lineWidth: 1,\n type: 'Pie',\n valueType: 'Category',\n xName: 'x', yName: 'y',\n \n });\n pie3.appendTo('#pie3');\n var pie4 = new ej.charts.Sparkline({\n type: 'Pie',\n dataSource: [{ x: 'Gold', y: 19 }, { x: 'Silver', y: 17 }, { x: 'Bronze', y: 19 }],\n tooltipSettings: {\n visible: true,\n format: '${x} : ${y}',\n },\n valueType: 'Category',\n xName: 'x', yName: 'y',\n height: '40px',\n width: '100%',\n\n lineWidth: 1\n });\n pie4.appendTo('#pie4');\n"}
\ No newline at end of file
+{"index.html":"\n\n
\n\n
\n\n
\n
\n
\n
\n
\n
Power production for a day
\n
\n
\n
\n
\n
Average weather comparision
\n
\n
\n
\n
\n
\n
Customer satisfaction score
\n
\n
\n
\n
\n
\n
\n
\n
Olympics medal details
\n
\n
\n
\n
\n
\n \n \n
","index.js":"{{ripple}}\n\n var line = new ej.charts.Sparkline({\n lineWidth: 1,\n type: 'Line',\n fill: '#3C78EF',\n height: '80px',\n width: '90%',\n\n tooltipSettings: {\n trackLineSettings: {\n visible: true\n },\n visible: true,\n format: '${x} : ${yval}' \n }, \n valueType: 'Numeric',\n dataSource: [\n { x: 1, yval: 5 },\n { x: 2, yval: 6 },\n { x: 3, yval: 5 },\n { x: 4, yval: 7 }, \n { x: 10, yval: 5 },\n { x: 11, yval: 7 },\n { x: 12, yval: 8 },\n { x: 13, yval: 4 },\n { x: 5, yval: 4 },\n { x: 6, yval: 3 },\n { x: 7, yval: 9 },\n { x: 8, yval: 5 },\n { x: 9, yval: 6 }, \n { x: 19, yval: 2 },\n { x: 20, yval: 12 },\n { x: 21, yval: 4 },\n { x: 22, yval: 7 },\n { x: 23, yval: 6 },\n { x: 14, yval: 5 },\n { x: 15, yval: 3 },\n { x: 16, yval: 4 },\n { x: 17, yval: 11 },\n { x: 18, yval: 10 },\n { x: 24, yval: 8 },\n ],\n xName: 'x', yName: 'yval', \n markerSettings: {\n visible: ['All'],\n size: 2.5,\n fill: 'blue',\n }\n });\n line.appendTo('#line');\n var area = new ej.charts.Sparkline({\n border: { color: '#3C78EF', width: 2 },\n valueType: 'Category',\n axisSettings: {\n lineSettings: {\n visible: true\n }\n },\n height: '80px',\n width: '90%',\n\n lineWidth: 1,\n tooltipSettings: {\n visible: true,\n format: '${xval} : ${yval}',\n }\n });\n column.appendTo('#column');\n var winloss = new ej.charts.Sparkline({\n height: '80px',\n width: '90%',\n\n lineWidth: 1,\n type: 'WinLoss',\n fill: '#3C78EF',\n negativePointColor: '#fc5070',\n valueType: 'Numeric',\n dataSource: [12, 15, -10, 13, 15, 6, -12, 17, 13, 0, 8, -10],\n tooltipSettings: {\n format: '${x} : ${y}',\n }\n });\n winloss.appendTo('#winloss');\n var pie1 = new ej.charts.Sparkline({\n height: '40px',\n width: '100%',\n\n lineWidth: 1,\n type: 'Pie',\n valueType: 'Category',\n xName: 'x', yName: 'y',\n dataSource: [{ x: 'Gold', y: 46 }, { x: 'Silver', y: 37 }, { x: 'Bronze', y: 38 }],\n tooltipSettings: {\n visible: true,\n format: '${x} : ${y}',\n }\n });\n pie1.appendTo('#pie1');\n var pie2 = new ej.charts.Sparkline({\n \n type: 'Pie',\n valueType: 'Category',\n xName: 'x', yName: 'y',\n height: '40px',\n width: '100%',\n\n lineWidth: 1,\n dataSource: [{ x: 'Gold', y: 27 }, { x: 'Silver', y: 23 }, { x: 'Bronze', y: 17 }],\n tooltipSettings: {\n visible: true,\n format: '${x} : ${y}',\n }\n });\n pie2.appendTo('#pie2');\n var pie3 = new ej.charts.Sparkline({\n dataSource: [{ x: 'Gold', y: 26 }, { x: 'Silver', y: 18 }, { x: 'Bronze', y: 26 }],\n tooltipSettings: {\n visible: true,\n format: '${x} : ${y}',\n },\n height: '40px',\n width: '100%',\n\n lineWidth: 1,\n type: 'Pie',\n valueType: 'Category',\n xName: 'x', yName: 'y',\n \n });\n pie3.appendTo('#pie3');\n var pie4 = new ej.charts.Sparkline({\n type: 'Pie',\n dataSource: [{ x: 'Gold', y: 19 }, { x: 'Silver', y: 17 }, { x: 'Bronze', y: 19 }],\n tooltipSettings: {\n visible: true,\n format: '${x} : ${y}',\n },\n valueType: 'Category',\n xName: 'x', yName: 'y',\n height: '40px',\n width: '100%',\n\n lineWidth: 1\n });\n pie4.appendTo('#pie4');\n"}
\ No newline at end of file
diff --git a/src/sparkline/spark-grid-stack.json b/src/sparkline/spark-grid-stack.json
index e6f0e20f..915c330a 100644
--- a/src/sparkline/spark-grid-stack.json
+++ b/src/sparkline/spark-grid-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n
\n\n
\n\n
\n\n\n\n\n\n","index.js":"{{ripple}}window.render = function (args) {\n for (var i = 0; i < 51; i++) {\n var line = new ej.charts.Sparkline({\n height: '50px',\n width: '150px'\n });\n line.appendTo('#spkline' + i);\n var column = new ej.charts.Sparkline({\n height: '50px',\n width: '150px',\n type: 'Column',\n });\n column.appendTo('#spkarea' + i);\n var winloss_1 = new ej.charts.Sparkline({\n height: '50px',\n width: '150px',\n type: 'WinLoss',\n });\n winloss_1.appendTo('#spkwl' + i);\n }\n};\nwindow.winloss = function () {\n var windata = [];\n var r;\n for (var i = 1; i <= 12; i++) {\n r = Math.random();\n if (r <= 0.2) {\n windata.push(-Math.random() * 10);\n }\n else {\n windata.push(Math.random() * 10);\n }\n }\n return windata;\n};\n\nwindow.getSparkData = function (type, count) {\n if (type === 'line') {\n return window.lineData[count];\n }\n else {\n return window.columnData[count];\n }\n};\n\n var grid = new ej.grids.Grid({\n dataSource: new ej.data.DataManager(window.orderdata).executeLocal(new ej.data.Query().take(20)),\n allowSelection: false,\n enableColumnVirtualization: false,\n enableHover: true,\n height: 400,\n columns: [\n { field: 'EmployeeID', headerText: 'ID', textAlign: 'Right', width: 40 },\n { field: 'CustomerID', headerText: 'Name', width: 60 },\n { field: 'OrderDate', headerText: 'Order Date', width: 65, format: 'yMd', textAlign: 'Right' },\n { field: 'ShipCountry', headerText: 'Ship Country', width: 70 },\n { headerText: 'Tax per annum', template: '#columnTemplate1', textAlign: 'Center', width: 100 },\n { headerText: 'One Day Index', template: '#columnTemplate2', textAlign: 'Center', width: 100 },\n { headerText: 'Year GR', template: '#columnTemplate3', textAlign: 'Center', width: 100 }\n ],\n });\n grid.appendTo('#Grid');\n\n setTimeout(function () {\n for (var i = 1; i < 21; i++) {\n var line = new ej.charts.Sparkline({\n height: '50px',\n width: '150px',\n lineWidth: 2,\n valueType: 'Numeric',\n fill: '#3C78EF',\n dataSource: getSparkData('line', i)\n });\n line.appendTo('#spkline' + i);\n var column = new ej.charts.Sparkline({\n height: '50px',\n width: '150px',\n type: 'Column',\n valueType: 'Numeric',\n fill: '#3C78EF',\n negativePointColor: '#f7a816',\n dataSource: getSparkData('column', i)\n });\n column.appendTo('#spkarea' + i);\n var winloss_1 = new ej.charts.Sparkline({\n height: '50px',\n width: '150px',\n type: 'WinLoss',\n valueType: 'Numeric',\n fill: '#3C78EF',\n tiePointColor: 'darkgray',\n negativePointColor: '#f7a816',\n dataSource: getSparkData('column', i)\n });\n winloss_1.appendTo('#spkwl' + i);\n }\n }, 500);\n"}
\ No newline at end of file
+{"index.html":"\n\n
\n\n
\n\n
\n\n\n\n\n\n","index.js":"{{ripple}}window.render = function (args) {\n for (var i = 0; i < 51; i++) {\n var line = new ej.charts.Sparkline({\n height: '50px',\n width: '150px'\n });\n line.appendTo('#spkline' + i);\n var column = new ej.charts.Sparkline({\n height: '50px',\n width: '150px',\n type: 'Column',\n });\n column.appendTo('#spkarea' + i);\n var winloss_1 = new ej.charts.Sparkline({\n height: '50px',\n width: '150px',\n type: 'WinLoss',\n });\n winloss_1.appendTo('#spkwl' + i);\n }\n};\nwindow.winloss = function () {\n var windata = [];\n var r;\n for (var i = 1; i <= 12; i++) {\n r = Math.random();\n if (r <= 0.2) {\n windata.push(-Math.random() * 10);\n }\n else {\n windata.push(Math.random() * 10);\n }\n }\n return windata;\n};\n\nwindow.getSparkData = function (type, count) {\n if (type === 'line') {\n return window.lineData[count];\n }\n else {\n return window.columnData[count];\n }\n};\n\n var grid = new ej.grids.Grid({\n dataSource: new ej.data.DataManager(window.orderdata).executeLocal(new ej.data.Query().take(20)),\n allowSelection: false,\n enableColumnVirtualization: false,\n enableHover: true,\n height: 400,\n columns: [\n { field: 'EmployeeID', headerText: 'ID', textAlign: 'Right', width: 40 },\n { field: 'CustomerID', headerText: 'Name', width: 60 },\n { field: 'OrderDate', headerText: 'Order Date', width: 65, format: 'yMd', textAlign: 'Right' },\n { field: 'ShipCountry', headerText: 'Ship Country', width: 70 },\n { headerText: 'Tax per annum', template: '#columnTemplate1', textAlign: 'Center', width: 100 },\n { headerText: 'One Day Index', template: '#columnTemplate2', textAlign: 'Center', width: 100 },\n { headerText: 'Year GR', template: '#columnTemplate3', textAlign: 'Center', width: 100 }\n ],\n });\n grid.appendTo('#Grid');\n\n setTimeout(function () {\n for (var i = 1; i < 21; i++) {\n var line = new ej.charts.Sparkline({\n height: '50px',\n width: '150px',\n lineWidth: 2,\n valueType: 'Numeric',\n fill: '#3C78EF',\n dataSource: getSparkData('line', i)\n });\n line.appendTo('#spkline' + i);\n var column = new ej.charts.Sparkline({\n height: '50px',\n width: '150px',\n type: 'Column',\n valueType: 'Numeric',\n fill: '#3C78EF',\n negativePointColor: '#f7a816',\n dataSource: getSparkData('column', i)\n });\n column.appendTo('#spkarea' + i);\n var winloss_1 = new ej.charts.Sparkline({\n height: '50px',\n width: '150px',\n type: 'WinLoss',\n valueType: 'Numeric',\n fill: '#3C78EF',\n tiePointColor: 'darkgray',\n negativePointColor: '#f7a816',\n dataSource: getSparkData('column', i)\n });\n winloss_1.appendTo('#spkwl' + i);\n }\n }, 500);\n"}
\ No newline at end of file
diff --git a/src/stock-chart/sample.json b/src/stock-chart/sample.json
index 00dee07a..84fb99d3 100644
--- a/src/stock-chart/sample.json
+++ b/src/stock-chart/sample.json
@@ -34,7 +34,7 @@
{
"url": "multi-pane",
"name": "Candlestick and volume",
- "description":"This demo for Essential JS2 Stock Chart control shows the default rendering of Stock with candle series.",
+ "description":"This demo for Essential JS2 Stock Chart control shows the default rendering of Stock with candlestick and volume.",
"category": "Stock Chart",
"api": {
"RangeNavigator": [
@@ -151,7 +151,7 @@
{
"url": "disabled-navigator",
"name": "Hide Range Selector",
- "description":"This demo for Essential JS2 Stock Chart control shows the default rendering of Stock with period customization.",
+ "description":"This demo for Essential JS2 Stock Chart control shows the default rendering of Stock with hide range selector.",
"category": "Stock Chart",
"api": {
"RangeNavigator": [
@@ -164,7 +164,7 @@
{
"url": "disabled-period",
"name": "Hide Period Selector",
- "description":"This demo for Essential JS2 Stock Chart control shows the default rendering of Stock with period customization.",
+ "description":"This demo for Essential JS2 Stock Chart control shows the default rendering of Stock with hide period selector.",
"category": "Stock Chart",
"api": {
"RangeNavigator": [
diff --git a/src/tree-grid/images/AndrewFuller.png b/src/tree-grid/images/AndrewFuller.png
new file mode 100644
index 00000000..c06e9877
Binary files /dev/null and b/src/tree-grid/images/AndrewFuller.png differ
diff --git a/src/tree-grid/images/AnneDodsworth.png b/src/tree-grid/images/AnneDodsworth.png
new file mode 100644
index 00000000..81699332
Binary files /dev/null and b/src/tree-grid/images/AnneDodsworth.png differ
diff --git a/src/tree-grid/images/DavidWilliam.png b/src/tree-grid/images/DavidWilliam.png
new file mode 100644
index 00000000..fe4423da
Binary files /dev/null and b/src/tree-grid/images/DavidWilliam.png differ
diff --git a/src/tree-grid/images/JanetLeverling.png b/src/tree-grid/images/JanetLeverling.png
new file mode 100644
index 00000000..e22287c1
Binary files /dev/null and b/src/tree-grid/images/JanetLeverling.png differ
diff --git a/src/tree-grid/images/LauraCallahan.png b/src/tree-grid/images/LauraCallahan.png
new file mode 100644
index 00000000..6573e664
Binary files /dev/null and b/src/tree-grid/images/LauraCallahan.png differ
diff --git a/src/tree-grid/images/MargaretPeacock.png b/src/tree-grid/images/MargaretPeacock.png
new file mode 100644
index 00000000..a666f1a0
Binary files /dev/null and b/src/tree-grid/images/MargaretPeacock.png differ
diff --git a/src/tree-grid/images/MichaelSuyama.png b/src/tree-grid/images/MichaelSuyama.png
new file mode 100644
index 00000000..10e7eb52
Binary files /dev/null and b/src/tree-grid/images/MichaelSuyama.png differ
diff --git a/src/tree-grid/images/NancyDavolio.png b/src/tree-grid/images/NancyDavolio.png
new file mode 100644
index 00000000..3f739788
Binary files /dev/null and b/src/tree-grid/images/NancyDavolio.png differ
diff --git a/src/tree-grid/images/RobertKing.png b/src/tree-grid/images/RobertKing.png
new file mode 100644
index 00000000..6022e750
Binary files /dev/null and b/src/tree-grid/images/RobertKing.png differ
diff --git a/src/tree-grid/images/RomeyWilson.png b/src/tree-grid/images/RomeyWilson.png
new file mode 100644
index 00000000..119e48aa
Binary files /dev/null and b/src/tree-grid/images/RomeyWilson.png differ
diff --git a/src/tree-grid/images/StevenBuchanan.png b/src/tree-grid/images/StevenBuchanan.png
new file mode 100644
index 00000000..d6cfdb25
Binary files /dev/null and b/src/tree-grid/images/StevenBuchanan.png differ
diff --git a/src/tree-grid/images/TeddLawson.png b/src/tree-grid/images/TeddLawson.png
new file mode 100644
index 00000000..b9b01f09
Binary files /dev/null and b/src/tree-grid/images/TeddLawson.png differ
diff --git a/src/tree-grid/row-template-stack.json b/src/tree-grid/row-template-stack.json
new file mode 100644
index 00000000..5f13a7e2
--- /dev/null
+++ b/src/tree-grid/row-template-stack.json
@@ -0,0 +1 @@
+{"index.html":"\n\n
\n\n
\n\n
+
+
+
+
+
+
This sample demonstrates the TreeGrid component with the row template feature. In this sample, we have rendered each TreeGrid
+ row using the template.
+
+
+
+
+ The TreeGrid provides a way to use a custom layout for its rows using template feature. The
+ rowTemplate
+ property accepts either string or HTML element`s ID value, which will be used
+ as the template for the row.
+
+
+ In this demo, we have presented Employee Information with Employee Photo and employee details like Name, Address etc.
+
+
The template expression should be provided inside ${...} interpolation syntax.
+
+
\ No newline at end of file
diff --git a/src/tree-grid/row-template.js b/src/tree-grid/row-template.js
new file mode 100644
index 00000000..4cd017a2
--- /dev/null
+++ b/src/tree-grid/row-template.js
@@ -0,0 +1,21 @@
+var instance = new ej.base.Internationalization();
+this.default = function () {
+ var treegrid = new ej.treegrid.TreeGrid({
+ dataSource: window.textdata,
+ childMapping: "Children",
+ treeColumnIndex: 0,
+ height: 335,
+ rowTemplate:'#rowtemplate',
+ rowHeight: 83,
+ columns: [
+ { field: "EmpID", headerText: "Employee ID", width: "180" },
+ { field: "Name", headerText: "Employee Name" },
+ { field: "Address", headerText: "Employee Details", width: "350" },
+ { field: "DOB", headerText: "DOB" }
+ ]
+ });
+ treegrid.appendTo('#TreeGrid');
+};
+window.format = function (value) {
+ return instance.formatDate(value, { skeleton: 'yMd', type: 'date' });
+};
\ No newline at end of file
diff --git a/src/tree-grid/sample.json b/src/tree-grid/sample.json
index f0192791..a403c083 100644
--- a/src/tree-grid/sample.json
+++ b/src/tree-grid/sample.json
@@ -7,7 +7,7 @@
"dataSourcePath": "src/tree-grid/data-source.js",
"samples": [
{
- "url": "treegrid.overview", "name": "Overview", "type":"new", "category": "Tree Grid","api":{"TreeGrid":["dataSource","childMapping","height","columns","allowReordering","allowFiltering","allowSorting","filterSettings","queryCellInfo"] },
+ "url": "treegrid.overview", "name": "Overview", "category": "Tree Grid","api":{"TreeGrid":["dataSource","childMapping","height","columns","allowReordering","allowFiltering","allowSorting","filterSettings","queryCellInfo"] },
"description": "This sample demonstrates the overview of basic treegrid features such as sorting, filtering, conditional formatting, column template and scrolling."
},
{ "url":"default", "name": "Default Functionalities", "category":"Tree Grid","description":"This example shows how the Syncfusion Essential JS2 TreeGrid control looks with its default configuration.","api":{"TreeGrid":["columns","dataSource","childMapping","treeColumnIndex","allowPaging"] }},
@@ -61,11 +61,11 @@
{
"url":"stacked-header", "name": "Stacked Header", "category":"Columns","api":{"TreeGrid":["dataSource","childMapping", "treeColumnIndex","allowPaging","pageSettings","columns"] },
"description": "This demo explains how to provide a common header for the group of columns in Essential JS2 TreeGrid control."
- },
+ },
{
"url":"checkbox-column", "name": "Checkbox Column", "category":"Columns","api":{"TreeGrid":["dataSource","childMapping","allowPaging","columns","treeColumnIndex","enableHierarchySelection"] },
- "description": "This demo explains how the hierarchy selection between the records using column checkboxes in Essential JS2 TreeGrid control.", "type": "new"
- },
+ "description": "This demo explains how the hierarchy selection between the records using column checkboxes in Essential JS2 TreeGrid control."
+ },
{
"url":"row.hover", "name": "Row Hover", "category":"Rows","api":{"TreeGrid":["dataSource","childMapping","allowSelection","columns","treeColumnIndex","enableHover","height"] },
"description": "This demo explains how the treegrid row color is changed while move the mouse over a row in Syncfusion Essential JS2 TreeGrid content."
@@ -74,6 +74,10 @@
"url":"rowheight", "name": "Row Height", "category":"Rows","api":{"TreeGrid":["dataSource","childMapping", "treeColumnIndex","height","rowHeight","allowPaging","toolbarClick","columns","toolbar"] },
"description": "This demo explains the way of customizing the row height of Syncfusion Essential JS2 TreeGrid control."
},
+ {
+ "url": "row-template", "name": "Row Template", "category": "Rows","api":{"TreeGrid":["dataSource","rowTemplate","height","width","columns"] },
+ "description": "This example shows how the Syncfusion TypeScript TreeGrid control looks with its default configuration.", "type": "new"
+ },
{
"url":"inline.editing", "name": "Inline Editing", "category":"Editing","api":{"TreeGrid":["dataSource","childMapping","columns","treeColumnIndex","editSettings","height","toolbar"] },
"description": "This example shows how to add and edit row or cell inline on the Syncfusion Essential JS2 TreeGrid control."
@@ -111,7 +115,7 @@
"description": "This demo explains the default functionalities of filtering and how to define the template for filter bar in Syncfusion Essential JS2 TreeGrid."
},
{
- "url":"filter-menu", "name": "Menu Filter", "type":"update", "category":"Filtering","api":{"TreeGrid":["dataSource","childMapping","allowPaging","columns","allowFiltering","treeColumnIndex","filterSettings"] },
+ "url":"filter-menu", "name": "Menu Filter", "category":"Filtering","api":{"TreeGrid":["dataSource","childMapping","allowPaging","columns","allowFiltering","treeColumnIndex","filterSettings"] },
"description": "This demo explains how to filter the content using menu filter type of Syncfusion Essential JS2 TreeGrid."
},
{
@@ -134,9 +138,8 @@
"url":"selection-api", "name": "Selection API", "category":"Selection","api":{"TreeGrid":["dataSource","childMapping","allowPaging","columns","allowSelection","selectionSettings","treeColumnIndex"] },
"description": "This demo explains how to select and clear multiple rows using methods of Syncfusion Essential JS2 TreeGrid."
},
- {
- "url":"checkbox-selection", "name": "Checkbox Selection", "category":"Selection","api":{"Grid":["dataSource","allowPaging","pageSettings","columns","allowSelection","selectionSettings","enableHover"] },
- "description":"This demo for Syncfusion Essential JS2 TreeGrid control shows how the checkbox selection feature can be used to select treegrid rows.", "type": "new"
+ { "url":"checkbox-selection", "name": "Checkbox Selection", "category":"Selection","api":{"Grid":["dataSource","allowPaging","pageSettings","columns","allowSelection","selectionSettings","enableHover"] },
+ "description":"This demo for Syncfusion Essential JS2 TreeGrid control shows how the checkbox selection feature can be used to select treegrid rows."
},
{
"url":"aggregate.default", "name": "Default Aggregate", "category":"Aggregates","api":{"TreeGrid":["dataSource","childMapping","columns","treeColumnIndex","height","aggregates"] },
diff --git a/src/treemap/drilldown-stack.json b/src/treemap/drilldown-stack.json
index b2eccbd5..3c20f224 100644
--- a/src/treemap/drilldown-stack.json
+++ b/src/treemap/drilldown-stack.json
@@ -1 +1 @@
-{"index.html":"\n\n
\n\n
\n\n
\n\n
\n
\n \n \n \n Drilldown View
\n \n \n \n \n
\n \n \n \n \n Enable Breadcrumb
\n \n \n \n \n
\n \n \n \n \n Breadcrumb Connector
\n \n \n \n \n
\n \n \n \n \n Header Alignment
\n \n \n \n \n
\n \n \n \n \n Label Alignment
\n \n \n \n \n Near \n Far \n Center \n \n
\n \n \n \n
\n
\n\n\n
","index.js":"{{ripple}}\n var treemap = new ej.treemap.TreeMap({\n drillStart: function (args) {\n if (args.item[Object.keys(args.item)[0]].length === 1) {\n args.treemap.levels[2].showHeader = true;\n }\n else {\n args.treemap.levels[2].showHeader = false;\n }\n },\n tooltipRendering: function (args) {\n if (args.item.groupIndex !== 2) {\n args.cancel = true;\n }\n },\n\n titleSettings: {\n text: 'List of countries by population',\n textStyle: { size: '15px' }\n },\n format: 'n',\n useGroupingSeparator: true,\n palette: ['#9999ff', '#CCFF99', '#FFFF99', '#FF9999', '#FF99FF', '#FFCC66'],\n enableDrillDown: true,\n dataSource: window.Drilldown,\n weightValuePath: 'Population',\n tooltipSettings: {\n visible: true,\n format: '${Name} : ${Population}'\n },\n leafItemSettings: {\n labelPath: 'Name',\n showLabels: false,\n labelStyle: { size: '0px' },\n border: { color: 'black', width: 0.5 }\n },\n levels: [\n { groupPath: 'Continent', fill: '#336699', border: { color: 'black', width: 0.5 } },\n { groupPath: 'States', fill: '#336699', border: { color: 'black', width: 0.5 } },\n { groupPath: 'Region', fill: '#336699', showHeader: false, border: { color: 'black', width: 0.5 } },\n ]\n });\n treemap.appendTo('#container');\n var breadCrumbChange;\n var breadCrumbCheckBox = new ej.buttons.CheckBox({\n change: breadCrumbChange, checked: false\n }, '#breadCrumb');\n breadCrumbCheckBox.change = breadCrumbChange = function (e) {\n treemap.enableBreadcrumb = e.checked;\n var breadCrumbText = document.getElementById('connectorText');\n if (e.checked) {\n breadCrumbText.disabled = false;\n }\n else {\n breadCrumbText.disabled = true;\n }\n treemap.refresh();\n };\n var drillChange;\n var drillViewCheckBox = new ej.buttons.CheckBox({\n change: drillChange, checked: false\n }, '#drillView');\n drillViewCheckBox.change = drillChange = function (e) {\n treemap.drillDownView = e.checked;\n treemap.refresh();\n };\n document.getElementById('connectorText').onchange = function () {\n var value = document.getElementById('connectorText').value;\n treemap.breadcrumbConnector = value;\n treemap.refresh();\n };\n var header = new ej.dropdowns.DropDownList({\n index: 0,\n placeholder: 'Selection selection type',\n width: 80,\n change: function () {\n for (var i = 0; i < treemap.levels.length - 1; i++) {\n treemap.levels[i].headerAlignment = header.value;\n }\n treemap.refresh();\n }\n });\n header.appendTo('#header');\n var label = new ej.dropdowns.DropDownList({\n index: 0,\n placeholder: 'Selection selection type',\n width: 80,\n change: function () {\n treemap.levels[2].headerAlignment = label.value;\n treemap.refresh();\n }\n });\n label.appendTo('#label');\n"}
\ No newline at end of file
+{"index.html":"\n\n
\n\n
\n\n
\n\n
\n
\n \n \n \n Drilldown View
\n \n \n \n \n
\n \n \n \n \n Enable Breadcrumb
\n \n \n \n \n
\n \n \n \n \n Breadcrumb Connector
\n \n \n \n \n
\n \n \n \n \n Header Alignment
\n \n \n \n \n
\n \n \n \n \n Label Alignment
\n \n \n \n \n Near \n Far \n Center \n \n
\n \n \n \n
\n
\n\n\n
","index.js":"{{ripple}}\n var treemap = new ej.treemap.TreeMap({\n drillStart: function (args) {\n if (args.item[Object.keys(args.item)[0]].length === 1) {\n args.treemap.levels[2].showHeader = true;\n }\n else {\n args.treemap.levels[2].showHeader = false;\n }\n },\n tooltipRendering: function (args) {\n if (args.item.groupIndex !== 2) {\n args.cancel = true;\n }\n },\n\n titleSettings: {\n text: 'List of countries by population',\n textStyle: { size: '15px' }\n },\n format: 'n',\n useGroupingSeparator: true,\n palette: ['#9999ff', '#CCFF99', '#FFFF99', '#FF9999', '#FF99FF', '#FFCC66'],\n enableDrillDown: true,\n dataSource: window.Drilldown,\n weightValuePath: 'Population',\n tooltipSettings: {\n visible: true,\n format: '${Name} : ${Population}'\n },\n leafItemSettings: {\n labelPath: 'Name',\n showLabels: false,\n labelStyle: { size: '0px' },\n border: { color: 'black', width: 0.5 }\n },\n levels: [\n { groupPath: 'Continent', border: { color: 'black', width: 0.5 } },\n { groupPath: 'States', border: { color: 'black', width: 0.5 } },\n { groupPath: 'Region', showHeader: false, border: { color: 'black', width: 0.5 } },\n ]\n });\n treemap.appendTo('#container');\n var breadCrumbChange;\n var breadCrumbCheckBox = new ej.buttons.CheckBox({\n change: breadCrumbChange, checked: false\n }, '#breadCrumb');\n breadCrumbCheckBox.change = breadCrumbChange = function (e) {\n treemap.enableBreadcrumb = e.checked;\n var breadCrumbText = document.getElementById('connectorText');\n if (e.checked) {\n breadCrumbText.disabled = false;\n }\n else {\n breadCrumbText.disabled = true;\n }\n treemap.refresh();\n };\n var drillChange;\n var drillViewCheckBox = new ej.buttons.CheckBox({\n change: drillChange, checked: false\n }, '#drillView');\n drillViewCheckBox.change = drillChange = function (e) {\n treemap.drillDownView = e.checked;\n treemap.refresh();\n };\n document.getElementById('connectorText').onchange = function () {\n var value = document.getElementById('connectorText').value;\n treemap.breadcrumbConnector = value;\n treemap.refresh();\n };\n var header = new ej.dropdowns.DropDownList({\n index: 0,\n placeholder: 'Selection selection type',\n width: 80,\n change: function () {\n for (var i = 0; i < treemap.levels.length - 1; i++) {\n treemap.levels[i].headerAlignment = header.value;\n }\n treemap.refresh();\n }\n });\n header.appendTo('#header');\n var label = new ej.dropdowns.DropDownList({\n index: 0,\n placeholder: 'Selection selection type',\n width: 80,\n change: function () {\n treemap.levels[2].headerAlignment = label.value;\n treemap.refresh();\n }\n });\n label.appendTo('#label');\n"}
\ No newline at end of file
diff --git a/src/treemap/drilldown.js b/src/treemap/drilldown.js
index b992445e..dea14093 100644
--- a/src/treemap/drilldown.js
+++ b/src/treemap/drilldown.js
@@ -41,9 +41,9 @@ this.default = function () {
border: { color: 'black', width: 0.5 }
},
levels: [
- { groupPath: 'Continent', fill: '#336699', border: { color: 'black', width: 0.5 } },
- { groupPath: 'States', fill: '#336699', border: { color: 'black', width: 0.5 } },
- { groupPath: 'Region', fill: '#336699', showHeader: false, border: { color: 'black', width: 0.5 } },
+ { groupPath: 'Continent', border: { color: 'black', width: 0.5 } },
+ { groupPath: 'States', border: { color: 'black', width: 0.5 } },
+ { groupPath: 'Region', showHeader: false, border: { color: 'black', width: 0.5 } },
]
});
treemap.appendTo('#container');
diff --git a/src/treemap/sample.json b/src/treemap/sample.json
index 45c72a9d..7ae4f6ef 100644
--- a/src/treemap/sample.json
+++ b/src/treemap/sample.json
@@ -2,7 +2,6 @@
"name": "TreeMap",
"directory": "treemap",
"category": "Data Visualization",
- "type": "update",
"ftName": "treemap",
"dataSourcePath":"src/treemap/map-data.js",
"samples": [
@@ -23,7 +22,6 @@
"name": "Layout",
"description": "This demo for Essential JS2 TreeMap control illustrates the GDP nominal of top 10 countries in the year 2015. The layout of the TreeMap can also be changed.",
"category": "TreeMap",
- "type": "update",
"api": {},
"sourceFiles":[
{ "displayName": "treemap-data.js", "path":"src/treemap/map-data.js" },
@@ -36,7 +34,6 @@
"name": "Drilldown",
"description": "This demo for Essential JS2 TreeMap control demonstrates drill-down with the continents at the top level followed by regions and countries.",
"category": "TreeMap",
- "type": "update",
"api": {},
"sourceFiles":[
{ "displayName": "treemap-data.js", "path":"src/treemap/map-data.js" },
@@ -85,7 +82,6 @@
"name": "Legend",
"description": "This demo for Essential JS2 TreeMap control visualizes the 2016 U.S.A. presidential election results. Default and interactive are the two types of legend.",
"category": "TreeMap",
- "type": "update",
"api": {},
"sourceFiles":[
{ "displayName": "treemap-data.js", "path":"src/treemap/map-data.js" },
@@ -146,7 +142,6 @@
"name": "RTL",
"description": "This demo for Essential JS2 TreeMap control visualizes the unemployment rate of various continents based on the countries.",
"category": "TreeMap",
- "type": "new",
"api": {},
"sourceFiles": [
{