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
SEO Analysis Dashboard
\n
\n
\n
\n \n
John
\n
\n
\n
\n
\n \n \n \n \n
\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}}/**\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
SEO Analysis Dashboard
\n
\n
\n
\n \n
John
\n
\n
\n
\n
\n \n \n \n \n
\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}}/**\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
\n
\n Properties\n
\n
\n
\n Choose dashboard layout\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 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: '
Header Area
',\n content: '
Content Area
'\n },\n {\n 'sizeX': 2, 'sizeY': 3, 'row': 0, 'col': 4,\n header: '
Header Area
',\n content: '
Content Area
'\n },\n {\n 'sizeX': 6, 'sizeY': 1, 'row': 3, 'col': 0,\n header: '
Header Area
',\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: '
Header Area
',\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
\n
\n Properties\n
\n
\n
\n Choose dashboard layout\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 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: '
Header Area
',\n content: '
Content Area
'\n },\n {\n 'sizeX': 2, 'sizeY': 3, 'row': 0, 'col': 4,\n header: '
Header Area
',\n content: '
Content Area
'\n },\n {\n 'sizeX': 6, 'sizeY': 1, 'row': 3, 'col': 0,\n header: '
Header Area
',\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: '
Header Area
',\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 Properties\n
\n
\n
\n
\n \n
\n \n
\n
\n
\n \n
\n
\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}}/**\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 Properties\n
\n
\n
\n
\n \n
\n \n
\n
\n
\n \n
\n
\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}}/**\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
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\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
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\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
\n
\n
\n Layout Settings\n
\n
\n
\n Orientation\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n Behavior\n
\n
\n
\n
Margin X
\n
\n
\n \n
\n
\n
\n
\n
Margin Y
\n
\n
\n \n
\n
\n
\n
\n
Horizontal Spacing
\n
\n
\n \n
\n
\n
\n
\n
Vertical Spacing
\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
\n
\n
\n Layout Settings\n
\n
\n
\n Orientation\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n Behavior\n
\n
\n
\n
Margin X
\n
\n
\n \n
\n
\n
\n
\n
Margin Y
\n
\n
\n \n
\n
\n
\n
\n
Horizontal Spacing
\n
\n
\n \n
\n
\n
\n
\n
Vertical Spacing
\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
\n
\n
\n Properties\n
\n
\n
\n Appearance\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\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}}/**\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
\n
\n
\n Properties\n
\n
\n
\n Appearance\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\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}}/**\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
\n \n
\n
\n
\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}}/**\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
\n \n
\n
\n
\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}}/**\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
\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
\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
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n
\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
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n
\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
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Client-side events
\n
\n
\n
\n
\n Event Trace\n
\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 +{"index.html":"\n\n \n\n \n\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Client-side events
\n
\n
\n
\n
\n Event arguments\n
\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
\n
\n
\n Properties\n
\n
\n
\n Shapes\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n Connector\n
\n
\n
\n
\n
\n
\n
\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
\n
\n
\n Properties\n
\n
\n
\n Shapes\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n Connector\n
\n
\n
\n
\n
\n
\n
\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
\n
\n
\n
\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
\n
\n
\n
\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 Show flow execution\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\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 Show flow execution\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\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 Properties\n
\n
\n
\n
\n
\n Alignment\n
\n
\n
\n
\n
\n
\n
\n
\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
\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 Properties\n
\n
\n
\n
\n
\n Alignment\n
\n
\n
\n
\n
\n
\n
\n
\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
\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
\n
\n
\n Properties\n
\n
\n
\n Appearance\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\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
\n
\n
\n Properties\n
\n
\n
\n Appearance\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\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
\n
\n
\n Properties\n
\n
\n
\n Appearance\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n Behavior\n
\n
\n
\n
Horizontal Spacing
\n
\n
\n \n
\n
\n
\n
\n
Vertical Spacing
\n
\n
\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
\n
\n
\n Properties\n
\n
\n
\n Appearance\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n Behavior\n
\n
\n
\n
Horizontal Spacing
\n
\n
\n \n
\n
\n
\n
\n
Vertical Spacing
\n
\n
\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 History manager settings\n
\n
\n
\n
\n
\n
\n \n Undo Stack\n \n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n \n Redo Stack\n \n
\n \n
\n
\n
\n
\n
\n
\n
\n
Stack Limit
\n
\n
\n \n
\n
\n
\n
\n
\n
\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 History manager settings\n
\n
\n
\n
\n
\n
\n \n Undo Stack\n \n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n \n Redo Stack\n \n
\n \n
\n
\n
\n
\n
\n
\n
\n
Stack Limit
\n
\n
\n \n
\n
\n
\n
\n
\n
\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

Built-In Commands

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
Command
\n
\n
Gesture
\n
Select All Ctrl + A
CutCtrl + X
CopyCtrl + C
PasteCtrl + V
UndoCtrl + Z
RedoCtrl + Y
DeleteDelete
\n
\n
\n
\n

Custom Commands

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
Command\n
\n
\n
Gesture
\n
GroupCtrl + G
UngroupCtrl + U
\n
\n
\n
\n

Modified Commands

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
Command\n
\n
\n
Gesture
\n
Navigate to Parent Node Up Arrow
Navigate to Child Node Down Arrow
Navigate to Previous Child Left Arrow
Navigate to Next Child Right Arrow
\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

Built-In Commands

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
Command
\n
\n
Gesture
\n
Select All Ctrl + A
CutCtrl + X
CopyCtrl + C
PasteCtrl + V
UndoCtrl + Z
RedoCtrl + Y
DeleteDelete
\n
\n
\n
\n

Custom Commands

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
Command\n
\n
\n
Gesture
\n
GroupCtrl + G
UngroupCtrl + U
\n
\n
\n
\n

Modified Commands

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
Command\n
\n
\n
Gesture
\n
Navigate to Parent Node Up Arrow
Navigate to Child Node Down Arrow
Navigate to Previous Child Left Arrow
Navigate to Next Child Right Arrow
\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
\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
\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
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n
\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
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n
\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
\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
\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
\n
\n \n \n
\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
\n
\n \n \n
\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
\n
\n Properties\n
\n
\n
\n
\n Orientation\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n Subtree Alignment\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n Behavior\n
\n
\n
\n
Horizontal Spacing
\n
\n
\n \n
\n
\n
\n
\n
Vertical Spacing
\n
\n
\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
\n
\n Properties\n
\n
\n
\n
\n Orientation\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n Subtree Alignment\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n Behavior\n
\n
\n
\n
Horizontal Spacing
\n
\n
\n \n
\n
\n
\n
\n
Vertical Spacing
\n
\n
\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
\n
\n
\n
\n
\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
\n
\n
\n
\n
\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
\n
\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
\n
\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 Properties\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 Size\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 Properties\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 Size\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
\n
\n
\n
\n \n
\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
\n
\n
\n
\n \n
\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
\n \n
\n
\n
\n
\n
\n
\n
\n Properties\n
\n
\n
\n Alignment\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
","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
\n \n
\n
\n
\n
\n
\n
\n
\n Properties\n
\n
\n
\n Alignment\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
","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
\n
\n
\n
\n
\n \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
\n
\n
\n
\n
\n \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
\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
\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
\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
\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
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\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
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\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
\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
\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
\n \n \n
\n
\n
\n
\n
\n
\n
\n
\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
\n \n \n
\n
\n
\n
\n
\n
\n
\n
\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
\n \n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
Expandable:
\n
\n \n
\n
Symbol Size:
\n
\n \n
\n
Animation:
\n
\n \n
\n
Item Text:
\n
\n \n
\n
Header Icon:
\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
\n \n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
Expandable:
\n
\n \n
\n
Symbol Size:
\n
\n \n
\n
Animation:
\n
\n \n
\n
Item Text:
\n
\n \n
\n
Header Icon:
\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
\n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Spring Length \n \n
Spring Factor\n \n
Maximum Iteration\n \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
\n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Spring Length \n \n
Spring Factor\n \n
Maximum Iteration\n \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
\n \n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n Relative mode\n
\n
\n
\n \n
\n
\n
\n Position\n
\n
\n
\n \n
\n
\n
\n Animation\n
\n
\n
\n \n
\n
\n
\n Effect\n
\n
\n
\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
\n \n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n Relative mode\n
\n
\n
\n \n
\n
\n
\n Position\n
\n
\n
\n \n
\n
\n
\n Animation\n
\n
\n
\n \n
\n
\n
\n Effect\n
\n
\n
\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
\n\n\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\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
\n\n\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\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
\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
\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
\n
\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
\n
\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
\n
\n \n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n
\n
Toolbar
\n
\n
\n \n
\n
\n
\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
\n
\n \n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n
\n
Toolbar
\n
\n
\n \n
\n
\n
\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
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n
    \n
    View Mode
    \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
    \n
    \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
    \n
    \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
    \n
    \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
    \n
    \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 \n \n \n \n
    \n
    \n

    Overview

    \n
    \n

    The Sidebar component is a collapsible side content placed along with the main content either in left\n or right side of the page.\n

    \n

    \n
    \n

    \n

    Options

    \n
    \n
    \n \n

    \n Toggle - Toggles the sidebar to be open or closed state.\n

    \n \n

    \n \n

    \n Position - Allows to place the sidebar in right or left side of the page.\n

    \n \n

    \n \n\n

    \n Types - Specifies the act of expanding or collapsing the sidebar with main content.

    \n
    \n \n
    \n

    \n \n

    \n Closing on document click - Allows to collapse / close the sidebar on document click.

    \n \n

    \n \n

    \n Backdrop - Sets the backdrop over the main content area on open / expanded state.

    \n \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 \n \n \n \n
    \n
    \n

    Overview

    \n
    \n

    The Sidebar component is a collapsible side content placed along with the main content either in left\n or right side of the page.\n

    \n

    \n
    \n

    \n

    Options

    \n
    \n
    \n \n

    \n Toggle - Toggles the sidebar to be open or closed state.\n

    \n \n

    \n \n

    \n Position - Allows to place the sidebar in right or left side of the page.\n

    \n \n

    \n \n\n

    \n Types - Specifies the act of expanding or collapsing the sidebar with main content.

    \n
    \n \n
    \n

    \n \n

    \n Closing on document click - Allows to collapse / close the sidebar on document click.

    \n \n

    \n \n

    \n Backdrop - Sets the backdrop over the main content area on open / expanded state.

    \n \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
    Main content
    \n
    Click the button to open/close the sidebar.\n
    \n \n
    \n

    Click the radio button to switch the sidebar position

    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \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
    Main content
    \n
    Click the button to open/close the sidebar.\n
    \n \n
    \n

    Click the radio button to switch the sidebar position

    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \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 Essential JS 2 For JavaScript(ES5 )- Sidebar > Dock\n \n \n \n
    \n
    Main content
    \n
    \n

    Click the radio button to switch the sidebar position

    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \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 Essential JS 2 For JavaScript(ES5 )- Sidebar > Dock\n \n \n \n
    \n
    Main content
    \n
    \n

    Click the radio button to switch the sidebar position

    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \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
    • Navigation Pane
    • \n
    • Support
    • \n
    \n
    \n \n \n \n \n \n
    \n
    \n

    Responsive Sidebar With Treeview

    \n

    This is a graphical aid for visualising and categorising the site, in the style of an expandable and collapsable treeview component. It auto-expands to display the node(s), if any, corresponding to the currently viewed title, highlighting that node(s) and its ancestors. Load-on-demand when expanding nodes is available where supported (most graphical browsers), falling back to a full-page reload. MediaWiki-supported caching, aside from squid, has been considered so that unnecessary re-downloads of content are avoided where possible. The complete expanded/collapsed state of the treeview persists across page views in most situations

    \n

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\n eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis\n nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure\n dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim\n id est laborum.

    \n
    \n

    Lorem Ipsum Dolor

    \n

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\n eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis\n nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure\n dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

    \n
    \n

    Lorem Ipsum Dolor

    \n

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud\n exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in\n reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint\n occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

    \n\t\t\t\t
    \n

    Lorem Ipsum Dolor

    \n

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud\n exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in\n reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint\n occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

    \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
    • Navigation Pane
    • \n
    • Support
    • \n
    \n
    \n \n \n \n \n \n
    \n
    \n

    Responsive Sidebar With Treeview

    \n

    This is a graphical aid for visualising and categorising the site, in the style of an expandable and collapsable treeview component. It auto-expands to display the node(s), if any, corresponding to the currently viewed title, highlighting that node(s) and its ancestors. Load-on-demand when expanding nodes is available where supported (most graphical browsers), falling back to a full-page reload. MediaWiki-supported caching, aside from squid, has been considered so that unnecessary re-downloads of content are avoided where possible. The complete expanded/collapsed state of the treeview persists across page views in most situations

    \n

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\n eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis\n nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure\n dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim\n id est laborum.

    \n
    \n

    Lorem Ipsum Dolor

    \n

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\n eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis\n nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure\n dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

    \n
    \n

    Lorem Ipsum Dolor

    \n

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud\n exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in\n reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint\n occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

    \n\t\t\t\t
    \n

    Lorem Ipsum Dolor

    \n

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud\n exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in\n reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint\n occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

    \n\t\t\t\t
    \n\t\t\t\t

    Lorem Ipsum Dolor

    \n\t\t\t\t

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n\t\t\t\t\ttempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud\n\t\t\t\t\texercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in\n\t\t\t\t\treprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint\n\t\t\t\t\toccaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

    \n\t\t\t\t
    \n\t\t\t\t

    Lorem Ipsum Dolor

    \n\t\t\t\t

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n\t\t\t\t\ttempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud\n\t\t\t\t\texercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in\n\t\t\t\t\treprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint\n\t\t\t\t\toccaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

    \n\t\t\t\t
    \n\t\t\t\t

    Lorem Ipsum Dolor

    \n\t\t\t\t

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n\t\t\t\t\ttempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud\n\t\t\t\t\texercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in\n\t\t\t\t\treprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint\n\t\t\t\t\toccaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

    \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
    Menu
    \n \n
    Header Content
    \n
    \n \n \n \n \n
    \n
    Application content
    \n
    \n \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
    Menu
    \n \n
    Header Content
    \n
    \n \n \n \n \n
    \n
    Application content
    \n
    \n \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
      • Support
      • \n
      • Tour
      • \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
        • Support
        • \n
        • Tour
        • \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 \n \n \n \n \n \n \n \n \n \n
        \n
        Mean working hours for a month
        \n
        (DateTime axis)
        \n
        \n
        \n
        \n
        Percentage of the students in a class
        \n
        (Category axis)
        \n
        \n
        \n
        \n
        Expenditure details of various trips
        \n
        (Numeric axis)
        \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 \n \n \n \n \n \n \n \n \n \n
        \n
        Mean working hours for a month
        \n
        (DateTime axis)
        \n
        \n
        \n
        \n
        Percentage of the students in a class
        \n
        (Category axis)
        \n
        \n
        \n
        \n
        Expenditure details of various trips
        \n
        (Numeric axis)
        \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 \n \n \n \n \n \n \n
        Sales Percentage\n
        \n
        Sales Count\n
        \n
        \n
        \n
        \n
        Source:\n carsalesbase.com\n
        \n
        \n \n \n \n \n \n\n \n
        \n            \n
        \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\t\t\t\t\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
        \n Sparkline\n \n \n
        \n Special Points\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
        All\n \n Negative\n \n
        First\n \n Last\n \n
        High\n \n Low\n \n
        \n
        \n Marker\n \n \n
        \n Data Label\n \n \n
        \n Enable RTL\n \n \n
        \n Tooltip\n \n \n
        \n Track Line\n \n \n
        \n Axis Line\n \n \n
        \n Axis Value\n    0\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 \n \n \n \n \n \n \n
        Sales Percentage\n
        \n
        Sales Count\n
        \n
        \n
        \n
        \n
        Source:\n carsalesbase.com\n
        \n
        \n \n \n \n \n \n\n \n
        \n            \n
        \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\t\t\t\t\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
        \n Sparkline\n \n \n
        \n Special Points\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
        All\n \n Negative\n \n
        First\n \n Last\n \n
        High\n \n Low\n \n
        \n
        \n Marker\n \n \n
        \n Data Label\n \n \n
        \n Enable RTL\n \n \n
        \n Tooltip\n \n \n
        \n Track Line\n \n \n
        \n Axis Line\n \n \n
        \n Axis Value\n    0\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 \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
        \n
        \n Population\n
        \n
        \n
        \n Population Density\n
        \n
        \n
        \n Population Growth Rate\n
        \n
        \n
        \n Birth Rate\n
        \n
        \n Australia\n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n Canada\n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n China\n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n France\n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n Germany\n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n India\n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n Russia\n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n Sweden\n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n United Kingdom\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
        ","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 \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
        \n
        \n Population\n
        \n
        \n
        \n Population Density\n
        \n
        \n
        \n Population Growth Rate\n
        \n
        \n
        \n Birth Rate\n
        \n
        \n Australia\n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n Canada\n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n China\n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n France\n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n Germany\n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n India\n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n Russia\n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n Sweden\n \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n
        \n United Kingdom\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
        ","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 Disk\n
        \n
        50%
        \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 Disk\n
        \n
        50%
        \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 \n \n \n \n \n \n \n
        \n Range Band Min 1\n \n
        \n
        \n Range Band Max 3\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 \n \n \n \n \n \n \n
        \n Range Band Min 1\n \n
        \n
        \n Range Band Max 3\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
        Revenue status
        \n
        \n
        \n
        \n
        \n
        Customer satisfaction score
        \n
        \n
        \n
        \n
        \n
        \n
        USA
        \n
        \n
        \n
        GBR
        \n
        \n
        \n
        CHN
        \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
        Revenue status
        \n
        \n
        \n
        \n
        \n
        Customer satisfaction score
        \n
        \n
        \n
        \n
        \n
        \n
        USA
        \n
        \n
        \n
        GBR
        \n
        \n
        \n
        CHN
        \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
        \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
        \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
        Source:\n en.wikipedia.org\n
        \n
        \n\n
        \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
        \n
        Drilldown View
        \n
        \n
        \n \n
        \n
        \n
        Enable Breadcrumb
        \n
        \n
        \n \n
        \n
        \n
        Breadcrumb Connector
        \n
        \n
        \n \n
        \n
        \n
        Header Alignment
        \n
        \n
        \n \n
        \n
        \n
        Label Alignment
        \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
        Source:\n en.wikipedia.org\n
        \n
        \n\n
        \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
        \n
        Drilldown View
        \n
        \n
        \n \n
        \n
        \n
        Enable Breadcrumb
        \n
        \n
        \n \n
        \n
        \n
        Breadcrumb Connector
        \n
        \n
        \n \n
        \n
        \n
        Header Alignment
        \n
        \n
        \n \n
        \n
        \n
        Label Alignment
        \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": [ {